mulmoterminal 1.3.1 → 1.4.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.
- package/README.md +30 -0
- package/dist/assets/{abnfDiagram-VRR7QNED-6nNByj6v-DxXGZ8ah.js → abnfDiagram-VRR7QNED-6nNByj6v-Ca_1xL9E.js} +1 -1
- package/dist/assets/architecture-TIHT7OUA-CYMWc3UT-ClOiEDNl.js +1 -0
- package/dist/assets/{architectureDiagram-ZJ3FMSHR-Bgnyaj_i-DVdTZaYg.js → architectureDiagram-ZJ3FMSHR-Bgnyaj_i-DeqNwmGo.js} +1 -1
- package/dist/assets/{blockDiagram-677ZJIJ3-DQ35o5E4-BUjwzYiL.js → blockDiagram-677ZJIJ3-DQ35o5E4-BMHxAWeR.js} +1 -1
- package/dist/assets/{c4Diagram-LMCZKHZV-ClWZeiWo-DVufWqeb.js → c4Diagram-LMCZKHZV-ClWZeiWo-SZJrYJpa.js} +1 -1
- package/dist/assets/channel-Di5rtkx0-GApNIfgs.js +1 -0
- package/dist/assets/{chunk-32BRIVSS-CCt9wtYd-BZ0yWACh.js → chunk-32BRIVSS-CCt9wtYd-Pb9wd8dr.js} +1 -1
- package/dist/assets/{chunk-52WLFC77-FbBbR4uI-CXT-XvoC.js → chunk-52WLFC77-FbBbR4uI-BRpr0cAc.js} +1 -1
- package/dist/assets/{chunk-C7G6YPKG-C87hlS9c-CnkZ8N1c.js → chunk-C7G6YPKG-C87hlS9c-Bp5UQi3A.js} +1 -1
- package/dist/assets/{chunk-EX3LRPZG-BqGqMXLN-BB3X7psT.js → chunk-EX3LRPZG-BqGqMXLN-CNBYB1hW.js} +1 -1
- package/dist/assets/{chunk-FWX5IMBZ-BkbSAAuW-D_ITpYMt.js → chunk-FWX5IMBZ-BkbSAAuW-C8pwvYr9.js} +2 -2
- package/dist/assets/{chunk-HOUHSVGY-Cxu0eDlh-DtH0CcTR.js → chunk-HOUHSVGY-Cxu0eDlh-qXR3o3_Q.js} +1 -1
- package/dist/assets/{chunk-ICXQ74PX-hiraF_Xj-CAxRue72.js → chunk-ICXQ74PX-hiraF_Xj-D6RChm8S.js} +1 -1
- package/dist/assets/{chunk-MOJQB5TN-CqxshQHA-QQH5sWOZ.js → chunk-MOJQB5TN-CqxshQHA-DzpdT-_-.js} +1 -1
- package/dist/assets/{chunk-OGEWGWER-CjCr7ceX-Blfojmss.js → chunk-OGEWGWER-CjCr7ceX-CHwPg6wN.js} +1 -1
- package/dist/assets/{chunk-PUDLZKDR-Dx6M-vz1-5dXqfAyQ.js → chunk-PUDLZKDR-Dx6M-vz1-1LjvELJl.js} +1 -1
- package/dist/assets/{chunk-Q4XR5HBZ-CZd-9lTB-Dgggyq-Y.js → chunk-Q4XR5HBZ-CZd-9lTB-H2jDDOca.js} +1 -1
- package/dist/assets/{chunk-V7JOEXUC-rI0xlC_O-DrrpCTNA.js → chunk-V7JOEXUC-rI0xlC_O-DsYxdI8K.js} +1 -1
- package/dist/assets/{chunk-VAUOI2AC-DrcykVNK-BCZszPgC.js → chunk-VAUOI2AC-DrcykVNK-BG02s6nm.js} +1 -1
- package/dist/assets/{chunk-VR4S4FIN-O6iF8Yvf-o61xwbcr.js → chunk-VR4S4FIN-O6iF8Yvf-BkxcJW6l.js} +1 -1
- package/dist/assets/{chunk-WYO6CB5R-B83L_z6I-Be0VbGoJ.js → chunk-WYO6CB5R-B83L_z6I-BLR3Im7t.js} +1 -1
- package/dist/assets/{chunk-ZGVPDNZ5-BpFv9JSP-BICQ9aJs.js → chunk-ZGVPDNZ5-BpFv9JSP-DreP7ALc.js} +1 -1
- package/dist/assets/classDiagram-OUVF2IWQ-BgAZMSbT-Xtn_iE77.js +1 -0
- package/dist/assets/classDiagram-v2-EOCWNBFH-DxHTyui1-Xtn_iE77.js +1 -0
- package/dist/assets/cynefin-VYW2F7L2-DqA3n9nY-Dn_RgKdZ.js +1 -0
- package/dist/assets/{cynefinDiagram-TSTJHNR4-x0-0sQ15-DFvWQYHV.js → cynefinDiagram-TSTJHNR4-x0-0sQ15-CG2HDCNn.js} +1 -1
- package/dist/assets/{dagre-VKFMJZFB-CQdfl-bx-C6RuILUX.js → dagre-VKFMJZFB-CQdfl-bx-C_u-VAtp.js} +1 -1
- package/dist/assets/{diagram-FQU43EPY-BOSB6VUb-37ofKWUh.js → diagram-FQU43EPY-BOSB6VUb-Co4MItV_.js} +1 -1
- package/dist/assets/{diagram-G47NLZAW-DLXrcXsN-BtcZ-NrA.js → diagram-G47NLZAW-DLXrcXsN-CpQs0brV.js} +1 -1
- package/dist/assets/{diagram-NH7WQ7WH-BMQp1rkF-Cu-opGPx.js → diagram-NH7WQ7WH-BMQp1rkF-d3plBnN8.js} +1 -1
- package/dist/assets/{diagram-OA4YK3LP-D1wQ0vUj-BOSp2edG.js → diagram-OA4YK3LP-D1wQ0vUj-CrBfGx8L.js} +1 -1
- package/dist/assets/{diagram-WEI45ONY-RR0DpF8R-o2o8fkEM.js → diagram-WEI45ONY-RR0DpF8R-CS-M3Ra0.js} +1 -1
- package/dist/assets/{ebnfDiagram-CCIWWBDH-M123uVJ8-BLZrCpJZ.js → ebnfDiagram-CCIWWBDH-M123uVJ8-OUbCegYV.js} +1 -1
- package/dist/assets/{erDiagram-Q63AITRT-BWx_-PXG-CdDm8yUq.js → erDiagram-Q63AITRT-BWx_-PXG-CEyrlpra.js} +1 -1
- package/dist/assets/eventmodeling-45OFAUF4-_BVSjAXf-fhNS4V9y.js +1 -0
- package/dist/assets/flowDiagram-23GEKE2U-BeOc_anm-eY7_48Lq.js +1 -0
- package/dist/assets/{ganttDiagram-NO4QXBWP-BOoJ1eTw-Bz7l9tCX.js → ganttDiagram-NO4QXBWP-BOoJ1eTw-BjxqJeU6.js} +1 -1
- package/dist/assets/gitGraph-TEB2WS4Q-CH12KLTN-9yyiQB6a.js +1 -0
- package/dist/assets/{gitGraphDiagram-IHSO6WYX-B2CJhk_G-C1K6Dh6P.js → gitGraphDiagram-IHSO6WYX-B2CJhk_G-CsW7_CEO.js} +1 -1
- package/dist/assets/{index-Cn-IsW4P.css → index-9sOccSQD.css} +1 -1
- package/dist/assets/{index-BkezQA_M.js → index-D4zpPW-X.js} +204 -204
- package/dist/assets/info-DKCQHKI2-Cbw3mbiK-BaoU6qkE.js +1 -0
- package/dist/assets/{infoDiagram-FWYZ7A6U-Mp1X3pBP-CWP8dYG3.js → infoDiagram-FWYZ7A6U-Mp1X3pBP-B1W9eCMy.js} +1 -1
- package/dist/assets/{ishikawaDiagram-FXEZZL3T-BNG7tkJu-sFnH9pBC.js → ishikawaDiagram-FXEZZL3T-BNG7tkJu-Q8Yh-Oes.js} +1 -1
- package/dist/assets/{journeyDiagram-5HDEW3XC-Dbp_hY9X-BmrCa7oX.js → journeyDiagram-5HDEW3XC-Dbp_hY9X-maN4pjfe.js} +1 -1
- package/dist/assets/{kanban-definition-HUTT4EX6-DSTc5u3q-jmvUmh_Z.js → kanban-definition-HUTT4EX6-DSTc5u3q-DSlStVjd.js} +1 -1
- package/dist/assets/{lib-CnI5_dB7.js → lib-BgqM-YBP.js} +1 -1
- package/dist/assets/{line-B1wBwzrY-D2DIxhfm.js → line-B1wBwzrY-DiyABYDp.js} +1 -1
- package/dist/assets/{marp-BD3FrYNL.js → marp-BjuRL9gF.js} +1 -1
- package/dist/assets/{mermaid-parser.core-DC7NPJ_M-E1qyqaHf.js → mermaid-parser.core-DC7NPJ_M-C2yu1mqW.js} +2 -2
- package/dist/assets/{mermaid.core-DZM3Ha-E-CIDG7HYi.js → mermaid.core-DZM3Ha-E-BmNFXjNa.js} +3 -3
- package/dist/assets/{mindmap-definition-LN4V7U3C-DYtgcMsY-_d3mZmSv.js → mindmap-definition-LN4V7U3C-DYtgcMsY-Hz0ORILX.js} +1 -1
- package/dist/assets/packet-7NZHBO7P-lwb58iYx-C643WJOR.js +1 -0
- package/dist/assets/{pegDiagram-2B236MQR-C43eIpKM-qN74Nqg3.js → pegDiagram-2B236MQR-C43eIpKM-Pqw-eDjm.js} +1 -1
- package/dist/assets/pie-RZYD4A2V-B1UWb4Gu-C6kv_lLQ.js +1 -0
- package/dist/assets/{pieDiagram-ENE6RG2P-BkTqgJyR-yUPUMjfY.js → pieDiagram-ENE6RG2P-BkTqgJyR-DDYDtXLw.js} +1 -1
- package/dist/assets/{quadrantDiagram-ABIIQ3AL-Bm1Zjm45-DJGu6JX_.js → quadrantDiagram-ABIIQ3AL-Bm1Zjm45-BWk3t4WO.js} +1 -1
- package/dist/assets/radar-I7S5WNFK-7CKcb_l--D2gGTcyW.js +1 -0
- package/dist/assets/railroad-3IZDKUUU-gCySKdnW-BrODqkjM.js +1 -0
- package/dist/assets/railroad-abnf-AHOZXSZD-BophH4r--CiadAS_w.js +1 -0
- package/dist/assets/railroad-ebnf-EBAXGLYW-AZNjl_Zu-B1kY_BCV.js +1 -0
- package/dist/assets/railroad-peg-LSFZ7HO6-BSiEEyeb-fJ5cY9QP.js +1 -0
- package/dist/assets/{railroadDiagram-RFXS5EU6-BkfbdeAs-DeS-X5M4.js → railroadDiagram-RFXS5EU6-BkfbdeAs-B6bHQo3P.js} +1 -1
- package/dist/assets/{requirementDiagram-TGXJPOKE-CrGTTjYg-Z0jwe_3t.js → requirementDiagram-TGXJPOKE-CrGTTjYg-CNJlZb8l.js} +1 -1
- package/dist/assets/{sankeyDiagram-HTMAVEWB-rWXPf03Z-1opBvycI.js → sankeyDiagram-HTMAVEWB-rWXPf03Z-D0W5vOfI.js} +1 -1
- package/dist/assets/{sequenceDiagram-DBY2YBRQ-nkJYWO2m-CmwooUIR.js → sequenceDiagram-DBY2YBRQ-nkJYWO2m-CMxA7B3A.js} +1 -1
- package/dist/assets/{stateDiagram-2N3HPSRC-T4-clK8b-ChdecYpO.js → stateDiagram-2N3HPSRC-T4-clK8b-B9saurhU.js} +1 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-DIp7nhRd-C4fOci9j.js +1 -0
- package/dist/assets/{swimlanes-5IMT3BWC-HmQNEntu-Dg13ofec.js → swimlanes-5IMT3BWC-HmQNEntu-BODdb8qy.js} +1 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-BeoZhwg7-BQN1H2ff.js +8 -0
- package/dist/assets/{timeline-definition-FHXFAJF6-CNc9jSTP-Dl_ipjIx.js → timeline-definition-FHXFAJF6-CNc9jSTP-CJf7rTMs.js} +1 -1
- package/dist/assets/treeView-QDETBFTQ-nIQcG1h9-BUWbtLMe.js +1 -0
- package/dist/assets/treemap-6X3UGDF4-BnsvC8yL-D-ymqmfg.js +1 -0
- package/dist/assets/{vennDiagram-L72KCM5P-Dr3pTJ_0-CEbSFm_A.js → vennDiagram-L72KCM5P-Dr3pTJ_0-DyKxIhWC.js} +1 -1
- package/dist/assets/wardley-OPB4EBWU-8Odxkx6V-DgDcbSyj.js +1 -0
- package/dist/assets/{wardleyDiagram-EHGQE667-DSFc7ZZa-D7OYqfqr.js → wardleyDiagram-EHGQE667-DSFc7ZZa-CelZHvd2.js} +1 -1
- package/dist/assets/{xychartDiagram-FW5EYKEG-BP0Nn4Pp-DZqTIa7u.js → xychartDiagram-FW5EYKEG-BP0Nn4Pp-BoBAD26H.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +5 -4
- package/server/backends/collections.ts +97 -14
- package/server/backends/remoteHost/handlers.ts +22 -0
- package/server/backends/remoteHost/index.ts +10 -1
- package/server/backends/remoteHost/terminalScreen.ts +70 -0
- package/server/backends/remoteView.ts +29 -19
- package/server/git/prPhase.ts +124 -0
- package/server/index.ts +89 -18
- package/server/infra/tmux.ts +10 -0
- package/server/session/headlessScreen.ts +37 -0
- package/server/session/terminal-replay.ts +65 -0
- package/server/session/transcript.ts +22 -0
- package/server/session/workPhase.ts +17 -0
- package/dist/assets/architecture-TIHT7OUA-CYMWc3UT-CGRTzfux.js +0 -1
- package/dist/assets/channel-Di5rtkx0-De0a789a.js +0 -1
- package/dist/assets/classDiagram-OUVF2IWQ-BgAZMSbT-DVJA3t5B.js +0 -1
- package/dist/assets/classDiagram-v2-EOCWNBFH-DxHTyui1-DVJA3t5B.js +0 -1
- package/dist/assets/cynefin-VYW2F7L2-DqA3n9nY-BxrBj-DI.js +0 -1
- package/dist/assets/eventmodeling-45OFAUF4-_BVSjAXf-BBMcTtjD.js +0 -1
- package/dist/assets/flowDiagram-23GEKE2U-BeOc_anm-CofbWT6z.js +0 -1
- package/dist/assets/gitGraph-TEB2WS4Q-CH12KLTN-CjuBbb3l.js +0 -1
- package/dist/assets/info-DKCQHKI2-Cbw3mbiK-CKUwdoGo.js +0 -1
- package/dist/assets/packet-7NZHBO7P-lwb58iYx-CR5nKx9s.js +0 -1
- package/dist/assets/pie-RZYD4A2V-B1UWb4Gu-DPXpPnSu.js +0 -1
- package/dist/assets/radar-I7S5WNFK-7CKcb_l--DwucQtaK.js +0 -1
- package/dist/assets/railroad-3IZDKUUU-gCySKdnW-TaRPWy67.js +0 -1
- package/dist/assets/railroad-abnf-AHOZXSZD-BophH4r--Du2Uw6Rv.js +0 -1
- package/dist/assets/railroad-ebnf-EBAXGLYW-AZNjl_Zu-BQzmOlUV.js +0 -1
- package/dist/assets/railroad-peg-LSFZ7HO6-BSiEEyeb-B_nc80Sy.js +0 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-DIp7nhRd-fAwVOT0y.js +0 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-BeoZhwg7-yHexCGwM.js +0 -8
- package/dist/assets/treeView-QDETBFTQ-nIQcG1h9-WfWXHBUK.js +0 -1
- package/dist/assets/treemap-6X3UGDF4-BnsvC8yL-Dms1rAHj.js +0 -1
- package/dist/assets/wardley-OPB4EBWU-8Odxkx6V-Dzf13uaZ.js +0 -1
package/README.md
CHANGED
|
@@ -12,6 +12,10 @@ ping to your phone when a task finishes. One `npx` command, no Electron, no conf
|
|
|
12
12
|
npx mulmoterminal # starts on http://localhost:34567 and opens your browser
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
+

|
|
16
|
+
|
|
17
|
+
*The grid is a **cockpit for parallel agents** — each cell is one agent (Claude or Codex). A cell's **border color signals its state** — working (blue), needs-you (amber — a permission or answer), idle — and an attention chime pulls you back to a stuck cell off-screen, so you can supervise many and only step in where you're called. (See the [Cost & token usage](#cost--token-usage) shot below for a single cell's live header.)*
|
|
18
|
+
|
|
15
19
|
## Why you'll want it
|
|
16
20
|
|
|
17
21
|
- **See every agent at once.** A grid of live sessions, each cell color-coded by state —
|
|
@@ -46,6 +50,10 @@ sidebar lists every session for the project and reflects, in real time, which ar
|
|
|
46
50
|
(the agent is thinking) and which **need attention** (waiting for input, or finished with
|
|
47
51
|
output you haven't seen) — driven by Claude/Codex activity hooks the server injects per spawn.
|
|
48
52
|
|
|
53
|
+

|
|
54
|
+
|
|
55
|
+
*Besides the grid there's a **single view** for focusing on one agent: the conversation/terminal on the left, and a **GUI panel** ("Canvas") on the right where the agent's tool calls render as documents, forms, charts, images, and HTML — not just printed text. Switch between the two with the chat / grid icons in the toolbar.*
|
|
56
|
+
|
|
49
57
|
**Inserting a file path** — like a native terminal, you can put a file's absolute path into
|
|
50
58
|
the prompt: **drag a file** onto the terminal (works where the browser exposes the path via
|
|
51
59
|
`file://` — Firefox/Safari), or click the **📎 file button** in the terminal header, which
|
|
@@ -344,6 +352,10 @@ CLAUDE_CWD=/Users/you/my-project
|
|
|
344
352
|
The Settings modal (⚙) persists per-user UI choices to `~/.mulmoterminal/config.json`
|
|
345
353
|
(read/written via `GET`/`POST /api/config`):
|
|
346
354
|
|
|
355
|
+

|
|
356
|
+
|
|
357
|
+
*Open it from the ⚙ button in the toolbar. Pick a **theme**, set a custom **attention sound**, list the repos the cross-repo **PRs & Issues** view should aggregate, add **launch commands** for grid cells, and register your own **MCP servers** — no need to hand-edit the config file.*
|
|
358
|
+
|
|
347
359
|
| Field | Meaning |
|
|
348
360
|
| ------------ | ------- |
|
|
349
361
|
| `cwdPresets` | Quick-pick directories offered when launching a terminal. |
|
|
@@ -434,6 +446,10 @@ malformed file is ignored.
|
|
|
434
446
|
}
|
|
435
447
|
```
|
|
436
448
|
|
|
449
|
+

|
|
450
|
+
|
|
451
|
+
*As cells pile up it gets hard to tell which project is which. Give each repo a **name badge** and its own colors in `.mulmoterminal.json` and they're unmistakable — `headerColor`/`badgeColor` tint the frame, while `colors` reaches all the way into the **terminal's own background and text**. (The example above dresses four repos in Mondrian / van Gogh / Picasso / Matisse palettes.)*
|
|
452
|
+
|
|
437
453
|
| Field | Meaning |
|
|
438
454
|
| ------------ | ------- |
|
|
439
455
|
| `name` | Label shown as a badge in the terminal/cell header. |
|
|
@@ -610,6 +626,10 @@ separate working tree that shares the repo's `.git`, so several agents can work
|
|
|
610
626
|
repo without colliding. Worktrees live under `~/.mulmoterminal/worktrees/` (override with
|
|
611
627
|
`MULMOTERMINAL_HOME`), and existing ones are listed for reuse.
|
|
612
628
|
|
|
629
|
+

|
|
630
|
+
|
|
631
|
+
*Every empty grid cell shows this launch form: toggle **Claude / Codex**, type a **working directory** (frequent ones autocomplete from your presets), or — in a git repo — name a task under **OR ISOLATE IN A WORKTREE** and hit **+ New worktree** to start the agent on its own isolated branch. **OR LAUNCH** starts a plain shell or any launch command instead.*
|
|
632
|
+
|
|
613
633
|
A worktree cell's header carries a **diff badge** (`+<commits> ●<dirty>`); click it for a
|
|
614
634
|
**Changes vs `<base>`** panel (file list + patch) with actions:
|
|
615
635
|
|
|
@@ -635,6 +655,10 @@ independently. Backed by `GET /api/prs` and `GET /api/issues`.
|
|
|
635
655
|
Each grid cell's header shows two badges for its session, refreshed when a turn finishes
|
|
636
656
|
(from `GET /api/session/:id`):
|
|
637
657
|
|
|
658
|
+

|
|
659
|
+
|
|
660
|
+
*Both badges, live on a real Claude session: **`Opus · ctx 5%`** (model family + how full its context window is) and **`⇡427k ⇣1.8k`** (cumulative input / output tokens for the session). They sit in the header's first row alongside the **status dot**, directory, and **git chip** (`⎇ main ●2`), with what the agent is doing to the right; the icon buttons and the **timeline** (🕘) of tool calls are on the second row.*
|
|
661
|
+
|
|
638
662
|
- **Context badge** — e.g. `Opus · ctx 35%`: the model family plus how full its context
|
|
639
663
|
window is (the *last* turn's input + cache tokens ÷ the model's window — **1M** for
|
|
640
664
|
current-gen Opus / Sonnet / Fable, **200k** otherwise; an unknown model shows the label
|
|
@@ -692,6 +716,12 @@ Favorited collections get their own toolbar buttons.
|
|
|
692
716
|
(pulsing blue), **blocked** (amber — needs a permission / answer), **done** (blue —
|
|
693
717
|
finished, output unreviewed), and **idle** — and the toolbar shows a tally across all
|
|
694
718
|
pages so you notice an off-screen cell that needs you.
|
|
719
|
+
- **Zoom & filmstrip** — a cell's **⤢** enlarges one agent while the rest shrink to
|
|
720
|
+
thumbnails in a bottom **filmstrip**; click a thumbnail to switch, **⤡** to return to the
|
|
721
|
+
grid — so you can flip between "see everything" and "focus on one" in a click.
|
|
722
|
+
|
|
723
|
+

|
|
724
|
+
|
|
695
725
|
- **Timeline** (🕘) — a read-only per-session activity timeline (tools run, newest first),
|
|
696
726
|
from `GET /api/transcript/timeline`.
|
|
697
727
|
- **Tools pane** — the available GUI tools plus a live tool-call history for the active
|
|
@@ -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-DC7NPJ_M-
|
|
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-DC7NPJ_M-C2yu1mqW.js";import"./chunk-WYO6CB5R-B83L_z6I-BLR3Im7t.js";import"./chunk-VAUOI2AC-DrcykVNK-BG02s6nm.js";import{n as i,r as a,t as o}from"./chunk-MOJQB5TN-CqxshQHA-DzpdT-_-.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-DC7NPJ_M-C2yu1mqW.js";export{e as createArchitectureServices};
|