homegraph 1.5.4 → 1.5.6
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/CHANGELOG.md +33 -0
- package/README.md +4 -1
- package/dist/arkui/migrate-semantics.d.ts +8 -0
- package/dist/arkui/migrate-semantics.d.ts.map +1 -1
- package/dist/arkui/migrate-semantics.js +24 -1
- package/dist/arkui/migrate-semantics.js.map +1 -1
- package/dist/arkui/migrate-snapshot.d.ts.map +1 -1
- package/dist/arkui/migrate-snapshot.js +11 -4
- package/dist/arkui/migrate-snapshot.js.map +1 -1
- package/dist/bin/homegraph.js +6 -0
- package/dist/bin/homegraph.js.map +1 -1
- package/dist/db/migrations.d.ts +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +37 -1
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/queries.d.ts +25 -0
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +50 -2
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.sql +24 -0
- package/dist/extraction/languages/arkts.d.ts +15 -0
- package/dist/extraction/languages/arkts.d.ts.map +1 -1
- package/dist/extraction/languages/arkts.js +118 -0
- package/dist/extraction/languages/arkts.js.map +1 -1
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +87 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/engine.d.ts +26 -0
- package/dist/mcp/engine.d.ts.map +1 -1
- package/dist/mcp/engine.js +231 -22
- package/dist/mcp/engine.js.map +1 -1
- package/dist/mcp/explore-repeat-guard.d.ts.map +1 -1
- package/dist/mcp/explore-repeat-guard.js +37 -0
- package/dist/mcp/explore-repeat-guard.js.map +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +16 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/memory-budget.d.ts +9 -22
- package/dist/mcp/memory-budget.d.ts.map +1 -1
- package/dist/mcp/memory-budget.js +9 -59
- package/dist/mcp/memory-budget.js.map +1 -1
- package/dist/mcp/query-pool.js +4 -4
- package/dist/mcp/server-instructions.d.ts +2 -2
- package/dist/mcp/server-instructions.d.ts.map +1 -1
- package/dist/mcp/server-instructions.js +6 -0
- package/dist/mcp/server-instructions.js.map +1 -1
- package/dist/mcp/tools.d.ts +54 -3
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +1452 -81
- package/dist/mcp/tools.js.map +1 -1
- package/dist/project-map/index.d.ts +33 -0
- package/dist/project-map/index.d.ts.map +1 -0
- package/dist/project-map/index.js +260 -0
- package/dist/project-map/index.js.map +1 -0
- package/dist/search/query-utils.d.ts +10 -0
- package/dist/search/query-utils.d.ts.map +1 -1
- package/dist/search/query-utils.js +58 -5
- package/dist/search/query-utils.js.map +1 -1
- package/dist/sync/watcher.d.ts +15 -3
- package/dist/sync/watcher.d.ts.map +1 -1
- package/dist/sync/watcher.js +14 -1
- package/dist/sync/watcher.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/upgrade/index.d.ts +23 -12
- package/dist/upgrade/index.d.ts.map +1 -1
- package/dist/upgrade/index.js +42 -48
- package/dist/upgrade/index.js.map +1 -1
- package/dist/upgrade/update-check.d.ts +4 -4
- package/dist/upgrade/update-check.d.ts.map +1 -1
- package/dist/upgrade/update-check.js +6 -5
- package/dist/upgrade/update-check.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fast project map — module boundaries + source-file inventory (no symbols/edges).
|
|
3
|
+
*
|
|
4
|
+
* Used by MCP auto-init (seconds-scale) and `homegraph_project` so agents get an
|
|
5
|
+
* engineering overview before the full index finishes.
|
|
6
|
+
*/
|
|
7
|
+
export type BuildPhase = 'none' | 'building_fast' | 'fast' | 'indexing' | 'full';
|
|
8
|
+
export interface ProjectModuleDraft {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
/** Project-relative POSIX path; empty string = project root catch-all. */
|
|
12
|
+
rootPath: string;
|
|
13
|
+
kind: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ProjectModuleFileDraft {
|
|
16
|
+
moduleId: string;
|
|
17
|
+
path: string;
|
|
18
|
+
language: string;
|
|
19
|
+
}
|
|
20
|
+
export interface BuiltProjectMap {
|
|
21
|
+
modules: Array<ProjectModuleDraft & {
|
|
22
|
+
fileCount: number;
|
|
23
|
+
}>;
|
|
24
|
+
files: ProjectModuleFileDraft[];
|
|
25
|
+
durationMs: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Discover modules + assign every indexable source file to the longest-matching
|
|
29
|
+
* module root. Prefer Harmony `build-profile.json5` modules when present.
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildProjectMapScan(projectRoot: string): BuiltProjectMap;
|
|
32
|
+
export declare function parseBuildPhase(raw: string | null | undefined): BuildPhase | null;
|
|
33
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/project-map/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAEjF,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC,kBAAkB,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAmBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CAwBxE;AA0JD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,IAAI,CAWjF"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Fast project map — module boundaries + source-file inventory (no symbols/edges).
|
|
4
|
+
*
|
|
5
|
+
* Used by MCP auto-init (seconds-scale) and `homegraph_project` so agents get an
|
|
6
|
+
* engineering overview before the full index finishes.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.buildProjectMapScan = buildProjectMapScan;
|
|
43
|
+
exports.parseBuildPhase = parseBuildPhase;
|
|
44
|
+
const fs = __importStar(require("fs"));
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
const extraction_1 = require("../extraction");
|
|
47
|
+
const grammars_1 = require("../extraction/grammars");
|
|
48
|
+
const arkts_1 = require("../extraction/languages/arkts");
|
|
49
|
+
const project_config_1 = require("../project-config");
|
|
50
|
+
const workspace_packages_1 = require("../resolution/workspace-packages");
|
|
51
|
+
const ROOT_MODULE_ID = '__root__';
|
|
52
|
+
const OHPM_MANIFEST = 'oh-package.json5';
|
|
53
|
+
const OHPM_WALK_MAX_DEPTH = 6;
|
|
54
|
+
const OHPM_WALK_DIR_BUDGET = 8000;
|
|
55
|
+
const OHPM_SKIP_DIRS = new Set([
|
|
56
|
+
'node_modules',
|
|
57
|
+
'oh_modules',
|
|
58
|
+
'.git',
|
|
59
|
+
'.homegraph',
|
|
60
|
+
'.hvigor',
|
|
61
|
+
'.preview',
|
|
62
|
+
'build',
|
|
63
|
+
'dist',
|
|
64
|
+
'out',
|
|
65
|
+
]);
|
|
66
|
+
/**
|
|
67
|
+
* Discover modules + assign every indexable source file to the longest-matching
|
|
68
|
+
* module root. Prefer Harmony `build-profile.json5` modules when present.
|
|
69
|
+
*/
|
|
70
|
+
function buildProjectMapScan(projectRoot) {
|
|
71
|
+
const t0 = Date.now();
|
|
72
|
+
const resolved = path.resolve(projectRoot);
|
|
73
|
+
const modules = discoverModules(resolved);
|
|
74
|
+
const overrides = (0, project_config_1.loadExtensionOverrides)(resolved);
|
|
75
|
+
const filesRel = (0, extraction_1.scanDirectory)(resolved);
|
|
76
|
+
const fileRows = [];
|
|
77
|
+
const counts = new Map();
|
|
78
|
+
for (const rel of filesRel) {
|
|
79
|
+
const mod = assignModule(rel, modules);
|
|
80
|
+
const language = (0, grammars_1.detectLanguage)(rel, undefined, overrides);
|
|
81
|
+
fileRows.push({ moduleId: mod.id, path: rel, language });
|
|
82
|
+
counts.set(mod.id, (counts.get(mod.id) ?? 0) + 1);
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
modules: modules.map((m) => ({
|
|
86
|
+
...m,
|
|
87
|
+
fileCount: counts.get(m.id) ?? 0,
|
|
88
|
+
})),
|
|
89
|
+
files: fileRows,
|
|
90
|
+
durationMs: Date.now() - t0,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function discoverModules(projectRoot) {
|
|
94
|
+
const byId = new Map();
|
|
95
|
+
const ensure = (draft) => {
|
|
96
|
+
if (!byId.has(draft.id))
|
|
97
|
+
byId.set(draft.id, draft);
|
|
98
|
+
};
|
|
99
|
+
// Always have a root catch-all for files outside named modules.
|
|
100
|
+
ensure({
|
|
101
|
+
id: ROOT_MODULE_ID,
|
|
102
|
+
name: path.basename(projectRoot) || 'root',
|
|
103
|
+
rootPath: '',
|
|
104
|
+
kind: 'root',
|
|
105
|
+
});
|
|
106
|
+
const harmony = listHarmonyProjectModulesLoose(projectRoot);
|
|
107
|
+
if (harmony.length > 0) {
|
|
108
|
+
for (const m of harmony) {
|
|
109
|
+
ensure({
|
|
110
|
+
id: moduleIdForPath(m.srcPath),
|
|
111
|
+
name: m.name,
|
|
112
|
+
rootPath: m.srcPath,
|
|
113
|
+
kind: 'harmony',
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return [...byId.values()];
|
|
117
|
+
}
|
|
118
|
+
for (const m of discoverOhpmPackages(projectRoot)) {
|
|
119
|
+
ensure(m);
|
|
120
|
+
}
|
|
121
|
+
const ws = (0, workspace_packages_1.loadWorkspacePackages)(projectRoot);
|
|
122
|
+
if (ws) {
|
|
123
|
+
for (const [name, dir] of ws.byName) {
|
|
124
|
+
const rootPath = dir.replace(/\\/g, '/').replace(/^\.\//, '').replace(/\/$/, '');
|
|
125
|
+
ensure({
|
|
126
|
+
id: moduleIdForPath(rootPath),
|
|
127
|
+
name,
|
|
128
|
+
rootPath,
|
|
129
|
+
kind: 'workspace',
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return [...byId.values()];
|
|
134
|
+
}
|
|
135
|
+
function listHarmonyProjectModulesLoose(projectRoot) {
|
|
136
|
+
const strict = (0, arkts_1.listHarmonyProjectModules)(projectRoot);
|
|
137
|
+
if (strict.length > 0)
|
|
138
|
+
return strict;
|
|
139
|
+
// Real DevEco `build-profile.json5` often uses unquoted keys; the strict
|
|
140
|
+
// parser only strips comments/trailing commas. Quote bare keys and retry.
|
|
141
|
+
const profilePath = path.join(projectRoot, 'build-profile.json5');
|
|
142
|
+
if (!fs.existsSync(profilePath))
|
|
143
|
+
return [];
|
|
144
|
+
let raw;
|
|
145
|
+
try {
|
|
146
|
+
const text = fs.readFileSync(profilePath, 'utf-8');
|
|
147
|
+
const stripped = text
|
|
148
|
+
.replace(/\/\/.*$/gm, '')
|
|
149
|
+
.replace(/\/\*[\s\S]*?\*\//g, '')
|
|
150
|
+
.replace(/,(\s*[}\]])/g, '$1')
|
|
151
|
+
.replace(/([{,]\s*)([A-Za-z_][\w]*)\s*:/g, '$1"$2":');
|
|
152
|
+
raw = JSON.parse(stripped);
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
return [];
|
|
156
|
+
}
|
|
157
|
+
if (!raw || typeof raw !== 'object')
|
|
158
|
+
return [];
|
|
159
|
+
const modules = raw.modules;
|
|
160
|
+
if (!Array.isArray(modules))
|
|
161
|
+
return [];
|
|
162
|
+
const out = [];
|
|
163
|
+
for (const entry of modules) {
|
|
164
|
+
if (!entry || typeof entry !== 'object')
|
|
165
|
+
continue;
|
|
166
|
+
const rec = entry;
|
|
167
|
+
if (typeof rec.name !== 'string' || typeof rec.srcPath !== 'string')
|
|
168
|
+
continue;
|
|
169
|
+
const srcPath = (0, arkts_1.normalizeHarmonyModuleSrcPath)(rec.srcPath);
|
|
170
|
+
if (!srcPath)
|
|
171
|
+
continue;
|
|
172
|
+
out.push({ name: rec.name, srcPath });
|
|
173
|
+
}
|
|
174
|
+
return out;
|
|
175
|
+
}
|
|
176
|
+
function discoverOhpmPackages(projectRoot) {
|
|
177
|
+
const out = [];
|
|
178
|
+
const queue = [{ rel: '', depth: 0 }];
|
|
179
|
+
let visited = 0;
|
|
180
|
+
while (queue.length > 0) {
|
|
181
|
+
const { rel, depth } = queue.shift();
|
|
182
|
+
if (++visited > OHPM_WALK_DIR_BUDGET)
|
|
183
|
+
break;
|
|
184
|
+
const abs = path.join(projectRoot, rel);
|
|
185
|
+
let entries;
|
|
186
|
+
try {
|
|
187
|
+
entries = fs.readdirSync(abs, { withFileTypes: true });
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
for (const e of entries) {
|
|
193
|
+
if (e.isDirectory()) {
|
|
194
|
+
if (depth >= OHPM_WALK_MAX_DEPTH)
|
|
195
|
+
continue;
|
|
196
|
+
if (e.name.startsWith('.') || OHPM_SKIP_DIRS.has(e.name))
|
|
197
|
+
continue;
|
|
198
|
+
queue.push({ rel: rel ? `${rel}/${e.name}` : e.name, depth: depth + 1 });
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
if (e.name !== OHPM_MANIFEST)
|
|
202
|
+
continue;
|
|
203
|
+
const pkgName = readOhpmName(path.join(abs, e.name));
|
|
204
|
+
const rootPath = rel.replace(/\\/g, '/');
|
|
205
|
+
// Skip the synthetic root duplicate when root itself has oh-package.json5 —
|
|
206
|
+
// root catch-all already covers it; named modules are subdirs.
|
|
207
|
+
if (!rootPath)
|
|
208
|
+
continue;
|
|
209
|
+
out.push({
|
|
210
|
+
id: moduleIdForPath(rootPath),
|
|
211
|
+
name: pkgName || path.basename(rootPath),
|
|
212
|
+
rootPath,
|
|
213
|
+
kind: 'ohpm',
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return out;
|
|
218
|
+
}
|
|
219
|
+
function readOhpmName(manifestAbs) {
|
|
220
|
+
try {
|
|
221
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
222
|
+
const parsed = require('jsonc-parser').parse(fs.readFileSync(manifestAbs, 'utf-8'));
|
|
223
|
+
return typeof parsed?.name === 'string' && parsed.name.trim() ? parsed.name.trim() : null;
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
return null;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
function moduleIdForPath(rootPath) {
|
|
230
|
+
if (!rootPath)
|
|
231
|
+
return ROOT_MODULE_ID;
|
|
232
|
+
// Stable, path-based id (filesystem-safe).
|
|
233
|
+
return rootPath.replace(/[^a-zA-Z0-9._/-]/g, '_');
|
|
234
|
+
}
|
|
235
|
+
function assignModule(fileRel, modules) {
|
|
236
|
+
const file = fileRel.replace(/\\/g, '/');
|
|
237
|
+
let best = null;
|
|
238
|
+
for (const m of modules) {
|
|
239
|
+
if (!m.rootPath)
|
|
240
|
+
continue; // root catch-all last
|
|
241
|
+
if (file === m.rootPath || file.startsWith(`${m.rootPath}/`)) {
|
|
242
|
+
if (!best || m.rootPath.length > best.rootPath.length)
|
|
243
|
+
best = m;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
if (best)
|
|
247
|
+
return best;
|
|
248
|
+
return modules.find((m) => m.id === ROOT_MODULE_ID) ?? modules[0];
|
|
249
|
+
}
|
|
250
|
+
function parseBuildPhase(raw) {
|
|
251
|
+
if (raw === 'none' ||
|
|
252
|
+
raw === 'building_fast' ||
|
|
253
|
+
raw === 'fast' ||
|
|
254
|
+
raw === 'indexing' ||
|
|
255
|
+
raw === 'full') {
|
|
256
|
+
return raw;
|
|
257
|
+
}
|
|
258
|
+
return null;
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/project-map/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -239,6 +239,16 @@ export declare function queryAsModuleDependencySurvey(query: string): boolean;
|
|
|
239
239
|
* Shape-only: no PascalCase Type / file / member / kit anchors.
|
|
240
240
|
*/
|
|
241
241
|
export declare function queryLooksLikeLiteralOrCopyHunt(query: string): boolean;
|
|
242
|
+
/**
|
|
243
|
+
* Container page + ViewModel/config injection — which pages share a shell
|
|
244
|
+
* component and pass differentiated state into a shared ViewModel.
|
|
245
|
+
*/
|
|
246
|
+
export declare function queryAsContainerCompositionSurvey(query: string): boolean;
|
|
247
|
+
/**
|
|
248
|
+
* Named member + UI consequence ("how does UI mark/show when member returns true").
|
|
249
|
+
* Definition/filter sites alone are rarely sufficient — steer to UI evidence.
|
|
250
|
+
*/
|
|
251
|
+
export declare function queryAsMemberUiConsequenceSurvey(query: string): boolean;
|
|
242
252
|
export declare function queryAsTypeLifecycleSurvey(query: string): boolean;
|
|
243
253
|
/**
|
|
244
254
|
* Member-access inventory ("which files use .drawModifier") — not Type×method
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-utils.d.ts","sourceRoot":"","sources":["../../src/search/query-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhC,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,kEAC+B,CAAC;AAElE,4FAA4F;AAC5F,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAsBrE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAQpE;AAED,6FAA6F;AAC7F,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAS/D;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAStE;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CA2BzE;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAYvE;AAED;;;;GAIG;AACH;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAM7D;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAuB1E;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAM/D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAalE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CA0BjE;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,cAAc,GACd,sBAAsB,GACtB,iBAAiB,GACjB,aAAa,GACb,YAAY,GACZ,aAAa,GACb,cAAc,CAAC;AAEnB;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAUnE;AAED,kFAAkF;AAClF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQhE;AAED,mFAAmF;AACnF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAMhE;AAED,mDAAmD;AACnD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAM5D;AAED,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CASjE;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"query-utils.d.ts","sourceRoot":"","sources":["../../src/search/query-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,6 +90,8 @@ exports.extractListedTypeMethodsFromQuery = extractListedTypeMethodsFromQuery;
|
|
|
90
90
|
exports.queryAsModuleExportSurvey = queryAsModuleExportSurvey;
|
|
91
91
|
exports.queryAsModuleDependencySurvey = queryAsModuleDependencySurvey;
|
|
92
92
|
exports.queryLooksLikeLiteralOrCopyHunt = queryLooksLikeLiteralOrCopyHunt;
|
|
93
|
+
exports.queryAsContainerCompositionSurvey = queryAsContainerCompositionSurvey;
|
|
94
|
+
exports.queryAsMemberUiConsequenceSurvey = queryAsMemberUiConsequenceSurvey;
|
|
93
95
|
exports.queryAsTypeLifecycleSurvey = queryAsTypeLifecycleSurvey;
|
|
94
96
|
exports.shouldPreferMemberUsageInventory = shouldPreferMemberUsageInventory;
|
|
95
97
|
exports.extractApiUsageTokens = extractApiUsageTokens;
|
|
@@ -442,7 +444,11 @@ function queryShouldDeferToBuiltinTools(query) {
|
|
|
442
444
|
return 'file-listing';
|
|
443
445
|
}
|
|
444
446
|
// 7) Pure existence / concept-compare with zero graph anchors → Grep/docs.
|
|
447
|
+
// Module/cycle surveys already recognized by queryAsModuleDependencySurvey
|
|
448
|
+
// (e.g. `*constants` / `*common` leaf tokens + 循环依赖) must not fall through
|
|
449
|
+
// to concept-skip when extractTypeNames/path anchors are empty.
|
|
445
450
|
if (!hasGraphAnchor
|
|
451
|
+
&& !queryAsModuleDependencySurvey(q)
|
|
446
452
|
&& /有使用|是否使用|有没有使用|使用了.*吗|是否存在|有没有完整|有什么不同|区别|difference|vs\.?|versus|对比|does\s+(?:this\s+)?(?:project|repo)\s+have|is\s+there\s+(?:a\s+)?complete/i.test(q)) {
|
|
447
453
|
return 'concept-or-existence';
|
|
448
454
|
}
|
|
@@ -583,7 +589,11 @@ function shouldBuildKitModuleUsageSurvey(query) {
|
|
|
583
589
|
/** "需要额外安装哪些依赖" — kit survey must include oh-package, not only imports. */
|
|
584
590
|
function queryAsksKitInstallDeps(query) {
|
|
585
591
|
return (/额外安装|还需.*依赖|需要.*依赖|引入.*依赖|其他参数和依赖|other\s+(?:params?.{0,24})?deps?/i.test(query)
|
|
586
|
-
|| /install(?:ing)?\s+(?:extra\s+)?deps?|which\s+deps?|need(?:s)?\s+(?:other\s+)?deps?/i.test(query)
|
|
592
|
+
|| /install(?:ing)?\s+(?:extra\s+)?deps?|which\s+deps?|need(?:s)?\s+(?:other\s+)?deps?/i.test(query)
|
|
593
|
+
// Agent EN rewrites of 「其他参数和依赖」often drop "other/extra" and keep
|
|
594
|
+
// "parameters … dependencies" / "import usage … dependencies" beside a Kit name.
|
|
595
|
+
|| /parameters?\s+(?:and\s+)?dependenc/i.test(query)
|
|
596
|
+
|| /(?:import|usage).{0,48}(?:parameters?.{0,24})?dependenc/i.test(query));
|
|
587
597
|
}
|
|
588
598
|
/**
|
|
589
599
|
* Member-access patterns from a query — `obj.method`, `Type.method`, or `.member`.
|
|
@@ -764,7 +774,7 @@ exports.STOP_WORDS = new Set([
|
|
|
764
774
|
* they match every `parse`/`load` method and drown the distinctive token (xml).
|
|
765
775
|
*/
|
|
766
776
|
exports.GENERIC_VERB_ANCHOR_NOISE = new Set([
|
|
767
|
-
'parse', 'parsing', 'load', 'save', 'read', 'write', 'update', 'delete', 'create',
|
|
777
|
+
'parse', 'parsing', 'parser', 'parsers', 'load', 'save', 'read', 'write', 'update', 'delete', 'create',
|
|
768
778
|
'init', 'handle', 'process', 'run', 'start', 'stop', 'open', 'close', 'convert',
|
|
769
779
|
'get', 'set', 'add', 'remove', 'list', 'show', 'find',
|
|
770
780
|
// Lifetime / allocator verbs — agents ask "where new/delete" and these must not
|
|
@@ -1089,6 +1099,36 @@ function queryLooksLikeLiteralOrCopyHunt(query) {
|
|
|
1089
1099
|
return (/全仓|全搜|字面量|中文\s*(?:text|字符串)|绑了.*(?:text|文案)|literal\s+strings?/i.test(query)
|
|
1090
1100
|
|| /从.{0,16}包.{0,40}(?:导入|import).{0,20}\btext\b|导入的\s*text\s*对象|imported\s+text\s+objects?/i.test(query));
|
|
1091
1101
|
}
|
|
1102
|
+
/**
|
|
1103
|
+
* Container page + ViewModel/config injection — which pages share a shell
|
|
1104
|
+
* component and pass differentiated state into a shared ViewModel.
|
|
1105
|
+
*/
|
|
1106
|
+
function queryAsContainerCompositionSurvey(query) {
|
|
1107
|
+
if (queryAsMechanismSurvey(query) || queryAsCrossModuleFlowSurvey(query))
|
|
1108
|
+
return false;
|
|
1109
|
+
const types = extractTypeNamesFromQuery(query).filter((t) => !isFrameworkUiDecoratorName(t));
|
|
1110
|
+
const hasContainerAsk = (/共享|共用|share|shared/i.test(query) && /容器|container|Screen|Page|View/i.test(query))
|
|
1111
|
+
|| types.some((t) => /(?:Screen|Page|View|Container)$/i.test(t));
|
|
1112
|
+
const hasInjectAsk = /注入|inject|差异化|differentiat|配置|config|property/i.test(query);
|
|
1113
|
+
const hasViewModel = types.some((t) => /ViewModel$/i.test(t)) || /\bViewModel\b/i.test(query);
|
|
1114
|
+
return (hasContainerAsk && hasInjectAsk && (hasViewModel || types.length >= 2))
|
|
1115
|
+
|| (types.length >= 2
|
|
1116
|
+
&& types.some((t) => /(?:Screen|Page|View|Container)$/i.test(t))
|
|
1117
|
+
&& types.some((t) => /ViewModel$/i.test(t))
|
|
1118
|
+
&& hasInjectAsk);
|
|
1119
|
+
}
|
|
1120
|
+
/**
|
|
1121
|
+
* Named member + UI consequence ("how does UI mark/show when member returns true").
|
|
1122
|
+
* Definition/filter sites alone are rarely sufficient — steer to UI evidence.
|
|
1123
|
+
*/
|
|
1124
|
+
function queryAsMemberUiConsequenceSurvey(query) {
|
|
1125
|
+
if (!queryHasNamedMemberFocus(query))
|
|
1126
|
+
return false;
|
|
1127
|
+
if (queryAsCoNamedTypeMethodInteraction(query))
|
|
1128
|
+
return false;
|
|
1129
|
+
return (/UI|界面|显示|标记|展示|render|visual|样式|效果|\bmark\b/i.test(query)
|
|
1130
|
+
&& /如何|怎样|what|how/i.test(query));
|
|
1131
|
+
}
|
|
1092
1132
|
function queryAsTypeLifecycleSurvey(query) {
|
|
1093
1133
|
if (queryAsCrossModuleFlowSurvey(query))
|
|
1094
1134
|
return false;
|
|
@@ -1175,11 +1215,21 @@ function shouldBuildApiUsageSurvey(query) {
|
|
|
1175
1215
|
}
|
|
1176
1216
|
/** Caller / method survey intent — not every PascalCase token. */
|
|
1177
1217
|
function queryAsCallerOrMethodSurvey(query) {
|
|
1178
|
-
|
|
1218
|
+
if (/哪里调用|何处调用|谁调用|调用了|被调用|callers?\s+of|who\s+calls|called\s+by|哪些.*调用|外部.*调用|\bexternal\b/i.test(query)
|
|
1179
1219
|
|| /哪些方法|which\s+methods|methods?\s+(?:are\s+)?called|which\s+files?.{0,20}(?:call|invoke)/i.test(query)
|
|
1180
1220
|
// Agents often write "Type … methods … callers" / bare "callers" without "of".
|
|
1181
1221
|
|| /\bcallers?\b/i.test(query)
|
|
1182
|
-
|| /methods?.{0,40}\bcall/i.test(query))
|
|
1222
|
+
|| /methods?.{0,40}\bcall/i.test(query)) {
|
|
1223
|
+
return true;
|
|
1224
|
+
}
|
|
1225
|
+
// Agent EN rewrites of "Type 有哪些方法被外部调用" often become
|
|
1226
|
+
// "Type class definition methods" and lose 调用 — still route to caller inventory
|
|
1227
|
+
// when a named Type + plural methods bag is present. Singular "method" is too
|
|
1228
|
+
// broad ("Session method helper" is a symbol bag, not a caller survey).
|
|
1229
|
+
if (extractTypeNamesFromQuery(query).length > 0 && /\bmethods\b/i.test(query)) {
|
|
1230
|
+
return true;
|
|
1231
|
+
}
|
|
1232
|
+
return false;
|
|
1183
1233
|
}
|
|
1184
1234
|
/**
|
|
1185
1235
|
* Query is essentially just type name(s) (plus filler). Used for *inheritance*
|
|
@@ -1738,6 +1788,7 @@ function shouldTryFastInventoryExplore(query) {
|
|
|
1738
1788
|
|| queryAsDataSourceSurvey(query)
|
|
1739
1789
|
|| queryAsEventDispatchSurvey(query)
|
|
1740
1790
|
|| queryAsMultiTypeDependencySurvey(query)
|
|
1791
|
+
|| queryAsContainerCompositionSurvey(query)
|
|
1741
1792
|
|| shouldBuildHoverHandlerSurvey(query)
|
|
1742
1793
|
|| queryAsModuleExportSurvey(query)
|
|
1743
1794
|
|| queryAsModuleDependencySurvey(query)
|
|
@@ -1895,7 +1946,9 @@ exports.IMPLEMENTATION_ENTRY_NAME_RE = /Manager|Service|Handler|Extension|Parser
|
|
|
1895
1946
|
function mechanismDomainPathTokens(query) {
|
|
1896
1947
|
const out = new Set();
|
|
1897
1948
|
for (const t of extractDomainSearchTerms(query)) {
|
|
1898
|
-
|
|
1949
|
+
// ≥3 so short distinctive stems (`xml`) survive agent EN rewrites; verb
|
|
1950
|
+
// noise (`parse`/`parser`) stays out via GENERIC_VERB_ANCHOR_NOISE.
|
|
1951
|
+
if (/^[\x00-\x7F]+$/.test(t) && t.length >= 3 && !exports.GENERIC_VERB_ANCHOR_NOISE.has(t.toLowerCase())) {
|
|
1899
1952
|
out.add(t.toLowerCase());
|
|
1900
1953
|
}
|
|
1901
1954
|
}
|