@vibgrate/cli 2026.818.1 → 2026.819.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.
Files changed (133) hide show
  1. package/dist/{agent-CUK24AWF.js → agent-3CKNTCRX.js} +13 -13
  2. package/dist/{agent-CUK24AWF.js.map → agent-3CKNTCRX.js.map} +1 -1
  3. package/dist/{approvals-YFOU6GVB.js → approvals-DHTG3HI4.js} +5 -5
  4. package/dist/{approvals-YFOU6GVB.js.map → approvals-DHTG3HI4.js.map} +1 -1
  5. package/dist/attach-OCQ3I76L.js +10 -0
  6. package/dist/{attach-6S3XS7VO.js.map → attach-OCQ3I76L.js.map} +1 -1
  7. package/dist/baseline-QDC6OQ2X.js +9 -0
  8. package/dist/{baseline-OBZJRCCP.js.map → baseline-QDC6OQ2X.js.map} +1 -1
  9. package/dist/{chunk-G7ZFSH5J.js → chunk-4VAA2XSM.js} +6 -38
  10. package/dist/chunk-4VAA2XSM.js.map +1 -0
  11. package/dist/chunk-5IQBIXHS.js +23 -0
  12. package/dist/chunk-5IQBIXHS.js.map +1 -0
  13. package/dist/{chunk-6LY3JH6S.js → chunk-5O6O7DJH.js} +3 -3
  14. package/dist/{chunk-6LY3JH6S.js.map → chunk-5O6O7DJH.js.map} +1 -1
  15. package/dist/{chunk-6ABMV74F.js → chunk-5XY4EFR7.js} +4 -4
  16. package/dist/{chunk-6ABMV74F.js.map → chunk-5XY4EFR7.js.map} +1 -1
  17. package/dist/{chunk-DUCEKH7Q.js → chunk-6F52QR6F.js} +4 -4
  18. package/dist/{chunk-DUCEKH7Q.js.map → chunk-6F52QR6F.js.map} +1 -1
  19. package/dist/{chunk-DH6EDSQP.js → chunk-D33M2ARL.js} +3 -3
  20. package/dist/{chunk-DH6EDSQP.js.map → chunk-D33M2ARL.js.map} +1 -1
  21. package/dist/{chunk-GKZU6MII.js → chunk-D44PGMH7.js} +109 -23
  22. package/dist/chunk-D44PGMH7.js.map +1 -0
  23. package/dist/chunk-DHU3OOEI.js +6 -0
  24. package/dist/{chunk-SUD54UGN.js.map → chunk-DHU3OOEI.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-E7RVA2ZI.js → chunk-EI5AKDSC.js} +3 -3
  28. package/dist/{chunk-E7RVA2ZI.js.map → chunk-EI5AKDSC.js.map} +1 -1
  29. package/dist/{chunk-LHQYYBCH.js → chunk-EIESBKLW.js} +5 -5
  30. package/dist/{chunk-LHQYYBCH.js.map → chunk-EIESBKLW.js.map} +1 -1
  31. package/dist/{chunk-J7CVFTLG.js → chunk-EMEMHNE3.js} +9 -7
  32. package/dist/chunk-EMEMHNE3.js.map +1 -0
  33. package/dist/{chunk-MHJBIGWV.js → chunk-F46Q3AEI.js} +118 -24
  34. package/dist/chunk-F46Q3AEI.js.map +1 -0
  35. package/dist/{chunk-Q7TWHJJ6.js → chunk-FFY6NW7P.js} +3 -3
  36. package/dist/{chunk-Q7TWHJJ6.js.map → chunk-FFY6NW7P.js.map} +1 -1
  37. package/dist/{chunk-J3A3O4IA.js → chunk-FQVAQVJV.js} +3 -3
  38. package/dist/{chunk-J3A3O4IA.js.map → chunk-FQVAQVJV.js.map} +1 -1
  39. package/dist/{chunk-ZWFMJUXC.js → chunk-JGBOYZAF.js} +8 -8
  40. package/dist/{chunk-ZWFMJUXC.js.map → chunk-JGBOYZAF.js.map} +1 -1
  41. package/dist/{chunk-DM6MJ7IF.js → chunk-KFEM6FWP.js} +4 -4
  42. package/dist/{chunk-DM6MJ7IF.js.map → chunk-KFEM6FWP.js.map} +1 -1
  43. package/dist/{chunk-OVUZWR67.js → chunk-KKQX3F5F.js} +3 -3
  44. package/dist/{chunk-OVUZWR67.js.map → chunk-KKQX3F5F.js.map} +1 -1
  45. package/dist/chunk-LJSJX6U4.js +38 -0
  46. package/dist/chunk-LJSJX6U4.js.map +1 -0
  47. package/dist/{chunk-I3PKYYRP.js → chunk-NWWLUFN5.js} +4 -4
  48. package/dist/{chunk-I3PKYYRP.js.map → chunk-NWWLUFN5.js.map} +1 -1
  49. package/dist/{chunk-SBHK4ECM.js → chunk-O5ASXWKF.js} +3 -3
  50. package/dist/{chunk-SBHK4ECM.js.map → chunk-O5ASXWKF.js.map} +1 -1
  51. package/dist/{chunk-V2UGRUTL.js → chunk-OQT3JBWW.js} +11 -11
  52. package/dist/{chunk-V2UGRUTL.js.map → chunk-OQT3JBWW.js.map} +1 -1
  53. package/dist/{chunk-NG4KIJW6.js → chunk-PVNALGTG.js} +10 -6
  54. package/dist/chunk-PVNALGTG.js.map +1 -0
  55. package/dist/{chunk-WVTGF2MP.js → chunk-QMRSCJUN.js} +3 -3
  56. package/dist/{chunk-WVTGF2MP.js.map → chunk-QMRSCJUN.js.map} +1 -1
  57. package/dist/{chunk-OS4YFOFJ.js → chunk-QSLVOVNZ.js} +8 -8
  58. package/dist/{chunk-OS4YFOFJ.js.map → chunk-QSLVOVNZ.js.map} +1 -1
  59. package/dist/{chunk-43ESHUM5.js → chunk-TS25WFAT.js} +16 -14
  60. package/dist/chunk-TS25WFAT.js.map +1 -0
  61. package/dist/{chunk-5I4VSBWQ.js → chunk-TS7STRMI.js} +370 -111
  62. package/dist/chunk-TS7STRMI.js.map +1 -0
  63. package/dist/{chunk-FFYO7G3T.js → chunk-U7A7D2HP.js} +3 -3
  64. package/dist/{chunk-FFYO7G3T.js.map → chunk-U7A7D2HP.js.map} +1 -1
  65. package/dist/{chunk-X4DECFUG.js → chunk-VYSDR2QE.js} +4 -4
  66. package/dist/{chunk-X4DECFUG.js.map → chunk-VYSDR2QE.js.map} +1 -1
  67. package/dist/{chunk-4QAMUBAC.js → chunk-WJYJCDNY.js} +11 -11
  68. package/dist/{chunk-4QAMUBAC.js.map → chunk-WJYJCDNY.js.map} +1 -1
  69. package/dist/{chunk-H6RV2OAX.js → chunk-YIEP5GK5.js} +92 -14
  70. package/dist/chunk-YIEP5GK5.js.map +1 -0
  71. package/dist/cli.js +245 -125
  72. package/dist/cli.js.map +1 -1
  73. package/dist/client-UQIELEEZ.js +8 -0
  74. package/dist/client-UQIELEEZ.js.map +1 -0
  75. package/dist/{daemon-4Q5QBBAF.js → daemon-UNL65PTP.js} +11 -12
  76. package/dist/{daemon-4Q5QBBAF.js.map → daemon-UNL65PTP.js.map} +1 -1
  77. package/dist/embed-worker-main.js +3 -3
  78. package/dist/{ensure-map-B2PS5ALS.js → ensure-map-4D2HJ6MA.js} +21 -21
  79. package/dist/{ensure-map-B2PS5ALS.js.map → ensure-map-4D2HJ6MA.js.map} +1 -1
  80. package/dist/federation-SZYVHYB2.js +8 -0
  81. package/dist/{federation-MDQPO3PW.js.map → federation-SZYVHYB2.js.map} +1 -1
  82. package/dist/fs-FO3NQHPT.js +4 -0
  83. package/dist/fs-FO3NQHPT.js.map +1 -0
  84. package/dist/{graph-backend-EEXMD6XY.js → graph-backend-36EIAAPQ.js} +8 -8
  85. package/dist/{graph-backend-EEXMD6XY.js.map → graph-backend-36EIAAPQ.js.map} +1 -1
  86. package/dist/index.d.ts +29 -2
  87. package/dist/index.js +21 -20
  88. package/dist/index.js.map +1 -1
  89. package/dist/{interactive-KEPGE5HD.js → interactive-ZZMHSZ3W.js} +33 -33
  90. package/dist/{interactive-KEPGE5HD.js.map → interactive-ZZMHSZ3W.js.map} +1 -1
  91. package/dist/load-6CYLMUT5.js +11 -0
  92. package/dist/{load-H5HAME25.js.map → load-6CYLMUT5.js.map} +1 -1
  93. package/dist/parse-worker.js +2 -2
  94. package/dist/publish-7YHRTBRA.js +9 -0
  95. package/dist/publish-7YHRTBRA.js.map +1 -0
  96. package/dist/{run-outcome-V3L4GAN4.js → run-outcome-ADEAKXHH.js} +5 -5
  97. package/dist/{run-outcome-V3L4GAN4.js.map → run-outcome-ADEAKXHH.js.map} +1 -1
  98. package/dist/{runtime-session-M2FRGTDS.js → runtime-session-VNSXQAEO.js} +11 -12
  99. package/dist/{runtime-session-M2FRGTDS.js.map → runtime-session-VNSXQAEO.js.map} +1 -1
  100. package/dist/semantic-status-2JFLIQQJ.js +4 -0
  101. package/dist/semantic-status-2JFLIQQJ.js.map +1 -0
  102. package/dist/{session-77YXFUC7.js → session-3A6LKJHD.js} +8 -8
  103. package/dist/{session-77YXFUC7.js.map → session-3A6LKJHD.js.map} +1 -1
  104. package/dist/{stream-json-S6E3W2US.js → stream-json-S2TP2VPU.js} +13 -13
  105. package/dist/{stream-json-S6E3W2US.js.map → stream-json-S2TP2VPU.js.map} +1 -1
  106. package/dist/version-SZI6I3A2.js +4 -0
  107. package/dist/{version-VRZT5G4T.js.map → version-SZI6I3A2.js.map} +1 -1
  108. package/dist/{vg-mcp-bridge-HCPJWJKJ.js → vg-mcp-bridge-IIBEAOEB.js} +12 -11
  109. package/dist/vg-mcp-bridge-IIBEAOEB.js.map +1 -0
  110. package/dist/{vgd-R2PNIDEP.js → vgd-KGXIKGOS.js} +10 -11
  111. package/dist/vgd-KGXIKGOS.js.map +1 -0
  112. package/package.json +1 -1
  113. package/dist/attach-6S3XS7VO.js +0 -9
  114. package/dist/baseline-OBZJRCCP.js +0 -9
  115. package/dist/chunk-43ESHUM5.js.map +0 -1
  116. package/dist/chunk-5I4VSBWQ.js.map +0 -1
  117. package/dist/chunk-G7ZFSH5J.js.map +0 -1
  118. package/dist/chunk-GKZU6MII.js.map +0 -1
  119. package/dist/chunk-H6RV2OAX.js.map +0 -1
  120. package/dist/chunk-J7CVFTLG.js.map +0 -1
  121. package/dist/chunk-MHJBIGWV.js.map +0 -1
  122. package/dist/chunk-NG4KIJW6.js.map +0 -1
  123. package/dist/chunk-NO4BMW7M.js.map +0 -1
  124. package/dist/chunk-POOL355F.js +0 -237
  125. package/dist/chunk-POOL355F.js.map +0 -1
  126. package/dist/chunk-SUD54UGN.js +0 -6
  127. package/dist/federation-MDQPO3PW.js +0 -7
  128. package/dist/fs-TLPOWC2D.js +0 -4
  129. package/dist/fs-TLPOWC2D.js.map +0 -1
  130. package/dist/load-H5HAME25.js +0 -11
  131. package/dist/version-VRZT5G4T.js +0 -4
  132. package/dist/vg-mcp-bridge-HCPJWJKJ.js.map +0 -1
  133. package/dist/vgd-R2PNIDEP.js.map +0 -1
package/dist/cli.js CHANGED
@@ -1,64 +1,65 @@
1
1
  #!/usr/bin/env node
2
- 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';
2
+ import { fetchCatalog, resolveProviders } from './chunk-U7A7D2HP.js';
3
+ import { telemetryOptOut, StatsSharer, statsEndpoint, isCI } from './chunk-EI5AKDSC.js';
4
+ import { loadAdvancedScanHook, baselineCommand } from './chunk-5XY4EFR7.js';
5
+ import { sha256Hex, generateKeypair, dssePae, DSSE_PAYLOAD_TYPE, keyId, registerBuild, LiveStatus, ProgressBar, printLogo, runBuild } from './chunk-YIEP5GK5.js';
6
+ export { runBuild } from './chunk-YIEP5GK5.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-EIESBKLW.js';
10
+ import { CONTEXT_POLICY_VERSION, computeFcsReport, renderFcsReportMarkdown, createTrajectoryCollector, runAgent } from './chunk-WJYJCDNY.js';
10
11
  import './chunk-543E6WDJ.js';
12
+ import './chunk-D33M2ARL.js';
13
+ import './chunk-VYSDR2QE.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-JGBOYZAF.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-F46Q3AEI.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-D44PGMH7.js';
30
+ import { refreshIfStale } from './chunk-EMEMHNE3.js';
31
+ import { driftCount, ASSISTANTS, detectAssistants, isAssistantInstalled, detectServeLaunch, installAssistant, writeNavigationConfig, uninstallAssistant, buildGraph, writeSnapshot, probeFreshness, assistantById, SMALL_REPO_FILES } from './chunk-TS25WFAT.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-QSLVOVNZ.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-OQT3JBWW.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-KKQX3F5F.js';
37
+ import { recordCliCall, CLI_TOOL_ALIASES, savingsLedgerPath, clearSavings, readSavings, readUsage, readModelSavings, CAPSULE_RANKING_VERSION, SAVINGS_TOOLS, sanitizeClient } from './chunk-5O6O7DJH.js';
38
38
  import { discoverModels } from './chunk-CQDUBAQY.js';
39
39
  import { freeBytesOnVolume, weightStoreDir, listCachedWeights, ensureWeightCached, catalogIntegrityReport } from './chunk-OV4KGXPD.js';
40
- import { pathExists as pathExists$1, parseExcludePatterns } from './chunk-NG4KIJW6.js';
41
- import { ensureDir, pathExists, readJsonFile, writeTextFile, writeJsonFile } from './chunk-CRAMOEBE.js';
42
40
  import { CliError, ExitCode, usageError, engineUnavailable } from './chunk-MS6V5XKB.js';
41
+ import { attachVgd } from './chunk-4VAA2XSM.js';
42
+ import { pathExists as pathExists$1, parseExcludePatterns } from './chunk-PVNALGTG.js';
43
+ import { ensureDir, pathExists, readJsonFile, writeTextFile, writeJsonFile } from './chunk-CRAMOEBE.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
- import { discover, SKIP_DIRS } from './chunk-POOL355F.js';
46
48
  import { inventory, enrichOnline, ECOSYSTEMS } from './chunk-6BEBJCK4.js';
47
49
  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';
50
+ import { queryGraphSemantic, queryGraph, indexFor, impactOf } from './chunk-6F52QR6F.js';
51
+ import { loadGraph, loadGraphPreferIndex, SCHEMA_VERSION } from './chunk-O5ASXWKF.js';
52
+ import './chunk-E53WBVUQ.js';
53
53
  import './chunk-NDNNOAS6.js';
54
- import { resolvedGrammarFiles, TOOLCHAIN_GRAMMARS, resolveToolchainGrammar, grammarSetVersion, fileRolesFromParseCache } from './chunk-J3A3O4IA.js';
54
+ import { discover, isSkippedDirName } from './chunk-TS7STRMI.js';
55
+ import { resolvedGrammarFiles, TOOLCHAIN_GRAMMARS, resolveToolchainGrammar, grammarSetVersion, fileRolesFromParseCache } from './chunk-FQVAQVJV.js';
55
56
  import './chunk-T7RSQ5WD.js';
56
57
  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';
58
+ import { embeddingsCached, resolveEmbedModel, loadEmbedder, getNodeEmbeddings, unavailableMessage, countPending, modelCacheInfo, embeddingsPath, clearModelCache, withTimeout } from './chunk-QMRSCJUN.js';
59
+ import { resetRelevanceProviderCache, loadRelevanceProvider, relevanceModuleDir, resolveGraphPath, analyzeQuestion, loadTopicTags, renderReport, loadGraphFileWithSnapshot, writeArtifacts, vibgrateDir, mapFileExists, ensureVibgrateGitignore } from './chunk-FFY6NW7P.js';
59
60
  import { cacheDir } from './chunk-MVPRPSXU.js';
60
61
  import { serializeGraph, stableStringify, parseGraph } from './chunk-O3LABX6I.js';
61
- import { VERSION } from './chunk-SUD54UGN.js';
62
+ import { VERSION } from './chunk-DHU3OOEI.js';
62
63
  import './chunk-BWPBB45M.js';
63
64
  import { canonicalize, hashString } from './chunk-JFGYT6BI.js';
64
65
  import './chunk-BPF3YX2U.js';
@@ -166,6 +167,8 @@ function registerAsk(program) {
166
167
  }
167
168
  const { graph } = requireGraph(global);
168
169
  const activity = new ActivityLog();
170
+ const live = !global.json ? new LiveStatus() : null;
171
+ live?.start("attaching to vgd\u2026");
169
172
  const attached = await activity.time(
170
173
  "attach",
171
174
  () => attachVgd(root3, {
@@ -186,55 +189,64 @@ function registerAsk(program) {
186
189
  let note = "";
187
190
  const relevance = await analyzeQuestion(q);
188
191
  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)`);
192
+ try {
193
+ if (wantSemantic) {
194
+ live?.set("asking the daemon\u2026");
195
+ const ranked = attached.status === "attached" && attached.repositoryId ? await activity.time(
196
+ "semantic",
197
+ // The attach above already resolved (and, if needed, published)
198
+ // the slot this session only sends the question.
199
+ () => new DaemonSemanticSession(root3, { socketPath: attached.socketPath, publish: false }).rank(q, void 0, {
200
+ onProgress: (p) => live?.set(p.detail)
201
+ }),
202
+ (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" }
203
+ ) : null;
204
+ if (ranked) {
205
+ live?.set("answering from the daemon index\u2026");
206
+ result = await queryGraphSemantic(graph, q, {
207
+ budget,
208
+ semanticRanked: ranked.ranked,
209
+ relevance,
210
+ topicTags
211
+ });
212
+ mode = `semantic (vgd${ranked.model ? `, ${ranked.model}` : ""})`;
213
+ activity.add("answer", "ok", "answered from the daemon index \u2014 no local model load");
227
214
  } 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}`);
215
+ const firstRun = !embeddingsCached(root3, resolveEmbedModel());
216
+ live?.set(
217
+ firstRun ? "loading the embedding model (first use; then cached and offline)\u2026" : "embedding the map in this process\u2026"
218
+ );
219
+ let reason;
220
+ let detail;
221
+ const embedder = await loadEmbedder({
222
+ local: global.local,
223
+ onUnavailable: (r, d) => {
224
+ reason = r;
225
+ detail = d;
226
+ }
227
+ });
228
+ if (embedder) {
229
+ live?.stop();
230
+ const bar = !global.json ? new ProgressBar(c.dim("embedding")) : void 0;
231
+ const vectors = await getNodeEmbeddings(graph, embedder, root3, bar ? (d, t) => bar.update(d, t) : void 0);
232
+ bar?.done();
233
+ result = await queryGraphSemantic(graph, q, { budget, embedder, nodeVectors: vectors, relevance, topicTags });
234
+ mode = `semantic (${embedder.id})`;
235
+ activity.add("answer", "ok", `answered in this process \xB7 ${embedder.id} \xB7 ${vectors.size} vector(s)`);
236
+ } else {
237
+ result = queryGraph(graph, q, { budget, relevance, topicTags });
238
+ note = reason ? unavailableMessage(reason) : "semantic unavailable; used lexical";
239
+ if (detail) note += ` (${detail})`;
240
+ activity.add("answer", "warn", `lexical only \u2014 ${note}`);
241
+ }
232
242
  }
243
+ } else {
244
+ result = queryGraph(graph, q, { budget, relevance, topicTags });
245
+ if (global.local) note = "semantic skipped under --local; used lexical";
246
+ activity.add("answer", "skip", global.local ? "lexical only (--local)" : "lexical only (--no-semantic)");
233
247
  }
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)");
248
+ } finally {
249
+ live?.stop();
238
250
  }
239
251
  if (global.client) {
240
252
  const files = new Set(result.matches.map((m) => m.node.file).filter(Boolean));
@@ -2563,6 +2575,21 @@ var VibgrateLanguageServer = class {
2563
2575
  * single Ask block for over a minute. See engine/refresh-scheduler.ts.
2564
2576
  */
2565
2577
  refresher;
2578
+ /**
2579
+ * Open while the daemon is pushing map changes for this workspace. Closing
2580
+ * it (or losing it) puts this server back in charge of its own freshness.
2581
+ */
2582
+ slotSubscription = null;
2583
+ /**
2584
+ * True only while the daemon is confirmed to hold *this* map and to be
2585
+ * pushing changes for it. While set, `graphForQuery` stops probing: the
2586
+ * daemon already watches the tree and rebuilds, and two processes doing it
2587
+ * means two stat-walks over one corpus and two rebuilds racing for one lock.
2588
+ *
2589
+ * Never assumed — see `deferFreshnessToDaemon`. A daemon that dies degrades
2590
+ * this server to watching for itself, never to nothing watching.
2591
+ */
2592
+ daemonOwnsFreshness = false;
2566
2593
  /**
2567
2594
  * The local runtime's semantic index, held for the life of the server.
2568
2595
  * Ranking there means the native embedding backend is never loaded into this
@@ -2650,6 +2677,9 @@ var VibgrateLanguageServer = class {
2650
2677
  this.conn.onRequest("shutdown", () => {
2651
2678
  this.shuttingDown = true;
2652
2679
  if (this.debounce) clearTimeout(this.debounce);
2680
+ this.slotSubscription?.close();
2681
+ this.slotSubscription = null;
2682
+ this.daemonOwnsFreshness = false;
2653
2683
  return null;
2654
2684
  });
2655
2685
  this.conn.onNotification("exit", () => {
@@ -2988,6 +3018,7 @@ var VibgrateLanguageServer = class {
2988
3018
  this.fileRoles = fileRolesFromParseCache(this.opts.root);
2989
3019
  this.refineAndPublishArchitecture();
2990
3020
  this.conn.notify("vibgrate/graph/status", { state: "ready" });
3021
+ void this.deferFreshnessToDaemon();
2991
3022
  return;
2992
3023
  }
2993
3024
  this.conn.notify("vibgrate/graph/status", { state: "building" });
@@ -2998,6 +3029,7 @@ var VibgrateLanguageServer = class {
2998
3029
  this.fileRoles = result.fileRoles;
2999
3030
  this.refineAndPublishArchitecture();
3000
3031
  this.conn.notify("vibgrate/graph/status", { state: "ready" });
3032
+ void this.deferFreshnessToDaemon();
3001
3033
  } catch (err) {
3002
3034
  const message = err instanceof Error ? err.message : String(err);
3003
3035
  this.conn.notify("window/logMessage", { type: 3, message: `Vibgrate graph build failed: ${message}` });
@@ -3006,6 +3038,55 @@ var VibgrateLanguageServer = class {
3006
3038
  this.graphBuilding = false;
3007
3039
  }
3008
3040
  }
3041
+ /**
3042
+ * Hand freshness to the daemon, but only once it is actually holding this
3043
+ * map and pushing changes for it.
3044
+ *
3045
+ * The daemon watches a repository the moment it holds its slot — and not
3046
+ * before. Registration is not enough; this server has historically been one
3047
+ * of the roots vgd knew about but never had a map for. So the order matters:
3048
+ * publish the map we just loaded or built, take the repository id the daemon
3049
+ * answers with, and subscribe to *that* repository. Only a confirmed
3050
+ * subscription retires the local probe.
3051
+ *
3052
+ * Every failure mode lands on "keep watching for ourselves": no daemon, a
3053
+ * daemon that will not take the map, a subscription it does not confirm, or
3054
+ * a connection that later drops. None of them are errors — a machine with no
3055
+ * vgd is a supported configuration.
3056
+ */
3057
+ async deferFreshnessToDaemon() {
3058
+ if (this.opts.daemon === false || !this.opts.graph) return;
3059
+ if (this.daemonOwnsFreshness || this.slotSubscription || this.shuttingDown) return;
3060
+ try {
3061
+ const [{ publishGraphToVgd: publishGraphToVgd2 }, { subscribeToSlots }] = await Promise.all([
3062
+ import('./publish-7YHRTBRA.js'),
3063
+ import('./slot-subscription-25GOARW5.js')
3064
+ ]);
3065
+ const published = await publishGraphToVgd2(this.opts.root);
3066
+ if (published.status !== "published" && published.status !== "current") return;
3067
+ const { repositoryId } = published;
3068
+ const subscription = await subscribeToSlots({
3069
+ repositoryId,
3070
+ onChange: () => this.reloadGraphFromDisk(),
3071
+ onDetach: () => {
3072
+ this.daemonOwnsFreshness = false;
3073
+ this.slotSubscription = null;
3074
+ }
3075
+ });
3076
+ if (!subscription.active) return;
3077
+ if (this.shuttingDown) {
3078
+ subscription.close();
3079
+ return;
3080
+ }
3081
+ this.slotSubscription = subscription;
3082
+ this.daemonOwnsFreshness = true;
3083
+ this.conn.notify("window/logMessage", {
3084
+ type: 3,
3085
+ message: `Vibgrate graph: freshness deferred to the local runtime (${repositoryId}).`
3086
+ });
3087
+ } catch {
3088
+ }
3089
+ }
3009
3090
  /**
3010
3091
  * The graph for a query. The first call still builds the map (there is
3011
3092
  * nothing to answer from otherwise), but a *refresh* is only ever kicked off
@@ -3016,7 +3097,7 @@ var VibgrateLanguageServer = class {
3016
3097
  async graphForQuery() {
3017
3098
  await this.ensureGraph();
3018
3099
  if (!this.graph) return null;
3019
- await this.refresher.maybeRefresh();
3100
+ if (!this.daemonOwnsFreshness) await this.refresher.maybeRefresh();
3020
3101
  return this.graph;
3021
3102
  }
3022
3103
  /**
@@ -3026,13 +3107,20 @@ var VibgrateLanguageServer = class {
3026
3107
  */
3027
3108
  onRefreshSettled(outcome) {
3028
3109
  if (outcome?.status !== "refreshed" || !outcome.wrote) return;
3110
+ this.reloadGraphFromDisk();
3111
+ }
3112
+ /**
3113
+ * Re-read the map we already have on disk. Shared by the local refresher and
3114
+ * by the daemon's `slot-changed` push, which are the only two things that
3115
+ * ever rewrite it — and never both at once.
3116
+ */
3117
+ reloadGraphFromDisk() {
3029
3118
  const graphPath = resolveGraphPath(this.opts.root);
3030
3119
  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
- }
3120
+ if (!reloaded) return;
3121
+ this.graph = reloaded;
3122
+ this.fileRoles = fileRolesFromParseCache(this.opts.root);
3123
+ this.refineAndPublishArchitecture();
3036
3124
  }
3037
3125
  /**
3038
3126
  * Graph / AST-role refine can land after the first `publishScore()`. The
@@ -3304,12 +3392,7 @@ function looksLikeScanArtifactJson(text) {
3304
3392
  function isPrunedWorkspacePath(relPath) {
3305
3393
  if (!relPath || relPath === "." || relPath === "") return false;
3306
3394
  const parts = relPath.split(/[/\\]/).filter(Boolean);
3307
- if (parts.includes(".claude")) return true;
3308
- return parts.some((p) => {
3309
- if (SKIP_DIRS.has(p)) return true;
3310
- if (p.startsWith(".venv") || p.startsWith("venv-") || p === "site-packages") return true;
3311
- return false;
3312
- });
3395
+ return parts.some((p) => isSkippedDirName(p));
3313
3396
  }
3314
3397
  function pruneArtifactProjects(a) {
3315
3398
  const projects = (a.projects ?? []).filter(
@@ -7525,7 +7608,7 @@ function registerCode(program) {
7525
7608
  try {
7526
7609
  const { parseMode: parseMode2, resolveMode: resolveMode2, readOrchestratorState: readOrchestratorState2, activePin: activePin2 } = await import('./model-orchestrator-LHYPJBFH.js');
7527
7610
  const { gatherSystemMemory: gatherSystemMemory2 } = await import('./local-runtime-6SNWKSA7.js');
7528
- const { loadGraph: loadGraph2 } = await import('./load-H5HAME25.js');
7611
+ const { loadGraph: loadGraph2 } = await import('./load-6CYLMUT5.js');
7529
7612
  const state = readOrchestratorState2();
7530
7613
  const mode = parseMode2(modeFlag) ?? state.defaultMode ?? void 0;
7531
7614
  const pin = mode ? activePin2(mode, state) : null;
@@ -7610,7 +7693,7 @@ function registerCode(program) {
7610
7693
  if (!(process.stdin.isTTY && process.stdout.isTTY)) {
7611
7694
  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
7695
  }
7613
- const { runInteractive } = await import('./interactive-KEPGE5HD.js');
7696
+ const { runInteractive } = await import('./interactive-ZZMHSZ3W.js');
7614
7697
  await runInteractive(
7615
7698
  rootOf(global),
7616
7699
  global,
@@ -7640,7 +7723,7 @@ function registerCode(program) {
7640
7723
  }
7641
7724
  if (!instruction && !stdinFirstTurn) throw usageError('say what to change, e.g. `vg code "add a --timeout flag to the scan command"`');
7642
7725
  {
7643
- const { ensureCodeMap } = await import('./ensure-map-B2PS5ALS.js');
7726
+ const { ensureCodeMap } = await import('./ensure-map-4D2HJ6MA.js');
7644
7727
  const mapRoot = rootOf(global);
7645
7728
  try {
7646
7729
  await ensureCodeMap(mapRoot, global, {
@@ -7725,20 +7808,20 @@ function registerCode(program) {
7725
7808
  process.stdout.write(JSON.stringify(line) + "\n");
7726
7809
  };
7727
7810
  try {
7728
- const { RunOutcomeRecorder, newOneShotRunId, turnRunId } = await import('./run-outcome-V3L4GAN4.js');
7811
+ const { RunOutcomeRecorder, newOneShotRunId, turnRunId } = await import('./run-outcome-ADEAKXHH.js');
7729
7812
  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');
7813
+ const { runCodeStreamJson, parseHostMessage } = await import('./stream-json-S2TP2VPU.js');
7814
+ const { nodeCodeFs } = await import('./session-3A6LKJHD.js');
7732
7815
  const readline6 = await import('readline');
7733
7816
  const child = await import('child_process');
7734
- const { loadOrDiscoverFederation } = await import('./federation-MDQPO3PW.js');
7817
+ const { loadOrDiscoverFederation } = await import('./federation-SZYVHYB2.js');
7735
7818
  const { resolveExecutionEnv } = await import('./execution-env-4MS5AYAN.js');
7736
7819
  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');
7820
+ const { startCodeRuntimeSession } = await import('./runtime-session-VNSXQAEO.js');
7821
+ const { resolveGraphBackend } = await import('./graph-backend-36EIAAPQ.js');
7739
7822
  const { detectGitRef } = await import('./git-ref-RSRAN4OH.js');
7740
7823
  const { repositoryIdFromRoot } = await import('./paths-62AKTFSR.js');
7741
- const { vgdRequest } = await import('./vgd-R2PNIDEP.js');
7824
+ const { vgdRequest } = await import('./vgd-KGXIKGOS.js');
7742
7825
  const federation = loadOrDiscoverFederation(root3);
7743
7826
  const modelProfile = mergeModelExecutionProfile(
7744
7827
  resolveModelExecutionProfile({
@@ -7796,7 +7879,7 @@ ${res.stderr}` : ""),
7796
7879
  exitCode: res.status ?? 1
7797
7880
  };
7798
7881
  };
7799
- const { createVgBuiltinMcpTools, mergeExternalToolsets } = await import('./vg-mcp-bridge-HCPJWJKJ.js');
7882
+ const { createVgBuiltinMcpTools, mergeExternalToolsets } = await import('./vg-mcp-bridge-IIBEAOEB.js');
7800
7883
  const vgBuiltin = createVgBuiltinMcpTools({
7801
7884
  getGraph: () => graph,
7802
7885
  root: root3,
@@ -7841,7 +7924,7 @@ ${res.stderr}` : ""),
7841
7924
  files,
7842
7925
  indexFile: checkpointIndex
7843
7926
  });
7844
- const { loadApprovalRules, addApprovalRule, ruleForAction, ruleLabel } = await import('./approvals-YFOU6GVB.js');
7927
+ const { loadApprovalRules, addApprovalRule, ruleForAction, ruleLabel } = await import('./approvals-DHTG3HI4.js');
7845
7928
  const { loadProjectRules, nodeRulesReader } = await import('./rules-ASYEUNB5.js');
7846
7929
  const projectRules = loadProjectRules(nodeRulesReader(root3));
7847
7930
  if (projectRules.sources.length && !global.quiet) {
@@ -7899,8 +7982,8 @@ ${res.stderr}` : ""),
7899
7982
  };
7900
7983
  try {
7901
7984
  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');
7985
+ const { runCodeStreamJsonSession, STREAM_JSON_PROTOCOL_VERSION } = await import('./stream-json-S2TP2VPU.js');
7986
+ const { runAgent: runAgent2 } = await import('./agent-3CKNTCRX.js');
7904
7987
  const {
7905
7988
  condenseSession,
7906
7989
  loadLatestSession,
@@ -7911,7 +7994,7 @@ ${res.stderr}` : ""),
7911
7994
  sessionsDir,
7912
7995
  summarizeSession
7913
7996
  } = await import('./session-store-AQUORKWB.js');
7914
- const { VERSION: VERSION2 } = await import('./version-VRZT5G4T.js');
7997
+ const { VERSION: VERSION2 } = await import('./version-SZI6I3A2.js');
7915
7998
  const resumedRecord = typeof opts.continue === "string" ? loadSession(mainRoot, opts.continue) : opts.continue ? loadLatestSession(mainRoot) : void 0;
7916
7999
  if (typeof opts.continue === "string" && !resumedRecord) {
7917
8000
  emitStream({
@@ -8123,8 +8206,8 @@ ${res.stderr}` : ""),
8123
8206
  if (!autonomous && !tty) {
8124
8207
  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
8208
  }
8126
- const { agentTask } = await import('./interactive-KEPGE5HD.js');
8127
- const { nodeCodeFs } = await import('./session-77YXFUC7.js');
8209
+ const { agentTask } = await import('./interactive-ZZMHSZ3W.js');
8210
+ const { nodeCodeFs } = await import('./session-3A6LKJHD.js');
8128
8211
  const { TtyPrompter } = await import('./ui-K7D3BCHD.js');
8129
8212
  let priorSummary;
8130
8213
  let priorInstruction;
@@ -8139,7 +8222,7 @@ ${res.stderr}` : ""),
8139
8222
  }
8140
8223
  }
8141
8224
  const prompter = tty ? new TtyPrompter() : void 0;
8142
- const { createVgBuiltinMcpTools, mergeExternalToolsets } = await import('./vg-mcp-bridge-HCPJWJKJ.js');
8225
+ const { createVgBuiltinMcpTools, mergeExternalToolsets } = await import('./vg-mcp-bridge-IIBEAOEB.js');
8143
8226
  const vgBuiltin = createVgBuiltinMcpTools({
8144
8227
  getGraph: () => graph,
8145
8228
  root: root3,
@@ -8160,14 +8243,14 @@ ${res.stderr}` : ""),
8160
8243
  }
8161
8244
  const mcpTools = mergeExternalToolsets(vgBuiltin, projectMcp);
8162
8245
  try {
8163
- const { loadFederation } = await import('./federation-MDQPO3PW.js');
8246
+ const { loadFederation } = await import('./federation-SZYVHYB2.js');
8164
8247
  const { resolveExecutionEnv } = await import('./execution-env-4MS5AYAN.js');
8165
8248
  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');
8249
+ const { startCodeRuntimeSession } = await import('./runtime-session-VNSXQAEO.js');
8250
+ const { resolveGraphBackend } = await import('./graph-backend-36EIAAPQ.js');
8168
8251
  const { detectGitRef } = await import('./git-ref-RSRAN4OH.js');
8169
8252
  const { repositoryIdFromRoot } = await import('./paths-62AKTFSR.js');
8170
- const { vgdRequest } = await import('./vgd-R2PNIDEP.js');
8253
+ const { vgdRequest } = await import('./vgd-KGXIKGOS.js');
8171
8254
  const federation = loadFederation(root3);
8172
8255
  const modelProfile = mergeModelExecutionProfile(
8173
8256
  resolveModelExecutionProfile({
@@ -9067,7 +9150,7 @@ var LANGUAGE_EXTENSIONS = {
9067
9150
  cobol: [".cbl", ".cob", ".cpy", ".cob85", ".cobol"],
9068
9151
  vb6: [".vbp", ".bas", ".cls", ".frm", ".ctl", ".dsr"]
9069
9152
  };
9070
- var SKIP_DIRS2 = /* @__PURE__ */ new Set([
9153
+ var SKIP_DIRS = /* @__PURE__ */ new Set([
9071
9154
  "node_modules",
9072
9155
  ".git",
9073
9156
  ".vibgrate",
@@ -9195,7 +9278,7 @@ function registerHcs(program) {
9195
9278
  const absChild = path46.join(abs, entry.name);
9196
9279
  const relChild = rel ? `${rel}/${entry.name}` : entry.name;
9197
9280
  if (entry.isDirectory()) {
9198
- if (!SKIP_DIRS2.has(entry.name)) walk2(absChild, relChild);
9281
+ if (!SKIP_DIRS.has(entry.name)) walk2(absChild, relChild);
9199
9282
  continue;
9200
9283
  }
9201
9284
  if (!entry.isFile()) continue;
@@ -9351,7 +9434,7 @@ var initCommand = new Command("init").description("Initialize vibgrate in a proj
9351
9434
  console.log(chalk7.green("\u2714") + ` Created ${chalk7.bold("vibgrate.config.ts")}`);
9352
9435
  }
9353
9436
  if (opts.baseline) {
9354
- const { runBaseline } = await import('./baseline-OBZJRCCP.js');
9437
+ const { runBaseline } = await import('./baseline-QDC6OQ2X.js');
9355
9438
  await runBaseline(rootDir);
9356
9439
  }
9357
9440
  console.log("");
@@ -9882,6 +9965,36 @@ function reportStandards(rootDir) {
9882
9965
  console.log(` ${chalk7.red("banned")} ${v.ecosystem}:${v.name}${v.installed ? chalk7.dim(` ${v.installed}`) : ""}${fix}${why}`);
9883
9966
  }
9884
9967
  }
9968
+ async function printRuntimeSnapshot(rootDir, opts, already) {
9969
+ try {
9970
+ const { attachVgd: attachVgd2 } = await import('./attach-OCQ3I76L.js');
9971
+ const { vgdRequest } = await import('./client-UQIELEEZ.js');
9972
+ const { formatSemanticProgress } = await import('./semantic-status-2JFLIQQJ.js');
9973
+ let repositoryId = already?.repositoryId;
9974
+ let socketPath = already?.socketPath;
9975
+ if (!repositoryId || !socketPath) {
9976
+ const attached = await attachVgd2(rootDir, {
9977
+ disabled: opts.daemon === false,
9978
+ autoStart: false,
9979
+ publish: false
9980
+ });
9981
+ if (attached.status !== "attached" || !attached.repositoryId || !attached.socketPath) return;
9982
+ repositoryId = attached.repositoryId;
9983
+ socketPath = attached.socketPath;
9984
+ }
9985
+ const semantic = await vgdRequest({ op: "embed-status", repositoryId }, { socketPath });
9986
+ if (!semantic.ok || !("semantic" in semantic)) return;
9987
+ const slot = semantic.semantic.slots.find((s) => s.repositoryId === repositoryId) ?? semantic.semantic.slots[0];
9988
+ if (!slot) {
9989
+ if (semantic.semantic.worker === "unavailable" && semantic.semantic.reason) {
9990
+ console.error(chalk7.dim(` \xB7 semantic \xB7 ${semantic.semantic.reason}`));
9991
+ }
9992
+ return;
9993
+ }
9994
+ console.error(chalk7.dim(` \xB7 ${formatSemanticProgress(slot)}`));
9995
+ } catch {
9996
+ }
9997
+ }
9885
9998
  function parseNonNegativeNumber(value, label) {
9886
9999
  if (value === void 0) return void 0;
9887
10000
  const parsed = Number(value);
@@ -9980,6 +10093,7 @@ var scanCommand = new Command("scan").description("Scan a project for upgrade dr
9980
10093
  console.error(chalk7.red("Repository unchanged but no previous ingest id available."));
9981
10094
  process.exit(1);
9982
10095
  }
10096
+ await printRuntimeSnapshot(rootDir, opts);
9983
10097
  return;
9984
10098
  }
9985
10099
  }
@@ -10062,10 +10176,10 @@ var scanCommand = new Command("scan").description("Scan a project for upgrade dr
10062
10176
  const advanced = await loadAdvancedScanHook();
10063
10177
  const artifact = await runCoreScan(rootDir, scanOpts, advanced);
10064
10178
  if (wantGraph && builtGraph) {
10065
- const { attachVgd: attachVgd2 } = await import('./attach-6S3XS7VO.js');
10179
+ const { attachVgd: attachVgd2 } = await import('./attach-OCQ3I76L.js');
10066
10180
  const { ActivityLog: ActivityLog2 } = await import('./activity-MF2GNYAI.js');
10067
10181
  const activity = new ActivityLog2();
10068
- await activity.time(
10182
+ const attached = await activity.time(
10069
10183
  "attach",
10070
10184
  () => attachVgd2(rootDir, { disabled: opts.daemon === false }),
10071
10185
  (a) => {
@@ -10074,7 +10188,7 @@ var scanCommand = new Command("scan").description("Scan a project for upgrade dr
10074
10188
  if (a.published?.status === "published") {
10075
10189
  return {
10076
10190
  outcome: "ok",
10077
- detail: `${started} \xB7 map published ${a.published.gitRef} \xB7 ${a.published.nodeCount} nodes \xB7 semantic index warming`
10191
+ detail: `${started} \xB7 map published ${a.published.gitRef} \xB7 ${a.published.nodeCount} nodes`
10078
10192
  };
10079
10193
  }
10080
10194
  return { outcome: "ok", detail: started };
@@ -10082,6 +10196,12 @@ var scanCommand = new Command("scan").description("Scan a project for upgrade dr
10082
10196
  );
10083
10197
  if (!opts.quiet && opts.format !== "json") {
10084
10198
  for (const line of activity.render()) console.error(line);
10199
+ if (attached.status === "attached") {
10200
+ await printRuntimeSnapshot(rootDir, opts, {
10201
+ repositoryId: attached.repositoryId,
10202
+ socketPath: attached.socketPath
10203
+ });
10204
+ }
10085
10205
  }
10086
10206
  }
10087
10207
  emitDriftScoreLine(artifact.drift.score);
@@ -10183,7 +10303,7 @@ var WATCHED_FILES = /* @__PURE__ */ new Set([
10183
10303
  "packages.lock.json"
10184
10304
  ]);
10185
10305
  var WATCHED_EXT = /\.(cs|fs)proj$/i;
10186
- var SKIP_DIRS3 = /* @__PURE__ */ new Set([
10306
+ var SKIP_DIRS2 = /* @__PURE__ */ new Set([
10187
10307
  "node_modules",
10188
10308
  ".git",
10189
10309
  "dist",
@@ -10224,7 +10344,7 @@ function scanStaleness(rootDir, artifactPath) {
10224
10344
  scanned++;
10225
10345
  if (scanned > MAX_ENTRIES2) break;
10226
10346
  if (e.isDirectory()) {
10227
- if (!SKIP_DIRS3.has(e.name) && !e.name.startsWith(".")) walk2(path46.join(dir, e.name), depth + 1);
10347
+ if (!SKIP_DIRS2.has(e.name) && !e.name.startsWith(".")) walk2(path46.join(dir, e.name), depth + 1);
10228
10348
  continue;
10229
10349
  }
10230
10350
  if (!WATCHED_FILES.has(e.name) && !WATCHED_EXT.test(e.name)) continue;
@@ -10301,7 +10421,7 @@ function extractContracts(content, pkg, ecosystem) {
10301
10421
  }
10302
10422
 
10303
10423
  // src/reporting/planning/usage.ts
10304
- var SKIP_DIRS4 = /* @__PURE__ */ new Set([
10424
+ var SKIP_DIRS3 = /* @__PURE__ */ new Set([
10305
10425
  "node_modules",
10306
10426
  ".git",
10307
10427
  "dist",
@@ -10376,7 +10496,7 @@ function analyzeTree(root3, packages) {
10376
10496
  for (const entry of entries) {
10377
10497
  if (filesSeen >= MAX_FILES) return;
10378
10498
  if (entry.isDirectory()) {
10379
- if (SKIP_DIRS4.has(entry.name) || entry.name.startsWith(".")) continue;
10499
+ if (SKIP_DIRS3.has(entry.name) || entry.name.startsWith(".")) continue;
10380
10500
  walk2(path46.join(dir, entry.name), depth + 1);
10381
10501
  continue;
10382
10502
  }
@@ -10962,7 +11082,7 @@ ${String(err)}` }));
10962
11082
  async function releaseWindowsFileLocks(cwd, keepVersion) {
10963
11083
  reapAndReport(cwd, keepVersion);
10964
11084
  try {
10965
- const { vgdSocketPath } = await import('./vgd-R2PNIDEP.js');
11085
+ const { vgdSocketPath } = await import('./vgd-KGXIKGOS.js');
10966
11086
  const result = await stopVgd(vgdSocketPath());
10967
11087
  if (result === "stopped") {
10968
11088
  console.log(chalk7.dim("Stopped the vgd daemon so its files can be replaced \u2014 it restarts on the next command."));
@@ -11088,7 +11208,7 @@ var updateCommand = new Command("update").description("Update vibgrate to the la
11088
11208
  );
11089
11209
  async function rewarmVgdAndReport(cwd) {
11090
11210
  try {
11091
- const { vgdIsRunning, vgdRequest } = await import('./vgd-R2PNIDEP.js');
11211
+ const { vgdIsRunning, vgdRequest } = await import('./vgd-KGXIKGOS.js');
11092
11212
  if (!await vgdIsRunning()) return;
11093
11213
  const loaded = await vgdRequest({ op: "load-graph", root: cwd });
11094
11214
  if (!loaded.ok || !("stored" in loaded)) return;