homegraph 1.5.6 → 1.5.7

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.
Files changed (52) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +10 -4
  3. package/dist/context/index.d.ts.map +1 -1
  4. package/dist/context/index.js +120 -15
  5. package/dist/context/index.js.map +1 -1
  6. package/dist/extraction/languages/arkts.d.ts +25 -3
  7. package/dist/extraction/languages/arkts.d.ts.map +1 -1
  8. package/dist/extraction/languages/arkts.js +184 -22
  9. package/dist/extraction/languages/arkts.js.map +1 -1
  10. package/dist/mcp/evidence-rendering.d.ts +10 -0
  11. package/dist/mcp/evidence-rendering.d.ts.map +1 -0
  12. package/dist/mcp/evidence-rendering.js +71 -0
  13. package/dist/mcp/evidence-rendering.js.map +1 -0
  14. package/dist/mcp/explore-repeat-guard.d.ts +8 -13
  15. package/dist/mcp/explore-repeat-guard.d.ts.map +1 -1
  16. package/dist/mcp/explore-repeat-guard.js +54 -114
  17. package/dist/mcp/explore-repeat-guard.js.map +1 -1
  18. package/dist/mcp/explore-session-state.d.ts +26 -4
  19. package/dist/mcp/explore-session-state.d.ts.map +1 -1
  20. package/dist/mcp/explore-session-state.js +50 -4
  21. package/dist/mcp/explore-session-state.js.map +1 -1
  22. package/dist/mcp/query-cache.d.ts +1 -1
  23. package/dist/mcp/query-cache.d.ts.map +1 -1
  24. package/dist/mcp/query-cache.js +86 -3
  25. package/dist/mcp/query-cache.js.map +1 -1
  26. package/dist/mcp/server-instructions.d.ts +2 -2
  27. package/dist/mcp/server-instructions.d.ts.map +1 -1
  28. package/dist/mcp/server-instructions.js +34 -21
  29. package/dist/mcp/server-instructions.js.map +1 -1
  30. package/dist/mcp/tools.d.ts +19 -3
  31. package/dist/mcp/tools.d.ts.map +1 -1
  32. package/dist/mcp/tools.js +690 -107
  33. package/dist/mcp/tools.js.map +1 -1
  34. package/dist/search/literal-evidence.d.ts +44 -0
  35. package/dist/search/literal-evidence.d.ts.map +1 -0
  36. package/dist/search/literal-evidence.js +278 -0
  37. package/dist/search/literal-evidence.js.map +1 -0
  38. package/dist/search/query-plan-provider.d.ts +6 -0
  39. package/dist/search/query-plan-provider.d.ts.map +1 -0
  40. package/dist/search/query-plan-provider.js +289 -0
  41. package/dist/search/query-plan-provider.js.map +1 -0
  42. package/dist/search/query-plan.d.ts +98 -0
  43. package/dist/search/query-plan.d.ts.map +1 -0
  44. package/dist/search/query-plan.js +334 -0
  45. package/dist/search/query-plan.js.map +1 -0
  46. package/dist/search/query-utils.d.ts +6 -1
  47. package/dist/search/query-utils.d.ts.map +1 -1
  48. package/dist/search/query-utils.js +64 -5
  49. package/dist/search/query-utils.js.map +1 -1
  50. package/dist/types.d.ts +17 -0
  51. package/dist/types.d.ts.map +1 -1
  52. package/package.json +1 -1
@@ -0,0 +1,10 @@
1
+ import type { Node } from '../types';
2
+ /** Multiple parser roles for one source declaration are not overloads. */
3
+ export declare function canonicalSourceDeclarations(nodes: Node[]): Node[];
4
+ /** Guidance describes retrieval; it must never close the host's coding task.
5
+ * Source fences are byte-preserved, including strings that resemble guidance.
6
+ */
7
+ export declare function neutralRetrievalGuidance(text: string): string;
8
+ /** Preserve complete lines at a shared output limit; never forge a full body. */
9
+ export declare function trimEvidenceAtLine(text: string, limit: number): string;
10
+ //# sourceMappingURL=evidence-rendering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-rendering.d.ts","sourceRoot":"","sources":["../../src/mcp/evidence-rendering.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC,0EAA0E;AAC1E,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAcjE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsB7D;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQtE"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.canonicalSourceDeclarations = canonicalSourceDeclarations;
4
+ exports.neutralRetrievalGuidance = neutralRetrievalGuidance;
5
+ exports.trimEvidenceAtLine = trimEvidenceAtLine;
6
+ /** Multiple parser roles for one source declaration are not overloads. */
7
+ function canonicalSourceDeclarations(nodes) {
8
+ const out = [];
9
+ const roles = new Map();
10
+ const ids = new Set();
11
+ for (const node of nodes) {
12
+ if (ids.has(node.id))
13
+ continue;
14
+ ids.add(node.id);
15
+ if (node.kind !== 'struct' && node.kind !== 'component') {
16
+ out.push(node);
17
+ continue;
18
+ }
19
+ const key = `${node.filePath}:${node.startLine}:${node.name}`;
20
+ const prior = roles.get(key);
21
+ if (prior === undefined) {
22
+ roles.set(key, out.length);
23
+ out.push(node);
24
+ }
25
+ else if (node.kind === 'component')
26
+ out[prior] = node;
27
+ }
28
+ return out;
29
+ }
30
+ /** Guidance describes retrieval; it must never close the host's coding task.
31
+ * Source fences are byte-preserved, including strings that resemble guidance.
32
+ */
33
+ function neutralRetrievalGuidance(text) {
34
+ let fence = '';
35
+ return text.split('\n').map((line) => {
36
+ const marker = line.match(/^\s*(`{3,}|~{3,})/);
37
+ if (marker) {
38
+ if (!fence)
39
+ fence = marker[1][0];
40
+ else if (marker[1][0] === fence)
41
+ fence = '';
42
+ return line;
43
+ }
44
+ if (fence)
45
+ return line;
46
+ if (/^>\s*\*\*Explore complete/i.test(line)) {
47
+ return '> Retrieval returned the evidence shown above. Check missing requirements, continue the requested edits, and verify the resulting code.';
48
+ }
49
+ if (/^>/.test(line) && /treat as already Read|treat it as already Read/i.test(line)) {
50
+ return '> The displayed source ranges are available as evidence. Inspect omitted ranges or changed files when needed; avoid repeating unchanged ranges.';
51
+ }
52
+ return line
53
+ .replace(/\*{0,2}ANSWER NOW\*{0,2}/g, 'use the evidence shown')
54
+ .replace(/Flow \+ Source above are authoritative for this query\./g, 'Source coverage is limited to the displayed ranges.')
55
+ .replace(/Do \*\*not\*\* grep\/read\/`homegraph_node`\/`homegraph_search`[^.]*\./gi, 'Inspect missing evidence as needed.')
56
+ .replace(/do\s+\*{0,2}not\*{0,2}\s+(?:re-)?(?:grep|read|glob)(?:\/[^.;]+)?[^.;]*[.;]/gi, 'Avoid duplicate reads of unchanged ranges;');
57
+ }).join('\n');
58
+ }
59
+ /** Preserve complete lines at a shared output limit; never forge a full body. */
60
+ function trimEvidenceAtLine(text, limit) {
61
+ if (text.length <= limit)
62
+ return text;
63
+ const note = '\n[Partial source: shared output budget reached; omitted ranges remain available for a focused lookup.]';
64
+ const cut = text.slice(0, Math.max(0, limit - note.length - 5));
65
+ const boundary = cut.lastIndexOf('\n');
66
+ let kept = boundary >= 0 ? cut.slice(0, boundary) : '';
67
+ if ((kept.match(/^\s*```/gm)?.length ?? 0) % 2)
68
+ kept += '\n```';
69
+ return kept + note;
70
+ }
71
+ //# sourceMappingURL=evidence-rendering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-rendering.js","sourceRoot":"","sources":["../../src/mcp/evidence-rendering.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,9 @@
1
1
  /**
2
2
  * Session-level explore repeat / partial guidance (generic).
3
3
  *
4
- * Stops agents from treating `homegraph_explore` as an iterative keyword
5
- * searcher: overlapping queries after a successful explore get a short refuse
6
- * instead of another multi-kB payload. Partial/busy replies carry concrete
7
- * retry anchors extracted from the query — never an empty 242-char shell.
8
- *
9
- * Failure fuse (post A/B): hard-cap explores per session, require tight
10
- * single-Type follow-ups after 2 calls, and bind Partial → named Next anchor.
4
+ * Repeated evidence is deduplicated; lexical overlap alone cannot prove that a
5
+ * follow-up's evidence obligation is already covered. Incomplete retrieval gets
6
+ * one bounded recovery, including when the first response was short or SDK-only.
11
7
  *
12
8
  * Shape-driven only — no product nouns.
13
9
  */
@@ -65,10 +61,10 @@ export declare function latestCountedExplore(prior: ExploreProjectState | null |
65
61
  * Whether `homegraph_node` / callers / callees should short-refuse after a
66
62
  * Partial explore (same failure class as explore×N — depth fan-out).
67
63
  *
68
- * After Partial: callers/callees are refused immediately (wrong tool + often a
69
- * multi-def token bomb). `homegraph_node` gets one shot, then refuse.
64
+ * Any one focused depth tool may recover missing evidence. The shared budget
65
+ * prevents fan-out without declaring callers/callees intrinsically invalid.
70
66
  */
71
- export declare function decideDepthToolFuse(prior: ExploreProjectState | null | undefined, depthCallCount: number, toolName?: string): DepthToolFuseDecision;
67
+ export declare function decideDepthToolFuse(prior: ExploreProjectState | null | undefined, depthCallCount: number, _toolName?: string): DepthToolFuseDecision;
72
68
  /** Success-shaped refuse when Partial already spent its one depth drill. */
73
69
  export declare function formatDepthToolRefuse(decision: DepthToolFuseDecision, toolName: string, symbolHint?: string): string;
74
70
  /** Candidate Type for Partial **Next anchor** / digest preference. */
@@ -92,12 +88,11 @@ export declare function pickBestDomainRoleAnchor(candidates: ReadonlyArray<Domai
92
88
  /** Format Next anchor caption used in Partial / soft-close footers. */
93
89
  export declare function formatNextAnchorCaption(c: DomainRoleAnchorCandidate): string;
94
90
  /**
95
- * Soft-close opening banner (must match footer — never pair with Partial locator).
91
+ * Coarse retrieval banner: source reuse is separate from task completion.
96
92
  */
97
93
  export declare function formatMechanismSoftCloseHeader(): string;
98
94
  /**
99
- * Soft-close footer: enough inventory + digest to answer without another explore.
100
- * Must NOT contain "Partial locator" so the session fuse treats the call as closed.
95
+ * Coarse retrieval footer; never claims that an inventory completes the task.
101
96
  */
102
97
  export declare function formatMechanismSoftCloseFooter(next?: DomainRoleAnchorCandidate): string;
103
98
  /** Honest Partial footer with a single Next anchor + ONE Grep. */
@@ -1 +1 @@
1
- {"version":3,"file":"explore-repeat-guard.d.ts","sourceRoot":"","sources":["../../src/mcp/explore-repeat-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"explore-repeat-guard.d.ts","sourceRoot":"","sources":["../../src/mcp/explore-repeat-guard.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,9 @@
2
2
  /**
3
3
  * Session-level explore repeat / partial guidance (generic).
4
4
  *
5
- * Stops agents from treating `homegraph_explore` as an iterative keyword
6
- * searcher: overlapping queries after a successful explore get a short refuse
7
- * instead of another multi-kB payload. Partial/busy replies carry concrete
8
- * retry anchors extracted from the query — never an empty 242-char shell.
9
- *
10
- * Failure fuse (post A/B): hard-cap explores per session, require tight
11
- * single-Type follow-ups after 2 calls, and bind Partial → named Next anchor.
5
+ * Repeated evidence is deduplicated; lexical overlap alone cannot prove that a
6
+ * follow-up's evidence obligation is already covered. Incomplete retrieval gets
7
+ * one bounded recovery, including when the first response was short or SDK-only.
12
8
  *
13
9
  * Shape-driven only — no product nouns.
14
10
  */
@@ -36,6 +32,7 @@ exports.formatSecondPartialStopFooter = formatSecondPartialStopFooter;
36
32
  exports.extractRetryIntentHints = extractRetryIntentHints;
37
33
  exports.formatPartialExploreGuidance = formatPartialExploreGuidance;
38
34
  const query_utils_1 = require("../search/query-utils");
35
+ const explore_session_state_1 = require("./explore-session-state");
39
36
  /** Tokens that do not distinguish one explore bag from another. */
40
37
  const STOP = new Set([
41
38
  'the', 'a', 'an', 'and', 'or', 'of', 'to', 'in', 'on', 'for', 'with', 'from',
@@ -153,21 +150,17 @@ function extractNextAnchorFromText(text) {
153
150
  return id?.slice(0, 120);
154
151
  }
155
152
  function inferExplorePartialMeta(text) {
156
- // Soft-close / coarse-locate ANSWER must win over a leftover Partial header
157
- // (same response used to emit both — session fuse must treat it as closed).
158
- const closedAnswer = /\*\*ANSWER NOW\*\*|Mechanism explore complete — \*\*ANSWER NOW\*\*|Explore complete — ANSWER NOW|Coarse locate — ANSWER|Coarse locate complete/i
159
- .test(text);
160
- const partial = /\*\*Partial locator\*\*|Partial locator|⚠️ \*\*Partial result\*\*|\*\*Partial result\*\*/i.test(text)
161
- && !closedAnswer;
153
+ // Compatibility for renderers without structured receipts. A positive
154
+ // completion slogan must never erase a separately reported coverage gap.
155
+ const partial = /\*\*Partial locator\*\*|Partial locator|⚠️ \*\*Partial result\*\*|\*\*Partial result\*\*/i.test(text);
162
156
  return {
163
157
  partial,
164
158
  nextAnchor: partial ? extractNextAnchorFromText(text) : undefined,
165
159
  };
166
160
  }
167
- const OVERLAP_THRESHOLD = 0.45;
168
161
  /**
169
- * Absolute explore fuse per session/project (counted responses ≥400 chars).
170
- * After this many, refuse — answer from prior Anchors or ONE narrow Grep.
162
+ * Absolute retrieval budget per session/project. Empty receipts count as
163
+ * attempts too, so failed recovery cannot create an unbounded retry loop.
171
164
  */
172
165
  const MAX_EXPLORES = 2;
173
166
  /**
@@ -177,21 +170,7 @@ const MAX_EXPLORES = 2;
177
170
  */
178
171
  const MAX_DEPTH_AFTER_PARTIAL = 1;
179
172
  function isCountedCall(call) {
180
- return (call.responseBytes || 0) >= 400;
181
- }
182
- /** Shared mechanism domain stems (theme/install/xml/…) between two queries. */
183
- function domainStemOverlap(a, b) {
184
- const sa = new Set((0, query_utils_1.mechanismDomainPathTokens)(a));
185
- const sb = new Set((0, query_utils_1.mechanismDomainPathTokens)(b));
186
- let shared = 0;
187
- for (const t of sa) {
188
- if (sb.has(t))
189
- shared++;
190
- }
191
- return shared;
192
- }
193
- function hadClosedExplore(calls) {
194
- return calls.some((c) => isCountedCall(c) && c.partial !== true);
173
+ return call.evidenceStatus !== undefined || (call.responseBytes || 0) >= 400;
195
174
  }
196
175
  /**
197
176
  * Whether this explore should short-refuse instead of re-running.
@@ -199,59 +178,31 @@ function hadClosedExplore(calls) {
199
178
  function decideExploreRepeat(prior, query) {
200
179
  if (!prior || prior.calls.length === 0)
201
180
  return { refuse: false, reason: 'ok' };
202
- const qTokens = exploreQueryTokens(query);
203
181
  const counted = prior.calls.filter(isCountedCall);
204
- const novel = novelAnchorsVsPriors(query, prior.calls);
205
182
  const last = counted[counted.length - 1];
206
- // Hard fuse — never explore×N after two counted calls (inventory Manager hops included).
207
- if (counted.length >= MAX_EXPLORES) {
183
+ // Keep the lifetime budget even if bounded state has evicted early receipts.
184
+ if (Math.max(prior.callCount, counted.length) >= MAX_EXPLORES) {
208
185
  return {
209
186
  refuse: true,
210
187
  matched: last,
211
188
  reason: 'hard-cap',
212
189
  };
213
190
  }
214
- // Partial named a Next anchor — follow-up MUST include that name (no novel-Type bypass).
215
- if (last?.partial && last.nextAnchor) {
216
- const na = last.nextAnchor.toLowerCase();
217
- if (!query.toLowerCase().includes(na)) {
218
- return {
219
- refuse: true,
220
- matched: last,
221
- reason: 'next-anchor',
222
- };
223
- }
224
- }
225
- // After a closed ANSWER explore, refuse NL paraphrase bags that share domain
226
- // stems (theme/install/parse…) — stops D33-style explore×N token storms.
227
- if (hadClosedExplore(counted) && !isTightExploreFollowUp(query)) {
228
- for (const call of counted) {
229
- if (call.partial === true)
230
- continue;
231
- const overlap = queryTokenOverlapScore(qTokens, exploreQueryTokens(call.query));
232
- const domainShared = domainStemOverlap(query, call.query);
233
- if (domainShared >= 2 || overlap >= 0.28) {
234
- return { refuse: true, matched: call, reason: 'overlap' };
235
- }
236
- }
237
- }
238
- // Overlap with any prior counted explore — unless a tight novel Type/file bag
239
- // (and, after Partial, only when Next anchor is already in the query above).
240
- if (novel.length > 0 && isTightExploreFollowUp(query)) {
191
+ // Missing or SDK-only evidence is not a successfully answered query. Permit
192
+ // its single recovery even if the query overlaps or uses another next anchor.
193
+ if (last && (0, explore_session_state_1.inferExploreEvidenceStatus)(last) !== 'complete') {
241
194
  return { refuse: false, reason: 'ok' };
242
195
  }
243
- let best;
244
- let bestScore = 0;
196
+ const normalized = (s) => s.trim().toLowerCase().replace(/\s+/g, ' ');
245
197
  for (const call of counted) {
246
- const score = queryTokenOverlapScore(qTokens, exploreQueryTokens(call.query));
247
- if (score > bestScore) {
248
- bestScore = score;
249
- best = call;
198
+ if ((0, explore_session_state_1.inferExploreEvidenceStatus)(call) !== 'complete')
199
+ continue;
200
+ // Even the same token bag can reverse a relation ("A calls B" versus
201
+ // "B calls A"). Only an identical normalized request proves repetition.
202
+ if (normalized(query) === normalized(call.query)) {
203
+ return { refuse: true, matched: call, reason: 'overlap' };
250
204
  }
251
205
  }
252
- if (best && bestScore >= OVERLAP_THRESHOLD) {
253
- return { refuse: true, matched: best, reason: 'overlap' };
254
- }
255
206
  return { refuse: false, reason: 'ok' };
256
207
  }
257
208
  /** Short success-shaped refuse when a repeat explore would waste tokens. */
@@ -262,12 +213,12 @@ function formatExploreRepeatRefuse(decision, query) {
262
213
  ? `\nAlready covered files include: ${files.map((f) => `\`${f}\``).join(', ')}.`
263
214
  : '';
264
215
  const next = decision.matched?.nextAnchor
265
- ? `\nPrior **Next anchor** was \`${decision.matched.nextAnchor}\` — use that name, or ONE narrow Grep.`
216
+ ? `\nSuggested **Next anchor:** \`${decision.matched.nextAnchor}\`.`
266
217
  : '';
267
218
  let why;
268
219
  switch (decision.reason) {
269
220
  case 'hard-cap':
270
- why = `This session already ran **${MAX_EXPLORES}** \`homegraph_explore\` calls on this project. Stop exploring.`;
221
+ why = `This session reached its **${MAX_EXPLORES}** \`homegraph_explore\` retrieval attempts on this project, including incomplete attempts.`;
271
222
  break;
272
223
  case 'next-anchor':
273
224
  why = `Prior explore was Partial and named a **Next anchor** — do not re-explore a paraphrase of "${priorQ}${priorQ.length >= 100 ? '…' : ''}".`;
@@ -276,14 +227,14 @@ function formatExploreRepeatRefuse(decision, query) {
276
227
  why = `Explore call budget exhausted for this project in the session.`;
277
228
  break;
278
229
  default:
279
- why = `This query overlaps a prior explore (bag ≈ "${priorQ}${priorQ.length >= 100 ? '…' : ''}").`;
230
+ why = `This query repeats the same evidence request as "${priorQ}${priorQ.length >= 100 ? '…' : ''}".`;
280
231
  }
281
232
  return [
282
- '**Skip repeat explore — stop HomeGraph drill-down.**',
233
+ '**Explore retrieval limit — reuse evidence already returned.**',
283
234
  why + fileLine + next,
284
235
  `Current query: "${query.trim().slice(0, 160)}${query.trim().length > 160 ? '…' : ''}"`,
285
- 'Answer from Anchors / digests already in this conversation, or run **ONE narrow Grep** for residual unindexed wiring.',
286
- 'Do **not** glob/read the whole repo, and do **not** fan out `homegraph_explore` / `homegraph_node` / callers on the same bag.',
236
+ 'This limit does not mean the task or its evidence is complete. Inspect missing source with a targeted Read or narrow Grep, then continue the requested edits and validation.',
237
+ 'Do not repeat the same explore or reread unchanged source already shown; keep any remaining inspection scoped to uncovered evidence.',
287
238
  ].join('\n');
288
239
  }
289
240
  /** Latest counted explore call (≥400 response bytes), if any. */
@@ -301,21 +252,14 @@ function latestCountedExplore(prior) {
301
252
  * Whether `homegraph_node` / callers / callees should short-refuse after a
302
253
  * Partial explore (same failure class as explore×N — depth fan-out).
303
254
  *
304
- * After Partial: callers/callees are refused immediately (wrong tool + often a
305
- * multi-def token bomb). `homegraph_node` gets one shot, then refuse.
255
+ * Any one focused depth tool may recover missing evidence. The shared budget
256
+ * prevents fan-out without declaring callers/callees intrinsically invalid.
306
257
  */
307
- function decideDepthToolFuse(prior, depthCallCount, toolName) {
258
+ function decideDepthToolFuse(prior, depthCallCount, _toolName) {
308
259
  const last = latestCountedExplore(prior);
309
- if (!last?.partial)
260
+ if (!last || (0, explore_session_state_1.inferExploreEvidenceStatus)(last) === 'complete')
310
261
  return { refuse: false, reason: 'ok' };
311
262
  const nextAnchor = last.nextAnchor;
312
- if (toolName === 'homegraph_callers' || toolName === 'homegraph_callees') {
313
- return {
314
- refuse: true,
315
- reason: 'partial-no-callers',
316
- nextAnchor,
317
- };
318
- }
319
263
  if (depthCallCount >= MAX_DEPTH_AFTER_PARTIAL) {
320
264
  return {
321
265
  refuse: true,
@@ -328,20 +272,18 @@ function decideDepthToolFuse(prior, depthCallCount, toolName) {
328
272
  /** Success-shaped refuse when Partial already spent its one depth drill. */
329
273
  function formatDepthToolRefuse(decision, toolName, symbolHint) {
330
274
  const next = decision.nextAnchor
331
- ? `\nPrior **Next anchor** was \`${decision.nextAnchor}\` — ONE \`homegraph_node\` / tighter explore with that name, or ONE narrow Grep.`
275
+ ? `\nSuggested **Next anchor:** \`${decision.nextAnchor}\`.`
332
276
  : '';
333
277
  const sym = symbolHint?.trim()
334
278
  ? `\nRequested: \`${symbolHint.trim().slice(0, 80)}\``
335
279
  : '';
336
- const why = decision.reason === 'partial-no-callers'
337
- ? `Prior \`homegraph_explore\` was a Partial locator — do **not** call \`${toolName}\` next (multi-def dumps + fan-out).`
338
- : `Prior \`homegraph_explore\` was a Partial locator; this session already used its **${MAX_DEPTH_AFTER_PARTIAL}** `
339
- + `allowed \`homegraph_node\` call on this project.`;
280
+ const why = `Prior retrieval was incomplete; this session already used its **${MAX_DEPTH_AFTER_PARTIAL}** `
281
+ + `focused depth recovery call on this project (requested \`${toolName}\`).`;
340
282
  return [
341
- '**Skip HomeGraph depth drill — stop after Partial.**',
283
+ '**Depth recovery budget reached — evidence may still be incomplete.**',
342
284
  why + next + sym,
343
- 'Answer from Anchors / digests already in this conversation, or run **ONE narrow Grep** for residual unindexed wiring.',
344
- 'Do **not** fan out more `homegraph_node` / callers / callees, and do **not** glob/read the whole repo.',
285
+ 'Use a targeted Read or narrow Grep for the missing evidence, then continue the requested edits and validation.',
286
+ 'Reuse source already shown and avoid repeating the same depth query.',
345
287
  ].join('\n');
346
288
  }
347
289
  /**
@@ -446,33 +388,31 @@ function formatNextAnchorCaption(c) {
446
388
  return `\`${c.name}\` (${c.kind}) — \`${c.filePath.replace(/\\/g, '/')}:${line}\``;
447
389
  }
448
390
  /**
449
- * Soft-close opening banner (must match footer — never pair with Partial locator).
391
+ * Coarse retrieval banner: source reuse is separate from task completion.
450
392
  */
451
393
  function formatMechanismSoftCloseHeader() {
452
- return ('> **Coarse locate — ANSWER from anchors + digests below.** '
453
- + 'Treat inventory + Source as already Read. '
454
- + 'ONE narrow Grep only for residual unindexed wiring — do not re-explore or fan out depth tools.');
394
+ return ('> **Coarse source evidence below.** '
395
+ + 'Reuse the source shown for these symbols. '
396
+ + 'Check relevance and uncovered wiring before continuing the requested edits or explanation.');
455
397
  }
456
398
  /**
457
- * Soft-close footer: enough inventory + digest to answer without another explore.
458
- * Must NOT contain "Partial locator" so the session fuse treats the call as closed.
399
+ * Coarse retrieval footer; never claims that an inventory completes the task.
459
400
  */
460
401
  function formatMechanismSoftCloseFooter(next) {
461
402
  const hint = next
462
403
  ? ` Primary Type: \`${next.name}\`.`
463
404
  : '';
464
- return ('> **Coarse locate — ANSWER from anchors + digests above.**'
405
+ return ('> **Coarse source evidence returned.**'
465
406
  + hint
466
- + ' ONE narrow Grep only for residual unindexed wiring named above. '
467
- + 'Do **not** re-explore, fan out `homegraph_node` / callers, or glob/read the repo.');
407
+ + ' Retrieval is not task completion. Reuse the displayed source; inspect uncovered code '
408
+ + 'with one focused follow-up or targeted Read/Grep, then continue authorized edits and checks.');
468
409
  }
469
410
  /** Honest Partial footer with a single Next anchor + ONE Grep. */
470
411
  function formatMechanismPartialFooter(nextCaption) {
471
412
  return ('> **Partial locator** — not a full mechanism closure. '
472
413
  + `**Next anchor:** ${nextCaption}. `
473
- + 'ONE tighter `homegraph_explore` **only** with that exact name, '
474
- + 'or **ONE narrow Grep** for residual unindexed wiring — '
475
- + 'do **not** fan out `homegraph_node` / Read / glob, and do **not** ANSWER NOW from inventory alone.');
414
+ + 'One focused recovery may use this anchor or a different uncovered part of the task. '
415
+ + 'Use targeted Read/Grep if the evidence remains missing; an inventory alone does not establish behavior.');
476
416
  }
477
417
  /**
478
418
  * Appended when a second counted Partial is emitted in the same session —
@@ -485,10 +425,10 @@ function formatSecondPartialStopFooter(nextAnchor) {
485
425
  return [
486
426
  '',
487
427
  '---',
488
- '> **Second Partial — stop HomeGraph.** Do **not** call `homegraph_explore` again.'
428
+ '> **Second Partial — explore retrieval budget reached.** Do not repeat `homegraph_explore`.'
489
429
  + next
490
- + ' Answer from Anchors / digests already returned, or **ONE narrow Grep** for residual unindexed wiring. '
491
- + 'Do not glob/read the whole repo.',
430
+ + ' Evidence remains incomplete. Inspect only missing source with targeted Read or narrow Grep, '
431
+ + 'then continue the requested edits and validation. Reuse unchanged source already returned.',
492
432
  ].join('\n');
493
433
  }
494
434
  /**
@@ -531,10 +471,10 @@ function formatPartialExploreGuidance(opts) {
531
471
  : 'If you retry, ONE tight \`homegraph_explore\` with a single Type / file / `@kit` name — not a broad paraphrase.';
532
472
  return [
533
473
  `⚠️ **Partial result** — ${why}. This is NOT an error.`,
534
- 'Prefer **ONE narrow Grep** for residual unindexed wiring using names already in the question — do **not** glob/read the repo.',
474
+ 'A targeted Read or **ONE narrow Grep** may recover missing evidence using names already in the question.',
535
475
  anchorLine,
536
- 'At most **one** `homegraph_node` (or callers/callees) after Partial — further depth calls are refused. Do not open a Grep/Read storm.',
537
- 'If a second explore still Partials, **stop HomeGraph** and answer from anchors + ONE narrow Grep.',
476
+ 'At most **one** focused `homegraph_node` or callers/callees recovery after Partial; reuse source already returned.',
477
+ 'If a second explore is still Partial, its retrieval budget is exhausted. Inspect missing source directly and continue the requested work; do not infer task completion.',
538
478
  ].join('\n');
539
479
  }
540
480
  //# sourceMappingURL=explore-repeat-guard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"explore-repeat-guard.js","sourceRoot":"","sources":["../../src/mcp/explore-repeat-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"explore-repeat-guard.js","sourceRoot":"","sources":["../../src/mcp/explore-repeat-guard.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,8 @@ export interface ExploreFileEmission {
74
74
  /** Set when ranges were dropped to stay under the per-file bound. */
75
75
  rangesTruncated?: boolean;
76
76
  }
77
+ /** Retrieval coverage only; even complete evidence does not complete a coding task. */
78
+ export type ExploreEvidenceStatus = 'complete' | 'partial' | 'empty' | 'sdk-only';
77
79
  /** What one explore call emitted, as reported by the handler. */
78
80
  export interface ExploreEmission {
79
81
  /** Resolved project root — the key state is filed under. */
@@ -85,14 +87,30 @@ export interface ExploreEmission {
85
87
  sourceBytes: number;
86
88
  /** Total chars of the response the agent received. */
87
89
  responseBytes: number;
90
+ /** Internal receipt: declarations actually shown, not all retrieval candidates.
91
+ * A located node is source-grounded, not proof of relevance to the user's task.
92
+ */
93
+ locatedNodes?: Array<{
94
+ id: string;
95
+ name: string;
96
+ qualifiedName?: string;
97
+ filePath: string;
98
+ startLine: number;
99
+ }>;
100
+ /** Derived by the executor from emitted evidence, never from a completion banner. */
101
+ evidenceStatus?: ExploreEvidenceStatus;
102
+ /** Bounded descriptions of retrieval obligations with emitted supporting evidence. */
103
+ coveredObligations?: string[];
104
+ /** Requested retrieval obligations that the emitted evidence did not cover. */
105
+ uncoveredObligations?: string[];
88
106
  /**
89
- * True when the response was an honest Partial / coarse locator (not a
90
- * closed ANSWER NOW). Used by the repeat guard to fuse failures.
107
+ * True when some requested evidence is missing. Legacy renderers may supply
108
+ * this without evidenceStatus; a textual completion banner cannot clear it.
91
109
  */
92
110
  partial?: boolean;
93
111
  /**
94
- * Concrete next Type / file the Partial named — follow-up explore must
95
- * include this string (case-insensitive) or be refused as paraphrase churn.
112
+ * Suggested next Type / file. Advisory: a missing evidence obligation may
113
+ * require a different source, especially after an irrelevant first hit.
96
114
  */
97
115
  nextAnchor?: string;
98
116
  }
@@ -140,7 +158,11 @@ export declare const EXPLORE_SESSION_LIMITS: {
140
158
  readonly MAX_RANGES_PER_FILE: 24;
141
159
  /** Most-recent calls per project included in {@link ExploreSessionView}. */
142
160
  readonly MAX_VIEW_CALLS: 4;
161
+ readonly MAX_LOCATED_NODES: 64;
162
+ readonly MAX_OBLIGATIONS: 12;
143
163
  };
164
+ /** Conservative fallback for older renderers that have not supplied a receipt. */
165
+ export declare function inferExploreEvidenceStatus(emission: ExploreEmission): ExploreEvidenceStatus;
144
166
  /**
145
167
  * Key a project root is filed under. Resolved so `/repo` and `/repo/` agree;
146
168
  * case-folded on the two platforms whose filesystems are case-insensitive, so a