@vibgrate/cli 2026.715.1 → 2026.718.2

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.
@@ -1,5 +1,5 @@
1
1
  import { hashString, langById, shortId, canonicalize, grammarSetVersion, hashBytes, langForExtension, setGrammarsOverride, parseSource } from './chunk-VFO5UDAT.js';
2
- import { writeTextFile, pathExists, readJsonFile, loadConfig, computeUpgradeImpact, getChangelogSignals, gitHistoryAvailable, buildVersionTimelines, findPackageTimeline, severityRank, projectTypeToVulnEcosystem, VERSION } from './chunk-C5AVF7PT.js';
2
+ import { writeTextFile, pathExists, readJsonFile, loadConfig, computeUpgradeImpact, getChangelogSignals, gitHistoryAvailable, buildVersionTimelines, findPackageTimeline, severityRank, projectTypeToVulnEcosystem, VERSION } from './chunk-RME7BFMU.js';
3
3
  import * as fs19 from 'fs';
4
4
  import { spawnSync, execFileSync } from 'child_process';
5
5
  import * as path19 from 'path';
@@ -11,8 +11,9 @@ import betweenness from 'graphology-metrics/centrality/betweenness.js';
11
11
  import eigenvector from 'graphology-metrics/centrality/eigenvector.js';
12
12
  import louvain from 'graphology-communities-louvain';
13
13
  import * as os from 'os';
14
- import { fileURLToPath } from 'url';
14
+ import { pathToFileURL, fileURLToPath } from 'url';
15
15
  import ts from 'typescript';
16
+ import { createRequire } from 'module';
16
17
  import { bidirectional } from 'graphology-shortest-path/unweighted.js';
17
18
  import * as crypto from 'crypto';
18
19
  import { createHash } from 'crypto';
@@ -2678,7 +2679,7 @@ async function loadEmbedder(options = {}) {
2678
2679
  options.onUnavailable?.(reason);
2679
2680
  return null;
2680
2681
  };
2681
- const mod = await import('fastembed').catch(() => null);
2682
+ const mod = await importEmbedBackend();
2682
2683
  if (!mod?.FlagEmbedding) return fail("not-installed");
2683
2684
  const cache = modelCacheDir();
2684
2685
  try {
@@ -2718,6 +2719,19 @@ async function loadEmbedder(options = {}) {
2718
2719
  return fail(isPermissionError(e) ? "no-permission" : "download-failed");
2719
2720
  }
2720
2721
  }
2722
+ async function importEmbedBackend() {
2723
+ const hostDir = process.env.VIBGRATE_EMBEDDER_PATH;
2724
+ if (hostDir) {
2725
+ try {
2726
+ const req = createRequire(path19.join(hostDir, "package.json"));
2727
+ const mod = await import(pathToFileURL(req.resolve("fastembed")).href);
2728
+ const resolved = mod?.FlagEmbedding ? mod : mod?.default;
2729
+ if (resolved?.FlagEmbedding) return resolved;
2730
+ } catch {
2731
+ }
2732
+ }
2733
+ return await import('fastembed').catch(() => null);
2734
+ }
2721
2735
  function embedInitTimeoutMs() {
2722
2736
  const n = Number(process.env.VG_EMBED_TIMEOUT_MS);
2723
2737
  return Number.isFinite(n) && n > 0 ? n : 6e4;
@@ -6582,11 +6596,14 @@ var TOOLS = [
6582
6596
  },
6583
6597
  {
6584
6598
  name: "resolve_library",
6585
- description: "Resolve a library to its canonical id and the version YOUR project uses (drift-annotated).",
6599
+ description: "Resolve a library to its canonical id and the version YOUR project uses (drift-annotated). Call once per library and reuse the returned targetId for every library_docs follow-up \u2014 never guess an id.",
6586
6600
  // Canonical §4: `query` (+ optional `context_project`). `name` kept as a back-compat alias.
6587
6601
  inputSchema: obj(
6588
6602
  {
6589
- query: { type: "string", description: "library name or query" },
6603
+ query: {
6604
+ type: "string",
6605
+ description: 'the package name as written in the dependency file. Good: "react-hook-form". Bad: "forms"'
6606
+ },
6590
6607
  name: { type: "string" },
6591
6608
  context_project: { type: "string" }
6592
6609
  },
@@ -6631,17 +6648,22 @@ var TOOLS = [
6631
6648
  },
6632
6649
  {
6633
6650
  name: "library_docs",
6634
- description: "Version-correct usage docs for a library, sliced to a token budget.",
6651
+ description: "Version-correct usage docs for a library, sliced to a token budget \u2014 official content matched to the version this project has installed, not web-search results. Ask a focused question via query; one call usually answers. After 2 calls without the section you need, stop and read the package source under node_modules instead of searching again.",
6635
6652
  // Canonical §4: `targetId`/`query`, `verbosity`, `max_tokens`. `name`/`tokens` kept as aliases.
6636
6653
  inputSchema: obj(
6637
6654
  {
6638
- targetId: { type: "string", description: "id from resolve_library" },
6639
- query: { type: "string", description: "library name or query" },
6655
+ targetId: { type: "string", description: "id from resolve_library (preferred over query)" },
6656
+ query: {
6657
+ type: "string",
6658
+ description: 'the library plus the specific need. Good: "zod refine custom error message". Bad: "zod" or "docs"'
6659
+ },
6640
6660
  name: { type: "string" },
6641
6661
  context_project: { type: "string" },
6642
6662
  verbosity: { type: "string", enum: ["concise", "balanced", "exhaustive"] },
6643
- max_tokens: { type: "number", description: "token budget" },
6644
- tokens: { type: "number" },
6663
+ // Tolerant on purpose: models often send budgets as strings — the
6664
+ // handler coerces, so don't fail validation over "4000" vs 4000.
6665
+ max_tokens: { type: ["number", "string"], description: "token budget (a numeric string is accepted)" },
6666
+ tokens: { type: ["number", "string"] },
6645
6667
  enterprise_strict: { type: "boolean" },
6646
6668
  follow_up: { type: "boolean" }
6647
6669
  },
@@ -6867,7 +6889,7 @@ function createServer(source, opts = {}) {
6867
6889
  // Routing guidance once at the server level (hosts that surface
6868
6890
  // `instructions` get it at zero per-step schema cost): the flashlight
6869
6891
  // vs the map.
6870
- instructions: 'vg is a code map. Use search_symbols to find a known name or literal string fast \u2014 a multi-word/quoted phrase runs a complete literal sweep and reports totalTextMatches, so reach for it instead of grep even for plain-string "find every occurrence" lookups. Use orient/query_graph for meaning: symptoms, relationships, and what-breaks-if. Responses are concise by default; pass response_format:"detailed" only when a node proves load-bearing. Navigate as little as possible: one good search/query usually locates the code. As soon as you have the file and line, read that file and make the edit \u2014 do not call further graph tools unless the edit fails or the match was wrong.'
6892
+ instructions: 'vg is a code map. Use search_symbols to find a known name or literal string fast \u2014 a multi-word/quoted phrase runs a complete literal sweep and reports totalTextMatches, so reach for it instead of grep even for plain-string "find every occurrence" lookups. Use orient/query_graph for meaning: symptoms, relationships, and what-breaks-if. Responses are concise by default; pass response_format:"detailed" only when a node proves load-bearing. Navigate as little as possible: one good search/query usually locates the code. As soon as you have the file and line, read that file and make the edit \u2014 do not call further graph tools unless the edit fails or the match was wrong. For how-do-I-use-this-library questions call resolve_library once, then library_docs with the returned targetId and a focused query: the docs are official and matched to the version THIS project has installed (drift-annotated) \u2014 prefer them over web search or training-data recall when they conflict. Skip them for language built-ins or APIs already shown in context. If two library_docs calls have not surfaced the section you need, read the package source under node_modules instead of searching again.'
6871
6893
  }
6872
6894
  );
6873
6895
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
@@ -7029,6 +7051,21 @@ tools improved):
7029
7051
  - **Version-correct docs:** \`vg lib <name>\` returns drift-annotated, version-
7030
7052
  specific usage docs for a library \u2014 inject these instead of guessing an API.
7031
7053
 
7054
+ ### Library-docs discipline
7055
+
7056
+ When a task needs a library's API, use the docs tools before web search or
7057
+ training-data recall \u2014 they are official content matched to the version **this
7058
+ project has installed**, and they win when the two conflict.
7059
+
7060
+ - **Workflow:** \`resolve_library\` once per library, then \`library_docs\` with the
7061
+ returned \`targetId\` and a focused query (good: "zod refine custom error
7062
+ message"; bad: "zod"). Never guess a targetId.
7063
+ - **Budget:** at most **3 docs calls per task**. If 2 \`library_docs\` calls have
7064
+ not surfaced the section you need, read the package source under
7065
+ \`node_modules\` instead of searching again.
7066
+ - **Skip the docs tools** for language built-ins, stable well-known syntax, or
7067
+ an API already shown in the current context \u2014 they add nothing there.
7068
+
7032
7069
  ## Keep it fresh
7033
7070
 
7034
7071
  The map keeps itself fresh: \`vg ask\` and the MCP tools detect changed files
@@ -7078,60 +7115,96 @@ var ASSISTANTS = [
7078
7115
  label: "Claude Code",
7079
7116
  skill: ".claude/skills/vg/SKILL.md",
7080
7117
  mcp: { file: ".mcp.json", key: "mcpServers" },
7081
- nudge: { file: "CLAUDE.md", kind: "block" }
7118
+ nudge: { file: "CLAUDE.md", kind: "block" },
7119
+ markers: ["CLAUDE.md", ".claude"],
7120
+ homeMarkers: [".claude", ".claude.json"],
7121
+ bin: ["claude"]
7082
7122
  },
7083
7123
  {
7084
7124
  id: "cursor",
7085
7125
  label: "Cursor",
7086
7126
  mcp: { file: ".cursor/mcp.json", key: "mcpServers" },
7087
- nudge: { file: ".cursor/rules/vg.mdc", kind: "file" }
7127
+ nudge: { file: ".cursor/rules/vg.mdc", kind: "file" },
7128
+ markers: [".cursor", ".cursorrules"],
7129
+ homeMarkers: [".cursor"],
7130
+ bin: ["cursor-agent"]
7088
7131
  },
7089
7132
  {
7090
7133
  id: "windsurf",
7091
7134
  label: "Windsurf",
7092
7135
  mcp: { file: ".windsurf/mcp.json", key: "mcpServers" },
7093
- nudge: { file: ".windsurf/rules/vg.md", kind: "file" }
7136
+ nudge: { file: ".windsurf/rules/vg.md", kind: "file" },
7137
+ markers: [".windsurf", ".windsurfrules"],
7138
+ homeMarkers: [".codeium/windsurf"]
7094
7139
  },
7095
7140
  {
7096
7141
  id: "vscode",
7097
7142
  label: "VS Code (Copilot Chat)",
7098
7143
  mcp: { file: ".vscode/mcp.json", key: "servers", vscode: true },
7099
- nudge: { file: ".github/copilot-instructions.md", kind: "block" }
7144
+ nudge: { file: ".github/copilot-instructions.md", kind: "block" },
7145
+ markers: [".github/copilot-instructions.md"]
7100
7146
  },
7101
7147
  {
7102
7148
  id: "codex",
7103
7149
  label: "Codex",
7104
7150
  skill: ".codex/skills/vg/SKILL.md",
7105
- nudge: { file: "AGENTS.md", kind: "block" }
7151
+ nudge: { file: "AGENTS.md", kind: "block" },
7152
+ markers: [".codex"],
7153
+ homeMarkers: [".codex"],
7154
+ bin: ["codex"]
7106
7155
  },
7107
7156
  {
7108
7157
  id: "gemini",
7109
7158
  label: "Gemini CLI",
7110
7159
  skill: ".gemini/skills/vg/SKILL.md",
7111
- nudge: { file: "GEMINI.md", kind: "block" }
7160
+ nudge: { file: "GEMINI.md", kind: "block" },
7161
+ markers: ["GEMINI.md", ".gemini"],
7162
+ homeMarkers: [".gemini"],
7163
+ bin: ["gemini"]
7112
7164
  },
7113
7165
  // Skill + advisory AGENTS.md nudge (the broad-reach common denominator). MCP
7114
7166
  // registration for these hosts is host-specific and added as their formats
7115
7167
  // stabilise; the skill + nudge work today.
7116
- { id: "opencode", label: "OpenCode", skill: ".opencode/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" } },
7117
- { id: "kilo", label: "Kilo Code", skill: ".kilo/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" } },
7118
- { id: "aider", label: "Aider", skill: ".aider/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" } },
7119
- { id: "factory", label: "Factory Droid", skill: ".factory/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" } },
7120
- { id: "trae", label: "Trae", skill: ".trae/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" } },
7121
- { id: "kiro", label: "Kiro", skill: ".kiro/skills/vg/SKILL.md", nudge: { file: ".kiro/steering/vg.md", kind: "file" } },
7122
- { id: "amp", label: "Amp", skill: ".agents/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" } },
7123
- { id: "kimi", label: "Kimi Code", skill: ".kimi/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" } },
7124
- { id: "codebuddy", label: "CodeBuddy", skill: ".codebuddy/skills/vg/SKILL.md", nudge: { file: "CODEBUDDY.md", kind: "block" } },
7125
- { id: "copilot-cli", label: "GitHub Copilot CLI", skill: ".copilot/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" } },
7126
- { id: "pi", label: "Pi", skill: ".pi/agent/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" } },
7127
- { id: "devin", label: "Devin CLI", skill: ".devin/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" } },
7128
- { id: "hermes", label: "Hermes", skill: ".hermes/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" } },
7129
- { id: "openclaw", label: "OpenClaw", skill: ".openclaw/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" } },
7130
- { id: "agents", label: "Agent-Skills (generic)", skill: ".agents/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" } }
7168
+ { id: "grok", label: "Grok CLI", skill: ".grok/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" }, markers: [".grok", "GROK.md"], homeMarkers: [".grok"], bin: ["grok"] },
7169
+ { id: "opencode", label: "OpenCode", skill: ".opencode/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" }, markers: [".opencode", "opencode.json"], homeMarkers: [".config/opencode"], bin: ["opencode"] },
7170
+ { id: "kilo", label: "Kilo Code", skill: ".kilo/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" }, markers: [".kilo", ".kilocode"], homeMarkers: [".kilocode"] },
7171
+ { id: "aider", label: "Aider", skill: ".aider/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" }, markers: [".aider", ".aider.conf.yml"], homeMarkers: [".aider.conf.yml"], bin: ["aider"] },
7172
+ { id: "factory", label: "Factory Droid", skill: ".factory/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" }, markers: [".factory"], homeMarkers: [".factory"], bin: ["droid"] },
7173
+ { id: "trae", label: "Trae", skill: ".trae/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" }, markers: [".trae"], homeMarkers: [".trae"] },
7174
+ { id: "kiro", label: "Kiro", skill: ".kiro/skills/vg/SKILL.md", nudge: { file: ".kiro/steering/vg.md", kind: "file" }, markers: [".kiro"], homeMarkers: [".kiro"] },
7175
+ { id: "amp", label: "Amp", skill: ".agents/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" }, homeMarkers: [".config/amp"], bin: ["amp"] },
7176
+ { id: "kimi", label: "Kimi Code", skill: ".kimi/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" }, markers: [".kimi"], homeMarkers: [".kimi"] },
7177
+ { id: "codebuddy", label: "CodeBuddy", skill: ".codebuddy/skills/vg/SKILL.md", nudge: { file: "CODEBUDDY.md", kind: "block" }, markers: ["CODEBUDDY.md", ".codebuddy"], homeMarkers: [".codebuddy"] },
7178
+ { id: "copilot-cli", label: "GitHub Copilot CLI", skill: ".copilot/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" }, markers: [".copilot"], homeMarkers: [".copilot"], bin: ["copilot"] },
7179
+ { id: "pi", label: "Pi", skill: ".pi/agent/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" }, markers: [".pi"], homeMarkers: [".pi"] },
7180
+ { id: "devin", label: "Devin CLI", skill: ".devin/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" }, markers: [".devin"], homeMarkers: [".devin"] },
7181
+ { id: "hermes", label: "Hermes", skill: ".hermes/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" }, markers: [".hermes"], homeMarkers: [".hermes"] },
7182
+ { id: "openclaw", label: "OpenClaw", skill: ".openclaw/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" }, markers: [".openclaw"], homeMarkers: [".openclaw"], bin: ["openclaw"] },
7183
+ { id: "agents", label: "Agent-Skills (generic)", skill: ".agents/skills/vg/SKILL.md", nudge: { file: "AGENTS.md", kind: "block" }, markers: ["AGENTS.md", ".agents"] }
7131
7184
  ];
7132
7185
  function assistantById(id) {
7133
7186
  return ASSISTANTS.find((a) => a.id === id);
7134
7187
  }
7188
+ function detectAssistants(root, opts = {}) {
7189
+ const home = opts.home ?? os.homedir();
7190
+ const which = opts.which ?? whichOnPath;
7191
+ const found = [];
7192
+ for (const assistant of ASSISTANTS) {
7193
+ const repoHit = (assistant.markers ?? []).find((m) => fs19.existsSync(path19.join(root, m)));
7194
+ if (repoHit) {
7195
+ found.push({ assistant, via: "repo", marker: repoHit });
7196
+ continue;
7197
+ }
7198
+ const homeHit = (assistant.homeMarkers ?? []).find((m) => fs19.existsSync(path19.join(home, m)));
7199
+ if (homeHit) {
7200
+ found.push({ assistant, via: "home", marker: homeHit });
7201
+ continue;
7202
+ }
7203
+ const binHit = (assistant.bin ?? []).find((b) => which(b) !== null);
7204
+ if (binHit) found.push({ assistant, via: "path", marker: binHit });
7205
+ }
7206
+ return found;
7207
+ }
7135
7208
  function detectServeLaunch(which = whichOnPath) {
7136
7209
  const vg = which("vg");
7137
7210
  if (vg && isInstalledOwnBinary(vg)) return { command: "vg", args: ["serve"] };
@@ -7491,6 +7564,6 @@ function spdx(ctx) {
7491
7564
  return JSON.stringify(doc, null, 2) + "\n";
7492
7565
  }
7493
7566
 
7494
- export { ASSISTANTS, CLI_TOOL_ALIASES, CliError, ECOSYSTEMS, ExitCode, FREE_PACK, GraphIndex, GraphSource, NPX_INVOCATION, ResourceLimitError, SCHEMA_VERSION, SKIP_DIRS, SKIP_FILES, TOOLS, UsageError, addLibrary, analyze, applyCoverage, applyStaticTestLinkage, assessDocQuality, assistantById, availableRegionIds, buildFacts, buildGraph, buildModuleResolver, cacheDir, catalogPath, clearModelCache, clearStoredCredentials, cosine, countPending, countTokens, coveringTests, createServer, createWorkspaceDsn, credentialsPath, dashHostForIngestHost, decodeScipIndex, defaultGraphPath, detectRunner, detectServeLaunch, discover, discoverModels, driftCount, driftFor, dsnCommand, embeddingsCached, enrichOnline, ensureGitignored, epistemicBreakdown, exportGraph, fetchHostedDocsCached, findGitRoot, findNodes, formatForExt, getNodeEmbeddings, gitignoreEntryForCredentials, groundGraph, hasDrift, identifierParts, impactOf, indexFor, ingestHostForRegionId, installAssistant, inventory, isModelReady, isTestFile, libDir, libId, loadCatalog, loadCoverage, loadEmbedder, loadGraph, loadSnapshot, localApiSurface, localPackageDocs, modelCacheInfo, nodeById, nodeEmbedText, parseDsn, parseGraph, parseJsonc, probeFreshness, publishPrivateLibrary, pushCommand, queryGraph, queryGraphSemantic, readDoc, readSavings, readScanArtifact, readUsage, recordCliCall, recordSaving, refreshIfStale, relativeResolver, renderHtml, renderReport, resolveCliInvocation, resolveDsn, resolveEmbedModel, resolveIngestHost, resolveLib, resolveLimits, resolveOne, resolveVersion, saveCatalog, savingsRecorded, scipEdges, selectForBudget, serializeGraph, serveStdio, shortestPath, stableStringify, symbolsFromApi, testsToRun, unavailableMessage, uninstallAssistant, uploadScanArtifact, usageError, verifyDeterminism, vibgrateDir, writeArtifacts, writeNavigationConfig, writeSnapshot, writeStoredCredentials };
7495
- //# sourceMappingURL=chunk-D4BPWARI.js.map
7496
- //# sourceMappingURL=chunk-D4BPWARI.js.map
7567
+ export { ASSISTANTS, CLI_TOOL_ALIASES, CliError, ECOSYSTEMS, ExitCode, FREE_PACK, GraphIndex, GraphSource, NPX_INVOCATION, ResourceLimitError, SCHEMA_VERSION, SKIP_DIRS, SKIP_FILES, TOOLS, UsageError, addLibrary, analyze, applyCoverage, applyStaticTestLinkage, assessDocQuality, assistantById, availableRegionIds, buildFacts, buildGraph, buildModuleResolver, cacheDir, catalogPath, clearModelCache, clearStoredCredentials, cosine, countPending, countTokens, coveringTests, createServer, createWorkspaceDsn, credentialsPath, dashHostForIngestHost, decodeScipIndex, defaultGraphPath, detectAssistants, detectRunner, detectServeLaunch, discover, discoverModels, driftCount, driftFor, dsnCommand, embeddingsCached, enrichOnline, ensureGitignored, epistemicBreakdown, exportGraph, fetchHostedDocsCached, findGitRoot, findNodes, formatForExt, getNodeEmbeddings, gitignoreEntryForCredentials, groundGraph, hasDrift, homeCredentialsPath, hostedBase, identifierParts, impactOf, indexFor, ingestHostForRegionId, installAssistant, inventory, isModelReady, isTestFile, libDir, libId, loadCatalog, loadCoverage, loadEmbedder, loadGraph, loadSnapshot, localApiSurface, localPackageDocs, modelCacheInfo, nodeById, nodeEmbedText, parseDsn, parseGraph, parseJsonc, probeFreshness, projectCredentialsPath, publishPrivateLibrary, pushCommand, queryGraph, queryGraphSemantic, readDoc, readSavings, readScanArtifact, readStoredCredentials, readUsage, recordCliCall, recordSaving, refreshIfStale, relativeResolver, renderHtml, renderReport, resolveCliInvocation, resolveDsn, resolveEmbedModel, resolveIngestHost, resolveLib, resolveLimits, resolveOne, resolveVersion, saveCatalog, savingsRecorded, scipEdges, selectForBudget, serializeGraph, serveStdio, shortestPath, stableStringify, symbolsFromApi, testsToRun, unavailableMessage, uninstallAssistant, uploadScanArtifact, usageError, verifyDeterminism, vibgrateDir, writeArtifacts, writeNavigationConfig, writeSnapshot, writeStoredCredentials };
7568
+ //# sourceMappingURL=chunk-H5M7CXE6.js.map
7569
+ //# sourceMappingURL=chunk-H5M7CXE6.js.map