mulmoterminal 0.9.0 → 0.9.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/README.md +32 -3
- package/dist/assets/{abnfDiagram-VRR7QNED-6nNByj6v-CcrZYOgs.js → abnfDiagram-VRR7QNED-6nNByj6v-DnZUtZE3.js} +1 -1
- package/dist/assets/architecture-TIHT7OUA-CYMWc3UT-BN5RgXX3.js +1 -0
- package/dist/assets/{architectureDiagram-ZJ3FMSHR-Bgnyaj_i-CUuVwmX4.js → architectureDiagram-ZJ3FMSHR-Bgnyaj_i-EZjYGuvi.js} +1 -1
- package/dist/assets/{blockDiagram-677ZJIJ3-DQ35o5E4-CvxU8aZe.js → blockDiagram-677ZJIJ3-DQ35o5E4-vpbNruHX.js} +1 -1
- package/dist/assets/{c4Diagram-LMCZKHZV-ClWZeiWo-D8f1kYY_.js → c4Diagram-LMCZKHZV-ClWZeiWo-Cog5Hl_r.js} +1 -1
- package/dist/assets/channel-Di5rtkx0-BA5r_-gi.js +1 -0
- package/dist/assets/{chunk-32BRIVSS-CCt9wtYd-Db_FZIf1.js → chunk-32BRIVSS-CCt9wtYd-CEiTeQ7J.js} +1 -1
- package/dist/assets/{chunk-52WLFC77-FbBbR4uI-7n2yHJ2K.js → chunk-52WLFC77-FbBbR4uI-CmugCE4h.js} +1 -1
- package/dist/assets/{chunk-C7G6YPKG-C87hlS9c-DpkxPQKG.js → chunk-C7G6YPKG-C87hlS9c-CtvU2fCF.js} +1 -1
- package/dist/assets/{chunk-EX3LRPZG-BqGqMXLN-BgqbD-Ak.js → chunk-EX3LRPZG-BqGqMXLN-C_OOtIBE.js} +1 -1
- package/dist/assets/{chunk-FWX5IMBZ-BkbSAAuW-BmYnGiYn.js → chunk-FWX5IMBZ-BkbSAAuW-R28aYggR.js} +2 -2
- package/dist/assets/{chunk-HOUHSVGY-Cxu0eDlh-TqsiFF7j.js → chunk-HOUHSVGY-Cxu0eDlh-BjSXe8X7.js} +1 -1
- package/dist/assets/{chunk-ICXQ74PX-hiraF_Xj-Cx0hIueU.js → chunk-ICXQ74PX-hiraF_Xj-CJDQKrcK.js} +1 -1
- package/dist/assets/{chunk-MOJQB5TN-CqxshQHA-pSbnAJ7U.js → chunk-MOJQB5TN-CqxshQHA-BOKLvtWS.js} +1 -1
- package/dist/assets/{chunk-OGEWGWER-CjCr7ceX-C2qBJ2Pg.js → chunk-OGEWGWER-CjCr7ceX-BzeB3har.js} +1 -1
- package/dist/assets/{chunk-PUDLZKDR-Dx6M-vz1-DvP2VeJc.js → chunk-PUDLZKDR-Dx6M-vz1-lzCqtXyf.js} +1 -1
- package/dist/assets/{chunk-Q4XR5HBZ-CZd-9lTB-B9gNYRb9.js → chunk-Q4XR5HBZ-CZd-9lTB-BNpWmgXE.js} +1 -1
- package/dist/assets/{chunk-V7JOEXUC-rI0xlC_O-W1oR2e7R.js → chunk-V7JOEXUC-rI0xlC_O-B9pTDj9u.js} +1 -1
- package/dist/assets/{chunk-VAUOI2AC-DrcykVNK-UQ8qJq-D.js → chunk-VAUOI2AC-DrcykVNK-CZQTkFkc.js} +1 -1
- package/dist/assets/{chunk-VR4S4FIN-O6iF8Yvf-BEZ-hkFq.js → chunk-VR4S4FIN-O6iF8Yvf-D4HuYSu1.js} +1 -1
- package/dist/assets/{chunk-WYO6CB5R-B83L_z6I-zjc6vart.js → chunk-WYO6CB5R-B83L_z6I-jyLEICM4.js} +1 -1
- package/dist/assets/{chunk-ZGVPDNZ5-BpFv9JSP-WgpTVFz9.js → chunk-ZGVPDNZ5-BpFv9JSP-KRpVzR1u.js} +1 -1
- package/dist/assets/classDiagram-OUVF2IWQ-BgAZMSbT-DWhW_ES9.js +1 -0
- package/dist/assets/classDiagram-v2-EOCWNBFH-DxHTyui1-DWhW_ES9.js +1 -0
- package/dist/assets/cynefin-VYW2F7L2-DqA3n9nY-nANzH9IV.js +1 -0
- package/dist/assets/{cynefinDiagram-TSTJHNR4-x0-0sQ15-D6l6qqRO.js → cynefinDiagram-TSTJHNR4-x0-0sQ15-DoPfg5jQ.js} +1 -1
- package/dist/assets/{dagre-VKFMJZFB-CQdfl-bx-BVKoii9B.js → dagre-VKFMJZFB-CQdfl-bx-D54ZCaVu.js} +1 -1
- package/dist/assets/{diagram-FQU43EPY-BOSB6VUb-OjDjlvVc.js → diagram-FQU43EPY-BOSB6VUb-CxiTFvd1.js} +1 -1
- package/dist/assets/{diagram-G47NLZAW-DLXrcXsN-TSzEtHdz.js → diagram-G47NLZAW-DLXrcXsN-VOfQzFEk.js} +1 -1
- package/dist/assets/{diagram-NH7WQ7WH-BMQp1rkF-6YpHLSkw.js → diagram-NH7WQ7WH-BMQp1rkF-BGSg0HaS.js} +1 -1
- package/dist/assets/{diagram-OA4YK3LP-D1wQ0vUj-D080UfcD.js → diagram-OA4YK3LP-D1wQ0vUj-B7GYlHCp.js} +1 -1
- package/dist/assets/{diagram-WEI45ONY-RR0DpF8R-DAhnbGro.js → diagram-WEI45ONY-RR0DpF8R-93NLnf0k.js} +1 -1
- package/dist/assets/{ebnfDiagram-CCIWWBDH-M123uVJ8-CgYjblvQ.js → ebnfDiagram-CCIWWBDH-M123uVJ8-CXl38Kef.js} +1 -1
- package/dist/assets/{erDiagram-Q63AITRT-BWx_-PXG-B-9YiTfM.js → erDiagram-Q63AITRT-BWx_-PXG-DqWtdM6O.js} +1 -1
- package/dist/assets/eventmodeling-45OFAUF4-_BVSjAXf-Br9PZCm1.js +1 -0
- package/dist/assets/flowDiagram-23GEKE2U-BeOc_anm-ClQvhiea.js +1 -0
- package/dist/assets/{ganttDiagram-NO4QXBWP-BOoJ1eTw-DpUm7W4G.js → ganttDiagram-NO4QXBWP-BOoJ1eTw-ThhuTyj5.js} +1 -1
- package/dist/assets/gitGraph-TEB2WS4Q-CH12KLTN-0Gr-ifNH.js +1 -0
- package/dist/assets/{gitGraphDiagram-IHSO6WYX-B2CJhk_G-CXhq2YaR.js → gitGraphDiagram-IHSO6WYX-B2CJhk_G-DKO6DoJ2.js} +1 -1
- package/dist/assets/{index-BVNLkhp4.css → index-Cx-x1P5E.css} +1 -1
- package/dist/assets/{index-83utxopd.js → index-Dg6RU8V5.js} +136 -136
- package/dist/assets/info-DKCQHKI2-Cbw3mbiK-BIv29fvf.js +1 -0
- package/dist/assets/{infoDiagram-FWYZ7A6U-Mp1X3pBP-BH6ylmwo.js → infoDiagram-FWYZ7A6U-Mp1X3pBP-BpLqQ7Yz.js} +1 -1
- package/dist/assets/{ishikawaDiagram-FXEZZL3T-BNG7tkJu-DKlrUTwv.js → ishikawaDiagram-FXEZZL3T-BNG7tkJu-D76erfcP.js} +1 -1
- package/dist/assets/{journeyDiagram-5HDEW3XC-Dbp_hY9X-B0zuSRxn.js → journeyDiagram-5HDEW3XC-Dbp_hY9X-BtWgcPwA.js} +1 -1
- package/dist/assets/{kanban-definition-HUTT4EX6-DSTc5u3q-B2UMHQ_t.js → kanban-definition-HUTT4EX6-DSTc5u3q-DpY0J3ph.js} +1 -1
- package/dist/assets/{line-B1wBwzrY-NlyrzQ8H.js → line-B1wBwzrY-6XZN3L00.js} +1 -1
- package/dist/assets/{marp-Ak2po4xM.js → marp-BYVfOe6c.js} +1 -1
- package/dist/assets/{mermaid-parser.core-DC7NPJ_M-uogn_ZQO.js → mermaid-parser.core-DC7NPJ_M-BH7fQ3Po.js} +2 -2
- package/dist/assets/{mermaid.core-DZM3Ha-E-CTwQuxp4.js → mermaid.core-DZM3Ha-E-TR9Vi9Ov.js} +3 -3
- package/dist/assets/{mindmap-definition-LN4V7U3C-DYtgcMsY-CF8BKsai.js → mindmap-definition-LN4V7U3C-DYtgcMsY-TIlBXoFG.js} +1 -1
- package/dist/assets/packet-7NZHBO7P-lwb58iYx-BebcYw8w.js +1 -0
- package/dist/assets/{pegDiagram-2B236MQR-C43eIpKM-Byur3AI9.js → pegDiagram-2B236MQR-C43eIpKM-CnEZRhUI.js} +1 -1
- package/dist/assets/pie-RZYD4A2V-B1UWb4Gu-B_SGI-uO.js +1 -0
- package/dist/assets/{pieDiagram-ENE6RG2P-BkTqgJyR-LmzmCqEK.js → pieDiagram-ENE6RG2P-BkTqgJyR-BqUsLDgi.js} +1 -1
- package/dist/assets/{quadrantDiagram-ABIIQ3AL-Bm1Zjm45-CvxrZG72.js → quadrantDiagram-ABIIQ3AL-Bm1Zjm45-DQZ1durk.js} +1 -1
- package/dist/assets/radar-I7S5WNFK-7CKcb_l--DFH9UZNV.js +1 -0
- package/dist/assets/railroad-3IZDKUUU-gCySKdnW-CKlKT7uA.js +1 -0
- package/dist/assets/railroad-abnf-AHOZXSZD-BophH4r--7l_WNWp1.js +1 -0
- package/dist/assets/railroad-ebnf-EBAXGLYW-AZNjl_Zu-BXrzi8tN.js +1 -0
- package/dist/assets/railroad-peg-LSFZ7HO6-BSiEEyeb-DZ4tcd4w.js +1 -0
- package/dist/assets/{railroadDiagram-RFXS5EU6-BkfbdeAs-Dmaz7qwx.js → railroadDiagram-RFXS5EU6-BkfbdeAs-Bf1uhi2v.js} +1 -1
- package/dist/assets/{requirementDiagram-TGXJPOKE-CrGTTjYg-DLd9Qy31.js → requirementDiagram-TGXJPOKE-CrGTTjYg-XcIuERzI.js} +1 -1
- package/dist/assets/{sankeyDiagram-HTMAVEWB-rWXPf03Z-DuYt79nd.js → sankeyDiagram-HTMAVEWB-rWXPf03Z-dKgzPRLR.js} +1 -1
- package/dist/assets/{sequenceDiagram-DBY2YBRQ-nkJYWO2m-CN2BTBIe.js → sequenceDiagram-DBY2YBRQ-nkJYWO2m-DHaqvhhz.js} +1 -1
- package/dist/assets/{stateDiagram-2N3HPSRC-T4-clK8b-CQkZXPtf.js → stateDiagram-2N3HPSRC-T4-clK8b-DNp0WIDn.js} +1 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-DIp7nhRd-HMXZTvKB.js +1 -0
- package/dist/assets/{swimlanes-5IMT3BWC-HmQNEntu-BxSqfUwA.js → swimlanes-5IMT3BWC-HmQNEntu-BByO9ZMv.js} +1 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-BeoZhwg7-D7OkQPFt.js +8 -0
- package/dist/assets/{timeline-definition-FHXFAJF6-CNc9jSTP-XW10LDWA.js → timeline-definition-FHXFAJF6-CNc9jSTP-wIaLuUX2.js} +1 -1
- package/dist/assets/treeView-QDETBFTQ-nIQcG1h9-CTH2-cre.js +1 -0
- package/dist/assets/treemap-6X3UGDF4-BnsvC8yL-CRFOndYi.js +1 -0
- package/dist/assets/{vennDiagram-L72KCM5P-Dr3pTJ_0-BV8NVuqb.js → vennDiagram-L72KCM5P-Dr3pTJ_0-t6p5Ve3a.js} +1 -1
- package/dist/assets/wardley-OPB4EBWU-8Odxkx6V-CmqxCQpR.js +1 -0
- package/dist/assets/{wardleyDiagram-EHGQE667-DSFc7ZZa-CPdAgmn_.js → wardleyDiagram-EHGQE667-DSFc7ZZa-DZx0BteZ.js} +1 -1
- package/dist/assets/{xychartDiagram-FW5EYKEG-BP0Nn4Pp-CJCoz2E2.js → xychartDiagram-FW5EYKEG-BP0Nn4Pp-CkOJjlbN.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/server/activity-hook.spec.ts +37 -0
- package/server/activity-hook.ts +28 -0
- package/server/activity-state.spec.ts +55 -0
- package/server/activity-state.ts +46 -0
- package/server/app-config.spec.ts +71 -3
- package/server/app-config.ts +39 -2
- package/server/config-routes.ts +25 -18
- package/server/config-schema.ts +13 -1
- package/server/dir-config.spec.ts +2 -2
- package/server/dir-config.ts +3 -2
- package/server/header-config.spec.ts +45 -6
- package/server/header-config.ts +29 -7
- package/server/header-context.ts +1 -0
- package/server/header-resolve.spec.ts +48 -1
- package/server/header-resolve.ts +18 -3
- package/server/header-title.spec.ts +26 -0
- package/server/header-title.ts +17 -0
- package/server/index.ts +221 -42
- package/server/pick-file.spec.ts +19 -0
- package/server/pick-file.ts +46 -38
- package/server/pr-for-branch.spec.ts +50 -0
- package/server/pr-for-branch.ts +58 -0
- package/server/skills/mulmoterminal-config/SKILL.md +10 -2
- package/server/transcript.spec.ts +43 -0
- package/server/transcript.ts +16 -0
- package/server/web-push.spec.ts +37 -0
- package/server/web-push.ts +57 -0
- package/dist/assets/architecture-TIHT7OUA-CYMWc3UT-QInGApkV.js +0 -1
- package/dist/assets/channel-Di5rtkx0-DHqL817r.js +0 -1
- package/dist/assets/classDiagram-OUVF2IWQ-BgAZMSbT-VLjGJAJO.js +0 -1
- package/dist/assets/classDiagram-v2-EOCWNBFH-DxHTyui1-VLjGJAJO.js +0 -1
- package/dist/assets/cynefin-VYW2F7L2-DqA3n9nY-DeDS-5by.js +0 -1
- package/dist/assets/eventmodeling-45OFAUF4-_BVSjAXf-CF7wgGuX.js +0 -1
- package/dist/assets/flowDiagram-23GEKE2U-BeOc_anm-CfWH0Tbu.js +0 -1
- package/dist/assets/gitGraph-TEB2WS4Q-CH12KLTN-C2PnVeMX.js +0 -1
- package/dist/assets/info-DKCQHKI2-Cbw3mbiK-CLk5uJ5t.js +0 -1
- package/dist/assets/packet-7NZHBO7P-lwb58iYx-3tUu63Qj.js +0 -1
- package/dist/assets/pie-RZYD4A2V-B1UWb4Gu-DiT3qAWP.js +0 -1
- package/dist/assets/radar-I7S5WNFK-7CKcb_l--C_JwXiDu.js +0 -1
- package/dist/assets/railroad-3IZDKUUU-gCySKdnW-C30t7Eqd.js +0 -1
- package/dist/assets/railroad-abnf-AHOZXSZD-BophH4r--CGjr3zMY.js +0 -1
- package/dist/assets/railroad-ebnf-EBAXGLYW-AZNjl_Zu-BLsfAiEh.js +0 -1
- package/dist/assets/railroad-peg-LSFZ7HO6-BSiEEyeb-DpWrKO8r.js +0 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-DIp7nhRd-TfY_5w1P.js +0 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-BeoZhwg7-BXdsLx4g.js +0 -8
- package/dist/assets/treeView-QDETBFTQ-nIQcG1h9-BbYxhc6_.js +0 -1
- package/dist/assets/treemap-6X3UGDF4-BnsvC8yL-C4IdHouD.js +0 -1
- package/dist/assets/wardley-OPB4EBWU-8Odxkx6V-BlJFib5h.js +0 -1
package/README.md
CHANGED
|
@@ -300,6 +300,24 @@ The Settings modal (⚙) persists per-user UI choices to `~/.mulmoterminal/confi
|
|
|
300
300
|
| `prRepos` | `owner/repo` entries whose open PRs/issues the cross-repo **PRs & Issues** view aggregates (via your `gh` login). |
|
|
301
301
|
| `launchers` | `{ label, command }` entries offered in a grid cell's launcher besides Claude — a plain shell, `codex`, any interactive command. |
|
|
302
302
|
| `userMcpServers` | `{ id, url }` HTTP MCP servers merged into the **single-view** Claude session's `--mcp-config` (a `localhost` URL is reached over `host.docker.internal` in the Docker sandbox). Takes effect on the next session. |
|
|
303
|
+
| `buttons` | Header action buttons — see [Header buttons](#header-buttons). Omit to keep the defaults; set to replace them. |
|
|
304
|
+
| `chips` | Header info chips. Omit to keep the default set; `[]` hides all built-ins. |
|
|
305
|
+
| `pushEnabled` | `true` to send a **Web Push** to your registered devices when a background task finishes. Off by default; only sends while the **RemoteHost** channel is connected (see below). |
|
|
306
|
+
|
|
307
|
+
#### Header buttons
|
|
308
|
+
|
|
309
|
+
Each terminal header shows configurable **action buttons**. Omitting `buttons` (globally or per-dir)
|
|
310
|
+
keeps the built-in defaults — a **file-path picker** (📎) and an **OS file-manager reveal** (📂).
|
|
311
|
+
Setting `buttons` (at either level) **replaces** the defaults with your list, so you can drop, reorder,
|
|
312
|
+
or swap them — e.g. add the in-app **📁 file explorer** with `"open": { "files": "${dir}" }`.
|
|
313
|
+
A button has an `id`, `label`, and a `run` of `"shell"` (run a command), `"input"` (send text to the
|
|
314
|
+
agent), or `"open"`. An `open` button targets one of `url` / `reveal` (OS file manager) / `files`
|
|
315
|
+
(in-app explorer) / `view` (a built-in overlay) / `terminal` (a dir → a new cell running `$SHELL`,
|
|
316
|
+
opened next to the current one) / `pr: true` (open the current branch's PR — the button is hidden when
|
|
317
|
+
there's no open PR) / `pickFile: true` (OS file dialog → insert the path).
|
|
318
|
+
`${dir}`, `${branch}`, `${repo}`, … substitute live context, and `when` (e.g. `"isGitRepo"`) gates
|
|
319
|
+
visibility. The `/mulmoterminal-config` skill writes a valid config interactively; per-dir buttons
|
|
320
|
+
merge over the global ones by `id`.
|
|
303
321
|
|
|
304
322
|
**Attention sound.** The default chime is generated with the Web Audio API — **no
|
|
305
323
|
audio file is bundled**, so the npm package stays light and has no media-licensing
|
|
@@ -308,6 +326,14 @@ chime) or in the config file; the server streams that file at `GET /api/sound` a
|
|
|
308
326
|
the client decodes it (falling back to the chime if it's missing or not audio). It's
|
|
309
327
|
your own local file referenced by absolute path — nothing is added to the package.
|
|
310
328
|
|
|
329
|
+
**Web Push on task finish.** Enable `pushEnabled` in Settings to have the server send a
|
|
330
|
+
push (title = the project dir, body = the last prompt) to your registered devices each
|
|
331
|
+
time a **background** task finishes — the same signal as the attention chime, but for the
|
|
332
|
+
panes you're not watching. Delivery is handled by the separate `mulmoserver` `sendPush`
|
|
333
|
+
Cloud Function; MulmoTerminal only makes the call, and only while the **RemoteHost**
|
|
334
|
+
channel is connected (its Google sign-in supplies the notification auth). With RemoteHost
|
|
335
|
+
disconnected, or with no device registered, the toggle is a no-op.
|
|
336
|
+
|
|
311
337
|
### Per-directory settings (`<project>/.mulmoterminal.json`)
|
|
312
338
|
|
|
313
339
|
Drop a `.mulmoterminal.json` in a project directory to give terminals opened **in
|
|
@@ -381,7 +407,9 @@ In dev, open the Vite URL; its proxy forwards `/ws`, `/ws/pubsub`, and `/api` to
|
|
|
381
407
|
|
|
382
408
|
## Scripts (Run menu)
|
|
383
409
|
|
|
384
|
-
An empty grid cell's launcher
|
|
410
|
+
An empty grid cell's launcher sets the **Working directory** by typing, by a preset
|
|
411
|
+
chip, or with the **📁 folder button** (a native OS folder dialog). It also offers a
|
|
412
|
+
**run a script** row
|
|
385
413
|
that launches project scripts (a dev server, tests, a build, …) **in that cell, in
|
|
386
414
|
the directory the cell is pointed at** — so a whole workflow lives in one window
|
|
387
415
|
alongside the Claude sessions. Scripts are **per-directory**: the cell reads the
|
|
@@ -444,7 +472,8 @@ the last 32 KB of output. See
|
|
|
444
472
|
|
|
445
473
|
## Files view (browse & edit)
|
|
446
474
|
|
|
447
|
-
|
|
475
|
+
A terminal header can carry a **📁 Files** button — add it as a [header button](#header-buttons)
|
|
476
|
+
(`"open": { "files": "${dir}" }`) — that opens a full-screen file explorer
|
|
448
477
|
rooted at **that terminal's project directory** — so after Claude says "wrote `foo.md`"
|
|
449
478
|
you can jump straight there to read or edit it. The left pane is a lazy-loaded directory
|
|
450
479
|
tree; clicking a file opens it in a **CodeMirror** editor (Markdown / JS-TS / JSON
|
|
@@ -737,7 +766,7 @@ same-origin-guarded.
|
|
|
737
766
|
| `POST /api/transcribe`(`/model`…) | Voice-input transcription (Whisper, macOS). |
|
|
738
767
|
| `POST /api/translation` | Runtime UI-string translation. |
|
|
739
768
|
| `GET /api/remote-host/status` · `POST /api/remote-host/{connect,disconnect}` | Companion phone-client link. |
|
|
740
|
-
| `POST /api/open-dir` · `POST /api/pick-file` | Reveal a dir in Finder/Explorer; OS file-picker → path. |
|
|
769
|
+
| `POST /api/open-dir` · `POST /api/pick-file` | Reveal a dir in Finder/Explorer; OS file-picker → path (`{ directory: true }` opens the folder picker — used by the launcher's Working-directory 📁 button). |
|
|
741
770
|
|
|
742
771
|
### WebSocket: `/ws` (terminal)
|
|
743
772
|
|
|
@@ -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-BH7fQ3Po.js";import"./chunk-WYO6CB5R-B83L_z6I-jyLEICM4.js";import"./chunk-VAUOI2AC-DrcykVNK-CZQTkFkc.js";import{n as i,r as a,t as o}from"./chunk-MOJQB5TN-CqxshQHA-BOKLvtWS.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-BH7fQ3Po.js";export{e as createArchitectureServices};
|