homegraph 1.5.2 → 1.5.4
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 +156 -0
- package/README.md +63 -10
- package/dist/addons/dynamic-import.d.ts +18 -0
- package/dist/addons/dynamic-import.d.ts.map +1 -0
- package/dist/addons/dynamic-import.js +25 -0
- package/dist/addons/dynamic-import.js.map +1 -0
- package/dist/addons/init-template.d.ts +15 -0
- package/dist/addons/init-template.d.ts.map +1 -0
- package/dist/addons/init-template.js +290 -0
- package/dist/addons/init-template.js.map +1 -0
- package/dist/addons/loader.d.ts +18 -0
- package/dist/addons/loader.d.ts.map +1 -0
- package/dist/addons/loader.js +88 -0
- package/dist/addons/loader.js.map +1 -0
- package/dist/addons/manager.d.ts +106 -0
- package/dist/addons/manager.d.ts.map +1 -0
- package/dist/addons/manager.js +437 -0
- package/dist/addons/manager.js.map +1 -0
- package/dist/addons/paths.d.ts +22 -0
- package/dist/addons/paths.d.ts.map +1 -0
- package/dist/addons/paths.js +65 -0
- package/dist/addons/paths.js.map +1 -0
- package/dist/addons/registry.d.ts +38 -0
- package/dist/addons/registry.d.ts.map +1 -0
- package/dist/addons/registry.js +160 -0
- package/dist/addons/registry.js.map +1 -0
- package/dist/addons/semver.d.ts +21 -0
- package/dist/addons/semver.d.ts.map +1 -0
- package/dist/addons/semver.js +79 -0
- package/dist/addons/semver.js.map +1 -0
- package/dist/addons/types.d.ts +51 -0
- package/dist/addons/types.d.ts.map +1 -0
- package/dist/addons/types.js +14 -0
- package/dist/addons/types.js.map +1 -0
- package/dist/addons/validate.d.ts +38 -0
- package/dist/addons/validate.d.ts.map +1 -0
- package/dist/addons/validate.js +165 -0
- package/dist/addons/validate.js.map +1 -0
- package/dist/arkui/index.d.ts +4 -0
- package/dist/arkui/index.d.ts.map +1 -0
- package/dist/arkui/index.js +23 -0
- package/dist/arkui/index.js.map +1 -0
- package/dist/arkui/migrate-passage.d.ts +28 -0
- package/dist/arkui/migrate-passage.d.ts.map +1 -0
- package/dist/arkui/migrate-passage.js +310 -0
- package/dist/arkui/migrate-passage.js.map +1 -0
- package/dist/arkui/migrate-semantics.d.ts +47 -0
- package/dist/arkui/migrate-semantics.d.ts.map +1 -0
- package/dist/arkui/migrate-semantics.js +229 -0
- package/dist/arkui/migrate-semantics.js.map +1 -0
- package/dist/arkui/migrate-snapshot.d.ts +79 -0
- package/dist/arkui/migrate-snapshot.d.ts.map +1 -0
- package/dist/arkui/migrate-snapshot.js +364 -0
- package/dist/arkui/migrate-snapshot.js.map +1 -0
- package/dist/bin/addon-commands.d.ts +27 -0
- package/dist/bin/addon-commands.d.ts.map +1 -0
- package/dist/bin/addon-commands.js +254 -0
- package/dist/bin/addon-commands.js.map +1 -0
- package/dist/bin/fatal-handler.js +2 -2
- package/dist/bin/homegraph.js +111 -157
- package/dist/bin/homegraph.js.map +1 -1
- package/dist/bin/node-version-check.d.ts +6 -15
- package/dist/bin/node-version-check.d.ts.map +1 -1
- package/dist/bin/node-version-check.js +8 -37
- package/dist/bin/node-version-check.js.map +1 -1
- package/dist/db/index.d.ts +36 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +92 -6
- package/dist/db/index.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 +15 -1
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/queries.d.ts +42 -0
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +177 -10
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.sql +6 -1
- package/dist/db/sqlite-adapter.d.ts +7 -3
- package/dist/db/sqlite-adapter.d.ts.map +1 -1
- package/dist/db/sqlite-adapter.js +44 -3
- package/dist/db/sqlite-adapter.js.map +1 -1
- package/dist/extraction/extraction-version.d.ts +1 -1
- package/dist/extraction/extraction-version.js +1 -1
- package/dist/extraction/generated-detection.d.ts +42 -11
- package/dist/extraction/generated-detection.d.ts.map +1 -1
- package/dist/extraction/generated-detection.js +141 -20
- package/dist/extraction/generated-detection.js.map +1 -1
- package/dist/extraction/index.d.ts +42 -0
- package/dist/extraction/index.d.ts.map +1 -1
- package/dist/extraction/index.js +96 -0
- package/dist/extraction/index.js.map +1 -1
- package/dist/extraction/languages/arkts.d.ts +33 -2
- package/dist/extraction/languages/arkts.d.ts.map +1 -1
- package/dist/extraction/languages/arkts.js +525 -129
- package/dist/extraction/languages/arkts.js.map +1 -1
- package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -1
- package/dist/extraction/wasm-runtime-flags.js +9 -6
- package/dist/extraction/wasm-runtime-flags.js.map +1 -1
- package/dist/graph-sources.d.ts +41 -0
- package/dist/graph-sources.d.ts.map +1 -0
- package/dist/graph-sources.js +82 -0
- package/dist/graph-sources.js.map +1 -0
- package/dist/index.d.ts +20 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +79 -9
- package/dist/index.js.map +1 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +0 -48
- package/dist/installer/index.js.map +1 -1
- package/dist/installer/targets/antigravity.js +1 -1
- package/dist/installer/targets/antigravity.js.map +1 -1
- package/dist/installer/targets/deveco.js +1 -1
- package/dist/installer/targets/deveco.js.map +1 -1
- package/dist/installer/targets/hermes.d.ts +1 -1
- package/dist/installer/targets/hermes.js +2 -2
- package/dist/installer/targets/hermes.js.map +1 -1
- package/dist/installer/targets/opencode.js +1 -1
- package/dist/installer/targets/opencode.js.map +1 -1
- package/dist/installer/targets/shared.js +1 -1
- package/dist/installer/targets/shared.js.map +1 -1
- package/dist/mcp/daemon-paths.d.ts +5 -4
- package/dist/mcp/daemon-paths.d.ts.map +1 -1
- package/dist/mcp/daemon-paths.js +28 -13
- package/dist/mcp/daemon-paths.js.map +1 -1
- package/dist/mcp/daemon-registry.d.ts.map +1 -1
- package/dist/mcp/daemon-registry.js +4 -1
- package/dist/mcp/daemon-registry.js.map +1 -1
- package/dist/mcp/daemon.d.ts +1 -1
- package/dist/mcp/daemon.js +1 -1
- package/dist/mcp/engine.d.ts.map +1 -1
- package/dist/mcp/engine.js +12 -3
- package/dist/mcp/engine.js.map +1 -1
- package/dist/mcp/explore-dedup.d.ts +137 -0
- package/dist/mcp/explore-dedup.d.ts.map +1 -0
- package/dist/mcp/explore-dedup.js +236 -0
- package/dist/mcp/explore-dedup.js.map +1 -0
- package/dist/mcp/explore-repeat-guard.d.ts +123 -0
- package/dist/mcp/explore-repeat-guard.d.ts.map +1 -0
- package/dist/mcp/explore-repeat-guard.js +503 -0
- package/dist/mcp/explore-repeat-guard.js.map +1 -0
- package/dist/mcp/explore-session-state.d.ts +237 -0
- package/dist/mcp/explore-session-state.d.ts.map +1 -0
- package/dist/mcp/explore-session-state.js +353 -0
- package/dist/mcp/explore-session-state.js.map +1 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +4 -7
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/proxy.d.ts.map +1 -1
- package/dist/mcp/proxy.js +20 -18
- package/dist/mcp/proxy.js.map +1 -1
- package/dist/mcp/query-pool.d.ts.map +1 -1
- package/dist/mcp/query-pool.js +10 -13
- package/dist/mcp/query-pool.js.map +1 -1
- package/dist/mcp/query-worker.d.ts +1 -1
- package/dist/mcp/query-worker.js +1 -1
- package/dist/mcp/server-instructions.d.ts +5 -2
- package/dist/mcp/server-instructions.d.ts.map +1 -1
- package/dist/mcp/server-instructions.js +43 -32
- package/dist/mcp/server-instructions.js.map +1 -1
- package/dist/mcp/session.d.ts +14 -3
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +17 -14
- package/dist/mcp/session.js.map +1 -1
- package/dist/mcp/startup-handshake.d.ts +1 -1
- package/dist/mcp/startup-handshake.js +1 -1
- package/dist/mcp/tools.d.ts +149 -8
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +4265 -575
- package/dist/mcp/tools.js.map +1 -1
- package/dist/resolution/callback-synthesizer.d.ts.map +1 -1
- package/dist/resolution/callback-synthesizer.js +166 -0
- package/dist/resolution/callback-synthesizer.js.map +1 -1
- package/dist/resolution/frameworks/arkts-napi.d.ts +14 -0
- package/dist/resolution/frameworks/arkts-napi.d.ts.map +1 -1
- package/dist/resolution/frameworks/arkts-napi.js +169 -49
- package/dist/resolution/frameworks/arkts-napi.js.map +1 -1
- package/dist/search/query-utils.d.ts +157 -5
- package/dist/search/query-utils.d.ts.map +1 -1
- package/dist/search/query-utils.js +1105 -70
- package/dist/search/query-utils.js.map +1 -1
- package/dist/spec/build/scan.js +1 -1
- package/dist/spec/build/scan.js.map +1 -1
- package/dist/spec/build/scope-resolver.d.ts +24 -5
- package/dist/spec/build/scope-resolver.d.ts.map +1 -1
- package/dist/spec/build/scope-resolver.js +76 -10
- package/dist/spec/build/scope-resolver.js.map +1 -1
- package/dist/spec/config.d.ts +8 -0
- package/dist/spec/config.d.ts.map +1 -1
- package/dist/spec/config.js +3 -0
- package/dist/spec/config.js.map +1 -1
- package/dist/spec/evolve/pipeline.d.ts.map +1 -1
- package/dist/spec/evolve/pipeline.js +2 -1
- package/dist/spec/evolve/pipeline.js.map +1 -1
- package/dist/spec/git/commits.d.ts +8 -3
- package/dist/spec/git/commits.d.ts.map +1 -1
- package/dist/spec/git/commits.js +12 -11
- package/dist/spec/git/commits.js.map +1 -1
- package/dist/spec/mine/addon/adapter.d.ts +45 -0
- package/dist/spec/mine/addon/adapter.d.ts.map +1 -0
- package/dist/spec/mine/addon/adapter.js +118 -0
- package/dist/spec/mine/addon/adapter.js.map +1 -0
- package/dist/spec/mine/addon/render.d.ts +20 -0
- package/dist/spec/mine/addon/render.d.ts.map +1 -0
- package/dist/spec/mine/addon/render.js +41 -0
- package/dist/spec/mine/addon/render.js.map +1 -0
- package/dist/spec/mine/addon/types.d.ts +70 -0
- package/dist/spec/mine/addon/types.d.ts.map +1 -0
- package/dist/spec/mine/addon/types.js +14 -0
- package/dist/spec/mine/addon/types.js.map +1 -0
- package/dist/spec/mine/generator.d.ts +5 -1
- package/dist/spec/mine/generator.d.ts.map +1 -1
- package/dist/spec/mine/generator.js +69 -7
- package/dist/spec/mine/generator.js.map +1 -1
- package/dist/spec/mine/pipeline.d.ts.map +1 -1
- package/dist/spec/mine/pipeline.js +5 -1
- package/dist/spec/mine/pipeline.js.map +1 -1
- package/dist/spec/mine/scanner.d.ts +1 -0
- package/dist/spec/mine/scanner.d.ts.map +1 -1
- package/dist/spec/mine/scanner.js +1 -1
- package/dist/spec/mine/scanner.js.map +1 -1
- package/dist/spec/types.d.ts +1 -1
- package/dist/spec/types.d.ts.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/upgrade/index.d.ts +14 -26
- package/dist/upgrade/index.d.ts.map +1 -1
- package/dist/upgrade/index.js +28 -123
- package/dist/upgrade/index.js.map +1 -1
- package/dist/upgrade/remove-binary.d.ts +19 -19
- package/dist/upgrade/remove-binary.d.ts.map +1 -1
- package/dist/upgrade/remove-binary.js +20 -21
- package/dist/upgrade/remove-binary.js.map +1 -1
- package/dist/upgrade/update-check.d.ts +4 -3
- package/dist/upgrade/update-check.d.ts.map +1 -1
- package/dist/upgrade/update-check.js +4 -3
- package/dist/upgrade/update-check.js.map +1 -1
- package/package.json +13 -9
- package/dist/telemetry/index.d.ts +0 -143
- package/dist/telemetry/index.d.ts.map +0 -1
- package/dist/telemetry/index.js +0 -541
- package/dist/telemetry/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm-runtime-flags.d.ts","sourceRoot":"","sources":["../../src/extraction/wasm-runtime-flags.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wasm-runtime-flags.d.ts","sourceRoot":"","sources":["../../src/extraction/wasm-runtime-flags.ts"],"names":[],"mappings":"AAqCA;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAAuB,CAAC;AAExE,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAiBvC,mFAAmF;AACnF,wBAAgB,wBAAwB,IAAI,MAAM,CAOjD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,GAAE,MAAmC,GAAG,MAAM,CAEnF;AAMD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,wBAAwB,CAAC;AAEnD,mFAAmF;AACnF,wBAAgB,0BAA0B,CACxC,QAAQ,GAAE,SAAS,MAAM,EAAqB,GAC7C,OAAO,CAET;AAED,+EAA+E;AAC/E,wBAAgB,8BAA8B,CAC5C,QAAQ,GAAE,SAAS,MAAM,EAAqB,GAC7C,OAAO,CAET;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,QAAQ,GAAE,SAAS,MAAM,EAAqB,GAC7C,MAAM,EAAE,CAcV;AAED;;;;;;;;GAQG;AACH,wBAAgB,oCAAoC,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAkB7E"}
|
|
@@ -15,8 +15,12 @@ exports.relaunchWithWasmRuntimeFlagsIfNeeded = relaunchWithWasmRuntimeFlagsIfNee
|
|
|
15
15
|
* arena while compiling these grammars on a background thread, aborting the
|
|
16
16
|
* whole process with `Fatal process out of memory: Zone` — even with tens of
|
|
17
17
|
* GB of system memory free, because the Zone is a V8-internal arena, not the
|
|
18
|
-
* JS heap.
|
|
19
|
-
*
|
|
18
|
+
* JS heap. The trigger is not mere `Language.load` (lazy compile stays on
|
|
19
|
+
* Liftoff): after a large grammar is hot from repeated parse, turboshaft's
|
|
20
|
+
* background optimizing compile OOMs the Zone. Reproduced on Node 24 and 25+
|
|
21
|
+
* (see test/fixtures/wasm-zone-oom-harness.cjs); mitigated here rather than by
|
|
22
|
+
* blocking majors (see ../bin/node-version-check.ts for the supported floor
|
|
23
|
+
* only). See issues #293 and #298.
|
|
20
24
|
*
|
|
21
25
|
* `--liftoff-only` forces every WASM module to the Liftoff baseline compiler
|
|
22
26
|
* and never runs turboshaft, which eliminates the crash. Parsing stays fully
|
|
@@ -31,10 +35,9 @@ exports.relaunchWithWasmRuntimeFlagsIfNeeded = relaunchWithWasmRuntimeFlagsIfNee
|
|
|
31
35
|
* Also empirically, `--no-wasm-tier-up` / `--no-wasm-dynamic-tiering` do NOT
|
|
32
36
|
* prevent the crash — only disabling the optimizing tier entirely does.
|
|
33
37
|
*
|
|
34
|
-
* Delivery: the
|
|
35
|
-
*
|
|
36
|
-
* (running dist directly, from source, etc.)
|
|
37
|
-
* the flag via {@link relaunchWithWasmRuntimeFlagsIfNeeded}. V8 flags are
|
|
38
|
+
* Delivery: the CLI re-execs itself once with the flag via
|
|
39
|
+
* {@link relaunchWithWasmRuntimeFlagsIfNeeded} when launched without it
|
|
40
|
+
* (running dist directly, from source, npm global, etc.). V8 flags are
|
|
38
41
|
* PROCESS-global, and the parse worker is created with default (inherited)
|
|
39
42
|
* execArgv, so flagging the main process governs the worker's WASM compilation
|
|
40
43
|
* too.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm-runtime-flags.js","sourceRoot":"","sources":["../../src/extraction/wasm-runtime-flags.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"wasm-runtime-flags.js","sourceRoot":"","sources":["../../src/extraction/wasm-runtime-flags.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP / query-time graph source selection — project index vs OHOS SDK API db.
|
|
3
|
+
*
|
|
4
|
+
* Spec: docs/specs/0005-mcp-graph-sources-switch.md
|
|
5
|
+
*
|
|
6
|
+
* CLI: `homegraph serve mcp --sources both|project|sdk|none`
|
|
7
|
+
* Env: `HOMEGRAPH_SOURCES` (used when CLI omits --sources)
|
|
8
|
+
* Priority: explicit CLI/options > env > `both`
|
|
9
|
+
*/
|
|
10
|
+
export declare const GRAPH_SOURCES_ENV = "HOMEGRAPH_SOURCES";
|
|
11
|
+
export type GraphSourcesMode = 'both' | 'project' | 'sdk' | 'none';
|
|
12
|
+
export declare const GRAPH_SOURCES_MODES: readonly GraphSourcesMode[];
|
|
13
|
+
export interface GraphSourceFlags {
|
|
14
|
+
/** Include symbols from the project's `.homegraph` main graph. */
|
|
15
|
+
project: boolean;
|
|
16
|
+
/** ATTACH + query `~/.homegraph/api` OHOS API db. */
|
|
17
|
+
sdk: boolean;
|
|
18
|
+
/** Open a HomeGraph instance at all (false only for `none`). */
|
|
19
|
+
openProjectDb: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Parse a raw mode string. Returns null when empty/undefined (caller applies default).
|
|
23
|
+
* Throws on non-empty invalid values.
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseGraphSourcesMode(raw: string | undefined | null): GraphSourcesMode | null;
|
|
26
|
+
/** Map mode → runtime flags. */
|
|
27
|
+
export declare function graphSourceFlags(mode: GraphSourcesMode): GraphSourceFlags;
|
|
28
|
+
/**
|
|
29
|
+
* Resolve effective mode.
|
|
30
|
+
* @param explicit - from `--sources` or `OpenOptions.sources` (wins over env)
|
|
31
|
+
* @param env - defaults to `process.env.HOMEGRAPH_SOURCES`
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolveGraphSources(explicit?: string | null, env?: NodeJS.ProcessEnv): GraphSourcesMode;
|
|
34
|
+
/**
|
|
35
|
+
* Apply CLI `--sources` into the process env so detached daemons and nested
|
|
36
|
+
* opens in this process see the same mode without re-parsing argv.
|
|
37
|
+
*/
|
|
38
|
+
export declare function applyGraphSourcesToEnv(mode: GraphSourcesMode, env?: NodeJS.ProcessEnv): void;
|
|
39
|
+
/** Short success-shaped guidance when sources=none (or no usable graph). */
|
|
40
|
+
export declare function graphSourcesDisabledGuidance(mode?: GraphSourcesMode): string;
|
|
41
|
+
//# sourceMappingURL=graph-sources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-sources.d.ts","sourceRoot":"","sources":["../src/graph-sources.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AAEnE,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAKjD,CAAC;AAEX,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,GAAG,EAAE,OAAO,CAAC;IACb,gEAAgE;IAChE,aAAa,EAAE,OAAO,CAAC;CACxB;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,gBAAgB,GAAG,IAAI,CAW7F;AAED,gCAAgC;AAChC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,gBAAgB,CAWzE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,gBAAgB,CAMlB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,IAAI,CAEzG;AAED,4EAA4E;AAC5E,wBAAgB,4BAA4B,CAAC,IAAI,GAAE,gBAAwC,GAAG,MAAM,CAMnG"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP / query-time graph source selection — project index vs OHOS SDK API db.
|
|
4
|
+
*
|
|
5
|
+
* Spec: docs/specs/0005-mcp-graph-sources-switch.md
|
|
6
|
+
*
|
|
7
|
+
* CLI: `homegraph serve mcp --sources both|project|sdk|none`
|
|
8
|
+
* Env: `HOMEGRAPH_SOURCES` (used when CLI omits --sources)
|
|
9
|
+
* Priority: explicit CLI/options > env > `both`
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.GRAPH_SOURCES_MODES = exports.GRAPH_SOURCES_ENV = void 0;
|
|
13
|
+
exports.parseGraphSourcesMode = parseGraphSourcesMode;
|
|
14
|
+
exports.graphSourceFlags = graphSourceFlags;
|
|
15
|
+
exports.resolveGraphSources = resolveGraphSources;
|
|
16
|
+
exports.applyGraphSourcesToEnv = applyGraphSourcesToEnv;
|
|
17
|
+
exports.graphSourcesDisabledGuidance = graphSourcesDisabledGuidance;
|
|
18
|
+
exports.GRAPH_SOURCES_ENV = 'HOMEGRAPH_SOURCES';
|
|
19
|
+
exports.GRAPH_SOURCES_MODES = [
|
|
20
|
+
'both',
|
|
21
|
+
'project',
|
|
22
|
+
'sdk',
|
|
23
|
+
'none',
|
|
24
|
+
];
|
|
25
|
+
const MODE_SET = new Set(exports.GRAPH_SOURCES_MODES);
|
|
26
|
+
/**
|
|
27
|
+
* Parse a raw mode string. Returns null when empty/undefined (caller applies default).
|
|
28
|
+
* Throws on non-empty invalid values.
|
|
29
|
+
*/
|
|
30
|
+
function parseGraphSourcesMode(raw) {
|
|
31
|
+
if (raw == null)
|
|
32
|
+
return null;
|
|
33
|
+
const trimmed = raw.trim();
|
|
34
|
+
if (!trimmed)
|
|
35
|
+
return null;
|
|
36
|
+
const lower = trimmed.toLowerCase();
|
|
37
|
+
if (!MODE_SET.has(lower)) {
|
|
38
|
+
throw new Error(`Invalid graph sources "${raw}". Expected one of: ${exports.GRAPH_SOURCES_MODES.join(', ')}`);
|
|
39
|
+
}
|
|
40
|
+
return lower;
|
|
41
|
+
}
|
|
42
|
+
/** Map mode → runtime flags. */
|
|
43
|
+
function graphSourceFlags(mode) {
|
|
44
|
+
switch (mode) {
|
|
45
|
+
case 'both':
|
|
46
|
+
return { project: true, sdk: true, openProjectDb: true };
|
|
47
|
+
case 'project':
|
|
48
|
+
return { project: true, sdk: false, openProjectDb: true };
|
|
49
|
+
case 'sdk':
|
|
50
|
+
return { project: false, sdk: true, openProjectDb: true };
|
|
51
|
+
case 'none':
|
|
52
|
+
return { project: false, sdk: false, openProjectDb: false };
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Resolve effective mode.
|
|
57
|
+
* @param explicit - from `--sources` or `OpenOptions.sources` (wins over env)
|
|
58
|
+
* @param env - defaults to `process.env.HOMEGRAPH_SOURCES`
|
|
59
|
+
*/
|
|
60
|
+
function resolveGraphSources(explicit, env = process.env) {
|
|
61
|
+
const fromCli = parseGraphSourcesMode(explicit ?? undefined);
|
|
62
|
+
if (fromCli)
|
|
63
|
+
return fromCli;
|
|
64
|
+
const fromEnv = parseGraphSourcesMode(env[exports.GRAPH_SOURCES_ENV]);
|
|
65
|
+
if (fromEnv)
|
|
66
|
+
return fromEnv;
|
|
67
|
+
return 'both';
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Apply CLI `--sources` into the process env so detached daemons and nested
|
|
71
|
+
* opens in this process see the same mode without re-parsing argv.
|
|
72
|
+
*/
|
|
73
|
+
function applyGraphSourcesToEnv(mode, env = process.env) {
|
|
74
|
+
env[exports.GRAPH_SOURCES_ENV] = mode;
|
|
75
|
+
}
|
|
76
|
+
/** Short success-shaped guidance when sources=none (or no usable graph). */
|
|
77
|
+
function graphSourcesDisabledGuidance(mode = resolveGraphSources()) {
|
|
78
|
+
return (`HomeGraph graph sources are set to "${mode}" — no project/SDK graph is available for this session. ` +
|
|
79
|
+
`Pass \`--sources both|project|sdk\` on \`homegraph serve mcp\`, or set ${exports.GRAPH_SOURCES_ENV}. ` +
|
|
80
|
+
`Default is both (project index + OHOS SDK API db when bound).`);
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=graph-sources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-sources.js","sourceRoot":"","sources":["../src/graph-sources.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA4BH,sDAWC;AAGD,4CAWC;AAOD,kDASC;AAMD,wDAEC;AAGD,oEAMC;AApFY,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AAIxC,QAAA,mBAAmB,GAAgC;IAC9D,MAAM;IACN,SAAS;IACT,KAAK;IACL,MAAM;CACE,CAAC;AAWX,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,2BAAmB,CAAC,CAAC;AAEtD;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,GAA8B;IAClE,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,0BAA0B,GAAG,uBAAuB,2BAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrF,CAAC;IACJ,CAAC;IACD,OAAO,KAAyB,CAAC;AACnC,CAAC;AAED,gCAAgC;AAChC,SAAgB,gBAAgB,CAAC,IAAsB;IACrD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAC3D,KAAK,SAAS;YACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAC5D,KAAK,KAAK;YACR,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAC5D,KAAK,MAAM;YACT,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IAChE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CACjC,QAAwB,EACxB,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC;IAC7D,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,yBAAiB,CAAC,CAAC,CAAC;IAC9D,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,IAAsB,EAAE,MAAyB,OAAO,CAAC,GAAG;IACjG,GAAG,CAAC,yBAAiB,CAAC,GAAG,IAAI,CAAC;AAChC,CAAC;AAED,4EAA4E;AAC5E,SAAgB,4BAA4B,CAAC,OAAyB,mBAAmB,EAAE;IACzF,OAAO,CACL,uCAAuC,IAAI,0DAA0D;QACrG,0EAA0E,yBAAiB,IAAI;QAC/F,+DAA+D,CAChE,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,8 +9,11 @@ import { QueryBuilder } from './db/queries';
|
|
|
9
9
|
import { IndexProgress, IndexResult, SyncResult } from './extraction';
|
|
10
10
|
import { type OhosApiDbBinding } from './extraction/languages/arkts';
|
|
11
11
|
import { ResolutionResult } from './resolution';
|
|
12
|
+
import { type ArkUIMigrateSnapshot } from './arkui/migrate-snapshot';
|
|
12
13
|
import { WatchOptions, PendingFile } from './sync';
|
|
14
|
+
import { type GraphSourcesMode } from './graph-sources';
|
|
13
15
|
export * from './types';
|
|
16
|
+
export { type GraphSourcesMode, GRAPH_SOURCES_ENV, GRAPH_SOURCES_MODES, resolveGraphSources, graphSourceFlags, parseGraphSourcesMode, } from './graph-sources';
|
|
14
17
|
export { getDatabasePath, DatabaseConnection } from './db';
|
|
15
18
|
export { QueryBuilder } from './db/queries';
|
|
16
19
|
export { getHomeGraphDir, isInitialized, findNearestHomeGraphRoot, HOMEGRAPH_DIR, } from './directory';
|
|
@@ -21,6 +24,8 @@ export { HomeGraphError, FileError, ParseError, DatabaseError, SearchError, Vect
|
|
|
21
24
|
export { Mutex, FileLock, processInBatches, debounce, throttle, MemoryMonitor } from './utils';
|
|
22
25
|
export { FileWatcher, WatchOptions, PendingFile, LockUnavailableError } from './sync';
|
|
23
26
|
export { MCPServer } from './mcp';
|
|
27
|
+
export { buildArkUIMigrateSnapshot, ARKUI_MIGRATE_SCHEMA_VERSION, DEFAULT_DIRECTORY_COMPONENT_LIMIT, type ArkUIMigrateSnapshot, } from './arkui';
|
|
28
|
+
export type { AddonCommitInput, EnrichInput, Supplement, BuildPromptContext, SpecMineAddon, } from './spec/mine/addon/types';
|
|
24
29
|
/**
|
|
25
30
|
* Options for initializing a new HomeGraph project
|
|
26
31
|
*/
|
|
@@ -38,6 +43,11 @@ export interface OpenOptions {
|
|
|
38
43
|
sync?: boolean;
|
|
39
44
|
/** Whether to run in read-only mode */
|
|
40
45
|
readOnly?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Which graph sources to use for lookups (project index and/or OHOS SDK API).
|
|
48
|
+
* Defaults to `HOMEGRAPH_SOURCES` env, then `both`. See Spec 0005.
|
|
49
|
+
*/
|
|
50
|
+
sources?: GraphSourcesMode | string;
|
|
41
51
|
}
|
|
42
52
|
/**
|
|
43
53
|
* Options for indexing
|
|
@@ -69,6 +79,8 @@ export declare class HomeGraph {
|
|
|
69
79
|
private indexMutex;
|
|
70
80
|
private fileLock;
|
|
71
81
|
private watcher;
|
|
82
|
+
/** Effective graph sources for this instance (Spec 0005). */
|
|
83
|
+
private graphSources;
|
|
72
84
|
private constructor();
|
|
73
85
|
/**
|
|
74
86
|
* (Re)build the query/extraction/graph layers over the current `this.queries`
|
|
@@ -134,7 +146,7 @@ export declare class HomeGraph {
|
|
|
134
146
|
/**
|
|
135
147
|
* Open synchronously (without sync)
|
|
136
148
|
*/
|
|
137
|
-
static openSync(projectRoot: string): HomeGraph;
|
|
149
|
+
static openSync(projectRoot: string, options?: OpenOptions): HomeGraph;
|
|
138
150
|
/**
|
|
139
151
|
* Check if a directory has been initialized as a HomeGraph project
|
|
140
152
|
*/
|
|
@@ -147,6 +159,8 @@ export declare class HomeGraph {
|
|
|
147
159
|
* Get the project root directory
|
|
148
160
|
*/
|
|
149
161
|
getProjectRoot(): string;
|
|
162
|
+
/** Effective graph sources for this open (`both` | `project` | `sdk`). */
|
|
163
|
+
getGraphSources(): GraphSourcesMode;
|
|
150
164
|
/**
|
|
151
165
|
* Index all files in the project
|
|
152
166
|
*
|
|
@@ -435,6 +449,11 @@ export declare class HomeGraph {
|
|
|
435
449
|
* Get incoming edges to a node
|
|
436
450
|
*/
|
|
437
451
|
getIncomingEdges(nodeId: string): Edge[];
|
|
452
|
+
/**
|
|
453
|
+
* ArkUI migrate / state-semantics snapshot for a scope (spec 0007).
|
|
454
|
+
* Scope: component name, relative file path, or directory prefix.
|
|
455
|
+
*/
|
|
456
|
+
getArkUIMigrateSnapshot(scope: string): ArkUIMigrateSnapshot;
|
|
438
457
|
/**
|
|
439
458
|
* Get a file record by path
|
|
440
459
|
*/
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,UAAU,EACV,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,0BAA0B,EAC1B,YAAY,EACZ,QAAQ,EACT,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAO5C,OAAO,EAEL,aAAa,EACb,WAAW,EACX,UAAU,EAGX,MAAM,cAAc,CAAC;AAEtB,OAAO,EAML,KAAK,gBAAgB,EAGtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAGL,gBAAgB,EACjB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -42,7 +42,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
42
42
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
43
43
|
};
|
|
44
44
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
-
exports.HomeGraph = exports.MCPServer = exports.LockUnavailableError = exports.FileWatcher = exports.MemoryMonitor = exports.throttle = exports.debounce = exports.processInBatches = exports.FileLock = exports.Mutex = exports.defaultLogger = exports.silentLogger = exports.getLogger = exports.setLogger = exports.ConfigError = exports.VectorError = exports.SearchError = exports.DatabaseError = exports.ParseError = exports.FileError = exports.HomeGraphError = exports.loadAllGrammars = exports.loadGrammarsForLanguages = exports.initGrammars = exports.getSupportedLanguages = exports.isGrammarLoaded = exports.isLanguageSupported = exports.detectLanguage = exports.HOMEGRAPH_DIR = exports.findNearestHomeGraphRoot = exports.isInitialized = exports.getHomeGraphDir = exports.QueryBuilder = exports.DatabaseConnection = exports.getDatabasePath = void 0;
|
|
45
|
+
exports.HomeGraph = exports.DEFAULT_DIRECTORY_COMPONENT_LIMIT = exports.ARKUI_MIGRATE_SCHEMA_VERSION = exports.buildArkUIMigrateSnapshot = exports.MCPServer = exports.LockUnavailableError = exports.FileWatcher = exports.MemoryMonitor = exports.throttle = exports.debounce = exports.processInBatches = exports.FileLock = exports.Mutex = exports.defaultLogger = exports.silentLogger = exports.getLogger = exports.setLogger = exports.ConfigError = exports.VectorError = exports.SearchError = exports.DatabaseError = exports.ParseError = exports.FileError = exports.HomeGraphError = exports.loadAllGrammars = exports.loadGrammarsForLanguages = exports.initGrammars = exports.getSupportedLanguages = exports.isGrammarLoaded = exports.isLanguageSupported = exports.detectLanguage = exports.HOMEGRAPH_DIR = exports.findNearestHomeGraphRoot = exports.isInitialized = exports.getHomeGraphDir = exports.QueryBuilder = exports.DatabaseConnection = exports.getDatabasePath = exports.parseGraphSourcesMode = exports.graphSourceFlags = exports.resolveGraphSources = exports.GRAPH_SOURCES_MODES = exports.GRAPH_SOURCES_ENV = void 0;
|
|
46
46
|
const path = __importStar(require("path"));
|
|
47
47
|
const db_1 = require("./db");
|
|
48
48
|
const wal_valve_1 = require("./db/wal-valve");
|
|
@@ -53,6 +53,7 @@ const context_1 = require("./extraction/context");
|
|
|
53
53
|
const arkts_1 = require("./extraction/languages/arkts");
|
|
54
54
|
const resolution_1 = require("./resolution");
|
|
55
55
|
const graph_1 = require("./graph");
|
|
56
|
+
const migrate_snapshot_1 = require("./arkui/migrate-snapshot");
|
|
56
57
|
const context_2 = require("./context");
|
|
57
58
|
const utils_1 = require("./utils");
|
|
58
59
|
const sync_1 = require("./sync");
|
|
@@ -63,8 +64,15 @@ const identifier_segments_1 = require("./search/identifier-segments");
|
|
|
63
64
|
const cooperative_yield_1 = require("./resolution/cooperative-yield");
|
|
64
65
|
const resolver_pool_1 = require("./resolution/resolver-pool");
|
|
65
66
|
const version_1 = require("./mcp/version");
|
|
67
|
+
const graph_sources_1 = require("./graph-sources");
|
|
66
68
|
// Re-export types for consumers
|
|
67
69
|
__exportStar(require("./types"), exports);
|
|
70
|
+
var graph_sources_2 = require("./graph-sources");
|
|
71
|
+
Object.defineProperty(exports, "GRAPH_SOURCES_ENV", { enumerable: true, get: function () { return graph_sources_2.GRAPH_SOURCES_ENV; } });
|
|
72
|
+
Object.defineProperty(exports, "GRAPH_SOURCES_MODES", { enumerable: true, get: function () { return graph_sources_2.GRAPH_SOURCES_MODES; } });
|
|
73
|
+
Object.defineProperty(exports, "resolveGraphSources", { enumerable: true, get: function () { return graph_sources_2.resolveGraphSources; } });
|
|
74
|
+
Object.defineProperty(exports, "graphSourceFlags", { enumerable: true, get: function () { return graph_sources_2.graphSourceFlags; } });
|
|
75
|
+
Object.defineProperty(exports, "parseGraphSourcesMode", { enumerable: true, get: function () { return graph_sources_2.parseGraphSourcesMode; } });
|
|
68
76
|
// Storage building blocks for embedded/SDK consumers that drive the graph
|
|
69
77
|
// directly (open a DB, run prepared queries) rather than through the HomeGraph
|
|
70
78
|
// facade. Exposed from the package entry so they no longer require deep imports
|
|
@@ -111,6 +119,10 @@ Object.defineProperty(exports, "FileWatcher", { enumerable: true, get: function
|
|
|
111
119
|
Object.defineProperty(exports, "LockUnavailableError", { enumerable: true, get: function () { return sync_2.LockUnavailableError; } });
|
|
112
120
|
var mcp_1 = require("./mcp");
|
|
113
121
|
Object.defineProperty(exports, "MCPServer", { enumerable: true, get: function () { return mcp_1.MCPServer; } });
|
|
122
|
+
var arkui_1 = require("./arkui");
|
|
123
|
+
Object.defineProperty(exports, "buildArkUIMigrateSnapshot", { enumerable: true, get: function () { return arkui_1.buildArkUIMigrateSnapshot; } });
|
|
124
|
+
Object.defineProperty(exports, "ARKUI_MIGRATE_SCHEMA_VERSION", { enumerable: true, get: function () { return arkui_1.ARKUI_MIGRATE_SCHEMA_VERSION; } });
|
|
125
|
+
Object.defineProperty(exports, "DEFAULT_DIRECTORY_COMPONENT_LIMIT", { enumerable: true, get: function () { return arkui_1.DEFAULT_DIRECTORY_COMPONENT_LIMIT; } });
|
|
114
126
|
/**
|
|
115
127
|
* Main HomeGraph class
|
|
116
128
|
*
|
|
@@ -134,10 +146,13 @@ class HomeGraph {
|
|
|
134
146
|
fileLock;
|
|
135
147
|
// File watcher for auto-sync on file changes
|
|
136
148
|
watcher = null;
|
|
137
|
-
|
|
149
|
+
/** Effective graph sources for this instance (Spec 0005). */
|
|
150
|
+
graphSources;
|
|
151
|
+
constructor(db, queries, projectRoot, sources) {
|
|
138
152
|
this.db = db;
|
|
139
153
|
this.queries = queries;
|
|
140
154
|
this.projectRoot = projectRoot;
|
|
155
|
+
this.graphSources = sources ?? 'both';
|
|
141
156
|
(0, context_1.bindExtractionContext)(projectRoot, queries);
|
|
142
157
|
this.fileLock = new utils_1.FileLock(path.join((0, directory_2.getHomeGraphDir)(projectRoot), 'homegraph.lock'));
|
|
143
158
|
this.wireLayers();
|
|
@@ -162,10 +177,17 @@ class HomeGraph {
|
|
|
162
177
|
this.graphManager = new graph_1.GraphQueryManager(this.queries);
|
|
163
178
|
this.traverser = new graph_1.GraphTraverser(this.queries);
|
|
164
179
|
this.contextBuilder = (0, context_2.createContextBuilder)(this.projectRoot, this.queries, this.traverser);
|
|
165
|
-
(0,
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
(0, arkts_1.
|
|
180
|
+
const flags = (0, graph_sources_1.graphSourceFlags)(this.graphSources);
|
|
181
|
+
this.queries.setIncludeProjectNodes(flags.project);
|
|
182
|
+
if (flags.sdk) {
|
|
183
|
+
(0, arkts_1.restoreOhosApiDbAttach)(this.queries);
|
|
184
|
+
if (!this.queries.getOhosApiDbPath()) {
|
|
185
|
+
// Open path: attach a prebuilt ~/.homegraph/api db only — never build here.
|
|
186
|
+
(0, arkts_1.attachExistingOhosApiDbForProject)(this.projectRoot, this.queries);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
this.queries.attachOhosApiDb(null);
|
|
169
191
|
}
|
|
170
192
|
}
|
|
171
193
|
/**
|
|
@@ -261,6 +283,11 @@ class HomeGraph {
|
|
|
261
283
|
static async open(projectRoot, options = {}) {
|
|
262
284
|
await (0, extraction_1.initGrammars)();
|
|
263
285
|
const resolvedRoot = path.resolve(projectRoot);
|
|
286
|
+
const sources = (0, graph_sources_1.resolveGraphSources)(options.sources);
|
|
287
|
+
if (!(0, graph_sources_1.graphSourceFlags)(sources).openProjectDb) {
|
|
288
|
+
throw new Error(`Cannot open HomeGraph when graph sources are "${sources}". ` +
|
|
289
|
+
`Use --sources both|project|sdk or unset HOMEGRAPH_SOURCES.`);
|
|
290
|
+
}
|
|
264
291
|
// Check if initialized
|
|
265
292
|
if (!(0, directory_1.isInitialized)(resolvedRoot)) {
|
|
266
293
|
throw new Error(`HomeGraph not initialized in ${resolvedRoot}. Run init() first.`);
|
|
@@ -274,7 +301,7 @@ class HomeGraph {
|
|
|
274
301
|
const dbPath = (0, db_1.getDatabasePath)(resolvedRoot);
|
|
275
302
|
const db = db_1.DatabaseConnection.open(dbPath);
|
|
276
303
|
const queries = new queries_1.QueryBuilder(db.getDb());
|
|
277
|
-
const instance = new HomeGraph(db, queries, resolvedRoot);
|
|
304
|
+
const instance = new HomeGraph(db, queries, resolvedRoot, sources);
|
|
278
305
|
// Sync if requested
|
|
279
306
|
if (options.sync) {
|
|
280
307
|
await instance.sync();
|
|
@@ -326,8 +353,13 @@ class HomeGraph {
|
|
|
326
353
|
/**
|
|
327
354
|
* Open synchronously (without sync)
|
|
328
355
|
*/
|
|
329
|
-
static openSync(projectRoot) {
|
|
356
|
+
static openSync(projectRoot, options = {}) {
|
|
330
357
|
const resolvedRoot = path.resolve(projectRoot);
|
|
358
|
+
const sources = (0, graph_sources_1.resolveGraphSources)(options.sources);
|
|
359
|
+
if (!(0, graph_sources_1.graphSourceFlags)(sources).openProjectDb) {
|
|
360
|
+
throw new Error(`Cannot open HomeGraph when graph sources are "${sources}". ` +
|
|
361
|
+
`Use --sources both|project|sdk or unset HOMEGRAPH_SOURCES.`);
|
|
362
|
+
}
|
|
331
363
|
// Check if initialized
|
|
332
364
|
if (!(0, directory_1.isInitialized)(resolvedRoot)) {
|
|
333
365
|
throw new Error(`HomeGraph not initialized in ${resolvedRoot}. Run init() first.`);
|
|
@@ -341,7 +373,7 @@ class HomeGraph {
|
|
|
341
373
|
const dbPath = (0, db_1.getDatabasePath)(resolvedRoot);
|
|
342
374
|
const db = db_1.DatabaseConnection.open(dbPath);
|
|
343
375
|
const queries = new queries_1.QueryBuilder(db.getDb());
|
|
344
|
-
return new HomeGraph(db, queries, resolvedRoot);
|
|
376
|
+
return new HomeGraph(db, queries, resolvedRoot, sources);
|
|
345
377
|
}
|
|
346
378
|
/**
|
|
347
379
|
* Check if a directory has been initialized as a HomeGraph project
|
|
@@ -364,6 +396,10 @@ class HomeGraph {
|
|
|
364
396
|
getProjectRoot() {
|
|
365
397
|
return this.projectRoot;
|
|
366
398
|
}
|
|
399
|
+
/** Effective graph sources for this open (`both` | `project` | `sdk`). */
|
|
400
|
+
getGraphSources() {
|
|
401
|
+
return this.graphSources;
|
|
402
|
+
}
|
|
367
403
|
// ===========================================================================
|
|
368
404
|
// Indexing
|
|
369
405
|
// ===========================================================================
|
|
@@ -668,6 +704,24 @@ class HomeGraph {
|
|
|
668
704
|
}, backpressure);
|
|
669
705
|
}
|
|
670
706
|
}
|
|
707
|
+
// Re-open resolution edges this sync may have invalidated ELSEWHERE in
|
|
708
|
+
// the repo. Everything above re-resolves references in the changed
|
|
709
|
+
// files; this covers the opposite direction — references in files the
|
|
710
|
+
// sync never touched whose answer depended on a definition that just
|
|
711
|
+
// appeared or disappeared. Without it a synced index never converges
|
|
712
|
+
// to a full rebuild. The resurrected refs are pending rows, so the
|
|
713
|
+
// orphan sweep immediately below is what resolves them — batched,
|
|
714
|
+
// yielding, multi-pass, exactly as a full index resolves.
|
|
715
|
+
//
|
|
716
|
+
// `definitionDelta` is empty for a body-only edit, so the overwhelmingly
|
|
717
|
+
// common sync pays one branch. HOMEGRAPH_NO_REBIND=1 disables it.
|
|
718
|
+
if (result.definitionDelta && process.env.HOMEGRAPH_NO_REBIND !== '1') {
|
|
719
|
+
const tRebind = Date.now();
|
|
720
|
+
const rebound = this.orchestrator.resurrectStaleResolutionEdges(result.definitionDelta, result.changedFilePaths ?? []);
|
|
721
|
+
if (process.env.HOMEGRAPH_SYNTH_TIMINGS) {
|
|
722
|
+
console.error(`[phase-timing] sync-rebind: ${Date.now() - tRebind}ms (${result.definitionDelta.length} changed names, ${rebound} edges re-opened)`);
|
|
723
|
+
}
|
|
724
|
+
}
|
|
671
725
|
const orphanCount = this.queries.getUnresolvedReferencesCount();
|
|
672
726
|
if (orphanCount > 0) {
|
|
673
727
|
options.onProgress?.({
|
|
@@ -950,6 +1004,7 @@ class HomeGraph {
|
|
|
950
1004
|
getStats() {
|
|
951
1005
|
const stats = this.queries.getStats();
|
|
952
1006
|
stats.dbSizeBytes = this.db.getSize();
|
|
1007
|
+
stats.walSizeBytes = this.db.getWalSizeBytes();
|
|
953
1008
|
return stats;
|
|
954
1009
|
}
|
|
955
1010
|
/**
|
|
@@ -1230,6 +1285,21 @@ class HomeGraph {
|
|
|
1230
1285
|
getIncomingEdges(nodeId) {
|
|
1231
1286
|
return this.queries.getIncomingEdges(nodeId);
|
|
1232
1287
|
}
|
|
1288
|
+
/**
|
|
1289
|
+
* ArkUI migrate / state-semantics snapshot for a scope (spec 0007).
|
|
1290
|
+
* Scope: component name, relative file path, or directory prefix.
|
|
1291
|
+
*/
|
|
1292
|
+
getArkUIMigrateSnapshot(scope) {
|
|
1293
|
+
return (0, migrate_snapshot_1.buildArkUIMigrateSnapshot)({
|
|
1294
|
+
getNodesByKind: (kind) => this.getNodesByKind(kind),
|
|
1295
|
+
getNodesByName: (name) => this.getNodesByName(name),
|
|
1296
|
+
getNodesInFile: (filePath) => this.getNodesInFile(filePath),
|
|
1297
|
+
getOutgoingEdges: (id) => this.getOutgoingEdges(id),
|
|
1298
|
+
getIncomingEdges: (id) => this.getIncomingEdges(id),
|
|
1299
|
+
getNode: (id) => this.getNode(id),
|
|
1300
|
+
getAllFiles: () => this.getFiles(),
|
|
1301
|
+
}, scope);
|
|
1302
|
+
}
|
|
1233
1303
|
// ===========================================================================
|
|
1234
1304
|
// File Operations
|
|
1235
1305
|
// ===========================================================================
|