mulmoterminal 1.9.2 → 1.11.0

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 (117) hide show
  1. package/README.md +9 -3
  2. package/bin/cli-args.d.ts +1 -0
  3. package/bin/cli-args.js +17 -0
  4. package/bin/mulmoterminal.js +4 -1
  5. package/dist/assets/{abnfDiagram-VRR7QNED-RjiYivmv-T8EaV8qf.js → abnfDiagram-VRR7QNED-RjiYivmv-DoPzTpWH.js} +1 -1
  6. package/dist/assets/architecture-TIHT7OUA-0NsD2xW1-BNfI39Tc.js +1 -0
  7. package/dist/assets/{architectureDiagram-ZJ3FMSHR-3nWA91tG-C114bJgD.js → architectureDiagram-ZJ3FMSHR-3nWA91tG-CqHmDW4v.js} +1 -1
  8. package/dist/assets/{blockDiagram-677ZJIJ3-BPuAJQRW-CYvJ3ZQV.js → blockDiagram-677ZJIJ3-BPuAJQRW-CYFBk_tW.js} +1 -1
  9. package/dist/assets/{c4Diagram-LMCZKHZV-C0LAqQso-C4JJpFBT.js → c4Diagram-LMCZKHZV-C0LAqQso-CyTls-2W.js} +1 -1
  10. package/dist/assets/channel-7wUqSdoX-Bsn9YuXA.js +1 -0
  11. package/dist/assets/{chunk-32BRIVSS-BRrYpgtb-CdnTpEk_.js → chunk-32BRIVSS-BRrYpgtb-CRk4-qWr.js} +1 -1
  12. package/dist/assets/{chunk-52WLFC77-BJ-ss3Xr-B8rhMO_2.js → chunk-52WLFC77-BJ-ss3Xr-cMNDrZCp.js} +1 -1
  13. package/dist/assets/{chunk-C7G6YPKG-BZEucKEL-ghNvu0ya.js → chunk-C7G6YPKG-BZEucKEL-DdgUg42h.js} +1 -1
  14. package/dist/assets/{chunk-EX3LRPZG-DLS6FBN1-caU2-pAK.js → chunk-EX3LRPZG-DLS6FBN1-p3rRzQG9.js} +1 -1
  15. package/dist/assets/{chunk-FWX5IMBZ-DHLSFw1H-DuJXl6fJ.js → chunk-FWX5IMBZ-DHLSFw1H-CLcq5-Tt.js} +2 -2
  16. package/dist/assets/{chunk-HOUHSVGY-Bhlt8hXJ-Bo-e89Ij.js → chunk-HOUHSVGY-Bhlt8hXJ-nU88X3qq.js} +1 -1
  17. package/dist/assets/{chunk-ICXQ74PX-DwgHBX_g-Cqg2CS_Q.js → chunk-ICXQ74PX-DwgHBX_g-DTDNQ1W4.js} +1 -1
  18. package/dist/assets/{chunk-MOJQB5TN-CMZRaeqt-CN-SEWs6.js → chunk-MOJQB5TN-CMZRaeqt-DBEoqMUh.js} +1 -1
  19. package/dist/assets/{chunk-OGEWGWER-8Qy4a8b5-Ou3GyCD5.js → chunk-OGEWGWER-8Qy4a8b5-CbX3gnTZ.js} +1 -1
  20. package/dist/assets/{chunk-PUDLZKDR-DcrWQRYh-BMF-lev1.js → chunk-PUDLZKDR-DcrWQRYh-dJCeJ7yV.js} +1 -1
  21. package/dist/assets/{chunk-Q4XR5HBZ-ZXVGkG8Z-BU7_t9vH.js → chunk-Q4XR5HBZ-ZXVGkG8Z-B5mLpl1D.js} +1 -1
  22. package/dist/assets/{chunk-V7JOEXUC-DmGdheTX-DCB_u19S.js → chunk-V7JOEXUC-DmGdheTX-CczVd9W4.js} +1 -1
  23. package/dist/assets/{chunk-VAUOI2AC-CS9QJ4yz-DQ2PJYv2.js → chunk-VAUOI2AC-CS9QJ4yz-Dv4vHptP.js} +1 -1
  24. package/dist/assets/{chunk-VR4S4FIN-C6a91eNY-Bj7oxpK2.js → chunk-VR4S4FIN-C6a91eNY-ByJtq1db.js} +1 -1
  25. package/dist/assets/{chunk-WYO6CB5R-BlzOfotS-B_xO2WAM.js → chunk-WYO6CB5R-BlzOfotS-DRw32fX5.js} +1 -1
  26. package/dist/assets/{chunk-ZGVPDNZ5-BYwxNFTK-BCqhFFwE.js → chunk-ZGVPDNZ5-BYwxNFTK-ZktXfHWx.js} +1 -1
  27. package/dist/assets/classDiagram-OUVF2IWQ-BYlRi6YQ-GY6x6A6f.js +1 -0
  28. package/dist/assets/classDiagram-v2-EOCWNBFH-BCHaYHxj-GY6x6A6f.js +1 -0
  29. package/dist/assets/cynefin-VYW2F7L2-CGYr2F6h-B-3ZtGp7.js +1 -0
  30. package/dist/assets/{cynefinDiagram-TSTJHNR4-DHA9iPo--CwW5YDrD.js → cynefinDiagram-TSTJHNR4-DHA9iPo--1wrimNcJ.js} +1 -1
  31. package/dist/assets/{dagre-VKFMJZFB--oJKqXBZ-BAJio4ph.js → dagre-VKFMJZFB--oJKqXBZ-BuuH0HY5.js} +1 -1
  32. package/dist/assets/{diagram-FQU43EPY-CcJCB9bG-sYLLmuQP.js → diagram-FQU43EPY-CcJCB9bG-BBJKNn2L.js} +1 -1
  33. package/dist/assets/{diagram-G47NLZAW-C_o-WGG1-Bgvv9WhE.js → diagram-G47NLZAW-C_o-WGG1-ftfyzGHe.js} +1 -1
  34. package/dist/assets/{diagram-NH7WQ7WH-CXJCYvY--XnlZFFc1.js → diagram-NH7WQ7WH-CXJCYvY--Dy3ZSBEb.js} +1 -1
  35. package/dist/assets/{diagram-OA4YK3LP-BMzeJ87A-DObWyAHV.js → diagram-OA4YK3LP-BMzeJ87A-BDSRdoLj.js} +1 -1
  36. package/dist/assets/{diagram-WEI45ONY-D_93NKqo-DN6hxQfz.js → diagram-WEI45ONY-D_93NKqo-LiecO2Hj.js} +1 -1
  37. package/dist/assets/{ebnfDiagram-CCIWWBDH-CVai1Ii9-DYt1zEH4.js → ebnfDiagram-CCIWWBDH-CVai1Ii9-Ca9L2wxI.js} +1 -1
  38. package/dist/assets/{erDiagram-Q63AITRT-CiABnA0s-nVMfjlRm.js → erDiagram-Q63AITRT-CiABnA0s-DioWxrkV.js} +1 -1
  39. package/dist/assets/eventmodeling-45OFAUF4-CWmqhm3a-BOShZw22.js +1 -0
  40. package/dist/assets/flowDiagram-23GEKE2U-DKSB5AiY-BUkWtC39.js +1 -0
  41. package/dist/assets/{ganttDiagram-NO4QXBWP-DQZvdFo1-JCInrnja.js → ganttDiagram-NO4QXBWP-DQZvdFo1-Zub9e700.js} +1 -1
  42. package/dist/assets/gitGraph-TEB2WS4Q-BR9qPwdN-BZF_Ex1p.js +1 -0
  43. package/dist/assets/{gitGraphDiagram-IHSO6WYX-C2ovBouh-DhSpD4k-.js → gitGraphDiagram-IHSO6WYX-C2ovBouh-DBst8b77.js} +1 -1
  44. package/dist/assets/{index-BLeBjOoh.js → index-C2SsWTQA.js} +200 -199
  45. package/dist/assets/{index-Bx7iPSaX.css → index-CgkzlIm9.css} +1 -1
  46. package/dist/assets/info-DKCQHKI2-Dplx5kMp-BP0oL8jv.js +1 -0
  47. package/dist/assets/{infoDiagram-FWYZ7A6U-7UnoB5AP-BH8i98ii.js → infoDiagram-FWYZ7A6U-7UnoB5AP-dVQpFljw.js} +1 -1
  48. package/dist/assets/{ishikawaDiagram-FXEZZL3T-ByUDM_N2-CG0GDhYU.js → ishikawaDiagram-FXEZZL3T-ByUDM_N2-KqGSDTrY.js} +1 -1
  49. package/dist/assets/{journeyDiagram-5HDEW3XC-c5xIah9o-C4kqyklQ.js → journeyDiagram-5HDEW3XC-c5xIah9o-DrrAJw8m.js} +1 -1
  50. package/dist/assets/{kanban-definition-HUTT4EX6-Cnt6loYD-HgrX8K7J.js → kanban-definition-HUTT4EX6-Cnt6loYD-CyRCc-Ud.js} +1 -1
  51. package/dist/assets/{lib-CVTPt31R.js → lib-BNReZR40.js} +1 -1
  52. package/dist/assets/{line-D7ziSjKi-BHrDcxQI.js → line-D7ziSjKi-D23buVSz.js} +1 -1
  53. package/dist/assets/{marp-DAGTf0Wk.js → marp-C-HSM7fk.js} +1 -1
  54. package/dist/assets/{mermaid-parser.core-DxEa8E3F-COt48zRF.js → mermaid-parser.core-DxEa8E3F-CwMM2mdJ.js} +2 -2
  55. package/dist/assets/{mermaid.core-V0OYwIz3-Zq3FcHSe.js → mermaid.core-V0OYwIz3-DCjPhhdF.js} +3 -3
  56. package/dist/assets/{mindmap-definition-LN4V7U3C-CexN3O6L-C1c69CLs.js → mindmap-definition-LN4V7U3C-CexN3O6L-WjTUU9Sl.js} +1 -1
  57. package/dist/assets/packet-7NZHBO7P-CQI3flND-DbxaYHR_.js +1 -0
  58. package/dist/assets/{pegDiagram-2B236MQR-BiM4G0cW-BFc-_UdZ.js → pegDiagram-2B236MQR-BiM4G0cW-DSWDs4iO.js} +1 -1
  59. package/dist/assets/pie-RZYD4A2V-CnmKE2Wa-4Jgv_w9r.js +1 -0
  60. package/dist/assets/{pieDiagram-ENE6RG2P-B_fBBS-2-A3mLGSN6.js → pieDiagram-ENE6RG2P-B_fBBS-2-RDOtAHjo.js} +1 -1
  61. package/dist/assets/{quadrantDiagram-ABIIQ3AL-BigGVxCR-DkSsqel0.js → quadrantDiagram-ABIIQ3AL-BigGVxCR-Bb3188Xk.js} +1 -1
  62. package/dist/assets/radar-I7S5WNFK-us6x-Z9R-UyLadbo_.js +1 -0
  63. package/dist/assets/railroad-3IZDKUUU-BKdz6pdN-gXa_XzqI.js +1 -0
  64. package/dist/assets/railroad-abnf-AHOZXSZD-m_CSSIfd-BpsNCWih.js +1 -0
  65. package/dist/assets/railroad-ebnf-EBAXGLYW-Nu3nAG7C-myNcMVu4.js +1 -0
  66. package/dist/assets/railroad-peg-LSFZ7HO6--Y3mD4R_-CHGb3kK7.js +1 -0
  67. package/dist/assets/{railroadDiagram-RFXS5EU6--lNIlG64-ChzAidJY.js → railroadDiagram-RFXS5EU6--lNIlG64-Cn1QM5Zh.js} +1 -1
  68. package/dist/assets/{requirementDiagram-TGXJPOKE-D-B0Y5Wu-Dxs9fh7j.js → requirementDiagram-TGXJPOKE-D-B0Y5Wu-DwCL4VtR.js} +1 -1
  69. package/dist/assets/{sankeyDiagram-HTMAVEWB-DlutaXDv-BQIQNsD-.js → sankeyDiagram-HTMAVEWB-DlutaXDv-Je8HrUsH.js} +1 -1
  70. package/dist/assets/{sequenceDiagram-DBY2YBRQ-BOLgtggH-C4o-Kk2_.js → sequenceDiagram-DBY2YBRQ-BOLgtggH-D4jYYRci.js} +1 -1
  71. package/dist/assets/{stateDiagram-2N3HPSRC-jf_dXUEU-ZAAybx_a.js → stateDiagram-2N3HPSRC-jf_dXUEU-CbBpw79S.js} +1 -1
  72. package/dist/assets/stateDiagram-v2-6OUMAXLB-CuzgCL2v-C8__Aohh.js +1 -0
  73. package/dist/assets/{swimlanes-5IMT3BWC-CYjtALQH-DyWjUJVW.js → swimlanes-5IMT3BWC-CYjtALQH-CJDQAqFo.js} +1 -1
  74. package/dist/assets/swimlanesDiagram-G3AALYLV-3bmSBtKs-zgBqxou2.js +8 -0
  75. package/dist/assets/{timeline-definition-FHXFAJF6-DYJ4oUm8-DH8SH0jw.js → timeline-definition-FHXFAJF6-DYJ4oUm8-HWpL5WEX.js} +1 -1
  76. package/dist/assets/treeView-QDETBFTQ-D27HWG6Q-BpFibl9T.js +1 -0
  77. package/dist/assets/treemap-6X3UGDF4-CmGIU3H5-RFJpkaU8.js +1 -0
  78. package/dist/assets/{vennDiagram-L72KCM5P-CdKAHoek-IzUa58Hb.js → vennDiagram-L72KCM5P-CdKAHoek-Bs5oJ5ts.js} +1 -1
  79. package/dist/assets/wardley-OPB4EBWU-CbHWsb2k-CHYeu2vN.js +1 -0
  80. package/dist/assets/{wardleyDiagram-EHGQE667-BF6c4_CW-DSZ8NzEj.js → wardleyDiagram-EHGQE667-BF6c4_CW-BxSjBent.js} +1 -1
  81. package/dist/assets/{xychartDiagram-FW5EYKEG-CGiKngj7-BOGVPbzg.js → xychartDiagram-FW5EYKEG-CGiKngj7-D9CAb_OR.js} +1 -1
  82. package/dist/index.html +2 -2
  83. package/package.json +14 -14
  84. package/server/backends/fileOps.ts +3 -2
  85. package/server/backends/files.ts +4 -4
  86. package/server/backends/html.ts +2 -1
  87. package/server/backends/workspaceSetup.ts +5 -1
  88. package/server/config/dir-config.ts +3 -4
  89. package/server/config/header-context.ts +3 -4
  90. package/server/files/files-browse.ts +51 -30
  91. package/server/files/pathContainment.ts +18 -4
  92. package/server/files/renderedDoc.ts +151 -0
  93. package/server/git/worktrees.ts +4 -2
  94. package/server/infra/path-within.ts +56 -0
  95. package/server/skills/mulmoterminal-bug-report/faq.md +14 -6
  96. package/server/skills/mulmoterminal-config/SKILL.md +2 -1
  97. package/dist/assets/architecture-TIHT7OUA-0NsD2xW1-D6xvjP8K.js +0 -1
  98. package/dist/assets/channel-7wUqSdoX-CkvChYyC.js +0 -1
  99. package/dist/assets/classDiagram-OUVF2IWQ-BYlRi6YQ-DN3W6EPf.js +0 -1
  100. package/dist/assets/classDiagram-v2-EOCWNBFH-BCHaYHxj-DN3W6EPf.js +0 -1
  101. package/dist/assets/cynefin-VYW2F7L2-CGYr2F6h-Bko8GCdx.js +0 -1
  102. package/dist/assets/eventmodeling-45OFAUF4-CWmqhm3a-7HtJ_a7y.js +0 -1
  103. package/dist/assets/flowDiagram-23GEKE2U-DKSB5AiY-Bbz0t7rh.js +0 -1
  104. package/dist/assets/gitGraph-TEB2WS4Q-BR9qPwdN-QueW-5wZ.js +0 -1
  105. package/dist/assets/info-DKCQHKI2-Dplx5kMp-CK1cGCUt.js +0 -1
  106. package/dist/assets/packet-7NZHBO7P-CQI3flND-YNPWkMmO.js +0 -1
  107. package/dist/assets/pie-RZYD4A2V-CnmKE2Wa-DRBkQ_ch.js +0 -1
  108. package/dist/assets/radar-I7S5WNFK-us6x-Z9R-BxdRAFac.js +0 -1
  109. package/dist/assets/railroad-3IZDKUUU-BKdz6pdN-Bx_ESwk3.js +0 -1
  110. package/dist/assets/railroad-abnf-AHOZXSZD-m_CSSIfd-D1fPJA7T.js +0 -1
  111. package/dist/assets/railroad-ebnf-EBAXGLYW-Nu3nAG7C-DMwt52sA.js +0 -1
  112. package/dist/assets/railroad-peg-LSFZ7HO6--Y3mD4R_-V300H6Tn.js +0 -1
  113. package/dist/assets/stateDiagram-v2-6OUMAXLB-CuzgCL2v-DKS8fLWk.js +0 -1
  114. package/dist/assets/swimlanesDiagram-G3AALYLV-3bmSBtKs-CPmhHyrH.js +0 -8
  115. package/dist/assets/treeView-QDETBFTQ-D27HWG6Q-DThxyp9o.js +0 -1
  116. package/dist/assets/treemap-6X3UGDF4-CmGIU3H5-yTXcaf6t.js +0 -1
  117. package/dist/assets/wardley-OPB4EBWU-CbHWsb2k-BIaSM_lj.js +0 -1
package/README.md CHANGED
@@ -363,9 +363,15 @@ Requires **Node ≥ 22.9** (uses `node --env-file-if-exists`) and the `claude` C
363
363
  ## Configuration
364
364
 
365
365
  The server is configured entirely through environment variables, optionally
366
- loaded from a `.env` file via `node --env-file-if-exists=.env` (wired into the
367
- npm scripts). The `.env` is optional every variable below has a default, so
368
- the server runs without one.
366
+ loaded from a `.env` file. `npx mulmoterminal` reads the `.env` **in the
367
+ directory you run it from**; the npm scripts read the one in the repo root. The
368
+ `.env` is optional — every variable below has a default, so the server runs
369
+ without one.
370
+
371
+ A variable already set in your shell wins over the same name in `.env`, so
372
+ adding a file never overrides what you exported. The server's environment is
373
+ inherited by every terminal it starts, so anything in `.env` is also visible to
374
+ the `claude` / `codex` sessions themselves.
369
375
 
370
376
  | Variable | Default | Description |
371
377
  | ------------ | -------------- | ----------- |
package/bin/cli-args.d.ts CHANGED
@@ -9,3 +9,4 @@ export declare function saysYes(answer: unknown): boolean;
9
9
  export declare const SECOND_INSTANCE_NOTE: string;
10
10
  export declare const MIN_NODE_LABEL: string;
11
11
  export declare function nodeMeetsMinimum(version: string): boolean;
12
+ export declare function serverNodeArgs(serverEntry: string, launchDir: string): string[];
package/bin/cli-args.js CHANGED
@@ -9,6 +9,7 @@
9
9
  //
10
10
  // These return a decision; the caller prints and exits. Nothing here reads argv, the
11
11
  // environment or the filesystem.
12
+ import { join } from "node:path";
12
13
 
13
14
  /**
14
15
  * Which port the launcher should ask for.
@@ -133,3 +134,19 @@ export function nodeMeetsMinimum(version) {
133
134
  const [major, minor] = version.split(".").map((part) => Number.parseInt(part, 10));
134
135
  return major > MIN_NODE_MAJOR || (major === MIN_NODE_MAJOR && minor >= MIN_NODE_MINOR);
135
136
  }
137
+
138
+ /**
139
+ * The node arguments the launcher spawns the server with.
140
+ *
141
+ * `--env-file-if-exists` is what makes a `.env` in the LAUNCH directory reach the server
142
+ * (#795): the dev scripts have always passed it, the launcher never did, so a key written
143
+ * there was silently absent and the provider stayed unusable. The path is absolute because
144
+ * the spawn runs with `cwd` set to the package directory — a relative `.env` would be looked
145
+ * for inside node_modules and quietly not found.
146
+ *
147
+ * Node options must precede the script path; anything after it is an argument to the script.
148
+ * The launch directory is passed rather than read here so the choice stays checkable.
149
+ */
150
+ export function serverNodeArgs(serverEntry, launchDir) {
151
+ return ["--import", "tsx", `--env-file-if-exists=${join(launchDir, ".env")}`, serverEntry];
152
+ }
@@ -25,6 +25,7 @@ import {
25
25
  SECOND_INSTANCE_NOTE,
26
26
  nodeMeetsMinimum,
27
27
  MIN_NODE_LABEL,
28
+ serverNodeArgs,
28
29
  } from "./cli-args.js";
29
30
 
30
31
  const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -248,7 +249,9 @@ function runServer(port, noOpen, cwd, onChild) {
248
249
  // stderr is piped (and passed through) so a fatal boot error can be inspected once the
249
250
  // child closes — a half-unpacked npx cache entry crashes here with ERR_MODULE_NOT_FOUND,
250
251
  // and without reading stderr the launcher cannot tell that from a real bug.
251
- const server = spawn(process.execPath, ["--import", "tsx", SERVER_ENTRY], {
252
+ // The .env comes from where the user ran the command — the spawn's own cwd is the
253
+ // package directory, so serverNodeArgs makes that path absolute (#795).
254
+ const server = spawn(process.execPath, serverNodeArgs(SERVER_ENTRY, process.cwd()), {
252
255
  cwd: PKG_DIR,
253
256
  env: { ...process.env, NODE_ENV: "production", PORT: String(port), CLAUDE_CWD: cwd },
254
257
  stdio: ["inherit", "inherit", "pipe"],
@@ -1 +1 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-Bdt8pFDJ-DsF7k-Jl.js";import{f as t}from"./src-Brzfja-q-ch1VcTiG.js";import{_ as n,g as r}from"./mermaid-parser.core-DxEa8E3F-COt48zRF.js";import"./chunk-WYO6CB5R-BlzOfotS-B_xO2WAM.js";import"./chunk-VAUOI2AC-CS9QJ4yz-DQ2PJYv2.js";import{n as i,r as a,t as o}from"./chunk-MOJQB5TN-CMZRaeqt-CN-SEWs6.js";import{t as s}from"./chunk-JWPE2WC7-BQ3zXr2k-DSd3Ct95.js";var c=r().RailroadAbnf.parser.LangiumParser,l=e(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=e(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=e(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=e(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=e(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=e(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=e(e=>{s(e,a),e.title&&a.setTitle(e.title),e.rules.map(e=>a.addRule(m(e)))},`populateDb`),g={parser:{parse:e(e=>{a.clear(),t.debug(`[ABNF Parser] Starting Langium parse`);let r=c.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new n(r);let i=r.value;t.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),t.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:a}},db:a,renderer:o,styles:i};export{g as diagram};
1
+ import{n as e}from"./chunk-Y2CYZVJY-Bdt8pFDJ-DsF7k-Jl.js";import{f as t}from"./src-Brzfja-q-ch1VcTiG.js";import{_ as n,g as r}from"./mermaid-parser.core-DxEa8E3F-CwMM2mdJ.js";import"./chunk-WYO6CB5R-BlzOfotS-DRw32fX5.js";import"./chunk-VAUOI2AC-CS9QJ4yz-Dv4vHptP.js";import{n as i,r as a,t as o}from"./chunk-MOJQB5TN-CMZRaeqt-DBEoqMUh.js";import{t as s}from"./chunk-JWPE2WC7-BQ3zXr2k-DSd3Ct95.js";var c=r().RailroadAbnf.parser.LangiumParser,l=e(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=e(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=e(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=e(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=e(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=e(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=e(e=>{s(e,a),e.title&&a.setTitle(e.title),e.rules.map(e=>a.addRule(m(e)))},`populateDb`),g={parser:{parse:e(e=>{a.clear(),t.debug(`[ABNF Parser] Starting Langium parse`);let r=c.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new n(r);let i=r.value;t.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),t.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:a}},db:a,renderer:o,styles:i};export{g as diagram};
@@ -0,0 +1 @@
1
+ import{f as e}from"./mermaid-parser.core-DxEa8E3F-CwMM2mdJ.js";export{e as createArchitectureServices};