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
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
|
package/dist/mcp/tools.d.ts
CHANGED
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type HomeGraph from '../index';
|
|
7
7
|
import type { QueryPool } from './query-pool';
|
|
8
|
+
export declare function __setLoadHomeGraphForTests(cls: typeof import('../index').default | null): void;
|
|
8
9
|
import type { PendingFile } from '../sync';
|
|
10
|
+
import { ExploreSessionState, type ExploreEmission } from './explore-session-state';
|
|
9
11
|
/**
|
|
10
12
|
* An expected, recoverable "homegraph can't serve this" condition — most
|
|
11
13
|
* importantly a project with no index. The dispatch catch converts these to
|
|
@@ -19,6 +21,9 @@ import type { PendingFile } from '../sync';
|
|
|
19
21
|
*/
|
|
20
22
|
export declare class NotIndexedError extends Error {
|
|
21
23
|
}
|
|
24
|
+
/** `HOMEGRAPH_SOURCES=none` (or equivalent) — success-shaped, not isError. */
|
|
25
|
+
export declare class GraphSourcesDisabledError extends Error {
|
|
26
|
+
}
|
|
22
27
|
/**
|
|
23
28
|
* A security refusal (sensitive system path). Stays `isError: true` WITHOUT
|
|
24
29
|
* retry guidance — abandoning this path is the desired agent reaction.
|
|
@@ -100,10 +105,20 @@ export declare function getExploreOutputBudget(fileCount: number): ExploreOutput
|
|
|
100
105
|
* Shrink explore ceilings for local-detail / no-flow named-symbol questions.
|
|
101
106
|
* Large repos otherwise dump ~24K related source that the agent then still
|
|
102
107
|
* greps/reads — the main token regression vs without-homegraph.
|
|
108
|
+
*
|
|
109
|
+
* Mechanism / cross-module flows also get a tighter ceiling: full 24K + a
|
|
110
|
+
* second explore/node/Read stack is what blows session tokens on "how is X
|
|
111
|
+
* implemented" questions even when the first answer was already enough.
|
|
103
112
|
*/
|
|
104
113
|
export declare function tightenExploreBudgetForQuery(budget: ExploreOutputBudget, query: string, opts?: {
|
|
105
114
|
hasFlowPath?: boolean;
|
|
106
115
|
}): ExploreOutputBudget;
|
|
116
|
+
/**
|
|
117
|
+
* Locator mid-lean mode (default ON): explore returns anchors + spine digests
|
|
118
|
+
* (~12K) — enough to avoid a Read storm, not a multi-file body dump.
|
|
119
|
+
* Set `HOMEGRAPH_EXPLORE_FULL_SOURCE=1` to restore the previous fatter Source.
|
|
120
|
+
*/
|
|
121
|
+
export declare function exploreLocatorDigestEnabled(): boolean;
|
|
107
122
|
/**
|
|
108
123
|
* Per-file staleness banner emitted at the top of a tool response when the
|
|
109
124
|
* file watcher has pending events for files referenced by the response.
|
|
@@ -187,13 +202,19 @@ export interface ToolResult {
|
|
|
187
202
|
text: string;
|
|
188
203
|
}>;
|
|
189
204
|
isError?: boolean;
|
|
205
|
+
/**
|
|
206
|
+
* Internal: what an explore call emitted (CG-17). {@link ToolHandler.execute}
|
|
207
|
+
* records it into the calling session's state and deletes it before the result
|
|
208
|
+
* reaches the wire — see {@link EXPLORE_EMISSION_KEY}.
|
|
209
|
+
*/
|
|
210
|
+
_hgExploreEmission?: ExploreEmission;
|
|
190
211
|
}
|
|
191
212
|
/**
|
|
192
213
|
* All HomeGraph MCP tools
|
|
193
214
|
*
|
|
194
|
-
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
215
|
+
* Prefer the smallest tool that answers: callers/node for one named symbol,
|
|
216
|
+
* explore for multi-file flows. Skip HomeGraph entirely for topic file-lists,
|
|
217
|
+
* concept compares, SDK catalogs, and literal greps.
|
|
197
218
|
*
|
|
198
219
|
* All tools support cross-project queries via the optional `projectPath` parameter.
|
|
199
220
|
*/
|
|
@@ -349,11 +370,53 @@ export declare class ToolHandler {
|
|
|
349
370
|
* Cost when nothing is pending — the common case — is one boolean check.
|
|
350
371
|
* No I/O, no parsing of markdown beyond a per-pending-file substring scan.
|
|
351
372
|
*/
|
|
373
|
+
private driftCache;
|
|
374
|
+
private static readonly DRIFT_TTL_MS;
|
|
375
|
+
/**
|
|
376
|
+
* On-disk drift check for a single indexed file (issue #1474). The code
|
|
377
|
+
* renderers slice CURRENT bytes at INDEXED line ranges; when the file
|
|
378
|
+
* changed after its last index sync those ranges can point at a DIFFERENT
|
|
379
|
+
* symbol's code. Freshness is verified here from data the index already
|
|
380
|
+
* stores: one stat() (size + mtime); content hashed only on mismatch.
|
|
381
|
+
*/
|
|
382
|
+
private isFileStaleOnDisk;
|
|
352
383
|
private withStalenessNotice;
|
|
353
384
|
/**
|
|
354
|
-
* Execute a tool by name
|
|
385
|
+
* Execute a tool by name.
|
|
386
|
+
*
|
|
387
|
+
* `sessionState` is the calling MCP session's explore history (CG-17). Omit
|
|
388
|
+
* it (the CLI does) and explore behaves exactly as before, untracked.
|
|
389
|
+
*/
|
|
390
|
+
execute(toolName: string, args: Record<string, unknown>, sessionState?: ExploreSessionState): Promise<ToolResult>;
|
|
391
|
+
/**
|
|
392
|
+
* Attach the caller's session view to an explore call's args (CG-17), on a
|
|
393
|
+
* COPY so the caller's object is never mutated. Nothing else sees it: a
|
|
394
|
+
* non-explore tool, or a caller with no session state, gets the args
|
|
395
|
+
* unchanged and pays nothing.
|
|
396
|
+
*
|
|
397
|
+
* A client that spells the internal key itself is stripped rather than
|
|
398
|
+
* trusted — the view decides what source a later call may withhold, so it has
|
|
399
|
+
* to come from the server's own record, never from the wire.
|
|
355
400
|
*/
|
|
356
|
-
|
|
401
|
+
private withSessionView;
|
|
402
|
+
/**
|
|
403
|
+
* After a counted Partial explore, refuse further `node` / callers / callees
|
|
404
|
+
* once the session's one allowed depth drill is spent.
|
|
405
|
+
*/
|
|
406
|
+
private tryDepthToolFuse;
|
|
407
|
+
/** Count a successful depth-tool call when the latest explore was Partial. */
|
|
408
|
+
private noteDepthToolUse;
|
|
409
|
+
/**
|
|
410
|
+
* Record an explore call's emission into the caller's session state and strip
|
|
411
|
+
* it from the result (CG-17).
|
|
412
|
+
*
|
|
413
|
+
* Unconditional strip: the property is internal, so it comes off even when
|
|
414
|
+
* there is no session state to record it into (the CLI path) — that is what
|
|
415
|
+
* keeps the agent-facing response byte-identical. Recording is wrapped
|
|
416
|
+
* because a bookkeeping bug must never fail a tool call that already
|
|
417
|
+
* succeeded.
|
|
418
|
+
*/
|
|
419
|
+
private takeExploreEmission;
|
|
357
420
|
/**
|
|
358
421
|
* Dispatch a read tool with a hard deadline under the typical ~60s MCP client
|
|
359
422
|
* timeout.
|
|
@@ -369,7 +432,7 @@ export declare class ToolHandler {
|
|
|
369
432
|
* the success-shaped reply never flushed → empty client `-32001`.
|
|
370
433
|
*/
|
|
371
434
|
private runReadToolWithDeadline;
|
|
372
|
-
/** Success-shaped busy note —
|
|
435
|
+
/** Success-shaped busy note — anchors from query when present; no DB. */
|
|
373
436
|
private deadlineBusyResult;
|
|
374
437
|
/**
|
|
375
438
|
* Run a single read tool to completion and return its raw {@link ToolResult},
|
|
@@ -486,7 +549,7 @@ export declare class ToolHandler {
|
|
|
486
549
|
private boundaryCandidates;
|
|
487
550
|
/**
|
|
488
551
|
* Import sites for @kit.* / *Kit module names — surfaces full `import { … } from '@kit.X'`
|
|
489
|
-
* lines. When the query also names
|
|
552
|
+
* lines. When the query also names an export/API token, only matching imports are listed.
|
|
490
553
|
*/
|
|
491
554
|
private buildImportSitesSection;
|
|
492
555
|
/**
|
|
@@ -494,9 +557,34 @@ export declare class ToolHandler {
|
|
|
494
557
|
*/
|
|
495
558
|
private buildCallerListingSection;
|
|
496
559
|
/**
|
|
497
|
-
*
|
|
560
|
+
* Multi-module / circular dependency survey — lean cycle list, not an import flood.
|
|
561
|
+
*/
|
|
562
|
+
private buildModuleDependencySurveySection;
|
|
563
|
+
/**
|
|
564
|
+
* Path-module / named-Type NAPI export surface — not a 50-file domain dump.
|
|
565
|
+
*/
|
|
566
|
+
private buildModuleExportSurveySection;
|
|
567
|
+
/**
|
|
568
|
+
* Named `.d.ts` wrap — where the basename is imported / called in-repo.
|
|
569
|
+
*/
|
|
570
|
+
private buildDtsWrapSurveySection;
|
|
571
|
+
/**
|
|
572
|
+
* Named Toggle/control state-sync — which files/modules mention the control
|
|
573
|
+
* (Type may be missing from FTS; seed stems + text scan).
|
|
498
574
|
*/
|
|
575
|
+
private buildNamedControlStateSyncSection;
|
|
499
576
|
private buildDataSourceSection;
|
|
577
|
+
/**
|
|
578
|
+
* Event-type inventory + which *Manager files import / handle them.
|
|
579
|
+
* Prefers enum members on the named `*Event` Type; softens ANSWER NOW when
|
|
580
|
+
* the graph only has noisy Type/file hits without a member list.
|
|
581
|
+
*/
|
|
582
|
+
private buildEventDispatchSection;
|
|
583
|
+
/**
|
|
584
|
+
* ≥3 named Types + dependency ask — file locations + cross-imports only.
|
|
585
|
+
* Avoids fat multi-body compact that hits the soft deadline (D60).
|
|
586
|
+
*/
|
|
587
|
+
private buildMultiTypeDependencySection;
|
|
500
588
|
/**
|
|
501
589
|
* Main-thread fast path for inventory surveys — skips the worker queue.
|
|
502
590
|
*/
|
|
@@ -515,11 +603,23 @@ export declare class ToolHandler {
|
|
|
515
603
|
* agent grep/read loops (token savings).
|
|
516
604
|
*/
|
|
517
605
|
private tryLightMechanismExplore;
|
|
606
|
+
/**
|
|
607
|
+
* Static AA class/interface nodes that look like domain Managers/Services.
|
|
608
|
+
*/
|
|
609
|
+
private collectDomainRoleSymbols;
|
|
610
|
+
private formatDomainRoleInventory;
|
|
611
|
+
/** Cap import bullets inside a light-mechanism response; prefer non-test paths. */
|
|
612
|
+
private trimLightImportSection;
|
|
518
613
|
/**
|
|
519
614
|
* Compact explore for local-symbol behavior questions — skips findRelevantContext
|
|
520
615
|
* and caps to 1–2 defining files (avoids the ~24K related-file dump).
|
|
521
616
|
*/
|
|
522
617
|
private tryCompactLocalSymbolExplore;
|
|
618
|
+
/**
|
|
619
|
+
* Hover / pointer-handler inventory — onHover / Hover* symbols + short snippets.
|
|
620
|
+
* Used when the agent asks about hover effects without naming a Type yet.
|
|
621
|
+
*/
|
|
622
|
+
private buildHoverHandlerSurveySection;
|
|
523
623
|
/**
|
|
524
624
|
* @kit module capability survey — repo import/usage only (SDK defs are not indexed).
|
|
525
625
|
*/
|
|
@@ -535,6 +635,16 @@ export declare class ToolHandler {
|
|
|
535
635
|
/**
|
|
536
636
|
* API call-site survey — where a named API/symbol (statfs, napi_*) appears in repo source.
|
|
537
637
|
*/
|
|
638
|
+
/**
|
|
639
|
+
* In-repo how-to for system settings/capabilities (language/locale/…).
|
|
640
|
+
* Lists concrete `@ohos.i18n` / `getSystemLanguage` call sites — not every
|
|
641
|
+
* file that mentions the word "language".
|
|
642
|
+
*/
|
|
643
|
+
private buildSystemCapabilityHowtoSection;
|
|
644
|
+
/**
|
|
645
|
+
* Declaration / id / native-binding sites for a named UI/native Type (XComponent…).
|
|
646
|
+
*/
|
|
647
|
+
private buildDeclarationSiteSurveySection;
|
|
538
648
|
private buildApiUsageSection;
|
|
539
649
|
/**
|
|
540
650
|
* Domain file inventory — related files, usage existence, or concept comparison.
|
|
@@ -583,6 +693,14 @@ export declare class ToolHandler {
|
|
|
583
693
|
* tax on small projects while earning its keep on large ones.
|
|
584
694
|
*/
|
|
585
695
|
private handleExplore;
|
|
696
|
+
/**
|
|
697
|
+
* An explore response plus the record of what it emitted (CG-17). The record
|
|
698
|
+
* rides the result only as far as {@link execute}, which files it into the
|
|
699
|
+
* calling session's state and deletes it — see {@link EXPLORE_EMISSION_KEY}.
|
|
700
|
+
*/
|
|
701
|
+
private exploreResult;
|
|
702
|
+
/** Attach a minimal session emission when a compact/light path used textResult. */
|
|
703
|
+
private ensureExploreEmission;
|
|
586
704
|
/**
|
|
587
705
|
* Handle homegraph_node
|
|
588
706
|
*/
|
|
@@ -603,6 +721,15 @@ export declare class ToolHandler {
|
|
|
603
721
|
private handleFileView;
|
|
604
722
|
/** Render one symbol: details + (optional) body/outline + its caller/callee trail. */
|
|
605
723
|
private renderNodeSection;
|
|
724
|
+
private static readonly STALE_WHOLE_FILE_MAX_LINES;
|
|
725
|
+
private static readonly STALE_WHOLE_FILE_MAX_CHARS;
|
|
726
|
+
/**
|
|
727
|
+
* homegraph_node render for a symbol whose file changed on disk after the
|
|
728
|
+
* last index sync (issue #1474). Indexed line ranges are untrustworthy, so
|
|
729
|
+
* no slice is emitted: small files get full CURRENT source; large ones get
|
|
730
|
+
* an explicit notice.
|
|
731
|
+
*/
|
|
732
|
+
private renderStaleNodeSection;
|
|
606
733
|
/**
|
|
607
734
|
* Build the "trail" for a symbol: its direct callees (what it calls) and
|
|
608
735
|
* callers (what calls it), each with file:line — so homegraph_node doubles as
|
|
@@ -617,6 +744,10 @@ export declare class ToolHandler {
|
|
|
617
744
|
* Handle homegraph_status
|
|
618
745
|
*/
|
|
619
746
|
private handleStatus;
|
|
747
|
+
/**
|
|
748
|
+
* Handle homegraph_arkui_migrate — one-shot ArkUI migrate / state snapshot (spec 0007).
|
|
749
|
+
*/
|
|
750
|
+
private handleArkuiMigrate;
|
|
620
751
|
/**
|
|
621
752
|
* Handle homegraph_files - get project file structure from the index
|
|
622
753
|
*/
|
|
@@ -690,6 +821,10 @@ export declare class ToolHandler {
|
|
|
690
821
|
* Python — `stage_apply::run` matches a `run` in `stage_apply.rs`)
|
|
691
822
|
*/
|
|
692
823
|
private matchesSymbol;
|
|
824
|
+
/**
|
|
825
|
+
* Generated-file demotion signal: path convention OR persisted content banner.
|
|
826
|
+
*/
|
|
827
|
+
private isGeneratedCandidate;
|
|
693
828
|
/**
|
|
694
829
|
* Find ALL definitions matching a name, ranked, so homegraph_node can return
|
|
695
830
|
* every overload instead of guessing one (the wrong guess → a Read). Keepers
|
|
@@ -710,6 +845,12 @@ export declare class ToolHandler {
|
|
|
710
845
|
private truncateOutput;
|
|
711
846
|
private formatSearchResults;
|
|
712
847
|
private formatNodeList;
|
|
848
|
+
/**
|
|
849
|
+
* At caller sites, list nearby `#include` / `import` lines — answers
|
|
850
|
+
* "which call makes Type X's definition visible" without a second Grep/Read
|
|
851
|
+
* when the agent only called `homegraph_callers`.
|
|
852
|
+
*/
|
|
853
|
+
private formatCallerIncludeVisibility;
|
|
713
854
|
/**
|
|
714
855
|
* Relationship label for a non-`calls` edge in callers/callees lists. A
|
|
715
856
|
* function-as-value edge (#756) is the high-signal one: `callers(cb)`
|
package/dist/mcp/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,SAAS,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAiB9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|