@fnndsc/brasa 0.7.0 → 0.9.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.
@@ -10,6 +10,7 @@
10
10
  */
11
11
  import chalk from 'chalk';
12
12
  import { collapse_build } from './feed.tree.collapse.js';
13
+ import { diagramTopology_nest, diagramTree_walk, } from './diagram.tree.js';
13
14
  /** Max anomalous ids listed on a collapsed group line before eliding. */
14
15
  const MAX_ANOMALY_IDS = 3;
15
16
  /** Width of the status distribution bar. */
@@ -71,68 +72,58 @@ function anomaly_label(anomalies) {
71
72
  function collapsedNode_label(node) {
72
73
  if (node.count === 1) {
73
74
  const status = status_paint(node.anomalies.length > 0 ? node.anomalies[0].status : 'finishedSuccessfully');
74
- const join = node.joinParentIDs.length > 0 ? chalk.magenta(` ⋈ joins ${node.joinParentIDs.join(',')}`) : '';
75
- return `${node.pluginName}_${node.memberIds[0]} ${status}${join}`;
75
+ return `${node.pluginName}_${node.memberIds[0]} ${status}`;
76
76
  }
77
- const join = node.hasJoin ? chalk.magenta(' ⋈') : '';
78
- return `${chalk.bold(`${node.pluginName} ×${node.count}`)} ${status_bar(node.tally)} ${tally_label(node.tally)}${anomaly_label(node.anomalies)}${join}`;
77
+ return `${chalk.bold(`${node.pluginName} ×${node.count}`)} ${status_bar(node.tally)} ${tally_label(node.tally)}${anomaly_label(node.anomalies)}`;
79
78
  }
80
- /** Walks the anchor tree from the given roots, emitting box-drawing lines up to `maxNodes`. */
81
- function tree_walk(graph, roots, maxNodes) {
82
- const byId = new Map(graph.nodes.map((n) => [n.id, n]));
83
- const children = new Map();
84
- for (const n of graph.nodes) {
85
- if (n.parentID !== null) {
86
- const kids = children.get(n.parentID) ?? [];
87
- kids.push(n.id);
88
- children.set(n.parentID, kids);
89
- }
90
- }
91
- const lines = [];
92
- let shown = 0;
93
- let truncated = false;
94
- const flat_label = (node) => {
79
+ /** Builds nested diagram nodes for an uncollapsed feed. */
80
+ function feedFlatNodes_build(graph, roots) {
81
+ return diagramTopology_nest(graph.nodes, roots, (node, children) => {
95
82
  const status = status_paint(node.status);
96
- const join = node.joinParentIDs.length > 0 ? chalk.magenta(` ⋈ joins ${node.joinParentIDs.join(',')}`) : '';
97
- return `${node.pluginName}_${node.id} ${status}${join}`;
98
- };
99
- const emit = (id, prefix, isLast, isRoot) => {
100
- if (shown >= maxNodes) {
101
- truncated = true;
102
- return;
103
- }
104
- const node = byId.get(id);
105
- if (!node)
106
- return;
107
- const connector = isRoot ? '' : isLast ? '└─ ' : '├─ ';
108
- lines.push(`${prefix}${connector}${flat_label(node)}`);
109
- shown++;
110
- const kids = children.get(id) ?? [];
111
- const childPrefix = isRoot ? '' : prefix + (isLast ? ' ' : '│ ');
112
- kids.forEach((kid, i) => emit(kid, childPrefix, i === kids.length - 1, false));
113
- };
114
- roots.forEach((rootID, i) => emit(rootID, '', i === roots.length - 1, roots.length === 1));
115
- return { lines, shown, truncated };
83
+ return {
84
+ memberIDs: [node.id],
85
+ pluginName: node.pluginName,
86
+ functionName: `${node.pluginName}_${node.id}`,
87
+ signalName: `${node.pluginName}_${node.id}`,
88
+ label: `${node.pluginName}_${node.id} ${status}`,
89
+ multiplicity: 1,
90
+ hasJoin: node.joinParentIDs.length > 0,
91
+ joinParentIDs: node.joinParentIDs,
92
+ arguments: [],
93
+ children,
94
+ };
95
+ });
116
96
  }
117
- /** Walks the collapsed tree, using double-line connectors for `×N` groups. */
118
- function collapsed_walk(roots, maxNodes) {
119
- const lines = [];
120
- let shown = 0;
121
- let truncated = false;
122
- const emit = (node, prefix, isLast, isRoot) => {
123
- if (shown >= maxNodes) {
124
- truncated = true;
125
- return;
126
- }
127
- const group = node.count > 1;
128
- const connector = isRoot ? '' : group ? (isLast ? '╘═ ' : '╞═ ') : (isLast ? '└─ ' : '├─ ');
129
- lines.push(`${prefix}${connector}${collapsedNode_label(node)}`);
130
- shown++;
131
- const childPrefix = isRoot ? '' : prefix + (isLast ? ' ' : '│ ');
132
- node.children.forEach((child, i) => emit(child, childPrefix, i === node.children.length - 1, false));
97
+ /** Converts one collapsed feed node into the shared diagram model. */
98
+ function collapsedNode_toDiagram(node) {
99
+ const functionName = node.count === 1
100
+ ? `${node.pluginName}_${node.memberIds[0]}`
101
+ : `${node.pluginName}_x${node.count}_${node.memberIds[0]}`;
102
+ return {
103
+ memberIDs: node.memberIds,
104
+ pluginName: node.pluginName,
105
+ functionName,
106
+ signalName: functionName,
107
+ label: collapsedNode_label(node),
108
+ multiplicity: node.count,
109
+ hasJoin: node.hasJoin,
110
+ joinParentIDs: node.joinParentIDs,
111
+ arguments: [],
112
+ children: node.children.map((child) => collapsedNode_toDiagram(child)),
133
113
  };
134
- roots.forEach((root, i) => emit(root, '', i === roots.length - 1, roots.length === 1));
135
- return { lines, shown, truncated };
114
+ }
115
+ /**
116
+ * Adapts a feed graph to the shared nested diagram model.
117
+ *
118
+ * @param graph - Feed graph projection.
119
+ * @param roots - Feed roots or focused subtree root.
120
+ * @param flat - Whether to bypass sibling collapse.
121
+ * @returns Nested diagram nodes for shallow or SignalFlow rendering.
122
+ */
123
+ export function feedDiagramNodes_build(graph, roots, flat = false) {
124
+ return flat
125
+ ? feedFlatNodes_build(graph, roots)
126
+ : collapse_build(graph, roots).map((node) => collapsedNode_toDiagram(node));
136
127
  }
137
128
  /**
138
129
  * Pure render of a {@link FeedGraph} into an annotated tree. Collapses isomorphic siblings
@@ -149,14 +140,15 @@ export function feedTree_render(graph, focusId, maxNodes, flat = false) {
149
140
  return { rendered: '', shown: 0, truncated: false, error: `Node ${focusId} is not in feed ${graph.feedID}.` };
150
141
  }
151
142
  const roots = focusId !== undefined ? [focusId] : graph.rootIDs;
152
- const cap = maxNodes > 0 ? maxNodes : Number.MAX_SAFE_INTEGER;
153
- const { lines, shown, truncated } = flat
154
- ? tree_walk(graph, roots, cap)
155
- : collapsed_walk(collapse_build(graph, roots), cap);
143
+ const walk = diagramTree_walk(feedDiagramNodes_build(graph, roots, flat), maxNodes);
156
144
  const mode = flat ? chalk.dim(' [flat]') : '';
157
145
  const header = `${chalk.bold(`feed ${graph.feedID}`)} ${chalk.gray(`"${graph.title}"`)} — ` +
158
146
  `${status_paint(graph.feedStatus)} · ${graph.total} nodes${mode}` +
159
- (truncated ? chalk.yellow(` (showing ${shown}; --max-nodes 0 for all, --focus <id> to scope)`) : '');
160
- return { rendered: `${header}\n${lines.join('\n')}\n`, shown, truncated };
147
+ (walk.truncated ? chalk.yellow(` (showing ${walk.shown}; --max-nodes 0 for all, --focus <id> to scope)`) : '');
148
+ return {
149
+ rendered: `${header}\n${walk.rendered}\n`,
150
+ shown: walk.shown,
151
+ truncated: walk.truncated,
152
+ };
161
153
  }
162
154
  //# sourceMappingURL=feed.tree.render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feed.tree.render.js","sourceRoot":"","sources":["../../../src/builtins/res/feed.tree.render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feed.tree.render.js","sourceRoot":"","sources":["../../../src/builtins/res/feed.tree.render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,cAAc,EAA8B,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GAGjB,MAAM,mBAAmB,CAAC;AAE3B,yEAAyE;AACzE,MAAM,eAAe,GAAW,CAAC,CAAC;AAClC,4CAA4C;AAC5C,MAAM,SAAS,GAAW,EAAE,CAAC;AAE7B,0CAA0C;AAC1C,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,sBAAsB;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClE,IAAI,MAAM,KAAK,mBAAmB;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7D,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,UAAU,CAAC,CAAc;IACvC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrG,IAAI,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAW,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC;YAAE,CAAC,EAAE,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC;YAAE,CAAC,EAAE,CAAC;;YAAM,MAAM;QAAC,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAC7F,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACnI,CAAC;AAED,8EAA8E;AAC9E,SAAS,WAAW,CAAC,CAAc;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,sEAAsE;AACtE,SAAS,aAAa,CAAC,SAAqC;IAC1D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,KAAK,GAAW,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7F,MAAM,IAAI,GAAW,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC;IACxD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,6FAA6F;AAC7F,SAAS,mBAAmB,CAAC,IAAmB;IAC9C,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,MAAM,GAAW,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;QACnH,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;IAC9D,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;AACrJ,CAAC;AAED,2DAA2D;AAC3D,SAAS,mBAAmB,CAAC,KAAgB,EAAE,KAAe;IAC5D,OAAO,oBAAoB,CACzB,KAAK,CAAC,KAAK,EACX,KAAK,EACL,CAAC,IAAc,EAAE,QAAuB,EAAe,EAAE;QACvD,MAAM,MAAM,GAAW,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO;YACL,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE;YAC7C,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE;YAC3C,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE;YACjD,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YACtC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,SAAS,EAAE,EAAE;YACb,QAAQ;SACT,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,SAAS,uBAAuB,CAAC,IAAmB;IAClD,MAAM,YAAY,GAAW,IAAI,CAAC,KAAK,KAAK,CAAC;QAC3C,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;QAC3C,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,YAAY;QACZ,UAAU,EAAE,YAAY;QACxB,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC;QAChC,YAAY,EAAE,IAAI,CAAC,KAAK;QACxB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAoB,EAAe,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;KACnG,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAgB,EAChB,KAAe,EACf,OAAgB,KAAK;IAErB,OAAO,IAAI;QACT,CAAC,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC;QACnC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAmB,EAAe,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5G,CAAC;AAUD;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAgB,EAChB,OAA2B,EAC3B,QAAgB,EAChB,OAAgB,KAAK;IAErB,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAW,EAAW,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;QAC3F,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,OAAO,mBAAmB,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;IAChH,CAAC;IAED,MAAM,KAAK,GAAa,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IAC1E,MAAM,IAAI,GAAoB,gBAAgB,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAErG,MAAM,IAAI,GAAW,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,MAAM,MAAM,GACV,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK;QAC5E,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,KAAK,SAAS,IAAI,EAAE;QACjE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,KAAK,iDAAiD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAElH,OAAO;QACL,QAAQ,EAAE,GAAG,MAAM,KAAK,IAAI,CAAC,QAAQ,IAAI;QACzC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @file Adapter: a collapsed feed DAG → a SignalFlow document.
3
+ *
4
+ * Pure (no network, no salsa runtime — consumes the shared {@link DiagramNode} tree).
5
+ * Produces a SignalFlow doc object that serializes to JSON (valid YAML)
6
+ * for the SignalFlow renderer. SignalFlow is a replaceable rendering leaf: the render IR
7
+ * is the feed graph, and this converter is the only SignalFlow-shaped code.
8
+ *
9
+ * Mapping:
10
+ * - each collapsed node → one SignalFlow chip (`module` = `<plugin>.plugin`, `func` unique;
11
+ * a `×N` group is one named chip);
12
+ * - each anchor edge → a minted `signal` (parent `output_ports` → child `input_ports`);
13
+ * - each `ts` join (singletons only; groups aggregate joins away) → the node-reuse recipe:
14
+ * the join node is declared fully under its anchor parent and referenced *bare* under each
15
+ * join source, which emits the matching signal, with `chip_io.input.explicit`.
16
+ *
17
+ * @module
18
+ */
19
+ import type { DiagramNode } from './diagram.tree.js';
20
+ /** A SignalFlow port (forward-only: signal, no return). */
21
+ interface SfPort {
22
+ signal: string;
23
+ }
24
+ /** A SignalFlow chip node. */
25
+ export interface SfNode {
26
+ module: string;
27
+ func: string;
28
+ input_ports?: SfPort[];
29
+ output_ports?: SfPort[];
30
+ chip_io?: {
31
+ input: {
32
+ explicit: boolean;
33
+ };
34
+ };
35
+ calls: SfNode[];
36
+ }
37
+ /** A complete SignalFlow document. */
38
+ export interface SfDoc {
39
+ title: string;
40
+ config: {
41
+ channelWidth: number;
42
+ verticalChipPadding: number;
43
+ };
44
+ world: {
45
+ sense: string;
46
+ occupancy_policy: string;
47
+ packing_policy: string;
48
+ };
49
+ tree: SfNode;
50
+ }
51
+ /** Options for {@link signalflowDoc_build}. */
52
+ export interface SignalflowDocOptions {
53
+ subject: 'feed' | 'pipeline';
54
+ subjectID: number;
55
+ title: string;
56
+ }
57
+ /**
58
+ * Builds a SignalFlow document from the collapsed roots of a feed DAG.
59
+ *
60
+ * @param roots - Top-level collapsed nodes (feed roots, or a focused subtree).
61
+ * @param options - Feed id and title for the document header.
62
+ * @returns A SignalFlow document object (serialize to JSON for the renderer).
63
+ */
64
+ export declare function signalflowDoc_build(roots: DiagramNode[], options: SignalflowDocOptions): SfDoc;
65
+ export {};
@@ -0,0 +1,97 @@
1
+ /** Unique, human-readable chip identity for a collapsed node. */
2
+ function node_func(n) {
3
+ return n.functionName;
4
+ }
5
+ /** Signal name for the anchor edge into a node. */
6
+ function edge_signal(n) {
7
+ return `e_${n.signalName}`;
8
+ }
9
+ /** Signal name for a join edge from `source` into `join` node. */
10
+ function join_signal(join, source) {
11
+ return `j_${join.signalName}_${source.signalName}`;
12
+ }
13
+ /**
14
+ * Builds a SignalFlow document from the collapsed roots of a feed DAG.
15
+ *
16
+ * @param roots - Top-level collapsed nodes (feed roots, or a focused subtree).
17
+ * @param options - Feed id and title for the document header.
18
+ * @returns A SignalFlow document object (serialize to JSON for the renderer).
19
+ */
20
+ export function signalflowDoc_build(roots, options) {
21
+ // Index every node and map member instance ids → the node that holds them (a join
22
+ // source may live inside a collapsed group).
23
+ const allNodes = [];
24
+ const memberToNode = new Map();
25
+ const collect = (n) => {
26
+ allNodes.push(n);
27
+ for (const id of n.memberIDs)
28
+ memberToNode.set(id, n);
29
+ for (const c of n.children)
30
+ collect(c);
31
+ };
32
+ for (const r of roots)
33
+ collect(r);
34
+ const wiring = {
35
+ inputSignals: new Map(),
36
+ bareRefs: new Map(),
37
+ outputSignals: new Map(),
38
+ };
39
+ const push = (m, k, v) => { m.set(k, [...(m.get(k) ?? []), v]); };
40
+ for (const join of allNodes) {
41
+ if (join.multiplicity !== 1 || join.joinParentIDs.length === 0)
42
+ continue;
43
+ for (const sourceId of join.joinParentIDs) {
44
+ const source = memberToNode.get(sourceId);
45
+ if (!source || source === join)
46
+ continue;
47
+ const sig = join_signal(join, source);
48
+ push(wiring.inputSignals, join, sig);
49
+ push(wiring.outputSignals, source, sig);
50
+ push(wiring.bareRefs, source, join);
51
+ }
52
+ }
53
+ const buildFull = (n, hasAnchorParent) => {
54
+ const func = node_func(n);
55
+ const inputs = [];
56
+ if (hasAnchorParent)
57
+ inputs.push({ signal: edge_signal(n) });
58
+ for (const sig of wiring.inputSignals.get(n) ?? [])
59
+ inputs.push({ signal: sig });
60
+ const outputs = [];
61
+ for (const c of n.children)
62
+ outputs.push({ signal: edge_signal(c) });
63
+ for (const sig of wiring.outputSignals.get(n) ?? [])
64
+ outputs.push({ signal: sig });
65
+ const calls = n.children.map((c) => buildFull(c, true));
66
+ for (const ref of wiring.bareRefs.get(n) ?? []) {
67
+ calls.push({ module: `${ref.pluginName}.plugin`, func: node_func(ref), calls: [] });
68
+ }
69
+ const node = { module: `${n.pluginName}.plugin`, func, calls };
70
+ if (inputs.length)
71
+ node.input_ports = inputs;
72
+ if (outputs.length)
73
+ node.output_ports = outputs;
74
+ if ((wiring.inputSignals.get(n) ?? []).length)
75
+ node.chip_io = { input: { explicit: true } };
76
+ return node;
77
+ };
78
+ let tree;
79
+ if (roots.length === 1) {
80
+ tree = buildFull(roots[0], false);
81
+ }
82
+ else {
83
+ tree = {
84
+ module: `${options.subject}.root`,
85
+ func: `${options.subject}_${options.subjectID}`,
86
+ output_ports: roots.map((r) => ({ signal: edge_signal(r) })),
87
+ calls: roots.map((r) => buildFull(r, true)),
88
+ };
89
+ }
90
+ return {
91
+ title: `${options.subject} ${options.subjectID}: ${options.title}`,
92
+ config: { channelWidth: 6, verticalChipPadding: 1 },
93
+ world: { sense: 'west_to_east', occupancy_policy: 'strip', packing_policy: 'monotone' },
94
+ tree,
95
+ };
96
+ }
97
+ //# sourceMappingURL=feed.tree.signalflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feed.tree.signalflow.js","sourceRoot":"","sources":["../../../src/builtins/res/feed.tree.signalflow.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  * - `info` — show a pipeline's nodes and default parameters
7
7
  * - `run` — instantiate a pipeline as a workflow on the current context node
8
8
  * - `source` — display the pipeline's YAML source file
9
+ * - `diagram` — render the registered pipeline as a shallow tree or SignalFlow YAML
9
10
  *
10
11
  * Pipelines also appear as executables in `/bin` (colored distinctly from plugins)
11
12
  * and can be invoked directly by name. `cat /bin/<name>` returns the YAML source.
@@ -0,0 +1,11 @@
1
+ import { type CommandEnvelope } from '@fnndsc/cumin';
2
+ /** Pipeline diagram output mode. */
3
+ export type PipelineDiagramMode = 'shallow' | 'shallow-withargs' | 'signalflow';
4
+ /**
5
+ * Resolves and renders one registered pipeline.
6
+ *
7
+ * @param specifier - Pipeline ID, full name, slug, or unambiguous search.
8
+ * @param mode - Shallow, shallow with arguments, or SignalFlow YAML.
9
+ * @returns A typed pipeline diagram command envelope.
10
+ */
11
+ export declare function pipelineDiagram_handle(specifier: string, mode: PipelineDiagramMode): Promise<CommandEnvelope>;
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @file `pipeline diagram` rendering over the shared feed/pipeline diagram core.
3
+ *
4
+ * Registered pipeline pipings are nested without aggregation: every authored
5
+ * piping remains visible. Shallow output can append stored defaults; SignalFlow
6
+ * output serializes the same node tree as YAML.
7
+ *
8
+ * @module
9
+ */
10
+ import chalk from 'chalk';
11
+ import { dump as yamlDump } from 'js-yaml';
12
+ import { pipelineDiagram_get, } from '@fnndsc/salsa';
13
+ import { errorStack, envelope_error, envelope_ok, } from '@fnndsc/cumin';
14
+ import { diagramTopology_nest, diagramTree_walk, } from './diagram.tree.js';
15
+ import { signalflowDoc_build } from './feed.tree.signalflow.js';
16
+ /** Builds nested shared diagram nodes without collapsing authored pipings. */
17
+ function pipelineDiagramNodes_build(graph) {
18
+ return diagramTopology_nest(graph.nodes, graph.rootIDs, (node, children) => {
19
+ return {
20
+ memberIDs: [node.id],
21
+ pluginName: node.pluginName,
22
+ functionName: node.title,
23
+ signalName: `piping_${node.id}`,
24
+ label: `${chalk.bold(node.title)} ${chalk.yellow(node.pluginName)} ${chalk.dim(`[piping ${node.id}]`)}`,
25
+ multiplicity: 1,
26
+ hasJoin: node.joinParentIDs.length > 0,
27
+ joinParentIDs: node.joinParentIDs,
28
+ arguments: node.arguments.map((argument) => ({ ...argument })),
29
+ children,
30
+ };
31
+ });
32
+ }
33
+ /**
34
+ * Resolves and renders one registered pipeline.
35
+ *
36
+ * @param specifier - Pipeline ID, full name, slug, or unambiguous search.
37
+ * @param mode - Shallow, shallow with arguments, or SignalFlow YAML.
38
+ * @returns A typed pipeline diagram command envelope.
39
+ */
40
+ export async function pipelineDiagram_handle(specifier, mode) {
41
+ const result = await pipelineDiagram_get(specifier);
42
+ if (!result.ok) {
43
+ const problem = errorStack.stack_pop();
44
+ process.exitCode = 1;
45
+ return envelope_error('', undefined, `${chalk.red(problem?.message ?? 'Pipeline not found.')}\n`);
46
+ }
47
+ const graph = result.value;
48
+ const roots = pipelineDiagramNodes_build(graph);
49
+ if (mode === 'signalflow') {
50
+ const doc = signalflowDoc_build(roots, {
51
+ subject: 'pipeline',
52
+ subjectID: graph.pipelineID,
53
+ title: graph.name,
54
+ });
55
+ const yaml = yamlDump(doc, { lineWidth: -1, noRefs: true });
56
+ return envelope_ok(yaml, {
57
+ kind: 'pipeline.diagram',
58
+ data: { pipelineID: graph.pipelineID, name: graph.name, dialect: 'signalflow', nodes: graph.nodes.length },
59
+ });
60
+ }
61
+ const walk = diagramTree_walk(roots, 0, mode === 'shallow-withargs');
62
+ const header = `${chalk.bold(`pipeline ${graph.pipelineID}`)} ${chalk.gray(`"${graph.name}"`)} — ${graph.nodes.length} nodes`;
63
+ return envelope_ok(`${header}\n${walk.rendered}\n`, {
64
+ kind: 'pipeline.diagram',
65
+ data: { pipelineID: graph.pipelineID, name: graph.name, dialect: 'shallow', nodes: graph.nodes.length },
66
+ });
67
+ }
68
+ //# sourceMappingURL=pipeline.diagram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.diagram.js","sourceRoot":"","sources":["../../../src/builtins/res/pipeline.diagram.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  * - `info` — show a pipeline's nodes and default parameters
7
7
  * - `run` — instantiate a pipeline as a workflow on the current context node
8
8
  * - `source` — display the pipeline's YAML source file
9
+ * - `diagram` — render the registered pipeline as a shallow tree or SignalFlow YAML
9
10
  *
10
11
  * Pipelines also appear as executables in `/bin` (colored distinctly from plugins)
11
12
  * and can be invoked directly by name. `cat /bin/<name>` returns the YAML source.
@@ -20,6 +21,7 @@ import { table_render } from '@fnndsc/chili/screen/screen.js';
20
21
  import { args_checkHasHelpFlag, help_render } from '../help.js';
21
22
  import { sink_get, sink_dataLine, sink_errLine } from '../../core/sink.js';
22
23
  import { pipelineRunArgs_parse } from './pipeline.args.js';
24
+ import { pipelineDiagram_handle } from './pipeline.diagram.js';
23
25
  import { session } from '../../session/index.js';
24
26
  /**
25
27
  * Renders a pipeline's node structure by fetching its piping definitions.
@@ -206,6 +208,37 @@ async function pipelineInspect_handle() {
206
208
  sink_dataLine(chalk.gray('No fields found.'));
207
209
  }
208
210
  }
211
+ /** Parses diagram flags while preserving every non-flag word as the search specifier. */
212
+ function pipelineDiagramArgs_parse(args) {
213
+ const words = [];
214
+ let withArguments = false;
215
+ let signalflow = false;
216
+ for (const argument of args.slice(1)) {
217
+ if (argument === '--withargs')
218
+ withArguments = true;
219
+ else if (argument === '--signalflow')
220
+ signalflow = true;
221
+ else
222
+ words.push(argument);
223
+ }
224
+ return { specifier: words.join(' ').trim(), withArguments, signalflow };
225
+ }
226
+ /** Handles shallow and SignalFlow pipeline diagram output. */
227
+ async function pipelineDiagramCommand_handle(args) {
228
+ const parsed = pipelineDiagramArgs_parse(args);
229
+ if (!parsed.specifier) {
230
+ process.exitCode = 1;
231
+ return envelope_error('', undefined, `${chalk.red('Usage: pipeline diagram [--withargs | --signalflow] <name|id>')}\n`);
232
+ }
233
+ if (parsed.withArguments && parsed.signalflow) {
234
+ process.exitCode = 1;
235
+ return envelope_error('', undefined, `${chalk.red('pipeline diagram: --withargs is only available for shallow rendering')}\n`);
236
+ }
237
+ const mode = parsed.signalflow
238
+ ? 'signalflow'
239
+ : parsed.withArguments ? 'shallow-withargs' : 'shallow';
240
+ return pipelineDiagram_handle(parsed.specifier, mode);
241
+ }
209
242
  /**
210
243
  * Manages ChRIS pipeline registration, inspection, and execution.
211
244
  *
@@ -218,7 +251,7 @@ export async function builtin_pipeline(args) {
218
251
  const subcommand = args[0];
219
252
  if (!subcommand) {
220
253
  const current = await chrisContext.ChRISplugin_get();
221
- sink_dataLine(chalk.gray('Usage: pipeline <list|info|run|source> [args]'));
254
+ sink_dataLine(chalk.gray('Usage: pipeline <list|info|run|source|diagram> [args]'));
222
255
  if (current) {
223
256
  sink_dataLine(chalk.gray(` Current context node: instance ${current}`));
224
257
  }
@@ -237,6 +270,8 @@ export async function builtin_pipeline(args) {
237
270
  case 'source':
238
271
  await pipelineSource_handle(args);
239
272
  return envelope_ok('');
273
+ case 'diagram':
274
+ return pipelineDiagramCommand_handle(args);
240
275
  case 'inspect':
241
276
  await pipelineInspect_handle();
242
277
  return envelope_ok('');
@@ -244,7 +279,7 @@ export async function builtin_pipeline(args) {
244
279
  return builtin_pipeline(['list', args[1] ?? '']);
245
280
  default:
246
281
  sink_errLine(chalk.red(`pipeline: unknown subcommand '${subcommand}'`));
247
- sink_dataLine(chalk.gray(' Subcommands: list, search, inspect, info, run, source'));
282
+ sink_dataLine(chalk.gray(' Subcommands: list, search, inspect, info, run, source, diagram'));
248
283
  process.exitCode = 1;
249
284
  return envelope_error('');
250
285
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/builtins/res/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,UAAU,EACV,gBAAgB,EAEhB,WAAW,EACX,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAA6B,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD;;;;GAIG;AACH,KAAK,UAAU,mBAAmB,CAAC,UAAkB;IACnD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;IACrD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAO,MAOzB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAE3B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,UAAU,YAAY,CAAC,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;QAE3C,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC7C,aAAa,CACX,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAC1F,CAAC;QACF,aAAa,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAEjD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,GAA4B,MAAM,CAAC,IAAI,CAAC;YAC/C,MAAM,EAAE,GAAW,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,KAAK,GAAW,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjE,MAAM,MAAM,GAAW,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;YAC3F,MAAM,QAAQ,GAAW,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxG,aAAa,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,aAAa,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,GAAG,GAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,mBAAmB,CAAC,IAAc;IAC/C,MAAM,MAAM,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IACD,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,aAAa,CACX,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAC9H,CAAC;IACF,aAAa,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACjD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACjC,MAAM,EAAE,GAAW,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,IAAI,GAAW,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvD,MAAM,GAAG,GAAW,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAW,MAAM,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAClD,aAAa,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,aAAa,CAAC,EAAE,CAAC,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,mBAAmB,CAAC,IAAc;IAC/C,MAAM,QAAQ,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;QACnC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,GAAG,EAAE,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/E,IAAI,CAAC,CAAC,WAAW;QAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,CAAC,OAAO;QAAM,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,CAAC,QAAQ;QAAK,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC1E,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,0BAA0B,CAAC,gBAAoC;IAC5E,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC;IAE5D,MAAM,UAAU,GAAkB,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;IACvE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACxE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC,CAAC;QACpF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,cAAc,GAAW,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QAC1B,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,UAAU,GAAG,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,kBAAkB,CAAC,IAAc;IAC9C,MAAM,QAAQ,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC,CAAC;QACvG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAyB,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAEhG,MAAM,cAAc,GAAkB,MAAM,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;IACzF,IAAI,cAAc,KAAK,IAAI;QAAE,OAAO;IAEpC,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACxD,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;QACnC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,GAAG,EAAE,OAAO,IAAI,oBAAoB,EAAE,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,cAAc,CAAC,KAAK,CAAC,IAAI,iBAAiB,cAAc,KAAK,CAAC,CAAC,CAAC;IAE9G,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;IAChF,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;QACnC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,GAAG,EAAE,OAAO,IAAI,0BAA0B,EAAE,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC;IAC1D,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,UAAU,cAAc,iBAAiB,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC;IAC5G,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,qBAAqB,CAAC,IAAc;IACjD,MAAM,QAAQ,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACxD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;QACnC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,OAAO,IAAI,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,sBAAsB;IACnC,MAAM,MAAM,GAAoB,MAAM,oBAAoB,EAAE,CAAC;IAC7D,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,QAAQ,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9J,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAc;IACnD,IAAI,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;QAC5C,OAAO,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,UAAU,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,OAAO,GAAkB,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;QACpE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;QAC3E,IAAI,OAAO,EAAE,CAAC;YACZ,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;QACzB,KAAK,MAAM;YACT,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;QACzB,KAAK,KAAK;YACR,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;QACzB,KAAK,QAAQ;YACX,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;QACzB,KAAK,SAAS;YACZ,MAAM,sBAAsB,EAAE,CAAC;YAC/B,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;QACzB,KAAK,QAAQ;YACX,OAAO,gBAAgB,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACnD;YACE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,UAAU,GAAG,CAAC,CAAC,CAAC;YACxE,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC,CAAC;YACrF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/builtins/res/pipeline.ts"],"names":[],"mappings":"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"}
@@ -229,23 +229,36 @@ export function command_timingMaybePrint(startTime, enabled) {
229
229
  /**
230
230
  * Handles a pipeline name invoked directly as an executable from /bin.
231
231
  * Routes flag combinations to the appropriate pipeline subcommand:
232
+ * --diagram → pipeline diagram (preserving renderer flags)
232
233
  * --nodes / --parameters → pipeline info
233
234
  * --source / --readme → pipeline source
234
235
  * (bare or --compute) → pipeline run
235
236
  *
236
237
  * @param name - The pipeline name as typed.
237
238
  * @param args - Arguments following the pipeline name.
239
+ * @returns The pipeline builtin's envelope, preserving diagram models and text.
238
240
  */
239
241
  async function pipelineExecutable_handle(name, args) {
240
- if (args.includes('--nodes') || args.includes('--parameters')) {
241
- await builtin_pipeline(['info', name]);
242
+ const exitCodeBefore = exitCode_read();
243
+ let envelope;
244
+ if (args.includes('--diagram')) {
245
+ const diagramArgs = args.filter((argument) => argument !== '--diagram');
246
+ envelope = await builtin_pipeline(['diagram', name, ...diagramArgs]);
247
+ }
248
+ else if (args.includes('--nodes') || args.includes('--parameters')) {
249
+ envelope = await builtin_pipeline(['info', name]);
242
250
  }
243
251
  else if (args.includes('--source') || args.includes('--readme')) {
244
- await builtin_pipeline(['source', name]);
252
+ envelope = await builtin_pipeline(['source', name]);
245
253
  }
246
254
  else {
247
- await builtin_pipeline(['run', name, ...args]);
255
+ envelope = await builtin_pipeline(['run', name, ...args]);
248
256
  }
257
+ const result = envelope ?? { status: 'ok', rendered: '' };
258
+ const exitCodeAfter = exitCode_read();
259
+ if (exitCodeAfter !== 0 && exitCodeAfter !== exitCodeBefore)
260
+ result.status = 'error';
261
+ return result;
249
262
  }
250
263
  /**
251
264
  * Expands `$NAME` and `${NAME}` environment references in one token.
@@ -377,7 +390,9 @@ async function commandDispatchEnvelope_run(command, args) {
377
390
  return handler_runDirect((pluginArgs) => builtin_executePlugin(command, pluginArgs), args);
378
391
  }
379
392
  if (pipelineItem) {
380
- return handler_runDirect((pipelineArgs) => pipelineExecutable_handle(command, pipelineArgs), args);
393
+ const envelope = await pipelineExecutable_handle(command, args);
394
+ envelope_deliver(envelope);
395
+ return envelope;
381
396
  }
382
397
  }
383
398
  // Unknown commands are guarded, then delegated to chili — its output is