@vibgrate/cli 2026.825.1 → 2026.826.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{agent-IHNUBFBM.js → agent-4RHH2FR2.js} +13 -13
- package/dist/{agent-IHNUBFBM.js.map → agent-4RHH2FR2.js.map} +1 -1
- package/dist/{approvals-HRIMDIX3.js → approvals-XDFM346D.js} +5 -5
- package/dist/{approvals-HRIMDIX3.js.map → approvals-XDFM346D.js.map} +1 -1
- package/dist/{attach-L43JUJ7A.js → attach-LGTCYNKC.js} +3 -3
- package/dist/{attach-L43JUJ7A.js.map → attach-LGTCYNKC.js.map} +1 -1
- package/dist/{baseline-EZQ7SCRT.js → baseline-PRY5HKL5.js} +3 -3
- package/dist/{baseline-EZQ7SCRT.js.map → baseline-PRY5HKL5.js.map} +1 -1
- package/dist/{chunk-BCK2NIBM.js → chunk-7KOEEEIZ.js} +6 -6
- package/dist/{chunk-BCK2NIBM.js.map → chunk-7KOEEEIZ.js.map} +1 -1
- package/dist/{chunk-5BFA532E.js → chunk-7S4ELKK6.js} +3 -3
- package/dist/{chunk-5BFA532E.js.map → chunk-7S4ELKK6.js.map} +1 -1
- package/dist/{chunk-UUVOA6WD.js → chunk-BHDP7EVJ.js} +8 -8
- package/dist/{chunk-UUVOA6WD.js.map → chunk-BHDP7EVJ.js.map} +1 -1
- package/dist/{chunk-GRMZU24V.js → chunk-E44I7635.js} +3 -3
- package/dist/{chunk-GRMZU24V.js.map → chunk-E44I7635.js.map} +1 -1
- package/dist/{chunk-RHYRMMN3.js → chunk-IEZCFMNL.js} +3 -3
- package/dist/{chunk-RHYRMMN3.js.map → chunk-IEZCFMNL.js.map} +1 -1
- package/dist/{chunk-TLYNLQL2.js → chunk-IM7HME2T.js} +9 -9
- package/dist/{chunk-TLYNLQL2.js.map → chunk-IM7HME2T.js.map} +1 -1
- package/dist/chunk-JQ7OL4XG.js +6 -0
- package/dist/{chunk-KFLNWYZG.js.map → chunk-JQ7OL4XG.js.map} +1 -1
- package/dist/{chunk-FVBN4E5C.js → chunk-K2IWOZEQ.js} +3 -3
- package/dist/{chunk-FVBN4E5C.js.map → chunk-K2IWOZEQ.js.map} +1 -1
- package/dist/{chunk-6VLOI2ZP.js → chunk-LAYDXJEQ.js} +3 -3
- package/dist/{chunk-6VLOI2ZP.js.map → chunk-LAYDXJEQ.js.map} +1 -1
- package/dist/{chunk-LUJ4H4RJ.js → chunk-NQU6E6OG.js} +3 -3
- package/dist/{chunk-LUJ4H4RJ.js.map → chunk-NQU6E6OG.js.map} +1 -1
- package/dist/{chunk-QTQRM7HQ.js → chunk-PEHMRPYM.js} +3 -3
- package/dist/{chunk-QTQRM7HQ.js.map → chunk-PEHMRPYM.js.map} +1 -1
- package/dist/{chunk-M7O6IVKN.js → chunk-PIB3YNJU.js} +3 -3
- package/dist/{chunk-M7O6IVKN.js.map → chunk-PIB3YNJU.js.map} +1 -1
- package/dist/{chunk-S3HMG6BC.js → chunk-QONHVC4H.js} +3 -3
- package/dist/{chunk-S3HMG6BC.js.map → chunk-QONHVC4H.js.map} +1 -1
- package/dist/{chunk-YP243ZKD.js → chunk-R5BGRJ6X.js} +3 -3
- package/dist/{chunk-YP243ZKD.js.map → chunk-R5BGRJ6X.js.map} +1 -1
- package/dist/{chunk-4PCFSRYH.js → chunk-TKUWEJZJ.js} +5 -5
- package/dist/{chunk-4PCFSRYH.js.map → chunk-TKUWEJZJ.js.map} +1 -1
- package/dist/{chunk-L3YEEJ6U.js → chunk-TOHNVUDD.js} +3 -3
- package/dist/{chunk-L3YEEJ6U.js.map → chunk-TOHNVUDD.js.map} +1 -1
- package/dist/{chunk-ECQFRZJI.js → chunk-TQ75FB52.js} +4 -4
- package/dist/{chunk-ECQFRZJI.js.map → chunk-TQ75FB52.js.map} +1 -1
- package/dist/{chunk-LKJIYGO5.js → chunk-TUVB6Q6F.js} +6 -6
- package/dist/{chunk-LKJIYGO5.js.map → chunk-TUVB6Q6F.js.map} +1 -1
- package/dist/{chunk-X34HVFZ6.js → chunk-WGA4KUGS.js} +8 -8
- package/dist/{chunk-X34HVFZ6.js.map → chunk-WGA4KUGS.js.map} +1 -1
- package/dist/{chunk-Y3X3ORQ3.js → chunk-WGSLN73L.js} +5 -5
- package/dist/{chunk-Y3X3ORQ3.js.map → chunk-WGSLN73L.js.map} +1 -1
- package/dist/{chunk-DLNNNESQ.js → chunk-WHNB3443.js} +3 -3
- package/dist/{chunk-DLNNNESQ.js.map → chunk-WHNB3443.js.map} +1 -1
- package/dist/{chunk-CIC3NY2D.js → chunk-WPQCJADP.js} +27 -17
- package/dist/chunk-WPQCJADP.js.map +1 -0
- package/dist/{chunk-B5X246UH.js → chunk-WU2DVESP.js} +3 -3
- package/dist/{chunk-B5X246UH.js.map → chunk-WU2DVESP.js.map} +1 -1
- package/dist/{chunk-JSZ46IDG.js → chunk-XW4FCBL4.js} +6 -6
- package/dist/{chunk-JSZ46IDG.js.map → chunk-XW4FCBL4.js.map} +1 -1
- package/dist/{chunk-YIRDV4YJ.js → chunk-ZRDTI67N.js} +3 -3
- package/dist/{chunk-YIRDV4YJ.js.map → chunk-ZRDTI67N.js.map} +1 -1
- package/dist/cli.js +52 -51
- package/dist/cli.js.map +1 -1
- package/dist/{daemon-WPX2SBVV.js → daemon-2YMCH7R2.js} +9 -9
- package/dist/{daemon-WPX2SBVV.js.map → daemon-2YMCH7R2.js.map} +1 -1
- package/dist/embed-worker-main.js +3 -3
- package/dist/{ensure-map-MLI4XCRV.js → ensure-map-S2GBW2UC.js} +14 -14
- package/dist/{ensure-map-MLI4XCRV.js.map → ensure-map-S2GBW2UC.js.map} +1 -1
- package/dist/{graph-backend-LK5EFQXN.js → graph-backend-QDEU5RIR.js} +7 -7
- package/dist/{graph-backend-LK5EFQXN.js.map → graph-backend-QDEU5RIR.js.map} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +15 -15
- package/dist/{interactive-K446F42I.js → interactive-GMGWUEQO.js} +30 -26
- package/dist/interactive-GMGWUEQO.js.map +1 -0
- package/dist/load-JXCTAAEI.js +11 -0
- package/dist/{load-2FRH37JY.js.map → load-JXCTAAEI.js.map} +1 -1
- package/dist/parse-worker.js +2 -2
- package/dist/{run-outcome-4ETNDPX6.js → run-outcome-5NA7PI52.js} +5 -5
- package/dist/{run-outcome-4ETNDPX6.js.map → run-outcome-5NA7PI52.js.map} +1 -1
- package/dist/{runtime-session-RMSKXFIJ.js → runtime-session-IEM6DZDP.js} +9 -9
- package/dist/{runtime-session-RMSKXFIJ.js.map → runtime-session-IEM6DZDP.js.map} +1 -1
- package/dist/{session-22BGDYWF.js → session-VYFLJ7KL.js} +8 -8
- package/dist/{session-22BGDYWF.js.map → session-VYFLJ7KL.js.map} +1 -1
- package/dist/{stream-json-MD7MSSCH.js → stream-json-2ISQLKPD.js} +13 -13
- package/dist/{stream-json-MD7MSSCH.js.map → stream-json-2ISQLKPD.js.map} +1 -1
- package/dist/version-B62ELJRY.js +4 -0
- package/dist/{version-FRUT6RI2.js.map → version-B62ELJRY.js.map} +1 -1
- package/dist/{vg-mcp-bridge-H6I3ALUW.js → vg-mcp-bridge-CJIK5U56.js} +8 -8
- package/dist/{vg-mcp-bridge-H6I3ALUW.js.map → vg-mcp-bridge-CJIK5U56.js.map} +1 -1
- package/dist/{vgd-TW7HU2PH.js → vgd-4EB6SKFB.js} +8 -8
- package/dist/vgd-4EB6SKFB.js.map +1 -0
- package/package.json +1 -1
- package/dist/chunk-CIC3NY2D.js.map +0 -1
- package/dist/chunk-KFLNWYZG.js +0 -6
- package/dist/interactive-K446F42I.js.map +0 -1
- package/dist/load-2FRH37JY.js +0 -11
- package/dist/version-FRUT6RI2.js +0 -4
- package/dist/vgd-TW7HU2PH.js.map +0 -1
|
@@ -91,10 +91,10 @@ async function currentSlot(root, socketPath, request) {
|
|
|
91
91
|
return { repositoryId: reg.workspace.id, gitRef: summary.gitRef, corpusHash: summary.summary.corpusHash };
|
|
92
92
|
}
|
|
93
93
|
async function defaultEnsure() {
|
|
94
|
-
const { ensureVgdSoft } = await import('./daemon-
|
|
94
|
+
const { ensureVgdSoft } = await import('./daemon-2YMCH7R2.js');
|
|
95
95
|
return (socketPath, readyBudgetMs) => ensureVgdSoft(socketPath, readyBudgetMs);
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
export { attachVgd, daemonDisabledReason };
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
100
|
-
//# sourceMappingURL=chunk-
|
|
99
|
+
//# sourceMappingURL=chunk-E44I7635.js.map
|
|
100
|
+
//# sourceMappingURL=chunk-E44I7635.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/runtime/vgd/attach.ts"],"names":[],"mappings":"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","file":"chunk-GRMZU24V.js","sourcesContent":["import { vgdIsRunning, vgdRequest } from './client.js';\nimport { vgdSocketPath } from './paths.js';\nimport { publishGraphToVgd, type VgdPublishOutcome } from './publish.js';\n\n/**\n * The one way an ordinary command joins the local runtime.\n *\n * Until now vgd only ever existed because `vg code` or the VS Code extension\n * started it, so a developer running `vg`, `vg build` and `vg ask` all day\n * never had a runtime at all — every invocation re-read the map and re-loaded\n * the embedder from cold. Auto-start makes the daemon the normal case, and\n * publishing on attach makes it hold the thing it is supposed to accelerate.\n *\n * Three rules keep this safe to put in front of every command:\n *\n * - **Never blocking.** `ensureVgdSoft` spawns and waits ~1.5s, not the 30s\n * `vg daemon ensure` waits. A daemon that is still coming up simply is not\n * used this time; the command runs its in-process path and finds a warm\n * runtime on the next call.\n * - **Never fatal.** Every outcome is a value, never a throw. \"No daemon\" is a\n * supported configuration, and it must stay one — the fallbacks are the\n * code paths that exist today.\n * - **Always escapable.** `--no-daemon`, `VG_NO_DAEMON=1`, and `CI` all turn\n * auto-start off. A one-shot CI job should not leave a background process\n * behind, and a user who does not want one must be able to say so once.\n */\n\nexport type AttachStatus = 'attached' | 'disabled' | 'unavailable';\n\nexport interface AttachResult {\n status: AttachStatus;\n /** Why, when not attached — safe to show verbatim. */\n reason?: string;\n /** True when this call is what started the daemon. */\n started?: boolean;\n socketPath?: string;\n repositoryId?: string;\n gitRef?: string;\n /** Outcome of the map publish, when one was requested. */\n published?: VgdPublishOutcome;\n}\n\nexport interface AttachOptions {\n socketPath?: string;\n /** Spawn a daemon when none is listening (default true). */\n autoStart?: boolean;\n /** How long to wait for a just-spawned daemon before giving up (default 1500ms). */\n readyBudgetMs?: number;\n /** Publish this repo's map after attaching (default true). */\n publish?: boolean;\n /**\n * The corpus hash of the map the caller already holds. When the daemon's\n * slot reports the same hash the publish is skipped entirely.\n *\n * This matters more than it looks: `load-graph` runs the registry's slot\n * funnel, and `onGraphPut` deliberately drops the slot's vectors — so\n * re-publishing an unchanged map on every `vg ask` invalidated and re-seeded\n * the semantic index once per command, for nothing.\n */\n corpusHash?: string;\n /** Also wait for the slot's semantic index (default false — warming is background work). */\n warmSemantic?: boolean;\n gitRef?: string;\n /** Custom `--graph` artifact path. */\n graphPath?: string;\n /** Explicit opt-out from the caller's parsed flags (`--no-daemon`). */\n disabled?: boolean;\n /** Injected (tests). */\n isRunning?: typeof vgdIsRunning;\n request?: typeof vgdRequest;\n ensure?: (socketPath: string, readyBudgetMs: number) => Promise<{ running: boolean; started: boolean }>;\n env?: NodeJS.ProcessEnv;\n}\n\nfunction truthy(value: string | undefined): boolean {\n if (!value) return false;\n const v = value.trim().toLowerCase();\n return v !== '' && v !== '0' && v !== 'false' && v !== 'no';\n}\n\n/**\n * Why auto-start is off, or null when it is on. Exposed so `vg doctor` can\n * explain a missing daemon instead of leaving the user to guess.\n */\nexport function daemonDisabledReason(\n options: { disabled?: boolean; env?: NodeJS.ProcessEnv } = {},\n): string | null {\n const env = options.env ?? process.env;\n if (options.disabled) return 'disabled by --no-daemon';\n if (truthy(env.VG_NO_DAEMON) || truthy(env.VIBGRATE_NO_DAEMON)) return 'disabled by VG_NO_DAEMON';\n // A CI job is one-shot by definition: starting a background daemon there\n // costs a cold start and leaves a process behind for no second call.\n if (truthy(env.CI)) return 'skipped in CI';\n return null;\n}\n\n/**\n * Ensure a local vgd is running and knows about this repository's map.\n * Resolves to a description of what happened; never throws.\n */\nexport async function attachVgd(root: string, options: AttachOptions = {}): Promise<AttachResult> {\n const disabled = daemonDisabledReason(options);\n if (disabled) return { status: 'disabled', reason: disabled };\n\n const socketPath = options.socketPath ?? vgdSocketPath();\n const isRunning = options.isRunning ?? vgdIsRunning;\n const readyBudgetMs = options.readyBudgetMs ?? 1500;\n\n try {\n let running = await isRunning({ socketPath });\n let started = false;\n if (!running && options.autoStart !== false) {\n const ensure = options.ensure ?? (await defaultEnsure());\n const r = await ensure(socketPath, readyBudgetMs);\n running = r.running;\n started = r.started;\n }\n if (!running) {\n return {\n status: 'unavailable',\n reason: started ? 'vgd is still starting — this run uses the in-process path' : 'no vgd is running',\n started,\n socketPath,\n };\n }\n\n const request = options.request ?? vgdRequest;\n\n // Register even when not publishing: \"attached\" should always mean the\n // caller knows which slot it is talking to, or `embed-rank` has no target.\n if (options.publish === false) {\n const reg = await request({ op: 'register', root }, { socketPath });\n const workspace = reg.ok && 'workspace' in reg ? reg.workspace : undefined;\n return {\n status: 'attached',\n started,\n socketPath,\n repositoryId: workspace?.id,\n gitRef: workspace?.gitRef,\n };\n }\n\n // Already current? Then registering is all this call needs to do.\n if (options.corpusHash) {\n const current = await currentSlot(root, socketPath, request);\n if (current && current.corpusHash === options.corpusHash) {\n return {\n status: 'attached',\n started,\n socketPath,\n repositoryId: current.repositoryId,\n gitRef: current.gitRef,\n published: { status: 'current', repositoryId: current.repositoryId, gitRef: current.gitRef },\n };\n }\n }\n\n const published = await publishGraphToVgd(root, {\n socketPath,\n gitRef: options.gitRef,\n graphPath: options.graphPath,\n warmSemantic: options.warmSemantic,\n isRunning: () => Promise.resolve(true),\n request: options.request,\n });\n return {\n status: 'attached',\n started,\n socketPath,\n repositoryId: published.status === 'published' ? published.repositoryId : undefined,\n gitRef: published.status === 'published' ? published.gitRef : undefined,\n published,\n };\n } catch (e) {\n return { status: 'unavailable', reason: e instanceof Error ? e.message : String(e), socketPath };\n }\n}\n\n/**\n * Register the workspace and ask what the daemon already holds for it.\n * Returns null when there is no slot yet (the common first-run case).\n */\nasync function currentSlot(\n root: string,\n socketPath: string,\n request: typeof vgdRequest,\n): Promise<{ repositoryId: string; gitRef: string; corpusHash: string | null } | null> {\n const reg = await request({ op: 'register', root }, { socketPath });\n if (!reg.ok || !('workspace' in reg)) return null;\n const summary = await request({ op: 'graph-summary', repositoryId: reg.workspace.id }, { socketPath });\n if (!summary.ok || !('summary' in summary)) return null;\n return { repositoryId: reg.workspace.id, gitRef: summary.gitRef, corpusHash: summary.summary.corpusHash };\n}\n\nasync function defaultEnsure(): Promise<(socketPath: string, readyBudgetMs: number) => Promise<{ running: boolean; started: boolean }>> {\n // Imported lazily: `commands/daemon.ts` pulls in commander and the whole\n // daemon command surface, which no fast path should pay for up front.\n const { ensureVgdSoft } = await import('../../commands/daemon.js');\n return (socketPath, readyBudgetMs) => ensureVgdSoft(socketPath, readyBudgetMs);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/runtime/vgd/attach.ts"],"names":[],"mappings":"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","file":"chunk-E44I7635.js","sourcesContent":["import { vgdIsRunning, vgdRequest } from './client.js';\nimport { vgdSocketPath } from './paths.js';\nimport { publishGraphToVgd, type VgdPublishOutcome } from './publish.js';\n\n/**\n * The one way an ordinary command joins the local runtime.\n *\n * Until now vgd only ever existed because `vg code` or the VS Code extension\n * started it, so a developer running `vg`, `vg build` and `vg ask` all day\n * never had a runtime at all — every invocation re-read the map and re-loaded\n * the embedder from cold. Auto-start makes the daemon the normal case, and\n * publishing on attach makes it hold the thing it is supposed to accelerate.\n *\n * Three rules keep this safe to put in front of every command:\n *\n * - **Never blocking.** `ensureVgdSoft` spawns and waits ~1.5s, not the 30s\n * `vg daemon ensure` waits. A daemon that is still coming up simply is not\n * used this time; the command runs its in-process path and finds a warm\n * runtime on the next call.\n * - **Never fatal.** Every outcome is a value, never a throw. \"No daemon\" is a\n * supported configuration, and it must stay one — the fallbacks are the\n * code paths that exist today.\n * - **Always escapable.** `--no-daemon`, `VG_NO_DAEMON=1`, and `CI` all turn\n * auto-start off. A one-shot CI job should not leave a background process\n * behind, and a user who does not want one must be able to say so once.\n */\n\nexport type AttachStatus = 'attached' | 'disabled' | 'unavailable';\n\nexport interface AttachResult {\n status: AttachStatus;\n /** Why, when not attached — safe to show verbatim. */\n reason?: string;\n /** True when this call is what started the daemon. */\n started?: boolean;\n socketPath?: string;\n repositoryId?: string;\n gitRef?: string;\n /** Outcome of the map publish, when one was requested. */\n published?: VgdPublishOutcome;\n}\n\nexport interface AttachOptions {\n socketPath?: string;\n /** Spawn a daemon when none is listening (default true). */\n autoStart?: boolean;\n /** How long to wait for a just-spawned daemon before giving up (default 1500ms). */\n readyBudgetMs?: number;\n /** Publish this repo's map after attaching (default true). */\n publish?: boolean;\n /**\n * The corpus hash of the map the caller already holds. When the daemon's\n * slot reports the same hash the publish is skipped entirely.\n *\n * This matters more than it looks: `load-graph` runs the registry's slot\n * funnel, and `onGraphPut` deliberately drops the slot's vectors — so\n * re-publishing an unchanged map on every `vg ask` invalidated and re-seeded\n * the semantic index once per command, for nothing.\n */\n corpusHash?: string;\n /** Also wait for the slot's semantic index (default false — warming is background work). */\n warmSemantic?: boolean;\n gitRef?: string;\n /** Custom `--graph` artifact path. */\n graphPath?: string;\n /** Explicit opt-out from the caller's parsed flags (`--no-daemon`). */\n disabled?: boolean;\n /** Injected (tests). */\n isRunning?: typeof vgdIsRunning;\n request?: typeof vgdRequest;\n ensure?: (socketPath: string, readyBudgetMs: number) => Promise<{ running: boolean; started: boolean }>;\n env?: NodeJS.ProcessEnv;\n}\n\nfunction truthy(value: string | undefined): boolean {\n if (!value) return false;\n const v = value.trim().toLowerCase();\n return v !== '' && v !== '0' && v !== 'false' && v !== 'no';\n}\n\n/**\n * Why auto-start is off, or null when it is on. Exposed so `vg doctor` can\n * explain a missing daemon instead of leaving the user to guess.\n */\nexport function daemonDisabledReason(\n options: { disabled?: boolean; env?: NodeJS.ProcessEnv } = {},\n): string | null {\n const env = options.env ?? process.env;\n if (options.disabled) return 'disabled by --no-daemon';\n if (truthy(env.VG_NO_DAEMON) || truthy(env.VIBGRATE_NO_DAEMON)) return 'disabled by VG_NO_DAEMON';\n // A CI job is one-shot by definition: starting a background daemon there\n // costs a cold start and leaves a process behind for no second call.\n if (truthy(env.CI)) return 'skipped in CI';\n return null;\n}\n\n/**\n * Ensure a local vgd is running and knows about this repository's map.\n * Resolves to a description of what happened; never throws.\n */\nexport async function attachVgd(root: string, options: AttachOptions = {}): Promise<AttachResult> {\n const disabled = daemonDisabledReason(options);\n if (disabled) return { status: 'disabled', reason: disabled };\n\n const socketPath = options.socketPath ?? vgdSocketPath();\n const isRunning = options.isRunning ?? vgdIsRunning;\n const readyBudgetMs = options.readyBudgetMs ?? 1500;\n\n try {\n let running = await isRunning({ socketPath });\n let started = false;\n if (!running && options.autoStart !== false) {\n const ensure = options.ensure ?? (await defaultEnsure());\n const r = await ensure(socketPath, readyBudgetMs);\n running = r.running;\n started = r.started;\n }\n if (!running) {\n return {\n status: 'unavailable',\n reason: started ? 'vgd is still starting — this run uses the in-process path' : 'no vgd is running',\n started,\n socketPath,\n };\n }\n\n const request = options.request ?? vgdRequest;\n\n // Register even when not publishing: \"attached\" should always mean the\n // caller knows which slot it is talking to, or `embed-rank` has no target.\n if (options.publish === false) {\n const reg = await request({ op: 'register', root }, { socketPath });\n const workspace = reg.ok && 'workspace' in reg ? reg.workspace : undefined;\n return {\n status: 'attached',\n started,\n socketPath,\n repositoryId: workspace?.id,\n gitRef: workspace?.gitRef,\n };\n }\n\n // Already current? Then registering is all this call needs to do.\n if (options.corpusHash) {\n const current = await currentSlot(root, socketPath, request);\n if (current && current.corpusHash === options.corpusHash) {\n return {\n status: 'attached',\n started,\n socketPath,\n repositoryId: current.repositoryId,\n gitRef: current.gitRef,\n published: { status: 'current', repositoryId: current.repositoryId, gitRef: current.gitRef },\n };\n }\n }\n\n const published = await publishGraphToVgd(root, {\n socketPath,\n gitRef: options.gitRef,\n graphPath: options.graphPath,\n warmSemantic: options.warmSemantic,\n isRunning: () => Promise.resolve(true),\n request: options.request,\n });\n return {\n status: 'attached',\n started,\n socketPath,\n repositoryId: published.status === 'published' ? published.repositoryId : undefined,\n gitRef: published.status === 'published' ? published.gitRef : undefined,\n published,\n };\n } catch (e) {\n return { status: 'unavailable', reason: e instanceof Error ? e.message : String(e), socketPath };\n }\n}\n\n/**\n * Register the workspace and ask what the daemon already holds for it.\n * Returns null when there is no slot yet (the common first-run case).\n */\nasync function currentSlot(\n root: string,\n socketPath: string,\n request: typeof vgdRequest,\n): Promise<{ repositoryId: string; gitRef: string; corpusHash: string | null } | null> {\n const reg = await request({ op: 'register', root }, { socketPath });\n if (!reg.ok || !('workspace' in reg)) return null;\n const summary = await request({ op: 'graph-summary', repositoryId: reg.workspace.id }, { socketPath });\n if (!summary.ok || !('summary' in summary)) return null;\n return { repositoryId: reg.workspace.id, gitRef: summary.gitRef, corpusHash: summary.summary.corpusHash };\n}\n\nasync function defaultEnsure(): Promise<(socketPath: string, readyBudgetMs: number) => Promise<{ running: boolean; started: boolean }>> {\n // Imported lazily: `commands/daemon.ts` pulls in commander and the whole\n // daemon command surface, which no fast path should pay for up front.\n const { ensureVgdSoft } = await import('../../commands/daemon.js');\n return (socketPath, readyBudgetMs) => ensureVgdSoft(socketPath, readyBudgetMs);\n}\n"]}
|
|
@@ -3,7 +3,7 @@ import { vgdSocketPath } from './chunk-6H2QV5DR.js';
|
|
|
3
3
|
|
|
4
4
|
// src/code/runtime-session.ts
|
|
5
5
|
async function defaultEnsure(socketPath) {
|
|
6
|
-
const { ensureVgd } = await import('./daemon-
|
|
6
|
+
const { ensureVgd } = await import('./daemon-2YMCH7R2.js');
|
|
7
7
|
await ensureVgd(socketPath ?? vgdSocketPath());
|
|
8
8
|
}
|
|
9
9
|
async function startCodeRuntimeSession(options) {
|
|
@@ -56,5 +56,5 @@ function noneSession() {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
export { startCodeRuntimeSession };
|
|
59
|
-
//# sourceMappingURL=chunk-
|
|
60
|
-
//# sourceMappingURL=chunk-
|
|
59
|
+
//# sourceMappingURL=chunk-IEZCFMNL.js.map
|
|
60
|
+
//# sourceMappingURL=chunk-IEZCFMNL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/code/runtime-session.ts"],"names":[],"mappings":";;;;AA2CA,eAAe,cAAc,UAAA,EAAoC;AAC/D,EAAA,MAAM,EAAE,SAAA,EAAU,GAAI,MAAM,OAAO,sBAAuB,CAAA;AAC1D,EAAA,MAAM,SAAA,CAAU,UAAA,IAAc,aAAA,EAAe,CAAA;AAC/C;AAMA,eAAsB,wBAAwB,OAAA,EAA6D;AACzG,EAAA,MAAM,aAAa,OAAA,CAAQ,UAAA;AAC3B,EAAA,MAAM,SAAA,GAAY,QAAQ,SAAA,KAAc,CAAC,OAAgB,YAAA,CAAa,EAAE,UAAA,EAAY,EAAA,EAAI,CAAA,CAAA;AACxF,EAAA,MAAM,OAAA,GAAU,QAAQ,OAAA,IAAW,UAAA;AACnC,EAAA,MAAM,MAAA,GAAS,QAAQ,YAAA,IAAgB,aAAA;AAEvC,EAAA,IAAI;AACF,IAAA,IAAI,CAAE,MAAM,SAAA,CAAU,UAAU,CAAA,EAAI;AAClC,MAAA,MAAM,OAAO,UAAU,CAAA;AAAA,IACzB;AACA,IAAA,OAAO,MAAM,cAAA,CAAe,OAAA,CAAQ,IAAA,EAAM,YAAY,OAAO,CAAA;AAAA,EAC/D,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,WAAA,EAAY;AAAA,EACrB;AACF;AAEA,eAAe,cAAA,CACb,IAAA,EACA,UAAA,EACA,OAAA,EAC6B;AAC7B,EAAA,MAAM,UAAA,GAAa,EAAE,UAAA,EAAW;AAChC,EAAA,MAAM,GAAA,GAAM,MAAM,OAAA,CAAQ,EAAE,IAAI,UAAA,EAAY,IAAA,IAAQ,UAAU,CAAA;AAC9D,EAAA,IAAI,CAAC,GAAA,CAAI,EAAA,IAAM,EAAE,WAAA,IAAe,GAAA,CAAA,SAAa,WAAA,EAAY;AACzD,EAAA,MAAM,MAAA,GAAS,MAAM,OAAA,CAAQ,EAAE,EAAA,EAAI,QAAA,EAAS,EAAG,UAAU,CAAA,CAAE,KAAA,CAAM,MAAM,IAAI,CAAA;AAC3E,EAAA,MAAM,MAAM,MAAA,IAAU,MAAA,CAAO,MAAM,KAAA,IAAS,MAAA,GAAS,OAAO,GAAA,GAAM,MAAA;AAClE,EAAA,IAAI,QAAA,GAAW,KAAA;AACf,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,UAAA;AAAA,IACN,GAAA;AAAA,IACA,WAAW,GAAA,CAAI,SAAA;AAAA,IACf,YAAY,MAAA,IAAU,MAAA,CAAO,MAAM,YAAA,IAAgB,MAAA,GAAS,OAAO,UAAA,GAAa,UAAA;AAAA,IAChF,KAAA,EAAO,GAAA,IAAO,IAAA,GAAO,CAAA,IAAA,EAAO,GAAG,CAAA,CAAA,GAAK,KAAA;AAAA,IACpC,MAAM,OAAA,GAAU;AACd,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,QAAA,GAAW,IAAA;AACX,MAAA,IAAI;AACF,QAAA,MAAM,QAAQ,EAAE,EAAA,EAAI,YAAA,EAAc,IAAA,IAAQ,UAAU,CAAA;AAAA,MACtD,CAAA,CAAA,MAAQ;AAAA,MAER;AAAA,IACF;AAAA,GACF;AACF;AAEA,SAAS,WAAA,GAAkC;AACzC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,MAAA;AAAA,IACN,GAAA,EAAK,MAAA;AAAA,IACL,SAAA,EAAW,MAAA;AAAA,IACX,UAAA,EAAY,MAAA;AAAA,IACZ,KAAA,EAAO,EAAA;AAAA,IACP,MAAM,OAAA,GAAU;AAAA,IAEhB;AAAA,GACF;AACF","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/code/runtime-session.ts"],"names":[],"mappings":";;;;AA2CA,eAAe,cAAc,UAAA,EAAoC;AAC/D,EAAA,MAAM,EAAE,SAAA,EAAU,GAAI,MAAM,OAAO,sBAAuB,CAAA;AAC1D,EAAA,MAAM,SAAA,CAAU,UAAA,IAAc,aAAA,EAAe,CAAA;AAC/C;AAMA,eAAsB,wBAAwB,OAAA,EAA6D;AACzG,EAAA,MAAM,aAAa,OAAA,CAAQ,UAAA;AAC3B,EAAA,MAAM,SAAA,GAAY,QAAQ,SAAA,KAAc,CAAC,OAAgB,YAAA,CAAa,EAAE,UAAA,EAAY,EAAA,EAAI,CAAA,CAAA;AACxF,EAAA,MAAM,OAAA,GAAU,QAAQ,OAAA,IAAW,UAAA;AACnC,EAAA,MAAM,MAAA,GAAS,QAAQ,YAAA,IAAgB,aAAA;AAEvC,EAAA,IAAI;AACF,IAAA,IAAI,CAAE,MAAM,SAAA,CAAU,UAAU,CAAA,EAAI;AAClC,MAAA,MAAM,OAAO,UAAU,CAAA;AAAA,IACzB;AACA,IAAA,OAAO,MAAM,cAAA,CAAe,OAAA,CAAQ,IAAA,EAAM,YAAY,OAAO,CAAA;AAAA,EAC/D,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,WAAA,EAAY;AAAA,EACrB;AACF;AAEA,eAAe,cAAA,CACb,IAAA,EACA,UAAA,EACA,OAAA,EAC6B;AAC7B,EAAA,MAAM,UAAA,GAAa,EAAE,UAAA,EAAW;AAChC,EAAA,MAAM,GAAA,GAAM,MAAM,OAAA,CAAQ,EAAE,IAAI,UAAA,EAAY,IAAA,IAAQ,UAAU,CAAA;AAC9D,EAAA,IAAI,CAAC,GAAA,CAAI,EAAA,IAAM,EAAE,WAAA,IAAe,GAAA,CAAA,SAAa,WAAA,EAAY;AACzD,EAAA,MAAM,MAAA,GAAS,MAAM,OAAA,CAAQ,EAAE,EAAA,EAAI,QAAA,EAAS,EAAG,UAAU,CAAA,CAAE,KAAA,CAAM,MAAM,IAAI,CAAA;AAC3E,EAAA,MAAM,MAAM,MAAA,IAAU,MAAA,CAAO,MAAM,KAAA,IAAS,MAAA,GAAS,OAAO,GAAA,GAAM,MAAA;AAClE,EAAA,IAAI,QAAA,GAAW,KAAA;AACf,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,UAAA;AAAA,IACN,GAAA;AAAA,IACA,WAAW,GAAA,CAAI,SAAA;AAAA,IACf,YAAY,MAAA,IAAU,MAAA,CAAO,MAAM,YAAA,IAAgB,MAAA,GAAS,OAAO,UAAA,GAAa,UAAA;AAAA,IAChF,KAAA,EAAO,GAAA,IAAO,IAAA,GAAO,CAAA,IAAA,EAAO,GAAG,CAAA,CAAA,GAAK,KAAA;AAAA,IACpC,MAAM,OAAA,GAAU;AACd,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,QAAA,GAAW,IAAA;AACX,MAAA,IAAI;AACF,QAAA,MAAM,QAAQ,EAAE,EAAA,EAAI,YAAA,EAAc,IAAA,IAAQ,UAAU,CAAA;AAAA,MACtD,CAAA,CAAA,MAAQ;AAAA,MAER;AAAA,IACF;AAAA,GACF;AACF;AAEA,SAAS,WAAA,GAAkC;AACzC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,MAAA;AAAA,IACN,GAAA,EAAK,MAAA;AAAA,IACL,SAAA,EAAW,MAAA;AAAA,IACX,UAAA,EAAY,MAAA;AAAA,IACZ,KAAA,EAAO,EAAA;AAAA,IACP,MAAM,OAAA,GAAU;AAAA,IAEhB;AAAA,GACF;AACF","file":"chunk-IEZCFMNL.js","sourcesContent":["/**\n * Session boundary between VG Code and the Fusion Runtime daemon (`vgd`).\n *\n * Replaces the old {@link GraphProcess} (`vg serve` child) for the interactive\n * coding REPL. There is one standalone daemon:\n *\n * 1. If a local vgd is already running — register this workspace.\n * 2. Otherwise — `vg daemon ensure` (detached `daemon start`) and attach.\n *\n * The session never owns vgd. Dispose unregisters the workspace and leaves the\n * daemon running for other clients (VS Code, `vg`, the next `vg code`).\n *\n * Never throws: a failure to attach degrades to “no runtime session” and the\n * agent continues with the in-process graph only (same safety as GraphProcess).\n */\n\nimport { vgdIsRunning, vgdRequest, vgdSocketPath } from '../runtime/vgd/index.js';\nimport type { WorkspaceRecord } from '../runtime/vgd/protocol.js';\n\nexport type RuntimeSessionKind = 'attached' | 'none';\n\nexport interface RuntimeSessionOptions {\n root: string;\n /** Override socket path (tests). */\n socketPath?: string;\n /** Injectable connect/start hooks (tests). */\n isRunning?: (socketPath?: string) => Promise<boolean>;\n request?: typeof vgdRequest;\n /** Start the standalone daemon if needed (tests). Default: `ensureVgd`. */\n ensureDaemon?: (socketPath?: string) => Promise<void>;\n}\n\nexport interface CodeRuntimeSession {\n readonly kind: RuntimeSessionKind;\n /** Daemon pid when known. */\n readonly pid: number | undefined;\n readonly workspace: WorkspaceRecord | undefined;\n readonly socketPath: string | undefined;\n /** Human label for the REPL intro line. */\n readonly label: string;\n dispose(): Promise<void>;\n}\n\nasync function defaultEnsure(socketPath?: string): Promise<void> {\n const { ensureVgd } = await import('../commands/daemon.js');\n await ensureVgd(socketPath ?? vgdSocketPath());\n}\n\n/**\n * Attach VG Code to the standalone vgd for one coding session.\n * Always resolves (never throws).\n */\nexport async function startCodeRuntimeSession(options: RuntimeSessionOptions): Promise<CodeRuntimeSession> {\n const socketPath = options.socketPath;\n const isRunning = options.isRunning ?? ((sp?: string) => vgdIsRunning({ socketPath: sp }));\n const request = options.request ?? vgdRequest;\n const ensure = options.ensureDaemon ?? defaultEnsure;\n\n try {\n if (!(await isRunning(socketPath))) {\n await ensure(socketPath);\n }\n return await attachExisting(options.root, socketPath, request);\n } catch {\n return noneSession();\n }\n}\n\nasync function attachExisting(\n root: string,\n socketPath: string | undefined,\n request: typeof vgdRequest,\n): Promise<CodeRuntimeSession> {\n const clientOpts = { socketPath };\n const reg = await request({ op: 'register', root }, clientOpts);\n if (!reg.ok || !('workspace' in reg)) return noneSession();\n const status = await request({ op: 'status' }, clientOpts).catch(() => null);\n const pid = status && status.ok && 'pid' in status ? status.pid : undefined;\n let disposed = false;\n return {\n kind: 'attached',\n pid,\n workspace: reg.workspace,\n socketPath: status && status.ok && 'socketPath' in status ? status.socketPath : socketPath,\n label: pid != null ? `vgd ${pid}` : 'vgd',\n async dispose() {\n if (disposed) return;\n disposed = true;\n try {\n await request({ op: 'unregister', root }, clientOpts);\n } catch {\n /* best-effort */\n }\n },\n };\n}\n\nfunction noneSession(): CodeRuntimeSession {\n return {\n kind: 'none',\n pid: undefined,\n workspace: undefined,\n socketPath: undefined,\n label: '',\n async dispose() {\n /* no-op */\n },\n };\n}\n"]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { refreshIfStale } from './chunk-
|
|
2
|
-
import { listedToolNames, budgetSuffix, TOOLS, renderToolResult, warmEmbedderInBackground, countTokens } from './chunk-
|
|
3
|
-
import { sanitizeClient, recordSaving, SAVINGS_TOOLS, PER_FILE_TOKENS } from './chunk-
|
|
4
|
-
import { attachVgd } from './chunk-
|
|
1
|
+
import { refreshIfStale } from './chunk-TKUWEJZJ.js';
|
|
2
|
+
import { listedToolNames, budgetSuffix, TOOLS, renderToolResult, warmEmbedderInBackground, countTokens } from './chunk-TUVB6Q6F.js';
|
|
3
|
+
import { sanitizeClient, recordSaving, SAVINGS_TOOLS, PER_FILE_TOKENS } from './chunk-LAYDXJEQ.js';
|
|
4
|
+
import { attachVgd } from './chunk-E44I7635.js';
|
|
5
5
|
import { formatSemanticProgress } from './chunk-5IQBIXHS.js';
|
|
6
6
|
import { isRelevantChange } from './chunk-DBX3DL27.js';
|
|
7
|
-
import { loadGraphPreferIndex } from './chunk-
|
|
7
|
+
import { loadGraphPreferIndex } from './chunk-7S4ELKK6.js';
|
|
8
8
|
import { vgdRequest } from './chunk-VHRSG6CF.js';
|
|
9
|
-
import { relevanceModuleDir, resetRelevanceProviderCache, mapFileStat, renderHtml, renderReport } from './chunk-
|
|
9
|
+
import { relevanceModuleDir, resetRelevanceProviderCache, mapFileStat, renderHtml, renderReport } from './chunk-K2IWOZEQ.js';
|
|
10
10
|
import { parseGraph, slimGraphForExport, serializeGraph } from './chunk-O3LABX6I.js';
|
|
11
|
-
import { VERSION } from './chunk-
|
|
11
|
+
import { VERSION } from './chunk-JQ7OL4XG.js';
|
|
12
12
|
import * as fs from 'fs';
|
|
13
13
|
import * as path from 'path';
|
|
14
14
|
import * as os from 'os';
|
|
@@ -1025,5 +1025,5 @@ function spdx(ctx) {
|
|
|
1025
1025
|
}
|
|
1026
1026
|
|
|
1027
1027
|
export { DISCLOSURE, DaemonSemanticSession, GraphSource, RELEVANCE_MODULE_NAME, RefreshScheduler, createServer, ensureRelevanceModule, exportGraph, formatForExt, installModule, installRelevanceModule, kernelDisabled, kickRelevanceReadiness, moduleInstalled, moduleInstalledAt, modulesBaseDir, readConsent, removeModule, removeRelevanceModule, serveStdio, writeConsent };
|
|
1028
|
-
//# sourceMappingURL=chunk-
|
|
1029
|
-
//# sourceMappingURL=chunk-
|
|
1028
|
+
//# sourceMappingURL=chunk-IM7HME2T.js.map
|
|
1029
|
+
//# sourceMappingURL=chunk-IM7HME2T.js.map
|