@vyuhlabs/dxkit 2.18.1 → 2.20.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.
Files changed (68) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/analyzers/flow/csv.d.ts +17 -0
  3. package/dist/analyzers/flow/csv.d.ts.map +1 -0
  4. package/dist/analyzers/flow/csv.js +64 -0
  5. package/dist/analyzers/flow/csv.js.map +1 -0
  6. package/dist/analyzers/flow/extract.d.ts +64 -0
  7. package/dist/analyzers/flow/extract.d.ts.map +1 -0
  8. package/dist/analyzers/flow/extract.js +254 -0
  9. package/dist/analyzers/flow/extract.js.map +1 -0
  10. package/dist/analyzers/flow/gather.d.ts +24 -0
  11. package/dist/analyzers/flow/gather.d.ts.map +1 -0
  12. package/dist/analyzers/flow/gather.js +50 -0
  13. package/dist/analyzers/flow/gather.js.map +1 -0
  14. package/dist/analyzers/flow/model.d.ts +63 -0
  15. package/dist/analyzers/flow/model.d.ts.map +1 -0
  16. package/dist/analyzers/flow/model.js +78 -0
  17. package/dist/analyzers/flow/model.js.map +1 -0
  18. package/dist/analyzers/flow/normalize.d.ts +76 -0
  19. package/dist/analyzers/flow/normalize.d.ts.map +1 -0
  20. package/dist/analyzers/flow/normalize.js +133 -0
  21. package/dist/analyzers/flow/normalize.js.map +1 -0
  22. package/dist/analyzers/flow/spec-source.d.ts +44 -0
  23. package/dist/analyzers/flow/spec-source.d.ts.map +1 -0
  24. package/dist/analyzers/flow/spec-source.js +75 -0
  25. package/dist/analyzers/flow/spec-source.js.map +1 -0
  26. package/dist/ast/parse.d.ts +71 -0
  27. package/dist/ast/parse.d.ts.map +1 -0
  28. package/dist/ast/parse.js +220 -0
  29. package/dist/ast/parse.js.map +1 -0
  30. package/dist/cli.d.ts.map +1 -1
  31. package/dist/cli.js +46 -0
  32. package/dist/cli.js.map +1 -1
  33. package/dist/dashboard/graph-adapter.d.ts.map +1 -1
  34. package/dist/dashboard/graph-adapter.js +1 -4
  35. package/dist/dashboard/graph-adapter.js.map +1 -1
  36. package/dist/explore/flow-graph.d.ts +62 -0
  37. package/dist/explore/flow-graph.d.ts.map +1 -0
  38. package/dist/explore/flow-graph.js +202 -0
  39. package/dist/explore/flow-graph.js.map +1 -0
  40. package/dist/explore/flow-view.d.ts +33 -0
  41. package/dist/explore/flow-view.d.ts.map +1 -0
  42. package/dist/explore/flow-view.js +85 -0
  43. package/dist/explore/flow-view.js.map +1 -0
  44. package/dist/explore/load.d.ts.map +1 -1
  45. package/dist/explore/load.js +16 -3
  46. package/dist/explore/load.js.map +1 -1
  47. package/dist/explore/queries.d.ts +92 -1
  48. package/dist/explore/queries.d.ts.map +1 -1
  49. package/dist/explore/queries.js +142 -0
  50. package/dist/explore/queries.js.map +1 -1
  51. package/dist/explore/types.d.ts +56 -3
  52. package/dist/explore/types.d.ts.map +1 -1
  53. package/dist/explore/types.js +10 -2
  54. package/dist/explore/types.js.map +1 -1
  55. package/dist/flow-cli.d.ts +38 -0
  56. package/dist/flow-cli.d.ts.map +1 -0
  57. package/dist/flow-cli.js +200 -0
  58. package/dist/flow-cli.js.map +1 -0
  59. package/dist/languages/index.d.ts +15 -2
  60. package/dist/languages/index.d.ts.map +1 -1
  61. package/dist/languages/index.js +18 -0
  62. package/dist/languages/index.js.map +1 -1
  63. package/dist/languages/types.d.ts +106 -0
  64. package/dist/languages/types.d.ts.map +1 -1
  65. package/dist/languages/typescript.d.ts.map +1 -1
  66. package/dist/languages/typescript.js +32 -0
  67. package/dist/languages/typescript.js.map +1 -1
  68. package/package.json +4 -2
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ /**
3
+ * Flow → graph composition (the writer side of the v2 overlay). Turns a
4
+ * `FlowModel` (the consumed/served join) into the `http-endpoint` nodes +
5
+ * `calls-endpoint` edges that ride on top of the structural graph, then
6
+ * merges them onto whatever graphify already wrote and persists the result.
7
+ *
8
+ * The two producers stay decoupled per §10 of the design: graphify owns the
9
+ * structural nodes/edges and writes a v1 artifact unaware of flow; this module
10
+ * owns the flow overlay and composes ON TOP of graphify's output without
11
+ * graphify importing it (or vice versa). When graphify is absent the overlay
12
+ * still writes — a minimal v2 skeleton whose `calls-endpoint` edges carry the
13
+ * consuming call site's coordinates directly (Rule: the flow layer is
14
+ * graphify-independent, so the map degrades to "endpoints + who calls them by
15
+ * file", never to nothing).
16
+ *
17
+ * Graph reads/writes stay in the explore layer (Rule 12): the base is loaded
18
+ * via `tryLoadGraph`, endpoint anchoring resolves through the `queries.ts`
19
+ * primitive `enclosingNodeIdFor`, and this module is the flow overlay's single
20
+ * writer — the mirror of graphify's `writeGraphArtifact`.
21
+ */
22
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ var desc = Object.getOwnPropertyDescriptor(m, k);
25
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
26
+ desc = { enumerable: true, get: function() { return m[k]; } };
27
+ }
28
+ Object.defineProperty(o, k2, desc);
29
+ }) : (function(o, m, k, k2) {
30
+ if (k2 === undefined) k2 = k;
31
+ o[k2] = m[k];
32
+ }));
33
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
34
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
35
+ }) : function(o, v) {
36
+ o["default"] = v;
37
+ });
38
+ var __importStar = (this && this.__importStar) || (function () {
39
+ var ownKeys = function(o) {
40
+ ownKeys = Object.getOwnPropertyNames || function (o) {
41
+ var ar = [];
42
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
43
+ return ar;
44
+ };
45
+ return ownKeys(o);
46
+ };
47
+ return function (mod) {
48
+ if (mod && mod.__esModule) return mod;
49
+ var result = {};
50
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
51
+ __setModuleDefault(result, mod);
52
+ return result;
53
+ };
54
+ })();
55
+ Object.defineProperty(exports, "__esModule", { value: true });
56
+ exports.buildFlowContribution = buildFlowContribution;
57
+ exports.mergeFlowIntoGraph = mergeFlowIntoGraph;
58
+ exports.writeFlowGraph = writeFlowGraph;
59
+ const fs = __importStar(require("fs"));
60
+ const path = __importStar(require("path"));
61
+ const load_1 = require("./load");
62
+ const queries_1 = require("./queries");
63
+ const types_1 = require("./types");
64
+ /** The `${method} ${path}` join key an endpoint / call reduces to. */
65
+ function endpointKey(method, routePath) {
66
+ return `${method} ${routePath}`;
67
+ }
68
+ /**
69
+ * Build the flow overlay from a model. One `http-endpoint` node per distinct
70
+ * served `(method, path)` (deduped — a route surfaced by both a spec and static
71
+ * extraction collapses to one endpoint, spec winning as the authoritative
72
+ * provenance), and one `calls-endpoint` edge per RESOLVED binding (a call that
73
+ * matched a served route).
74
+ *
75
+ * `base` is the structural graph when available: the edge's `from` anchors onto
76
+ * the enclosing structural node so the UI→API edge composes with the real call
77
+ * graph. Without a base (or when a call sits outside any known symbol) `from` is
78
+ * empty and the call site lives on the edge's `fromFile` / `fromLine` — enough
79
+ * to answer "who calls this endpoint" by file. Pure over its inputs.
80
+ */
81
+ function buildFlowContribution(model, base) {
82
+ // Dedup routes → endpoint nodes, keyed by the normalized join key. A spec
83
+ // route supersedes a static one for the same key (authoritative handler).
84
+ const byKey = new Map();
85
+ for (const route of model.routes) {
86
+ const key = endpointKey(route.method, route.path);
87
+ const existing = byKey.get(key);
88
+ if (!existing || (existing.via !== 'spec' && route.via === 'spec')) {
89
+ byKey.set(key, route);
90
+ }
91
+ }
92
+ const endpoints = [];
93
+ const endpointIdByKey = new Map();
94
+ let idx = 0;
95
+ for (const [key, route] of byKey) {
96
+ const id = `ep${idx++}`;
97
+ endpointIdByKey.set(key, id);
98
+ endpoints.push({
99
+ id,
100
+ kind: 'http-endpoint',
101
+ label: `${route.method} ${route.path}`,
102
+ method: route.method,
103
+ path: route.path,
104
+ via: route.via,
105
+ handler: route.handler,
106
+ sourceFile: route.file,
107
+ line: route.line,
108
+ });
109
+ }
110
+ // One calls-endpoint edge per resolved binding. Unresolved bindings
111
+ // (external / no-route) have no endpoint to point at — they are the map's
112
+ // "dangling call" set, surfaced by queries, not as edges.
113
+ const edges = [];
114
+ for (const binding of model.bindings) {
115
+ if (!binding.route)
116
+ continue;
117
+ const key = endpointKey(binding.route.method, binding.route.path);
118
+ const endpointId = endpointIdByKey.get(key);
119
+ if (!endpointId)
120
+ continue;
121
+ const from = base ? ((0, queries_1.enclosingNodeIdFor)(base, binding.call.file, binding.call.line) ?? '') : '';
122
+ edges.push({
123
+ from,
124
+ to: endpointId,
125
+ relation: 'calls-endpoint',
126
+ fromFile: binding.call.file,
127
+ fromLine: binding.call.line,
128
+ });
129
+ }
130
+ return { endpoints, edges };
131
+ }
132
+ /**
133
+ * Compose a full v2 `GraphJson` from a (possibly absent) structural base and a
134
+ * flow model. With a base, the structural nodes/edges/communities/symbolIndex
135
+ * are preserved verbatim and the flow overlay is appended (edges into the
136
+ * shared `edges` array, endpoints into the new `endpoints` array); the schema
137
+ * version is stamped to v2. Without a base, a minimal skeleton carries the
138
+ * overlay alone, so `vyuh-dxkit flow` produces a map even where graphify never
139
+ * ran (a pure-frontend repo, a CI job without Python).
140
+ */
141
+ function mergeFlowIntoGraph(base, model) {
142
+ const contribution = buildFlowContribution(model, base);
143
+ if (base) {
144
+ // The overlay is REGENERATED each run, never accumulated: strip any
145
+ // calls-endpoint edges a previous flow run left on the base (endpoints are
146
+ // already replaced wholesale below), then append this run's fresh edges.
147
+ // Without this, re-running `flow` stacks duplicate bindings.
148
+ const structuralEdges = base.edges.filter((e) => e.relation !== 'calls-endpoint');
149
+ return {
150
+ schemaVersion: types_1.GRAPH_SCHEMA_VERSION,
151
+ meta: base.meta,
152
+ nodes: base.nodes,
153
+ edges: [...structuralEdges, ...contribution.edges],
154
+ communities: base.communities,
155
+ symbolIndex: base.symbolIndex,
156
+ endpoints: contribution.endpoints,
157
+ };
158
+ }
159
+ return {
160
+ schemaVersion: types_1.GRAPH_SCHEMA_VERSION,
161
+ meta: {
162
+ tool: 'graphify',
163
+ graphifyVersion: '',
164
+ dxkitVersion: '',
165
+ generatedAt: '',
166
+ sourceFilesInGraph: 0,
167
+ excludedFileCount: 0,
168
+ packs: [],
169
+ truncated: false,
170
+ truncatedReason: '',
171
+ },
172
+ nodes: [],
173
+ edges: contribution.edges,
174
+ communities: [],
175
+ symbolIndex: {},
176
+ endpoints: contribution.endpoints,
177
+ };
178
+ }
179
+ /**
180
+ * Persist the flow-augmented graph to its canonical disk location, composing
181
+ * onto graphify's base when one exists. Returns the merged graph so an
182
+ * in-memory caller (the `flow` CLI) can render without a disk round-trip.
183
+ *
184
+ * Mirror of graphify's `writeGraphArtifact`: a failed write is a warning, not a
185
+ * throw — the graph is a convenience artifact, and the CLI already has the
186
+ * model in hand for its terminal output.
187
+ */
188
+ function writeFlowGraph(cwd, model) {
189
+ const base = (0, load_1.tryLoadGraph)(cwd);
190
+ const merged = mergeFlowIntoGraph(base, model);
191
+ const absPath = path.join(cwd, types_1.GRAPH_REPORT_PATH);
192
+ try {
193
+ fs.mkdirSync(path.dirname(absPath), { recursive: true });
194
+ fs.writeFileSync(absPath, JSON.stringify(merged));
195
+ }
196
+ catch (err) {
197
+ const msg = err instanceof Error ? err.message : String(err);
198
+ process.stderr.write(`dxkit: failed to write ${types_1.GRAPH_REPORT_PATH}: ${msg}\n`);
199
+ }
200
+ return merged;
201
+ }
202
+ //# sourceMappingURL=flow-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-graph.js","sourceRoot":"","sources":["../../src/explore/flow-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Flow read-side orchestration for the `vyuh-dxkit flow` CLI. Composes the
3
+ * three explore primitives the CLI is not allowed to touch directly (Rule 12
4
+ * confines graph load + query to the explore layer): write the overlay
5
+ * (`flow-graph.ts`), reload the indexed graph (`load.ts`), run the pure query
6
+ * (`queries.ts`). The CLI consumes the returned view and renders — it never
7
+ * loads or traverses the graph itself.
8
+ */
9
+ import { type FlowMap, type FlowTrace } from './queries';
10
+ import type { FlowModel } from '../analyzers/flow/model';
11
+ /**
12
+ * Build the flow map: persist the overlay onto graph.json, then read it back
13
+ * and run `flowMapQuery`. Reloading (rather than indexing the merged json
14
+ * in-memory) keeps the on-disk artifact and the rendered view guaranteed
15
+ * consistent, and the graph.json is a small file. Degrades to an empty map if
16
+ * the write+reload fails (never throws for the CLI).
17
+ */
18
+ export declare function buildFlowMap(cwd: string, model: FlowModel): FlowMap;
19
+ /** Not-found trace carries the candidate endpoint labels so the CLI can print a
20
+ * "did you mean" list keyed off the same graph. */
21
+ export interface FlowTraceView {
22
+ trace: FlowTrace;
23
+ candidates: string[];
24
+ }
25
+ /**
26
+ * Build the trace for one endpoint. `target` resolves against the freshly
27
+ * written graph by, in order: exact endpoint id (`ep3`), exact join key
28
+ * (`GET /articles/{var}`), then the method-uppercased key — so a user can paste
29
+ * the label shown by `flow map` verbatim. On no match, `trace.found` is false
30
+ * and `candidates` lists every endpoint label for a "did you mean" hint.
31
+ */
32
+ export declare function buildFlowTrace(cwd: string, model: FlowModel, target: string): FlowTraceView;
33
+ //# sourceMappingURL=flow-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-view.d.ts","sourceRoot":"","sources":["../../src/explore/flow-view.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAA2B,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAUzD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAInE;AAED;oDACoD;AACpD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAc3F"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ /**
3
+ * Flow read-side orchestration for the `vyuh-dxkit flow` CLI. Composes the
4
+ * three explore primitives the CLI is not allowed to touch directly (Rule 12
5
+ * confines graph load + query to the explore layer): write the overlay
6
+ * (`flow-graph.ts`), reload the indexed graph (`load.ts`), run the pure query
7
+ * (`queries.ts`). The CLI consumes the returned view and renders — it never
8
+ * loads or traverses the graph itself.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.buildFlowMap = buildFlowMap;
12
+ exports.buildFlowTrace = buildFlowTrace;
13
+ const flow_graph_1 = require("./flow-graph");
14
+ const load_1 = require("./load");
15
+ const queries_1 = require("./queries");
16
+ const EMPTY_MAP = {
17
+ endpoints: [],
18
+ unconsumedEndpoints: [],
19
+ totalEndpoints: 0,
20
+ totalBindings: 0,
21
+ };
22
+ /**
23
+ * Build the flow map: persist the overlay onto graph.json, then read it back
24
+ * and run `flowMapQuery`. Reloading (rather than indexing the merged json
25
+ * in-memory) keeps the on-disk artifact and the rendered view guaranteed
26
+ * consistent, and the graph.json is a small file. Degrades to an empty map if
27
+ * the write+reload fails (never throws for the CLI).
28
+ */
29
+ function buildFlowMap(cwd, model) {
30
+ (0, flow_graph_1.writeFlowGraph)(cwd, model);
31
+ const graph = (0, load_1.tryLoadGraph)(cwd);
32
+ return graph ? (0, queries_1.flowMapQuery)(graph) : EMPTY_MAP;
33
+ }
34
+ /**
35
+ * Build the trace for one endpoint. `target` resolves against the freshly
36
+ * written graph by, in order: exact endpoint id (`ep3`), exact join key
37
+ * (`GET /articles/{var}`), then the method-uppercased key — so a user can paste
38
+ * the label shown by `flow map` verbatim. On no match, `trace.found` is false
39
+ * and `candidates` lists every endpoint label for a "did you mean" hint.
40
+ */
41
+ function buildFlowTrace(cwd, model, target) {
42
+ (0, flow_graph_1.writeFlowGraph)(cwd, model);
43
+ const graph = (0, load_1.tryLoadGraph)(cwd);
44
+ if (!graph) {
45
+ return { trace: notFoundTrace(target), candidates: [] };
46
+ }
47
+ const endpoint = resolveEndpoint(graph, target);
48
+ if (!endpoint) {
49
+ return {
50
+ trace: notFoundTrace(target),
51
+ candidates: graph.endpoints.map((e) => e.label).sort(),
52
+ };
53
+ }
54
+ return { trace: (0, queries_1.flowTrace)(graph, endpoint.id), candidates: [] };
55
+ }
56
+ function resolveEndpoint(graph, target) {
57
+ const t = target.trim();
58
+ const byId = graph.endpointById.get(t);
59
+ if (byId)
60
+ return byId;
61
+ const byKey = graph.endpointByKey.get(t);
62
+ if (byKey)
63
+ return byKey;
64
+ const space = t.indexOf(' ');
65
+ if (space > 0) {
66
+ const upper = `${t.slice(0, space).toUpperCase()} ${t.slice(space + 1)}`;
67
+ return graph.endpointByKey.get(upper);
68
+ }
69
+ return undefined;
70
+ }
71
+ function notFoundTrace(_target) {
72
+ return {
73
+ found: false,
74
+ handler: null,
75
+ consumers: [],
76
+ blastRadius: {
77
+ endpointId: '',
78
+ directConsumers: 0,
79
+ consumerFiles: 0,
80
+ upstreamCallers: 0,
81
+ upstreamFiles: 0,
82
+ },
83
+ };
84
+ }
85
+ //# sourceMappingURL=flow-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-view.js","sourceRoot":"","sources":["../../src/explore/flow-view.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAsBH,oCAIC;AAgBD,wCAcC;AAtDD,6CAA8C;AAC9C,iCAAsC;AACtC,uCAAkF;AAIlF,MAAM,SAAS,GAAY;IACzB,SAAS,EAAE,EAAE;IACb,mBAAmB,EAAE,EAAE;IACvB,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC;CACjB,CAAC;AAEF;;;;;;GAMG;AACH,SAAgB,YAAY,CAAC,GAAW,EAAE,KAAgB;IACxD,IAAA,2BAAc,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAA,mBAAY,EAAC,GAAG,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,CAAC,CAAC,IAAA,sBAAY,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AASD;;;;;;GAMG;AACH,SAAgB,cAAc,CAAC,GAAW,EAAE,KAAgB,EAAE,MAAc;IAC1E,IAAA,2BAAc,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAA,mBAAY,EAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC1D,CAAC;IACD,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC;YAC5B,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;SACvD,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAA,mBAAS,EAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAClE,CAAC;AAED,SAAS,eAAe,CAAC,KAAY,EAAE,MAAc;IACnD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,EAAE;QACb,WAAW,EAAE;YACX,UAAU,EAAE,EAAE;YACd,eAAe,EAAE,CAAC;YAClB,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,CAAC;YAClB,aAAa,EAAE,CAAC;SACjB;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/explore/load.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EACL,iBAAiB,EAGjB,KAAK,KAAK,EAIX,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B,qBAAa,kBAAmB,SAAQ,KAAK;aACf,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;CAM5C;AAED,qBAAa,uBAAwB,SAAQ,KAAK;aAE9B,OAAO,EAAE,MAAM;aACf,KAAK,EAAE,OAAO;aACd,QAAQ,EAAE,MAAM;gBAFhB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM;CAOnC;AAED,qBAAa,iBAAkB,SAAQ,KAAK;aAExB,OAAO,EAAE,MAAM;aACf,MAAM,EAAE,MAAM;gBADd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM;CAKjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAa5C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAM3D"}
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/explore/load.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EACL,iBAAiB,EAGjB,KAAK,KAAK,EAKX,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B,qBAAa,kBAAmB,SAAQ,KAAK;aACf,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;CAM5C;AAED,qBAAa,uBAAwB,SAAQ,KAAK;aAE9B,OAAO,EAAE,MAAM;aACf,KAAK,EAAE,OAAO;aACd,QAAQ,EAAE,MAAM;gBAFhB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM;CAOnC;AAED,qBAAa,iBAAkB,SAAQ,KAAK;aAExB,OAAO,EAAE,MAAM;aACf,MAAM,EAAE,MAAM;gBADd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM;CAKjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAa5C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAM3D"}
@@ -138,8 +138,6 @@ function validateAndUpgrade(absPath, raw) {
138
138
  if (v > types_1.GRAPH_SCHEMA_VERSION) {
139
139
  throw new GraphSchemaVersionError(absPath, v, types_1.GRAPH_SCHEMA_VERSION);
140
140
  }
141
- // Future migrations: switch on v here when v2+ lands. Today v === 1
142
- // is the only supported version; no migration needed.
143
141
  for (const key of ['meta', 'nodes', 'edges', 'communities', 'symbolIndex']) {
144
142
  if (!(key in obj)) {
145
143
  throw new GraphCorruptError(absPath, `missing required top-level field "${key}"`);
@@ -154,8 +152,15 @@ function validateAndUpgrade(absPath, raw) {
154
152
  if (!Array.isArray(obj.communities)) {
155
153
  throw new GraphCorruptError(absPath, '"communities" is not an array');
156
154
  }
155
+ // v1 → v2 migration: the flow overlay is purely additive, so a v1
156
+ // artifact (no `endpoints` field) migrates forward to an empty
157
+ // endpoint set. A v2 artifact must carry an array when present.
158
+ if ('endpoints' in obj && !Array.isArray(obj.endpoints)) {
159
+ throw new GraphCorruptError(absPath, '"endpoints" is not an array');
160
+ }
161
+ const endpoints = Array.isArray(obj.endpoints) ? obj.endpoints : [];
157
162
  // Trust the rest; runtime errors in queries surface deeper issues.
158
- return raw;
163
+ return { ...raw, endpoints: endpoints };
159
164
  }
160
165
  function indexGraph(json) {
161
166
  const nodeById = new Map();
@@ -184,6 +189,12 @@ function indexGraph(json) {
184
189
  for (const nid of c.nodeIds)
185
190
  communityByNode.set(nid, c);
186
191
  }
192
+ const endpointById = new Map();
193
+ const endpointByKey = new Map();
194
+ for (const ep of json.endpoints) {
195
+ endpointById.set(ep.id, ep);
196
+ endpointByKey.set(`${ep.method} ${ep.path}`, ep);
197
+ }
187
198
  return {
188
199
  ...json,
189
200
  nodeById,
@@ -192,6 +203,8 @@ function indexGraph(json) {
192
203
  nodesByFile,
193
204
  communityById,
194
205
  communityByNode,
206
+ endpointById,
207
+ endpointByKey,
195
208
  };
196
209
  }
197
210
  //# sourceMappingURL=load.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/explore/load.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/explore/load.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@
14
14
  * level.
15
15
  */
16
16
  import type { DetectedStack } from '../types';
17
- import type { Graph, GraphNode } from './types';
17
+ import type { Graph, GraphNode, HttpEndpointNode } from './types';
18
18
  /** Nodes that call into the given nodeId (predecessors via `calls` edges). */
19
19
  export declare function callersOf(graph: Graph, nodeId: string): GraphNode[];
20
20
  /** Nodes that the given nodeId calls into (successors via `calls` edges). */
@@ -427,6 +427,23 @@ export declare function findingContextQuery(graph: Graph, sourceFile: string, li
427
427
  * line number, and `undefined` cleanly degrades to the file-level anchor.
428
428
  */
429
429
  export declare function enclosingSymbolFor(graph: Graph, sourceFile: string, line: number): string | undefined;
430
+ /**
431
+ * Resolve the id of the structural node enclosing a source location —
432
+ * the node-id sibling of {@link enclosingSymbolFor}. Used by the flow
433
+ * writer to anchor the `from` end of a `calls-endpoint` edge onto the
434
+ * real call graph when graphify is present (so a UI→API edge composes
435
+ * with the structural `calls` edges for multi-hop blast radius). Returns
436
+ * `undefined` when the file declares no symbol at-or-above `line` AND has
437
+ * no module node (the writer then leaves `from` empty and relies on the
438
+ * edge's fromFile / fromLine coordinates, keeping the map
439
+ * graphify-independent).
440
+ *
441
+ * Prefers the nearest non-module declaration at-or-above `line`; falls
442
+ * back to the file's module node (a top-level call outside any symbol
443
+ * still anchors to its file). Graph traversal stays in this module
444
+ * (Rule 12).
445
+ */
446
+ export declare function enclosingNodeIdFor(graph: Graph, sourceFile: string, line: number): string | undefined;
430
447
  /**
431
448
  * Structural context for one source location, resolved by POSITION
432
449
  * rather than by symbol name (the `context <file:line>` surface; its
@@ -498,4 +515,78 @@ export interface FileLineContext {
498
515
  export declare function fileLineContextQuery(graph: Graph, sourceFile: string, line: number, opts?: {
499
516
  maxList?: number;
500
517
  }): FileLineContext;
518
+ /**
519
+ * One consumer of an endpoint — a client call site that binds to it. `nodeId` /
520
+ * `symbol` are present when the call was anchored onto a structural node (a base
521
+ * graph existed); otherwise only the source coordinates are known (the flow map
522
+ * is graphify-independent, so `file` + `line` are always populated from the
523
+ * `calls-endpoint` edge).
524
+ */
525
+ export interface EndpointCaller {
526
+ file: string;
527
+ line?: number;
528
+ nodeId?: string;
529
+ symbol?: string;
530
+ }
531
+ /**
532
+ * Every UI surface that hits an endpoint — the `calls-endpoint` in-edges of the
533
+ * endpoint node, mapped to their consuming call sites. The core cross-boundary
534
+ * query the graph could not previously answer. Rule 12: relation-filtered edge
535
+ * traversal lives here, never re-walked by a consumer.
536
+ */
537
+ export declare function endpointCallers(graph: Graph, endpointId: string): EndpointCaller[];
538
+ /**
539
+ * Blast radius of an endpoint: the surface a change to it (delete, rename,
540
+ * verb-change) would touch. `directConsumers` / `consumerFiles` count the
541
+ * immediate UI call sites; `upstreamCallers` / `upstreamFiles` extend that
542
+ * transitively through the structural `calls` graph (which functions call the
543
+ * consuming ones), bounded by a visited set. Upstream counts are only as
544
+ * complete as the base graph — zero when graphify never ran, so consumers label
545
+ * them as best-effort.
546
+ */
547
+ export interface FlowBlastRadius {
548
+ endpointId: string;
549
+ directConsumers: number;
550
+ consumerFiles: number;
551
+ upstreamCallers: number;
552
+ upstreamFiles: number;
553
+ }
554
+ export declare function flowBlastRadius(graph: Graph, endpointId: string): FlowBlastRadius;
555
+ /**
556
+ * The full trace for one endpoint: its served-side identity (handler +
557
+ * provenance) plus the consumed side (every UI call site). The UI→API→handler
558
+ * path in one object; the deeper handler→model hop is left to a future pass
559
+ * (the graph does not yet carry data-model edges). `found: false` when no
560
+ * endpoint has that id.
561
+ */
562
+ export interface FlowTrace {
563
+ found: boolean;
564
+ endpoint?: HttpEndpointNode;
565
+ handler: string | null;
566
+ consumers: EndpointCaller[];
567
+ blastRadius: FlowBlastRadius;
568
+ }
569
+ export declare function flowTrace(graph: Graph, endpointId: string): FlowTrace;
570
+ /** One endpoint row of the flow map: the served route + how many UI surfaces
571
+ * consume it. */
572
+ export interface FlowMapEndpoint {
573
+ endpoint: HttpEndpointNode;
574
+ consumerCount: number;
575
+ consumerFiles: string[];
576
+ }
577
+ /**
578
+ * The whole flow map read from the graph: every served endpoint ranked by
579
+ * consumer count, plus the served-but-unconsumed set (endpoints no UI in this
580
+ * graph calls — a candidate dead route OR a cross-repo consumer not scanned, so
581
+ * surfaced separately, not as a defect). `totalBindings` counts the
582
+ * `calls-endpoint` edges. The integration-test-gap signal (endpoints with
583
+ * consumers but no covering test) composes on top of this in a later phase.
584
+ */
585
+ export interface FlowMap {
586
+ endpoints: FlowMapEndpoint[];
587
+ unconsumedEndpoints: HttpEndpointNode[];
588
+ totalEndpoints: number;
589
+ totalBindings: number;
590
+ }
591
+ export declare function flowMapQuery(graph: Graph): FlowMap;
501
592
  //# sourceMappingURL=queries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/explore/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/explore/queries.ts"],"names":[],"mappings":"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"}