@vibgrate/cli 2026.711.2 → 2026.717.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/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { G as GraphNode, a as GraphEdge, A as Area, R as ResolverKind, V as VgGraph, F as FileParse, E as EdgeKind, b as Fact, c as GroundingKind, d as GroundingEdge } from './types-CXnp1uGj.js';
2
- export { C as Centrality, D as DerivedBy, e as EpistemicTier, f as FactConfidence, g as FactKind, h as GraphMeta, N as NodeKind, P as Provenance, S as SCHEMA_VERSION, i as Span, T as Toolchain, U as Unknown } from './types-CXnp1uGj.js';
1
+ import { G as GraphNode, a as GraphEdge, A as Area, R as ResolverKind, V as VgGraph, F as FileParse, E as EdgeKind, b as Fact, c as GroundingKind, d as GroundingEdge } from './types-BgNa-FZQ.js';
2
+ export { C as Centrality, D as DerivedBy, e as EpistemicTier, f as FactConfidence, g as FactKind, h as GraphMeta, N as NodeKind, P as Provenance, S as SCHEMA_VERSION, i as Span, T as Toolchain, U as Unknown } from './types-BgNa-FZQ.js';
3
3
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
4
4
 
5
- declare const VERSION = "2026.711.2";
5
+ declare const VERSION = "2026.717.1";
6
6
 
7
7
  /**
8
8
  * Analysis stage: importance, centrality, hubs, communities, and surprise.
@@ -484,7 +484,15 @@ interface SemanticQueryOptions extends QueryOptions {
484
484
  * embeddings live only in the cache, never in `graph.json`.
485
485
  */
486
486
  declare function queryGraphSemantic(graph: VgGraph, question: string, options: SemanticQueryOptions): Promise<QueryResult>;
487
- /** camelCase / snake_case / kebab split of an identifier → lowercased parts. */
487
+ /**
488
+ * camelCase / snake_case / kebab split of an identifier → lowercased parts.
489
+ * The separator alternative is Unicode-letter-aware (`\p{L}\p{N}`, not
490
+ * ASCII-only `a-zA-Z0-9`) so non-Latin identifiers split on punctuation
491
+ * without losing every character to it; the camelCase boundary lookaround
492
+ * stays ASCII-only since upper/lowercase casing is itself an ASCII-script
493
+ * concept — scripts without case simply never trigger it and fall through to
494
+ * the separator split.
495
+ */
488
496
  declare function identifierParts(name: string): Set<string>;
489
497
 
490
498
  /**
@@ -547,12 +555,18 @@ declare class GraphIndex {
547
555
  out(id: string, kind?: EdgeKind): GraphEdge[];
548
556
  in(id: string, kind?: EdgeKind): GraphEdge[];
549
557
  node(id: string): GraphNode | undefined;
550
- /** Resolved nodes called by `id`. */
558
+ /**
559
+ * Resolved nodes called by `id` — invocations (`call`) plus structural
560
+ * dependency references (`references`, e.g. a constructor-injected field's
561
+ * type), since both represent real usage a caller/impact question cares
562
+ * about. `references` is otherwise only emitted by the precise SCIP/tsc
563
+ * rungs and (for Java DI wiring) the heuristic rung — never a guess.
564
+ */
551
565
  callees(id: string): {
552
566
  edge: GraphEdge;
553
567
  node: GraphNode;
554
568
  }[];
555
- /** Resolved nodes that call `id`. */
569
+ /** Resolved nodes that call or structurally reference `id`. */
556
570
  callers(id: string): {
557
571
  edge: GraphEdge;
558
572
  node: GraphNode;
@@ -1024,6 +1038,15 @@ interface Assistant {
1024
1038
  skill?: string;
1025
1039
  mcp?: McpTarget;
1026
1040
  nudge?: NudgeTarget;
1041
+ /**
1042
+ * Signs this assistant is in use, checked by `detectAssistants`:
1043
+ * `markers` are project-relative paths, `homeMarkers` are relative to the
1044
+ * user's home folder, `bin` are executables looked up on PATH. Detection is
1045
+ * best-effort presence-checking only — nothing is read or executed.
1046
+ */
1047
+ markers?: string[];
1048
+ homeMarkers?: string[];
1049
+ bin?: string[];
1027
1050
  }
1028
1051
  declare const ASSISTANTS: Assistant[];
1029
1052
  declare function assistantById(id: string): Assistant | undefined;
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- export { ASSISTANTS, FREE_PACK, GraphIndex, GraphSource, ResourceLimitError, SCHEMA_VERSION, SKIP_DIRS, SKIP_FILES, TOOLS, UsageError, addLibrary, analyze, applyCoverage, applyStaticTestLinkage, assistantById, buildFacts, buildGraph, buildModuleResolver, cosine, coveringTests, createServer, decodeScipIndex, defaultGraphPath, inventory as dependencyInventory, detectRunner, discover, discoverModels, driftCount, driftFor, enrichOnline, exportGraph, findNodes, formatForExt, getNodeEmbeddings, groundGraph, hasDrift, identifierParts, impactOf, installAssistant, isTestFile, libId, loadCatalog, loadCoverage, loadEmbedder, loadGraph, loadSnapshot, nodeById, nodeEmbedText, parseGraph, parseJsonc, probeFreshness, queryGraph, queryGraphSemantic, readDoc, readSavings, recordSaving, refreshIfStale, relativeResolver, renderHtml, renderReport, resolveLib, resolveLimits, resolveOne, saveCatalog, savingsRecorded, scipEdges, serializeGraph, serveStdio, shortestPath, stableStringify, testsToRun, uninstallAssistant, verifyDeterminism, vibgrateDir, writeArtifacts, writeSnapshot } from './chunk-75ZJYYJE.js';
2
- export { LANGUAGES, allLanguageIds, grammarsSourceDir, langById, langForExtension, parseSource } from './chunk-X5YT263H.js';
3
- export { VERSION } from './chunk-NNU2PW2H.js';
1
+ export { ASSISTANTS, FREE_PACK, GraphIndex, GraphSource, ResourceLimitError, SCHEMA_VERSION, SKIP_DIRS, SKIP_FILES, TOOLS, UsageError, addLibrary, analyze, applyCoverage, applyStaticTestLinkage, assistantById, buildFacts, buildGraph, buildModuleResolver, cosine, coveringTests, createServer, decodeScipIndex, defaultGraphPath, inventory as dependencyInventory, detectRunner, discover, discoverModels, driftCount, driftFor, enrichOnline, exportGraph, findNodes, formatForExt, getNodeEmbeddings, groundGraph, hasDrift, identifierParts, impactOf, installAssistant, isTestFile, libId, loadCatalog, loadCoverage, loadEmbedder, loadGraph, loadSnapshot, nodeById, nodeEmbedText, parseGraph, parseJsonc, probeFreshness, queryGraph, queryGraphSemantic, readDoc, readSavings, recordSaving, refreshIfStale, relativeResolver, renderHtml, renderReport, resolveLib, resolveLimits, resolveOne, saveCatalog, savingsRecorded, scipEdges, serializeGraph, serveStdio, shortestPath, stableStringify, testsToRun, uninstallAssistant, verifyDeterminism, vibgrateDir, writeArtifacts, writeSnapshot } from './chunk-L42NVMD6.js';
2
+ export { LANGUAGES, allLanguageIds, grammarsSourceDir, langById, langForExtension, parseSource } from './chunk-VFO5UDAT.js';
3
+ export { VERSION } from './chunk-M62BGJMK.js';
4
4
  import { redactUrlCredentials, redactSecrets } from './chunk-RXP66R2E.js';
5
5
  import './chunk-GI6W53LM.js';
6
6
  import { execFileSync } from 'child_process';
@@ -1,4 +1,4 @@
1
- import { F as FileParse } from './types-CXnp1uGj.js';
1
+ import { F as FileParse } from './types-BgNa-FZQ.js';
2
2
 
3
3
  /**
4
4
  * tinypool worker entry. Receives a chunk of files, reads and parses each, and
@@ -1,4 +1,4 @@
1
- import { setGrammarsOverride, parseSource } from './chunk-X5YT263H.js';
1
+ import { setGrammarsOverride, parseSource } from './chunk-VFO5UDAT.js';
2
2
  import './chunk-RXP66R2E.js';
3
3
  import * as fs from 'fs';
4
4
 
@@ -19,6 +19,7 @@ async function run(payload) {
19
19
  calls: [],
20
20
  imports: [],
21
21
  heritage: [],
22
+ typeRefs: [],
22
23
  guards: [],
23
24
  warnings: [`parse failed: ${err.message}`]
24
25
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/engine/parse-worker.ts"],"names":[],"mappings":";;;;AA0BA,eAAO,IAA2B,OAAA,EAA6C;AAC7E,EAAA,mBAAA,CAAoB,QAAQ,WAAW,CAAA;AACvC,EAAA,MAAM,MAAmB,EAAC;AAC1B,EAAA,KAAA,MAAW,IAAA,IAAQ,QAAQ,KAAA,EAAO;AAChC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAY,EAAA,CAAA,YAAA,CAAa,IAAA,CAAK,GAAA,EAAK,MAAM,CAAA;AAC/C,MAAA,GAAA,CAAI,IAAA,CAAK,MAAM,WAAA,CAAY,IAAA,CAAK,KAAK,IAAA,CAAK,IAAA,EAAM,MAAM,CAAC,CAAA;AAAA,IACzD,SAAS,GAAA,EAAK;AACZ,MAAA,GAAA,CAAI,IAAA,CAAK;AAAA,QACP,KAAK,IAAA,CAAK,GAAA;AAAA,QACV,MAAM,IAAA,CAAK,IAAA;AAAA,QACX,IAAA,EAAM,EAAA;AAAA,QACN,KAAA,EAAO,CAAA;AAAA,QACP,MAAM,EAAC;AAAA,QACP,OAAO,EAAC;AAAA,QACR,SAAS,EAAC;AAAA,QACV,UAAU,EAAC;AAAA,QACX,QAAQ,EAAC;AAAA,QACT,QAAA,EAAU,CAAC,CAAA,cAAA,EAAkB,GAAA,CAAc,OAAO,CAAA,CAAE;AAAA,OACrD,CAAA;AAAA,IACH;AAAA,EACF;AACA,EAAA,OAAO,GAAA;AACT","file":"parse-worker.js","sourcesContent":["import * as fs from 'node:fs';\nimport { parseSource } from './parse.js';\nimport { setGrammarsOverride } from './grammars.js';\nimport type { FileParse } from './types.js';\n\n/**\n * tinypool worker entry. Receives a chunk of files, reads and parses each, and\n * returns the FileParse table. Each worker owns its own web-tree-sitter instance\n * (initialized lazily inside parseSource/grammars). Results are plain data, so\n * they serialize cleanly back to the main thread.\n *\n * The `--grammars <dir>` override is passed in the payload (env vars don't cross\n * into worker threads in a controlled way) and applied per worker before parsing.\n */\n\nexport interface ParseTask {\n rel: string;\n abs: string;\n lang: string;\n}\n\nexport interface ParsePayload {\n tasks: ParseTask[];\n grammarsDir?: string;\n}\n\nexport default async function run(payload: ParsePayload): Promise<FileParse[]> {\n setGrammarsOverride(payload.grammarsDir);\n const out: FileParse[] = [];\n for (const task of payload.tasks) {\n try {\n const source = fs.readFileSync(task.abs, 'utf8');\n out.push(await parseSource(task.rel, task.lang, source));\n } catch (err) {\n out.push({\n rel: task.rel,\n lang: task.lang,\n hash: '',\n bytes: 0,\n defs: [],\n calls: [],\n imports: [],\n heritage: [],\n guards: [],\n warnings: [`parse failed: ${(err as Error).message}`],\n });\n }\n }\n return out;\n}\n"]}
1
+ {"version":3,"sources":["../src/engine/parse-worker.ts"],"names":[],"mappings":";;;;AA0BA,eAAO,IAA2B,OAAA,EAA6C;AAC7E,EAAA,mBAAA,CAAoB,QAAQ,WAAW,CAAA;AACvC,EAAA,MAAM,MAAmB,EAAC;AAC1B,EAAA,KAAA,MAAW,IAAA,IAAQ,QAAQ,KAAA,EAAO;AAChC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAY,EAAA,CAAA,YAAA,CAAa,IAAA,CAAK,GAAA,EAAK,MAAM,CAAA;AAC/C,MAAA,GAAA,CAAI,IAAA,CAAK,MAAM,WAAA,CAAY,IAAA,CAAK,KAAK,IAAA,CAAK,IAAA,EAAM,MAAM,CAAC,CAAA;AAAA,IACzD,SAAS,GAAA,EAAK;AACZ,MAAA,GAAA,CAAI,IAAA,CAAK;AAAA,QACP,KAAK,IAAA,CAAK,GAAA;AAAA,QACV,MAAM,IAAA,CAAK,IAAA;AAAA,QACX,IAAA,EAAM,EAAA;AAAA,QACN,KAAA,EAAO,CAAA;AAAA,QACP,MAAM,EAAC;AAAA,QACP,OAAO,EAAC;AAAA,QACR,SAAS,EAAC;AAAA,QACV,UAAU,EAAC;AAAA,QACX,UAAU,EAAC;AAAA,QACX,QAAQ,EAAC;AAAA,QACT,QAAA,EAAU,CAAC,CAAA,cAAA,EAAkB,GAAA,CAAc,OAAO,CAAA,CAAE;AAAA,OACrD,CAAA;AAAA,IACH;AAAA,EACF;AACA,EAAA,OAAO,GAAA;AACT","file":"parse-worker.js","sourcesContent":["import * as fs from 'node:fs';\nimport { parseSource } from './parse.js';\nimport { setGrammarsOverride } from './grammars.js';\nimport type { FileParse } from './types.js';\n\n/**\n * tinypool worker entry. Receives a chunk of files, reads and parses each, and\n * returns the FileParse table. Each worker owns its own web-tree-sitter instance\n * (initialized lazily inside parseSource/grammars). Results are plain data, so\n * they serialize cleanly back to the main thread.\n *\n * The `--grammars <dir>` override is passed in the payload (env vars don't cross\n * into worker threads in a controlled way) and applied per worker before parsing.\n */\n\nexport interface ParseTask {\n rel: string;\n abs: string;\n lang: string;\n}\n\nexport interface ParsePayload {\n tasks: ParseTask[];\n grammarsDir?: string;\n}\n\nexport default async function run(payload: ParsePayload): Promise<FileParse[]> {\n setGrammarsOverride(payload.grammarsDir);\n const out: FileParse[] = [];\n for (const task of payload.tasks) {\n try {\n const source = fs.readFileSync(task.abs, 'utf8');\n out.push(await parseSource(task.rel, task.lang, source));\n } catch (err) {\n out.push({\n rel: task.rel,\n lang: task.lang,\n hash: '',\n bytes: 0,\n defs: [],\n calls: [],\n imports: [],\n heritage: [],\n typeRefs: [],\n guards: [],\n warnings: [`parse failed: ${(err as Error).message}`],\n });\n }\n }\n return out;\n}\n"]}
@@ -178,6 +178,13 @@ interface RawHeritage {
178
178
  byte: number;
179
179
  kind: 'extends' | 'implements';
180
180
  }
181
+ /** A type used as a constructor parameter or field's declared type — a
182
+ * structural dependency (e.g. Spring constructor/field injection) rather than
183
+ * an invocation. Resolved to a `references` edge, not a `call` edge. */
184
+ interface RawTypeRef {
185
+ name: string;
186
+ byte: number;
187
+ }
181
188
  interface RawGuard {
182
189
  expr: string;
183
190
  line: number;
@@ -192,6 +199,7 @@ interface FileParse {
192
199
  calls: RawCall[];
193
200
  imports: RawImport[];
194
201
  heritage: RawHeritage[];
202
+ typeRefs: RawTypeRef[];
195
203
  guards: RawGuard[];
196
204
  /** Non-fatal issues (e.g. a query that failed to compile for this grammar). */
197
205
  warnings?: string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibgrate/cli",
3
- "version": "2026.711.2",
3
+ "version": "2026.717.1",
4
4
  "description": "vg — local codebase intelligence CLI + MCP server for AI coding agents: deterministic code graph, drift reporting, and version-correct library docs (Apache-2.0)",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -76,7 +76,7 @@
76
76
  "graphology-metrics": "^2.4.0",
77
77
  "graphology-shortest-path": "^2.1.0",
78
78
  "graphology-traversal": "^0.3.1",
79
- "ignore": "^7.0.0",
79
+ "ignore": "^7.0.6",
80
80
  "semver": "^7.8.5",
81
81
  "smol-toml": "^1.7.0",
82
82
  "tinypool": "^2.1.0",
@@ -1,6 +0,0 @@
1
- export { baselineCommand, runBaseline } from './chunk-4IHO6VUL.js';
2
- import './chunk-NNU2PW2H.js';
3
- import './chunk-RXP66R2E.js';
4
- import './chunk-GI6W53LM.js';
5
- //# sourceMappingURL=baseline-SRVG4ZAD.js.map
6
- //# sourceMappingURL=baseline-SRVG4ZAD.js.map