homegraph 1.5.2 → 1.5.3
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 +131 -0
- package/README.md +15 -8
- 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 +340 -0
- package/dist/arkui/migrate-snapshot.js.map +1 -0
- package/dist/bin/fatal-handler.js +2 -2
- package/dist/bin/homegraph.js +105 -156
- 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 +8 -3
- package/dist/db/sqlite-adapter.d.ts.map +1 -1
- package/dist/db/sqlite-adapter.js +45 -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 +19 -2
- package/dist/extraction/languages/arkts.d.ts.map +1 -1
- package/dist/extraction/languages/arkts.js +460 -110
- 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 +19 -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-session-state.d.ts +217 -0
- package/dist/mcp/explore-session-state.d.ts.map +1 -0
- package/dist/mcp/explore-session-state.js +322 -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 +5 -14
- package/dist/mcp/proxy.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 +7 -2
- package/dist/mcp/server-instructions.d.ts.map +1 -1
- package/dist/mcp/server-instructions.js +104 -28
- 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 +117 -7
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +3056 -503
- package/dist/mcp/tools.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 +116 -4
- package/dist/search/query-utils.d.ts.map +1 -1
- package/dist/search/query-utils.js +869 -60
- package/dist/search/query-utils.js.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 +12 -8
- 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,9 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
+
|
|
2
3
|
* Server-level instructions emitted in the MCP `initialize` response.
|
|
4
|
+
|
|
3
5
|
*
|
|
6
|
+
|
|
4
7
|
* Single source of truth for agent-facing tool guidance (issue #529).
|
|
8
|
+
|
|
5
9
|
* Edit here — not installer prompts or eval harness prompts.
|
|
10
|
+
|
|
6
11
|
*/
|
|
7
|
-
export declare const SERVER_INSTRUCTIONS = "# HomeGraph \u2014 when to call\n\nHomeGraph is a **local structural index of THIS repo**: symbols + call/import/extends edges + files. Use it
|
|
8
|
-
export declare const SERVER_INSTRUCTIONS_NO_ROOT_INDEX = "# HomeGraph \u2014 per-project (pass projectPath)\n\nHomeGraph indexes a codebase into a symbol graph.
|
|
12
|
+
export declare const SERVER_INSTRUCTIONS = "# HomeGraph \u2014 when to call\n\n\n\nHomeGraph is a **local structural index of THIS repo**: symbols + call/import/extends edges + files. Use it when the answer needs that graph.\n\n\n\n## Call HomeGraph first (do this before Grep/Read)\n\n\n\nFor these shapes, open `homegraph_explore` **immediately** \u2014 do **not** Grep/Glob/Read first (and do **not** parallel-Grep on the same turn):\n\n\n\n- How / mechanism / wiring in this repo. Domain keywords in `query` are enough \u2014 no PascalCase names required first.\n\n- **How to get** a system setting / capability **as used in this repo** \u2014 explore with the question (domain keywords OK); do not Grep-first\n\n- **Named** Type / Component / Page / Dialog / `Type.member` / Type + co-named methods (`CanPlace`/`Place` \u2194 owner) already in the question\n\n- Callers / callees / blast radius / subtypes of a **named** symbol\n\n- **In-repo usages / dependencies** of a named API, `.member` (incl. `.drawModifier` / DrawContext), ALL_CAPS constant, field/mutex (incl. where `m_*` is `new`/`delete`'d), or `@kit`/`@ohos` import \u2014 including \"does calling Kit X need other deps?\" / `oh-package` install questions\n\n- **Declaration / attribute sites** of a named Type (which files declare it, ids, native bindings) \u2014 English rewrites OK (`declaration` / `id` / `binding`)\n\n- **Who uses the return value** of a named member/fn (incl. after \u901A\u8FC7/via) \u2014 explore; prefer that member's callers, not a preceding create/factory or SDK `.d.ts`\n\n- Path-module / named-Type **NAPI** export surfaces (not a topic file-list), multi-module interdependence, or **circular deps** among named `*common` / path modules\n\n- Named `.d.ts` wrap + where it is imported/called\n\n- **ALL_CAPS / enum member** usages (`FOO_BAR` / `Type.MEMBER`) \u2014 explore, not Grep-first\n\n- **Type + listed methods** callers (`BinaryGrid` Set/Test/Fill) \u2014 explore caller inventory\n\n- **Field/mutex co-use** (`m_*` / `*Mutex` with co-named methods) \u2014 explore; do not Grep the field name\n\n- **Assigned flag impact** (`flag = true` \u2026 how it affects later timing) \u2014 explore the assignment site\n\n- **Named Toggle/control state sync** across surfaces \u2014 explore\n\n- **`lib*.so` + GLES/EGL / OpenGL thread** (vs UI/JS thread) \u2014 explore; do not bash/grep CMake first\n\n- **Step / download\u2192parse\u2192install call-chains** (\"\u4F1A\u8D70\u5230\u54EA\u4E9B\u4EE3\u7801\") \u2014 explore as mechanism, not a topic file-list\n\n- Co-named **call + visibility** questions (who calls X / how Y becomes visible) \u2014 `homegraph_explore`, not `homegraph_callers` alone / not light-mechanism\n\n- **Conditional wiring** on a named `Type::method` / `Export` (\"\u5931\u8D25\u65F6\u8FD8\u4F1A\u2026\") \u2014 explore/node the method body first\n\n\n\nAfter one explore \u2192 **answer**. Do not re-verify with Grep/Read/node for the same symbols.\n\nDo **not** follow a successful explore with `homegraph_files` / another explore of the same bag.\n\nDo **not** open SDK `.d.ts` stubs when the inventory already says in-repo sites (or zero in-repo sites).\n\n\n\nPrefer the **smallest** tool when the name is already known: `homegraph_callers` / `homegraph_callees` / `homegraph_node` for one symbol; `homegraph_explore` for multi-file / how-wired / usage inventories (prefer explore over `homegraph_files` for structural questions); `homegraph_search` only for unknown spelling.\n\nFor **ArkUI V1\u2194V2 migration / state-decorator / Provide\u00B7Consume\u00B7Storage key / @Observed** decisions on a named component or file, call `homegraph_arkui_migrate` **once** (scope = component name or `.ets` path) \u2014 do **not** stitch those facts with explore.\n\n## Do not call HomeGraph (skip \u2192 Grep / Glob / Read / SDK docs)\n\n\n\nOpen **zero** `homegraph_*` tools when:\n\n\n\n- **Topic \u2192 file list** with no concrete Type / file basename / constant / path\n\n- **Existence / concept / pure UI behavior** with no named in-repo Type, file, or `@kit`/`@ohos` target\n\n- **Literal / layout copy hunts** (\u5168\u641C\u6587\u6848\u3001\u5B57\u9762\u91CF) with no code anchors\n\n- **Official SDK / `@kit` feature catalogs** (what APIs a kit *provides*) \u2014 opposite of in-repo *usages*\n\n- Evidence lives only in **external manuals**\n\n\n\n`@kit` **usages in this repo** \u2260 SDK catalog. Usages \u2192 explore. Catalogs \u2192 SDK docs.\n\n\n\nIf explore/search returns **Skip HomeGraph**, treat as final \u2014 do not retry homegraph_*.\n\n\n\n## Tips\n\n\n\n- Busy/partial \u2192 retry that **same** explore once; then answer.\n\n- **Staleness banner** \u2014 Read only the listed edited files.\n\n- **A file flagged \"\u26A0 changed on disk after the last index sync\" drifted from its index** (most common on projects queried via `projectPath`, which have no live watcher). HomeGraph never serves a possibly-mis-sliced body from such a file \u2014 it either shows the file's full CURRENT source (trust it as a Read) or omits the source with this flag. When the source was omitted, Read that specific file; line numbers referencing it elsewhere in the response may be shifted until that project's next sync. All unflagged files remain trustworthy.\n\n- **Not indexed** \u2014 built-in tools; user runs `homegraph init` \u2014 you do not.\n\n";
|
|
13
|
+
export declare const SERVER_INSTRUCTIONS_NO_ROOT_INDEX = "# HomeGraph \u2014 per-project (pass projectPath)\n\n\n\nHomeGraph indexes a codebase into a symbol graph. Pass `projectPath` to a project with `.homegraph/`.\n\n\n\n- How/mechanism/wiring, named Type/Component/`Type.member`, declaration/usage inventories, constants/fields, path NAPI/deps, in-repo `@kit` usages \u2192 `homegraph_explore` first (no Grep-first)\n\n- Topic file-lists, concept compares, literal copy hunts, SDK *catalogs* \u2192 Read/Grep/Glob \u2014 **do not call homegraph_***\n\n- No index \u2192 Read/Grep/Glob; user runs `homegraph init` if they want indexing\n\n";
|
|
9
14
|
//# sourceMappingURL=server-instructions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-instructions.d.ts","sourceRoot":"","sources":["../../src/mcp/server-instructions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"server-instructions.d.ts","sourceRoot":"","sources":["../../src/mcp/server-instructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,eAAO,MAAM,mBAAmB,quKA0G/B,CAAC;AAIF,eAAO,MAAM,iCAAiC,6kBAc7C,CAAC"}
|
|
@@ -1,61 +1,137 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
+
|
|
3
4
|
* Server-level instructions emitted in the MCP `initialize` response.
|
|
5
|
+
|
|
4
6
|
*
|
|
7
|
+
|
|
5
8
|
* Single source of truth for agent-facing tool guidance (issue #529).
|
|
9
|
+
|
|
6
10
|
* Edit here — not installer prompts or eval harness prompts.
|
|
11
|
+
|
|
7
12
|
*/
|
|
8
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
14
|
exports.SERVER_INSTRUCTIONS_NO_ROOT_INDEX = exports.SERVER_INSTRUCTIONS = void 0;
|
|
10
15
|
exports.SERVER_INSTRUCTIONS = `# HomeGraph — when to call
|
|
11
16
|
|
|
12
|
-
HomeGraph is a **local structural index of THIS repo**: symbols + call/import/extends edges + files. Use it only when the answer needs that graph.
|
|
13
17
|
|
|
14
|
-
## Call HomeGraph (closed set)
|
|
15
18
|
|
|
16
|
-
|
|
19
|
+
HomeGraph is a **local structural index of THIS repo**: symbols + call/import/extends edges + files. Use it when the answer needs that graph.
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## Call HomeGraph first (do this before Grep/Read)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
For these shapes, open \`homegraph_explore\` **immediately** — do **not** Grep/Glob/Read first (and do **not** parallel-Grep on the same turn):
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
- How / mechanism / wiring in this repo. Domain keywords in \`query\` are enough — no PascalCase names required first.
|
|
32
|
+
|
|
33
|
+
- **How to get** a system setting / capability **as used in this repo** — explore with the question (domain keywords OK); do not Grep-first
|
|
34
|
+
|
|
35
|
+
- **Named** Type / Component / Page / Dialog / \`Type.member\` / Type + co-named methods (\`CanPlace\`/\`Place\` ↔ owner) already in the question
|
|
36
|
+
|
|
37
|
+
- Callers / callees / blast radius / subtypes of a **named** symbol
|
|
38
|
+
|
|
39
|
+
- **In-repo usages / dependencies** of a named API, \`.member\` (incl. \`.drawModifier\` / DrawContext), ALL_CAPS constant, field/mutex (incl. where \`m_*\` is \`new\`/\`delete\`'d), or \`@kit\`/\`@ohos\` import — including "does calling Kit X need other deps?" / \`oh-package\` install questions
|
|
40
|
+
|
|
41
|
+
- **Declaration / attribute sites** of a named Type (which files declare it, ids, native bindings) — English rewrites OK (\`declaration\` / \`id\` / \`binding\`)
|
|
42
|
+
|
|
43
|
+
- **Who uses the return value** of a named member/fn (incl. after 通过/via) — explore; prefer that member's callers, not a preceding create/factory or SDK \`.d.ts\`
|
|
44
|
+
|
|
45
|
+
- Path-module / named-Type **NAPI** export surfaces (not a topic file-list), multi-module interdependence, or **circular deps** among named \`*common\` / path modules
|
|
46
|
+
|
|
47
|
+
- Named \`.d.ts\` wrap + where it is imported/called
|
|
48
|
+
|
|
49
|
+
- **ALL_CAPS / enum member** usages (\`FOO_BAR\` / \`Type.MEMBER\`) — explore, not Grep-first
|
|
50
|
+
|
|
51
|
+
- **Type + listed methods** callers (\`BinaryGrid\` Set/Test/Fill) — explore caller inventory
|
|
52
|
+
|
|
53
|
+
- **Field/mutex co-use** (\`m_*\` / \`*Mutex\` with co-named methods) — explore; do not Grep the field name
|
|
54
|
+
|
|
55
|
+
- **Assigned flag impact** (\`flag = true\` … how it affects later timing) — explore the assignment site
|
|
56
|
+
|
|
57
|
+
- **Named Toggle/control state sync** across surfaces — explore
|
|
58
|
+
|
|
59
|
+
- **\`lib*.so\` + GLES/EGL / OpenGL thread** (vs UI/JS thread) — explore; do not bash/grep CMake first
|
|
60
|
+
|
|
61
|
+
- **Step / download→parse→install call-chains** ("会走到哪些代码") — explore as mechanism, not a topic file-list
|
|
62
|
+
|
|
63
|
+
- Co-named **call + visibility** questions (who calls X / how Y becomes visible) — \`homegraph_explore\`, not \`homegraph_callers\` alone / not light-mechanism
|
|
64
|
+
|
|
65
|
+
- **Conditional wiring** on a named \`Type::method\` / \`Export\` ("失败时还会…") — explore/node the method body first
|
|
66
|
+
|
|
17
67
|
|
|
18
|
-
1. The evidence lives **in this repository's source** (not an external SDK manual).
|
|
19
|
-
2. You need **structure**: definition location, who calls whom, how A reaches B, multi-file wiring, or in-repo import/usage of a named API/\`@kit\` module.
|
|
20
|
-
3. You can put **concrete names** in \`query\` — symbol, \`Type.member\`, file basename, or \`@kit…\` (skip \`homegraph_search\` when names are already known).
|
|
21
68
|
|
|
22
|
-
|
|
69
|
+
After one explore → **answer**. Do not re-verify with Grep/Read/node for the same symbols.
|
|
23
70
|
|
|
24
|
-
|
|
25
|
-
- Callers / callees / blast radius of a **named** symbol
|
|
26
|
-
- What a **named component/method** does (include the name; one explore is enough)
|
|
27
|
-
- In-repo usages of an imported API (not the official feature catalog)
|
|
71
|
+
Do **not** follow a successful explore with \`homegraph_files\` / another explore of the same bag.
|
|
28
72
|
|
|
29
|
-
**
|
|
73
|
+
Do **not** open SDK \`.d.ts\` stubs when the inventory already says in-repo sites (or zero in-repo sites).
|
|
30
74
|
|
|
31
|
-
## Do not call HomeGraph otherwise
|
|
32
75
|
|
|
33
|
-
If the question is **outside the set above**, do **not** open any \`homegraph_*\` tool — use Read / Grep / Glob / SDK docs. HomeGraph is not a general Q&A layer; forcing it on the wrong shape costs time and tokens and often lowers quality.
|
|
34
76
|
|
|
35
|
-
|
|
77
|
+
Prefer the **smallest** tool when the name is already known: \`homegraph_callers\` / \`homegraph_callees\` / \`homegraph_node\` for one symbol; \`homegraph_explore\` for multi-file / how-wired / usage inventories (prefer explore over \`homegraph_files\` for structural questions); \`homegraph_search\` only for unknown spelling.
|
|
78
|
+
|
|
79
|
+
For **ArkUI V1↔V2 migration / state-decorator / Provide·Consume·Storage key / @Observed** decisions on a named component or file, call \`homegraph_arkui_migrate\` **once** (scope = component name or \`.ets\` path) — do **not** stitch those facts with explore.
|
|
80
|
+
|
|
81
|
+
## Do not call HomeGraph (skip → Grep / Glob / Read / SDK docs)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
Open **zero** \`homegraph_*\` tools when:
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
- **Topic → file list** with no concrete Type / file basename / constant / path
|
|
90
|
+
|
|
91
|
+
- **Existence / concept / pure UI behavior** with no named in-repo Type, file, or \`@kit\`/\`@ohos\` target
|
|
92
|
+
|
|
93
|
+
- **Literal / layout copy hunts** (全搜文案、字面量) with no code anchors
|
|
94
|
+
|
|
95
|
+
- **Official SDK / \`@kit\` feature catalogs** (what APIs a kit *provides*) — opposite of in-repo *usages*
|
|
96
|
+
|
|
97
|
+
- Evidence lives only in **external manuals**
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
\`@kit\` **usages in this repo** ≠ SDK catalog. Usages → explore. Catalogs → SDK docs.
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
If explore/search returns **Skip HomeGraph**, treat as final — do not retry homegraph_*.
|
|
106
|
+
|
|
36
107
|
|
|
37
|
-
| Tool | Role |
|
|
38
|
-
|------|------|
|
|
39
|
-
| **homegraph_explore** | Primary for the closed set above |
|
|
40
|
-
| homegraph_diff_impact | PR/diff review: unified \`diff\` or \`hunks\` → changed symbols (line∩span) + capped callers/impact/UI edges |
|
|
41
|
-
| homegraph_node | One known symbol body (or indexed file) after explore named it |
|
|
42
|
-
| homegraph_callers / callees | Compact edge lists for a named symbol |
|
|
43
|
-
| homegraph_impact | Blast radius for one named symbol (not a whole PR) |
|
|
44
|
-
| homegraph_search | Rare — unknown spelling only |
|
|
45
|
-
| homegraph_files | Folder tree only |
|
|
46
108
|
|
|
47
109
|
## Tips
|
|
48
110
|
|
|
49
|
-
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
- Busy/partial → retry that **same** explore once; then answer.
|
|
114
|
+
|
|
50
115
|
- **Staleness banner** — Read only the listed edited files.
|
|
116
|
+
|
|
117
|
+
- **A file flagged "⚠ changed on disk after the last index sync" drifted from its index** (most common on projects queried via \`projectPath\`, which have no live watcher). HomeGraph never serves a possibly-mis-sliced body from such a file — it either shows the file's full CURRENT source (trust it as a Read) or omits the source with this flag. When the source was omitted, Read that specific file; line numbers referencing it elsewhere in the response may be shifted until that project's next sync. All unflagged files remain trustworthy.
|
|
118
|
+
|
|
51
119
|
- **Not indexed** — built-in tools; user runs \`homegraph init\` — you do not.
|
|
120
|
+
|
|
52
121
|
`;
|
|
53
122
|
exports.SERVER_INSTRUCTIONS_NO_ROOT_INDEX = `# HomeGraph — per-project (pass projectPath)
|
|
54
123
|
|
|
55
|
-
HomeGraph indexes a codebase into a symbol graph. Call it **only** for in-repo structural / flow / usage questions on a project that has \`.homegraph/\`. Pass that project as \`projectPath\`.
|
|
56
124
|
|
|
57
|
-
|
|
58
|
-
|
|
125
|
+
|
|
126
|
+
HomeGraph indexes a codebase into a symbol graph. Pass \`projectPath\` to a project with \`.homegraph/\`.
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
- How/mechanism/wiring, named Type/Component/\`Type.member\`, declaration/usage inventories, constants/fields, path NAPI/deps, in-repo \`@kit\` usages → \`homegraph_explore\` first (no Grep-first)
|
|
131
|
+
|
|
132
|
+
- Topic file-lists, concept compares, literal copy hunts, SDK *catalogs* → Read/Grep/Glob — **do not call homegraph_***
|
|
133
|
+
|
|
59
134
|
- No index → Read/Grep/Glob; user runs \`homegraph init\` if they want indexing
|
|
135
|
+
|
|
60
136
|
`;
|
|
61
137
|
//# sourceMappingURL=server-instructions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../../src/mcp/server-instructions.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../../src/mcp/server-instructions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAIU,QAAA,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0GlC,CAAC;AAIW,QAAA,iCAAiC,GAAG;;;;;;;;;;;;;;CAchD,CAAC"}
|
package/dist/mcp/session.d.ts
CHANGED
|
@@ -9,10 +9,11 @@
|
|
|
9
9
|
*
|
|
10
10
|
* The state-machine itself mirrors what `MCPServer` used to do inline before
|
|
11
11
|
* issue #411 split it out — the same regression tests in
|
|
12
|
-
* `
|
|
12
|
+
* `test/mcp-initialize.test.ts` still drive this code path.
|
|
13
13
|
*/
|
|
14
14
|
import { JsonRpcTransport } from './transport';
|
|
15
15
|
import { MCPEngine } from './engine';
|
|
16
|
+
import { ExploreSessionState } from './explore-session-state';
|
|
16
17
|
/**
|
|
17
18
|
* MCP Server Info — kept on the session because some clients log it. The
|
|
18
19
|
* version tracks the real package version (was a hard-coded '0.1.0').
|
|
@@ -53,11 +54,15 @@ export declare class MCPSession {
|
|
|
53
54
|
private transport;
|
|
54
55
|
private engine;
|
|
55
56
|
private clientSupportsRoots;
|
|
56
|
-
/** From the initialize handshake — attributes usage rollups to the agent host. */
|
|
57
|
-
private clientInfo;
|
|
58
57
|
private rootsAttempted;
|
|
59
58
|
private resolvePromise;
|
|
60
59
|
private explicitProjectPath;
|
|
60
|
+
/**
|
|
61
|
+
* Per-session explore history (CG-17). Lives here — not on ToolHandler —
|
|
62
|
+
* because the daemon shares one handler across every connected session; a
|
|
63
|
+
* reconnecting client starts clean.
|
|
64
|
+
*/
|
|
65
|
+
private readonly exploreSession;
|
|
61
66
|
constructor(transport: JsonRpcTransport, engine: MCPEngine, opts?: MCPSessionOptions);
|
|
62
67
|
/**
|
|
63
68
|
* Start handling messages from the transport. Returns immediately — the
|
|
@@ -71,6 +76,12 @@ export declare class MCPSession {
|
|
|
71
76
|
stop(): void;
|
|
72
77
|
/** Underlying transport — exposed for daemon-side close hooks. */
|
|
73
78
|
getTransport(): JsonRpcTransport;
|
|
79
|
+
/**
|
|
80
|
+
* This session's explore call history. Exposed so tests / diagnostics can
|
|
81
|
+
* inspect it; tool dispatch reaches it via the execute(sessionState) arg —
|
|
82
|
+
* never by reaching for another session's copy.
|
|
83
|
+
*/
|
|
84
|
+
getExploreSessionState(): ExploreSessionState;
|
|
74
85
|
private handleMessage;
|
|
75
86
|
private handleInitialize;
|
|
76
87
|
private handleToolsList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAuC,gBAAgB,EAAc,MAAM,aAAa,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAuC,gBAAgB,EAAc,MAAM,aAAa,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAMrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;GAGG;AAGH,eAAO,MAAM,WAAW;;;CAGvB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,IAAwB,GAAG,MAAM,CAMtG;AAED,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAmC7C,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;;GAGG;AACH,qBAAa,UAAU;IAanB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;IAbhB,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,mBAAmB,CAAgB;IAC3C;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;gBAGlD,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,SAAS,EACzB,IAAI,GAAE,iBAAsB;IAK9B;;;OAGG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,IAAI,IAAI,IAAI;IAIZ,kEAAkE;IAClE,YAAY,IAAI,gBAAgB;IAIhC;;;;OAIG;IACH,sBAAsB,IAAI,mBAAmB;YAI/B,aAAa;YA0Cb,gBAAgB;YAmDhB,eAAe;YAkBf,eAAe;IAiC7B;;;;;;;OAOG;YACW,iBAAiB;IAyB/B;;;OAGG;YACW,aAAa;CAgB5B"}
|
package/dist/mcp/session.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* The state-machine itself mirrors what `MCPServer` used to do inline before
|
|
12
12
|
* issue #411 split it out — the same regression tests in
|
|
13
|
-
* `
|
|
13
|
+
* `test/mcp-initialize.test.ts` still drive this code path.
|
|
14
14
|
*/
|
|
15
15
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
16
16
|
if (k2 === undefined) k2 = k;
|
|
@@ -54,8 +54,8 @@ const tools_1 = require("./tools");
|
|
|
54
54
|
const server_instructions_1 = require("./server-instructions");
|
|
55
55
|
const version_1 = require("./version");
|
|
56
56
|
const directory_1 = require("../directory");
|
|
57
|
-
const telemetry_1 = require("../telemetry");
|
|
58
57
|
const update_check_1 = require("../upgrade/update-check");
|
|
58
|
+
const explore_session_state_1 = require("./explore-session-state");
|
|
59
59
|
/**
|
|
60
60
|
* MCP Server Info — kept on the session because some clients log it. The
|
|
61
61
|
* version tracks the real package version (was a hard-coded '0.1.0').
|
|
@@ -129,11 +129,15 @@ class MCPSession {
|
|
|
129
129
|
transport;
|
|
130
130
|
engine;
|
|
131
131
|
clientSupportsRoots = false;
|
|
132
|
-
/** From the initialize handshake — attributes usage rollups to the agent host. */
|
|
133
|
-
clientInfo;
|
|
134
132
|
rootsAttempted = false;
|
|
135
133
|
resolvePromise = null;
|
|
136
134
|
explicitProjectPath;
|
|
135
|
+
/**
|
|
136
|
+
* Per-session explore history (CG-17). Lives here — not on ToolHandler —
|
|
137
|
+
* because the daemon shares one handler across every connected session; a
|
|
138
|
+
* reconnecting client starts clean.
|
|
139
|
+
*/
|
|
140
|
+
exploreSession = new explore_session_state_1.ExploreSessionState();
|
|
137
141
|
constructor(transport, engine, opts = {}) {
|
|
138
142
|
this.transport = transport;
|
|
139
143
|
this.engine = engine;
|
|
@@ -157,6 +161,14 @@ class MCPSession {
|
|
|
157
161
|
getTransport() {
|
|
158
162
|
return this.transport;
|
|
159
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* This session's explore call history. Exposed so tests / diagnostics can
|
|
166
|
+
* inspect it; tool dispatch reaches it via the execute(sessionState) arg —
|
|
167
|
+
* never by reaching for another session's copy.
|
|
168
|
+
*/
|
|
169
|
+
getExploreSessionState() {
|
|
170
|
+
return this.exploreSession;
|
|
171
|
+
}
|
|
160
172
|
async handleMessage(message) {
|
|
161
173
|
const isRequest = 'id' in message;
|
|
162
174
|
switch (message.method) {
|
|
@@ -204,12 +216,6 @@ class MCPSession {
|
|
|
204
216
|
async handleInitialize(request) {
|
|
205
217
|
const params = request.params;
|
|
206
218
|
this.clientSupportsRoots = !!params?.capabilities?.roots;
|
|
207
|
-
if (params?.clientInfo) {
|
|
208
|
-
this.clientInfo = {
|
|
209
|
-
name: typeof params.clientInfo.name === 'string' ? params.clientInfo.name : undefined,
|
|
210
|
-
version: typeof params.clientInfo.version === 'string' ? params.clientInfo.version : undefined,
|
|
211
|
-
};
|
|
212
|
-
}
|
|
213
219
|
// Explicit project signal, strongest first: client-provided rootUri /
|
|
214
220
|
// workspaceFolders (LSP-style), else the --path the server was launched
|
|
215
221
|
// with. cwd is NOT used here — we defer it so a roots/list answer can
|
|
@@ -285,13 +291,10 @@ class MCPSession {
|
|
|
285
291
|
await this.retryInitIfNeeded();
|
|
286
292
|
if (process.env.HOMEGRAPH_MCP_DEBUG)
|
|
287
293
|
process.stderr.write(`[mcp-debug] toolsCall ${toolName} id=${String(request.id)} dispatch\n`);
|
|
288
|
-
const result = await this.engine.getToolHandler().execute(toolName, toolArgs);
|
|
294
|
+
const result = await this.engine.getToolHandler().execute(toolName, toolArgs, this.exploreSession);
|
|
289
295
|
if (process.env.HOMEGRAPH_MCP_DEBUG)
|
|
290
296
|
process.stderr.write(`[mcp-debug] toolsCall ${toolName} id=${String(request.id)} done\n`);
|
|
291
297
|
this.transport.sendResult(request.id, result);
|
|
292
|
-
// After the reply is on the wire — telemetry must never delay a tool
|
|
293
|
-
// response (in-memory increment only; see src/telemetry).
|
|
294
|
-
(0, telemetry_1.getTelemetry)().recordUsage('mcp_tool', toolName, !result.isError, this.clientInfo);
|
|
295
298
|
}
|
|
296
299
|
/**
|
|
297
300
|
* Lazy default-project resolution. Three layers:
|
package/dist/mcp/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCH,wDAMC;AAxCD,2CAA6B;AAC7B,2CAAgG;AAEhG,mCAAgC;AAChC,+DAA+F;AAC/F,uCAAoD;AACpD,4CAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Never-initialized backstop for `serve
|
|
2
|
+
* Never-initialized backstop for `serve mcp` (#1185).
|
|
3
3
|
*
|
|
4
4
|
* Every real MCP host sends `initialize` immediately after spawning a server.
|
|
5
5
|
* A server that has received NO bytes at all for many minutes is not serving
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Never-initialized backstop for `serve
|
|
3
|
+
* Never-initialized backstop for `serve mcp` (#1185).
|
|
4
4
|
*
|
|
5
5
|
* Every real MCP host sends `initialize` immediately after spawning a server.
|
|
6
6
|
* A server that has received NO bytes at all for many minutes is not serving
|