@vyuhlabs/dxkit 2.11.0 → 2.11.1

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 CHANGED
@@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.11.1] - 2026-06-17
11
+
12
+ ### Line-aware passive context hook
13
+
14
+ - **The PreToolUse context hook now uses the line the agent is reading.** When a
15
+ `Read` carries an `offset`, the hook injects the *location's* structural
16
+ neighborhood — the enclosing symbol plus its direct callers/callees, and the
17
+ file's cross-file role — instead of only a flat file-level symbol map. Reading
18
+ the body of a function now yields "you're inside `addUser`; it calls
19
+ `getNextSequence`, `getRandomFutureDate`" rather than a list of every symbol in
20
+ the file. No source text is injected (the `Read` already returns the lines); the
21
+ hook adds only the structure the read doesn't show.
22
+ - **The hook also fires for symbol-less but connected files.** The old gate
23
+ skipped any file with zero named symbols, which silently blanked out top-level
24
+ config / entrypoint modules even when other files import them. The gate is now
25
+ "fire iff there's useful structure" (named symbols *or* cross-file edges),
26
+ applied uniformly to the file-level and line-level paths.
27
+ - The fail-open/additive contract is unchanged: when the graph has no structure
28
+ for a location, the hook stays a silent no-op and the agent proceeds exactly as
29
+ without dxkit.
30
+
31
+ No identity-scheme change; no migration. `vyuh-dxkit update` (or `npm i -D
32
+ @vyuhlabs/dxkit@latest`) picks up the refreshed hook scaffolding.
33
+
10
34
  ## [2.11.0] - 2026-06-16
11
35
 
12
36
  ### Code-graph quality, guardrail reliability on JS/TS, and a dogfooding pass
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Presentation layer for `vyuh-dxkit context-hook` — the compact
3
+ * `additionalContext` bodies the hook injects. Split out of
4
+ * `context-hook.ts` (which owns the stdin/route/dedup orchestration) so
5
+ * each file stays a cohesive unit under the large-file bar: this module is
6
+ * pure string-building over already-queried graph data, trivially unit-
7
+ * testable without touching stdin or the filesystem.
8
+ *
9
+ * Three shapes, one per hook target:
10
+ * - `formatFileContext` — a FILE the agent opened (whole-file read): its
11
+ * symbols + who depends on it + what it calls into.
12
+ * - `formatFileLineContext` — a FILE at a LINE (Read's `offset`): the
13
+ * location's enclosing symbol + its direct callers/callees, plus the
14
+ * file's cross-file role. Useful even for symbol-less regions.
15
+ * - `formatHookContext` — a search PATTERN (Bash/Grep/Glob): the anchor
16
+ * symbol, blast radius, and the top neighborhood symbols.
17
+ *
18
+ * Each returns '' when there's nothing worth the token cost, which the
19
+ * hook treats as "don't fire" (the additive/fail-open contract).
20
+ */
21
+ import type { ContextResult, FileLineContext, FileSummary } from './queries';
22
+ import type { Graph } from './types';
23
+ /**
24
+ * Compact `additionalContext` body for a FILE target: the file's
25
+ * symbols, who depends on it (caller files), and what it reaches into
26
+ * (callee files). Terser than the CLI's markdown — the hook pays this on
27
+ * every read. Leads with provenance + a best-effort caveat so the agent
28
+ * calibrates trust.
29
+ */
30
+ export declare function formatFileContext(summary: FileSummary, graph: Graph): string;
31
+ /**
32
+ * Compact `additionalContext` for a FILE target with a LINE (Read's
33
+ * `offset`). Frames the location's structural neighborhood: the enclosing
34
+ * symbol + its direct callers/callees, plus the file's cross-file role
35
+ * (who imports it, what it reaches into) and module group.
36
+ *
37
+ * It deliberately injects NO source text — the Read the agent just issued
38
+ * already returns the lines; the hook's value is the structure the Read
39
+ * does NOT show (who reaches this symbol, blast radius, what it calls).
40
+ * That's also why this works for symbol-less regions (top-level config,
41
+ * an entrypoint's middleware block): even with no enclosing symbol, the
42
+ * file's role orients the agent — exactly the case a file-level symbol map
43
+ * left empty. Returns '' (→ silent no-op) when there's no enclosing symbol
44
+ * AND no cross-file edges to report.
45
+ */
46
+ export declare function formatFileLineContext(ctx: FileLineContext, summary: FileSummary, graph: Graph, file: string, line: number): string;
47
+ /**
48
+ * Compact `additionalContext` body for a PATTERN target. Terser than the
49
+ * CLI's markdown (the hook pays this cost on every grep): an anchor line,
50
+ * blast radius, and the top symbols grouped by their leading community.
51
+ * Leads with a one-line provenance + best-effort caveat so the agent
52
+ * calibrates trust.
53
+ */
54
+ export declare function formatHookContext(result: ContextResult, graph: Graph): string;
55
+ //# sourceMappingURL=context-hook-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-hook-format.d.ts","sourceRoot":"","sources":["../../src/explore/context-hook-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAuD5E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,MAAM,CA8CR;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAiC7E"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatFileContext = formatFileContext;
4
+ exports.formatFileLineContext = formatFileLineContext;
5
+ exports.formatHookContext = formatHookContext;
6
+ /**
7
+ * Compact `additionalContext` body for a FILE target: the file's
8
+ * symbols, who depends on it (caller files), and what it reaches into
9
+ * (callee files). Terser than the CLI's markdown — the hook pays this on
10
+ * every read. Leads with provenance + a best-effort caveat so the agent
11
+ * calibrates trust.
12
+ */
13
+ function formatFileContext(summary, graph) {
14
+ // Fire only when there's structure worth the tokens: named symbols, or the
15
+ // file's cross-file role (who imports it / what it reaches into). A file
16
+ // with none of those (and no line to localize) has nothing useful to add —
17
+ // return '' so the hook stays a silent no-op (additive contract).
18
+ if (summary.symbols.length === 0 &&
19
+ summary.callerFiles.length === 0 &&
20
+ summary.calleeFiles.length === 0) {
21
+ return '';
22
+ }
23
+ const lines = [];
24
+ lines.push(`dxkit graph context for \`${summary.sourceFile}\` (from .dxkit/reports/graph.json, generated ${graph.meta.generatedAt.slice(0, 10)} — structural map, the file's actual contents remain authoritative):`);
25
+ const topSymbols = summary.symbols.slice(0, 12);
26
+ if (topSymbols.length > 0) {
27
+ lines.push(`- Symbols (${summary.symbols.length}):`);
28
+ for (const s of topSymbols) {
29
+ const where = s.line ? `:${s.line}` : '';
30
+ const flags = [s.exported ? 'exported' : '', s.callsIn > 0 ? `${s.callsIn} caller(s)` : '']
31
+ .filter(Boolean)
32
+ .join(', ');
33
+ lines.push(` ${s.label} (${s.kind}${where})${flags ? ` — ${flags}` : ''}`);
34
+ }
35
+ if (summary.symbols.length > topSymbols.length) {
36
+ lines.push(` (+${summary.symbols.length - topSymbols.length} more)`);
37
+ }
38
+ }
39
+ if (summary.callerFiles.length > 0) {
40
+ const top = summary.callerFiles.slice(0, 6);
41
+ lines.push(`- Depended on by ${summary.callerFiles.length} file(s):`);
42
+ for (const c of top)
43
+ lines.push(` ${c.sourceFile} (${c.count} call(s))`);
44
+ if (summary.callerFiles.length > top.length) {
45
+ lines.push(` (+${summary.callerFiles.length - top.length} more)`);
46
+ }
47
+ }
48
+ if (summary.calleeFiles.length > 0) {
49
+ const top = summary.calleeFiles.slice(0, 6);
50
+ lines.push(`- Calls into ${summary.calleeFiles.length} file(s):`);
51
+ for (const c of top)
52
+ lines.push(` ${c.sourceFile} (${c.count} call(s))`);
53
+ if (summary.calleeFiles.length > top.length) {
54
+ lines.push(` (+${summary.calleeFiles.length - top.length} more)`);
55
+ }
56
+ }
57
+ if (summary.communityLabel) {
58
+ lines.push(`- Module group: ${summary.communityLabel}`);
59
+ }
60
+ return lines.join('\n');
61
+ }
62
+ /**
63
+ * Compact `additionalContext` for a FILE target with a LINE (Read's
64
+ * `offset`). Frames the location's structural neighborhood: the enclosing
65
+ * symbol + its direct callers/callees, plus the file's cross-file role
66
+ * (who imports it, what it reaches into) and module group.
67
+ *
68
+ * It deliberately injects NO source text — the Read the agent just issued
69
+ * already returns the lines; the hook's value is the structure the Read
70
+ * does NOT show (who reaches this symbol, blast radius, what it calls).
71
+ * That's also why this works for symbol-less regions (top-level config,
72
+ * an entrypoint's middleware block): even with no enclosing symbol, the
73
+ * file's role orients the agent — exactly the case a file-level symbol map
74
+ * left empty. Returns '' (→ silent no-op) when there's no enclosing symbol
75
+ * AND no cross-file edges to report.
76
+ */
77
+ function formatFileLineContext(ctx, summary, graph, file, line) {
78
+ const enc = ctx.enclosingSymbol;
79
+ const hasFileEdges = summary.callerFiles.length > 0 || summary.calleeFiles.length > 0;
80
+ if (!enc && !hasFileEdges)
81
+ return '';
82
+ const lines = [];
83
+ lines.push(`dxkit graph context for \`${file}:${line}\` (from .dxkit/reports/graph.json, generated ${graph.meta.generatedAt.slice(0, 10)} — structural map, the file's actual contents remain authoritative):`);
84
+ if (enc) {
85
+ const where = enc.line ? `${enc.kind}, declared :${enc.line}` : enc.kind;
86
+ lines.push(`- Inside \`${enc.symbol}\` (${where}) — ${enc.callsIn} caller(s), ${enc.callsOut} callee(s).`);
87
+ if (ctx.callers.length > 0) {
88
+ const top = ctx.callers.slice(0, 6);
89
+ lines.push(`- Callers of \`${enc.symbol}\`:`);
90
+ for (const c of top)
91
+ lines.push(` ${c.symbol} — ${c.line ? `${c.sourceFile}:${c.line}` : c.sourceFile}`);
92
+ }
93
+ if (ctx.callees.length > 0) {
94
+ const top = ctx.callees.slice(0, 6);
95
+ lines.push(`- \`${enc.symbol}\` calls:`);
96
+ for (const c of top)
97
+ lines.push(` ${c.symbol} — ${c.line ? `${c.sourceFile}:${c.line}` : c.sourceFile}`);
98
+ }
99
+ }
100
+ else {
101
+ lines.push(`- Line ${line} is module-level (top of file / config) — not inside a tracked symbol.`);
102
+ }
103
+ if (summary.callerFiles.length > 0) {
104
+ const top = summary.callerFiles.slice(0, 6);
105
+ lines.push(`- File depended on by ${summary.callerFiles.length} file(s):`);
106
+ for (const c of top)
107
+ lines.push(` ${c.sourceFile} (${c.count} call(s))`);
108
+ }
109
+ if (summary.calleeFiles.length > 0) {
110
+ const top = summary.calleeFiles.slice(0, 6);
111
+ lines.push(`- File calls into ${summary.calleeFiles.length} file(s):`);
112
+ for (const c of top)
113
+ lines.push(` ${c.sourceFile} (${c.count} call(s))`);
114
+ }
115
+ if (summary.communityLabel)
116
+ lines.push(`- Module group: ${summary.communityLabel}`);
117
+ return lines.join('\n');
118
+ }
119
+ /**
120
+ * Compact `additionalContext` body for a PATTERN target. Terser than the
121
+ * CLI's markdown (the hook pays this cost on every grep): an anchor line,
122
+ * blast radius, and the top symbols grouped by their leading community.
123
+ * Leads with a one-line provenance + best-effort caveat so the agent
124
+ * calibrates trust.
125
+ */
126
+ function formatHookContext(result, graph) {
127
+ const lines = [];
128
+ lines.push(`dxkit graph context for \`${result.query}\` (from .dxkit/reports/graph.json, generated ${graph.meta.generatedAt.slice(0, 10)} — structural hint, grep results remain authoritative):`);
129
+ if (result.anchor) {
130
+ const a = result.anchor;
131
+ const where = a.line ? `${a.sourceFile}:${a.line}` : a.sourceFile;
132
+ lines.push(`- Start here: \`${a.symbol}\` (${where}), called from ${a.calledFrom} place(s).`);
133
+ }
134
+ if (result.blastRadius.callers > 0) {
135
+ lines.push(`- Blast radius: ${result.blastRadius.callers} caller(s) across ${result.blastRadius.callerFiles} file(s).`);
136
+ }
137
+ // Top symbols overall (seeds first, then by in-degree), capped tight.
138
+ const top = [...result.selection]
139
+ .sort((a, b) => a.hop - b.hop || b.callsIn - a.callsIn)
140
+ .slice(0, 10);
141
+ if (top.length > 0) {
142
+ lines.push('- Relevant symbols:');
143
+ for (const s of top) {
144
+ const where = s.line ? `${s.sourceFile}:${s.line}` : s.sourceFile;
145
+ lines.push(` ${s.symbol} (${where})`);
146
+ }
147
+ }
148
+ if (result.truncated) {
149
+ lines.push(`- (+${result.omittedCount} more symbols in the wider neighborhood)`);
150
+ }
151
+ return lines.join('\n');
152
+ }
153
+ //# sourceMappingURL=context-hook-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-hook-format.js","sourceRoot":"","sources":["../../src/explore/context-hook-format.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,15 @@
1
- import { type ContextResult, type FileSummary } from './queries';
2
1
  import type { Graph } from './types';
3
- /** What the agent's tool call resolved to: a specific file, or a search term. */
2
+ /**
3
+ * What the agent's tool call resolved to. A file target may carry the
4
+ * `line` the agent is reading (Read's `offset`): with a line we inject the
5
+ * location's structural neighborhood (enclosing symbol + its edges + the
6
+ * file's role) — useful even for files with no named symbols, like
7
+ * top-level config; without one we inject the file's symbol map.
8
+ */
4
9
  type HookTarget = {
5
10
  kind: 'file';
6
11
  file: string;
12
+ line?: number;
7
13
  } | {
8
14
  kind: 'pattern';
9
15
  pattern: string;
@@ -36,27 +42,11 @@ export declare function resolveHookTarget(payload: HookPayload, graph: Graph, cw
36
42
  * clean no-op.
37
43
  */
38
44
  export declare function parseBashForTarget(command: string, graph: Graph, cwd: string): HookTarget | undefined;
39
- /**
40
- * Compact `additionalContext` body for a FILE target: the file's
41
- * symbols, who depends on it (caller files), and what it reaches into
42
- * (callee files). Terser than the CLI's markdown — the hook pays this on
43
- * every read. Leads with provenance + a best-effort caveat so the agent
44
- * calibrates trust.
45
- */
46
- export declare function formatFileContext(summary: FileSummary, graph: Graph): string;
47
45
  /**
48
46
  * Extract the search keyword from a Grep/Glob-style payload. Both carry
49
47
  * it on `tool_input.pattern`. Returns undefined for anything we can't
50
48
  * confidently read (→ no-op upstream).
51
49
  */
52
50
  export declare function extractPattern(rawStdin: string): string | undefined;
53
- /**
54
- * Compact `additionalContext` body for a PATTERN target. Terser than the
55
- * CLI's markdown (the hook pays this cost on every grep): an anchor line,
56
- * blast radius, and the top symbols grouped by their leading community.
57
- * Leads with a one-line provenance + best-effort caveat so the agent
58
- * calibrates trust.
59
- */
60
- export declare function formatHookContext(result: ContextResult, graph: Graph): string;
61
51
  export {};
62
52
  //# sourceMappingURL=context-hook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-hook.d.ts","sourceRoot":"","sources":["../../src/explore/context-hook.ts"],"names":[],"mappings":"AA2CA,OAAO,EAAkC,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAEjG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKrC,iFAAiF;AACjF,KAAK,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmD/D;AAED,8DAA8D;AAC9D,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAkBtE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GACV,UAAU,GAAG,SAAS,CAqBxB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GACV,UAAU,GAAG,SAAS,CA2BxB;AAiBD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CA4C5E;AA8CD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAcnE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAiC7E"}
1
+ {"version":3,"file":"context-hook.d.ts","sourceRoot":"","sources":["../../src/explore/context-hook.ts"],"names":[],"mappings":"AA8CA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKrC;;;;;;GAMG;AACH,KAAK,UAAU,GACX;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkE/D;AAED,8DAA8D;AAC9D,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAkBtE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GACV,UAAU,GAAG,SAAS,CA+BxB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GACV,UAAU,GAAG,SAAS,CA2BxB;AA6DD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAcnE"}
@@ -37,9 +37,7 @@ exports.runContextHook = runContextHook;
37
37
  exports.parsePayload = parsePayload;
38
38
  exports.resolveHookTarget = resolveHookTarget;
39
39
  exports.parseBashForTarget = parseBashForTarget;
40
- exports.formatFileContext = formatFileContext;
41
40
  exports.extractPattern = extractPattern;
42
- exports.formatHookContext = formatHookContext;
43
41
  /**
44
42
  * `vyuh-dxkit context-hook` — the Claude Code PreToolUse hook that
45
43
  * delivers the token-reduction win passively. Wired into a scaffolded
@@ -84,6 +82,7 @@ const fs = __importStar(require("fs"));
84
82
  const os = __importStar(require("os"));
85
83
  const path = __importStar(require("path"));
86
84
  const queries_1 = require("./queries");
85
+ const context_hook_format_1 = require("./context-hook-format");
87
86
  const load_1 = require("./load");
88
87
  /** Stingier than the manual CLI's 2000 — the hook fires on every search/read. */
89
88
  const HOOK_BUDGET = 1500;
@@ -119,15 +118,24 @@ async function runContextHook(cwd) {
119
118
  let additionalContext;
120
119
  if (target.kind === 'file') {
121
120
  const summary = (0, queries_1.fileSummaryQuery)(graph, target.file);
122
- if (!summary.found || summary.symbols.length === 0)
121
+ if (!summary.found)
123
122
  return;
124
- additionalContext = formatFileContext(summary, graph);
123
+ // With a line, frame the location's structural neighborhood (enclosing
124
+ // symbol + its edges + the file's role); without one, the file's symbol
125
+ // map. Either formatter returns '' when there's genuinely nothing useful
126
+ // to add — that empty string is the single "don't fire" gate (replacing
127
+ // the old `symbols.length === 0` check, which blanked out symbol-less but
128
+ // well-connected files like top-level config).
129
+ additionalContext =
130
+ target.line !== undefined
131
+ ? (0, context_hook_format_1.formatFileLineContext)((0, queries_1.fileLineContextQuery)(graph, target.file, target.line), summary, graph, target.file, target.line)
132
+ : (0, context_hook_format_1.formatFileContext)(summary, graph);
125
133
  }
126
134
  else {
127
135
  const result = (0, queries_1.contextQuery)(graph, target.pattern, { budget: HOOK_BUDGET, substring: true });
128
136
  if (!result.matched || result.selection.length === 0)
129
137
  return;
130
- additionalContext = formatHookContext(result, graph);
138
+ additionalContext = (0, context_hook_format_1.formatHookContext)(result, graph);
131
139
  }
132
140
  if (!additionalContext)
133
141
  return;
@@ -178,7 +186,17 @@ function resolveHookTarget(payload, graph, cwd) {
178
186
  if (typeof fp !== 'string' || !fp.trim())
179
187
  return undefined;
180
188
  const rel = toRepoRelative(fp.trim(), cwd);
181
- return graph.nodesByFile.has(rel) ? { kind: 'file', file: rel } : undefined;
189
+ if (!graph.nodesByFile.has(rel))
190
+ return undefined;
191
+ // Read carries `offset` = the 1-based line the agent starts reading at.
192
+ // Use it to deliver location-local structure (the enclosing symbol's
193
+ // neighborhood) rather than only a file-level symbol map — which is
194
+ // what lets the hook help on findings inside symbol-less regions
195
+ // (top-level config, an entrypoint's middleware setup). Edit/Write
196
+ // carry no line, so they fall back to the file map.
197
+ const off = payload.toolInput.offset;
198
+ const line = tool === 'Read' && typeof off === 'number' && off > 0 ? Math.floor(off) : undefined;
199
+ return line !== undefined ? { kind: 'file', file: rel, line } : { kind: 'file', file: rel };
182
200
  }
183
201
  // Bash — parse a grep/rg-style search command.
184
202
  if (tool === 'Bash') {
@@ -241,53 +259,6 @@ function toRepoRelative(p, cwd) {
241
259
  const rel = path.isAbsolute(p) ? path.relative(cwd, p) : p;
242
260
  return rel.replace(/\\/g, '/');
243
261
  }
244
- /**
245
- * Compact `additionalContext` body for a FILE target: the file's
246
- * symbols, who depends on it (caller files), and what it reaches into
247
- * (callee files). Terser than the CLI's markdown — the hook pays this on
248
- * every read. Leads with provenance + a best-effort caveat so the agent
249
- * calibrates trust.
250
- */
251
- function formatFileContext(summary, graph) {
252
- const lines = [];
253
- lines.push(`dxkit graph context for \`${summary.sourceFile}\` (from .dxkit/reports/graph.json, generated ${graph.meta.generatedAt.slice(0, 10)} — structural map, the file's actual contents remain authoritative):`);
254
- const topSymbols = summary.symbols.slice(0, 12);
255
- if (topSymbols.length > 0) {
256
- lines.push(`- Symbols (${summary.symbols.length}):`);
257
- for (const s of topSymbols) {
258
- const where = s.line ? `:${s.line}` : '';
259
- const flags = [s.exported ? 'exported' : '', s.callsIn > 0 ? `${s.callsIn} caller(s)` : '']
260
- .filter(Boolean)
261
- .join(', ');
262
- lines.push(` ${s.label} (${s.kind}${where})${flags ? ` — ${flags}` : ''}`);
263
- }
264
- if (summary.symbols.length > topSymbols.length) {
265
- lines.push(` (+${summary.symbols.length - topSymbols.length} more)`);
266
- }
267
- }
268
- if (summary.callerFiles.length > 0) {
269
- const top = summary.callerFiles.slice(0, 6);
270
- lines.push(`- Depended on by ${summary.callerFiles.length} file(s):`);
271
- for (const c of top)
272
- lines.push(` ${c.sourceFile} (${c.count} call(s))`);
273
- if (summary.callerFiles.length > top.length) {
274
- lines.push(` (+${summary.callerFiles.length - top.length} more)`);
275
- }
276
- }
277
- if (summary.calleeFiles.length > 0) {
278
- const top = summary.calleeFiles.slice(0, 6);
279
- lines.push(`- Calls into ${summary.calleeFiles.length} file(s):`);
280
- for (const c of top)
281
- lines.push(` ${c.sourceFile} (${c.count} call(s))`);
282
- if (summary.calleeFiles.length > top.length) {
283
- lines.push(` (+${summary.calleeFiles.length - top.length} more)`);
284
- }
285
- }
286
- if (summary.communityLabel) {
287
- lines.push(`- Module group: ${summary.communityLabel}`);
288
- }
289
- return lines.join('\n');
290
- }
291
262
  // ─── Per-session, per-file dedup state ───────────────────────────────────────
292
263
  /** Where the per-session injected-file ledger lives. One file per
293
264
  * session under the OS temp dir; small JSON array of repo-relative
@@ -356,40 +327,6 @@ function extractPattern(rawStdin) {
356
327
  const trimmed = pattern.trim();
357
328
  return trimmed.length > 0 ? trimmed : undefined;
358
329
  }
359
- /**
360
- * Compact `additionalContext` body for a PATTERN target. Terser than the
361
- * CLI's markdown (the hook pays this cost on every grep): an anchor line,
362
- * blast radius, and the top symbols grouped by their leading community.
363
- * Leads with a one-line provenance + best-effort caveat so the agent
364
- * calibrates trust.
365
- */
366
- function formatHookContext(result, graph) {
367
- const lines = [];
368
- lines.push(`dxkit graph context for \`${result.query}\` (from .dxkit/reports/graph.json, generated ${graph.meta.generatedAt.slice(0, 10)} — structural hint, grep results remain authoritative):`);
369
- if (result.anchor) {
370
- const a = result.anchor;
371
- const where = a.line ? `${a.sourceFile}:${a.line}` : a.sourceFile;
372
- lines.push(`- Start here: \`${a.symbol}\` (${where}), called from ${a.calledFrom} place(s).`);
373
- }
374
- if (result.blastRadius.callers > 0) {
375
- lines.push(`- Blast radius: ${result.blastRadius.callers} caller(s) across ${result.blastRadius.callerFiles} file(s).`);
376
- }
377
- // Top symbols overall (seeds first, then by in-degree), capped tight.
378
- const top = [...result.selection]
379
- .sort((a, b) => a.hop - b.hop || b.callsIn - a.callsIn)
380
- .slice(0, 10);
381
- if (top.length > 0) {
382
- lines.push('- Relevant symbols:');
383
- for (const s of top) {
384
- const where = s.line ? `${s.sourceFile}:${s.line}` : s.sourceFile;
385
- lines.push(` ${s.symbol} (${where})`);
386
- }
387
- }
388
- if (result.truncated) {
389
- lines.push(`- (+${result.omittedCount} more symbols in the wider neighborhood)`);
390
- }
391
- return lines.join('\n');
392
- }
393
330
  /** Read all of stdin as a string. Resolves '' if stdin is a TTY/empty. */
394
331
  function readStdin() {
395
332
  return new Promise((resolve) => {
@@ -1 +1 @@
1
- {"version":3,"file":"context-hook.js","sourceRoot":"","sources":["../../src/explore/context-hook.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DA,wCAmDC;AAUD,oCAkBC;AAMD,8CAyBC;AASD,gDA+BC;AAwBD,8CA4CC;AAmDD,wCAcC;AASD,8CAiCC;AAhYD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAiG;AACjG,iCAAsC;AAGtC,iFAAiF;AACjF,MAAM,WAAW,GAAG,IAAI,CAAC;AAKzB;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAAC,GAAW;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,OAAO;QAExB,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,KAAK,GAAG,IAAA,mBAAY,EAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,sEAAsE;QACtE,sEAAsE;QACtE,uEAAuE;QACvE,kEAAkE;QAClE,iBAAiB;QACjB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAChD,IAAI,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC;gBAAE,OAAO;QAC9D,CAAC;QAED,IAAI,iBAAqC,CAAC;QAC1C,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAA,0BAAgB,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC3D,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7F,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC7D,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAE/B,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAChD,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC;YACb,kBAAkB,EAAE;gBAClB,aAAa,EAAE,YAAY;gBAC3B,iBAAiB;aAClB;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;IACrE,CAAC;AACH,CAAC;AASD,yEAAyE;AACzE,SAAgB,YAAY,CAAC,QAAgB;IAC3C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,MAAM,SAAS,GACb,GAAG,CAAC,UAAU,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;QAClD,CAAC,CAAE,GAAG,CAAC,UAAsC;QAC7C,CAAC,CAAC,EAAE,CAAC;IACT,OAAO;QACL,QAAQ,EAAE,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACvE,SAAS;QACT,SAAS,EAAE,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KAC3E,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAC/B,OAAoB,EACpB,KAAY,EACZ,GAAW;IAEX,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;IAE9B,yDAAyD;IACzD,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QACtF,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC;QAC1E,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,OAAO,SAAS,CAAC;QAC3D,MAAM,GAAG,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,CAAC;IAED,+CAA+C;IAC/C,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;QACtC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,OAAO,SAAS,CAAC;QAC7D,OAAO,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,uEAAuE;IACvE,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAClF,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAChC,OAAe,EACf,KAAY,EACZ,GAAW;IAEX,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAExE,kEAAkE;IAClE,8DAA8D;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAExE,qEAAqE;IACrE,sEAAsE;IACtE,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACvD,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IACrE,CAAC;IAED,sEAAsE;IACtE,wDAAwD;IACxD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACvD,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QACxD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC7B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,gEAAgE;AAChE,SAAS,WAAW,CAAC,CAAS;IAC5B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;2CAC2C;AAC3C,SAAS,cAAc,CAAC,CAAS,EAAE,GAAW;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,OAAoB,EAAE,KAAY;IAClE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CACR,6BAA6B,OAAO,CAAC,UAAU,iDAAiD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,sEAAsE,CAC1M,CAAC;IAEF,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxF,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,QAAQ,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,WAAW,CAAC,MAAM,WAAW,CAAC,CAAC;QACtE,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC;QAC5E,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,QAAQ,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,WAAW,CAAC,MAAM,WAAW,CAAC,CAAC;QAClE,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC;QAC5E,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,QAAQ,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,gFAAgF;AAEhF;;4EAE4E;AAC5E,SAAS,cAAc,CAAC,SAAiB;IACvC,wDAAwD;IACxD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,IAAI,OAAO,CAAC,CAAC;AACnE,CAAC;AAED;qDACqD;AACrD,SAAS,eAAe,CAAC,SAAiB,EAAE,IAAY;IACtD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;wEACwE;AACxE,SAAS,YAAY,CAAC,SAAiB,EAAE,IAAY;IACnD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,IAAI,GAAa,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;QAC7F,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;IACxE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,QAAgB;IAC7C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,SAAS,GAAI,MAAmC,CAAC,UAAU,CAAC;IAClE,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAClE,MAAM,OAAO,GAAI,SAAmC,CAAC,OAAO,CAAC;IAC7D,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,MAAqB,EAAE,KAAY;IACnE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CACR,6BAA6B,MAAM,CAAC,KAAK,iDAAiD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,yDAAyD,CACvL,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACxB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,OAAO,KAAK,kBAAkB,CAAC,CAAC,UAAU,YAAY,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CACR,mBAAmB,MAAM,CAAC,WAAW,CAAC,OAAO,qBAAqB,MAAM,CAAC,WAAW,CAAC,WAAW,WAAW,CAC5G,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,MAAM,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;SAC9B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;SACtD,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,KAAK,GAAG,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,YAAY,0CAA0C,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,0EAA0E;AAC1E,SAAS,SAAS;IAChB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,EAAE,CAAC,CAAC;YACZ,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"context-hook.js","sourceRoot":"","sources":["../../src/explore/context-hook.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vyuhlabs/dxkit",
3
- "version": "2.11.0",
3
+ "version": "2.11.1",
4
4
  "description": "AI-native developer experience toolkit for any codebase",
5
5
  "license": "MIT",
6
6
  "author": "Vyuh Labs",