@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.
- package/README.md +22 -0
- package/lib/TtscGraphApplication.js +58 -22
- package/lib/TtscGraphApplication.js.map +1 -1
- package/lib/model/TtscGraphMemory.js +43 -4
- package/lib/model/TtscGraphMemory.js.map +1 -1
- package/lib/model/loadGraph.js +17 -17
- package/lib/server/accessAliases.js +53 -0
- package/lib/server/accessAliases.js.map +1 -0
- package/lib/server/createServer.js +1490 -657
- package/lib/server/createServer.js.map +1 -1
- package/lib/server/instructions.js +81 -21
- package/lib/server/instructions.js.map +1 -1
- package/lib/server/pathPolicy.js +35 -0
- package/lib/server/pathPolicy.js.map +1 -0
- package/lib/server/resultGuide.js +16 -0
- package/lib/server/resultGuide.js.map +1 -0
- package/lib/server/runDetails.js +474 -0
- package/lib/server/runDetails.js.map +1 -0
- package/lib/server/{runIndex.js → runEntrypoints.js} +92 -28
- package/lib/server/runEntrypoints.js.map +1 -0
- package/lib/server/runLookup.js +246 -0
- package/lib/server/runLookup.js.map +1 -0
- package/lib/server/runOverview.js +44 -27
- package/lib/server/runOverview.js.map +1 -1
- package/lib/server/runTour.js +737 -0
- package/lib/server/runTour.js.map +1 -0
- package/lib/server/runTrace.js +224 -43
- package/lib/server/runTrace.js.map +1 -1
- package/lib/structures/ITtscGraphDetails.js +3 -0
- package/lib/structures/ITtscGraphDetails.js.map +1 -0
- package/lib/structures/ITtscGraphEntrypoints.js +3 -0
- package/lib/structures/ITtscGraphEntrypoints.js.map +1 -0
- package/lib/structures/{ITtscGraphExpand.js → ITtscGraphEscape.js} +1 -1
- package/lib/structures/ITtscGraphEscape.js.map +1 -0
- package/lib/structures/ITtscGraphLookup.js +3 -0
- package/lib/structures/ITtscGraphLookup.js.map +1 -0
- package/lib/structures/{ITtscGraphIndex.js → ITtscGraphNext.js} +1 -1
- package/lib/structures/ITtscGraphNext.js.map +1 -0
- package/lib/structures/{ITtscGraphQuery.js → ITtscGraphTour.js} +1 -1
- package/lib/structures/ITtscGraphTour.js.map +1 -0
- package/lib/structures/index.js +6 -3
- package/lib/structures/index.js.map +1 -1
- package/package.json +2 -2
- package/src/TtscGraphApplication.ts +70 -30
- package/src/model/TtscGraphMemory.ts +46 -4
- package/src/server/accessAliases.ts +55 -0
- package/src/server/createServer.ts +4 -7
- package/src/server/instructions.ts +81 -21
- package/src/server/pathPolicy.ts +43 -0
- package/src/server/resultGuide.ts +20 -0
- package/src/server/runDetails.ts +553 -0
- package/src/server/{runIndex.ts → runEntrypoints.ts} +116 -36
- package/src/server/runLookup.ts +284 -0
- package/src/server/runOverview.ts +59 -31
- package/src/server/runTour.ts +881 -0
- package/src/server/runTrace.ts +299 -45
- package/src/structures/ITtscGraphApplication.ts +75 -56
- package/src/structures/ITtscGraphDecorator.ts +12 -14
- package/src/structures/ITtscGraphDetails.ts +197 -0
- package/src/structures/ITtscGraphEntrypoints.ts +149 -0
- package/src/structures/ITtscGraphEscape.ts +49 -0
- package/src/structures/ITtscGraphEvidence.ts +5 -8
- package/src/structures/ITtscGraphLookup.ts +82 -0
- package/src/structures/ITtscGraphNext.ts +23 -0
- package/src/structures/ITtscGraphNode.ts +10 -4
- package/src/structures/ITtscGraphOverview.ts +41 -18
- package/src/structures/ITtscGraphTour.ts +150 -0
- package/src/structures/ITtscGraphTrace.ts +93 -13
- package/src/structures/TtscGraphNodeKind.ts +2 -2
- package/src/structures/index.ts +6 -3
- package/lib/server/runExpand.js +0 -177
- package/lib/server/runExpand.js.map +0 -1
- package/lib/server/runIndex.js.map +0 -1
- package/lib/server/runQuery.js +0 -147
- package/lib/server/runQuery.js.map +0 -1
- package/lib/structures/ITtscGraphExpand.js.map +0 -1
- package/lib/structures/ITtscGraphIndex.js.map +0 -1
- package/lib/structures/ITtscGraphQuery.js.map +0 -1
- package/src/server/runExpand.ts +0 -186
- package/src/server/runQuery.ts +0 -150
- package/src/structures/ITtscGraphExpand.ts +0 -85
- package/src/structures/ITtscGraphIndex.ts +0 -100
- package/src/structures/ITtscGraphQuery.ts +0 -49
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runDetails.js","sourceRoot":"","sources":["../../src/server/runDetails.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.runEntrypoints = runEntrypoints;
|
|
4
4
|
const resolveHandle_1 = require("./resolveHandle");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
5
|
+
const resultGuide_1 = require("./resultGuide");
|
|
6
|
+
const runDetails_1 = require("./runDetails");
|
|
7
|
+
const runLookup_1 = require("./runLookup");
|
|
8
|
+
const DEFAULT_LIMIT = 4;
|
|
9
|
+
const MAX_LIMIT = 8;
|
|
10
|
+
const DEFAULT_NEIGHBORS = 0;
|
|
11
|
+
const MAX_NEIGHBORS = 2;
|
|
12
|
+
const MAX_SEEDS = 3;
|
|
12
13
|
const STRUCTURAL_KINDS = new Set(["contains", "exports", "imports"]);
|
|
13
14
|
/**
|
|
14
|
-
* Build the first source-free
|
|
15
|
-
* model stable handles, declaration signatures, and direct graph
|
|
16
|
-
* deliberately not a source reader;
|
|
17
|
-
*
|
|
15
|
+
* Build the first source-free entrypoints list for a code question. The result
|
|
16
|
+
* gives the model stable handles, declaration signatures, and direct graph
|
|
17
|
+
* context. It is deliberately not a source reader; details adds selected symbol
|
|
18
|
+
* shape and ranges, not implementation text.
|
|
18
19
|
*/
|
|
19
|
-
function
|
|
20
|
+
function runEntrypoints(graph, props) {
|
|
20
21
|
const query = props.query.trim();
|
|
21
22
|
const limit = bound(props.limit, DEFAULT_LIMIT, 1, MAX_LIMIT);
|
|
22
23
|
const neighborLimit = bound(props.neighbors, DEFAULT_NEIGHBORS, 0, MAX_NEIGHBORS);
|
|
23
|
-
const
|
|
24
|
-
const hits =
|
|
25
|
-
const mentions = directMentions(query).map((handle) => {
|
|
24
|
+
const lookupResult = (0, runLookup_1.runLookup)(graph, { type: "lookup", query, limit });
|
|
25
|
+
const hits = lookupResult.hits.map((hit) => ({ ...hit }));
|
|
26
|
+
const mentions = directMentions(graph, query).map((handle) => {
|
|
26
27
|
const resolved = (0, resolveHandle_1.resolveGraphHandle)(graph, handle, 6);
|
|
27
28
|
const mention = { handle };
|
|
28
29
|
if (resolved.node !== undefined)
|
|
@@ -60,16 +61,13 @@ function runIndex(graph, props) {
|
|
|
60
61
|
});
|
|
61
62
|
}
|
|
62
63
|
return {
|
|
64
|
+
type: "entrypoints",
|
|
63
65
|
query,
|
|
64
66
|
hits,
|
|
65
67
|
mentions,
|
|
66
68
|
neighborhood,
|
|
67
|
-
next:
|
|
68
|
-
|
|
69
|
-
traceFrom: mentions
|
|
70
|
-
.map((mention) => mention.node?.id)
|
|
71
|
-
.filter((id) => id !== undefined),
|
|
72
|
-
},
|
|
69
|
+
next: (0, resultGuide_1.resultNext)("inspect", "Use one returned handle for trace/details when the answer needs flow or selected shape.", "trace"),
|
|
70
|
+
guide: (0, resultGuide_1.resultGuide)("Use hits, mentions, and neighborhood as the code index. If they identify the relevant files and symbols, answer or make one focused trace/details call; do not search the repository to verify them."),
|
|
73
71
|
...(truncated ? { truncated: true } : {}),
|
|
74
72
|
};
|
|
75
73
|
}
|
|
@@ -82,9 +80,12 @@ function nodeOf(graph, node) {
|
|
|
82
80
|
};
|
|
83
81
|
if (node.evidence?.startLine !== undefined)
|
|
84
82
|
out.line = node.evidence.startLine;
|
|
85
|
-
const signature = (0,
|
|
83
|
+
const signature = (0, runDetails_1.signatureOf)(graph.project, node);
|
|
86
84
|
if (signature !== undefined)
|
|
87
85
|
out.signature = signature;
|
|
86
|
+
const decorators = (0, runDetails_1.decoratorsOf)(node);
|
|
87
|
+
if (decorators !== undefined)
|
|
88
|
+
out.decorators = decorators;
|
|
88
89
|
return out;
|
|
89
90
|
}
|
|
90
91
|
function refOf(node, edge) {
|
|
@@ -97,10 +98,13 @@ function refOf(node, edge) {
|
|
|
97
98
|
};
|
|
98
99
|
if (node.evidence?.startLine !== undefined)
|
|
99
100
|
out.line = node.evidence.startLine;
|
|
101
|
+
const evidence = (0, runDetails_1.edgeEvidenceOf)(edge);
|
|
102
|
+
if (evidence !== undefined)
|
|
103
|
+
out.evidence = evidence;
|
|
100
104
|
return out;
|
|
101
105
|
}
|
|
102
106
|
function refs(graph, edges, end, limit) {
|
|
103
|
-
const
|
|
107
|
+
const ranked = [];
|
|
104
108
|
const seen = new Set();
|
|
105
109
|
let available = 0;
|
|
106
110
|
for (const edge of edges) {
|
|
@@ -114,15 +118,66 @@ function refs(graph, edges, end, limit) {
|
|
|
114
118
|
continue;
|
|
115
119
|
seen.add(key);
|
|
116
120
|
available++;
|
|
121
|
+
const ref = refOf(other, edge);
|
|
122
|
+
ranked.push({ ref, rank: refRank(ref, edge) });
|
|
123
|
+
}
|
|
124
|
+
ranked.sort((a, b) => a.rank - b.rank);
|
|
125
|
+
const items = [];
|
|
126
|
+
for (const item of ranked) {
|
|
117
127
|
if (items.length < limit)
|
|
118
|
-
items.push(
|
|
128
|
+
items.push(item.ref);
|
|
119
129
|
}
|
|
120
130
|
return { items, truncated: available > items.length };
|
|
121
131
|
}
|
|
122
|
-
function
|
|
132
|
+
function refRank(ref, edge) {
|
|
133
|
+
return (edgeKindRank(edge.kind) * 100000 +
|
|
134
|
+
evidenceRank(edge) +
|
|
135
|
+
(ref.file.startsWith("bundled://") ? 20000 : 0));
|
|
136
|
+
}
|
|
137
|
+
function evidenceRank(edge) {
|
|
138
|
+
const line = edge.evidence?.startLine ?? 9999;
|
|
139
|
+
const col = edge.evidence?.startCol ?? 999;
|
|
140
|
+
return line * 100 + col;
|
|
141
|
+
}
|
|
142
|
+
function edgeKindRank(kind) {
|
|
143
|
+
switch (kind) {
|
|
144
|
+
case "calls":
|
|
145
|
+
return 0;
|
|
146
|
+
case "instantiates":
|
|
147
|
+
return 1;
|
|
148
|
+
case "accesses":
|
|
149
|
+
case "renders":
|
|
150
|
+
return 2;
|
|
151
|
+
case "tests":
|
|
152
|
+
return 3;
|
|
153
|
+
case "overrides":
|
|
154
|
+
case "decorates":
|
|
155
|
+
return 4;
|
|
156
|
+
case "extends":
|
|
157
|
+
case "implements":
|
|
158
|
+
return 5;
|
|
159
|
+
case "type_ref":
|
|
160
|
+
return 6;
|
|
161
|
+
default:
|
|
162
|
+
return 10;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
function directMentions(graph, query) {
|
|
123
166
|
const handles = new Set();
|
|
167
|
+
for (const token of query.split(/\s+/)) {
|
|
168
|
+
const handle = normalizeNodeIdToken(token);
|
|
169
|
+
if (handle !== undefined && graph.node(handle) !== undefined) {
|
|
170
|
+
handles.add(handle);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
124
173
|
for (const match of query.matchAll(/`([^`]+)`/g)) {
|
|
125
|
-
const
|
|
174
|
+
const raw = match[1] ?? "";
|
|
175
|
+
const id = normalizeNodeIdToken(raw);
|
|
176
|
+
if (id !== undefined && graph.node(id) !== undefined) {
|
|
177
|
+
handles.add(id);
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
const handle = normalizeHandle(raw);
|
|
126
181
|
if (handle !== undefined)
|
|
127
182
|
handles.add(handle);
|
|
128
183
|
}
|
|
@@ -133,6 +188,15 @@ function directMentions(query) {
|
|
|
133
188
|
}
|
|
134
189
|
return [...handles];
|
|
135
190
|
}
|
|
191
|
+
function normalizeNodeIdToken(raw) {
|
|
192
|
+
const value = raw
|
|
193
|
+
.trim()
|
|
194
|
+
.replace(/^[`"'([{]+/, "")
|
|
195
|
+
.replace(/[`"',.;:)\]}]+$/, "");
|
|
196
|
+
return /^[^\s#]+#[^\s#]+:(class|interface|type|enum|function|method|variable|property)$/.test(value)
|
|
197
|
+
? value
|
|
198
|
+
: undefined;
|
|
199
|
+
}
|
|
136
200
|
function normalizeHandle(raw) {
|
|
137
201
|
const value = raw.trim();
|
|
138
202
|
return /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)*$/.test(value)
|
|
@@ -143,4 +207,4 @@ function bound(value, fallback, min, max) {
|
|
|
143
207
|
const n = value === undefined || !Number.isFinite(value) ? fallback : value;
|
|
144
208
|
return Math.max(min, Math.min(max, Math.floor(n)));
|
|
145
209
|
}
|
|
146
|
-
//# sourceMappingURL=
|
|
210
|
+
//# sourceMappingURL=runEntrypoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runEntrypoints.js","sourceRoot":"","sources":["../../src/server/runEntrypoints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runLookup = runLookup;
|
|
4
|
+
const pathPolicy_1 = require("./pathPolicy");
|
|
5
|
+
const resultGuide_1 = require("./resultGuide");
|
|
6
|
+
const runDetails_1 = require("./runDetails");
|
|
7
|
+
// One file should not crowd out the rest of the ranking, so cap hits per file.
|
|
8
|
+
const PER_FILE = 3;
|
|
9
|
+
const DEFAULT_LIMIT = 5;
|
|
10
|
+
const MAX_LIMIT = 6;
|
|
11
|
+
/**
|
|
12
|
+
* Rank the graph's symbols against a natural query. Scoring blends exact and
|
|
13
|
+
* dotted-name matches, CamelCase/subword coverage, file-path terms, a prefix
|
|
14
|
+
* bonus, and dependency centrality, then dampens external, generated, and test
|
|
15
|
+
* nodes and caps per file so the result is a diverse, relevant shortlist rather
|
|
16
|
+
* than one file's roster.
|
|
17
|
+
*/
|
|
18
|
+
function runLookup(graph, props) {
|
|
19
|
+
const terms = subwords(props.query);
|
|
20
|
+
const codeTerms = exactCodeTerms(props.query);
|
|
21
|
+
const requestedKinds = requestedSymbolKinds(props.query);
|
|
22
|
+
const queryLc = props.query.trim().toLowerCase();
|
|
23
|
+
const wantsInternal = wantsInternalSymbol(queryLc, codeTerms);
|
|
24
|
+
const wantsSupport = wantsSupportSymbol(queryLc);
|
|
25
|
+
const includeExternal = props.includeExternal === true;
|
|
26
|
+
if (terms.length === 0)
|
|
27
|
+
return {
|
|
28
|
+
type: "lookup",
|
|
29
|
+
hits: [],
|
|
30
|
+
next: (0, resultGuide_1.resultNext)("clarify", "No symbol matched; ask for a concrete symbol or scope."),
|
|
31
|
+
guide: (0, resultGuide_1.resultGuide)("No symbol matched; answer that the graph did not resolve this name or ask for a more concrete symbol."),
|
|
32
|
+
};
|
|
33
|
+
const scored = [];
|
|
34
|
+
for (const node of graph.nodes) {
|
|
35
|
+
if (node.kind === "file")
|
|
36
|
+
continue;
|
|
37
|
+
if (!includeExternal && (0, pathPolicy_1.isExternalNode)(node))
|
|
38
|
+
continue;
|
|
39
|
+
const score = scoreNode(graph, node, queryLc, terms, codeTerms, requestedKinds, wantsInternal, wantsSupport);
|
|
40
|
+
if (score <= 0)
|
|
41
|
+
continue;
|
|
42
|
+
const hit = {
|
|
43
|
+
id: node.id,
|
|
44
|
+
name: node.qualifiedName ?? node.name,
|
|
45
|
+
kind: node.kind,
|
|
46
|
+
file: node.file,
|
|
47
|
+
line: node.evidence?.startLine,
|
|
48
|
+
score: Math.round(score),
|
|
49
|
+
};
|
|
50
|
+
const decorators = (0, runDetails_1.decoratorsOf)(node);
|
|
51
|
+
if (decorators !== undefined)
|
|
52
|
+
hit.decorators = decorators;
|
|
53
|
+
scored.push(hit);
|
|
54
|
+
}
|
|
55
|
+
scored.sort((a, b) => b.score - a.score);
|
|
56
|
+
// Diversity: keep at most PER_FILE hits per file while filling up to the limit.
|
|
57
|
+
const limit = bound(props.limit, DEFAULT_LIMIT, 1, MAX_LIMIT);
|
|
58
|
+
const perFile = new Map();
|
|
59
|
+
const hits = [];
|
|
60
|
+
for (const hit of scored) {
|
|
61
|
+
const used = perFile.get(hit.file) ?? 0;
|
|
62
|
+
if (used >= PER_FILE)
|
|
63
|
+
continue;
|
|
64
|
+
perFile.set(hit.file, used + 1);
|
|
65
|
+
hits.push(hit);
|
|
66
|
+
if (hits.length >= limit)
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
// Attach each kept hit's signature only for the shortlist, so the model can
|
|
70
|
+
// often answer from lookup alone without a details call.
|
|
71
|
+
for (const hit of hits) {
|
|
72
|
+
const node = graph.node(hit.id);
|
|
73
|
+
if (node === undefined)
|
|
74
|
+
continue;
|
|
75
|
+
const sig = (0, runDetails_1.signatureOf)(graph.project, node);
|
|
76
|
+
if (sig !== undefined)
|
|
77
|
+
hit.signature = sig;
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
type: "lookup",
|
|
81
|
+
hits,
|
|
82
|
+
next: (0, resultGuide_1.resultNext)("inspect", "Use one returned id for trace/details when the answer needs flow or shape.", "details"),
|
|
83
|
+
guide: (0, resultGuide_1.resultGuide)("Use ranked hits and signatures as symbol evidence. If the target is clear, answer or make one focused trace/details call; do not search files to verify the match."),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/** Score one node against the query; 0 means no match. */
|
|
87
|
+
function scoreNode(graph, node, queryLc, terms, codeTerms, requestedKinds, wantsInternal, wantsSupport) {
|
|
88
|
+
const name = node.name.toLowerCase();
|
|
89
|
+
const qualified = (node.qualifiedName ?? node.name).toLowerCase();
|
|
90
|
+
const nameSubs = subwords(node.name);
|
|
91
|
+
const qualifiedSubs = subwords(node.qualifiedName ?? node.name);
|
|
92
|
+
const pathSubs = subwords(node.file);
|
|
93
|
+
let score = 0;
|
|
94
|
+
if (queryLc === name || queryLc === qualified) {
|
|
95
|
+
score += 100;
|
|
96
|
+
}
|
|
97
|
+
else if (qualified.includes(".") && queryLc.includes(qualified)) {
|
|
98
|
+
score += 85;
|
|
99
|
+
}
|
|
100
|
+
else if (queryLc.includes(".") && qualified.includes(queryLc)) {
|
|
101
|
+
score += 60;
|
|
102
|
+
}
|
|
103
|
+
for (const codeTerm of codeTerms) {
|
|
104
|
+
if (name === codeTerm || qualified === codeTerm) {
|
|
105
|
+
score += 110;
|
|
106
|
+
}
|
|
107
|
+
else if (qualified.endsWith(`.${codeTerm}`)) {
|
|
108
|
+
score += 95;
|
|
109
|
+
}
|
|
110
|
+
else if (codeTerm.includes(".") && qualified.endsWith(codeTerm)) {
|
|
111
|
+
score += 85;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (requestedKinds.has(node.kind))
|
|
115
|
+
score += 16;
|
|
116
|
+
let covered = 0;
|
|
117
|
+
for (const term of terms) {
|
|
118
|
+
if (nameSubs.includes(term)) {
|
|
119
|
+
score += 12;
|
|
120
|
+
covered++;
|
|
121
|
+
}
|
|
122
|
+
else if (qualifiedSubs.includes(term)) {
|
|
123
|
+
score += 8;
|
|
124
|
+
covered++;
|
|
125
|
+
}
|
|
126
|
+
else if (name.includes(term)) {
|
|
127
|
+
score += 5;
|
|
128
|
+
covered++;
|
|
129
|
+
}
|
|
130
|
+
else if (pathSubs.includes(term)) {
|
|
131
|
+
score += 3;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Every query term landed somewhere in the name: a strong whole-query match.
|
|
135
|
+
if (covered === terms.length)
|
|
136
|
+
score += 10;
|
|
137
|
+
if (name.startsWith(terms[0]))
|
|
138
|
+
score += 4;
|
|
139
|
+
if (score <= 0)
|
|
140
|
+
return 0;
|
|
141
|
+
// Centrality: a symbol the codebase leans on is a likelier target.
|
|
142
|
+
const fan = degree(graph, node.id);
|
|
143
|
+
score += Math.min(8, Math.log2(1 + fan) * 2);
|
|
144
|
+
// Dampen what is rarely the intended target.
|
|
145
|
+
if (node.ignored)
|
|
146
|
+
score *= 0.3;
|
|
147
|
+
if (isTestFile(node.file))
|
|
148
|
+
score *= 0.7;
|
|
149
|
+
if (!wantsSupport && (0, pathPolicy_1.isSupportPath)(node.file))
|
|
150
|
+
score *= 0.35;
|
|
151
|
+
if (!wantsInternal && isInternalish(node))
|
|
152
|
+
score *= 0.82;
|
|
153
|
+
return score;
|
|
154
|
+
}
|
|
155
|
+
function wantsSupportSymbol(queryLc) {
|
|
156
|
+
return /\b(test|tests|spec|fixture|fixtures|sample|samples|example|examples|generated|build|dist)\b/.test(queryLc);
|
|
157
|
+
}
|
|
158
|
+
function wantsInternalSymbol(queryLc, codeTerms) {
|
|
159
|
+
return (/\b(internal|private|implementation|impl)\b/.test(queryLc) ||
|
|
160
|
+
codeTerms.some((term) => term.startsWith("_") || term.includes("internal")));
|
|
161
|
+
}
|
|
162
|
+
function isInternalish(node) {
|
|
163
|
+
const name = node.qualifiedName ?? node.name;
|
|
164
|
+
return (name.startsWith("_") ||
|
|
165
|
+
name.includes("._") ||
|
|
166
|
+
subwords(name).some((word) => word === "internal" || word === "internals"));
|
|
167
|
+
}
|
|
168
|
+
function exactCodeTerms(query) {
|
|
169
|
+
const out = new Set();
|
|
170
|
+
for (const match of query.matchAll(/`([^`]+)`/g)) {
|
|
171
|
+
const normalized = normalizeCodeTerm(match[1] ?? "");
|
|
172
|
+
if (normalized !== undefined)
|
|
173
|
+
out.add(normalized);
|
|
174
|
+
}
|
|
175
|
+
for (const match of query.matchAll(/\b([A-Za-z_$][\w$]*)\s+(method|function|class|interface|type|variable)\b/gi)) {
|
|
176
|
+
const normalized = normalizeCodeTerm(match[1] ?? "");
|
|
177
|
+
if (normalized !== undefined)
|
|
178
|
+
out.add(normalized);
|
|
179
|
+
}
|
|
180
|
+
for (const match of query.matchAll(/\b[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)+\b/g)) {
|
|
181
|
+
const normalized = normalizeCodeTerm(match[0]);
|
|
182
|
+
if (normalized !== undefined)
|
|
183
|
+
out.add(normalized);
|
|
184
|
+
}
|
|
185
|
+
return [...out];
|
|
186
|
+
}
|
|
187
|
+
function requestedSymbolKinds(query) {
|
|
188
|
+
const kinds = new Set();
|
|
189
|
+
const lc = query.toLowerCase();
|
|
190
|
+
if (/\bmethods?\b/.test(lc))
|
|
191
|
+
kinds.add("method");
|
|
192
|
+
if (/\bfunctions?\b/.test(lc)) {
|
|
193
|
+
kinds.add("function");
|
|
194
|
+
kinds.add("method");
|
|
195
|
+
kinds.add("variable");
|
|
196
|
+
}
|
|
197
|
+
if (/\bclasses?\b/.test(lc))
|
|
198
|
+
kinds.add("class");
|
|
199
|
+
if (/\binterfaces?\b/.test(lc))
|
|
200
|
+
kinds.add("interface");
|
|
201
|
+
if (/\btypes?\b/.test(lc))
|
|
202
|
+
kinds.add("type");
|
|
203
|
+
if (/\bvariables?\b|\bconst\b|\blet\b/.test(lc))
|
|
204
|
+
kinds.add("variable");
|
|
205
|
+
return kinds;
|
|
206
|
+
}
|
|
207
|
+
function normalizeCodeTerm(raw) {
|
|
208
|
+
const value = raw.trim().toLowerCase();
|
|
209
|
+
return /^[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*$/.test(value) ? value : undefined;
|
|
210
|
+
}
|
|
211
|
+
/** Non-structural in+out degree (code dependency, not nesting). */
|
|
212
|
+
function degree(graph, id) {
|
|
213
|
+
let n = 0;
|
|
214
|
+
for (const edge of graph.outgoing(id))
|
|
215
|
+
if (!isStructural(edge.kind))
|
|
216
|
+
n++;
|
|
217
|
+
for (const edge of graph.incoming(id))
|
|
218
|
+
if (!isStructural(edge.kind))
|
|
219
|
+
n++;
|
|
220
|
+
return n;
|
|
221
|
+
}
|
|
222
|
+
function isStructural(kind) {
|
|
223
|
+
return kind === "contains" || kind === "exports" || kind === "imports";
|
|
224
|
+
}
|
|
225
|
+
function isTestFile(file) {
|
|
226
|
+
return (/(^|\/)(test|tests|__tests__|spec)\//.test(file) ||
|
|
227
|
+
/\.(test|spec)\.[cm]?tsx?$/.test(file));
|
|
228
|
+
}
|
|
229
|
+
function bound(value, fallback, min, max) {
|
|
230
|
+
const n = value === undefined || !Number.isFinite(value) ? fallback : value;
|
|
231
|
+
return Math.max(min, Math.min(max, Math.floor(n)));
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Split an identifier or phrase into lowercase subword tokens: CamelCase,
|
|
235
|
+
* snake, dotted, and space boundaries all break, so `getHTTPResponse`,
|
|
236
|
+
* `find_by_id`, and `OrderService.create` tokenize the way a query would.
|
|
237
|
+
*/
|
|
238
|
+
function subwords(text) {
|
|
239
|
+
return text
|
|
240
|
+
.replace(/([a-z0-9])([A-Z])/g, "$1 $2")
|
|
241
|
+
.replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2")
|
|
242
|
+
.split(/[^a-zA-Z0-9]+/)
|
|
243
|
+
.filter((w) => w.length > 0)
|
|
244
|
+
.map((w) => w.toLowerCase());
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=runLookup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runLookup.js","sourceRoot":"","sources":["../../src/server/runLookup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runOverview = runOverview;
|
|
4
|
+
const pathPolicy_1 = require("./pathPolicy");
|
|
5
|
+
const resultGuide_1 = require("./resultGuide");
|
|
4
6
|
/** Edges that express nesting/packaging, not code dependency. */
|
|
5
7
|
const STRUCTURAL_KINDS = new Set(["contains", "exports", "imports"]);
|
|
6
8
|
/**
|
|
@@ -21,6 +23,7 @@ function runOverview(graph, props) {
|
|
|
21
23
|
files++;
|
|
22
24
|
}
|
|
23
25
|
const result = {
|
|
26
|
+
type: "overview",
|
|
24
27
|
project: graph.project,
|
|
25
28
|
counts: {
|
|
26
29
|
files,
|
|
@@ -28,6 +31,8 @@ function runOverview(graph, props) {
|
|
|
28
31
|
edges: graph.edges.length,
|
|
29
32
|
byKind,
|
|
30
33
|
},
|
|
34
|
+
next: (0, resultGuide_1.resultNext)("answer", "Counts, layers, hotspots, and public API are sufficient for broad orientation."),
|
|
35
|
+
guide: (0, resultGuide_1.resultGuide)("Use counts, layers, hotspots, and public API as a broad orientation map. Do not expand it into file reads unless the user needs exact source body text."),
|
|
31
36
|
};
|
|
32
37
|
if (want("layers"))
|
|
33
38
|
result.layers = layers(graph);
|
|
@@ -41,7 +46,10 @@ function runOverview(graph, props) {
|
|
|
41
46
|
function layers(graph) {
|
|
42
47
|
const byDir = new Map();
|
|
43
48
|
for (const node of graph.nodes) {
|
|
44
|
-
if (node.external ||
|
|
49
|
+
if (node.external ||
|
|
50
|
+
node.ignored ||
|
|
51
|
+
node.kind === "file" ||
|
|
52
|
+
(0, pathPolicy_1.isSupportPath)(node.file))
|
|
45
53
|
continue;
|
|
46
54
|
const dir = dirname(node.file);
|
|
47
55
|
let entry = byDir.get(dir);
|
|
@@ -60,11 +68,11 @@ function layers(graph) {
|
|
|
60
68
|
exported: entry.exported,
|
|
61
69
|
}))
|
|
62
70
|
.sort((a, b) => b.files - a.files)
|
|
63
|
-
.slice(0,
|
|
71
|
+
.slice(0, 10);
|
|
64
72
|
}
|
|
65
73
|
/**
|
|
66
74
|
* The symbols at the center of the dependency graph, ranked by real fan-in and
|
|
67
|
-
* fan-out
|
|
75
|
+
* fan-out. Structural `contains`/`exports`/`imports` edges are excluded so the
|
|
68
76
|
* ranking reflects code dependency, not nesting.
|
|
69
77
|
*/
|
|
70
78
|
function hotspots(graph) {
|
|
@@ -77,18 +85,18 @@ function hotspots(graph) {
|
|
|
77
85
|
return n;
|
|
78
86
|
};
|
|
79
87
|
return graph.nodes
|
|
80
|
-
.filter((node) => !node.external &&
|
|
88
|
+
.filter((node) => !node.external &&
|
|
89
|
+
!node.ignored &&
|
|
90
|
+
node.kind !== "file" &&
|
|
91
|
+
!(0, pathPolicy_1.isSupportPath)(node.file))
|
|
81
92
|
.map((node) => ({
|
|
82
|
-
|
|
83
|
-
name: node.qualifiedName ?? node.name,
|
|
84
|
-
kind: node.kind,
|
|
85
|
-
file: node.file,
|
|
93
|
+
...nodeOf(node),
|
|
86
94
|
fanIn: real(node.id, "in"),
|
|
87
95
|
fanOut: real(node.id, "out"),
|
|
88
96
|
}))
|
|
89
97
|
.filter((h) => h.fanIn + h.fanOut > 0)
|
|
90
98
|
.sort((a, b) => b.fanIn + b.fanOut - (a.fanIn + a.fanOut))
|
|
91
|
-
.slice(0,
|
|
99
|
+
.slice(0, 10);
|
|
92
100
|
}
|
|
93
101
|
/** Declaration kinds that make up a meaningful public API surface. */
|
|
94
102
|
const API_KINDS = new Set([
|
|
@@ -99,12 +107,13 @@ const API_KINDS = new Set([
|
|
|
99
107
|
"enum",
|
|
100
108
|
]);
|
|
101
109
|
/**
|
|
102
|
-
* The exported API surface: the exported symbols a consumer of the project
|
|
103
|
-
* use, ranked by how depended-on each is (real fan-in/out, structural
|
|
104
|
-
* excluded). Ranking by dependency rather than by which file declares the
|
|
105
|
-
* exports surfaces the load-bearing types (a DataSource, a
|
|
106
|
-
* instead of whichever file bundles the most type aliases;
|
|
107
|
-
* generated files are dropped so they cannot crowd the real
|
|
110
|
+
* The exported API surface: the exported symbols a consumer of the project
|
|
111
|
+
* would use, ranked by how depended-on each is (real fan-in/out, structural
|
|
112
|
+
* edges excluded). Ranking by dependency rather than by which file declares the
|
|
113
|
+
* most exports surfaces the load-bearing types (a DataSource, a
|
|
114
|
+
* SelectQueryBuilder) instead of whichever file bundles the most type aliases;
|
|
115
|
+
* test, typings, and generated files are dropped so they cannot crowd the real
|
|
116
|
+
* surface out.
|
|
108
117
|
*/
|
|
109
118
|
function publicApi(graph) {
|
|
110
119
|
const degree = (id) => {
|
|
@@ -121,30 +130,38 @@ function publicApi(graph) {
|
|
|
121
130
|
.exported()
|
|
122
131
|
.filter((node) => API_KINDS.has(node.kind) && !isNoiseFile(node.file))
|
|
123
132
|
.map((node) => ({
|
|
124
|
-
|
|
125
|
-
kind: node.kind,
|
|
126
|
-
file: node.file,
|
|
133
|
+
node: nodeOf(node),
|
|
127
134
|
degree: degree(node.id),
|
|
128
135
|
}))
|
|
129
136
|
.sort((a, b) => b.degree - a.degree)
|
|
130
|
-
.slice(0,
|
|
131
|
-
.map((
|
|
137
|
+
.slice(0, 15)
|
|
138
|
+
.map((ranked) => ranked.node);
|
|
132
139
|
}
|
|
133
140
|
/**
|
|
134
141
|
* A file whose exports are noise for an architecture overview: a test, a
|
|
135
|
-
* dependency's bundled `.d.ts`/typings, or generated output. The conventions
|
|
136
|
-
* universal (a `test`/`spec` path, a `typings` file), so excluding them is
|
|
137
|
-
* framework-specific
|
|
142
|
+
* dependency's bundled `.d.ts`/typings, or generated output. The conventions
|
|
143
|
+
* are universal (a `test`/`spec` path, a `typings` file), so excluding them is
|
|
144
|
+
* not framework-specific; it keeps the API surface to authored, used code.
|
|
138
145
|
*/
|
|
139
146
|
function isNoiseFile(file) {
|
|
140
|
-
return (
|
|
141
|
-
/\.(test|spec)\.[cm]?tsx?$/.test(file) ||
|
|
142
|
-
/(^|\/|\.)typings\.[cm]?ts$/.test(file) ||
|
|
143
|
-
/\.d\.[cm]?ts$/.test(file));
|
|
147
|
+
return (0, pathPolicy_1.isPublicApiNoisePath)(file);
|
|
144
148
|
}
|
|
145
149
|
/** The parent directory of a project-relative path (`.` at the root). */
|
|
146
150
|
function dirname(file) {
|
|
147
151
|
const slash = file.lastIndexOf("/");
|
|
148
152
|
return slash >= 0 ? file.slice(0, slash) : ".";
|
|
149
153
|
}
|
|
154
|
+
/** Stable symbol coordinate shared by overview facets. */
|
|
155
|
+
function nodeOf(node) {
|
|
156
|
+
const out = {
|
|
157
|
+
id: node.id,
|
|
158
|
+
name: node.qualifiedName ?? node.name,
|
|
159
|
+
kind: node.kind,
|
|
160
|
+
file: node.file,
|
|
161
|
+
};
|
|
162
|
+
if (node.evidence?.startLine !== undefined) {
|
|
163
|
+
out.line = node.evidence.startLine;
|
|
164
|
+
}
|
|
165
|
+
return out;
|
|
166
|
+
}
|
|
150
167
|
//# sourceMappingURL=runOverview.js.map
|