@vibgrate/cli 2026.818.2 → 2026.819.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.
- package/DOCS.md +3 -3
- package/dist/agent-ZJRWCMR6.js +30 -0
- package/dist/{agent-X6VYCE63.js.map → agent-ZJRWCMR6.js.map} +1 -1
- package/dist/{approvals-TPQFQSWG.js → approvals-YTUXBZWQ.js} +7 -7
- package/dist/{approvals-TPQFQSWG.js.map → approvals-YTUXBZWQ.js.map} +1 -1
- package/dist/attach-WOA25VNH.js +10 -0
- package/dist/{attach-G5JUIWIT.js.map → attach-WOA25VNH.js.map} +1 -1
- package/dist/baseline-TVRRUZGA.js +9 -0
- package/dist/{baseline-DXI64VLW.js.map → baseline-TVRRUZGA.js.map} +1 -1
- package/dist/{chunk-V6WONSIK.js → chunk-24HKTTFV.js} +5 -5
- package/dist/{chunk-V6WONSIK.js.map → chunk-24HKTTFV.js.map} +1 -1
- package/dist/{chunk-VMAIDM4K.js → chunk-2C4QT5D7.js} +5 -5
- package/dist/{chunk-VMAIDM4K.js.map → chunk-2C4QT5D7.js.map} +1 -1
- package/dist/{chunk-JGA63RGF.js → chunk-2ZBLZ2S3.js} +13 -13
- package/dist/{chunk-JGA63RGF.js.map → chunk-2ZBLZ2S3.js.map} +1 -1
- package/dist/{chunk-OV4KGXPD.js → chunk-57ZRSCHY.js} +3 -3
- package/dist/{chunk-OV4KGXPD.js.map → chunk-57ZRSCHY.js.map} +1 -1
- package/dist/{chunk-NDNNOAS6.js → chunk-6H2QV5DR.js} +3 -3
- package/dist/{chunk-NDNNOAS6.js.map → chunk-6H2QV5DR.js.map} +1 -1
- package/dist/{chunk-2C33WR5O.js → chunk-7BSUPHX6.js} +3 -3
- package/dist/{chunk-2C33WR5O.js.map → chunk-7BSUPHX6.js.map} +1 -1
- package/dist/{chunk-LJSJX6U4.js → chunk-A3WWRW7U.js} +3 -3
- package/dist/{chunk-LJSJX6U4.js.map → chunk-A3WWRW7U.js.map} +1 -1
- package/dist/{chunk-X2MQ7UFL.js → chunk-AP3JN33O.js} +12 -12
- package/dist/{chunk-X2MQ7UFL.js.map → chunk-AP3JN33O.js.map} +1 -1
- package/dist/{chunk-O5IJDMTB.js → chunk-AQZYDFEK.js} +4 -4
- package/dist/{chunk-O5IJDMTB.js.map → chunk-AQZYDFEK.js.map} +1 -1
- package/dist/{chunk-VQ5KMHW6.js → chunk-BQ6NTRRK.js} +44 -15
- package/dist/chunk-BQ6NTRRK.js.map +1 -0
- package/dist/{chunk-HF6R73UC.js → chunk-C2EZIAA3.js} +27 -13
- package/dist/chunk-C2EZIAA3.js.map +1 -0
- package/dist/{chunk-MRZHNUN7.js → chunk-CA4YQBA7.js} +4 -4
- package/dist/{chunk-MRZHNUN7.js.map → chunk-CA4YQBA7.js.map} +1 -1
- package/dist/{chunk-YF54UMOU.js → chunk-CBL3VY7J.js} +3 -3
- package/dist/{chunk-YF54UMOU.js.map → chunk-CBL3VY7J.js.map} +1 -1
- package/dist/{chunk-PRHH4DVO.js → chunk-FCMWHSQ6.js} +3 -3
- package/dist/{chunk-PRHH4DVO.js.map → chunk-FCMWHSQ6.js.map} +1 -1
- package/dist/{chunk-V2UGRUTL.js → chunk-GBXOAO5V.js} +176 -37
- package/dist/chunk-GBXOAO5V.js.map +1 -0
- package/dist/{chunk-JFE7XCAE.js → chunk-IASO2HCI.js} +3 -3
- package/dist/{chunk-JFE7XCAE.js.map → chunk-IASO2HCI.js.map} +1 -1
- package/dist/{chunk-ZUOBPKVK.js → chunk-IMI2VHHZ.js} +3 -3
- package/dist/{chunk-ZUOBPKVK.js.map → chunk-IMI2VHHZ.js.map} +1 -1
- package/dist/{chunk-NKLYDSB7.js → chunk-JPOYXG7Z.js} +10 -10
- package/dist/{chunk-NKLYDSB7.js.map → chunk-JPOYXG7Z.js.map} +1 -1
- package/dist/{chunk-L2OS4WHT.js → chunk-MMJFHEZ4.js} +4 -4
- package/dist/{chunk-L2OS4WHT.js.map → chunk-MMJFHEZ4.js.map} +1 -1
- package/dist/{chunk-E3O5UKNA.js → chunk-NKKOGJ63.js} +35 -17
- package/dist/chunk-NKKOGJ63.js.map +1 -0
- package/dist/{chunk-7AVYKZEM.js → chunk-NV7XNBX4.js} +4 -4
- package/dist/{chunk-7AVYKZEM.js.map → chunk-NV7XNBX4.js.map} +1 -1
- package/dist/{chunk-NJQZRM55.js → chunk-OGFOJG4H.js} +6 -6
- package/dist/{chunk-NJQZRM55.js.map → chunk-OGFOJG4H.js.map} +1 -1
- package/dist/{chunk-NZELMYT4.js → chunk-OLIMW4PQ.js} +8 -56
- package/dist/chunk-OLIMW4PQ.js.map +1 -0
- package/dist/{chunk-B4EXD5LK.js → chunk-PJRPSYFQ.js} +9 -7
- package/dist/chunk-PJRPSYFQ.js.map +1 -0
- package/dist/{chunk-NG4KIJW6.js → chunk-PVNALGTG.js} +10 -6
- package/dist/chunk-PVNALGTG.js.map +1 -0
- package/dist/{chunk-BMOFJIMG.js → chunk-QE6F62FR.js} +3 -3
- package/dist/{chunk-BMOFJIMG.js.map → chunk-QE6F62FR.js.map} +1 -1
- package/dist/{chunk-6ABMV74F.js → chunk-R5TQBIR6.js} +4 -4
- package/dist/{chunk-6ABMV74F.js.map → chunk-R5TQBIR6.js.map} +1 -1
- package/dist/{chunk-5I4VSBWQ.js → chunk-RTURQXQL.js} +372 -113
- package/dist/chunk-RTURQXQL.js.map +1 -0
- package/dist/{chunk-74UBGF4P.js → chunk-SHD5TCZ5.js} +3 -3
- package/dist/{chunk-74UBGF4P.js.map → chunk-SHD5TCZ5.js.map} +1 -1
- package/dist/{chunk-KU7FI5EV.js → chunk-USPMMVNH.js} +3 -3
- package/dist/{chunk-KU7FI5EV.js.map → chunk-USPMMVNH.js.map} +1 -1
- package/dist/{chunk-E53WBVUQ.js → chunk-VHRSG6CF.js} +3 -3
- package/dist/{chunk-E53WBVUQ.js.map → chunk-VHRSG6CF.js.map} +1 -1
- package/dist/{chunk-I5LP55B6.js → chunk-W44THEXF.js} +3 -3
- package/dist/{chunk-I5LP55B6.js.map → chunk-W44THEXF.js.map} +1 -1
- package/dist/{chunk-AEJYA6HZ.js → chunk-W6ASIMG5.js} +7 -7
- package/dist/{chunk-AEJYA6HZ.js.map → chunk-W6ASIMG5.js.map} +1 -1
- package/dist/{chunk-CQDUBAQY.js → chunk-WNKGRXUA.js} +3 -3
- package/dist/{chunk-CQDUBAQY.js.map → chunk-WNKGRXUA.js.map} +1 -1
- package/dist/{chunk-RHKOUPWT.js → chunk-WPLOEFZU.js} +7 -5
- package/dist/chunk-WPLOEFZU.js.map +1 -0
- package/dist/{chunk-FJG5AXKZ.js → chunk-WUFIXAEJ.js} +22 -6
- package/dist/chunk-WUFIXAEJ.js.map +1 -0
- package/dist/{chunk-6PFHDHOL.js → chunk-XLQ4YHS3.js} +16 -14
- package/dist/chunk-XLQ4YHS3.js.map +1 -0
- package/dist/{chunk-BWPBB45M.js → chunk-XP6UUCZZ.js} +3 -3
- package/dist/{chunk-BWPBB45M.js.map → chunk-XP6UUCZZ.js.map} +1 -1
- package/dist/{chunk-BPF3YX2U.js → chunk-XQNKCA2J.js} +6 -3
- package/dist/chunk-XQNKCA2J.js.map +1 -0
- package/dist/{chunk-FFXGWFAE.js → chunk-XW2XQM3C.js} +7 -7
- package/dist/{chunk-FFXGWFAE.js.map → chunk-XW2XQM3C.js.map} +1 -1
- package/dist/{chunk-7N4Y3E47.js → chunk-YJYEPYB2.js} +13 -18
- package/dist/chunk-YJYEPYB2.js.map +1 -0
- package/dist/chunk-ZUZHYAJK.js +6 -0
- package/dist/{chunk-4NTNMT6T.js.map → chunk-ZUZHYAJK.js.map} +1 -1
- package/dist/cli.js +112 -108
- package/dist/cli.js.map +1 -1
- package/dist/client-P5XSRFV4.js +8 -0
- package/dist/{client-UQIELEEZ.js.map → client-P5XSRFV4.js.map} +1 -1
- package/dist/daemon-YKOEP3XA.js +30 -0
- package/dist/{daemon-GUMWMKCA.js.map → daemon-YKOEP3XA.js.map} +1 -1
- package/dist/embed-worker-main.js +5 -5
- package/dist/ensure-map-BLRJDO2Y.js +40 -0
- package/dist/{ensure-map-FHDJTO7Y.js.map → ensure-map-BLRJDO2Y.js.map} +1 -1
- package/dist/federation-M4ZNXOPX.js +8 -0
- package/dist/{federation-MDQPO3PW.js.map → federation-M4ZNXOPX.js.map} +1 -1
- package/dist/fs-FO3NQHPT.js +4 -0
- package/dist/fs-FO3NQHPT.js.map +1 -0
- package/dist/git-ref-LMT3EXYY.js +4 -0
- package/dist/{git-ref-RSRAN4OH.js.map → git-ref-LMT3EXYY.js.map} +1 -1
- package/dist/graph-backend-NTYONTWW.js +16 -0
- package/dist/{graph-backend-W2D3HRRD.js.map → graph-backend-NTYONTWW.js.map} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +24 -25
- package/dist/index.js.map +1 -1
- package/dist/{interactive-2MK4TLRD.js → interactive-B3WTC7LB.js} +41 -42
- package/dist/interactive-B3WTC7LB.js.map +1 -0
- package/dist/{llm-host-XFYFOAAX.js → llm-host-QVTJJVER.js} +5 -5
- package/dist/{llm-host-XFYFOAAX.js.map → llm-host-QVTJJVER.js.map} +1 -1
- package/dist/load-AJROS77R.js +11 -0
- package/dist/{load-4R4HYMBB.js.map → load-AJROS77R.js.map} +1 -1
- package/dist/local-runtime-GA43KYS5.js +6 -0
- package/dist/{local-runtime-6SNWKSA7.js.map → local-runtime-GA43KYS5.js.map} +1 -1
- package/dist/model-manager-6H3TMZKK.js +10 -0
- package/dist/{model-manager-SXHZ5VD4.js.map → model-manager-6H3TMZKK.js.map} +1 -1
- package/dist/{model-orchestrator-LHYPJBFH.js → model-orchestrator-X3NE3Y2G.js} +6 -6
- package/dist/{model-orchestrator-LHYPJBFH.js.map → model-orchestrator-X3NE3Y2G.js.map} +1 -1
- package/dist/parse-worker.js +2 -2
- package/dist/{paths-62AKTFSR.js → paths-RVK6FKRN.js} +4 -4
- package/dist/{paths-62AKTFSR.js.map → paths-RVK6FKRN.js.map} +1 -1
- package/dist/publish-27S66NOW.js +9 -0
- package/dist/{publish-7YHRTBRA.js.map → publish-27S66NOW.js.map} +1 -1
- package/dist/resolve-gguf-WVKVDN45.js +9 -0
- package/dist/{resolve-gguf-SDIYGGI6.js.map → resolve-gguf-WVKVDN45.js.map} +1 -1
- package/dist/{run-outcome-H5GVDDZJ.js → run-outcome-SBBSTSH3.js} +7 -7
- package/dist/{run-outcome-H5GVDDZJ.js.map → run-outcome-SBBSTSH3.js.map} +1 -1
- package/dist/runtime-session-JYYKQVDX.js +26 -0
- package/dist/{runtime-session-JBIHHH5N.js.map → runtime-session-JYYKQVDX.js.map} +1 -1
- package/dist/session-2ZMHZ2O6.js +17 -0
- package/dist/{session-N5IU4K5Q.js.map → session-2ZMHZ2O6.js.map} +1 -1
- package/dist/{slot-subscription-25GOARW5.js → slot-subscription-C2ZUJED6.js} +5 -5
- package/dist/{slot-subscription-25GOARW5.js.map → slot-subscription-C2ZUJED6.js.map} +1 -1
- package/dist/{stream-json-4WLSUF6I.js → stream-json-ZWGB4C47.js} +17 -17
- package/dist/{stream-json-4WLSUF6I.js.map → stream-json-ZWGB4C47.js.map} +1 -1
- package/dist/version-5QIEUXU6.js +4 -0
- package/dist/{version-DTEU3SQD.js.map → version-5QIEUXU6.js.map} +1 -1
- package/dist/{vg-mcp-bridge-KDVYIMFX.js → vg-mcp-bridge-4FETMJ6M.js} +16 -15
- package/dist/vg-mcp-bridge-4FETMJ6M.js.map +1 -0
- package/dist/{vgd-M7UOPWLB.js → vgd-R524P5BJ.js} +13 -14
- package/dist/vgd-R524P5BJ.js.map +1 -0
- package/package.json +1 -1
- package/dist/agent-X6VYCE63.js +0 -30
- package/dist/attach-G5JUIWIT.js +0 -10
- package/dist/baseline-DXI64VLW.js +0 -9
- package/dist/chunk-4NTNMT6T.js +0 -6
- package/dist/chunk-5I4VSBWQ.js.map +0 -1
- package/dist/chunk-6PFHDHOL.js.map +0 -1
- package/dist/chunk-7N4Y3E47.js.map +0 -1
- package/dist/chunk-B4EXD5LK.js.map +0 -1
- package/dist/chunk-BPF3YX2U.js.map +0 -1
- package/dist/chunk-E3O5UKNA.js.map +0 -1
- package/dist/chunk-FJG5AXKZ.js.map +0 -1
- package/dist/chunk-HF6R73UC.js.map +0 -1
- package/dist/chunk-NG4KIJW6.js.map +0 -1
- package/dist/chunk-NZELMYT4.js.map +0 -1
- package/dist/chunk-POOL355F.js +0 -237
- package/dist/chunk-POOL355F.js.map +0 -1
- package/dist/chunk-RHKOUPWT.js.map +0 -1
- package/dist/chunk-V2UGRUTL.js.map +0 -1
- package/dist/chunk-VQ5KMHW6.js.map +0 -1
- package/dist/client-UQIELEEZ.js +0 -8
- package/dist/daemon-GUMWMKCA.js +0 -31
- package/dist/ensure-map-FHDJTO7Y.js +0 -41
- package/dist/federation-MDQPO3PW.js +0 -7
- package/dist/fs-TLPOWC2D.js +0 -4
- package/dist/fs-TLPOWC2D.js.map +0 -1
- package/dist/git-ref-RSRAN4OH.js +0 -4
- package/dist/graph-backend-W2D3HRRD.js +0 -16
- package/dist/interactive-2MK4TLRD.js.map +0 -1
- package/dist/load-4R4HYMBB.js +0 -11
- package/dist/local-runtime-6SNWKSA7.js +0 -6
- package/dist/model-manager-SXHZ5VD4.js +0 -10
- package/dist/publish-7YHRTBRA.js +0 -9
- package/dist/resolve-gguf-SDIYGGI6.js +0 -9
- package/dist/runtime-session-JBIHHH5N.js +0 -27
- package/dist/session-N5IU4K5Q.js +0 -17
- package/dist/version-DTEU3SQD.js +0 -4
- package/dist/vg-mcp-bridge-KDVYIMFX.js.map +0 -1
- package/dist/vgd-M7UOPWLB.js.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { EmbeddedLlmHost, LLM_HOST_IPC_SCHEMA, ProcessBridgeLlmHost, ProcessLlmHost, createLlmHost, defaultProcessEndpoint, generateWithLlamaBinding, resolveInferenceIsolation, startProcessHostServer } from './chunk-
|
|
1
|
+
export { EmbeddedLlmHost, LLM_HOST_IPC_SCHEMA, ProcessBridgeLlmHost, ProcessLlmHost, createLlmHost, defaultProcessEndpoint, generateWithLlamaBinding, resolveInferenceIsolation, startProcessHostServer } from './chunk-IASO2HCI.js';
|
|
2
2
|
export { acquireHostSession, allowGrammarStringFallback, assertGrammarOrThrow, attachDynamicIdentFilter, attachGrammar, buildIdentifierTokenBias, clearHostSessionPool, composePromptConstraints, createIdentStreamState, dropHostSession, dynamicAllowedNextChars, evictIdleSessions, filterTokenTexts, generateOnSession, hostSessionPoolSize, listHostSessions, pickBestDraft, planNextCharMask, probeBindingCapabilities, rankDraftCandidates, sessionKey, stepIdentStream, supportsDynamicIdentSampler, supportsKvPrefixEvaluate, tokenCompatibleWithTrie, trieFingerprint } from './chunk-3LOWJSAF.js';
|
|
3
3
|
import './chunk-5HYCB55P.js';
|
|
4
|
-
import './chunk-
|
|
4
|
+
import './chunk-XP6UUCZZ.js';
|
|
5
5
|
import './chunk-JFGYT6BI.js';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-XQNKCA2J.js';
|
|
7
7
|
import './chunk-Z6ZWNWWR.js';
|
|
8
|
-
//# sourceMappingURL=llm-host-
|
|
9
|
-
//# sourceMappingURL=llm-host-
|
|
8
|
+
//# sourceMappingURL=llm-host-QVTJJVER.js.map
|
|
9
|
+
//# sourceMappingURL=llm-host-QVTJJVER.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"llm-host-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"llm-host-QVTJJVER.js"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { loadGraph } from './chunk-USPMMVNH.js';
|
|
2
|
+
import './chunk-2C4QT5D7.js';
|
|
3
|
+
import './chunk-MVPRPSXU.js';
|
|
4
|
+
import './chunk-O3LABX6I.js';
|
|
5
|
+
import './chunk-ZUZHYAJK.js';
|
|
6
|
+
import './chunk-XP6UUCZZ.js';
|
|
7
|
+
import './chunk-JFGYT6BI.js';
|
|
8
|
+
import './chunk-XQNKCA2J.js';
|
|
9
|
+
import './chunk-Z6ZWNWWR.js';
|
|
10
|
+
//# sourceMappingURL=load-AJROS77R.js.map
|
|
11
|
+
//# sourceMappingURL=load-AJROS77R.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"load-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"load-AJROS77R.js"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { gatherSystemMemory, hasOllama, pullModelClean, stopModel } from './chunk-WUFIXAEJ.js';
|
|
2
|
+
import './chunk-YJYEPYB2.js';
|
|
3
|
+
import './chunk-EZ7UC5Y5.js';
|
|
4
|
+
import './chunk-Z6ZWNWWR.js';
|
|
5
|
+
//# sourceMappingURL=local-runtime-GA43KYS5.js.map
|
|
6
|
+
//# sourceMappingURL=local-runtime-GA43KYS5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"local-runtime-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"local-runtime-GA43KYS5.js"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { ensureManagerRuntime, formatManagerBadgeLine, managerBadge, managerFromProviderId } from './chunk-W44THEXF.js';
|
|
2
|
+
import './chunk-3HNPVXUK.js';
|
|
3
|
+
import './chunk-57ZRSCHY.js';
|
|
4
|
+
import './chunk-EZ7UC5Y5.js';
|
|
5
|
+
import './chunk-XP6UUCZZ.js';
|
|
6
|
+
import './chunk-JFGYT6BI.js';
|
|
7
|
+
import './chunk-XQNKCA2J.js';
|
|
8
|
+
import './chunk-Z6ZWNWWR.js';
|
|
9
|
+
//# sourceMappingURL=model-manager-6H3TMZKK.js.map
|
|
10
|
+
//# sourceMappingURL=model-manager-6H3TMZKK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"model-manager-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"model-manager-6H3TMZKK.js"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { MODEL_ORCHESTRATOR_SCHEMA_VERSION, QUALIFIED_PACKS, activePin, buildOrchestratorStatus, fitPack, listModes, orchestratorStatePath, packById, packForMode, parseMode, pinPack, providerForBackend, readOrchestratorState, recommendMode, resolveMode, setDefaultMode, unpinPack, writeOrchestratorState } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { MODEL_ORCHESTRATOR_SCHEMA_VERSION, QUALIFIED_PACKS, activePin, buildOrchestratorStatus, fitPack, listModes, orchestratorStatePath, packById, packForMode, parseMode, pinPack, providerForBackend, readOrchestratorState, recommendMode, resolveMode, setDefaultMode, unpinPack, writeOrchestratorState } from './chunk-OLIMW4PQ.js';
|
|
2
|
+
import './chunk-YJYEPYB2.js';
|
|
3
3
|
import './chunk-IZDH67DX.js';
|
|
4
|
-
import './chunk-
|
|
4
|
+
import './chunk-XP6UUCZZ.js';
|
|
5
5
|
import './chunk-JFGYT6BI.js';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-XQNKCA2J.js';
|
|
7
7
|
import './chunk-Z6ZWNWWR.js';
|
|
8
|
-
//# sourceMappingURL=model-orchestrator-
|
|
9
|
-
//# sourceMappingURL=model-orchestrator-
|
|
8
|
+
//# sourceMappingURL=model-orchestrator-X3NE3Y2G.js.map
|
|
9
|
+
//# sourceMappingURL=model-orchestrator-X3NE3Y2G.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"model-orchestrator-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"model-orchestrator-X3NE3Y2G.js"}
|
package/dist/parse-worker.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { setGrammarsOverride, parseSource } from './chunk-
|
|
1
|
+
import { setGrammarsOverride, parseSource } from './chunk-FCMWHSQ6.js';
|
|
2
2
|
import './chunk-T7RSQ5WD.js';
|
|
3
3
|
import './chunk-6WRG7VDO.js';
|
|
4
4
|
import './chunk-MVPRPSXU.js';
|
|
5
5
|
import './chunk-O3LABX6I.js';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-ZUZHYAJK.js';
|
|
7
7
|
import './chunk-JFGYT6BI.js';
|
|
8
8
|
import './chunk-Z6ZWNWWR.js';
|
|
9
9
|
import * as fs from 'fs';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { daemonDir, globalGraphPath, globalGraphPathForRef, repositoryIdFromRoot, repositoryStoreDir, resolveVibgratePaths, vibgrateCacheDir, vibgrateDataDir, vibgrateRuntimeDir } from './chunk-
|
|
1
|
+
export { daemonDir, globalGraphPath, globalGraphPathForRef, repositoryIdFromRoot, repositoryStoreDir, resolveVibgratePaths, vibgrateCacheDir, vibgrateDataDir, vibgrateRuntimeDir } from './chunk-XP6UUCZZ.js';
|
|
2
2
|
import './chunk-JFGYT6BI.js';
|
|
3
|
-
import './chunk-
|
|
3
|
+
import './chunk-XQNKCA2J.js';
|
|
4
4
|
import './chunk-Z6ZWNWWR.js';
|
|
5
|
-
//# sourceMappingURL=paths-
|
|
6
|
-
//# sourceMappingURL=paths-
|
|
5
|
+
//# sourceMappingURL=paths-RVK6FKRN.js.map
|
|
6
|
+
//# sourceMappingURL=paths-RVK6FKRN.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"paths-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"paths-RVK6FKRN.js"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { publishGraphToVgd } from './chunk-A3WWRW7U.js';
|
|
2
|
+
import './chunk-VHRSG6CF.js';
|
|
3
|
+
import './chunk-6H2QV5DR.js';
|
|
4
|
+
import './chunk-XP6UUCZZ.js';
|
|
5
|
+
import './chunk-JFGYT6BI.js';
|
|
6
|
+
import './chunk-XQNKCA2J.js';
|
|
7
|
+
import './chunk-Z6ZWNWWR.js';
|
|
8
|
+
//# sourceMappingURL=publish-27S66NOW.js.map
|
|
9
|
+
//# sourceMappingURL=publish-27S66NOW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"publish-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"publish-27S66NOW.js"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { embeddedLlamaReady, resolveGgufPath } from './chunk-NV7XNBX4.js';
|
|
2
|
+
import './chunk-WNKGRXUA.js';
|
|
3
|
+
import './chunk-57ZRSCHY.js';
|
|
4
|
+
import './chunk-XP6UUCZZ.js';
|
|
5
|
+
import './chunk-JFGYT6BI.js';
|
|
6
|
+
import './chunk-XQNKCA2J.js';
|
|
7
|
+
import './chunk-Z6ZWNWWR.js';
|
|
8
|
+
//# sourceMappingURL=resolve-gguf-WVKVDN45.js.map
|
|
9
|
+
//# sourceMappingURL=resolve-gguf-WVKVDN45.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"resolve-gguf-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"resolve-gguf-WVKVDN45.js"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { installId } from './chunk-
|
|
1
|
+
import { installId } from './chunk-QE6F62FR.js';
|
|
2
2
|
import './chunk-HTLDXEHW.js';
|
|
3
|
-
import { ensureVibgrateGitignore } from './chunk-
|
|
3
|
+
import { ensureVibgrateGitignore } from './chunk-2C4QT5D7.js';
|
|
4
4
|
import './chunk-MVPRPSXU.js';
|
|
5
5
|
import './chunk-O3LABX6I.js';
|
|
6
|
-
import './chunk-
|
|
7
|
-
export { repositoryIdFromRoot as runOutcomeRepoId } from './chunk-
|
|
6
|
+
import './chunk-ZUZHYAJK.js';
|
|
7
|
+
export { repositoryIdFromRoot as runOutcomeRepoId } from './chunk-XP6UUCZZ.js';
|
|
8
8
|
import './chunk-JFGYT6BI.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-XQNKCA2J.js';
|
|
10
10
|
import './chunk-Z6ZWNWWR.js';
|
|
11
11
|
import * as fs from 'fs';
|
|
12
12
|
import * as path from 'path';
|
|
@@ -250,5 +250,5 @@ function turnRunId(sessionId, turnIndex) {
|
|
|
250
250
|
}
|
|
251
251
|
|
|
252
252
|
export { RUN_OUTCOME_SCHEMA, RunOutcomeRecorder, classifyEditKind, classifyInstructionKind, newOneShotRunId, shapeOfAction, turnRunId };
|
|
253
|
-
//# sourceMappingURL=run-outcome-
|
|
254
|
-
//# sourceMappingURL=run-outcome-
|
|
253
|
+
//# sourceMappingURL=run-outcome-SBBSTSH3.js.map
|
|
254
|
+
//# sourceMappingURL=run-outcome-SBBSTSH3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/code/run-outcome.ts"],"names":[],"mappings":"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","file":"run-outcome-H5GVDDZJ.js","sourcesContent":["/**\n * `vibgrate.run-outcome/1` — the local, append-only record of what a `vg code`\n * run did: what was proposed, what the human decided, and how the run ended.\n *\n * CORRECTION (2026-07-30, maintainer): this module was originally justified by\n * two future consumers — the verify loop and \"Relay routing telemetry\" (using\n * edit-acceptance data to auto-pick a model per request). The second is now\n * confirmed void: Relay never re-picks a model — the user (or their chosen\n * Code Mode) selects one model for the whole session, and that has never been\n * a requirement for any product in this space. The verify loop, meanwhile, is\n * shipped separately via the extension's LSP round-trip and never depended on\n * this schema. See `docs/VG-RUN-OUTCOME-EVENTS-SPEC.md` for the full record —\n * **this producer currently has no live or committed consumer.**\n *\n * This module only produces; nothing reads or transmits the file yet, and\n * nothing here changes `vg code`'s stdout NDJSON protocol — it is a silent\n * observer wired at the `--stream-json` call site in `commands/code.ts`, built\n * and unit-tested independent of any process, model, or socket, the same way\n * `stream-json.ts` is.\n *\n * Privacy (spec's hard rule): no event carries source code, diffs, file\n * contents, prompts, or file paths. Instructions become a salted hash only;\n * files become a language/kind classification only.\n */\n\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport { createHash, randomUUID } from 'node:crypto';\nimport { installId } from '../engine/stats-share.js';\nimport { ensureVibgrateGitignore } from '../engine/artifacts.js';\nimport { repositoryIdFromRoot } from '../runtime/paths.js';\nimport type { MutatingAction, PatchFileAction } from './tools.js';\nimport type { AgentResult } from './agent.js';\nimport type { StreamJsonOut } from './stream-json.js';\n\nexport const RUN_OUTCOME_SCHEMA = 'vibgrate.run-outcome/1';\n\nexport type InstructionKind = 'upgrade' | 'fix-vuln' | 'refactor' | 'feature' | 'other';\nexport type EditKind = 'code' | 'manifest' | 'lockfile' | 'config' | 'docs' | 'test';\nexport type EditDecision = 'approved' | 'rejected' | 'auto-approved';\nexport type RunOutcome = 'done' | 'error' | 'cancelled';\n\ninterface Envelope {\n schema: typeof RUN_OUTCOME_SCHEMA;\n runId: string;\n ts: string;\n repoId: string;\n gitRef: string | null;\n route: { mode?: string; provider?: string; model?: string };\n securityTier: string;\n}\n\nexport type RunOutcomeEvent =\n | (Envelope & {\n event: 'run_started';\n instructionHash: string;\n instructionKind: InstructionKind;\n /** Absent (never 0/null-as-zero) — this producer does not trigger a rescan. */\n baseline: { driftScore: number | null; scoreMode: 'verified' | 'estimated' | null; advisories: number | null };\n })\n | (Envelope & {\n event: 'edit_proposed';\n editId: string;\n language: string | null;\n linesAdded: number;\n linesRemoved: number;\n kind: EditKind;\n })\n | (Envelope & { event: 'edit_decision'; editId: string; decision: EditDecision; latencyMs: number })\n | (Envelope & {\n event: 'run_completed';\n outcome: RunOutcome;\n edits: { proposed: number; approved: number; rejected: number; autoApproved: number };\n /** Same reasoning as `baseline` — this producer never triggers a rescan. */\n verify: null;\n /**\n * Last verify-step (the project's configured test/build command) result\n * observed this run. `null` = no verify step ran, never a false pass.\n */\n verifyOk: boolean | null;\n tokens: { input: number; output: number } | null;\n });\n\nexport interface RunOutcomeRoute {\n mode?: string;\n provider?: string;\n model?: string;\n}\n\nfunction hash(saltValue: string, value: string): string {\n return createHash('sha256').update(`${saltValue}|${value}`).digest('hex');\n}\n\n/**\n * Best-effort, best-guess classification of an instruction's purpose. A\n * heuristic, not a model call — good enough for routing-signal aggregation,\n * not claimed as precise. `fromFinding` is set when the instruction was\n * composed by \"Fix →\" (routeFix.ts), which already know their own\n * kind and skip guessing.\n */\nexport function classifyInstructionKind(\n instruction: string,\n fromFinding?: 'upgrade' | 'fix-vuln',\n): InstructionKind {\n if (fromFinding) return fromFinding;\n const s = instruction.toLowerCase();\n if (/\\bupgrade\\b/.test(s) || /\\bfrom\\s+\\S+\\s+to\\s+\\S+/.test(s)) return 'upgrade';\n if (/\\b(cve|vulnerab|advisor|security fix|exploit)\\b/.test(s)) return 'fix-vuln';\n if (/\\brefactor\\b/.test(s)) return 'refactor';\n if (/\\b(add|implement|build|create|feature)\\b/.test(s)) return 'feature';\n return 'other';\n}\n\nconst MANIFEST_BASENAMES = new Set([\n 'package.json', 'go.mod', 'cargo.toml', 'pyproject.toml', 'requirements.txt',\n 'gemfile', 'composer.json', 'pom.xml', 'build.gradle', 'build.gradle.kts',\n 'pubspec.yaml', 'mix.exs',\n]);\nconst LOCKFILE_BASENAMES = new Set([\n 'package-lock.json', 'yarn.lock', 'pnpm-lock.yaml', 'cargo.lock', 'poetry.lock',\n 'gemfile.lock', 'composer.lock', 'go.sum', 'pubspec.lock', 'mix.lock',\n]);\nconst MANIFEST_EXTS = new Set(['.csproj', '.fsproj', '.vbproj']);\n\n/** Coarse per-file classification for `edit_proposed.kind` — filename-only, no content read. */\nexport function classifyEditKind(file: string): EditKind {\n const base = path.basename(file).toLowerCase();\n const ext = path.extname(base);\n if (MANIFEST_BASENAMES.has(base) || MANIFEST_EXTS.has(ext)) return 'manifest';\n if (LOCKFILE_BASENAMES.has(base)) return 'lockfile';\n if (ext === '.md' || ext === '.mdx' || file.split(/[\\\\/]/).includes('docs')) return 'docs';\n if (/\\.(test|spec)\\.[^.]+$/.test(base) || /(^|[\\\\/])(__tests__|tests|test|spec)([\\\\/]|$)/.test(file)) return 'test';\n if (base.startsWith('.') || /\\.config\\.[^.]+$/.test(base) || /\\.(ya?ml|toml|ini|env)$/.test(base)) return 'config';\n return 'code';\n}\n\n/** Language/extension label only — never a path. Empty extension → null. */\nfunction languageOf(file: string): string | null {\n const ext = path.extname(file).replace(/^\\./, '');\n return ext || null;\n}\n\n/** Count `+`/`-` content lines in a unified diff (excludes `+++`/`---` headers). */\nfunction diffLineCounts(diff: string): { added: number; removed: number } {\n let added = 0;\n let removed = 0;\n for (const line of diff.split('\\n')) {\n if (line.startsWith('+++') || line.startsWith('---')) continue;\n if (line.startsWith('+')) added++;\n else if (line.startsWith('-')) removed++;\n }\n return { added, removed };\n}\n\ninterface EditShape {\n language: string | null;\n linesAdded: number;\n linesRemoved: number;\n kind: EditKind;\n}\n\n/** Derive the `edit_proposed` shape from a `MutatingAction`, or null for non-edit actions (`run`/`tool`). */\nexport function shapeOfAction(action: MutatingAction): EditShape | null {\n switch (action.kind) {\n case 'edit': {\n const { added, removed } = diffLineCounts(action.diff);\n return { language: languageOf(action.file), linesAdded: added, linesRemoved: removed, kind: classifyEditKind(action.file) };\n }\n case 'create':\n return { language: languageOf(action.file), linesAdded: 0, linesRemoved: 0, kind: classifyEditKind(action.file) };\n case 'delete':\n return { language: languageOf(action.file), linesAdded: 0, linesRemoved: 0, kind: classifyEditKind(action.file) };\n case 'patch': {\n let added = 0;\n let removed = 0;\n const kinds = new Set<EditKind>();\n for (const f of action.files as PatchFileAction[]) {\n if (f.diff) {\n const c = diffLineCounts(f.diff);\n added += c.added;\n removed += c.removed;\n }\n kinds.add(classifyEditKind(f.file));\n }\n return { language: null, linesAdded: added, linesRemoved: removed, kind: kinds.size === 1 ? [...kinds][0]! : 'code' };\n }\n case 'run':\n case 'tool':\n return null; // not a file edit — out of scope for this schema\n }\n}\n\nfunction outcomeDir(root: string): string {\n return path.join(root, '.vibgrate');\n}\n\nfunction outcomePath(root: string): string {\n return path.join(outcomeDir(root), 'run-outcomes.jsonl');\n}\n\n/** Best-effort append — a read-only checkout just means no local record, never a thrown error. */\nfunction append(root: string, event: RunOutcomeEvent): void {\n try {\n fs.mkdirSync(outcomeDir(root), { recursive: true });\n // First writer into .vibgrate/ in this repo creates its .gitignore (create-once,\n // never overwritten) — protects this file even when `vg code` runs before any\n // `vg scan`/`vg build`/`vg install` has touched the repo.\n ensureVibgrateGitignore(root);\n fs.appendFileSync(outcomePath(root), `${JSON.stringify(event)}\\n`);\n } catch {\n /* best-effort only */\n }\n}\n\ninterface PendingEdit {\n runId: string;\n shape: EditShape;\n proposedAt: number;\n}\n\ninterface RunTally {\n proposed: number;\n approved: number;\n rejected: number;\n autoApproved: number;\n lastVerifyOk: boolean | null;\n}\n\n/**\n * Observes the same `StreamJsonOut` lines already flowing to the host over\n * stdout/stdin (via a transparent tee — see `wireRunOutcome`) and turns them\n * into the envelope above. One instance per `vg code` process; `beginRun` is\n * called once per turn (once for a one-shot run, once per turn in session\n * mode), so `runId` scoping is the caller's — this class never invents one.\n */\nexport class RunOutcomeRecorder {\n private currentRunId: string | null = null;\n private readonly tallies = new Map<string, RunTally>();\n private readonly pending = new Map<number, PendingEdit>();\n\n constructor(\n private readonly root: string,\n private readonly repoId: string,\n private readonly gitRef: string | null,\n private readonly route: RunOutcomeRoute,\n private readonly securityTier: string,\n private readonly auto: boolean,\n private readonly now: () => number = Date.now,\n /**\n * Salt for `instructionHash`. Defaults to the real per-install id\n * ({@link installId}) in production; tests should pass a fixed string so\n * they never touch the real machine's `~/.vibgrate/install-id`.\n */\n private readonly saltValue: string = installId(),\n ) {}\n\n private envelope(runId: string): Envelope {\n return {\n schema: RUN_OUTCOME_SCHEMA,\n runId,\n ts: new Date(this.now()).toISOString(),\n repoId: this.repoId,\n gitRef: this.gitRef,\n route: this.route,\n securityTier: this.securityTier,\n };\n }\n\n /** Start recording a new run/turn. Call before the instruction is handed to the agent. */\n beginRun(runId: string, instruction: string, fromFinding?: 'upgrade' | 'fix-vuln'): void {\n this.currentRunId = runId;\n this.tallies.set(runId, { proposed: 0, approved: 0, rejected: 0, autoApproved: 0, lastVerifyOk: null });\n append(this.root, {\n ...this.envelope(runId),\n event: 'run_started',\n instructionHash: hash(this.saltValue, instruction),\n instructionKind: classifyInstructionKind(instruction, fromFinding),\n baseline: { driftScore: null, scoreMode: null, advisories: null },\n });\n }\n\n /**\n * Feed one outgoing protocol line. Transparent — never mutates or drops\n * the line; the caller still writes it to the host exactly as before.\n */\n observe(line: StreamJsonOut): void {\n const runId = this.currentRunId;\n if (!runId) return;\n const tally = this.tallies.get(runId);\n if (!tally) return;\n\n if (line.event === 'approve-request') {\n const shape = shapeOfAction(line.action);\n if (!shape) return; // run/tool — not a file edit\n tally.proposed++;\n const editId = randomUUID();\n this.pending.set(line.id, { runId, shape, proposedAt: this.now() });\n append(this.root, { ...this.envelope(runId), event: 'edit_proposed', editId, ...shape });\n // Auto-approve resolves synchronously in StreamJsonSession before any\n // host round-trip — record that decision now; no host message arrives.\n if (this.auto) {\n tally.autoApproved++;\n append(this.root, { ...this.envelope(runId), event: 'edit_decision', editId, decision: 'auto-approved', latencyMs: 0 });\n this.pending.delete(line.id);\n } else {\n // Stash the editId against the wire id so `noteDecision` can find it.\n this.editIdByApproveId.set(line.id, editId);\n }\n return;\n }\n\n if (line.event === 'event' && line.type === 'verify') {\n tally.lastVerifyOk = line.passed;\n return;\n }\n\n if (line.event === 'done') {\n this.finish(runId, tally, 'done', line.result);\n return;\n }\n if (line.event === 'error') {\n this.finish(runId, tally, 'error', null);\n }\n }\n\n private readonly editIdByApproveId = new Map<number, string>();\n\n /**\n * A real (non-auto) approve/reject arrived from the host over stdin. `id`\n * is the same numeric id `StreamJsonSession` put on the `approve-request`\n * line — the natural join key, already unique for the process lifetime.\n */\n noteDecision(approveId: number, approved: boolean): void {\n const editId = this.editIdByApproveId.get(approveId);\n const pending = this.pending.get(approveId);\n if (!editId || !pending) return;\n this.editIdByApproveId.delete(approveId);\n this.pending.delete(approveId);\n const tally = this.tallies.get(pending.runId);\n if (tally) approved ? tally.approved++ : tally.rejected++;\n append(this.root, {\n ...this.envelope(pending.runId),\n event: 'edit_decision',\n editId,\n decision: approved ? 'approved' : 'rejected',\n latencyMs: Math.max(0, this.now() - pending.proposedAt),\n });\n }\n\n /** The host disconnected / turn was cancelled mid-approval — reject what's left, no hang. */\n cancelPending(): void {\n for (const id of [...this.pending.keys()]) this.noteDecision(id, false);\n }\n\n private finish(runId: string, tally: RunTally, outcome: RunOutcome, result: AgentResult | null): void {\n append(this.root, {\n ...this.envelope(runId),\n event: 'run_completed',\n outcome,\n edits: { proposed: tally.proposed, approved: tally.approved, rejected: tally.rejected, autoApproved: tally.autoApproved },\n verify: null,\n verifyOk: tally.lastVerifyOk,\n tokens: result ? { input: result.usage.promptTokens, output: result.usage.completionTokens } : null,\n });\n this.tallies.delete(runId);\n if (this.currentRunId === runId) this.currentRunId = null;\n }\n}\n\n/** Mint a runId for a one-shot `vg code` invocation (no session). */\nexport function newOneShotRunId(): string {\n return `r${randomUUID()}`;\n}\n\n/** Mint a runId for one turn of a `--session` run. */\nexport function turnRunId(sessionId: string, turnIndex: number): string {\n return `${sessionId}#${turnIndex}`;\n}\n\nexport { repositoryIdFromRoot as runOutcomeRepoId };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/code/run-outcome.ts"],"names":[],"mappings":"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","file":"run-outcome-SBBSTSH3.js","sourcesContent":["/**\n * `vibgrate.run-outcome/1` — the local, append-only record of what a `vg code`\n * run did: what was proposed, what the human decided, and how the run ended.\n *\n * CORRECTION (2026-07-30, maintainer): this module was originally justified by\n * two future consumers — the verify loop and \"Relay routing telemetry\" (using\n * edit-acceptance data to auto-pick a model per request). The second is now\n * confirmed void: Relay never re-picks a model — the user (or their chosen\n * Code Mode) selects one model for the whole session, and that has never been\n * a requirement for any product in this space. The verify loop, meanwhile, is\n * shipped separately via the extension's LSP round-trip and never depended on\n * this schema. See `docs/VG-RUN-OUTCOME-EVENTS-SPEC.md` for the full record —\n * **this producer currently has no live or committed consumer.**\n *\n * This module only produces; nothing reads or transmits the file yet, and\n * nothing here changes `vg code`'s stdout NDJSON protocol — it is a silent\n * observer wired at the `--stream-json` call site in `commands/code.ts`, built\n * and unit-tested independent of any process, model, or socket, the same way\n * `stream-json.ts` is.\n *\n * Privacy (spec's hard rule): no event carries source code, diffs, file\n * contents, prompts, or file paths. Instructions become a salted hash only;\n * files become a language/kind classification only.\n */\n\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport { createHash, randomUUID } from 'node:crypto';\nimport { installId } from '../engine/stats-share.js';\nimport { ensureVibgrateGitignore } from '../engine/artifacts.js';\nimport { repositoryIdFromRoot } from '../runtime/paths.js';\nimport type { MutatingAction, PatchFileAction } from './tools.js';\nimport type { AgentResult } from './agent.js';\nimport type { StreamJsonOut } from './stream-json.js';\n\nexport const RUN_OUTCOME_SCHEMA = 'vibgrate.run-outcome/1';\n\nexport type InstructionKind = 'upgrade' | 'fix-vuln' | 'refactor' | 'feature' | 'other';\nexport type EditKind = 'code' | 'manifest' | 'lockfile' | 'config' | 'docs' | 'test';\nexport type EditDecision = 'approved' | 'rejected' | 'auto-approved';\nexport type RunOutcome = 'done' | 'error' | 'cancelled';\n\ninterface Envelope {\n schema: typeof RUN_OUTCOME_SCHEMA;\n runId: string;\n ts: string;\n repoId: string;\n gitRef: string | null;\n route: { mode?: string; provider?: string; model?: string };\n securityTier: string;\n}\n\nexport type RunOutcomeEvent =\n | (Envelope & {\n event: 'run_started';\n instructionHash: string;\n instructionKind: InstructionKind;\n /** Absent (never 0/null-as-zero) — this producer does not trigger a rescan. */\n baseline: { driftScore: number | null; scoreMode: 'verified' | 'estimated' | null; advisories: number | null };\n })\n | (Envelope & {\n event: 'edit_proposed';\n editId: string;\n language: string | null;\n linesAdded: number;\n linesRemoved: number;\n kind: EditKind;\n })\n | (Envelope & { event: 'edit_decision'; editId: string; decision: EditDecision; latencyMs: number })\n | (Envelope & {\n event: 'run_completed';\n outcome: RunOutcome;\n edits: { proposed: number; approved: number; rejected: number; autoApproved: number };\n /** Same reasoning as `baseline` — this producer never triggers a rescan. */\n verify: null;\n /**\n * Last verify-step (the project's configured test/build command) result\n * observed this run. `null` = no verify step ran, never a false pass.\n */\n verifyOk: boolean | null;\n tokens: { input: number; output: number } | null;\n });\n\nexport interface RunOutcomeRoute {\n mode?: string;\n provider?: string;\n model?: string;\n}\n\nfunction hash(saltValue: string, value: string): string {\n return createHash('sha256').update(`${saltValue}|${value}`).digest('hex');\n}\n\n/**\n * Best-effort, best-guess classification of an instruction's purpose. A\n * heuristic, not a model call — good enough for routing-signal aggregation,\n * not claimed as precise. `fromFinding` is set when the instruction was\n * composed by \"Fix →\" (routeFix.ts), which already know their own\n * kind and skip guessing.\n */\nexport function classifyInstructionKind(\n instruction: string,\n fromFinding?: 'upgrade' | 'fix-vuln',\n): InstructionKind {\n if (fromFinding) return fromFinding;\n const s = instruction.toLowerCase();\n if (/\\bupgrade\\b/.test(s) || /\\bfrom\\s+\\S+\\s+to\\s+\\S+/.test(s)) return 'upgrade';\n if (/\\b(cve|vulnerab|advisor|security fix|exploit)\\b/.test(s)) return 'fix-vuln';\n if (/\\brefactor\\b/.test(s)) return 'refactor';\n if (/\\b(add|implement|build|create|feature)\\b/.test(s)) return 'feature';\n return 'other';\n}\n\nconst MANIFEST_BASENAMES = new Set([\n 'package.json', 'go.mod', 'cargo.toml', 'pyproject.toml', 'requirements.txt',\n 'gemfile', 'composer.json', 'pom.xml', 'build.gradle', 'build.gradle.kts',\n 'pubspec.yaml', 'mix.exs',\n]);\nconst LOCKFILE_BASENAMES = new Set([\n 'package-lock.json', 'yarn.lock', 'pnpm-lock.yaml', 'cargo.lock', 'poetry.lock',\n 'gemfile.lock', 'composer.lock', 'go.sum', 'pubspec.lock', 'mix.lock',\n]);\nconst MANIFEST_EXTS = new Set(['.csproj', '.fsproj', '.vbproj']);\n\n/** Coarse per-file classification for `edit_proposed.kind` — filename-only, no content read. */\nexport function classifyEditKind(file: string): EditKind {\n const base = path.basename(file).toLowerCase();\n const ext = path.extname(base);\n if (MANIFEST_BASENAMES.has(base) || MANIFEST_EXTS.has(ext)) return 'manifest';\n if (LOCKFILE_BASENAMES.has(base)) return 'lockfile';\n if (ext === '.md' || ext === '.mdx' || file.split(/[\\\\/]/).includes('docs')) return 'docs';\n if (/\\.(test|spec)\\.[^.]+$/.test(base) || /(^|[\\\\/])(__tests__|tests|test|spec)([\\\\/]|$)/.test(file)) return 'test';\n if (base.startsWith('.') || /\\.config\\.[^.]+$/.test(base) || /\\.(ya?ml|toml|ini|env)$/.test(base)) return 'config';\n return 'code';\n}\n\n/** Language/extension label only — never a path. Empty extension → null. */\nfunction languageOf(file: string): string | null {\n const ext = path.extname(file).replace(/^\\./, '');\n return ext || null;\n}\n\n/** Count `+`/`-` content lines in a unified diff (excludes `+++`/`---` headers). */\nfunction diffLineCounts(diff: string): { added: number; removed: number } {\n let added = 0;\n let removed = 0;\n for (const line of diff.split('\\n')) {\n if (line.startsWith('+++') || line.startsWith('---')) continue;\n if (line.startsWith('+')) added++;\n else if (line.startsWith('-')) removed++;\n }\n return { added, removed };\n}\n\ninterface EditShape {\n language: string | null;\n linesAdded: number;\n linesRemoved: number;\n kind: EditKind;\n}\n\n/** Derive the `edit_proposed` shape from a `MutatingAction`, or null for non-edit actions (`run`/`tool`). */\nexport function shapeOfAction(action: MutatingAction): EditShape | null {\n switch (action.kind) {\n case 'edit': {\n const { added, removed } = diffLineCounts(action.diff);\n return { language: languageOf(action.file), linesAdded: added, linesRemoved: removed, kind: classifyEditKind(action.file) };\n }\n case 'create':\n return { language: languageOf(action.file), linesAdded: 0, linesRemoved: 0, kind: classifyEditKind(action.file) };\n case 'delete':\n return { language: languageOf(action.file), linesAdded: 0, linesRemoved: 0, kind: classifyEditKind(action.file) };\n case 'patch': {\n let added = 0;\n let removed = 0;\n const kinds = new Set<EditKind>();\n for (const f of action.files as PatchFileAction[]) {\n if (f.diff) {\n const c = diffLineCounts(f.diff);\n added += c.added;\n removed += c.removed;\n }\n kinds.add(classifyEditKind(f.file));\n }\n return { language: null, linesAdded: added, linesRemoved: removed, kind: kinds.size === 1 ? [...kinds][0]! : 'code' };\n }\n case 'run':\n case 'tool':\n return null; // not a file edit — out of scope for this schema\n }\n}\n\nfunction outcomeDir(root: string): string {\n return path.join(root, '.vibgrate');\n}\n\nfunction outcomePath(root: string): string {\n return path.join(outcomeDir(root), 'run-outcomes.jsonl');\n}\n\n/** Best-effort append — a read-only checkout just means no local record, never a thrown error. */\nfunction append(root: string, event: RunOutcomeEvent): void {\n try {\n fs.mkdirSync(outcomeDir(root), { recursive: true });\n // First writer into .vibgrate/ in this repo creates its .gitignore (create-once,\n // never overwritten) — protects this file even when `vg code` runs before any\n // `vg scan`/`vg build`/`vg install` has touched the repo.\n ensureVibgrateGitignore(root);\n fs.appendFileSync(outcomePath(root), `${JSON.stringify(event)}\\n`);\n } catch {\n /* best-effort only */\n }\n}\n\ninterface PendingEdit {\n runId: string;\n shape: EditShape;\n proposedAt: number;\n}\n\ninterface RunTally {\n proposed: number;\n approved: number;\n rejected: number;\n autoApproved: number;\n lastVerifyOk: boolean | null;\n}\n\n/**\n * Observes the same `StreamJsonOut` lines already flowing to the host over\n * stdout/stdin (via a transparent tee — see `wireRunOutcome`) and turns them\n * into the envelope above. One instance per `vg code` process; `beginRun` is\n * called once per turn (once for a one-shot run, once per turn in session\n * mode), so `runId` scoping is the caller's — this class never invents one.\n */\nexport class RunOutcomeRecorder {\n private currentRunId: string | null = null;\n private readonly tallies = new Map<string, RunTally>();\n private readonly pending = new Map<number, PendingEdit>();\n\n constructor(\n private readonly root: string,\n private readonly repoId: string,\n private readonly gitRef: string | null,\n private readonly route: RunOutcomeRoute,\n private readonly securityTier: string,\n private readonly auto: boolean,\n private readonly now: () => number = Date.now,\n /**\n * Salt for `instructionHash`. Defaults to the real per-install id\n * ({@link installId}) in production; tests should pass a fixed string so\n * they never touch the real machine's `~/.vibgrate/install-id`.\n */\n private readonly saltValue: string = installId(),\n ) {}\n\n private envelope(runId: string): Envelope {\n return {\n schema: RUN_OUTCOME_SCHEMA,\n runId,\n ts: new Date(this.now()).toISOString(),\n repoId: this.repoId,\n gitRef: this.gitRef,\n route: this.route,\n securityTier: this.securityTier,\n };\n }\n\n /** Start recording a new run/turn. Call before the instruction is handed to the agent. */\n beginRun(runId: string, instruction: string, fromFinding?: 'upgrade' | 'fix-vuln'): void {\n this.currentRunId = runId;\n this.tallies.set(runId, { proposed: 0, approved: 0, rejected: 0, autoApproved: 0, lastVerifyOk: null });\n append(this.root, {\n ...this.envelope(runId),\n event: 'run_started',\n instructionHash: hash(this.saltValue, instruction),\n instructionKind: classifyInstructionKind(instruction, fromFinding),\n baseline: { driftScore: null, scoreMode: null, advisories: null },\n });\n }\n\n /**\n * Feed one outgoing protocol line. Transparent — never mutates or drops\n * the line; the caller still writes it to the host exactly as before.\n */\n observe(line: StreamJsonOut): void {\n const runId = this.currentRunId;\n if (!runId) return;\n const tally = this.tallies.get(runId);\n if (!tally) return;\n\n if (line.event === 'approve-request') {\n const shape = shapeOfAction(line.action);\n if (!shape) return; // run/tool — not a file edit\n tally.proposed++;\n const editId = randomUUID();\n this.pending.set(line.id, { runId, shape, proposedAt: this.now() });\n append(this.root, { ...this.envelope(runId), event: 'edit_proposed', editId, ...shape });\n // Auto-approve resolves synchronously in StreamJsonSession before any\n // host round-trip — record that decision now; no host message arrives.\n if (this.auto) {\n tally.autoApproved++;\n append(this.root, { ...this.envelope(runId), event: 'edit_decision', editId, decision: 'auto-approved', latencyMs: 0 });\n this.pending.delete(line.id);\n } else {\n // Stash the editId against the wire id so `noteDecision` can find it.\n this.editIdByApproveId.set(line.id, editId);\n }\n return;\n }\n\n if (line.event === 'event' && line.type === 'verify') {\n tally.lastVerifyOk = line.passed;\n return;\n }\n\n if (line.event === 'done') {\n this.finish(runId, tally, 'done', line.result);\n return;\n }\n if (line.event === 'error') {\n this.finish(runId, tally, 'error', null);\n }\n }\n\n private readonly editIdByApproveId = new Map<number, string>();\n\n /**\n * A real (non-auto) approve/reject arrived from the host over stdin. `id`\n * is the same numeric id `StreamJsonSession` put on the `approve-request`\n * line — the natural join key, already unique for the process lifetime.\n */\n noteDecision(approveId: number, approved: boolean): void {\n const editId = this.editIdByApproveId.get(approveId);\n const pending = this.pending.get(approveId);\n if (!editId || !pending) return;\n this.editIdByApproveId.delete(approveId);\n this.pending.delete(approveId);\n const tally = this.tallies.get(pending.runId);\n if (tally) approved ? tally.approved++ : tally.rejected++;\n append(this.root, {\n ...this.envelope(pending.runId),\n event: 'edit_decision',\n editId,\n decision: approved ? 'approved' : 'rejected',\n latencyMs: Math.max(0, this.now() - pending.proposedAt),\n });\n }\n\n /** The host disconnected / turn was cancelled mid-approval — reject what's left, no hang. */\n cancelPending(): void {\n for (const id of [...this.pending.keys()]) this.noteDecision(id, false);\n }\n\n private finish(runId: string, tally: RunTally, outcome: RunOutcome, result: AgentResult | null): void {\n append(this.root, {\n ...this.envelope(runId),\n event: 'run_completed',\n outcome,\n edits: { proposed: tally.proposed, approved: tally.approved, rejected: tally.rejected, autoApproved: tally.autoApproved },\n verify: null,\n verifyOk: tally.lastVerifyOk,\n tokens: result ? { input: result.usage.promptTokens, output: result.usage.completionTokens } : null,\n });\n this.tallies.delete(runId);\n if (this.currentRunId === runId) this.currentRunId = null;\n }\n}\n\n/** Mint a runId for a one-shot `vg code` invocation (no session). */\nexport function newOneShotRunId(): string {\n return `r${randomUUID()}`;\n}\n\n/** Mint a runId for one turn of a `--session` run. */\nexport function turnRunId(sessionId: string, turnIndex: number): string {\n return `${sessionId}#${turnIndex}`;\n}\n\nexport { repositoryIdFromRoot as runOutcomeRepoId };\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export { startCodeRuntimeSession } from './chunk-24HKTTFV.js';
|
|
2
|
+
import './chunk-BQ6NTRRK.js';
|
|
3
|
+
import './chunk-3LOWJSAF.js';
|
|
4
|
+
import './chunk-5HYCB55P.js';
|
|
5
|
+
import './chunk-IS7VTH2Q.js';
|
|
6
|
+
import './chunk-IZDH67DX.js';
|
|
7
|
+
import './chunk-DBX3DL27.js';
|
|
8
|
+
import './chunk-6BEBJCK4.js';
|
|
9
|
+
import './chunk-J7LKEB2R.js';
|
|
10
|
+
import './chunk-CA4YQBA7.js';
|
|
11
|
+
import './chunk-USPMMVNH.js';
|
|
12
|
+
import './chunk-VHRSG6CF.js';
|
|
13
|
+
import './chunk-6H2QV5DR.js';
|
|
14
|
+
import './chunk-RTURQXQL.js';
|
|
15
|
+
import './chunk-6WRG7VDO.js';
|
|
16
|
+
import './chunk-7BSUPHX6.js';
|
|
17
|
+
import './chunk-2C4QT5D7.js';
|
|
18
|
+
import './chunk-MVPRPSXU.js';
|
|
19
|
+
import './chunk-O3LABX6I.js';
|
|
20
|
+
import './chunk-ZUZHYAJK.js';
|
|
21
|
+
import './chunk-XP6UUCZZ.js';
|
|
22
|
+
import './chunk-JFGYT6BI.js';
|
|
23
|
+
import './chunk-XQNKCA2J.js';
|
|
24
|
+
import './chunk-Z6ZWNWWR.js';
|
|
25
|
+
//# sourceMappingURL=runtime-session-JYYKQVDX.js.map
|
|
26
|
+
//# sourceMappingURL=runtime-session-JYYKQVDX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"runtime-session-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"runtime-session-JYYKQVDX.js"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { commitChanges, nodeCodeFs, runCodeSession, undoChanges } from './chunk-W6ASIMG5.js';
|
|
2
|
+
import './chunk-SHD5TCZ5.js';
|
|
3
|
+
import './chunk-3HNPVXUK.js';
|
|
4
|
+
import './chunk-CBL3VY7J.js';
|
|
5
|
+
import './chunk-EZ7UC5Y5.js';
|
|
6
|
+
import './chunk-CA4YQBA7.js';
|
|
7
|
+
import './chunk-7BSUPHX6.js';
|
|
8
|
+
import './chunk-2C4QT5D7.js';
|
|
9
|
+
import './chunk-MVPRPSXU.js';
|
|
10
|
+
import './chunk-O3LABX6I.js';
|
|
11
|
+
import './chunk-ZUZHYAJK.js';
|
|
12
|
+
import './chunk-XP6UUCZZ.js';
|
|
13
|
+
import './chunk-JFGYT6BI.js';
|
|
14
|
+
import './chunk-XQNKCA2J.js';
|
|
15
|
+
import './chunk-Z6ZWNWWR.js';
|
|
16
|
+
//# sourceMappingURL=session-2ZMHZ2O6.js.map
|
|
17
|
+
//# sourceMappingURL=session-2ZMHZ2O6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"session-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"session-2ZMHZ2O6.js"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { vgdSocketPath } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
import { vgdSocketPath } from './chunk-6H2QV5DR.js';
|
|
2
|
+
import './chunk-XP6UUCZZ.js';
|
|
3
3
|
import './chunk-JFGYT6BI.js';
|
|
4
|
-
import './chunk-
|
|
4
|
+
import './chunk-XQNKCA2J.js';
|
|
5
5
|
import './chunk-Z6ZWNWWR.js';
|
|
6
6
|
import * as net from 'net';
|
|
7
7
|
|
|
@@ -91,5 +91,5 @@ function subscribeToSlots(options) {
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
export { subscribeToSlots };
|
|
94
|
-
//# sourceMappingURL=slot-subscription-
|
|
95
|
-
//# sourceMappingURL=slot-subscription-
|
|
94
|
+
//# sourceMappingURL=slot-subscription-C2ZUJED6.js.map
|
|
95
|
+
//# sourceMappingURL=slot-subscription-C2ZUJED6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/runtime/vgd/slot-subscription.ts"],"names":[],"mappings":"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","file":"slot-subscription-
|
|
1
|
+
{"version":3,"sources":["../src/runtime/vgd/slot-subscription.ts"],"names":[],"mappings":"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","file":"slot-subscription-C2ZUJED6.js","sourcesContent":["import * as net from 'node:net';\nimport { vgdSocketPath } from './paths.js';\n\n/**\n * A long-lived connection that the daemon pushes slot changes down.\n *\n * This is what lets a server stop watching the filesystem itself. `vg serve`\n * and `vg lsp` each ran a recursive `fs.watch` over the whole workspace and\n * their own `RefreshScheduler` on top of it — three processes noticing the\n * same edit, three inotify registrations over the same tree, three incremental\n * rebuilds racing for the same lock. The daemon already does all of it; the\n * only thing missing was a way to tell anyone.\n *\n * Standing down is conditional, and the condition is checked rather than\n * assumed: a subscriber only retires its own watcher once the daemon has\n * confirmed the subscription, and it restarts it the moment the connection\n * drops. A daemon that dies must degrade a client to \"watches for itself\n * again\", never to \"nothing is watching\".\n */\n\nexport interface SlotChange {\n repositoryId: string;\n gitRef: string;\n nodeCount: number;\n corpusHash: string | null;\n}\n\nexport interface SlotSubscriptionOptions {\n socketPath?: string;\n /** Only hear about this repository. Omit for every repository. */\n repositoryId?: string;\n /** Called for each pushed change. */\n onChange: (change: SlotChange) => void;\n /**\n * Called when the connection ends for any reason. The subscriber must treat\n * this as \"you are watching for yourself again\".\n */\n onDetach?: (reason: string) => void;\n log?: (message: string) => void;\n /** Injected (tests). */\n connect?: (socketPath: string) => net.Socket;\n}\n\nexport interface SlotSubscription {\n /** True once the daemon has acknowledged; false means watch for yourself. */\n readonly active: boolean;\n close(): void;\n}\n\n/**\n * Open a subscription. Resolves once the daemon has acknowledged it, or with\n * `active: false` when no daemon answered — never throws, and never leaves the\n * caller unsure whether it must keep watching.\n */\nexport function subscribeToSlots(options: SlotSubscriptionOptions): Promise<SlotSubscription> {\n const socketPath = options.socketPath ?? vgdSocketPath();\n const log = options.log ?? ((): void => {});\n const connect = options.connect ?? ((p: string) => net.createConnection(p));\n\n return new Promise<SlotSubscription>((resolve) => {\n let settled = false;\n let active = false;\n let closed = false;\n let buffer = '';\n let socket: net.Socket;\n\n const handle: SlotSubscription = {\n get active() {\n return active;\n },\n close() {\n closed = true;\n active = false;\n try {\n socket.destroy();\n } catch {\n /* already gone */\n }\n },\n };\n\n const detach = (reason: string): void => {\n const wasActive = active;\n active = false;\n if (!settled) {\n settled = true;\n resolve(handle);\n }\n // A deliberate close is not a detachment the caller must react to.\n if (wasActive && !closed) {\n log(`watch-slots: subscription ended (${reason}) — watching locally again`);\n options.onDetach?.(reason);\n }\n };\n\n try {\n socket = connect(socketPath);\n } catch (e) {\n detach(e instanceof Error ? e.message : String(e));\n return;\n }\n\n socket.setEncoding('utf8');\n socket.on('connect', () => {\n socket.write(JSON.stringify({ op: 'watch-slots', repositoryId: options.repositoryId }) + '\\n');\n });\n socket.on('data', (chunk: string) => {\n buffer += chunk;\n let nl: number;\n while ((nl = buffer.indexOf('\\n')) >= 0) {\n const line = buffer.slice(0, nl).trim();\n buffer = buffer.slice(nl + 1);\n if (!line) continue;\n let frame: Record<string, unknown>;\n try {\n frame = JSON.parse(line) as Record<string, unknown>;\n } catch {\n continue; // a corrupt frame is not fatal to the stream\n }\n if (frame.watching === true) {\n active = true;\n if (!settled) {\n settled = true;\n log(`watch-slots: subscribed${options.repositoryId ? ` to ${options.repositoryId}` : ''}`);\n resolve(handle);\n }\n continue;\n }\n if (frame.event === 'slot-changed' && typeof frame.repositoryId === 'string') {\n options.onChange({\n repositoryId: frame.repositoryId,\n gitRef: typeof frame.gitRef === 'string' ? frame.gitRef : 'HEAD',\n nodeCount: typeof frame.nodeCount === 'number' ? frame.nodeCount : 0,\n corpusHash: typeof frame.corpusHash === 'string' ? frame.corpusHash : null,\n });\n continue;\n }\n // An error reply to the subscribe itself: this listener cannot push.\n if (frame.ok === false && !settled) detach(String(frame.error ?? 'subscription refused'));\n }\n });\n socket.on('error', (err: Error) => detach(err.message));\n socket.on('close', () => detach('connection closed'));\n });\n}\n"]}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import { sanitizeAttachments } from './chunk-AJS4EL2C.js';
|
|
2
|
-
import { runAgent } from './chunk-
|
|
2
|
+
import { runAgent } from './chunk-2ZBLZ2S3.js';
|
|
3
3
|
import './chunk-543E6WDJ.js';
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
4
|
+
import './chunk-IMI2VHHZ.js';
|
|
5
|
+
import './chunk-AQZYDFEK.js';
|
|
6
|
+
import './chunk-SHD5TCZ5.js';
|
|
7
7
|
import './chunk-3HNPVXUK.js';
|
|
8
8
|
import './chunk-5HYCB55P.js';
|
|
9
9
|
import './chunk-VIWZ4QT7.js';
|
|
10
|
-
import './chunk-
|
|
11
|
-
import './chunk-
|
|
10
|
+
import './chunk-WPLOEFZU.js';
|
|
11
|
+
import './chunk-CBL3VY7J.js';
|
|
12
12
|
import './chunk-EZ7UC5Y5.js';
|
|
13
13
|
import './chunk-6BEBJCK4.js';
|
|
14
14
|
import './chunk-J7LKEB2R.js';
|
|
15
|
-
import './chunk-
|
|
16
|
-
import './chunk-
|
|
17
|
-
import './chunk-
|
|
18
|
-
import './chunk-
|
|
15
|
+
import './chunk-CA4YQBA7.js';
|
|
16
|
+
import './chunk-VHRSG6CF.js';
|
|
17
|
+
import './chunk-6H2QV5DR.js';
|
|
18
|
+
import './chunk-FCMWHSQ6.js';
|
|
19
19
|
import './chunk-T7RSQ5WD.js';
|
|
20
20
|
import './chunk-6WRG7VDO.js';
|
|
21
|
-
import './chunk-
|
|
22
|
-
import './chunk-
|
|
21
|
+
import './chunk-7BSUPHX6.js';
|
|
22
|
+
import './chunk-2C4QT5D7.js';
|
|
23
23
|
import './chunk-MVPRPSXU.js';
|
|
24
24
|
import './chunk-O3LABX6I.js';
|
|
25
|
-
import './chunk-
|
|
26
|
-
import './chunk-
|
|
25
|
+
import './chunk-ZUZHYAJK.js';
|
|
26
|
+
import './chunk-XP6UUCZZ.js';
|
|
27
27
|
import './chunk-JFGYT6BI.js';
|
|
28
|
-
import './chunk-
|
|
28
|
+
import './chunk-XQNKCA2J.js';
|
|
29
29
|
import './chunk-Z6ZWNWWR.js';
|
|
30
30
|
|
|
31
31
|
// src/code/stream-json.ts
|
|
@@ -268,5 +268,5 @@ async function runCodeStreamJson(options) {
|
|
|
268
268
|
}
|
|
269
269
|
|
|
270
270
|
export { STREAM_JSON_PROTOCOL_VERSION, StreamJsonSession, parseHostMessage, runCodeStreamJson, runCodeStreamJsonSession };
|
|
271
|
-
//# sourceMappingURL=stream-json-
|
|
272
|
-
//# sourceMappingURL=stream-json-
|
|
271
|
+
//# sourceMappingURL=stream-json-ZWGB4C47.js.map
|
|
272
|
+
//# sourceMappingURL=stream-json-ZWGB4C47.js.map
|