@vibgrate/cli 2026.818.1 → 2026.818.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.
Files changed (111) hide show
  1. package/dist/{agent-CUK24AWF.js → agent-X6VYCE63.js} +13 -13
  2. package/dist/{agent-CUK24AWF.js.map → agent-X6VYCE63.js.map} +1 -1
  3. package/dist/{approvals-YFOU6GVB.js → approvals-TPQFQSWG.js} +5 -5
  4. package/dist/{approvals-YFOU6GVB.js.map → approvals-TPQFQSWG.js.map} +1 -1
  5. package/dist/attach-G5JUIWIT.js +10 -0
  6. package/dist/{attach-6S3XS7VO.js.map → attach-G5JUIWIT.js.map} +1 -1
  7. package/dist/{baseline-OBZJRCCP.js → baseline-DXI64VLW.js} +3 -3
  8. package/dist/{baseline-OBZJRCCP.js.map → baseline-DXI64VLW.js.map} +1 -1
  9. package/dist/{chunk-WVTGF2MP.js → chunk-2C33WR5O.js} +3 -3
  10. package/dist/{chunk-WVTGF2MP.js.map → chunk-2C33WR5O.js.map} +1 -1
  11. package/dist/chunk-4NTNMT6T.js +6 -0
  12. package/dist/{chunk-SUD54UGN.js.map → chunk-4NTNMT6T.js.map} +1 -1
  13. package/dist/chunk-5IQBIXHS.js +23 -0
  14. package/dist/chunk-5IQBIXHS.js.map +1 -0
  15. package/dist/{chunk-43ESHUM5.js → chunk-6PFHDHOL.js} +8 -8
  16. package/dist/{chunk-43ESHUM5.js.map → chunk-6PFHDHOL.js.map} +1 -1
  17. package/dist/{chunk-LHQYYBCH.js → chunk-AEJYA6HZ.js} +5 -5
  18. package/dist/{chunk-LHQYYBCH.js.map → chunk-AEJYA6HZ.js.map} +1 -1
  19. package/dist/{chunk-J7CVFTLG.js → chunk-B4EXD5LK.js} +5 -5
  20. package/dist/{chunk-J7CVFTLG.js.map → chunk-B4EXD5LK.js.map} +1 -1
  21. package/dist/{chunk-E7RVA2ZI.js → chunk-BMOFJIMG.js} +3 -3
  22. package/dist/{chunk-E7RVA2ZI.js.map → chunk-BMOFJIMG.js.map} +1 -1
  23. package/dist/{chunk-ZWFMJUXC.js → chunk-E3O5UKNA.js} +7 -7
  24. package/dist/{chunk-ZWFMJUXC.js.map → chunk-E3O5UKNA.js.map} +1 -1
  25. package/dist/{chunk-NO4BMW7M.js → chunk-E53WBVUQ.js} +6 -3
  26. package/dist/chunk-E53WBVUQ.js.map +1 -0
  27. package/dist/{chunk-FFYO7G3T.js → chunk-FFXGWFAE.js} +3 -3
  28. package/dist/{chunk-FFYO7G3T.js.map → chunk-FFXGWFAE.js.map} +1 -1
  29. package/dist/{chunk-H6RV2OAX.js → chunk-HF6R73UC.js} +78 -10
  30. package/dist/chunk-HF6R73UC.js.map +1 -0
  31. package/dist/{chunk-4QAMUBAC.js → chunk-JGA63RGF.js} +11 -11
  32. package/dist/{chunk-4QAMUBAC.js.map → chunk-JGA63RGF.js.map} +1 -1
  33. package/dist/{chunk-SBHK4ECM.js → chunk-KU7FI5EV.js} +3 -3
  34. package/dist/{chunk-SBHK4ECM.js.map → chunk-KU7FI5EV.js.map} +1 -1
  35. package/dist/{chunk-DM6MJ7IF.js → chunk-L2OS4WHT.js} +4 -4
  36. package/dist/{chunk-DM6MJ7IF.js.map → chunk-L2OS4WHT.js.map} +1 -1
  37. package/dist/chunk-LJSJX6U4.js +38 -0
  38. package/dist/chunk-LJSJX6U4.js.map +1 -0
  39. package/dist/{chunk-DUCEKH7Q.js → chunk-MRZHNUN7.js} +4 -4
  40. package/dist/{chunk-DUCEKH7Q.js.map → chunk-MRZHNUN7.js.map} +1 -1
  41. package/dist/{chunk-G7ZFSH5J.js → chunk-NJQZRM55.js} +6 -38
  42. package/dist/chunk-NJQZRM55.js.map +1 -0
  43. package/dist/{chunk-OS4YFOFJ.js → chunk-NKLYDSB7.js} +7 -7
  44. package/dist/{chunk-OS4YFOFJ.js.map → chunk-NKLYDSB7.js.map} +1 -1
  45. package/dist/{chunk-X4DECFUG.js → chunk-O5IJDMTB.js} +4 -4
  46. package/dist/{chunk-X4DECFUG.js.map → chunk-O5IJDMTB.js.map} +1 -1
  47. package/dist/{chunk-J3A3O4IA.js → chunk-PRHH4DVO.js} +3 -3
  48. package/dist/{chunk-J3A3O4IA.js.map → chunk-PRHH4DVO.js.map} +1 -1
  49. package/dist/{chunk-OVUZWR67.js → chunk-RHKOUPWT.js} +3 -3
  50. package/dist/{chunk-OVUZWR67.js.map → chunk-RHKOUPWT.js.map} +1 -1
  51. package/dist/{chunk-I3PKYYRP.js → chunk-V6WONSIK.js} +4 -4
  52. package/dist/{chunk-I3PKYYRP.js.map → chunk-V6WONSIK.js.map} +1 -1
  53. package/dist/{chunk-Q7TWHJJ6.js → chunk-VMAIDM4K.js} +3 -3
  54. package/dist/{chunk-Q7TWHJJ6.js.map → chunk-VMAIDM4K.js.map} +1 -1
  55. package/dist/{chunk-MHJBIGWV.js → chunk-VQ5KMHW6.js} +117 -23
  56. package/dist/chunk-VQ5KMHW6.js.map +1 -0
  57. package/dist/{chunk-GKZU6MII.js → chunk-X2MQ7UFL.js} +109 -23
  58. package/dist/chunk-X2MQ7UFL.js.map +1 -0
  59. package/dist/{chunk-6LY3JH6S.js → chunk-YF54UMOU.js} +3 -3
  60. package/dist/{chunk-6LY3JH6S.js.map → chunk-YF54UMOU.js.map} +1 -1
  61. package/dist/{chunk-DH6EDSQP.js → chunk-ZUOBPKVK.js} +3 -3
  62. package/dist/{chunk-DH6EDSQP.js.map → chunk-ZUOBPKVK.js.map} +1 -1
  63. package/dist/cli.js +234 -108
  64. package/dist/cli.js.map +1 -1
  65. package/dist/client-UQIELEEZ.js +8 -0
  66. package/dist/client-UQIELEEZ.js.map +1 -0
  67. package/dist/{daemon-4Q5QBBAF.js → daemon-GUMWMKCA.js} +11 -11
  68. package/dist/{daemon-4Q5QBBAF.js.map → daemon-GUMWMKCA.js.map} +1 -1
  69. package/dist/embed-worker-main.js +3 -3
  70. package/dist/{ensure-map-B2PS5ALS.js → ensure-map-FHDJTO7Y.js} +20 -19
  71. package/dist/{ensure-map-B2PS5ALS.js.map → ensure-map-FHDJTO7Y.js.map} +1 -1
  72. package/dist/{graph-backend-EEXMD6XY.js → graph-backend-W2D3HRRD.js} +8 -8
  73. package/dist/{graph-backend-EEXMD6XY.js.map → graph-backend-W2D3HRRD.js.map} +1 -1
  74. package/dist/index.d.ts +29 -2
  75. package/dist/index.js +20 -18
  76. package/dist/index.js.map +1 -1
  77. package/dist/{interactive-KEPGE5HD.js → interactive-2MK4TLRD.js} +32 -31
  78. package/dist/interactive-2MK4TLRD.js.map +1 -0
  79. package/dist/load-4R4HYMBB.js +11 -0
  80. package/dist/{load-H5HAME25.js.map → load-4R4HYMBB.js.map} +1 -1
  81. package/dist/parse-worker.js +2 -2
  82. package/dist/publish-7YHRTBRA.js +9 -0
  83. package/dist/publish-7YHRTBRA.js.map +1 -0
  84. package/dist/{run-outcome-V3L4GAN4.js → run-outcome-H5GVDDZJ.js} +5 -5
  85. package/dist/{run-outcome-V3L4GAN4.js.map → run-outcome-H5GVDDZJ.js.map} +1 -1
  86. package/dist/{runtime-session-M2FRGTDS.js → runtime-session-JBIHHH5N.js} +11 -11
  87. package/dist/{runtime-session-M2FRGTDS.js.map → runtime-session-JBIHHH5N.js.map} +1 -1
  88. package/dist/semantic-status-2JFLIQQJ.js +4 -0
  89. package/dist/semantic-status-2JFLIQQJ.js.map +1 -0
  90. package/dist/{session-77YXFUC7.js → session-N5IU4K5Q.js} +8 -8
  91. package/dist/{session-77YXFUC7.js.map → session-N5IU4K5Q.js.map} +1 -1
  92. package/dist/{stream-json-S6E3W2US.js → stream-json-4WLSUF6I.js} +13 -13
  93. package/dist/{stream-json-S6E3W2US.js.map → stream-json-4WLSUF6I.js.map} +1 -1
  94. package/dist/version-DTEU3SQD.js +4 -0
  95. package/dist/{version-VRZT5G4T.js.map → version-DTEU3SQD.js.map} +1 -1
  96. package/dist/{vg-mcp-bridge-HCPJWJKJ.js → vg-mcp-bridge-KDVYIMFX.js} +9 -9
  97. package/dist/{vg-mcp-bridge-HCPJWJKJ.js.map → vg-mcp-bridge-KDVYIMFX.js.map} +1 -1
  98. package/dist/{vgd-R2PNIDEP.js → vgd-M7UOPWLB.js} +10 -10
  99. package/dist/vgd-M7UOPWLB.js.map +1 -0
  100. package/package.json +1 -1
  101. package/dist/attach-6S3XS7VO.js +0 -9
  102. package/dist/chunk-G7ZFSH5J.js.map +0 -1
  103. package/dist/chunk-GKZU6MII.js.map +0 -1
  104. package/dist/chunk-H6RV2OAX.js.map +0 -1
  105. package/dist/chunk-MHJBIGWV.js.map +0 -1
  106. package/dist/chunk-NO4BMW7M.js.map +0 -1
  107. package/dist/chunk-SUD54UGN.js +0 -6
  108. package/dist/interactive-KEPGE5HD.js.map +0 -1
  109. package/dist/load-H5HAME25.js +0 -11
  110. package/dist/version-VRZT5G4T.js +0 -4
  111. package/dist/vgd-R2PNIDEP.js.map +0 -1
package/dist/cli.js CHANGED
@@ -1,64 +1,66 @@
1
1
  #!/usr/bin/env node
2
+ import { fetchCatalog, resolveProviders } from './chunk-FFXGWFAE.js';
3
+ import { telemetryOptOut, StatsSharer, statsEndpoint, isCI } from './chunk-BMOFJIMG.js';
2
4
  import { loadAdvancedScanHook, baselineCommand } from './chunk-6ABMV74F.js';
3
- import { fetchCatalog, resolveProviders } from './chunk-FFYO7G3T.js';
4
- import { sha256Hex, generateKeypair, dssePae, DSSE_PAYLOAD_TYPE, keyId, registerBuild, ProgressBar, printLogo, runBuild } from './chunk-H6RV2OAX.js';
5
- export { runBuild } from './chunk-H6RV2OAX.js';
6
- import { telemetryOptOut, StatsSharer, statsEndpoint, isCI } from './chunk-E7RVA2ZI.js';
5
+ import { sha256Hex, generateKeypair, dssePae, DSSE_PAYLOAD_TYPE, keyId, registerBuild, LiveStatus, ProgressBar, printLogo, runBuild } from './chunk-HF6R73UC.js';
6
+ export { runBuild } from './chunk-HF6R73UC.js';
7
+ import { readOrchestratorState, writeOrchestratorState, parseMode, setDefaultMode, recommendMode, activePin, resolveMode, providerForBackend, QUALIFIED_PACKS, pinPack, unpinPack, buildOrchestratorStatus } from './chunk-NZELMYT4.js';
7
8
  import { defaultProcessEndpoint, startProcessHostServer, resolveInferenceIsolation } from './chunk-JFE7XCAE.js';
8
- import { runCodeSession } from './chunk-LHQYYBCH.js';
9
- import { CONTEXT_POLICY_VERSION, computeFcsReport, renderFcsReportMarkdown, createTrajectoryCollector, runAgent } from './chunk-4QAMUBAC.js';
9
+ import { runCodeSession } from './chunk-AEJYA6HZ.js';
10
+ import { CONTEXT_POLICY_VERSION, computeFcsReport, renderFcsReportMarkdown, createTrajectoryCollector, runAgent } from './chunk-JGA63RGF.js';
10
11
  import './chunk-543E6WDJ.js';
12
+ import './chunk-ZUOBPKVK.js';
13
+ import './chunk-O5IJDMTB.js';
11
14
  import { parseReasoningEffort, summarizeDiffs, ScriptedProvider } from './chunk-74UBGF4P.js';
12
15
  import './chunk-7AVYKZEM.js';
13
16
  import { buildModelInstallPlan } from './chunk-I5LP55B6.js';
14
17
  import { ensurePackage, ensureUnavailableMessage } from './chunk-3HNPVXUK.js';
18
+ import { vgdVersionSkew, restartVgdIfRunning, stopVgd, registerDaemon, rootOf, requireGraph } from './chunk-E3O5UKNA.js';
19
+ import { readGlobal, applyGlobalOptions } from './chunk-YENM3HT7.js';
15
20
  import { ActivityLog } from './chunk-H5Q4JUY4.js';
21
+ import { disableColor, info, c, json, out } from './chunk-CT5BS56U.js';
16
22
  import { init_resolve_ollama, gatherSystemMemory, resolveOllamaBinary, hasOllamaBinary, resolve_ollama_exports } from './chunk-FJG5AXKZ.js';
17
- import { readOrchestratorState, writeOrchestratorState, parseMode, setDefaultMode, recommendMode, activePin, resolveMode, providerForBackend, QUALIFIED_PACKS, pinPack, unpinPack, buildOrchestratorStatus } from './chunk-NZELMYT4.js';
18
23
  import { fmt, estimateModelBytes } from './chunk-7N4Y3E47.js';
19
- import './chunk-DH6EDSQP.js';
20
- import './chunk-X4DECFUG.js';
21
- import { vgdVersionSkew, restartVgdIfRunning, stopVgd, registerDaemon, rootOf, requireGraph } from './chunk-ZWFMJUXC.js';
22
- import { readGlobal, applyGlobalOptions } from './chunk-YENM3HT7.js';
23
- import { disableColor, info, c, json, out } from './chunk-CT5BS56U.js';
24
- import { isManifest, isDependencyFile, manifestHash, loadScanCache, writeScanCache, manifestKind, findPackageLine, endOfLine, findRuntimeLine } from './chunk-MHJBIGWV.js';
24
+ import { isManifest, isDependencyFile, manifestHash, loadScanCache, writeScanCache, manifestKind, findPackageLine, endOfLine, findRuntimeLine } from './chunk-VQ5KMHW6.js';
25
25
  import { clearHostSessionPool, acquireHostSession, generateOnSession, listHostSessions, hostSessionPoolSize } from './chunk-3LOWJSAF.js';
26
26
  import { buildIdentifierTrieFromGraph } from './chunk-5HYCB55P.js';
27
27
  import './chunk-IS7VTH2Q.js';
28
28
  import './chunk-IZDH67DX.js';
29
- import { DaemonSemanticSession, serveStdio, exportGraph, GraphSource, createServer, formatForExt, RefreshScheduler } from './chunk-GKZU6MII.js';
30
- import { refreshIfStale } from './chunk-J7CVFTLG.js';
31
- import { driftCount, ASSISTANTS, detectAssistants, isAssistantInstalled, detectServeLaunch, installAssistant, writeNavigationConfig, uninstallAssistant, buildGraph, writeSnapshot, probeFreshness, assistantById, SMALL_REPO_FILES } from './chunk-43ESHUM5.js';
32
- import { resolveDsn, createWorkspaceDsn, writeStoredCredentials, credentialsPath, findGitRoot, ensureGitignored, gitignoreEntryForCredentials, clearStoredCredentials, parseDsn as parseDsn$1, uploadScanArtifact, dsnCommand, pushCommand, countTokens, shortestPath, pathDisconnect, testsToRun, detectRunner, coveringTests, FREE_PACK, readScanArtifact, publishPrivateLibrary, assessDocQuality, symbolsFromApi, fetchHostedDocsCached, selectForBudget, hostedBase, readStoredCredentials, projectCredentialsPath, homeCredentialsPath } from './chunk-OS4YFOFJ.js';
33
- import { writeDefaultConfig, parseDsn, detectVcs, computeRepoFingerprint, resolveRepositoryName, fetchScanPreflight, runCoreScan, loadConfig, prepareCompressedUpload, computeDriftScore, titleBox, projectTypeToVulnEcosystem, driftBar, gitHistoryAvailable, buildVersionTimelines, findPackageAnyEcosystem, normalizeConstraint, findVersionCrossings, versionSatisfies, refineArchitectureWithAstRoles, refineArchitectureWithGraph, PROJECT_TYPE_TO_OSV_ECOSYSTEM, fetchRiskySymbols, perDependencyDrift, boundaryProfileRules } from './chunk-V2UGRUTL.js';
29
+ import { DaemonSemanticSession, serveStdio, exportGraph, GraphSource, createServer, formatForExt, RefreshScheduler } from './chunk-X2MQ7UFL.js';
30
+ import { refreshIfStale } from './chunk-B4EXD5LK.js';
31
+ import { driftCount, ASSISTANTS, detectAssistants, isAssistantInstalled, detectServeLaunch, installAssistant, writeNavigationConfig, uninstallAssistant, buildGraph, writeSnapshot, probeFreshness, assistantById, SMALL_REPO_FILES } from './chunk-6PFHDHOL.js';
32
+ import { resolveDsn, createWorkspaceDsn, writeStoredCredentials, credentialsPath, findGitRoot, ensureGitignored, gitignoreEntryForCredentials, clearStoredCredentials, parseDsn as parseDsn$1, uploadScanArtifact, dsnCommand, pushCommand, countTokens, shortestPath, pathDisconnect, testsToRun, detectRunner, coveringTests, FREE_PACK, readScanArtifact, publishPrivateLibrary, assessDocQuality, symbolsFromApi, fetchHostedDocsCached, selectForBudget, hostedBase, readStoredCredentials, projectCredentialsPath, homeCredentialsPath } from './chunk-NKLYDSB7.js';
34
33
  import { resolveIngestHost, dashHostForIngestHost, availableRegionIds, ingestHostForRegionId } from './chunk-HTLDXEHW.js';
34
+ import { writeDefaultConfig, parseDsn, detectVcs, computeRepoFingerprint, resolveRepositoryName, fetchScanPreflight, runCoreScan, loadConfig, prepareCompressedUpload, computeDriftScore, titleBox, projectTypeToVulnEcosystem, driftBar, gitHistoryAvailable, buildVersionTimelines, findPackageAnyEcosystem, normalizeConstraint, findVersionCrossings, versionSatisfies, refineArchitectureWithAstRoles, refineArchitectureWithGraph, PROJECT_TYPE_TO_OSV_ECOSYSTEM, fetchRiskySymbols, perDependencyDrift, boundaryProfileRules } from './chunk-V2UGRUTL.js';
35
35
  import './chunk-VIWZ4QT7.js';
36
- import { catalogPath, libDir, loadCatalog, driftFor, addLibrary, resolveLib, libId, resolveVersion, readDoc, localPackageDocs, localApiSurface } from './chunk-OVUZWR67.js';
37
- import { recordCliCall, CLI_TOOL_ALIASES, savingsLedgerPath, clearSavings, readSavings, readUsage, readModelSavings, CAPSULE_RANKING_VERSION, SAVINGS_TOOLS, sanitizeClient } from './chunk-6LY3JH6S.js';
36
+ import { catalogPath, libDir, loadCatalog, driftFor, addLibrary, resolveLib, libId, resolveVersion, readDoc, localPackageDocs, localApiSurface } from './chunk-RHKOUPWT.js';
37
+ import { recordCliCall, CLI_TOOL_ALIASES, savingsLedgerPath, clearSavings, readSavings, readUsage, readModelSavings, CAPSULE_RANKING_VERSION, SAVINGS_TOOLS, sanitizeClient } from './chunk-YF54UMOU.js';
38
38
  import { discoverModels } from './chunk-CQDUBAQY.js';
39
39
  import { freeBytesOnVolume, weightStoreDir, listCachedWeights, ensureWeightCached, catalogIntegrityReport } from './chunk-OV4KGXPD.js';
40
+ import { CliError, ExitCode, usageError, engineUnavailable } from './chunk-MS6V5XKB.js';
41
+ import { attachVgd } from './chunk-NJQZRM55.js';
40
42
  import { pathExists as pathExists$1, parseExcludePatterns } from './chunk-NG4KIJW6.js';
41
43
  import { ensureDir, pathExists, readJsonFile, writeTextFile, writeJsonFile } from './chunk-CRAMOEBE.js';
42
- import { CliError, ExitCode, usageError, engineUnavailable } from './chunk-MS6V5XKB.js';
44
+ import './chunk-5IQBIXHS.js';
43
45
  import { init_cli_invocation, resolveCliInvocation, NPX_INVOCATION } from './chunk-EZ7UC5Y5.js';
46
+ import { publishGraphToVgd } from './chunk-LJSJX6U4.js';
44
47
  import { isRelevantChange } from './chunk-DBX3DL27.js';
45
48
  import { discover, SKIP_DIRS } from './chunk-POOL355F.js';
46
49
  import { inventory, enrichOnline, ECOSYSTEMS } from './chunk-6BEBJCK4.js';
47
50
  import { resolveOne } from './chunk-J7LKEB2R.js';
48
- import { queryGraphSemantic, queryGraph, indexFor, impactOf } from './chunk-DUCEKH7Q.js';
49
- import { loadGraph, loadGraphPreferIndex, SCHEMA_VERSION } from './chunk-SBHK4ECM.js';
50
- import './chunk-5I4VSBWQ.js';
51
- import { attachVgd, publishGraphToVgd } from './chunk-G7ZFSH5J.js';
52
- import './chunk-NO4BMW7M.js';
51
+ import { queryGraphSemantic, queryGraph, indexFor, impactOf } from './chunk-MRZHNUN7.js';
52
+ import { loadGraph, loadGraphPreferIndex, SCHEMA_VERSION } from './chunk-KU7FI5EV.js';
53
+ import './chunk-E53WBVUQ.js';
53
54
  import './chunk-NDNNOAS6.js';
54
- import { resolvedGrammarFiles, TOOLCHAIN_GRAMMARS, resolveToolchainGrammar, grammarSetVersion, fileRolesFromParseCache } from './chunk-J3A3O4IA.js';
55
+ import './chunk-5I4VSBWQ.js';
56
+ import { resolvedGrammarFiles, TOOLCHAIN_GRAMMARS, resolveToolchainGrammar, grammarSetVersion, fileRolesFromParseCache } from './chunk-PRHH4DVO.js';
55
57
  import './chunk-T7RSQ5WD.js';
56
58
  import './chunk-6WRG7VDO.js';
57
- import { embeddingsCached, resolveEmbedModel, loadEmbedder, getNodeEmbeddings, unavailableMessage, countPending, modelCacheInfo, embeddingsPath, clearModelCache, withTimeout } from './chunk-WVTGF2MP.js';
58
- import { resetRelevanceProviderCache, loadRelevanceProvider, relevanceModuleDir, resolveGraphPath, analyzeQuestion, loadTopicTags, renderReport, loadGraphFileWithSnapshot, writeArtifacts, vibgrateDir, mapFileExists, ensureVibgrateGitignore } from './chunk-Q7TWHJJ6.js';
59
+ import { embeddingsCached, resolveEmbedModel, loadEmbedder, getNodeEmbeddings, unavailableMessage, countPending, modelCacheInfo, embeddingsPath, clearModelCache, withTimeout } from './chunk-2C33WR5O.js';
60
+ import { resetRelevanceProviderCache, loadRelevanceProvider, relevanceModuleDir, resolveGraphPath, analyzeQuestion, loadTopicTags, renderReport, loadGraphFileWithSnapshot, writeArtifacts, vibgrateDir, mapFileExists, ensureVibgrateGitignore } from './chunk-VMAIDM4K.js';
59
61
  import { cacheDir } from './chunk-MVPRPSXU.js';
60
62
  import { serializeGraph, stableStringify, parseGraph } from './chunk-O3LABX6I.js';
61
- import { VERSION } from './chunk-SUD54UGN.js';
63
+ import { VERSION } from './chunk-4NTNMT6T.js';
62
64
  import './chunk-BWPBB45M.js';
63
65
  import { canonicalize, hashString } from './chunk-JFGYT6BI.js';
64
66
  import './chunk-BPF3YX2U.js';
@@ -166,6 +168,8 @@ function registerAsk(program) {
166
168
  }
167
169
  const { graph } = requireGraph(global);
168
170
  const activity = new ActivityLog();
171
+ const live = !global.json ? new LiveStatus() : null;
172
+ live?.start("attaching to vgd\u2026");
169
173
  const attached = await activity.time(
170
174
  "attach",
171
175
  () => attachVgd(root3, {
@@ -186,55 +190,64 @@ function registerAsk(program) {
186
190
  let note = "";
187
191
  const relevance = await analyzeQuestion(q);
188
192
  const topicTags = relevance ? await loadTopicTags(graph, root3, resolveGraphPath(root3, global.graph)) : null;
189
- if (wantSemantic) {
190
- const ranked = attached.status === "attached" && attached.repositoryId ? await activity.time(
191
- "semantic",
192
- // The attach above already resolved (and, if needed, published)
193
- // the slot — this session only sends the question.
194
- () => new DaemonSemanticSession(root3, { socketPath: attached.socketPath, publish: false }).rank(q),
195
- (r) => r ? { outcome: "ok", detail: `ranked in the daemon \xB7 ${r.ranked.length} of ${r.vectors} vector(s)${r.model ? ` \xB7 ${r.model}` : ""}` } : { outcome: "skip", detail: "daemon has no usable index \u2014 embedding in this process" }
196
- ) : null;
197
- if (ranked) {
198
- result = await queryGraphSemantic(graph, q, {
199
- budget,
200
- semanticRanked: ranked.ranked,
201
- relevance,
202
- topicTags
203
- });
204
- mode = `semantic (vgd${ranked.model ? `, ${ranked.model}` : ""})`;
205
- activity.add("answer", "ok", "answered from the daemon index \u2014 no local model load");
206
- } else {
207
- const firstRun = !embeddingsCached(root3, resolveEmbedModel());
208
- if (!global.json && firstRun) {
209
- info(c.dim(" preparing semantic search (first use embeds the map; cached, resumable & offline after)\u2026"));
210
- }
211
- let reason;
212
- let detail;
213
- const embedder = await loadEmbedder({
214
- local: global.local,
215
- onUnavailable: (r, d) => {
216
- reason = r;
217
- detail = d;
218
- }
219
- });
220
- if (embedder) {
221
- const bar = !global.json && firstRun ? new ProgressBar(c.dim("embedding")) : void 0;
222
- const vectors = await getNodeEmbeddings(graph, embedder, root3, bar ? (d, t) => bar.update(d, t) : void 0);
223
- bar?.done();
224
- result = await queryGraphSemantic(graph, q, { budget, embedder, nodeVectors: vectors, relevance, topicTags });
225
- mode = `semantic (${embedder.id})`;
226
- activity.add("answer", "ok", `answered in this process \xB7 ${embedder.id} \xB7 ${vectors.size} vector(s)`);
193
+ try {
194
+ if (wantSemantic) {
195
+ live?.set("asking the daemon\u2026");
196
+ const ranked = attached.status === "attached" && attached.repositoryId ? await activity.time(
197
+ "semantic",
198
+ // The attach above already resolved (and, if needed, published)
199
+ // the slot this session only sends the question.
200
+ () => new DaemonSemanticSession(root3, { socketPath: attached.socketPath, publish: false }).rank(q, void 0, {
201
+ onProgress: (p) => live?.set(p.detail)
202
+ }),
203
+ (r) => r ? { outcome: "ok", detail: `ranked in the daemon \xB7 ${r.ranked.length} of ${r.vectors} vector(s)${r.model ? ` \xB7 ${r.model}` : ""}` } : { outcome: "skip", detail: "daemon index unavailable \u2014 embedding in this process" }
204
+ ) : null;
205
+ if (ranked) {
206
+ live?.set("answering from the daemon index\u2026");
207
+ result = await queryGraphSemantic(graph, q, {
208
+ budget,
209
+ semanticRanked: ranked.ranked,
210
+ relevance,
211
+ topicTags
212
+ });
213
+ mode = `semantic (vgd${ranked.model ? `, ${ranked.model}` : ""})`;
214
+ activity.add("answer", "ok", "answered from the daemon index \u2014 no local model load");
227
215
  } else {
228
- result = queryGraph(graph, q, { budget, relevance, topicTags });
229
- note = reason ? unavailableMessage(reason) : "semantic unavailable; used lexical";
230
- if (detail) note += ` (${detail})`;
231
- activity.add("answer", "warn", `lexical only \u2014 ${note}`);
216
+ const firstRun = !embeddingsCached(root3, resolveEmbedModel());
217
+ live?.set(
218
+ firstRun ? "loading the embedding model (first use; then cached and offline)\u2026" : "embedding the map in this process\u2026"
219
+ );
220
+ let reason;
221
+ let detail;
222
+ const embedder = await loadEmbedder({
223
+ local: global.local,
224
+ onUnavailable: (r, d) => {
225
+ reason = r;
226
+ detail = d;
227
+ }
228
+ });
229
+ if (embedder) {
230
+ live?.stop();
231
+ const bar = !global.json ? new ProgressBar(c.dim("embedding")) : void 0;
232
+ const vectors = await getNodeEmbeddings(graph, embedder, root3, bar ? (d, t) => bar.update(d, t) : void 0);
233
+ bar?.done();
234
+ result = await queryGraphSemantic(graph, q, { budget, embedder, nodeVectors: vectors, relevance, topicTags });
235
+ mode = `semantic (${embedder.id})`;
236
+ activity.add("answer", "ok", `answered in this process \xB7 ${embedder.id} \xB7 ${vectors.size} vector(s)`);
237
+ } else {
238
+ result = queryGraph(graph, q, { budget, relevance, topicTags });
239
+ note = reason ? unavailableMessage(reason) : "semantic unavailable; used lexical";
240
+ if (detail) note += ` (${detail})`;
241
+ activity.add("answer", "warn", `lexical only \u2014 ${note}`);
242
+ }
232
243
  }
244
+ } else {
245
+ result = queryGraph(graph, q, { budget, relevance, topicTags });
246
+ if (global.local) note = "semantic skipped under --local; used lexical";
247
+ activity.add("answer", "skip", global.local ? "lexical only (--local)" : "lexical only (--no-semantic)");
233
248
  }
234
- } else {
235
- result = queryGraph(graph, q, { budget, relevance, topicTags });
236
- if (global.local) note = "semantic skipped under --local; used lexical";
237
- activity.add("answer", "skip", global.local ? "lexical only (--local)" : "lexical only (--no-semantic)");
249
+ } finally {
250
+ live?.stop();
238
251
  }
239
252
  if (global.client) {
240
253
  const files = new Set(result.matches.map((m) => m.node.file).filter(Boolean));
@@ -2563,6 +2576,21 @@ var VibgrateLanguageServer = class {
2563
2576
  * single Ask block for over a minute. See engine/refresh-scheduler.ts.
2564
2577
  */
2565
2578
  refresher;
2579
+ /**
2580
+ * Open while the daemon is pushing map changes for this workspace. Closing
2581
+ * it (or losing it) puts this server back in charge of its own freshness.
2582
+ */
2583
+ slotSubscription = null;
2584
+ /**
2585
+ * True only while the daemon is confirmed to hold *this* map and to be
2586
+ * pushing changes for it. While set, `graphForQuery` stops probing: the
2587
+ * daemon already watches the tree and rebuilds, and two processes doing it
2588
+ * means two stat-walks over one corpus and two rebuilds racing for one lock.
2589
+ *
2590
+ * Never assumed — see `deferFreshnessToDaemon`. A daemon that dies degrades
2591
+ * this server to watching for itself, never to nothing watching.
2592
+ */
2593
+ daemonOwnsFreshness = false;
2566
2594
  /**
2567
2595
  * The local runtime's semantic index, held for the life of the server.
2568
2596
  * Ranking there means the native embedding backend is never loaded into this
@@ -2650,6 +2678,9 @@ var VibgrateLanguageServer = class {
2650
2678
  this.conn.onRequest("shutdown", () => {
2651
2679
  this.shuttingDown = true;
2652
2680
  if (this.debounce) clearTimeout(this.debounce);
2681
+ this.slotSubscription?.close();
2682
+ this.slotSubscription = null;
2683
+ this.daemonOwnsFreshness = false;
2653
2684
  return null;
2654
2685
  });
2655
2686
  this.conn.onNotification("exit", () => {
@@ -2988,6 +3019,7 @@ var VibgrateLanguageServer = class {
2988
3019
  this.fileRoles = fileRolesFromParseCache(this.opts.root);
2989
3020
  this.refineAndPublishArchitecture();
2990
3021
  this.conn.notify("vibgrate/graph/status", { state: "ready" });
3022
+ void this.deferFreshnessToDaemon();
2991
3023
  return;
2992
3024
  }
2993
3025
  this.conn.notify("vibgrate/graph/status", { state: "building" });
@@ -2998,6 +3030,7 @@ var VibgrateLanguageServer = class {
2998
3030
  this.fileRoles = result.fileRoles;
2999
3031
  this.refineAndPublishArchitecture();
3000
3032
  this.conn.notify("vibgrate/graph/status", { state: "ready" });
3033
+ void this.deferFreshnessToDaemon();
3001
3034
  } catch (err) {
3002
3035
  const message = err instanceof Error ? err.message : String(err);
3003
3036
  this.conn.notify("window/logMessage", { type: 3, message: `Vibgrate graph build failed: ${message}` });
@@ -3006,6 +3039,55 @@ var VibgrateLanguageServer = class {
3006
3039
  this.graphBuilding = false;
3007
3040
  }
3008
3041
  }
3042
+ /**
3043
+ * Hand freshness to the daemon, but only once it is actually holding this
3044
+ * map and pushing changes for it.
3045
+ *
3046
+ * The daemon watches a repository the moment it holds its slot — and not
3047
+ * before. Registration is not enough; this server has historically been one
3048
+ * of the roots vgd knew about but never had a map for. So the order matters:
3049
+ * publish the map we just loaded or built, take the repository id the daemon
3050
+ * answers with, and subscribe to *that* repository. Only a confirmed
3051
+ * subscription retires the local probe.
3052
+ *
3053
+ * Every failure mode lands on "keep watching for ourselves": no daemon, a
3054
+ * daemon that will not take the map, a subscription it does not confirm, or
3055
+ * a connection that later drops. None of them are errors — a machine with no
3056
+ * vgd is a supported configuration.
3057
+ */
3058
+ async deferFreshnessToDaemon() {
3059
+ if (this.opts.daemon === false || !this.opts.graph) return;
3060
+ if (this.daemonOwnsFreshness || this.slotSubscription || this.shuttingDown) return;
3061
+ try {
3062
+ const [{ publishGraphToVgd: publishGraphToVgd2 }, { subscribeToSlots }] = await Promise.all([
3063
+ import('./publish-7YHRTBRA.js'),
3064
+ import('./slot-subscription-25GOARW5.js')
3065
+ ]);
3066
+ const published = await publishGraphToVgd2(this.opts.root);
3067
+ if (published.status !== "published" && published.status !== "current") return;
3068
+ const { repositoryId } = published;
3069
+ const subscription = await subscribeToSlots({
3070
+ repositoryId,
3071
+ onChange: () => this.reloadGraphFromDisk(),
3072
+ onDetach: () => {
3073
+ this.daemonOwnsFreshness = false;
3074
+ this.slotSubscription = null;
3075
+ }
3076
+ });
3077
+ if (!subscription.active) return;
3078
+ if (this.shuttingDown) {
3079
+ subscription.close();
3080
+ return;
3081
+ }
3082
+ this.slotSubscription = subscription;
3083
+ this.daemonOwnsFreshness = true;
3084
+ this.conn.notify("window/logMessage", {
3085
+ type: 3,
3086
+ message: `Vibgrate graph: freshness deferred to the local runtime (${repositoryId}).`
3087
+ });
3088
+ } catch {
3089
+ }
3090
+ }
3009
3091
  /**
3010
3092
  * The graph for a query. The first call still builds the map (there is
3011
3093
  * nothing to answer from otherwise), but a *refresh* is only ever kicked off
@@ -3016,7 +3098,7 @@ var VibgrateLanguageServer = class {
3016
3098
  async graphForQuery() {
3017
3099
  await this.ensureGraph();
3018
3100
  if (!this.graph) return null;
3019
- await this.refresher.maybeRefresh();
3101
+ if (!this.daemonOwnsFreshness) await this.refresher.maybeRefresh();
3020
3102
  return this.graph;
3021
3103
  }
3022
3104
  /**
@@ -3026,13 +3108,20 @@ var VibgrateLanguageServer = class {
3026
3108
  */
3027
3109
  onRefreshSettled(outcome) {
3028
3110
  if (outcome?.status !== "refreshed" || !outcome.wrote) return;
3111
+ this.reloadGraphFromDisk();
3112
+ }
3113
+ /**
3114
+ * Re-read the map we already have on disk. Shared by the local refresher and
3115
+ * by the daemon's `slot-changed` push, which are the only two things that
3116
+ * ever rewrite it — and never both at once.
3117
+ */
3118
+ reloadGraphFromDisk() {
3029
3119
  const graphPath = resolveGraphPath(this.opts.root);
3030
3120
  const reloaded = loadGraphPreferIndex(this.opts.root, graphPath)?.graph ?? loadGraph(this.opts.root);
3031
- if (reloaded) {
3032
- this.graph = reloaded;
3033
- this.fileRoles = fileRolesFromParseCache(this.opts.root);
3034
- this.refineAndPublishArchitecture();
3035
- }
3121
+ if (!reloaded) return;
3122
+ this.graph = reloaded;
3123
+ this.fileRoles = fileRolesFromParseCache(this.opts.root);
3124
+ this.refineAndPublishArchitecture();
3036
3125
  }
3037
3126
  /**
3038
3127
  * Graph / AST-role refine can land after the first `publishScore()`. The
@@ -7525,7 +7614,7 @@ function registerCode(program) {
7525
7614
  try {
7526
7615
  const { parseMode: parseMode2, resolveMode: resolveMode2, readOrchestratorState: readOrchestratorState2, activePin: activePin2 } = await import('./model-orchestrator-LHYPJBFH.js');
7527
7616
  const { gatherSystemMemory: gatherSystemMemory2 } = await import('./local-runtime-6SNWKSA7.js');
7528
- const { loadGraph: loadGraph2 } = await import('./load-H5HAME25.js');
7617
+ const { loadGraph: loadGraph2 } = await import('./load-4R4HYMBB.js');
7529
7618
  const state = readOrchestratorState2();
7530
7619
  const mode = parseMode2(modeFlag) ?? state.defaultMode ?? void 0;
7531
7620
  const pin = mode ? activePin2(mode, state) : null;
@@ -7610,7 +7699,7 @@ function registerCode(program) {
7610
7699
  if (!(process.stdin.isTTY && process.stdout.isTTY)) {
7611
7700
  throw usageError('say what to change, e.g. `vg code "add a --timeout flag to the scan command"` (guided mode needs an interactive terminal)');
7612
7701
  }
7613
- const { runInteractive } = await import('./interactive-KEPGE5HD.js');
7702
+ const { runInteractive } = await import('./interactive-2MK4TLRD.js');
7614
7703
  await runInteractive(
7615
7704
  rootOf(global),
7616
7705
  global,
@@ -7640,7 +7729,7 @@ function registerCode(program) {
7640
7729
  }
7641
7730
  if (!instruction && !stdinFirstTurn) throw usageError('say what to change, e.g. `vg code "add a --timeout flag to the scan command"`');
7642
7731
  {
7643
- const { ensureCodeMap } = await import('./ensure-map-B2PS5ALS.js');
7732
+ const { ensureCodeMap } = await import('./ensure-map-FHDJTO7Y.js');
7644
7733
  const mapRoot = rootOf(global);
7645
7734
  try {
7646
7735
  await ensureCodeMap(mapRoot, global, {
@@ -7725,20 +7814,20 @@ function registerCode(program) {
7725
7814
  process.stdout.write(JSON.stringify(line) + "\n");
7726
7815
  };
7727
7816
  try {
7728
- const { RunOutcomeRecorder, newOneShotRunId, turnRunId } = await import('./run-outcome-V3L4GAN4.js');
7817
+ const { RunOutcomeRecorder, newOneShotRunId, turnRunId } = await import('./run-outcome-H5GVDDZJ.js');
7729
7818
  const primarySlug = route.providers[0]?.model.includes("/") ? route.providers[0].model.split("/")[0] : route.providers[0]?.id;
7730
- const { runCodeStreamJson, parseHostMessage } = await import('./stream-json-S6E3W2US.js');
7731
- const { nodeCodeFs } = await import('./session-77YXFUC7.js');
7819
+ const { runCodeStreamJson, parseHostMessage } = await import('./stream-json-4WLSUF6I.js');
7820
+ const { nodeCodeFs } = await import('./session-N5IU4K5Q.js');
7732
7821
  const readline6 = await import('readline');
7733
7822
  const child = await import('child_process');
7734
7823
  const { loadOrDiscoverFederation } = await import('./federation-MDQPO3PW.js');
7735
7824
  const { resolveExecutionEnv } = await import('./execution-env-4MS5AYAN.js');
7736
7825
  const { resolveModelExecutionProfile, mergeModelExecutionProfile } = await import('./model-execution-profile-ELWF3Z6H.js');
7737
- const { startCodeRuntimeSession } = await import('./runtime-session-M2FRGTDS.js');
7738
- const { resolveGraphBackend } = await import('./graph-backend-EEXMD6XY.js');
7826
+ const { startCodeRuntimeSession } = await import('./runtime-session-JBIHHH5N.js');
7827
+ const { resolveGraphBackend } = await import('./graph-backend-W2D3HRRD.js');
7739
7828
  const { detectGitRef } = await import('./git-ref-RSRAN4OH.js');
7740
7829
  const { repositoryIdFromRoot } = await import('./paths-62AKTFSR.js');
7741
- const { vgdRequest } = await import('./vgd-R2PNIDEP.js');
7830
+ const { vgdRequest } = await import('./vgd-M7UOPWLB.js');
7742
7831
  const federation = loadOrDiscoverFederation(root3);
7743
7832
  const modelProfile = mergeModelExecutionProfile(
7744
7833
  resolveModelExecutionProfile({
@@ -7796,7 +7885,7 @@ ${res.stderr}` : ""),
7796
7885
  exitCode: res.status ?? 1
7797
7886
  };
7798
7887
  };
7799
- const { createVgBuiltinMcpTools, mergeExternalToolsets } = await import('./vg-mcp-bridge-HCPJWJKJ.js');
7888
+ const { createVgBuiltinMcpTools, mergeExternalToolsets } = await import('./vg-mcp-bridge-KDVYIMFX.js');
7800
7889
  const vgBuiltin = createVgBuiltinMcpTools({
7801
7890
  getGraph: () => graph,
7802
7891
  root: root3,
@@ -7841,7 +7930,7 @@ ${res.stderr}` : ""),
7841
7930
  files,
7842
7931
  indexFile: checkpointIndex
7843
7932
  });
7844
- const { loadApprovalRules, addApprovalRule, ruleForAction, ruleLabel } = await import('./approvals-YFOU6GVB.js');
7933
+ const { loadApprovalRules, addApprovalRule, ruleForAction, ruleLabel } = await import('./approvals-TPQFQSWG.js');
7845
7934
  const { loadProjectRules, nodeRulesReader } = await import('./rules-ASYEUNB5.js');
7846
7935
  const projectRules = loadProjectRules(nodeRulesReader(root3));
7847
7936
  if (projectRules.sources.length && !global.quiet) {
@@ -7899,8 +7988,8 @@ ${res.stderr}` : ""),
7899
7988
  };
7900
7989
  try {
7901
7990
  if (opts.session) {
7902
- const { runCodeStreamJsonSession, STREAM_JSON_PROTOCOL_VERSION } = await import('./stream-json-S6E3W2US.js');
7903
- const { runAgent: runAgent2 } = await import('./agent-CUK24AWF.js');
7991
+ const { runCodeStreamJsonSession, STREAM_JSON_PROTOCOL_VERSION } = await import('./stream-json-4WLSUF6I.js');
7992
+ const { runAgent: runAgent2 } = await import('./agent-X6VYCE63.js');
7904
7993
  const {
7905
7994
  condenseSession,
7906
7995
  loadLatestSession,
@@ -7911,7 +8000,7 @@ ${res.stderr}` : ""),
7911
8000
  sessionsDir,
7912
8001
  summarizeSession
7913
8002
  } = await import('./session-store-AQUORKWB.js');
7914
- const { VERSION: VERSION2 } = await import('./version-VRZT5G4T.js');
8003
+ const { VERSION: VERSION2 } = await import('./version-DTEU3SQD.js');
7915
8004
  const resumedRecord = typeof opts.continue === "string" ? loadSession(mainRoot, opts.continue) : opts.continue ? loadLatestSession(mainRoot) : void 0;
7916
8005
  if (typeof opts.continue === "string" && !resumedRecord) {
7917
8006
  emitStream({
@@ -8123,8 +8212,8 @@ ${res.stderr}` : ""),
8123
8212
  if (!autonomous && !tty) {
8124
8213
  throw usageError("the agent approves each edit/command \u2014 run in a terminal to approve interactively, or pass --auto to run autonomously (or --single for a one-shot diff).");
8125
8214
  }
8126
- const { agentTask } = await import('./interactive-KEPGE5HD.js');
8127
- const { nodeCodeFs } = await import('./session-77YXFUC7.js');
8215
+ const { agentTask } = await import('./interactive-2MK4TLRD.js');
8216
+ const { nodeCodeFs } = await import('./session-N5IU4K5Q.js');
8128
8217
  const { TtyPrompter } = await import('./ui-K7D3BCHD.js');
8129
8218
  let priorSummary;
8130
8219
  let priorInstruction;
@@ -8139,7 +8228,7 @@ ${res.stderr}` : ""),
8139
8228
  }
8140
8229
  }
8141
8230
  const prompter = tty ? new TtyPrompter() : void 0;
8142
- const { createVgBuiltinMcpTools, mergeExternalToolsets } = await import('./vg-mcp-bridge-HCPJWJKJ.js');
8231
+ const { createVgBuiltinMcpTools, mergeExternalToolsets } = await import('./vg-mcp-bridge-KDVYIMFX.js');
8143
8232
  const vgBuiltin = createVgBuiltinMcpTools({
8144
8233
  getGraph: () => graph,
8145
8234
  root: root3,
@@ -8163,11 +8252,11 @@ ${res.stderr}` : ""),
8163
8252
  const { loadFederation } = await import('./federation-MDQPO3PW.js');
8164
8253
  const { resolveExecutionEnv } = await import('./execution-env-4MS5AYAN.js');
8165
8254
  const { resolveModelExecutionProfile, mergeModelExecutionProfile } = await import('./model-execution-profile-ELWF3Z6H.js');
8166
- const { startCodeRuntimeSession } = await import('./runtime-session-M2FRGTDS.js');
8167
- const { resolveGraphBackend } = await import('./graph-backend-EEXMD6XY.js');
8255
+ const { startCodeRuntimeSession } = await import('./runtime-session-JBIHHH5N.js');
8256
+ const { resolveGraphBackend } = await import('./graph-backend-W2D3HRRD.js');
8168
8257
  const { detectGitRef } = await import('./git-ref-RSRAN4OH.js');
8169
8258
  const { repositoryIdFromRoot } = await import('./paths-62AKTFSR.js');
8170
- const { vgdRequest } = await import('./vgd-R2PNIDEP.js');
8259
+ const { vgdRequest } = await import('./vgd-M7UOPWLB.js');
8171
8260
  const federation = loadFederation(root3);
8172
8261
  const modelProfile = mergeModelExecutionProfile(
8173
8262
  resolveModelExecutionProfile({
@@ -9351,7 +9440,7 @@ var initCommand = new Command("init").description("Initialize vibgrate in a proj
9351
9440
  console.log(chalk7.green("\u2714") + ` Created ${chalk7.bold("vibgrate.config.ts")}`);
9352
9441
  }
9353
9442
  if (opts.baseline) {
9354
- const { runBaseline } = await import('./baseline-OBZJRCCP.js');
9443
+ const { runBaseline } = await import('./baseline-DXI64VLW.js');
9355
9444
  await runBaseline(rootDir);
9356
9445
  }
9357
9446
  console.log("");
@@ -9882,6 +9971,36 @@ function reportStandards(rootDir) {
9882
9971
  console.log(` ${chalk7.red("banned")} ${v.ecosystem}:${v.name}${v.installed ? chalk7.dim(` ${v.installed}`) : ""}${fix}${why}`);
9883
9972
  }
9884
9973
  }
9974
+ async function printRuntimeSnapshot(rootDir, opts, already) {
9975
+ try {
9976
+ const { attachVgd: attachVgd2 } = await import('./attach-G5JUIWIT.js');
9977
+ const { vgdRequest } = await import('./client-UQIELEEZ.js');
9978
+ const { formatSemanticProgress } = await import('./semantic-status-2JFLIQQJ.js');
9979
+ let repositoryId = already?.repositoryId;
9980
+ let socketPath = already?.socketPath;
9981
+ if (!repositoryId || !socketPath) {
9982
+ const attached = await attachVgd2(rootDir, {
9983
+ disabled: opts.daemon === false,
9984
+ autoStart: false,
9985
+ publish: false
9986
+ });
9987
+ if (attached.status !== "attached" || !attached.repositoryId || !attached.socketPath) return;
9988
+ repositoryId = attached.repositoryId;
9989
+ socketPath = attached.socketPath;
9990
+ }
9991
+ const semantic = await vgdRequest({ op: "embed-status", repositoryId }, { socketPath });
9992
+ if (!semantic.ok || !("semantic" in semantic)) return;
9993
+ const slot = semantic.semantic.slots.find((s) => s.repositoryId === repositoryId) ?? semantic.semantic.slots[0];
9994
+ if (!slot) {
9995
+ if (semantic.semantic.worker === "unavailable" && semantic.semantic.reason) {
9996
+ console.error(chalk7.dim(` \xB7 semantic \xB7 ${semantic.semantic.reason}`));
9997
+ }
9998
+ return;
9999
+ }
10000
+ console.error(chalk7.dim(` \xB7 ${formatSemanticProgress(slot)}`));
10001
+ } catch {
10002
+ }
10003
+ }
9885
10004
  function parseNonNegativeNumber(value, label) {
9886
10005
  if (value === void 0) return void 0;
9887
10006
  const parsed = Number(value);
@@ -9980,6 +10099,7 @@ var scanCommand = new Command("scan").description("Scan a project for upgrade dr
9980
10099
  console.error(chalk7.red("Repository unchanged but no previous ingest id available."));
9981
10100
  process.exit(1);
9982
10101
  }
10102
+ await printRuntimeSnapshot(rootDir, opts);
9983
10103
  return;
9984
10104
  }
9985
10105
  }
@@ -10062,10 +10182,10 @@ var scanCommand = new Command("scan").description("Scan a project for upgrade dr
10062
10182
  const advanced = await loadAdvancedScanHook();
10063
10183
  const artifact = await runCoreScan(rootDir, scanOpts, advanced);
10064
10184
  if (wantGraph && builtGraph) {
10065
- const { attachVgd: attachVgd2 } = await import('./attach-6S3XS7VO.js');
10185
+ const { attachVgd: attachVgd2 } = await import('./attach-G5JUIWIT.js');
10066
10186
  const { ActivityLog: ActivityLog2 } = await import('./activity-MF2GNYAI.js');
10067
10187
  const activity = new ActivityLog2();
10068
- await activity.time(
10188
+ const attached = await activity.time(
10069
10189
  "attach",
10070
10190
  () => attachVgd2(rootDir, { disabled: opts.daemon === false }),
10071
10191
  (a) => {
@@ -10074,7 +10194,7 @@ var scanCommand = new Command("scan").description("Scan a project for upgrade dr
10074
10194
  if (a.published?.status === "published") {
10075
10195
  return {
10076
10196
  outcome: "ok",
10077
- detail: `${started} \xB7 map published ${a.published.gitRef} \xB7 ${a.published.nodeCount} nodes \xB7 semantic index warming`
10197
+ detail: `${started} \xB7 map published ${a.published.gitRef} \xB7 ${a.published.nodeCount} nodes`
10078
10198
  };
10079
10199
  }
10080
10200
  return { outcome: "ok", detail: started };
@@ -10082,6 +10202,12 @@ var scanCommand = new Command("scan").description("Scan a project for upgrade dr
10082
10202
  );
10083
10203
  if (!opts.quiet && opts.format !== "json") {
10084
10204
  for (const line of activity.render()) console.error(line);
10205
+ if (attached.status === "attached") {
10206
+ await printRuntimeSnapshot(rootDir, opts, {
10207
+ repositoryId: attached.repositoryId,
10208
+ socketPath: attached.socketPath
10209
+ });
10210
+ }
10085
10211
  }
10086
10212
  }
10087
10213
  emitDriftScoreLine(artifact.drift.score);
@@ -10962,7 +11088,7 @@ ${String(err)}` }));
10962
11088
  async function releaseWindowsFileLocks(cwd, keepVersion) {
10963
11089
  reapAndReport(cwd, keepVersion);
10964
11090
  try {
10965
- const { vgdSocketPath } = await import('./vgd-R2PNIDEP.js');
11091
+ const { vgdSocketPath } = await import('./vgd-M7UOPWLB.js');
10966
11092
  const result = await stopVgd(vgdSocketPath());
10967
11093
  if (result === "stopped") {
10968
11094
  console.log(chalk7.dim("Stopped the vgd daemon so its files can be replaced \u2014 it restarts on the next command."));
@@ -11088,7 +11214,7 @@ var updateCommand = new Command("update").description("Update vibgrate to the la
11088
11214
  );
11089
11215
  async function rewarmVgdAndReport(cwd) {
11090
11216
  try {
11091
- const { vgdIsRunning, vgdRequest } = await import('./vgd-R2PNIDEP.js');
11217
+ const { vgdIsRunning, vgdRequest } = await import('./vgd-M7UOPWLB.js');
11092
11218
  if (!await vgdIsRunning()) return;
11093
11219
  const loaded = await vgdRequest({ op: "load-graph", root: cwd });
11094
11220
  if (!loaded.ok || !("stored" in loaded)) return;