@vibgrate/cli 2026.727.4 → 2026.728.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/DOCS.md +3 -3
  2. package/dist/baseline-PPZJBYAJ.js +8 -0
  3. package/dist/{baseline-ENCOSJYQ.js.map → baseline-PPZJBYAJ.js.map} +1 -1
  4. package/dist/{chunk-T3AYRS7J.js → chunk-3BIRGSRS.js} +3 -3
  5. package/dist/{chunk-T3AYRS7J.js.map → chunk-3BIRGSRS.js.map} +1 -1
  6. package/dist/{chunk-YKVH2PGF.js → chunk-57QU36P6.js} +94 -142
  7. package/dist/chunk-57QU36P6.js.map +1 -0
  8. package/dist/{chunk-FPEOIS7K.js → chunk-6GRLZ4Z2.js} +12 -9
  9. package/dist/chunk-6GRLZ4Z2.js.map +1 -0
  10. package/dist/{chunk-K7REHDQS.js → chunk-6HX47EBL.js} +25 -19
  11. package/dist/chunk-6HX47EBL.js.map +1 -0
  12. package/dist/{chunk-KKRSQQ3A.js → chunk-7AVYKZEM.js} +4 -4
  13. package/dist/{chunk-KKRSQQ3A.js.map → chunk-7AVYKZEM.js.map} +1 -1
  14. package/dist/{chunk-MAUJTPQW.js → chunk-A2IYFNCQ.js} +24 -62
  15. package/dist/chunk-A2IYFNCQ.js.map +1 -0
  16. package/dist/{chunk-3SDV6ADQ.js → chunk-CQDUBAQY.js} +3 -3
  17. package/dist/{chunk-3SDV6ADQ.js.map → chunk-CQDUBAQY.js.map} +1 -1
  18. package/dist/{chunk-77LYGXBI.js → chunk-JRAGO6OB.js} +3 -3
  19. package/dist/{chunk-77LYGXBI.js.map → chunk-JRAGO6OB.js.map} +1 -1
  20. package/dist/{chunk-PVZBYZZR.js → chunk-NZELMYT4.js} +27 -6
  21. package/dist/chunk-NZELMYT4.js.map +1 -0
  22. package/dist/chunk-OSD546W7.js +167 -0
  23. package/dist/chunk-OSD546W7.js.map +1 -0
  24. package/dist/{chunk-GYSOQH5C.js → chunk-OV4KGXPD.js} +30 -4
  25. package/dist/chunk-OV4KGXPD.js.map +1 -0
  26. package/dist/{chunk-XPJZTSY7.js → chunk-R2QNFXE5.js} +3 -3
  27. package/dist/{chunk-XPJZTSY7.js.map → chunk-R2QNFXE5.js.map} +1 -1
  28. package/dist/{chunk-PXHNTC6D.js → chunk-SIPGDJT4.js} +3 -3
  29. package/dist/{chunk-PXHNTC6D.js.map → chunk-SIPGDJT4.js.map} +1 -1
  30. package/dist/{chunk-YCJIIGLP.js → chunk-SZSNPXSW.js} +4 -4
  31. package/dist/{chunk-YCJIIGLP.js.map → chunk-SZSNPXSW.js.map} +1 -1
  32. package/dist/chunk-UZJS7GMK.js +57 -0
  33. package/dist/chunk-UZJS7GMK.js.map +1 -0
  34. package/dist/{chunk-LJP2EPKM.js → chunk-VI4ITXHQ.js} +4 -4
  35. package/dist/{chunk-LJP2EPKM.js.map → chunk-VI4ITXHQ.js.map} +1 -1
  36. package/dist/{chunk-HYRAILGM.js → chunk-VYGEOOLY.js} +3 -3
  37. package/dist/{chunk-HYRAILGM.js.map → chunk-VYGEOOLY.js.map} +1 -1
  38. package/dist/{chunk-R6ZRVVZT.js → chunk-WH2N22S3.js} +3 -3
  39. package/dist/{chunk-R6ZRVVZT.js.map → chunk-WH2N22S3.js.map} +1 -1
  40. package/dist/{chunk-KXSKFQMI.js → chunk-YF43FOPP.js} +5 -5
  41. package/dist/chunk-YF43FOPP.js.map +1 -0
  42. package/dist/cli.js +531 -142
  43. package/dist/cli.js.map +1 -1
  44. package/dist/index.d.ts +1 -1
  45. package/dist/index.js +6 -5
  46. package/dist/index.js.map +1 -1
  47. package/dist/{interactive-SMHVURYK.js → interactive-OCWQ326U.js} +18 -17
  48. package/dist/interactive-OCWQ326U.js.map +1 -0
  49. package/dist/{llm-host-7GWDO6IX.js → llm-host-XYBT4267.js} +4 -4
  50. package/dist/{llm-host-7GWDO6IX.js.map → llm-host-XYBT4267.js.map} +1 -1
  51. package/dist/model-manager-LB54VSV7.js +10 -0
  52. package/dist/{model-manager-PN7HEDXD.js.map → model-manager-LB54VSV7.js.map} +1 -1
  53. package/dist/{model-orchestrator-4VSYP4J4.js → model-orchestrator-4M5FG6MN.js} +3 -3
  54. package/dist/{model-orchestrator-4VSYP4J4.js.map → model-orchestrator-4M5FG6MN.js.map} +1 -1
  55. package/dist/resolve-gguf-4AFRN4CP.js +9 -0
  56. package/dist/{resolve-gguf-Y6FH3CNB.js.map → resolve-gguf-4AFRN4CP.js.map} +1 -1
  57. package/dist/{runtime-session-4AMZIAAG.js → runtime-session-EJQZXANB.js} +5 -5
  58. package/dist/{runtime-session-4AMZIAAG.js.map → runtime-session-EJQZXANB.js.map} +1 -1
  59. package/dist/{session-W3646AOV.js → session-ZJGENHKX.js} +6 -5
  60. package/dist/{session-W3646AOV.js.map → session-ZJGENHKX.js.map} +1 -1
  61. package/dist/{stream-json-X7UQFB4T.js → stream-json-Z5KC2DM3.js} +6 -5
  62. package/dist/stream-json-Z5KC2DM3.js.map +1 -0
  63. package/dist/{vgd-CVLKBS7K.js → vgd-3MHSB4KA.js} +4 -4
  64. package/dist/vgd-3MHSB4KA.js.map +1 -0
  65. package/package.json +1 -1
  66. package/dist/baseline-ENCOSJYQ.js +0 -8
  67. package/dist/chunk-FPEOIS7K.js.map +0 -1
  68. package/dist/chunk-GYSOQH5C.js.map +0 -1
  69. package/dist/chunk-K7REHDQS.js.map +0 -1
  70. package/dist/chunk-KUIBP3LU.js +0 -101
  71. package/dist/chunk-KUIBP3LU.js.map +0 -1
  72. package/dist/chunk-KXSKFQMI.js.map +0 -1
  73. package/dist/chunk-MAUJTPQW.js.map +0 -1
  74. package/dist/chunk-PVZBYZZR.js.map +0 -1
  75. package/dist/chunk-YKVH2PGF.js.map +0 -1
  76. package/dist/interactive-SMHVURYK.js.map +0 -1
  77. package/dist/model-manager-PN7HEDXD.js +0 -9
  78. package/dist/resolve-gguf-Y6FH3CNB.js +0 -9
  79. package/dist/stream-json-X7UQFB4T.js.map +0 -1
  80. package/dist/vgd-CVLKBS7K.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/runtime/resolve-gguf.ts"],"names":[],"mappings":"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","file":"chunk-KKRSQQ3A.js","sourcesContent":["/**\n * Resolve a GGUF path for embedded llama.cpp — best-in-breed default path.\n *\n * Order (first hit wins):\n * 1. Explicit path (exists on disk)\n * 2. VG_CODE_MODEL_PATH / env override\n * 3. First-party weight store (catalogued ref or basename)\n * 4. Discovered local fleet (gguf / lm-studio)\n *\n * Pure path resolution — never downloads (install is `vg models install`).\n */\n\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport { discoverModels, type LocalModel } from '../engine/models.js';\nimport { isWeightCached, listCachedWeights, lookupCatalog, weightPathForRef } from './weight-store.js';\n\nexport interface ResolveGgufOptions {\n /** Explicit --model-path or absolute path. */\n modelPath?: string;\n /** Model id / weightsRef (e.g. qwen2.5-coder-3b-q4_k_m.gguf or qwen2.5-coder:3b). */\n modelRef?: string;\n env?: NodeJS.ProcessEnv;\n discover?: () => LocalModel[];\n}\n\nexport interface ResolveGgufResult {\n path: string;\n source: 'explicit' | 'env' | 'weight-store' | 'fleet' | 'catalog-path';\n ref?: string;\n}\n\n/**\n * Resolve an on-disk GGUF for local inference. Returns null when nothing is ready\n * (caller should fall back to Ollama or ask user to install).\n */\nexport function resolveGgufPath(opts: ResolveGgufOptions = {}): ResolveGgufResult | null {\n const env = opts.env ?? process.env;\n\n if (opts.modelPath && fs.existsSync(opts.modelPath) && fs.statSync(opts.modelPath).isFile()) {\n return { path: path.resolve(opts.modelPath), source: 'explicit', ref: opts.modelRef };\n }\n\n const envPath = env.VG_CODE_MODEL_PATH;\n if (envPath && fs.existsSync(envPath) && fs.statSync(envPath).isFile()) {\n return { path: path.resolve(envPath), source: 'env', ref: opts.modelRef };\n }\n\n const ref = opts.modelRef?.trim();\n if (ref) {\n // Direct weight-store hit.\n if (isWeightCached(ref, env)) {\n return { path: weightPathForRef(ref, env), source: 'weight-store', ref };\n }\n // Catalog basename may differ slightly from ollama-style refs.\n const catalog = lookupCatalog(ref);\n if (catalog && isWeightCached(catalog.ref, env)) {\n return { path: weightPathForRef(catalog.ref, env), source: 'weight-store', ref: catalog.ref };\n }\n // Ollama-style \"name:tag\" → try catalog aliases.\n const normalized = ref.includes(':')\n ? `${ref.replace(':', '-').replace(/\\//g, '-')}-q4_k_m.gguf`\n : ref.endsWith('.gguf')\n ? ref\n : `${ref}.gguf`;\n if (isWeightCached(normalized, env)) {\n return { path: weightPathForRef(normalized, env), source: 'weight-store', ref: normalized };\n }\n const cat2 = lookupCatalog(normalized);\n if (cat2 && isWeightCached(cat2.ref, env)) {\n return { path: weightPathForRef(cat2.ref, env), source: 'weight-store', ref: cat2.ref };\n }\n // Absolute path-looking ref\n if ((ref.startsWith('/') || /^[A-Za-z]:[\\\\/]/.test(ref)) && fs.existsSync(ref)) {\n return { path: path.resolve(ref), source: 'explicit', ref };\n }\n }\n\n // Any cached first-party weight (prefer matching ref substring).\n const cached = listCachedWeights(env);\n if (ref) {\n const hit = cached.find((w) => w.name.toLowerCase().includes(ref.toLowerCase().replace(/[:/]/g, '-')));\n if (hit) return { path: hit.path, source: 'weight-store', ref: hit.name };\n }\n\n // Fleet discovery: gguf / lm-studio paths.\n const fleet = (() => {\n try {\n return (opts.discover ?? discoverModels)();\n } catch {\n return [] as LocalModel[];\n }\n })();\n if (ref) {\n const want = ref.toLowerCase();\n const match = fleet.find(\n (m) =>\n (m.runtime === 'gguf' || m.runtime === 'lm-studio') &&\n (m.name.toLowerCase().includes(want) || m.path.toLowerCase().includes(want) || want.includes(m.name.toLowerCase())),\n );\n if (match && fs.existsSync(match.path)) {\n return { path: match.path, source: 'fleet', ref: match.name };\n }\n }\n const anyGguf = fleet.find((m) => (m.runtime === 'gguf' || m.runtime === 'lm-studio') && fs.existsSync(m.path));\n if (anyGguf) return { path: anyGguf.path, source: 'fleet', ref: anyGguf.name };\n\n // If only one weight in store, use it when no ref.\n if (!ref && cached.length === 1) {\n return { path: cached[0].path, source: 'weight-store', ref: cached[0].name };\n }\n\n return null;\n}\n\n/** Whether embedded llama.cpp is ready for this ref without a network install. */\nexport function embeddedLlamaReady(opts: ResolveGgufOptions = {}): boolean {\n return resolveGgufPath(opts) != null;\n}\n"]}
1
+ {"version":3,"sources":["../src/runtime/resolve-gguf.ts"],"names":[],"mappings":"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","file":"chunk-7AVYKZEM.js","sourcesContent":["/**\n * Resolve a GGUF path for embedded llama.cpp — best-in-breed default path.\n *\n * Order (first hit wins):\n * 1. Explicit path (exists on disk)\n * 2. VG_CODE_MODEL_PATH / env override\n * 3. First-party weight store (catalogued ref or basename)\n * 4. Discovered local fleet (gguf / lm-studio)\n *\n * Pure path resolution — never downloads (install is `vg models install`).\n */\n\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport { discoverModels, type LocalModel } from '../engine/models.js';\nimport { isWeightCached, listCachedWeights, lookupCatalog, weightPathForRef } from './weight-store.js';\n\nexport interface ResolveGgufOptions {\n /** Explicit --model-path or absolute path. */\n modelPath?: string;\n /** Model id / weightsRef (e.g. qwen2.5-coder-3b-q4_k_m.gguf or qwen2.5-coder:3b). */\n modelRef?: string;\n env?: NodeJS.ProcessEnv;\n discover?: () => LocalModel[];\n}\n\nexport interface ResolveGgufResult {\n path: string;\n source: 'explicit' | 'env' | 'weight-store' | 'fleet' | 'catalog-path';\n ref?: string;\n}\n\n/**\n * Resolve an on-disk GGUF for local inference. Returns null when nothing is ready\n * (caller should fall back to Ollama or ask user to install).\n */\nexport function resolveGgufPath(opts: ResolveGgufOptions = {}): ResolveGgufResult | null {\n const env = opts.env ?? process.env;\n\n if (opts.modelPath && fs.existsSync(opts.modelPath) && fs.statSync(opts.modelPath).isFile()) {\n return { path: path.resolve(opts.modelPath), source: 'explicit', ref: opts.modelRef };\n }\n\n const envPath = env.VG_CODE_MODEL_PATH;\n if (envPath && fs.existsSync(envPath) && fs.statSync(envPath).isFile()) {\n return { path: path.resolve(envPath), source: 'env', ref: opts.modelRef };\n }\n\n const ref = opts.modelRef?.trim();\n if (ref) {\n // Direct weight-store hit.\n if (isWeightCached(ref, env)) {\n return { path: weightPathForRef(ref, env), source: 'weight-store', ref };\n }\n // Catalog basename may differ slightly from ollama-style refs.\n const catalog = lookupCatalog(ref);\n if (catalog && isWeightCached(catalog.ref, env)) {\n return { path: weightPathForRef(catalog.ref, env), source: 'weight-store', ref: catalog.ref };\n }\n // Ollama-style \"name:tag\" → try catalog aliases.\n const normalized = ref.includes(':')\n ? `${ref.replace(':', '-').replace(/\\//g, '-')}-q4_k_m.gguf`\n : ref.endsWith('.gguf')\n ? ref\n : `${ref}.gguf`;\n if (isWeightCached(normalized, env)) {\n return { path: weightPathForRef(normalized, env), source: 'weight-store', ref: normalized };\n }\n const cat2 = lookupCatalog(normalized);\n if (cat2 && isWeightCached(cat2.ref, env)) {\n return { path: weightPathForRef(cat2.ref, env), source: 'weight-store', ref: cat2.ref };\n }\n // Absolute path-looking ref\n if ((ref.startsWith('/') || /^[A-Za-z]:[\\\\/]/.test(ref)) && fs.existsSync(ref)) {\n return { path: path.resolve(ref), source: 'explicit', ref };\n }\n }\n\n // Any cached first-party weight (prefer matching ref substring).\n const cached = listCachedWeights(env);\n if (ref) {\n const hit = cached.find((w) => w.name.toLowerCase().includes(ref.toLowerCase().replace(/[:/]/g, '-')));\n if (hit) return { path: hit.path, source: 'weight-store', ref: hit.name };\n }\n\n // Fleet discovery: gguf / lm-studio paths.\n const fleet = (() => {\n try {\n return (opts.discover ?? discoverModels)();\n } catch {\n return [] as LocalModel[];\n }\n })();\n if (ref) {\n const want = ref.toLowerCase();\n const match = fleet.find(\n (m) =>\n (m.runtime === 'gguf' || m.runtime === 'lm-studio') &&\n (m.name.toLowerCase().includes(want) || m.path.toLowerCase().includes(want) || want.includes(m.name.toLowerCase())),\n );\n if (match && fs.existsSync(match.path)) {\n return { path: match.path, source: 'fleet', ref: match.name };\n }\n }\n const anyGguf = fleet.find((m) => (m.runtime === 'gguf' || m.runtime === 'lm-studio') && fs.existsSync(m.path));\n if (anyGguf) return { path: anyGguf.path, source: 'fleet', ref: anyGguf.name };\n\n // If only one weight in store, use it when no ref.\n if (!ref && cached.length === 1) {\n return { path: cached[0].path, source: 'weight-store', ref: cached[0].name };\n }\n\n return null;\n}\n\n/** Whether embedded llama.cpp is ready for this ref without a network install. */\nexport function embeddedLlamaReady(opts: ResolveGgufOptions = {}): boolean {\n return resolveGgufPath(opts) != null;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { buildAgentMessages, redactSecrets, unifiedDiff, applyEdit } from './chunk-KXSKFQMI.js';
1
+ import { buildAgentMessages, redactSecrets, unifiedDiff, applyEdit } from './chunk-YF43FOPP.js';
2
2
  import { localGraphBackend } from './chunk-HK3AWUXH.js';
3
3
  import { buildIdentifierTrieFromGraph, KvBlockRegistry, graphDraftCandidates, extractIdentifiers, scanIdentifiersAgainstTrie } from './chunk-JIBOJTGS.js';
4
4
  import { resolve, resolveLib, loadCatalog, readDoc, localPackageDocs, resolveVersion } from './chunk-6AXHLQBV.js';
@@ -1884,65 +1884,27 @@ function buildRunProvenance(input = {}) {
1884
1884
 
1885
1885
  // src/code/patch-ir-grammar.ts
1886
1886
  function patchIrGbnf() {
1887
- return String.raw`root ::= ws patch
1888
- ws ::= [ \t\n]*
1889
- patch ::= "{" ws
1890
- "\"schemaVersion\"" ws ":" ws "\"patch-ir/0\"" ws "," ws
1891
- "\"operations\"" ws ":" ws operations ws "," ws
1892
- "\"assumptions\"" ws ":" ws array-any ws "," ws
1893
- "\"requestedVerification\"" ws ":" ws array-any ws "," ws
1894
- "\"provenance\"" ws ":" ws provenance
1895
- ws "}"
1896
- operations ::= "[" ws operation (ws "," ws operation)* ws "]"
1897
- operation ::= replace-range | replace-text | create-file | delete-file | replace-symbol
1898
- replace-range ::= "{" ws
1899
- "\"op\"" ws ":" ws "\"replace-range\"" ws "," ws
1900
- "\"file\"" ws ":" ws string ws "," ws
1901
- "\"start\"" ws ":" ws number ws "," ws
1902
- "\"end\"" ws ":" ws number ws "," ws
1903
- "\"replacement\"" ws ":" ws string
1904
- (ws "," ws "\"expectedHash\"" ws ":" ws (string | null) )?
1905
- (ws "," ws "\"anchorSymbol\"" ws ":" ws (string | null) )?
1906
- ws "}"
1907
- replace-text ::= "{" ws
1908
- "\"op\"" ws ":" ws "\"replace-text\"" ws "," ws
1909
- "\"file\"" ws ":" ws string ws "," ws
1910
- "\"search\"" ws ":" ws string ws "," ws
1911
- "\"replace\"" ws ":" ws string
1912
- (ws "," ws "\"anchorSymbol\"" ws ":" ws (string | null) )?
1913
- ws "}"
1914
- create-file ::= "{" ws
1915
- "\"op\"" ws ":" ws "\"create-file\"" ws "," ws
1916
- "\"file\"" ws ":" ws string ws "," ws
1917
- "\"content\"" ws ":" ws string
1918
- ws "}"
1919
- delete-file ::= "{" ws
1920
- "\"op\"" ws ":" ws "\"delete-file\"" ws "," ws
1921
- "\"file\"" ws ":" ws string
1922
- ws "}"
1923
- replace-symbol ::= "{" ws
1924
- "\"op\"" ws ":" ws "\"replace-symbol\"" ws "," ws
1925
- "\"symbolId\"" ws ":" ws string ws "," ws
1926
- "\"replacement\"" ws ":" ws string
1927
- (ws "," ws "\"file\"" ws ":" ws (string | null) )?
1928
- (ws "," ws "\"expectedHash\"" ws ":" ws (string | null) )?
1929
- ws "}"
1930
- provenance ::= "{" ws
1931
- "\"format\"" ws ":" ws format
1932
- (ws "," ws "\"modelId\"" ws ":" ws (string | null) )?
1933
- (ws "," ws "\"raw\"" ws ":" ws (string | null) )?
1934
- ws "}"
1935
- format ::= "\"search-replace\"" | "\"whole-file\"" | "\"structured-json\"" | "\"grammar-constrained\"" | "\"code-edit\""
1936
- array-any ::= "[" ws (value (ws "," ws value)*)? ws "]"
1937
- value ::= object | array-any | string | number | "true" | "false" | null
1938
- object ::= "{" ws (string ws ":" ws value (ws "," ws string ws ":" ws value)*)? ws "}"
1939
- string ::= "\"" (
1940
- [^"\\] |
1941
- "\\" (["\\/bfnrt] | "u" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F])
1942
- )* "\""
1943
- number ::= "-"? ("0" | [1-9] [0-9]*) ("." [0-9]+)? ([eE] [+-]? [0-9]+)?
1944
- null ::= "null"
1945
- `;
1887
+ return [
1888
+ "root ::= ws patch",
1889
+ "ws ::= [ \\t\\n]*",
1890
+ 'patch ::= "{" ws "\\"schemaVersion\\"" ws ":" ws "\\"patch-ir/0\\"" ws "," ws "\\"operations\\"" ws ":" ws operations ws "," ws "\\"assumptions\\"" ws ":" ws array-any ws "," ws "\\"requestedVerification\\"" ws ":" ws array-any ws "," ws "\\"provenance\\"" ws ":" ws provenance ws "}"',
1891
+ 'operations ::= "[" ws operation (ws "," ws operation)* ws "]"',
1892
+ "operation ::= replace-range | replace-text | create-file | delete-file | replace-symbol",
1893
+ 'replace-range ::= "{" ws "\\"op\\"" ws ":" ws "\\"replace-range\\"" ws "," ws "\\"file\\"" ws ":" ws string ws "," ws "\\"start\\"" ws ":" ws number ws "," ws "\\"end\\"" ws ":" ws number ws "," ws "\\"replacement\\"" ws ":" ws string (ws "," ws "\\"expectedHash\\"" ws ":" ws (string | null) )? (ws "," ws "\\"anchorSymbol\\"" ws ":" ws (string | null) )? ws "}"',
1894
+ 'replace-text ::= "{" ws "\\"op\\"" ws ":" ws "\\"replace-text\\"" ws "," ws "\\"file\\"" ws ":" ws string ws "," ws "\\"search\\"" ws ":" ws string ws "," ws "\\"replace\\"" ws ":" ws string (ws "," ws "\\"anchorSymbol\\"" ws ":" ws (string | null) )? ws "}"',
1895
+ 'create-file ::= "{" ws "\\"op\\"" ws ":" ws "\\"create-file\\"" ws "," ws "\\"file\\"" ws ":" ws string ws "," ws "\\"content\\"" ws ":" ws string ws "}"',
1896
+ 'delete-file ::= "{" ws "\\"op\\"" ws ":" ws "\\"delete-file\\"" ws "," ws "\\"file\\"" ws ":" ws string ws "}"',
1897
+ 'replace-symbol ::= "{" ws "\\"op\\"" ws ":" ws "\\"replace-symbol\\"" ws "," ws "\\"symbolId\\"" ws ":" ws string ws "," ws "\\"replacement\\"" ws ":" ws string (ws "," ws "\\"file\\"" ws ":" ws (string | null) )? (ws "," ws "\\"expectedHash\\"" ws ":" ws (string | null) )? ws "}"',
1898
+ 'provenance ::= "{" ws "\\"format\\"" ws ":" ws format (ws "," ws "\\"modelId\\"" ws ":" ws (string | null) )? (ws "," ws "\\"raw\\"" ws ":" ws (string | null) )? ws "}"',
1899
+ 'format ::= "\\"search-replace\\"" | "\\"whole-file\\"" | "\\"structured-json\\"" | "\\"grammar-constrained\\"" | "\\"code-edit\\""',
1900
+ 'array-any ::= "[" ws (value (ws "," ws value)*)? ws "]"',
1901
+ 'value ::= object | array-any | string | number | "true" | "false" | null',
1902
+ 'object ::= "{" ws (string ws ":" ws value (ws "," ws string ws ":" ws value)*)? ws "}"',
1903
+ 'string ::= "\\"" ( [^"\\\\] | "\\\\" (["\\\\/bfnrt] | "u" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F]) )* "\\""',
1904
+ 'number ::= "-"? ("0" | [1-9] [0-9]*) ("." [0-9]+)? ([eE] [+-]? [0-9]+)?',
1905
+ 'null ::= "null"',
1906
+ ""
1907
+ ].join("\n");
1946
1908
  }
1947
1909
  function shouldUsePatchIrGrammar(profile) {
1948
1910
  if (!profile) return false;
@@ -2492,5 +2454,5 @@ function buildSpanIndex(graph) {
2492
2454
  }
2493
2455
 
2494
2456
  export { CONTEXT_POLICY_VERSION, computeFcsReport, createTrajectoryCollector, renderFcsReportMarkdown, runAgent };
2495
- //# sourceMappingURL=chunk-MAUJTPQW.js.map
2496
- //# sourceMappingURL=chunk-MAUJTPQW.js.map
2457
+ //# sourceMappingURL=chunk-A2IYFNCQ.js.map
2458
+ //# sourceMappingURL=chunk-A2IYFNCQ.js.map