@vibgrate/cli 2026.711.1 → 2026.715.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/DOCS.md +77 -11
- package/README.md +16 -12
- package/dist/baseline-BTLZWSNS.js +6 -0
- package/dist/{baseline-V5XGS76K.js.map → baseline-BTLZWSNS.js.map} +1 -1
- package/dist/{chunk-3BWPEPWH.js → chunk-6DKWB2OI.js} +628 -4
- package/dist/chunk-6DKWB2OI.js.map +1 -0
- package/dist/{chunk-2PCL4ZME.js → chunk-C5AVF7PT.js} +306 -70
- package/dist/chunk-C5AVF7PT.js.map +1 -0
- package/dist/{chunk-MIJ3ZSSF.js → chunk-D4BPWARI.js} +260 -92
- package/dist/chunk-D4BPWARI.js.map +1 -0
- package/dist/{chunk-X5YT263H.js → chunk-VFO5UDAT.js} +21 -2
- package/dist/chunk-VFO5UDAT.js.map +1 -0
- package/dist/cli.js +1016 -97
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +20 -6
- package/dist/index.js +3 -3
- package/dist/parse-worker.d.ts +1 -1
- package/dist/parse-worker.js +2 -1
- package/dist/parse-worker.js.map +1 -1
- package/dist/{types-CXnp1uGj.d.ts → types-BgNa-FZQ.d.ts} +8 -0
- package/package.json +2 -2
- package/skills/README.md +2 -2
- package/dist/baseline-V5XGS76K.js +0 -6
- package/dist/chunk-2PCL4ZME.js.map +0 -1
- package/dist/chunk-3BWPEPWH.js.map +0 -1
- package/dist/chunk-MIJ3ZSSF.js.map +0 -1
- package/dist/chunk-X5YT263H.js.map +0 -1
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-
|
|
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-
|
|
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.
|
|
5
|
+
declare const VERSION = "2026.715.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
|
-
/**
|
|
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
|
-
/**
|
|
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;
|
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-
|
|
2
|
-
export { LANGUAGES, allLanguageIds, grammarsSourceDir, langById, langForExtension, parseSource } from './chunk-
|
|
3
|
-
export { VERSION } from './chunk-
|
|
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-D4BPWARI.js';
|
|
2
|
+
export { LANGUAGES, allLanguageIds, grammarsSourceDir, langById, langForExtension, parseSource } from './chunk-VFO5UDAT.js';
|
|
3
|
+
export { VERSION } from './chunk-C5AVF7PT.js';
|
|
4
4
|
import { redactUrlCredentials, redactSecrets } from './chunk-RXP66R2E.js';
|
|
5
5
|
import './chunk-GI6W53LM.js';
|
|
6
6
|
import { execFileSync } from 'child_process';
|
package/dist/parse-worker.d.ts
CHANGED
package/dist/parse-worker.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { setGrammarsOverride, parseSource } from './chunk-
|
|
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
|
});
|
package/dist/parse-worker.js.map
CHANGED
|
@@ -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.
|
|
3
|
+
"version": "2026.715.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.
|
|
79
|
+
"ignore": "^7.0.6",
|
|
80
80
|
"semver": "^7.8.5",
|
|
81
81
|
"smol-toml": "^1.7.0",
|
|
82
82
|
"tinypool": "^2.1.0",
|
package/skills/README.md
CHANGED
|
@@ -17,8 +17,8 @@ Each install is idempotent and repo-local (team-shareable). It writes:
|
|
|
17
17
|
|
|
18
18
|
1. A **skill file** (`SKILL.md`) — see [`vg/SKILL.md`](./vg/SKILL.md) for the
|
|
19
19
|
canonical content.
|
|
20
|
-
2. A **local MCP server** registration (`vg serve
|
|
21
|
-
it — read-only, auto-approvable tools.
|
|
20
|
+
2. A **local MCP server** registration (`vg serve`, [Vibgrate AI Context](https://vibgrate.com/library))
|
|
21
|
+
where the assistant supports it — read-only, auto-approvable tools.
|
|
22
22
|
3. An **advisory nudge** in the assistant's instructions file (opt-out, never
|
|
23
23
|
"mandatory").
|
|
24
24
|
|