@ttsc/graph 0.19.3 → 0.20.1

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 (82) hide show
  1. package/lib/TtscGraphApplication.js +3 -1
  2. package/lib/TtscGraphApplication.js.map +1 -1
  3. package/lib/bin.js +15 -3
  4. package/lib/bin.js.map +1 -1
  5. package/lib/index.d.ts +13 -2
  6. package/lib/index.js +24 -30
  7. package/lib/index.js.map +1 -1
  8. package/lib/launcherArgs.d.ts +24 -0
  9. package/lib/launcherArgs.js +136 -0
  10. package/lib/launcherArgs.js.map +1 -0
  11. package/lib/model/TtscGraphMemory.d.ts +9 -5
  12. package/lib/model/TtscGraphMemory.js +35 -58
  13. package/lib/model/TtscGraphMemory.js.map +1 -1
  14. package/lib/model/TtscGraphNodeId.d.ts +17 -0
  15. package/lib/model/TtscGraphNodeId.js +69 -0
  16. package/lib/model/TtscGraphNodeId.js.map +1 -0
  17. package/lib/model/TtscGraphSession.d.ts +23 -7
  18. package/lib/model/TtscGraphSession.js +402 -210
  19. package/lib/model/TtscGraphSession.js.map +1 -1
  20. package/lib/model/TtscGraphSourceReader.d.ts +27 -0
  21. package/lib/model/TtscGraphSourceReader.js +97 -0
  22. package/lib/model/TtscGraphSourceReader.js.map +1 -0
  23. package/lib/model/loadGraph.d.ts +4 -4
  24. package/lib/model/loadGraph.js +233 -168
  25. package/lib/model/loadGraph.js.map +1 -1
  26. package/lib/reduce.d.ts +4 -1
  27. package/lib/reduce.js +112 -29
  28. package/lib/reduce.js.map +1 -1
  29. package/lib/server/createServer.js +17 -6
  30. package/lib/server/createServer.js.map +1 -1
  31. package/lib/server/pathPolicy.d.ts +6 -0
  32. package/lib/server/pathPolicy.js +10 -1
  33. package/lib/server/pathPolicy.js.map +1 -1
  34. package/lib/server/resolveHandle.js +22 -18
  35. package/lib/server/resolveHandle.js.map +1 -1
  36. package/lib/server/resultAudit.d.ts +41 -20
  37. package/lib/server/resultAudit.js +62 -34
  38. package/lib/server/resultAudit.js.map +1 -1
  39. package/lib/server/resultNext.d.ts +5 -0
  40. package/lib/server/resultNext.js.map +1 -1
  41. package/lib/server/runDetails.d.ts +2 -2
  42. package/lib/server/runDetails.js +54 -108
  43. package/lib/server/runDetails.js.map +1 -1
  44. package/lib/server/runEntrypoints.js +1 -1
  45. package/lib/server/runEntrypoints.js.map +1 -1
  46. package/lib/server/runLookup.js +1 -1
  47. package/lib/server/runLookup.js.map +1 -1
  48. package/lib/server/runTour.js +113 -30
  49. package/lib/server/runTour.js.map +1 -1
  50. package/lib/server/runTrace.d.ts +22 -0
  51. package/lib/server/runTrace.js +293 -63
  52. package/lib/server/runTrace.js.map +1 -1
  53. package/lib/structures/ITtscGraphDump.d.ts +13 -13
  54. package/lib/structures/ITtscGraphNode.d.ts +34 -0
  55. package/lib/structures/ITtscGraphTrace.d.ts +1 -1
  56. package/lib/view.js +18 -28
  57. package/lib/view.js.map +1 -1
  58. package/package.json +5 -5
  59. package/src/TtscGraphApplication.ts +5 -1
  60. package/src/bin.ts +13 -3
  61. package/src/index.ts +34 -27
  62. package/src/launcherArgs.ts +168 -0
  63. package/src/model/TtscGraphMemory.ts +34 -60
  64. package/src/model/TtscGraphNodeId.ts +77 -0
  65. package/src/model/TtscGraphSession.ts +228 -55
  66. package/src/model/TtscGraphSourceReader.ts +117 -0
  67. package/src/model/loadGraph.ts +4 -4
  68. package/src/reduce.ts +136 -31
  69. package/src/server/createServer.ts +12 -2
  70. package/src/server/pathPolicy.ts +10 -1
  71. package/src/server/resolveHandle.ts +21 -22
  72. package/src/server/resultAudit.ts +64 -33
  73. package/src/server/resultNext.ts +6 -0
  74. package/src/server/runDetails.ts +57 -113
  75. package/src/server/runEntrypoints.ts +1 -1
  76. package/src/server/runLookup.ts +1 -1
  77. package/src/server/runTour.ts +133 -39
  78. package/src/server/runTrace.ts +401 -65
  79. package/src/structures/ITtscGraphDump.ts +13 -13
  80. package/src/structures/ITtscGraphNode.ts +40 -0
  81. package/src/structures/ITtscGraphTrace.ts +1 -1
  82. package/src/view.ts +25 -23
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.runTrace = runTrace;
4
+ exports.hasDeclarationBody = hasDeclarationBody;
4
5
  const pathPolicy_1 = require("./pathPolicy");
5
6
  const resolveHandle_1 = require("./resolveHandle");
6
7
  const resultNext_1 = require("./resultNext");
@@ -17,15 +18,23 @@ const MAX_OPEN_DEPTH = 8;
17
18
  const MAX_OPEN_NODES = 32;
18
19
  const MAX_IMPACT_DEPTH = 4;
19
20
  const MAX_IMPACT_NODES = 16;
21
+ // Path mode walks further than an open trace because it is looking for one
22
+ // named end, not building a picture. The cap is the one the request contract
23
+ // publishes for path mode.
24
+ const MAX_PATH_DEPTH = 12;
20
25
  const MAX_HOPS_PER_NODE = 2;
21
26
  const MAX_STEPS = 12;
22
- const EXECUTION_KINDS = new Set([
23
- "calls",
24
- "instantiates",
25
- "accesses",
26
- "renders",
27
- ]);
28
27
  const DISPATCH_KINDS = new Set(["overrides", "implements"]);
28
+ // A declaration whose kind is a type surface never carries a body, and an
29
+ // external leaf carries one the graph deliberately does not hold.
30
+ const BODYLESS_KINDS = new Set([
31
+ "interface",
32
+ "type",
33
+ "external_symbol",
34
+ ]);
35
+ // `abstract` and `declare` are the two keywords that take the body away from a
36
+ // declaration that would otherwise have to have one.
37
+ const BODYLESS_MODIFIERS = new Set(["abstract", "declare"]);
29
38
  // An interface the codebase implements everywhere — a disposable, a listener, a
30
39
  // lifecycle hook — is not a step in one flow, and naming its implementors is a
31
40
  // dump of the codebase rather than an answer. Past this many, the declaration
@@ -108,10 +117,16 @@ function runTrace(graph, props) {
108
117
  next: (0, resultNext_1.resultNext)("outside", "The target resolved to no node, so the graph holds no path to it."),
109
118
  };
110
119
  }
111
- const found = findPath(graph, start.node.id, target.node.id, bound(props.maxDepth, 12, 1, 12), focus, includeExternal);
112
- const path = found?.path ?? [];
113
- const hops = found?.hops ?? [];
114
- const junctions = hops.length > 0
120
+ const pathDepth = bound(props.maxDepth, MAX_PATH_DEPTH, 1, MAX_PATH_DEPTH);
121
+ const search = findPath(graph, start.node.id, target.node.id, pathDepth, focus, includeExternal);
122
+ const hasPath = search.found !== undefined;
123
+ const path = search.found?.path ?? [];
124
+ const hops = search.found?.hops ?? [];
125
+ // Junctions explain an absence, so they are only computed once absence is
126
+ // established: a walk the depth bound stopped has not established one, and
127
+ // presenting a shared symbol as "the seam" when a direct call path may run
128
+ // past the bound sends the caller to a seam that is not there.
129
+ const junctions = hasPath || search.bounded
115
130
  ? []
116
131
  : junctionsBetween(graph, start.node.id, target.node.id, focus);
117
132
  return {
@@ -124,20 +139,26 @@ function runTrace(graph, props) {
124
139
  steps: traceSteps(graph, hops),
125
140
  ...(junctions.length > 0 ? { junctions } : {}),
126
141
  },
127
- // An empty path is a fact, not an answer, and the old message called it
142
+ // A missing path is a fact, not an answer, and the old message called it
128
143
  // one: "its path nodes and evidence ranges are what the graph holds
129
- // between the two ends" — of a result that held nothing. The two ends do
130
- // not call each other, which in an event-driven codebase is the common
131
- // case: a pointer handler emits, an emitter's `emit()` runs listeners a
144
+ // between the two ends" — of a result that held nothing. `findPath` says
145
+ // which fact it is; zero hops is instead the valid path from a node to
146
+ // itself. A walk the depth bound stopped establishes nothing at all, so
147
+ // it reports the bound. A walk that ran out of eligible graph did
148
+ // establish an absence, and distinct nodes without a path do not call
149
+ // each other, which in an event-driven codebase is the common case: a
150
+ // pointer handler emits, an emitter's `emit()` runs listeners a
132
151
  // registration put in an array, and no call edge crosses that array. The
133
152
  // callers of the target are the way across, and the graph has them, so
134
153
  // say which call to make instead of handing back an empty result dressed
135
154
  // as the answer. Excalidraw's tour spent eleven calls finding this out.
136
- next: hops.length > 0
155
+ next: hasPath
137
156
  ? pathNext
138
- : junctions.length > 0
139
- ? (0, resultNext_1.resultNext)("inspect", "No call path runs between the two ends — a callback stands between them (an event emitter, a subscription, a lifecycle hook), and no call edge crosses one. `junctions` names the symbols both ends touch, which is the seam: trace the junction to see who registers on it and who fires it.", "trace")
140
- : (0, resultNext_1.resultNext)("outside", "No call path runs from the start to the target and they touch nothing in common, so the graph holds no connection between them."),
157
+ : search.bounded
158
+ ? (0, resultNext_1.resultNext)("inspect", boundedPathReason(pathDepth), "trace")
159
+ : junctions.length > 0
160
+ ? (0, resultNext_1.resultNext)("inspect", "No call path runs between the two ends — a callback stands between them (an event emitter, a subscription, a lifecycle hook), and no call edge crosses one. `junctions` names the symbols both ends touch, which is the seam: trace the junction to see who registers on it and who fires it.", "trace")
161
+ : (0, resultNext_1.resultNext)("outside", "No call path runs from the start to the target and they touch nothing in common, so the graph holds no connection between them."),
141
162
  };
142
163
  }
143
164
  const hops = [];
@@ -150,22 +171,26 @@ function runTrace(graph, props) {
150
171
  while (queue.length > 0) {
151
172
  const next = [];
152
173
  for (const { id, depth } of queue) {
153
- if (depth >= maxDepth) {
174
+ const { edges: candidates, omitted } = traceEdges(graph, id, reverse, focus);
175
+ // A hop the hub bound withheld is omitted whatever the depth budget does
176
+ // next, so the flag is set before the boundary check consumes the step.
177
+ if (!truncated &&
178
+ omitted.some((edge) => eligibleTraceEndpoint(graph, edge, reverse, focus, includeExternal) !== undefined))
154
179
  truncated = true;
180
+ if (depth >= maxDepth) {
181
+ // Reaching the configured boundary does not itself omit data. The
182
+ // response is truncated only when the selected walk has another hop
183
+ // (and, for an unseen endpoint, another node) beyond the boundary.
184
+ if (candidates.some((edge) => eligibleTraceEndpoint(graph, edge, reverse, focus, includeExternal) !== undefined))
185
+ truncated = true;
155
186
  continue;
156
187
  }
157
- const edges = orderedEdges(graph, reverse
158
- ? graph.incoming(id)
159
- : [...graph.outgoing(id), ...dispatchEdges(graph, id, focus)], direction, reverse);
188
+ const edges = orderedEdges(graph, candidates, direction, reverse);
160
189
  for (const edge of edges) {
161
- if (!traversable(edge.kind, focus))
162
- continue;
163
- const otherId = reverse ? edge.from : edge.to;
164
- const other = graph.node(otherId);
165
- if (other === undefined || other.kind === "file")
166
- continue;
167
- if (!includeExternal && (0, pathPolicy_1.isExternalNode)(other))
190
+ const endpoint = eligibleTraceEndpoint(graph, edge, reverse, focus, includeExternal);
191
+ if (endpoint === undefined)
168
192
  continue;
193
+ const { otherId, other } = endpoint;
169
194
  const hop = {
170
195
  from: edge.from,
171
196
  to: edge.to,
@@ -215,6 +240,49 @@ function runTrace(graph, props) {
215
240
  next: (0, resultNext_1.resultNext)("answer", "Steps, hops, reached nodes, and evidence ranges are the flow the graph holds from this start."),
216
241
  };
217
242
  }
243
+ /**
244
+ * Candidate edges in the selected direction before focus and node policy,
245
+ * together with the dispatch hops a bound withheld.
246
+ *
247
+ * The two have to travel together. A hub-suppressed fanout used to arrive as an
248
+ * empty dispatch list, which reads exactly like "this declaration dispatches to
249
+ * nothing", and the caller then reported a complete result while eligible hops
250
+ * had been dropped.
251
+ */
252
+ function traceEdges(graph, id, reverse, focus) {
253
+ const edges = reverse ? graph.incoming(id) : graph.outgoing(id);
254
+ const dispatched = reverse
255
+ ? reverseDispatchEdges(graph, id, focus)
256
+ : dispatchEdges(graph, id, focus);
257
+ // Nothing to add is the common case, and a walk visits the nodes with the
258
+ // largest edge lists, so hand back the stored list rather than a copy of it.
259
+ return {
260
+ edges: dispatched.selected.length === 0
261
+ ? edges
262
+ : [...edges, ...dispatched.selected],
263
+ omitted: dispatched.omitted,
264
+ };
265
+ }
266
+ // Returned by every no-dispatch path rather than allocated per call, which is
267
+ // why the lists above are readonly: one shared value that anything could push
268
+ // onto would leak a hop from one node's walk into another's.
269
+ const NO_DISPATCH = { selected: [], omitted: [] };
270
+ /**
271
+ * The endpoint the selected open trace would represent if no result bound
272
+ * stopped it. The depth probe and traversal share this decision so focus,
273
+ * external nodes, file nodes, and direction cannot disagree about omission.
274
+ */
275
+ function eligibleTraceEndpoint(graph, edge, reverse, focus, includeExternal) {
276
+ if (!traversable(edge.kind, focus))
277
+ return undefined;
278
+ const otherId = reverse ? edge.from : edge.to;
279
+ const other = graph.node(otherId);
280
+ if (other === undefined || other.kind === "file")
281
+ return undefined;
282
+ if (!includeExternal && (0, pathPolicy_1.isExternalNode)(other))
283
+ return undefined;
284
+ return { otherId, other };
285
+ }
218
286
  function traceSteps(graph, hops) {
219
287
  return hops.slice(0, MAX_STEPS).map((hop) => {
220
288
  const from = graph.node(hop.from);
@@ -227,11 +295,6 @@ function traceSteps(graph, hops) {
227
295
  return `${lhs} -[${hop.kind}${evidence}]-> ${rhs}`;
228
296
  });
229
297
  }
230
- /**
231
- * The shortest dependency path from `startId` to `targetId` over real (non-
232
- * structural) forward edges, breadth-first, or null when `targetId` is not
233
- * reachable within maxDepth. Returns the nodes in order and the hops between.
234
- */
235
298
  /**
236
299
  * The symbols both ends of an unreachable path touch.
237
300
  *
@@ -313,34 +376,64 @@ function touchedBy(graph, id, focus) {
313
376
  }
314
377
  return touched;
315
378
  }
379
+ /**
380
+ * What to say when the depth bound, not the graph, ended a path search.
381
+ *
382
+ * The caller asked a bounded question and the old answer returned a claim about
383
+ * the whole graph — "they touch nothing in common, so the graph holds no
384
+ * connection between them" — which is the worst thing an index can say wrongly:
385
+ * the caller stops asking and either reads files or concludes the dependency is
386
+ * not there. So report the boundary, and make the continuation one the caller
387
+ * can actually take. At the 12-hop ceiling there is no larger `maxDepth` to
388
+ * retry with, and a message that only invites one would be a dead end of its
389
+ * own; two bounded walks from opposite ends cover twice the distance and are
390
+ * requests the tool already answers.
391
+ */
392
+ function boundedPathReason(depth) {
393
+ return (`No path was found within the requested depth of ${depth}, but the walk stopped on that bound with eligible graph still ahead of it. ` +
394
+ `This is a boundary, not an absence: the two ends may be connected further out, and nothing here says they are not. ` +
395
+ (depth < MAX_PATH_DEPTH
396
+ ? `Re-run the same path request with a larger \`maxDepth\` (up to ${MAX_PATH_DEPTH}).`
397
+ : `\`maxDepth\` is already at its ${MAX_PATH_DEPTH}-hop maximum, so close the gap from both ends: trace forward from the start, trace the target with \`direction: "reverse"\`, then request the path between a symbol both results name.`));
398
+ }
399
+ /**
400
+ * The shortest dependency path from `startId` to `targetId` over real (non-
401
+ * structural) forward edges, breadth-first, within `maxDepth` hops.
402
+ *
403
+ * When no path is found, the walk reports whether the bound stopped it. A
404
+ * boundary is a fact about the request; absence is a fact about the graph, and
405
+ * a search that never reached the far side of its own bound has not established
406
+ * one. Eligibility is the open trace's, so a frontier made only of nodes the
407
+ * selected focus, the external-node policy, a file node, or an earlier visit
408
+ * already excluded is not a frontier and the walk is exhausted.
409
+ */
316
410
  function findPath(graph, startId, targetId, maxDepth, focus, includeExternal) {
317
411
  const startNode = graph.node(startId);
318
412
  if (startNode === undefined)
319
- return null;
413
+ return { bounded: false };
320
414
  if (startId === targetId)
321
- return { path: [startNode], hops: [] };
415
+ return { found: { path: [startNode], hops: [] }, bounded: false };
322
416
  const parent = new Map();
323
417
  const visited = new Set([startId]);
418
+ let bounded = false;
324
419
  let queue = [{ id: startId, depth: 0 }];
325
420
  while (queue.length > 0) {
326
421
  const next = [];
327
422
  for (const { id, depth } of queue) {
328
- if (depth >= maxDepth)
423
+ // The forward step the open trace would take, built in one place so the
424
+ // two walks cannot disagree about what a step follows.
425
+ const { edges: candidates } = traceEdges(graph, id, false, focus);
426
+ if (depth >= maxDepth) {
427
+ if (candidates.some((edge) => pathEndpoint(graph, edge, focus, includeExternal, visited) !==
428
+ undefined))
429
+ bounded = true;
329
430
  continue;
330
- for (const edge of [
331
- ...graph.outgoing(id),
332
- ...dispatchEdges(graph, id, focus),
333
- ]) {
334
- if (!traversable(edge.kind, focus))
335
- continue;
336
- const otherId = edge.to;
337
- if (visited.has(otherId))
338
- continue;
339
- const other = graph.node(otherId);
340
- if (other === undefined || other.kind === "file")
341
- continue;
342
- if (!includeExternal && (0, pathPolicy_1.isExternalNode)(other))
431
+ }
432
+ for (const edge of candidates) {
433
+ const endpoint = pathEndpoint(graph, edge, focus, includeExternal, visited);
434
+ if (endpoint === undefined)
343
435
  continue;
436
+ const otherId = endpoint.otherId;
344
437
  visited.add(otherId);
345
438
  const evidence = (0, runDetails_1.edgeEvidenceOf)(edge);
346
439
  parent.set(otherId, {
@@ -378,14 +471,30 @@ function findPath(graph, startId, targetId, maxDepth, focus, includeExternal) {
378
471
  hop.evidence = parentEdge.evidence;
379
472
  hops.push(hop);
380
473
  }
381
- return { path, hops };
474
+ return { found: { path, hops }, bounded };
382
475
  }
383
476
  next.push({ id: otherId, depth: depth + 1 });
384
477
  }
385
478
  }
386
479
  queue = next;
387
480
  }
388
- return null;
481
+ return { bounded };
482
+ }
483
+ /**
484
+ * The node a path expansion would represent, or undefined when the selected
485
+ * policy or an earlier visit excludes it. The expansion and the boundary probe
486
+ * share this decision, so what the walk would have followed and what counts as
487
+ * unexplored graph beyond the bound cannot disagree.
488
+ *
489
+ * A path walk is always forward and, unlike the open trace, a node it already
490
+ * reached is not a continuation: the shortest path to it is already known, so a
491
+ * second arrival adds nothing to explore.
492
+ */
493
+ function pathEndpoint(graph, edge, focus, includeExternal, visited) {
494
+ const endpoint = eligibleTraceEndpoint(graph, edge, false, focus, includeExternal);
495
+ if (endpoint === undefined || visited.has(endpoint.otherId))
496
+ return undefined;
497
+ return endpoint;
389
498
  }
390
499
  function orderedEdges(graph, edges, direction, reverse) {
391
500
  if (direction !== "impact")
@@ -456,7 +565,7 @@ function summary(graph, node, depth, withRoles = false, withSignature = false) {
456
565
  if (depth !== undefined)
457
566
  out.depth = depth;
458
567
  if (withSignature) {
459
- const sig = (0, runDetails_1.signatureOf)(graph.project, node);
568
+ const sig = (0, runDetails_1.signatureOf)(graph, node);
460
569
  if (sig !== undefined)
461
570
  out.signature = sig;
462
571
  }
@@ -492,15 +601,37 @@ function summary(graph, node, depth, withRoles = false, withSignature = false) {
492
601
  * the runtime lands in the override.
493
602
  */
494
603
  function dispatchEdges(graph, id, focus) {
495
- if (focus === "types" || hasExecutionBody(graph, id))
496
- return [];
497
- const out = [];
604
+ if (focus === "types")
605
+ return NO_DISPATCH;
606
+ // The checker relations first: almost no node has one, and reading a
607
+ // declaration's own facts walks its ownership chain, which is work worth
608
+ // doing only where there is something to dispatch to.
609
+ let relations;
498
610
  for (const edge of graph.incoming(id)) {
499
- if (!DISPATCH_KINDS.has(edge.kind))
611
+ if (DISPATCH_KINDS.has(edge.kind))
612
+ (relations ??= []).push(edge);
613
+ }
614
+ if (relations === undefined)
615
+ return NO_DISPATCH;
616
+ const declaration = graph.node(id);
617
+ if (declaration === undefined || hasDeclarationBody(graph, declaration))
618
+ return NO_DISPATCH;
619
+ const out = [];
620
+ // Per implementation, not per relation. A class may name one base in two
621
+ // heritage clauses — `class Impl extends Base implements Base` is legal — and
622
+ // the producer records the member pair once per clause, as `overrides` and as
623
+ // `implements`. That is one implementation and one crossing: emitting it
624
+ // twice would repeat the hop and count the same class twice against the hub
625
+ // cut.
626
+ const dispatched = new Set();
627
+ for (const edge of relations) {
628
+ if (dispatched.has(edge.from))
500
629
  continue;
501
630
  const implementation = graph.node(edge.from);
502
- if (implementation === undefined || !hasExecutionBody(graph, edge.from))
631
+ if (implementation === undefined ||
632
+ !hasDeclarationBody(graph, implementation))
503
633
  continue;
634
+ dispatched.add(edge.from);
504
635
  out.push({
505
636
  from: id,
506
637
  to: edge.from,
@@ -508,15 +639,114 @@ function dispatchEdges(graph, id, focus) {
508
639
  ...(edge.evidence !== undefined ? { evidence: edge.evidence } : {}),
509
640
  });
510
641
  }
511
- return out.length >= DISPATCH_HUB ? [] : out;
642
+ // Above the hub cut the fanout stops being a trace and starts being a
643
+ // listing, so the walk does not follow it — but the hops are real and their
644
+ // absence is an omission the caller has to be able to report.
645
+ return out.length >= DISPATCH_HUB
646
+ ? { selected: [], omitted: out }
647
+ : { selected: out, omitted: [] };
648
+ }
649
+ /**
650
+ * The declaration a change to this implementation is a change to.
651
+ *
652
+ * `dispatches` is one fact and both directions have to see it. Forward, a call
653
+ * that lands on a bodyless declaration continues in the implementation that
654
+ * runs; reverse, a change to that implementation is a change every caller of
655
+ * the declaration feels — and `impact` is the query an agent runs _before_
656
+ * editing a method. The checker relation is oriented implementation-to-base, so
657
+ * from the implementation it is an outgoing edge and a reverse walk, which only
658
+ * reads incoming edges, never sees it. Both halves of the path are one step
659
+ * away in a direction the traversal does not take.
660
+ *
661
+ * The synthetic edge is the forward one, unchanged, so eligibility, checker
662
+ * validity, and the hub cut cannot drift apart between the two directions: ask
663
+ * the base what it dispatches to, and keep the edges that land here.
664
+ */
665
+ function reverseDispatchEdges(graph, id, focus) {
666
+ if (focus === "types")
667
+ return NO_DISPATCH;
668
+ const selected = [];
669
+ const omitted = [];
670
+ const bases = new Set();
671
+ for (const edge of graph.outgoing(id)) {
672
+ if (!DISPATCH_KINDS.has(edge.kind) || bases.has(edge.to))
673
+ continue;
674
+ bases.add(edge.to);
675
+ const fanout = dispatchEdges(graph, edge.to, focus);
676
+ for (const dispatch of fanout.selected)
677
+ if (dispatch.to === id)
678
+ selected.push(dispatch);
679
+ // The base's fanout is bounded as a whole, so a reverse walk that lands on
680
+ // a suppressed sibling has the same omission to report as the forward one.
681
+ for (const dispatch of fanout.omitted)
682
+ if (dispatch.to === id)
683
+ omitted.push(dispatch);
684
+ }
685
+ return { selected, omitted };
512
686
  }
513
- /** Whether the declaration has a body: something it calls, reads, or renders. */
514
- function hasExecutionBody(graph, id) {
515
- for (const edge of graph.outgoing(id))
516
- if (EXECUTION_KINDS.has(edge.kind))
687
+ /**
688
+ * Whether the declaration this node stands for has a body of its own.
689
+ *
690
+ * Having a body and naming a modeled dependency are different facts. Counting
691
+ * outgoing `calls`/`accesses`/`instantiates`/`renders` edges measures the
692
+ * second and answers as though it were the first, and it is wrong in both
693
+ * directions: an implementation whose body returns a literal, throws, or only
694
+ * moves locals around has degree zero and was refused as a dispatch target,
695
+ * while a concrete base method was promoted through its own override the moment
696
+ * its body stopped naming anything the graph models. Two graphs identical in
697
+ * every declaration fact then answered differently because of one statement
698
+ * inside a body.
699
+ *
700
+ * So read the declaration instead. A type surface has no body; `abstract` and
701
+ * `declare` take it away; an interface member and anything inside an ambient
702
+ * container never had one; a `.d.ts` declaration is ambient whether or not the
703
+ * keyword is written; and an external leaf has a body the graph deliberately
704
+ * does not hold. Everything else is a concrete declaration, which is a real
705
+ * destination and is never promoted through an override, whatever it calls.
706
+ */
707
+ function hasDeclarationBody(graph, node) {
708
+ if (BODYLESS_KINDS.has(node.kind))
709
+ return false;
710
+ if ((0, pathPolicy_1.isExternalNode)(node))
711
+ return false;
712
+ if ((0, pathPolicy_1.isDeclarationFile)(node.file))
713
+ return false;
714
+ if (hasBodylessModifier(node))
715
+ return false;
716
+ return !inBodylessContainer(graph, node);
717
+ }
718
+ function hasBodylessModifier(node) {
719
+ return node.modifiers?.some((m) => BODYLESS_MODIFIERS.has(m)) === true;
720
+ }
721
+ /**
722
+ * Whether an owner up the `contains` tree makes this declaration bodyless: an
723
+ * interface, or an ambient container. A member writes no keyword of its own —
724
+ * `declare` on a class or namespace is not repeated on what it holds — so the
725
+ * fact lives on the owner and the walk has to go get it.
726
+ */
727
+ function inBodylessContainer(graph, node) {
728
+ const seen = new Set([node.id]);
729
+ let current = node;
730
+ while (current !== undefined) {
731
+ const container = containerOf(graph, current);
732
+ if (container === undefined || container.kind === "file")
733
+ return false;
734
+ if (seen.has(container.id))
735
+ return false;
736
+ seen.add(container.id);
737
+ if (container.kind === "interface" || hasBodylessModifier(container))
517
738
  return true;
739
+ current = container;
740
+ }
518
741
  return false;
519
742
  }
743
+ /** The declaration that owns this one, through the synthesized ownership tree. */
744
+ function containerOf(graph, node) {
745
+ for (const edge of graph.incoming(node.id))
746
+ if (edge.kind === "contains")
747
+ return graph.node(edge.from);
748
+ return undefined;
749
+ }
520
750
  /** An edge the trace should follow: a real dependency, not a structural edge. */
521
751
  function traversable(kind, focus) {
522
752
  if (kind === "contains" || kind === "exports" || kind === "imports") {
@@ -1 +1 @@
1
- {"version":3,"file":"runTrace.js","sourceRoot":"","sources":["../../src/server/runTrace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runTrace.js","sourceRoot":"","sources":["../../src/server/runTrace.ts"],"names":[],"mappings":"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"}
@@ -12,18 +12,18 @@ import { ITtscGraphSpan } from "./ITtscGraphSpan";
12
12
  * warm model while project inputs stay unchanged; the bundled 3D viewer reduces
13
13
  * the same dump.
14
14
  *
15
- * `project` is absolute. Every other path is relative to it — `tsconfig`, and
16
- * the `file` fields on nodes, edges, diagnostics, and the provenance manifest.
17
- *
18
- * Two kinds of path fall outside the project and so cannot be relative to it: a
19
- * dependency keeps its `node_modules/`-relative tail, which is what makes a
20
- * dependency leaf readable, and anything else the compiler loaded keeps the
21
- * identity the compiler gave it a virtual lib stays `bundled:///…`.
15
+ * `project` is the producer-local absolute locator. Every identity-bearing path
16
+ * uses one schema-v6 coordinate relative to it: project files are ordinary
17
+ * relative paths; same-filesystem siblings use `../` segments; package files
18
+ * keep their full resolution context (including version/peer-store segments);
19
+ * and a virtual compiler source stays `bundled:///…`. Raw absolute identities
20
+ * are never emitted. A source on another drive or UNC share makes the producer
21
+ * fail unless a future contract supplies a logical root for it.
22
22
  */
23
23
  export interface ITtscGraphDump {
24
24
  /** Absolute path of the project root the graph was built for. */
25
25
  project: string;
26
- /** The tsconfig the program was loaded from, relative to `project`. */
26
+ /** The tsconfig the program was loaded from, in the dump's path vocabulary. */
27
27
  tsconfig: string;
28
28
  /** Evidence about the one program that produced everything below. */
29
29
  provenance: ITtscGraphDump.IProvenance;
@@ -126,14 +126,14 @@ export declare namespace ITtscGraphDump {
126
126
  }
127
127
  /** A root file attributed to the config that named it. */
128
128
  interface IRootFile {
129
- /** The tsconfig that named this root, project-relative. */
129
+ /** The tsconfig that named this root, in the dump's path vocabulary. */
130
130
  config: string;
131
- /** The root file, project-relative. */
131
+ /** The root file, in the dump's path vocabulary. */
132
132
  file: string;
133
133
  }
134
134
  /** A file and the hex-encoded SHA-256 of its on-disk bytes. */
135
135
  interface IFileDigest {
136
- /** Project-relative. */
136
+ /** In the dump's path vocabulary. */
137
137
  file: string;
138
138
  /** Hex-encoded SHA-256. */
139
139
  digest: string;
@@ -148,7 +148,7 @@ export declare namespace ITtscGraphDump {
148
148
  * on every build.
149
149
  */
150
150
  interface ISourceDigest {
151
- /** Project-relative. */
151
+ /** In the dump's path vocabulary. */
152
152
  file: string;
153
153
  /**
154
154
  * Hex-encoded SHA-256 of the text the checker resolved against — the ground
@@ -175,7 +175,7 @@ export declare namespace ITtscGraphDump {
175
175
  }
176
176
  /** One compiler diagnostic from the generation that produced the facts. */
177
177
  interface IDiagnostic {
178
- /** Project-relative. */
178
+ /** In the dump's path vocabulary. */
179
179
  file: string;
180
180
  /** 1-based line. */
181
181
  line: number;