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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arkts.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/arkts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAQH,OAAO,EAIL,QAAQ,EACR,OAAO,EACP,SAAS,EAiBT,cAAc,EACd,eAAe,
|
|
1
|
+
{"version":3,"file":"arkts.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/arkts.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,11 +79,13 @@ exports.isArkTSBatchCommitted = isArkTSBatchCommitted;
|
|
|
79
79
|
exports.resetArkTSBatch = resetArkTSBatch;
|
|
80
80
|
exports.shrinkArkTSBatchPostParse = shrinkArkTSBatchPostParse;
|
|
81
81
|
exports.createArkRelPathNormalizer = createArkRelPathNormalizer;
|
|
82
|
+
exports.docstringFromArkModel = docstringFromArkModel;
|
|
82
83
|
exports.collectExportedRtaEntryPointsFromFiles = collectExportedRtaEntryPointsFromFiles;
|
|
83
84
|
exports.stateDecoratorKinds = stateDecoratorKinds;
|
|
84
85
|
exports.fieldDecoratorEntries = fieldDecoratorEntries;
|
|
85
86
|
exports.fieldDecoratorsEncoded = fieldDecoratorsEncoded;
|
|
86
87
|
exports.stateTransferViaForField = stateTransferViaForField;
|
|
88
|
+
exports.viewTreeArkuiId = viewTreeArkuiId;
|
|
87
89
|
exports.isUnclearArkClassSignature = isUnclearArkClassSignature;
|
|
88
90
|
exports.isUnclearArkMethodSignature = isUnclearArkMethodSignature;
|
|
89
91
|
exports.pickPreferredClassNodeId = pickPreferredClassNodeId;
|
|
@@ -1456,6 +1458,69 @@ function modelModifiersToNodeExtras(model) {
|
|
|
1456
1458
|
extra.visibility = 'protected';
|
|
1457
1459
|
return extra;
|
|
1458
1460
|
}
|
|
1461
|
+
/** ArkMetadataKind values — package entry does not re-export the enum. */
|
|
1462
|
+
const ARK_META_LEADING_COMMENTS = 0;
|
|
1463
|
+
const ARK_META_JSDOC = 2;
|
|
1464
|
+
/** Strip line/block comment markers so FTS stores prose (aligned with tree-sitter helpers). */
|
|
1465
|
+
function cleanArkCommentContent(raw) {
|
|
1466
|
+
let c = raw.trim().replace(/\r\n/g, '\n');
|
|
1467
|
+
if (c.startsWith('/*'))
|
|
1468
|
+
c = c.replace(/^\/\*+!?/, '').replace(/\*+\/$/, '');
|
|
1469
|
+
return c
|
|
1470
|
+
.replace(/^\/\/[/!]?\s?/gm, '')
|
|
1471
|
+
.replace(/^\s*\*\s?/gm, '')
|
|
1472
|
+
.trim();
|
|
1473
|
+
}
|
|
1474
|
+
/**
|
|
1475
|
+
* Declaration-leading docstring from ArkAnalyzer metadata (Spec 0020).
|
|
1476
|
+
* Prefer leading comments; fall back to JSDoc description.
|
|
1477
|
+
*
|
|
1478
|
+
* Accepts `object` (not only models typed with `getMetadata`) so Local / AliasType
|
|
1479
|
+
* and other ArkAnalyzer types without that method in their .d.ts still type-check;
|
|
1480
|
+
* runtime skips when metadata is absent.
|
|
1481
|
+
*/
|
|
1482
|
+
function docstringFromArkModel(model) {
|
|
1483
|
+
try {
|
|
1484
|
+
const meta = model;
|
|
1485
|
+
if (typeof meta.getMetadata !== 'function')
|
|
1486
|
+
return undefined;
|
|
1487
|
+
const leading = meta.getMetadata(ARK_META_LEADING_COMMENTS);
|
|
1488
|
+
if (leading && typeof leading.getComments === 'function') {
|
|
1489
|
+
const parts = leading
|
|
1490
|
+
.getComments()
|
|
1491
|
+
.map((c) => cleanArkCommentContent(String(c?.content ?? '')))
|
|
1492
|
+
.filter(Boolean);
|
|
1493
|
+
if (parts.length > 0)
|
|
1494
|
+
return parts.join('\n').trim();
|
|
1495
|
+
}
|
|
1496
|
+
const jsdoc = meta.getMetadata(ARK_META_JSDOC);
|
|
1497
|
+
const docs = [];
|
|
1498
|
+
const pushDesc = (j) => {
|
|
1499
|
+
if (j && typeof j.getDescription === 'function') {
|
|
1500
|
+
const d = String(j.getDescription() ?? '').trim();
|
|
1501
|
+
if (d)
|
|
1502
|
+
docs.push(d);
|
|
1503
|
+
}
|
|
1504
|
+
};
|
|
1505
|
+
if (Array.isArray(jsdoc)) {
|
|
1506
|
+
for (const j of jsdoc)
|
|
1507
|
+
pushDesc(j);
|
|
1508
|
+
}
|
|
1509
|
+
else {
|
|
1510
|
+
pushDesc(jsdoc);
|
|
1511
|
+
}
|
|
1512
|
+
if (docs.length > 0)
|
|
1513
|
+
return docs.join('\n').trim();
|
|
1514
|
+
}
|
|
1515
|
+
catch {
|
|
1516
|
+
// metadata access must not abort indexing
|
|
1517
|
+
}
|
|
1518
|
+
return undefined;
|
|
1519
|
+
}
|
|
1520
|
+
function docstringExtras(model) {
|
|
1521
|
+
const docstring = docstringFromArkModel(model);
|
|
1522
|
+
return docstring ? { docstring } : {};
|
|
1523
|
+
}
|
|
1459
1524
|
function fieldNodeKind(field, cls) {
|
|
1460
1525
|
switch (field.getCategory()) {
|
|
1461
1526
|
case FIELD_CATEGORY.ENUM_MEMBER:
|
|
@@ -1790,6 +1855,45 @@ function stateTransferViaForField(field) {
|
|
|
1790
1855
|
function viewTreeLineFromStmt(stmt) {
|
|
1791
1856
|
return stmt?.getOriginFullPosition()?.getFirstLine() ?? 1;
|
|
1792
1857
|
}
|
|
1858
|
+
/**
|
|
1859
|
+
* ArkUI `.id('…')` from ViewTree attributes (string Constant only).
|
|
1860
|
+
* Not the HomeGraph node primary key.
|
|
1861
|
+
*/
|
|
1862
|
+
function viewTreeArkuiId(node) {
|
|
1863
|
+
try {
|
|
1864
|
+
const entry = node.attributes?.get('id');
|
|
1865
|
+
if (!entry)
|
|
1866
|
+
return undefined;
|
|
1867
|
+
const values = entry[1];
|
|
1868
|
+
if (!values?.length)
|
|
1869
|
+
return undefined;
|
|
1870
|
+
for (const v of values) {
|
|
1871
|
+
if (v == null)
|
|
1872
|
+
continue;
|
|
1873
|
+
const isConstant = v instanceof arkanalyzer_1.Constant ||
|
|
1874
|
+
typeof v.getValue === 'function';
|
|
1875
|
+
if (!isConstant)
|
|
1876
|
+
continue;
|
|
1877
|
+
const raw = String(v.getValue()).trim();
|
|
1878
|
+
if (!raw)
|
|
1879
|
+
continue;
|
|
1880
|
+
const unquoted = raw.replace(/^['"]|['"]$/g, '');
|
|
1881
|
+
if (unquoted)
|
|
1882
|
+
return unquoted;
|
|
1883
|
+
}
|
|
1884
|
+
}
|
|
1885
|
+
catch {
|
|
1886
|
+
// attribute map may throw on malformed IR
|
|
1887
|
+
}
|
|
1888
|
+
return undefined;
|
|
1889
|
+
}
|
|
1890
|
+
/** First non-empty `arkuiId` wins when the same component is used with multiple ids. */
|
|
1891
|
+
function assignArkuiId(result, nodeId, arkuiId) {
|
|
1892
|
+
const n = result.nodes.find((x) => x.id === nodeId);
|
|
1893
|
+
if (!n || n.arkuiId)
|
|
1894
|
+
return;
|
|
1895
|
+
n.arkuiId = arkuiId;
|
|
1896
|
+
}
|
|
1793
1897
|
function isViewTreeClassSignature(sig) {
|
|
1794
1898
|
// Prefer instanceof; duck-type fallback if duplicate arkanalyzer copies break instanceof.
|
|
1795
1899
|
if (sig instanceof arkanalyzer_1.ClassSignature)
|
|
@@ -2171,6 +2275,9 @@ function indexViewTreeForClass(ctx, cls, result, relativePath) {
|
|
|
2171
2275
|
// keep build() line
|
|
2172
2276
|
}
|
|
2173
2277
|
link(buildId, childId, 'references', 'child-component', line);
|
|
2278
|
+
const arkuiId = viewTreeArkuiId(node);
|
|
2279
|
+
if (arkuiId)
|
|
2280
|
+
assignArkuiId(result, childId, arkuiId);
|
|
2174
2281
|
}
|
|
2175
2282
|
}
|
|
2176
2283
|
else {
|
|
@@ -3053,6 +3160,7 @@ class ArkTSAdapter {
|
|
|
3053
3160
|
const localNode = makeNode(relativePath, language, kind, name, qn, line, endLine, col, {
|
|
3054
3161
|
signature: local.getType()?.toString(),
|
|
3055
3162
|
...modelModifiersToNodeExtras(local),
|
|
3163
|
+
...docstringExtras(local),
|
|
3056
3164
|
});
|
|
3057
3165
|
this.addNode(result, localNode);
|
|
3058
3166
|
result.edges.push(arkEdge(parentId, localNode.id, 'contains'));
|
|
@@ -3071,6 +3179,7 @@ class ArkTSAdapter {
|
|
|
3071
3179
|
const aliasNode = makeNode(relativePath, language, 'type_alias', name, qn, line, endLine, col, {
|
|
3072
3180
|
signature: aliasType.getOriginalType()?.toString(),
|
|
3073
3181
|
...modelModifiersToNodeExtras(aliasType),
|
|
3182
|
+
...docstringExtras(aliasType),
|
|
3074
3183
|
});
|
|
3075
3184
|
this.addNode(result, aliasNode);
|
|
3076
3185
|
result.edges.push(arkEdge(parentId, aliasNode.id, 'contains'));
|
|
@@ -3102,6 +3211,7 @@ class ArkTSAdapter {
|
|
|
3102
3211
|
const { line, endLine, col } = linesFromPosition(positions[0]);
|
|
3103
3212
|
const nsNode = makeNode(relativePath, language, 'namespace', ns.getName(), qn, line, endLine, col, {
|
|
3104
3213
|
...modelModifiersToNodeExtras(ns),
|
|
3214
|
+
...docstringExtras(ns),
|
|
3105
3215
|
});
|
|
3106
3216
|
this.addNode(result, nsNode);
|
|
3107
3217
|
result.edges.push(arkEdge(parentId, nsNode.id, 'contains'));
|
|
@@ -3129,6 +3239,7 @@ class ArkTSAdapter {
|
|
|
3129
3239
|
const classDecs = (0, migrate_semantics_1.encodeDecoratorEntries)(modelDecoratorEntries(cls));
|
|
3130
3240
|
const classNode = makeNode(relativePath, language, kind, displayName, qn, line, endLine, col, {
|
|
3131
3241
|
...modelModifiersToNodeExtras(cls),
|
|
3242
|
+
...docstringExtras(cls),
|
|
3132
3243
|
...(classDecs.length > 0 ? { decorators: classDecs } : {}),
|
|
3133
3244
|
});
|
|
3134
3245
|
this.addNode(result, classNode);
|
|
@@ -3159,6 +3270,7 @@ class ArkTSAdapter {
|
|
|
3159
3270
|
if (cls.hasComponentDecorator()) {
|
|
3160
3271
|
const componentNode = makeNode(relativePath, language, 'component', displayName, qn, line, endLine, col, {
|
|
3161
3272
|
...modelModifiersToNodeExtras(cls),
|
|
3273
|
+
...docstringExtras(cls),
|
|
3162
3274
|
...(classDecs.length > 0 ? { decorators: classDecs } : {}),
|
|
3163
3275
|
});
|
|
3164
3276
|
this.addNode(result, componentNode);
|
|
@@ -3215,6 +3327,7 @@ class ArkTSAdapter {
|
|
|
3215
3327
|
const aliasNode = makeNode(relativePath, language, 'type_alias', name, qn, line, endLine, col, {
|
|
3216
3328
|
signature: aliasType.getOriginalType()?.toString(),
|
|
3217
3329
|
...modelModifiersToNodeExtras(aliasType),
|
|
3330
|
+
...docstringExtras(aliasType),
|
|
3218
3331
|
});
|
|
3219
3332
|
this.addNode(result, aliasNode);
|
|
3220
3333
|
result.edges.push(arkEdge(parentId, aliasNode.id, 'contains'));
|
|
@@ -3251,6 +3364,7 @@ class ArkTSAdapter {
|
|
|
3251
3364
|
signature: field.getType()?.toString(),
|
|
3252
3365
|
...(encodedDecs.length > 0 ? { decorators: encodedDecs } : {}),
|
|
3253
3366
|
...modelModifiersToNodeExtras(field),
|
|
3367
|
+
...docstringExtras(field),
|
|
3254
3368
|
});
|
|
3255
3369
|
this.addNode(result, fieldNode);
|
|
3256
3370
|
this.fieldToId.set(field, fieldNode.id);
|
|
@@ -3568,6 +3682,7 @@ class ArkTSAdapter {
|
|
|
3568
3682
|
...(signature ? { signature } : {}),
|
|
3569
3683
|
...(returnType ? { returnType } : {}),
|
|
3570
3684
|
...modelModifiersToNodeExtras(method),
|
|
3685
|
+
...docstringExtras(method),
|
|
3571
3686
|
});
|
|
3572
3687
|
this.addNode(result, methodNode);
|
|
3573
3688
|
this.methodToId.set(method, methodNode.id);
|
|
@@ -3695,6 +3810,9 @@ function buildSceneConfig(rootDir, extra) {
|
|
|
3695
3810
|
return (0, arkanalyzer_1.buildSceneConfigFromProject)(rootDir, process.env.OHOS_SDK_HOME, {
|
|
3696
3811
|
supportFileExts: ['.ets', '.ts', '.d.ts'],
|
|
3697
3812
|
enableMethodBodyBuild: true,
|
|
3813
|
+
// Spec 0020: feed nodes.docstring → nodes_fts (leading + JSDoc).
|
|
3814
|
+
enableLeadingComments: true,
|
|
3815
|
+
enableJSDoc: true,
|
|
3698
3816
|
...(extra?.memoryLimitMB !== undefined ? { memoryLimitMB: extra.memoryLimitMB } : {}),
|
|
3699
3817
|
});
|
|
3700
3818
|
}
|