@ttsc/graph 0.16.5 → 0.16.7

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 (83) hide show
  1. package/README.md +22 -0
  2. package/lib/TtscGraphApplication.js +58 -22
  3. package/lib/TtscGraphApplication.js.map +1 -1
  4. package/lib/model/TtscGraphMemory.js +43 -4
  5. package/lib/model/TtscGraphMemory.js.map +1 -1
  6. package/lib/model/loadGraph.js +17 -17
  7. package/lib/server/accessAliases.js +53 -0
  8. package/lib/server/accessAliases.js.map +1 -0
  9. package/lib/server/createServer.js +1490 -657
  10. package/lib/server/createServer.js.map +1 -1
  11. package/lib/server/instructions.js +81 -21
  12. package/lib/server/instructions.js.map +1 -1
  13. package/lib/server/pathPolicy.js +35 -0
  14. package/lib/server/pathPolicy.js.map +1 -0
  15. package/lib/server/resultGuide.js +16 -0
  16. package/lib/server/resultGuide.js.map +1 -0
  17. package/lib/server/runDetails.js +474 -0
  18. package/lib/server/runDetails.js.map +1 -0
  19. package/lib/server/{runIndex.js → runEntrypoints.js} +92 -28
  20. package/lib/server/runEntrypoints.js.map +1 -0
  21. package/lib/server/runLookup.js +246 -0
  22. package/lib/server/runLookup.js.map +1 -0
  23. package/lib/server/runOverview.js +44 -27
  24. package/lib/server/runOverview.js.map +1 -1
  25. package/lib/server/runTour.js +737 -0
  26. package/lib/server/runTour.js.map +1 -0
  27. package/lib/server/runTrace.js +224 -43
  28. package/lib/server/runTrace.js.map +1 -1
  29. package/lib/structures/ITtscGraphDetails.js +3 -0
  30. package/lib/structures/ITtscGraphDetails.js.map +1 -0
  31. package/lib/structures/ITtscGraphEntrypoints.js +3 -0
  32. package/lib/structures/ITtscGraphEntrypoints.js.map +1 -0
  33. package/lib/structures/{ITtscGraphExpand.js → ITtscGraphEscape.js} +1 -1
  34. package/lib/structures/ITtscGraphEscape.js.map +1 -0
  35. package/lib/structures/ITtscGraphLookup.js +3 -0
  36. package/lib/structures/ITtscGraphLookup.js.map +1 -0
  37. package/lib/structures/{ITtscGraphIndex.js → ITtscGraphNext.js} +1 -1
  38. package/lib/structures/ITtscGraphNext.js.map +1 -0
  39. package/lib/structures/{ITtscGraphQuery.js → ITtscGraphTour.js} +1 -1
  40. package/lib/structures/ITtscGraphTour.js.map +1 -0
  41. package/lib/structures/index.js +6 -3
  42. package/lib/structures/index.js.map +1 -1
  43. package/package.json +2 -2
  44. package/src/TtscGraphApplication.ts +70 -30
  45. package/src/model/TtscGraphMemory.ts +46 -4
  46. package/src/server/accessAliases.ts +55 -0
  47. package/src/server/createServer.ts +4 -7
  48. package/src/server/instructions.ts +81 -21
  49. package/src/server/pathPolicy.ts +43 -0
  50. package/src/server/resultGuide.ts +20 -0
  51. package/src/server/runDetails.ts +553 -0
  52. package/src/server/{runIndex.ts → runEntrypoints.ts} +116 -36
  53. package/src/server/runLookup.ts +284 -0
  54. package/src/server/runOverview.ts +59 -31
  55. package/src/server/runTour.ts +881 -0
  56. package/src/server/runTrace.ts +299 -45
  57. package/src/structures/ITtscGraphApplication.ts +75 -56
  58. package/src/structures/ITtscGraphDecorator.ts +12 -14
  59. package/src/structures/ITtscGraphDetails.ts +197 -0
  60. package/src/structures/ITtscGraphEntrypoints.ts +149 -0
  61. package/src/structures/ITtscGraphEscape.ts +49 -0
  62. package/src/structures/ITtscGraphEvidence.ts +5 -8
  63. package/src/structures/ITtscGraphLookup.ts +82 -0
  64. package/src/structures/ITtscGraphNext.ts +23 -0
  65. package/src/structures/ITtscGraphNode.ts +10 -4
  66. package/src/structures/ITtscGraphOverview.ts +41 -18
  67. package/src/structures/ITtscGraphTour.ts +150 -0
  68. package/src/structures/ITtscGraphTrace.ts +93 -13
  69. package/src/structures/TtscGraphNodeKind.ts +2 -2
  70. package/src/structures/index.ts +6 -3
  71. package/lib/server/runExpand.js +0 -177
  72. package/lib/server/runExpand.js.map +0 -1
  73. package/lib/server/runIndex.js.map +0 -1
  74. package/lib/server/runQuery.js +0 -147
  75. package/lib/server/runQuery.js.map +0 -1
  76. package/lib/structures/ITtscGraphExpand.js.map +0 -1
  77. package/lib/structures/ITtscGraphIndex.js.map +0 -1
  78. package/lib/structures/ITtscGraphQuery.js.map +0 -1
  79. package/src/server/runExpand.ts +0 -186
  80. package/src/server/runQuery.ts +0 -150
  81. package/src/structures/ITtscGraphExpand.ts +0 -85
  82. package/src/structures/ITtscGraphIndex.ts +0 -100
  83. package/src/structures/ITtscGraphQuery.ts +0 -49
package/README.md CHANGED
@@ -53,6 +53,28 @@ Run this in your own project to open that 3D map in your browser, served from a
53
53
  npx @ttsc/graph view
54
54
  ```
55
55
 
56
+ ## Benchmark
57
+
58
+ On the current GPT 5.4 Mini snapshot, the published median token cost is lowest with `@ttsc/graph`. Values below are thousands of tokens from `website/public/benchmark/graph.json`.
59
+
60
+ ```mermaid
61
+ xychart-beta
62
+ title "Common prompt median token use"
63
+ x-axis ["baseline", "@ttsc/graph", "codegraph", "codebase-memory-mcp"]
64
+ y-axis "Tokens (k)" 0 --> 1400
65
+ bar [781, 41, 617, 1302]
66
+ ```
67
+
68
+ ```mermaid
69
+ xychart-beta
70
+ title "Dedicated prompt median token use"
71
+ x-axis ["baseline", "@ttsc/graph", "codegraph", "codebase-memory-mcp"]
72
+ y-axis "Tokens (k)" 0 --> 1000
73
+ bar [776, 57, 323, 945]
74
+ ```
75
+
76
+ See the [full benchmark page](https://ttsc.dev/docs/benchmark/graph) for the raw rows and method.
77
+
56
78
  ## Sponsors
57
79
 
58
80
  [![Sponsors](https://raw.githubusercontent.com/samchon/sponsor-images/refs/heads/master/public/circle.svg)](https://github.com/sponsors/samchon)
@@ -1,21 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TtscGraphApplication = void 0;
4
- const runExpand_1 = require("./server/runExpand");
5
- const runIndex_1 = require("./server/runIndex");
4
+ const resultGuide_1 = require("./server/resultGuide");
5
+ const runDetails_1 = require("./server/runDetails");
6
+ const runEntrypoints_1 = require("./server/runEntrypoints");
7
+ const runLookup_1 = require("./server/runLookup");
6
8
  const runOverview_1 = require("./server/runOverview");
7
- const runQuery_1 = require("./server/runQuery");
9
+ const runTour_1 = require("./server/runTour");
8
10
  const runTrace_1 = require("./server/runTrace");
9
11
  /**
10
12
  * The MCP tool surface as a plain class over the resident
11
13
  * {@link TtscGraphMemory}.
12
14
  *
13
- * Each public method is one MCP tool `typia.llm.controller` reflects
14
- * {@link ITtscGraphApplication} to generate every tool's JSON schema and
15
- * argument validator from these signatures and their JSDoc, with no
16
- * hand-written schema. The methods delegate to the pure tool functions in
17
- * `./server`, which are unit-testable without a transport; this class only
18
- * binds them to the graph.
15
+ * Its public method is the MCP tool: `typia.llm.controller` reflects
16
+ * {@link ITtscGraphApplication} to generate the tool's JSON schema and argument
17
+ * validator from the signature and JSDoc, with no hand-written schema. The
18
+ * method delegates to the pure graph functions in `./server`, which are
19
+ * unit-testable without a transport; this class only binds them to the graph.
19
20
  *
20
21
  * Every method answers from the resident graph; none recompiles. Output is kept
21
22
  * compact and bounded so a model can read structure without a file read, which
@@ -26,20 +27,55 @@ class TtscGraphApplication {
26
27
  constructor(source) {
27
28
  this.graph = typeof source === "function" ? source : () => source;
28
29
  }
29
- graph_index(props) {
30
- return (0, runIndex_1.runIndex)(this.graph(), props);
30
+ inspect_typescript_graph(props) {
31
+ if (props.request.type === "escape") {
32
+ const result = this.escape(props.request.reason);
33
+ if (props.request.nextStep !== undefined) {
34
+ result.nextStep = props.request.nextStep;
35
+ }
36
+ return {
37
+ result,
38
+ };
39
+ }
40
+ switch (props.request.type) {
41
+ case "entrypoints":
42
+ return {
43
+ result: (0, runEntrypoints_1.runEntrypoints)(this.graph(), props.request),
44
+ };
45
+ case "lookup":
46
+ return {
47
+ result: (0, runLookup_1.runLookup)(this.graph(), props.request),
48
+ };
49
+ case "trace":
50
+ return {
51
+ result: (0, runTrace_1.runTrace)(this.graph(), props.request),
52
+ };
53
+ case "details":
54
+ return {
55
+ result: (0, runDetails_1.runDetails)(this.graph(), props.request),
56
+ };
57
+ case "overview":
58
+ return {
59
+ result: (0, runOverview_1.runOverview)(this.graph(), props.request),
60
+ };
61
+ case "tour":
62
+ return {
63
+ result: (0, runTour_1.runTour)(this.graph(), props.request),
64
+ };
65
+ default:
66
+ throw new Error("Unknown graph request type");
67
+ }
31
68
  }
32
- graph_overview(props) {
33
- return (0, runOverview_1.runOverview)(this.graph(), props);
34
- }
35
- graph_expand(props) {
36
- return (0, runExpand_1.runExpand)(this.graph(), props);
37
- }
38
- graph_query(props) {
39
- return (0, runQuery_1.runQuery)(this.graph(), props);
40
- }
41
- graph_trace(props) {
42
- return (0, runTrace_1.runTrace)(this.graph(), props);
69
+ escape(reason, nextStep, action = "outside") {
70
+ return {
71
+ type: "escape",
72
+ skipped: true,
73
+ reason,
74
+ next: (0, resultGuide_1.resultNext)(action, nextStep ??
75
+ "Graph evidence is exhausted or not the next evidence source."),
76
+ guide: (0, resultGuide_1.resultGuide)("Finish from existing graph evidence, state the graph gap, or ask for clarification."),
77
+ ...(nextStep !== undefined ? { nextStep } : {}),
78
+ };
43
79
  }
44
80
  }
45
81
  exports.TtscGraphApplication = TtscGraphApplication;
@@ -1 +1 @@
1
- {"version":3,"file":"TtscGraphApplication.js","sourceRoot":"","sources":["../src/TtscGraphApplication.ts"],"names":[],"mappings":";;;AACA,kDAA+C;AAC/C,gDAA6C;AAC7C,sDAAmD;AACnD,gDAA6C;AAC7C,gDAA6C;AAU7C;;;;;;;;;;;;;;GAcG;AACH;IACmB,KAAK,CAAwB;IAE9C,YAAmB,MAAuB;QACxC,IAAI,CAAC,KAAK,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IACpE,CAAC;IAEM,WAAW,CAAC,KAA6B;QAC9C,OAAO,IAAA,mBAAQ,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAEM,cAAc,CAAC,KAAgC;QACpD,OAAO,IAAA,yBAAW,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAEM,YAAY,CAAC,KAA8B;QAChD,OAAO,IAAA,qBAAS,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAEM,WAAW,CAAC,KAA6B;QAC9C,OAAO,IAAA,mBAAQ,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAEM,WAAW,CAAC,KAA6B;QAC9C,OAAO,IAAA,mBAAQ,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;CACF"}
1
+ {"version":3,"file":"TtscGraphApplication.js","sourceRoot":"","sources":["../src/TtscGraphApplication.ts"],"names":[],"mappings":";;;AACA,sDAA+D;AAC/D,oDAAiD;AACjD,4DAAyD;AACzD,kDAA+C;AAC/C,sDAAmD;AACnD,8CAA2C;AAC3C,gDAA6C;AAM7C;;;;;;;;;;;;;GAaG;AACH;IACmB,KAAK,CAAwB;IAE9C,YAAmB,MAAuB;QACxC,IAAI,CAAC,KAAK,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IACpE,CAAC;IAEM,wBAAwB,CAC7B,KAAmC;QAEnC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC3C,CAAC;YACD,OAAO;gBACL,MAAM;aACP,CAAC;QACJ,CAAC;QACD,QAAQ,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAK,aAAa;gBAChB,OAAO;oBACL,MAAM,EAAE,IAAA,+BAAc,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC;iBACpD,CAAC;YACJ,KAAK,QAAQ;gBACX,OAAO;oBACL,MAAM,EAAE,IAAA,qBAAS,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC;iBAC/C,CAAC;YACJ,KAAK,OAAO;gBACV,OAAO;oBACL,MAAM,EAAE,IAAA,mBAAQ,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC;iBAC9C,CAAC;YACJ,KAAK,SAAS;gBACZ,OAAO;oBACL,MAAM,EAAE,IAAA,uBAAU,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC;iBAChD,CAAC;YACJ,KAAK,UAAU;gBACb,OAAO;oBACL,MAAM,EAAE,IAAA,yBAAW,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC;iBACjD,CAAC;YACJ,KAAK,MAAM;gBACT,OAAO;oBACL,MAAM,EAAE,IAAA,iBAAO,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC;iBAC7C,CAAC;YACJ;gBACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEO,MAAM,CACZ,MAAc,EACd,QAAiB,EACjB,MAAM,GAAqC,SAAS;QAEpD,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,IAAI;YACb,MAAM;YACN,IAAI,EAAE,IAAA,wBAAU,EACd,MAAM,EACN,QAAQ;gBACN,8DAA8D,CACjE;YACD,KAAK,EAAE,IAAA,yBAAW,EAChB,qFAAqF,CACtF;YACD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC;IACJ,CAAC;CACF"}
@@ -7,9 +7,9 @@ exports.TtscGraphMemory = void 0;
7
7
  * It loads one `ttscgraph dump` — the checker-resolved fact graph — then
8
8
  * synthesizes the structural relationships the dump deliberately leaves to this
9
9
  * layer: `file` container nodes, the `contains` ownership tree, and `exports`
10
- * edges, plus the refinement of a class-member `variable` to a `property`.
11
- * Every tool call is then a lookup or a traversal over the indexes built here;
12
- * nothing recompiles.
10
+ * edges, plus class/interface member implementation edges and the refinement of
11
+ * a class-member `variable` to a `property`. Every tool call is then a lookup
12
+ * or a traversal over the indexes built here; nothing recompiles.
13
13
  */
14
14
  class TtscGraphMemory {
15
15
  byId;
@@ -159,10 +159,13 @@ function synthesize(dump) {
159
159
  // Ownership: a member is contained by its owner; a top-level declaration by
160
160
  // its file. Exports: a file exports each of its public nodes.
161
161
  const structural = [];
162
+ const membersByOwner = new Map();
162
163
  for (const node of nodes) {
163
164
  if (node.external || node.file === "")
164
165
  continue;
165
166
  const parent = owner(node);
167
+ if (parent !== undefined)
168
+ push(membersByOwner, parent.id, node);
166
169
  const container = parent ? parent.id : fileNodeId(node.file);
167
170
  structural.push({
168
171
  from: container,
@@ -177,9 +180,45 @@ function synthesize(dump) {
177
180
  });
178
181
  }
179
182
  }
183
+ const synthesized = [...edges, ...structural];
184
+ const edgeKeys = new Set(synthesized.map((edge) => `${edge.kind}\0${edge.from}\0${edge.to}`));
185
+ const byId = new Map(nodes.map((node) => [node.id, node]));
186
+ for (const edge of edges) {
187
+ const kind = edge.kind === "implements"
188
+ ? "implements"
189
+ : edge.kind === "extends"
190
+ ? "overrides"
191
+ : undefined;
192
+ if (kind === undefined)
193
+ continue;
194
+ const derived = byId.get(edge.from);
195
+ const base = byId.get(edge.to);
196
+ if (derived === undefined || base === undefined)
197
+ continue;
198
+ const derivedMembers = membersByOwner.get(derived.id) ?? [];
199
+ const baseMembers = membersByOwner.get(base.id) ?? [];
200
+ for (const baseMember of baseMembers) {
201
+ const derivedMember = derivedMembers.find((member) => member.name === baseMember.name &&
202
+ implementationMemberKinds.has(member.kind) &&
203
+ implementationMemberKinds.has(baseMember.kind));
204
+ if (derivedMember === undefined)
205
+ continue;
206
+ const key = `${kind}\0${derivedMember.id}\0${baseMember.id}`;
207
+ if (edgeKeys.has(key))
208
+ continue;
209
+ edgeKeys.add(key);
210
+ synthesized.push({
211
+ from: derivedMember.id,
212
+ to: baseMember.id,
213
+ kind,
214
+ evidence: derivedMember.implementation ?? derivedMember.evidence,
215
+ });
216
+ }
217
+ }
180
218
  return {
181
219
  nodes: [...nodes, ...fileNodes.values()],
182
- edges: [...edges, ...structural],
220
+ edges: synthesized,
183
221
  };
184
222
  }
223
+ const implementationMemberKinds = new Set(["method", "property"]);
185
224
  //# sourceMappingURL=TtscGraphMemory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TtscGraphMemory.js","sourceRoot":"","sources":["../../src/model/TtscGraphMemory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TtscGraphMemory.js","sourceRoot":"","sources":["../../src/model/TtscGraphMemory.ts"],"names":[],"mappings":"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"}
@@ -251,6 +251,16 @@ function parseDump(json) {
251
251
  path: _path + ".evidence",
252
252
  expected: "(ITtscGraphEvidence | undefined)",
253
253
  value: input.evidence
254
+ }, _errorFactory)) && (undefined === input.implementation || ("object" === typeof input.implementation && null !== input.implementation || _a._assertGuard(_exceptionable, {
255
+ method: "typia.assert",
256
+ path: _path + ".implementation",
257
+ expected: "(ITtscGraphEvidence | undefined)",
258
+ value: input.implementation
259
+ }, _errorFactory)) && _ao4(input.implementation, _path + ".implementation", true && _exceptionable) || _a._assertGuard(_exceptionable, {
260
+ method: "typia.assert",
261
+ path: _path + ".implementation",
262
+ expected: "(ITtscGraphEvidence | undefined)",
263
+ value: input.implementation
254
264
  }, _errorFactory));
255
265
  const _ao2 = (input, _path, _exceptionable = true) => ("string" === typeof input.name || _a._assertGuard(_exceptionable, {
256
266
  method: "typia.assert",
@@ -262,7 +272,7 @@ function parseDump(json) {
262
272
  path: _path + ".arguments",
263
273
  expected: "Array<ITtscGraphDecorator.IArgument>",
264
274
  value: input.arguments
265
- }, _errorFactory)) && input.arguments.every((elem, _index17) => ("object" === typeof elem && null !== elem || _a._assertGuard(_exceptionable, {
275
+ }, _errorFactory)) && input.arguments.every((elem, _index17) => ("object" === typeof elem && null !== elem && false === Array.isArray(elem) || _a._assertGuard(_exceptionable, {
266
276
  method: "typia.assert",
267
277
  path: _path + ".arguments[" + _index17 + "]",
268
278
  expected: "ITtscGraphDecorator.IArgument",
@@ -278,17 +288,12 @@ function parseDump(json) {
278
288
  expected: "Array<ITtscGraphDecorator.IArgument>",
279
289
  value: input.arguments
280
290
  }, _errorFactory));
281
- const _ao3 = (input, _path, _exceptionable = true) => ("string" === typeof input.text || _a._assertGuard(_exceptionable, {
282
- method: "typia.assert",
283
- path: _path + ".text",
284
- expected: "string",
285
- value: input.text
286
- }, _errorFactory)) && (undefined === input.literal || "string" === typeof input.literal || "number" === typeof input.literal || "boolean" === typeof input.literal || _a._assertGuard(_exceptionable, {
291
+ const _ao3 = (input, _path, _exceptionable = true) => undefined === input.literal || "string" === typeof input.literal || "number" === typeof input.literal || "boolean" === typeof input.literal || _a._assertGuard(_exceptionable, {
287
292
  method: "typia.assert",
288
293
  path: _path + ".literal",
289
294
  expected: "(boolean | number | string | undefined)",
290
295
  value: input.literal
291
- }, _errorFactory));
296
+ }, _errorFactory);
292
297
  const _ao4 = (input, _path, _exceptionable = true) => ("string" === typeof input.file || _a._assertGuard(_exceptionable, {
293
298
  method: "typia.assert",
294
299
  path: _path + ".file",
@@ -314,11 +319,6 @@ function parseDump(json) {
314
319
  path: _path + ".endCol",
315
320
  expected: "(number | undefined)",
316
321
  value: input.endCol
317
- }, _errorFactory)) && (undefined === input.text || "string" === typeof input.text || _a._assertGuard(_exceptionable, {
318
- method: "typia.assert",
319
- path: _path + ".text",
320
- expected: "(string | undefined)",
321
- value: input.text
322
322
  }, _errorFactory));
323
323
  const _ao5 = (input, _path, _exceptionable = true) => ("string" === typeof input.from || _a._assertGuard(_exceptionable, {
324
324
  method: "typia.assert",
@@ -388,10 +388,10 @@ function parseDump(json) {
388
388
  value: input.node
389
389
  }, _errorFactory));
390
390
  const _io0 = input => "string" === typeof input.project && "string" === typeof input.tsconfig && (Array.isArray(input.nodes) && input.nodes.every(elem => "object" === typeof elem && null !== elem && _io1(elem))) && (Array.isArray(input.edges) && input.edges.every(elem => "object" === typeof elem && null !== elem && _io5(elem))) && (undefined === input.diagnostics || Array.isArray(input.diagnostics) && input.diagnostics.every(elem => "object" === typeof elem && null !== elem && _io6(elem)));
391
- const _io1 = input => "string" === typeof input.id && true === _iv4.has(input.kind) && "string" === typeof input.name && (undefined === input.qualifiedName || "string" === typeof input.qualifiedName) && "string" === typeof input.file && "boolean" === typeof input.external && (undefined === input.ignored || "boolean" === typeof input.ignored) && (undefined === input.exported || "boolean" === typeof input.exported) && (undefined === input.modifiers || Array.isArray(input.modifiers) && input.modifiers.every(elem => true === _iv6.has(elem))) && (undefined === input.decorators || Array.isArray(input.decorators) && input.decorators.every(elem => "object" === typeof elem && null !== elem && _io2(elem))) && (undefined === input.evidence || "object" === typeof input.evidence && null !== input.evidence && _io4(input.evidence));
392
- const _io2 = input => "string" === typeof input.name && (Array.isArray(input.arguments) && input.arguments.every(elem => "object" === typeof elem && null !== elem && _io3(elem)));
393
- const _io3 = input => "string" === typeof input.text && (undefined === input.literal || "string" === typeof input.literal || "number" === typeof input.literal || "boolean" === typeof input.literal);
394
- const _io4 = input => "string" === typeof input.file && "number" === typeof input.startLine && (undefined === input.startCol || "number" === typeof input.startCol) && (undefined === input.endLine || "number" === typeof input.endLine) && (undefined === input.endCol || "number" === typeof input.endCol) && (undefined === input.text || "string" === typeof input.text);
391
+ const _io1 = input => "string" === typeof input.id && true === _iv4.has(input.kind) && "string" === typeof input.name && (undefined === input.qualifiedName || "string" === typeof input.qualifiedName) && "string" === typeof input.file && "boolean" === typeof input.external && (undefined === input.ignored || "boolean" === typeof input.ignored) && (undefined === input.exported || "boolean" === typeof input.exported) && (undefined === input.modifiers || Array.isArray(input.modifiers) && input.modifiers.every(elem => true === _iv6.has(elem))) && (undefined === input.decorators || Array.isArray(input.decorators) && input.decorators.every(elem => "object" === typeof elem && null !== elem && _io2(elem))) && (undefined === input.evidence || "object" === typeof input.evidence && null !== input.evidence && _io4(input.evidence)) && (undefined === input.implementation || "object" === typeof input.implementation && null !== input.implementation && _io4(input.implementation));
392
+ const _io2 = input => "string" === typeof input.name && (Array.isArray(input.arguments) && input.arguments.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _io3(elem)));
393
+ const _io3 = input => undefined === input.literal || "string" === typeof input.literal || "number" === typeof input.literal || "boolean" === typeof input.literal;
394
+ const _io4 = input => "string" === typeof input.file && "number" === typeof input.startLine && (undefined === input.startCol || "number" === typeof input.startCol) && (undefined === input.endLine || "number" === typeof input.endLine) && (undefined === input.endCol || "number" === typeof input.endCol);
395
395
  const _io5 = input => "string" === typeof input.from && "string" === typeof input.to && true === _iv9.has(input.kind) && (undefined === input.evidence || "object" === typeof input.evidence && null !== input.evidence && _io4(input.evidence));
396
396
  const _io6 = input => "string" === typeof input.file && "number" === typeof input.line && (undefined === input.column || "number" === typeof input.column) && ("string" === typeof input.code || "number" === typeof input.code) && "string" === typeof input.message && (undefined === input.severity || "error" === input.severity || "hint" === input.severity || "info" === input.severity || "warning" === input.severity) && (undefined === input.origin || "lint" === input.origin || "plugin" === input.origin || "tsc" === input.origin) && (undefined === input.node || "string" === typeof input.node);
397
397
  const __is = input => "object" === typeof input && null !== input && _io0(input);
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.accessAliasesFor = accessAliasesFor;
4
+ /**
5
+ * Derive stable access-path aliases for a member edge from its source
6
+ * expression. If a hop reaches `Owner.member` through `obj.path.member`, the
7
+ * alias `Owner.path.member` keeps both the resolved owner and the concrete
8
+ * access path visible without reopening source.
9
+ */
10
+ function accessAliasesFor(node, evidenceText) {
11
+ if (node === undefined ||
12
+ node.qualifiedName === undefined ||
13
+ evidenceText === undefined) {
14
+ return undefined;
15
+ }
16
+ const segments = dottedSegments(evidenceText);
17
+ if (segments.length < 2 || segments[segments.length - 1] !== node.name) {
18
+ return undefined;
19
+ }
20
+ const dot = node.qualifiedName.lastIndexOf(".");
21
+ if (dot < 0)
22
+ return undefined;
23
+ const owner = node.qualifiedName.slice(0, dot);
24
+ const suffix = segments.slice(1).join(".");
25
+ const aliases = new Set();
26
+ for (const candidate of [...ownerDisplayAliases(owner), owner]) {
27
+ const alias = `${candidate}.${suffix}`;
28
+ if (alias !== node.qualifiedName)
29
+ aliases.add(alias);
30
+ }
31
+ return aliases.size > 0 ? [...aliases] : undefined;
32
+ }
33
+ function dottedSegments(text) {
34
+ const normalized = text.trim().replace(/\?\./g, ".");
35
+ const parts = normalized.split(".");
36
+ if (parts.length < 2)
37
+ return [];
38
+ return parts.every((part) => /^[A-Za-z_$][\w$]*$/.test(part)) ? parts : [];
39
+ }
40
+ function ownerDisplayAliases(owner) {
41
+ const display = owner.replace(/^_+/, "");
42
+ const out = new Set();
43
+ for (const suffix of ["Internals", "Internal"]) {
44
+ if (display.length > suffix.length && display.endsWith(suffix)) {
45
+ out.add(display.slice(0, -suffix.length));
46
+ }
47
+ }
48
+ if (out.size === 0 && display !== owner)
49
+ out.add(display);
50
+ out.delete(owner);
51
+ return [...out];
52
+ }
53
+ //# sourceMappingURL=accessAliases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessAliases.js","sourceRoot":"","sources":["../../src/server/accessAliases.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACH,0BACE,IAAgC,EAChC,YAAgC;IAEhC,IACE,IAAI,KAAK,SAAS;QAClB,IAAI,CAAC,aAAa,KAAK,SAAS;QAChC,YAAY,KAAK,SAAS,EAC1B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IAC9C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACvE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,SAAS,IAAI,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAC/D,MAAM,KAAK,GAAG,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC;QACvC,IAAI,KAAK,KAAK,IAAI,CAAC,aAAa;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,MAAM,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC;QAC/C,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK;QAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClB,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC"}