pi-fabric 0.27.0 → 0.28.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/README.md CHANGED
@@ -110,7 +110,7 @@ The foundation is the `fabric-exec` reference skill: the model loads it before i
110
110
  Fabric adds a live activity surface to Pi, no extra extension required:
111
111
 
112
112
  - A compact widget above the chat (like `pi-supervisor`) whose header follows the current phase while its rows show active/completed agents, active actors, and their recent nested tool or code-change activity.
113
- - `/fabric` (or `/fabric dashboard`) — **Activity** and **Topology** views where the user-facing Pi session is always present as **Main**. Queue/steer Main, active children, actors, and observed mesh agents; inspect bounded Run/Project-mesh topologies, paged full agent/actor transcripts, topics, state, and routes.
113
+ - `/fabric` (or `/fabric dashboard`) — **Activity** and **Topology** views where the user-facing Pi session is always present as **Main**. Queue/steer Main, active children, actors, and observed mesh agents; navigate a spring-followed unified topology of runs and project mesh, with paged transcripts, topics, state, and routes.
114
114
  - `/fabric settings` — mirrors Pi's `/settings` and writes changes to `fabric.json`.
115
115
 
116
116
  See the [interface & commands reference](docs/interface.md) for every view, keybinding, and slash command.
@@ -0,0 +1,29 @@
1
+ import type { Theme } from "@earendil-works/pi-coding-agent";
2
+ import type { FabricActivityRun } from "../activity/types.js";
3
+ import type { Entity, StatusFilter } from "./dashboard-model.js";
4
+ import type { FabricProjectMeshModel } from "./topology.js";
5
+ import type { FabricDashboardSnapshot } from "./types.js";
6
+ export interface FabricGraphPoint {
7
+ x: number;
8
+ y: number;
9
+ }
10
+ export interface FabricTopologyRenderResult {
11
+ lines: string[];
12
+ positions: Map<string, FabricGraphPoint>;
13
+ selectedPosition?: FabricGraphPoint;
14
+ }
15
+ export declare const renderFabricTopologyPanel: ({ theme, filter, selectedEntityId, snapshot, run, mesh, allEntities, entities, width, height, camera, }: {
16
+ theme: Theme;
17
+ filter: StatusFilter;
18
+ selectedEntityId: string | undefined;
19
+ snapshot: FabricDashboardSnapshot;
20
+ run: FabricActivityRun | undefined;
21
+ mesh: FabricProjectMeshModel;
22
+ allEntities: Entity[];
23
+ entities: Entity[];
24
+ width: number;
25
+ height: number;
26
+ camera: FabricGraphPoint;
27
+ }) => FabricTopologyRenderResult;
28
+ export declare const directionalGraphTarget: (positions: ReadonlyMap<string, FabricGraphPoint>, currentId: string | undefined, direction: "left" | "right" | "up" | "down") => string | undefined;
29
+ //# sourceMappingURL=dashboard-fabric-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-fabric-graph.d.ts","sourceRoot":"","sources":["../../src/ui/dashboard-fabric-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAG1D,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAicD,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,eAAO,MAAM,yBAAyB,GAAI,yGAYvC;IACD,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,GAAG,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACnC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,gBAAgB,CAAC;CAC1B,KAAG,0BA+DH,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,WAAW,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAChD,WAAW,MAAM,GAAG,SAAS,EAC7B,WAAW,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,KAC1C,MAAM,GAAG,SAeX,CAAC"}
@@ -0,0 +1,499 @@
1
+ import { truncateToWidth, visibleWidth } from "@earendil-works/pi-tui";
2
+ import { colorStatus, entityTail, statusGlyph } from "./dashboard-presentation.js";
3
+ import { padToWidth, safeText } from "./format.js";
4
+ import { isActiveStatus } from "./types.js";
5
+ const kindRank = {
6
+ agent: 0,
7
+ actor: 1,
8
+ participant: 2,
9
+ peer: 3,
10
+ topic: 4,
11
+ state: 5,
12
+ route: 6,
13
+ main: 7,
14
+ };
15
+ const activeRank = (status) => isActiveStatus(status) && status !== "blocked" ? 0 : status === "blocked" ? 1 : 2;
16
+ const nodeKind = (entity) => {
17
+ if (entity.kind === "meshParticipant")
18
+ return "participant";
19
+ if (entity.kind === "meshTopic")
20
+ return "topic";
21
+ if (entity.kind === "meshRoute")
22
+ return "route";
23
+ if (entity.kind === "globalActor" || entity.kind === "call" || entity.kind === "item") {
24
+ return "state";
25
+ }
26
+ return entity.kind;
27
+ };
28
+ const rawIdentity = (entity) => {
29
+ if (entity.kind === "main" || entity.kind === "peer" || entity.kind === "agent" || entity.kind === "actor") {
30
+ return [entity.value.id, entity.value.name];
31
+ }
32
+ if (entity.kind === "meshParticipant") {
33
+ return [entity.value.id, entity.value.name, entity.value.participant?.sessionId];
34
+ }
35
+ if (entity.kind === "meshTopic")
36
+ return [entity.value.id, entity.value.name];
37
+ if (entity.kind === "state")
38
+ return [entity.value.key, entity.value.label];
39
+ if (entity.kind === "meshRoute")
40
+ return [entity.value.id];
41
+ return [entity.id, entity.label];
42
+ };
43
+ const graphLabel = (value, maxWidth) => {
44
+ let output = "";
45
+ let width = 0;
46
+ for (const char of value) {
47
+ const charWidth = visibleWidth(char);
48
+ if (width + charWidth > maxWidth) {
49
+ while (width + 1 > maxWidth && output.length > 0) {
50
+ const parts = [...output];
51
+ const removed = parts.pop();
52
+ output = parts.join("");
53
+ width -= removed ? visibleWidth(removed) : 0;
54
+ }
55
+ return output + "…";
56
+ }
57
+ output += char;
58
+ width += charWidth;
59
+ }
60
+ return output;
61
+ };
62
+ const graphGlyph = (kind) => {
63
+ if (kind === "main")
64
+ return "◆";
65
+ if (kind === "actor")
66
+ return "◇";
67
+ if (kind === "peer")
68
+ return "◈";
69
+ if (kind === "topic")
70
+ return "◎";
71
+ if (kind === "state")
72
+ return "◫";
73
+ if (kind === "route")
74
+ return "↝";
75
+ if (kind === "participant")
76
+ return "▧";
77
+ return "■";
78
+ };
79
+ const parentReference = (entity) => {
80
+ if (entity.kind === "agent")
81
+ return entity.value.parentId ?? entity.value.actorId;
82
+ if (entity.kind === "meshParticipant")
83
+ return entity.value.participant?.parentId;
84
+ if (entity.kind === "state")
85
+ return entity.value.owner;
86
+ if (entity.kind === "meshRoute")
87
+ return entity.value.fromId;
88
+ return undefined;
89
+ };
90
+ const buildLayout = (snapshot, entities, selectedRun, mesh) => {
91
+ const aliases = new Map();
92
+ const entityById = new Map(entities.map((entity) => [entity.id, entity]));
93
+ for (const entity of entities) {
94
+ for (const identity of rawIdentity(entity)) {
95
+ if (identity)
96
+ aliases.set(identity, entity.id);
97
+ }
98
+ }
99
+ const mainId = entities.find((entity) => entity.kind === "main")?.id ?? `main:${snapshot.main.id}`;
100
+ aliases.set(snapshot.main.id, mainId);
101
+ aliases.set(snapshot.main.name, mainId);
102
+ aliases.set("main", mainId);
103
+ const nodes = entities.map((entity) => {
104
+ const parentRef = parentReference(entity);
105
+ const parentId = parentRef ? aliases.get(parentRef) : undefined;
106
+ return {
107
+ id: entity.id,
108
+ label: entity.kind === "main" ? "Main" : entity.label,
109
+ status: entity.status,
110
+ kind: nodeKind(entity),
111
+ ...(entity.kind !== "main" ? { parentId: parentId ?? mainId } : {}),
112
+ x: 0,
113
+ y: 0,
114
+ };
115
+ });
116
+ const nodeById = new Map(nodes.map((node) => [node.id, node]));
117
+ const children = new Map();
118
+ for (const node of nodes) {
119
+ if (!node.parentId || node.parentId === node.id || !nodeById.has(node.parentId))
120
+ continue;
121
+ const bucket = children.get(node.parentId) ?? [];
122
+ bucket.push(node);
123
+ children.set(node.parentId, bucket);
124
+ }
125
+ const inSelectedRun = (node) => {
126
+ const entity = entityById.get(node.id);
127
+ return Boolean(selectedRun && entity?.kind === "agent" && entity.value.runId === selectedRun.id);
128
+ };
129
+ for (const bucket of children.values()) {
130
+ bucket.sort((left, right) => activeRank(left.status) - activeRank(right.status) ||
131
+ Number(inSelectedRun(right)) - Number(inSelectedRun(left)) ||
132
+ kindRank[left.kind] - kindRank[right.kind] ||
133
+ left.label.localeCompare(right.label));
134
+ }
135
+ let nextLeafY = 0;
136
+ const visited = new Set();
137
+ const place = (node, depth) => {
138
+ if (visited.has(node.id))
139
+ return node.y;
140
+ visited.add(node.id);
141
+ node.x = depth * 20;
142
+ const descendants = (children.get(node.id) ?? []).filter((child) => !visited.has(child.id));
143
+ if (descendants.length === 0) {
144
+ node.y = nextLeafY;
145
+ nextLeafY += 3;
146
+ return node.y;
147
+ }
148
+ const childRows = descendants.map((child) => place(child, depth + 1));
149
+ node.y = (childRows[0] + childRows[childRows.length - 1]) / 2;
150
+ return node.y;
151
+ };
152
+ const main = nodeById.get(mainId);
153
+ if (main)
154
+ place(main, 0);
155
+ for (const node of nodes) {
156
+ if (!visited.has(node.id))
157
+ place(node, 1);
158
+ }
159
+ const mainY = main?.y ?? 0;
160
+ for (const node of nodes)
161
+ node.y = Math.round(node.y - mainY);
162
+ const edges = [];
163
+ for (const node of nodes) {
164
+ if (node.parentId && nodeById.has(node.parentId) && node.parentId !== node.id) {
165
+ edges.push({ from: node.parentId, to: node.id, kind: node.kind === "route" ? "route" : "structure" });
166
+ }
167
+ }
168
+ for (const topic of mesh.topics) {
169
+ const target = aliases.get(topic.id) ?? aliases.get(topic.name);
170
+ if (!target)
171
+ continue;
172
+ for (const subscriber of topic.subscribers) {
173
+ const source = aliases.get(subscriber.id) ?? aliases.get(subscriber.name);
174
+ if (source && source !== target)
175
+ edges.push({ from: source, to: target, kind: "subscription" });
176
+ }
177
+ }
178
+ for (const route of mesh.routes) {
179
+ const source = aliases.get(route.fromId) ?? aliases.get(route.fromName);
180
+ const target = aliases.get(route.targetId) ?? aliases.get(route.targetName) ?? aliases.get(route.topic);
181
+ if (source && target && source !== target)
182
+ edges.push({ from: source, to: target, kind: "route" });
183
+ }
184
+ return {
185
+ nodes,
186
+ edges,
187
+ positions: new Map(nodes.map((node) => [node.id, { x: node.x, y: node.y }])),
188
+ };
189
+ };
190
+ const lineChar = (mask) => {
191
+ const chars = {
192
+ 1: "│", 2: "─", 3: "└", 4: "│", 5: "│", 6: "┌", 7: "├",
193
+ 8: "─", 9: "┘", 10: "─", 11: "┴", 12: "┐", 13: "┤", 14: "┬", 15: "┼",
194
+ };
195
+ return chars[mask] ?? "·";
196
+ };
197
+ const styleForStatus = (status) => {
198
+ if (["failed", "timed_out", "error"].includes(status))
199
+ return "error";
200
+ if (status === "blocked")
201
+ return "warning";
202
+ if (isActiveStatus(status))
203
+ return "success";
204
+ return "dim";
205
+ };
206
+ const renderCanvas = (theme, layout, selectedEntityId, width, height, camera) => {
207
+ const originX = Math.round(camera.x - width / 2);
208
+ const originY = Math.round(camera.y - height / 2);
209
+ const cells = Array.from({ length: height }, () => Array.from({ length: width }, () => ({ char: " ", style: "plain" })));
210
+ const masks = Array.from({ length: height }, () => Array(width).fill(0));
211
+ const nodeById = new Map(layout.nodes.map((node) => [node.id, node]));
212
+ const setCell = (x, y, char, style) => {
213
+ const sx = x - originX;
214
+ const sy = y - originY;
215
+ if (sx < 0 || sx >= width || sy < 0 || sy >= height)
216
+ return;
217
+ cells[sy][sx] = { char, style };
218
+ };
219
+ const addMask = (x, y, mask) => {
220
+ const sx = x - originX;
221
+ const sy = y - originY;
222
+ if (sx < 0 || sx >= width || sy < 0 || sy >= height)
223
+ return;
224
+ masks[sy][sx] = (masks[sy][sx] ?? 0) | mask;
225
+ };
226
+ const horizontal = (x1, x2, y) => {
227
+ if (y < originY || y >= originY + height)
228
+ return;
229
+ const worldStart = Math.min(x1, x2);
230
+ const worldEnd = Math.max(x1, x2);
231
+ const start = Math.max(worldStart, originX);
232
+ const end = Math.min(worldEnd, originX + width - 1);
233
+ for (let x = start; x <= end; x++) {
234
+ addMask(x, y, (x > worldStart ? 8 : 0) | (x < worldEnd ? 2 : 0));
235
+ }
236
+ };
237
+ const vertical = (x, y1, y2) => {
238
+ if (x < originX || x >= originX + width)
239
+ return;
240
+ const worldStart = Math.min(y1, y2);
241
+ const worldEnd = Math.max(y1, y2);
242
+ const start = Math.max(worldStart, originY);
243
+ const end = Math.min(worldEnd, originY + height - 1);
244
+ for (let y = start; y <= end; y++) {
245
+ addMask(x, y, (y > worldStart ? 1 : 0) | (y < worldEnd ? 4 : 0));
246
+ }
247
+ };
248
+ const meshPaths = [];
249
+ for (const edge of layout.edges) {
250
+ if (edge.kind !== "structure" && edge.from !== selectedEntityId && edge.to !== selectedEntityId)
251
+ continue;
252
+ const from = nodeById.get(edge.from);
253
+ const to = nodeById.get(edge.to);
254
+ if (!from || !to)
255
+ continue;
256
+ if (edge.kind !== "structure") {
257
+ meshPaths.push({ from, to });
258
+ continue;
259
+ }
260
+ const fromEnd = from.x + Math.min(16, visibleWidth(safeText(from.label)) + 3);
261
+ const toStart = to.x - 2;
262
+ const bend = Math.max(fromEnd + 1, Math.floor((fromEnd + toStart) / 2));
263
+ horizontal(fromEnd, bend, from.y);
264
+ vertical(bend, from.y, to.y);
265
+ horizontal(bend, toStart, to.y);
266
+ }
267
+ for (let y = 0; y < height; y++) {
268
+ for (let x = 0; x < width; x++) {
269
+ const mask = masks[y]?.[x] ?? 0;
270
+ if (mask)
271
+ cells[y][x] = { char: lineChar(mask), style: "edge" };
272
+ }
273
+ }
274
+ for (const { from, to } of meshPaths) {
275
+ const fromEnd = from.x + Math.min(16, visibleWidth(safeText(from.label)) + 3);
276
+ const toStart = to.x - 2;
277
+ const bend = Math.max(fromEnd + 1, Math.floor((fromEnd + toStart) / 2));
278
+ const drawDots = (x1, y1, x2, y2) => {
279
+ if (y1 === y2) {
280
+ if (y1 < originY || y1 >= originY + height)
281
+ return;
282
+ const worldStart = Math.min(x1, x2);
283
+ const start = Math.max(worldStart, originX);
284
+ const end = Math.min(Math.max(x1, x2), originX + width - 1);
285
+ const alignedStart = start + ((start - worldStart) % 2);
286
+ for (let x = alignedStart; x <= end; x += 2)
287
+ setCell(x, y1, "·", "accent");
288
+ return;
289
+ }
290
+ if (x1 < originX || x1 >= originX + width)
291
+ return;
292
+ const worldStart = Math.min(y1, y2);
293
+ const start = Math.max(worldStart, originY);
294
+ const end = Math.min(Math.max(y1, y2), originY + height - 1);
295
+ const alignedStart = start + ((start - worldStart) % 2);
296
+ for (let y = alignedStart; y <= end; y += 2)
297
+ setCell(x1, y, "·", "accent");
298
+ };
299
+ drawDots(fromEnd, from.y, bend, from.y);
300
+ drawDots(bend, from.y, bend, to.y);
301
+ drawDots(bend, to.y, toStart, to.y);
302
+ }
303
+ for (const node of layout.nodes) {
304
+ const selected = node.id === selectedEntityId;
305
+ const glyph = selected ? "▣" : graphGlyph(node.kind);
306
+ const label = graphLabel(safeText(node.label), 14);
307
+ setCell(node.x, node.y, glyph, selected ? "accent" : styleForStatus(node.status));
308
+ setCell(node.x + 1, node.y, " ", "plain");
309
+ let offset = 0;
310
+ for (const char of label) {
311
+ setCell(node.x + 2 + offset, node.y, char, selected ? "accent" : "plain");
312
+ offset += visibleWidth(char);
313
+ }
314
+ }
315
+ const apply = (style, value) => {
316
+ if (style === "edge")
317
+ return theme.fg("borderMuted", value);
318
+ if (style === "dim")
319
+ return theme.fg("dim", value);
320
+ if (style === "accent")
321
+ return theme.fg("accent", theme.bold(value));
322
+ if (style === "success")
323
+ return theme.fg("success", value);
324
+ if (style === "warning")
325
+ return theme.fg("warning", value);
326
+ if (style === "error")
327
+ return theme.fg("error", value);
328
+ return value;
329
+ };
330
+ return cells.map((row) => {
331
+ let rendered = "";
332
+ let style = row[0]?.style ?? "plain";
333
+ let run = "";
334
+ for (const cell of row) {
335
+ if (cell.style !== style) {
336
+ rendered += apply(style, run);
337
+ style = cell.style;
338
+ run = "";
339
+ }
340
+ run += cell.char;
341
+ }
342
+ rendered += apply(style, run);
343
+ return truncateToWidth(rendered, width, "");
344
+ });
345
+ };
346
+ const wrapInspector = (theme, label, value, width) => {
347
+ const clean = safeText(value);
348
+ const first = truncateToWidth(clean, Math.max(1, width - label.length - 1), "…");
349
+ return [`${label} ${theme.fg("dim", first)}`];
350
+ };
351
+ const inspectorLines = (theme, entity, snapshot, run, width, height) => {
352
+ const inner = Math.max(1, width - 2);
353
+ const border = (value) => theme.fg("borderMuted", value);
354
+ const content = [];
355
+ if (entity) {
356
+ content.push(theme.fg("accent", theme.bold(truncateToWidth(safeText(entity.label), inner - 2, "…"))));
357
+ content.push(colorStatus(theme, entity.status, `${statusGlyph(entity.status)} ${entity.kind} · ${entity.status}`));
358
+ content.push("");
359
+ content.push(theme.fg("dim", truncateToWidth(safeText(entityTail(entity, snapshot.now)), inner - 2, "…")));
360
+ if (entity.kind === "agent") {
361
+ const agentRun = snapshot.runs.find((candidate) => candidate.id === entity.value.runId) ?? run;
362
+ const phase = agentRun?.phases.find((candidate) => candidate.id === entity.value.phaseId);
363
+ if (agentRun)
364
+ content.push(`run ${safeText(agentRun.name)}`);
365
+ if (phase)
366
+ content.push(`phase ${safeText(phase.name)}`);
367
+ if (entity.value.currentTool)
368
+ content.push(`tool ${safeText(entity.value.currentTool)}`);
369
+ if (entity.value.model)
370
+ content.push(`model ${safeText(entity.value.model)}`);
371
+ if (entity.value.task)
372
+ content.push(...wrapInspector(theme, "task", entity.value.task, inner - 2));
373
+ }
374
+ else if (entity.kind === "actor") {
375
+ content.push(`runner ${entity.value.runner}`);
376
+ content.push(`queue ${entity.value.queued}`);
377
+ if (entity.value.topics.length > 0)
378
+ content.push(`${entity.value.topics.length} subscriptions`);
379
+ }
380
+ else if (entity.kind === "meshTopic") {
381
+ content.push(`${entity.value.subscribers.length} subscribers`);
382
+ content.push(`${entity.value.recentEvents} recent events`);
383
+ }
384
+ else if (entity.kind === "meshRoute") {
385
+ content.push(`${safeText(entity.value.fromName)} → ${safeText(entity.value.targetName)}`);
386
+ content.push(theme.fg("dim", safeText(entity.value.topic)));
387
+ }
388
+ else if (entity.kind === "state") {
389
+ content.push(`version ${entity.value.version}`);
390
+ if (entity.value.owner)
391
+ content.push(`owner ${safeText(entity.value.owner)}`);
392
+ }
393
+ }
394
+ else {
395
+ content.push(theme.fg("dim", "No node selected"));
396
+ }
397
+ const title = " selected ";
398
+ const rows = [border(`╭${title}${"─".repeat(Math.max(0, inner - visibleWidth(title)))}╮`)];
399
+ for (let index = 0; index < height - 2; index++) {
400
+ rows.push(`${border("│")}${padToWidth(` ${content[index] ?? ""}`, inner)}${border("│")}`);
401
+ }
402
+ rows.push(border(`╰${"─".repeat(inner)}╯`));
403
+ return rows.slice(0, height);
404
+ };
405
+ const graphContextEntities = (allEntities, entities) => {
406
+ const byRawId = new Map();
407
+ for (const entity of allEntities) {
408
+ for (const identity of rawIdentity(entity)) {
409
+ if (identity)
410
+ byRawId.set(identity, entity);
411
+ }
412
+ }
413
+ const visible = new Map(entities.map((entity) => [entity.id, entity]));
414
+ for (const entity of entities) {
415
+ let parentRef = parentReference(entity);
416
+ const visited = new Set();
417
+ while (parentRef && !visited.has(parentRef)) {
418
+ visited.add(parentRef);
419
+ const parent = byRawId.get(parentRef);
420
+ if (!parent)
421
+ break;
422
+ visible.set(parent.id, parent);
423
+ parentRef = parentReference(parent);
424
+ }
425
+ }
426
+ return allEntities.filter((entity) => visible.has(entity.id));
427
+ };
428
+ export const renderFabricTopologyPanel = ({ theme, filter, selectedEntityId, snapshot, run, mesh, allEntities, entities, width, height, camera, }) => {
429
+ const graphEntities = graphContextEntities(allEntities, entities);
430
+ const layout = buildLayout(snapshot, graphEntities, run, mesh);
431
+ const selectableIds = new Set(entities.map((entity) => entity.id));
432
+ const selected = entities.find((entity) => entity.id === selectedEntityId) ?? entities[0];
433
+ const inspectorWidth = width >= 92 ? Math.min(36, Math.max(30, Math.floor(width * 0.3))) : 0;
434
+ const graphWidth = Math.max(1, width - inspectorWidth);
435
+ const graph = renderCanvas(theme, layout, selected?.id, graphWidth, height, camera);
436
+ const inspector = inspectorWidth > 0
437
+ ? inspectorLines(theme, selected, snapshot, run, inspectorWidth, height)
438
+ : [];
439
+ const lines = inspectorWidth > 0
440
+ ? graph.map((line, index) => `${padToWidth(line, graphWidth)}${inspector[index] ?? ""}`)
441
+ : graph;
442
+ const active = entities.filter((entity) => isActiveStatus(entity.status)).length;
443
+ const originX = Math.round(camera.x - graphWidth / 2);
444
+ const originY = Math.round(camera.y - height / 2);
445
+ const hiddenLeft = layout.nodes.filter((node) => node.x < originX).length;
446
+ const hiddenRight = layout.nodes.filter((node) => node.x + 2 > originX + graphWidth).length;
447
+ const hiddenUp = layout.nodes.filter((node) => node.y < originY).length;
448
+ const hiddenDown = layout.nodes.filter((node) => node.y >= originY + height).length;
449
+ const offCanvas = new Set(layout.nodes
450
+ .filter((node) => node.x < originX || node.x + 2 > originX + graphWidth ||
451
+ node.y < originY || node.y >= originY + height)
452
+ .map((node) => node.id)).size;
453
+ const directions = [
454
+ hiddenLeft > 0 ? "←" : "",
455
+ hiddenRight > 0 ? "→" : "",
456
+ hiddenUp > 0 ? "↑" : "",
457
+ hiddenDown > 0 ? "↓" : "",
458
+ ].join("");
459
+ if (lines.length > 0 && height > 1) {
460
+ const legend = [
461
+ offCanvas > 0 ? `${directions} ${offCanvas} off-canvas` : undefined,
462
+ `${active} active`,
463
+ "◆ Main",
464
+ "■ agent",
465
+ "◇ actor",
466
+ "◎ topic",
467
+ filter !== "all" ? `${entities.length}/${allEntities.length} ${filter}` : undefined,
468
+ ].filter((value) => Boolean(value)).join(" · ");
469
+ const graphLegend = padToWidth(theme.fg("dim", truncateToWidth(legend, graphWidth, "")), graphWidth);
470
+ lines[0] = truncateToWidth(graphLegend + (inspectorWidth > 0 ? inspector[0] ?? "" : ""), width, "");
471
+ }
472
+ const selectedPosition = selected ? layout.positions.get(selected.id) : undefined;
473
+ return {
474
+ lines,
475
+ positions: new Map([...layout.positions].filter(([id]) => selectableIds.has(id))),
476
+ ...(selectedPosition ? { selectedPosition } : {}),
477
+ };
478
+ };
479
+ export const directionalGraphTarget = (positions, currentId, direction) => {
480
+ const current = currentId ? positions.get(currentId) : undefined;
481
+ if (!current)
482
+ return positions.keys().next().value;
483
+ let best;
484
+ for (const [id, point] of positions) {
485
+ if (id === currentId)
486
+ continue;
487
+ const dx = point.x - current.x;
488
+ const dy = point.y - current.y;
489
+ const primary = direction === "left" ? -dx : direction === "right" ? dx : direction === "up" ? -dy : dy;
490
+ if (primary <= 0)
491
+ continue;
492
+ const secondary = direction === "left" || direction === "right" ? Math.abs(dy) : Math.abs(dx);
493
+ const score = primary + secondary * 2.4;
494
+ if (!best || score < best.score)
495
+ best = { id, score };
496
+ }
497
+ return best?.id;
498
+ };
499
+ //# sourceMappingURL=dashboard-fabric-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-fabric-graph.js","sourceRoot":"","sources":["../../src/ui/dashboard-fabric-graph.ts"],"names":[],"mappings":"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"}
@@ -84,7 +84,6 @@ export interface PhasePanel {
84
84
  }
85
85
  export type Pane = "phases" | "entities";
86
86
  export type OverviewView = "activity" | "topology";
87
- export type TopologyView = "run" | "mesh";
88
87
  type EntityGroupKind = FabricActivityKind | "globalActor" | "peer" | "state" | "meshParticipant" | "meshTopic" | "meshRoute";
89
88
  export interface EntityGroup {
90
89
  kind: EntityGroupKind;
@@ -97,7 +96,7 @@ export interface EntityGroup {
97
96
  export declare const groupEntities: (entities: Entity[]) => EntityGroup[];
98
97
  export type StatusFilter = "all" | "active" | "completed" | "failed";
99
98
  export declare const filters: StatusFilter[];
100
- export declare const entitiesForOverview: (snapshot: FabricDashboardSnapshot, run: FabricActivityRun | undefined, panel: PhasePanel | undefined, view: OverviewView, topologyView: TopologyView, projectMesh?: FabricProjectMeshModel) => Entity[];
99
+ export declare const entitiesForOverview: (snapshot: FabricDashboardSnapshot, run: FabricActivityRun | undefined, panel: PhasePanel | undefined, view: OverviewView, projectMesh?: FabricProjectMeshModel) => Entity[];
101
100
  export declare const phasePanels: (snapshot: FabricDashboardSnapshot, run: FabricActivityRun | undefined) => PhasePanel[];
102
101
  export declare const matchesFilter: (status: string, filter: StatusFilter) => boolean;
103
102
  export declare const tokensFor: (snapshot: FabricDashboardSnapshot, run: FabricActivityRun | undefined) => number;
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-model.d.ts","sourceRoot":"","sources":["../../src/ui/dashboard-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard-model.d.ts","sourceRoot":"","sources":["../../src/ui/dashboard-model.ts"],"names":[],"mappings":"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"}