mulmoterminal 4.7.2 → 4.7.4

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 +2 -2
  2. package/common/terminalSubmit.ts +11 -0
  3. package/dist/assets/{abnfDiagram-VRR7QNED-WSmThe6b-DknQ8qLF.js → abnfDiagram-VRR7QNED-WSmThe6b-C2qxQ98q.js} +1 -1
  4. package/dist/assets/architecture-TIHT7OUA-Cqhmai3f-B8l_HkU_.js +1 -0
  5. package/dist/assets/{architectureDiagram-ZJ3FMSHR-Tj3i7Oow-CfVlsJeY.js → architectureDiagram-ZJ3FMSHR-Tj3i7Oow-Bje5D4hH.js} +1 -1
  6. package/dist/assets/{blockDiagram-677ZJIJ3-c-hNYBhI-8WciGLbY.js → blockDiagram-677ZJIJ3-c-hNYBhI-Ct0-NGju.js} +1 -1
  7. package/dist/assets/{c4Diagram-LMCZKHZV-WIGVajf5-4zxd1D-H.js → c4Diagram-LMCZKHZV-WIGVajf5-CViXSGd8.js} +1 -1
  8. package/dist/assets/channel-OqG5cGJi-D7dAImU_.js +1 -0
  9. package/dist/assets/{chunk-32BRIVSS-CtSq3QOR-DSiMp8Df.js → chunk-32BRIVSS-CtSq3QOR-a2KEV-r7.js} +1 -1
  10. package/dist/assets/{chunk-52WLFC77-2Up0T-6t-wBuEc9dl.js → chunk-52WLFC77-2Up0T-6t-Dj6A4cl5.js} +1 -1
  11. package/dist/assets/{chunk-C7G6YPKG-ivengO-7-CsEaBceS.js → chunk-C7G6YPKG-ivengO-7-_tKTKuVS.js} +1 -1
  12. package/dist/assets/{chunk-EX3LRPZG-BHoWQ6W8-DyrLqwia.js → chunk-EX3LRPZG-BHoWQ6W8-C29DU6si.js} +1 -1
  13. package/dist/assets/{chunk-FWX5IMBZ-PvRXPghr-DzGVj1EZ.js → chunk-FWX5IMBZ-PvRXPghr-Cw54zK5U.js} +2 -2
  14. package/dist/assets/{chunk-HOUHSVGY-A3_zwY4q-gbpEybOh.js → chunk-HOUHSVGY-A3_zwY4q-C-HMq5Mh.js} +1 -1
  15. package/dist/assets/{chunk-ICXQ74PX-vzZqgurQ-CX8v32jV.js → chunk-ICXQ74PX-vzZqgurQ-D7VlWWgd.js} +1 -1
  16. package/dist/assets/{chunk-MOJQB5TN-CorQ_Pl1-BbhhBfNZ.js → chunk-MOJQB5TN-CorQ_Pl1-B6aPCIRx.js} +1 -1
  17. package/dist/assets/{chunk-OGEWGWER-BVhfs7WG-g8-Yk46a.js → chunk-OGEWGWER-BVhfs7WG-EW6pyYMO.js} +1 -1
  18. package/dist/assets/{chunk-PUDLZKDR-CJo7KQJ3-D54XyASB.js → chunk-PUDLZKDR-CJo7KQJ3-CbSz_p9T.js} +1 -1
  19. package/dist/assets/{chunk-Q4XR5HBZ-DLkq8ZGO-Cp9BjlFR.js → chunk-Q4XR5HBZ-DLkq8ZGO-DhoHECRZ.js} +1 -1
  20. package/dist/assets/{chunk-V7JOEXUC-DqefuUOb-hfRs7DgI.js → chunk-V7JOEXUC-DqefuUOb-BJn2u7zt.js} +1 -1
  21. package/dist/assets/{chunk-VAUOI2AC-BKx35BBi-_cGUYYkB.js → chunk-VAUOI2AC-BKx35BBi-PH-ektc5.js} +1 -1
  22. package/dist/assets/{chunk-VR4S4FIN-DpJgr4Ur-BLwcW-oS.js → chunk-VR4S4FIN-DpJgr4Ur-l31z4WUG.js} +1 -1
  23. package/dist/assets/{chunk-WYO6CB5R-nS6zX9ct-BCV_YuAf.js → chunk-WYO6CB5R-nS6zX9ct-CAnmmJt5.js} +1 -1
  24. package/dist/assets/{chunk-ZGVPDNZ5-DNtiHxpJ-BZyncxN5.js → chunk-ZGVPDNZ5-DNtiHxpJ-DsyJBNol.js} +1 -1
  25. package/dist/assets/classDiagram-OUVF2IWQ-C6h0nbT3-CyaTsULY.js +1 -0
  26. package/dist/assets/classDiagram-v2-EOCWNBFH-CzsXJ_wA-CyaTsULY.js +1 -0
  27. package/dist/assets/cynefin-VYW2F7L2-DvSvuXnG-SjQYao19.js +1 -0
  28. package/dist/assets/{cynefinDiagram-TSTJHNR4-969y1qZK-R4IF-GDG.js → cynefinDiagram-TSTJHNR4-969y1qZK-Ba8xQKHq.js} +1 -1
  29. package/dist/assets/{dagre-VKFMJZFB-CZfgAZFk-B3BU2W9n.js → dagre-VKFMJZFB-CZfgAZFk-C2kwTXuN.js} +1 -1
  30. package/dist/assets/{diagram-FQU43EPY-CSdnleGM-DlES3bH_.js → diagram-FQU43EPY-CSdnleGM-DEvFHyvk.js} +1 -1
  31. package/dist/assets/{diagram-G47NLZAW-DKYe-Mwx-TA1uLGcO.js → diagram-G47NLZAW-DKYe-Mwx-hNpukTwk.js} +1 -1
  32. package/dist/assets/{diagram-NH7WQ7WH-DMasKpwa-BoNLwqJM.js → diagram-NH7WQ7WH-DMasKpwa-UJ1wGH-u.js} +1 -1
  33. package/dist/assets/{diagram-OA4YK3LP-CSyc0BDR-B7qjD4oD.js → diagram-OA4YK3LP-CSyc0BDR-CeO77RnN.js} +1 -1
  34. package/dist/assets/{diagram-WEI45ONY-CcJW2fNK-CJr_YFwh.js → diagram-WEI45ONY-CcJW2fNK-CxY1R7kH.js} +1 -1
  35. package/dist/assets/{dist-Bs26L6Uo.js → dist-BKtM-GWF.js} +1 -1
  36. package/dist/assets/{dist-Ck2bcp79.js → dist-BdYaXgXG.js} +1 -1
  37. package/dist/assets/{dist-hk584lKq.js → dist-ChBeZLAa.js} +1 -1
  38. package/dist/assets/{dist-BVmZUxag.js → dist-DX20euPk.js} +1 -1
  39. package/dist/assets/{ebnfDiagram-CCIWWBDH-CeBUH2N0-CJvdvEoE.js → ebnfDiagram-CCIWWBDH-CeBUH2N0-B8Ot5tRC.js} +1 -1
  40. package/dist/assets/{erDiagram-Q63AITRT-1OOp34oV-D7zchmQZ.js → erDiagram-Q63AITRT-1OOp34oV-DFI4nhxU.js} +1 -1
  41. package/dist/assets/eventmodeling-45OFAUF4-jdctDg0T-CMpOQoiO.js +1 -0
  42. package/dist/assets/flowDiagram-23GEKE2U-DK0InIny-DthXqLHq.js +1 -0
  43. package/dist/assets/{ganttDiagram-NO4QXBWP-DQT88dUZ-rzJQMynv.js → ganttDiagram-NO4QXBWP-DQT88dUZ-B5zNKOB1.js} +1 -1
  44. package/dist/assets/gitGraph-TEB2WS4Q-C4cKwl5j-D8XRIh9_.js +1 -0
  45. package/dist/assets/{gitGraphDiagram-IHSO6WYX-CeZGS4qi-DJXHtX8p.js → gitGraphDiagram-IHSO6WYX-CeZGS4qi-9kWcJiy5.js} +1 -1
  46. package/dist/assets/index-B_-PsVVy.css +1 -0
  47. package/dist/assets/{index-D8Ue8uUi.js → index-Bkm-GRXQ.js} +207 -205
  48. package/dist/assets/info-DKCQHKI2-DPUCBYWS-Dgl8z2YI.js +1 -0
  49. package/dist/assets/{infoDiagram-FWYZ7A6U-BDt8lBTy-F6uWaK6Z.js → infoDiagram-FWYZ7A6U-BDt8lBTy-B9HV8DZf.js} +1 -1
  50. package/dist/assets/{ishikawaDiagram-FXEZZL3T-DOHYs_AA-BaQGVSMu.js → ishikawaDiagram-FXEZZL3T-DOHYs_AA-hICQwkcp.js} +1 -1
  51. package/dist/assets/{journeyDiagram-5HDEW3XC-B33IW9yy-BDOLFh7j.js → journeyDiagram-5HDEW3XC-B33IW9yy-Br9CocBf.js} +1 -1
  52. package/dist/assets/{kanban-definition-HUTT4EX6-Bkdm46eX-JRi19r7s.js → kanban-definition-HUTT4EX6-Bkdm46eX-9_4NUpX3.js} +1 -1
  53. package/dist/assets/{lib-Cew7_Jjt.js → lib-V77GWKLD.js} +1 -1
  54. package/dist/assets/{line-Dy_Qlcgo-BGhFl6cn.js → line-Dy_Qlcgo-Chy2nnIo.js} +1 -1
  55. package/dist/assets/{marp-CNcv4E0w.js → marp-ZVPeq8bz.js} +2 -2
  56. package/dist/assets/{mermaid-parser.core-C1baW7NG-CX-WYPvl.js → mermaid-parser.core-C1baW7NG-97p7iW8L.js} +2 -2
  57. package/dist/assets/{mermaid.core-C09q4TmN-BWcj-SjJ.js → mermaid.core-C09q4TmN-E7LKPd_K.js} +3 -3
  58. package/dist/assets/{mindmap-definition-LN4V7U3C-bfYIhPQ0-Doeeu3c_.js → mindmap-definition-LN4V7U3C-bfYIhPQ0-9_f96K7J.js} +1 -1
  59. package/dist/assets/packet-7NZHBO7P-CC7His0F-ChUkjJ2v.js +1 -0
  60. package/dist/assets/{pegDiagram-2B236MQR-CZQOKUMC-BL664l6e.js → pegDiagram-2B236MQR-CZQOKUMC-CV3j4b6I.js} +1 -1
  61. package/dist/assets/pie-RZYD4A2V-CCrcq2sL-DoRd47_k.js +1 -0
  62. package/dist/assets/{pieDiagram-ENE6RG2P-DiVKPdHE-D2F0muw8.js → pieDiagram-ENE6RG2P-DiVKPdHE-BusPVhBc.js} +1 -1
  63. package/dist/assets/{quadrantDiagram-ABIIQ3AL-CbPY3kXI-BuluyAhk.js → quadrantDiagram-ABIIQ3AL-CbPY3kXI-qi-H1Uah.js} +1 -1
  64. package/dist/assets/radar-I7S5WNFK-C5TUrpHf-DSS-cYR3.js +1 -0
  65. package/dist/assets/railroad-3IZDKUUU-CGuuFEd8-i1zPFip9.js +1 -0
  66. package/dist/assets/railroad-abnf-AHOZXSZD-DuoCSFZY-DAsE3eG6.js +1 -0
  67. package/dist/assets/railroad-ebnf-EBAXGLYW-ig-DG9e_-U3QPAcY6.js +1 -0
  68. package/dist/assets/railroad-peg-LSFZ7HO6-BkBgpyvu-BMmryfCt.js +1 -0
  69. package/dist/assets/{railroadDiagram-RFXS5EU6-CFRaQzr0-Bz5m6f6w.js → railroadDiagram-RFXS5EU6-CFRaQzr0-Paux3cIl.js} +1 -1
  70. package/dist/assets/{requirementDiagram-TGXJPOKE-BiIDduje-DhmVPO1X.js → requirementDiagram-TGXJPOKE-BiIDduje-CPXZW08e.js} +1 -1
  71. package/dist/assets/{sankeyDiagram-HTMAVEWB-DcK87A5Y-DrXbGSsa.js → sankeyDiagram-HTMAVEWB-DcK87A5Y-DReuR77R.js} +1 -1
  72. package/dist/assets/{sequenceDiagram-DBY2YBRQ-DgEQYcvc-NTL4MjQg.js → sequenceDiagram-DBY2YBRQ-DgEQYcvc-P4ahvDA0.js} +1 -1
  73. package/dist/assets/{stateDiagram-2N3HPSRC-Bg7EXtW2-o5YFIh15.js → stateDiagram-2N3HPSRC-Bg7EXtW2-C77IwJS7.js} +1 -1
  74. package/dist/assets/stateDiagram-v2-6OUMAXLB-BjhArXP_-DqS_2xeX.js +1 -0
  75. package/dist/assets/{swimlanes-5IMT3BWC-CKORDKr0-4I1aelc5.js → swimlanes-5IMT3BWC-CKORDKr0-svHVcqcf.js} +1 -1
  76. package/dist/assets/swimlanesDiagram-G3AALYLV-CyvIfl1o-BBoZIdC4.js +8 -0
  77. package/dist/assets/{timeline-definition-FHXFAJF6-BM3Iky2r-ByvmDJln.js → timeline-definition-FHXFAJF6-BM3Iky2r-Jbf5l8fv.js} +1 -1
  78. package/dist/assets/treeView-QDETBFTQ-CqfT0I1z-BJ4N9lZ5.js +1 -0
  79. package/dist/assets/treemap-6X3UGDF4-CiJkiGWo-B37dHl0C.js +1 -0
  80. package/dist/assets/{vennDiagram-L72KCM5P-VNmAhEFP-B929kBwl.js → vennDiagram-L72KCM5P-VNmAhEFP-DaLx-MAk.js} +1 -1
  81. package/dist/assets/wardley-OPB4EBWU-D1tuVHAV-BWBQj3t6.js +1 -0
  82. package/dist/assets/{wardleyDiagram-EHGQE667-BkHQpyFm-DwbsrtZu.js → wardleyDiagram-EHGQE667-BkHQpyFm-BxpzTxtt.js} +1 -1
  83. package/dist/assets/{xychartDiagram-FW5EYKEG-Yz-8aLqK-rmfx08e3.js → xychartDiagram-FW5EYKEG-Yz-8aLqK-BWtiSpVF.js} +1 -1
  84. package/dist/index.html +2 -2
  85. package/package.json +11 -11
  86. package/server/agents/codex-session.ts +50 -24
  87. package/server/backends/remoteHost/dirIcons.ts +163 -0
  88. package/server/backends/remoteHost/getFeed.spec.ts +1 -1
  89. package/server/backends/remoteHost/handlers/deps.ts +6 -3
  90. package/server/backends/remoteHost/handlers/terminalSession.ts +3 -1
  91. package/server/backends/remoteHost/handlers.spec.ts +1 -1
  92. package/server/backends/remoteHost/terminalScreen.ts +11 -0
  93. package/server/index.ts +16 -1
  94. package/server/infra/jsonl-file.ts +26 -0
  95. package/server/skills/mulmoterminal-dirs/SKILL.md +4 -3
  96. package/dist/assets/architecture-TIHT7OUA-Cqhmai3f-C07fcF9Q.js +0 -1
  97. package/dist/assets/channel-OqG5cGJi-BGDppPvY.js +0 -1
  98. package/dist/assets/classDiagram-OUVF2IWQ-C6h0nbT3-BDmsSI5o.js +0 -1
  99. package/dist/assets/classDiagram-v2-EOCWNBFH-CzsXJ_wA-BDmsSI5o.js +0 -1
  100. package/dist/assets/cynefin-VYW2F7L2-DvSvuXnG-DUAQ7cEo.js +0 -1
  101. package/dist/assets/eventmodeling-45OFAUF4-jdctDg0T-LbMUWt0K.js +0 -1
  102. package/dist/assets/flowDiagram-23GEKE2U-DK0InIny-CgFlW5J-.js +0 -1
  103. package/dist/assets/gitGraph-TEB2WS4Q-C4cKwl5j-BKASBsfj.js +0 -1
  104. package/dist/assets/index-Beuki558.css +0 -1
  105. package/dist/assets/info-DKCQHKI2-DPUCBYWS-B_uAl6tM.js +0 -1
  106. package/dist/assets/packet-7NZHBO7P-CC7His0F-C-GhzDeh.js +0 -1
  107. package/dist/assets/pie-RZYD4A2V-CCrcq2sL-DH3JEn97.js +0 -1
  108. package/dist/assets/radar-I7S5WNFK-C5TUrpHf-CKlKMnx4.js +0 -1
  109. package/dist/assets/railroad-3IZDKUUU-CGuuFEd8-9xlZj7yu.js +0 -1
  110. package/dist/assets/railroad-abnf-AHOZXSZD-DuoCSFZY-DwYHEnpr.js +0 -1
  111. package/dist/assets/railroad-ebnf-EBAXGLYW-ig-DG9e_-DDuohTo0.js +0 -1
  112. package/dist/assets/railroad-peg-LSFZ7HO6-BkBgpyvu-CIg-L0qV.js +0 -1
  113. package/dist/assets/stateDiagram-v2-6OUMAXLB-BjhArXP_-BBigPgnO.js +0 -1
  114. package/dist/assets/swimlanesDiagram-G3AALYLV-CyvIfl1o-C-cNxszL.js +0 -8
  115. package/dist/assets/treeView-QDETBFTQ-CqfT0I1z-DYp5xd4_.js +0 -1
  116. package/dist/assets/treemap-6X3UGDF4-CiJkiGWo-DRarugfQ.js +0 -1
  117. package/dist/assets/wardley-OPB4EBWU-D1tuVHAV-BFJCJrkY.js +0 -1
package/README.md CHANGED
@@ -572,7 +572,7 @@ The Settings modal (the gear button) persists per-user UI choices to `~/.mulmote
572
572
 
573
573
  ![The Settings modal — theme, notification sound, PR repos, launch commands, and MCP servers](https://raw.githubusercontent.com/receptron/mulmoterminal/main/docs/guide/images/settings.png)
574
574
 
575
- *Open it from the gear button in the toolbar. Under the title, a **Version** row shows what is running: the version from the shipped `package.json`, plus a `commit <sha>` chip on a git checkout — there the version is only whatever was last released, so the commit is what identifies the build. When something newer exists, the row is followed by the header badge's update notice, command included. Pick a **theme**, set the **terminal font size**, **font** and **scroll speed**, set a custom **attention sound**, list the repos the cross-repo **PRs & Issues** view should aggregate, add **launch commands** for grid cells, register your own **MCP servers**, and turn on the switches for what this app writes on your behalf — **issue work comments**, the **PR clone footer**, the **closing summary**, the **decision digest**, the **dev worklog** — no need to hand-edit the config file. Four settings stay with their skill because a form would be the wrong tool for them (`keymap`, `themes`, `providers`, `buttons`/`chips`); Settings shows what each is doing now and launches that skill. Note that **theme, font size and scroll speed are stored per browser** (they're display preferences, so a phone and a desktop keep their own); the rest live in `~/.mulmoterminal/config.json` and are shared by every client.*
575
+ *Open it from the gear button in the toolbar. Under the title, a **Version** row shows what is running: the version from the shipped `package.json`, plus a `commit <sha>` chip on a git checkout — there the version is only whatever was last released, so the commit is what identifies the build. When something newer exists, the row is followed by the header badge's update notice, command included. Pick a **theme**, set the **terminal font size**, **font** and **scroll speed** (and whether sending **returns to the latest output**), set a custom **attention sound**, list the repos the cross-repo **PRs & Issues** view should aggregate, add **launch commands** for grid cells, register your own **MCP servers**, and turn on the switches for what this app writes on your behalf — **issue work comments**, the **PR clone footer**, the **closing summary**, the **decision digest**, the **dev worklog** — no need to hand-edit the config file. Four settings stay with their skill because a form would be the wrong tool for them (`keymap`, `themes`, `providers`, `buttons`/`chips`); Settings shows what each is doing now and launches that skill. Note that **theme, font size, scroll speed and the return-to-latest switch are stored per browser** (they're display preferences, so a phone and a desktop keep their own); the rest live in `~/.mulmoterminal/config.json` and are shared by every client.*
576
576
 
577
577
  | Field | Meaning |
578
578
  | ------------ | ------- |
@@ -775,7 +775,7 @@ Settings → Directory settings names both files and lists which keys the local
775
775
  | Field | Meaning |
776
776
  | ------------ | ------- |
777
777
  | `name` | Label shown as a badge in the terminal/cell header. |
778
- | `icon` | An **image** marking this directory — shown in the cell header, the cockpit roster, the filmstrip thumbnails and the launcher's directory chips. Either a path **relative to this directory** (an absolute path, or a `../` that escapes it, is rejected), an `http(s)://` URL, or a `data:image/…` URI. PNG / JPEG / **GIF (animated plays)** / WebP / AVIF / SVG / ICO / BMP. Not to be confused with a header **button's** `icon`, which is a Material Symbols name. **Omit it and the repository's own favicon is used** (`public/favicon.svg`, `apple-touch-icon.png`, a web manifest — see `autoDirIcon`); `false` means no icon here and stops that search. |
778
+ | `icon` | An **image** marking this directory — shown in the cell header, the cockpit roster, the filmstrip thumbnails, the launcher's directory chips, and the phone's terminal list and terminal screen. Either a path **relative to this directory** (an absolute path, or a `../` that escapes it, is rejected), an `http(s)://` URL, or a `data:image/…` URI. PNG / JPEG / **GIF (animated plays)** / WebP / AVIF / SVG / ICO / BMP. Not to be confused with a header **button's** `icon`, which is a Material Symbols name. **Omit it and the repository's own favicon is used** (`public/favicon.svg`, `apple-touch-icon.png`, a web manifest — see `autoDirIcon`); `false` means no icon here and stops that search. |
779
779
  | `badgeColor` | Badge background color (`#rrggbb`); text auto-contrasts. |
780
780
  | `headerColor` | Header **background** color (`#rrggbb`) — the grid cell's header row and the terminal's own header row (grid row 2). While a terminal is working/blocked the status tint still shows; the custom color applies when idle. |
781
781
  | `headerTextColor` | Header **text** color (`#rrggbb`) — the dir path, title, and prompt. |
@@ -82,6 +82,17 @@ export interface EnterKeyEvent {
82
82
  // bare Enter falls through to xterm's native \r (submit) and Option+Enter to
83
83
  // macOptionIsMeta's ESC+CR (newline). Leaving the bare-Enter path native keeps IME
84
84
  // candidate-confirm and the hottest key untouched in the default configuration.
85
+ // Whether an Enter-family keydown SUBMITS, as opposed to inserting a newline or belonging to an
86
+ // IME. Mode-INDEPENDENT on purpose: the two modes disagree about which bytes carry each meaning,
87
+ // never about the meaning itself (see the note on enterKeyOverride below) — a bare Enter submits
88
+ // in both, Shift/Alt+Enter make a newline in both. Ctrl/Meta+Enter is neither, so it answers no.
89
+ //
90
+ // Separate from `enterKeyOverride` because the caller that needs it is not the one deciding bytes:
91
+ // in "cr" mode a bare Enter is handled natively by xterm and the override returns null, so a
92
+ // caller reading that as "not a submit" would miss the most common submit there is (#1546).
93
+ export const enterSubmits = (e: EnterKeyEvent): boolean =>
94
+ e.type === "keydown" && e.key === "Enter" && !e.isComposing && !e.shiftKey && !e.altKey && !e.ctrlKey && !e.metaKey;
95
+
85
96
  export const enterKeyOverride = (mode: TerminalSubmitMode, e: EnterKeyEvent): string | null => {
86
97
  if (e.type !== "keydown" || e.key !== "Enter") return null;
87
98
  // IME composition (Japanese and other CJK input): this Enter confirms a candidate — it
@@ -1 +1 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-Bdt8pFDJ-DsF7k-Jl.js";import{f as t}from"./src-CvsWqFln-Tc7ZSrRz.js";import{_ as n,g as r}from"./mermaid-parser.core-C1baW7NG-CX-WYPvl.js";import"./chunk-WYO6CB5R-nS6zX9ct-BCV_YuAf.js";import"./chunk-VAUOI2AC-BKx35BBi-_cGUYYkB.js";import{n as i,r as a,t as o}from"./chunk-MOJQB5TN-CorQ_Pl1-BbhhBfNZ.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-CvsWqFln-Tc7ZSrRz.js";import{_ as n,g as r}from"./mermaid-parser.core-C1baW7NG-97p7iW8L.js";import"./chunk-WYO6CB5R-nS6zX9ct-CAnmmJt5.js";import"./chunk-VAUOI2AC-BKx35BBi-PH-ektc5.js";import{n as i,r as a,t as o}from"./chunk-MOJQB5TN-CorQ_Pl1-B6aPCIRx.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-C1baW7NG-97p7iW8L.js";export{e as createArchitectureServices};