mulmoterminal 1.0.0 → 1.1.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 (118) hide show
  1. package/README.md +58 -0
  2. package/dist/assets/{abnfDiagram-VRR7QNED-6nNByj6v-DheBdjws.js → abnfDiagram-VRR7QNED-6nNByj6v-DGtwdUf8.js} +1 -1
  3. package/dist/assets/architecture-TIHT7OUA-CYMWc3UT-DZ-Znbwf.js +1 -0
  4. package/dist/assets/{architectureDiagram-ZJ3FMSHR-Bgnyaj_i-DeqjBmXv.js → architectureDiagram-ZJ3FMSHR-Bgnyaj_i-DGIWwfAV.js} +1 -1
  5. package/dist/assets/{blockDiagram-677ZJIJ3-DQ35o5E4-C8GJRlOG.js → blockDiagram-677ZJIJ3-DQ35o5E4-27RPR53D.js} +1 -1
  6. package/dist/assets/{c4Diagram-LMCZKHZV-ClWZeiWo-DCF_O6wa.js → c4Diagram-LMCZKHZV-ClWZeiWo-CqXuDI4P.js} +1 -1
  7. package/dist/assets/channel-Di5rtkx0-DQLsM284.js +1 -0
  8. package/dist/assets/{chunk-32BRIVSS-CCt9wtYd-aqSIoPX4.js → chunk-32BRIVSS-CCt9wtYd-CGaPp4LL.js} +1 -1
  9. package/dist/assets/{chunk-52WLFC77-FbBbR4uI-o7EFRk-Z.js → chunk-52WLFC77-FbBbR4uI-UAwhz_M9.js} +1 -1
  10. package/dist/assets/{chunk-C7G6YPKG-C87hlS9c-DYk1rPGy.js → chunk-C7G6YPKG-C87hlS9c-DedqefeW.js} +1 -1
  11. package/dist/assets/{chunk-EX3LRPZG-BqGqMXLN-CFsO6w_h.js → chunk-EX3LRPZG-BqGqMXLN-Bb1Mz7iv.js} +1 -1
  12. package/dist/assets/{chunk-FWX5IMBZ-BkbSAAuW-DM_MfscO.js → chunk-FWX5IMBZ-BkbSAAuW-C2rOKQ0W.js} +2 -2
  13. package/dist/assets/{chunk-HOUHSVGY-Cxu0eDlh-BjDbxOps.js → chunk-HOUHSVGY-Cxu0eDlh-Di1lybq-.js} +1 -1
  14. package/dist/assets/{chunk-ICXQ74PX-hiraF_Xj-iUcDh2Ds.js → chunk-ICXQ74PX-hiraF_Xj-CDR-rXNa.js} +1 -1
  15. package/dist/assets/{chunk-MOJQB5TN-CqxshQHA-ozqXE506.js → chunk-MOJQB5TN-CqxshQHA--ID4cJe7.js} +1 -1
  16. package/dist/assets/{chunk-OGEWGWER-CjCr7ceX-CVnG09pj.js → chunk-OGEWGWER-CjCr7ceX-D4uLoRem.js} +1 -1
  17. package/dist/assets/{chunk-PUDLZKDR-Dx6M-vz1-B421SWPj.js → chunk-PUDLZKDR-Dx6M-vz1-CAsrnK3r.js} +1 -1
  18. package/dist/assets/{chunk-Q4XR5HBZ-CZd-9lTB-CAiDWUlL.js → chunk-Q4XR5HBZ-CZd-9lTB-BJpdeIug.js} +1 -1
  19. package/dist/assets/{chunk-V7JOEXUC-rI0xlC_O-CtYufueO.js → chunk-V7JOEXUC-rI0xlC_O-f1PG3F-p.js} +1 -1
  20. package/dist/assets/{chunk-VAUOI2AC-DrcykVNK-jGzw5YJX.js → chunk-VAUOI2AC-DrcykVNK-Dj0ZfRKp.js} +1 -1
  21. package/dist/assets/{chunk-VR4S4FIN-O6iF8Yvf-BQZXqb5d.js → chunk-VR4S4FIN-O6iF8Yvf-BUapiHE2.js} +1 -1
  22. package/dist/assets/{chunk-WYO6CB5R-B83L_z6I-CTQn5U85.js → chunk-WYO6CB5R-B83L_z6I-DOF2nExc.js} +1 -1
  23. package/dist/assets/{chunk-ZGVPDNZ5-BpFv9JSP-B_NX0SUE.js → chunk-ZGVPDNZ5-BpFv9JSP-DYPeNPBm.js} +1 -1
  24. package/dist/assets/classDiagram-OUVF2IWQ-BgAZMSbT-DkPZzR8t.js +1 -0
  25. package/dist/assets/classDiagram-v2-EOCWNBFH-DxHTyui1-DkPZzR8t.js +1 -0
  26. package/dist/assets/cynefin-VYW2F7L2-DqA3n9nY-BYm2Z0OV.js +1 -0
  27. package/dist/assets/{cynefinDiagram-TSTJHNR4-x0-0sQ15-CkdgUGoD.js → cynefinDiagram-TSTJHNR4-x0-0sQ15-BLbtiLIJ.js} +1 -1
  28. package/dist/assets/{dagre-VKFMJZFB-CQdfl-bx-FSrXzQxB.js → dagre-VKFMJZFB-CQdfl-bx-DZX-S9Hf.js} +1 -1
  29. package/dist/assets/{diagram-FQU43EPY-BOSB6VUb-yZdPA2Rw.js → diagram-FQU43EPY-BOSB6VUb-DYrk9-JY.js} +1 -1
  30. package/dist/assets/{diagram-G47NLZAW-DLXrcXsN-aq_xTmel.js → diagram-G47NLZAW-DLXrcXsN-DMUMSDYC.js} +1 -1
  31. package/dist/assets/{diagram-NH7WQ7WH-BMQp1rkF-BkL1fZyU.js → diagram-NH7WQ7WH-BMQp1rkF-DZu3Xn7Y.js} +1 -1
  32. package/dist/assets/{diagram-OA4YK3LP-D1wQ0vUj-D2NsP5qB.js → diagram-OA4YK3LP-D1wQ0vUj-Ctkx0KEb.js} +1 -1
  33. package/dist/assets/{diagram-WEI45ONY-RR0DpF8R-v-IWOK6D.js → diagram-WEI45ONY-RR0DpF8R-sQWvPoC1.js} +1 -1
  34. package/dist/assets/{ebnfDiagram-CCIWWBDH-M123uVJ8-CPXV_s7Q.js → ebnfDiagram-CCIWWBDH-M123uVJ8-edZCdQvS.js} +1 -1
  35. package/dist/assets/{erDiagram-Q63AITRT-BWx_-PXG-DvFDPrMO.js → erDiagram-Q63AITRT-BWx_-PXG-CfR7msPF.js} +1 -1
  36. package/dist/assets/eventmodeling-45OFAUF4-_BVSjAXf-BkWd65jm.js +1 -0
  37. package/dist/assets/flowDiagram-23GEKE2U-BeOc_anm-S4lNiAx3.js +1 -0
  38. package/dist/assets/{ganttDiagram-NO4QXBWP-BOoJ1eTw-C8hbgKqC.js → ganttDiagram-NO4QXBWP-BOoJ1eTw-B73WAEs4.js} +1 -1
  39. package/dist/assets/gitGraph-TEB2WS4Q-CH12KLTN-TRRwXHmK.js +1 -0
  40. package/dist/assets/{gitGraphDiagram-IHSO6WYX-B2CJhk_G-B5mO0MM2.js → gitGraphDiagram-IHSO6WYX-B2CJhk_G-D2IbZUGe.js} +1 -1
  41. package/dist/assets/index-SBAFcRMP.css +1 -0
  42. package/dist/assets/{index-DnpR_CJG.js → index-YA9xgtak.js} +74 -74
  43. package/dist/assets/info-DKCQHKI2-Cbw3mbiK-D8Wk2Q2C.js +1 -0
  44. package/dist/assets/{infoDiagram-FWYZ7A6U-Mp1X3pBP-D4u3DGcy.js → infoDiagram-FWYZ7A6U-Mp1X3pBP-C20vVR0c.js} +1 -1
  45. package/dist/assets/{ishikawaDiagram-FXEZZL3T-BNG7tkJu-DX6cRWKX.js → ishikawaDiagram-FXEZZL3T-BNG7tkJu-Dtf3IBKS.js} +1 -1
  46. package/dist/assets/{journeyDiagram-5HDEW3XC-Dbp_hY9X-lR-zk1P5.js → journeyDiagram-5HDEW3XC-Dbp_hY9X-Z7iGrqwh.js} +1 -1
  47. package/dist/assets/{kanban-definition-HUTT4EX6-DSTc5u3q-B8BsOJR_.js → kanban-definition-HUTT4EX6-DSTc5u3q-js-QvcYr.js} +1 -1
  48. package/dist/assets/{line-B1wBwzrY-CsBjF7T-.js → line-B1wBwzrY-yLbpFjgh.js} +1 -1
  49. package/dist/assets/{marp-DZRmgRY9.js → marp-8yMkefyS.js} +1 -1
  50. package/dist/assets/{mermaid-parser.core-DC7NPJ_M-CcAjWs6c.js → mermaid-parser.core-DC7NPJ_M-IqvgPv4-.js} +2 -2
  51. package/dist/assets/{mermaid.core-DZM3Ha-E-CFYYZVad.js → mermaid.core-DZM3Ha-E-964Ly4Uk.js} +3 -3
  52. package/dist/assets/{mindmap-definition-LN4V7U3C-DYtgcMsY-BRIJMUm0.js → mindmap-definition-LN4V7U3C-DYtgcMsY-DzFenrqW.js} +1 -1
  53. package/dist/assets/packet-7NZHBO7P-lwb58iYx-BUFe98QC.js +1 -0
  54. package/dist/assets/{pegDiagram-2B236MQR-C43eIpKM-BTRDK2Rn.js → pegDiagram-2B236MQR-C43eIpKM-CPxm1zaJ.js} +1 -1
  55. package/dist/assets/pie-RZYD4A2V-B1UWb4Gu-CW09MPfM.js +1 -0
  56. package/dist/assets/{pieDiagram-ENE6RG2P-BkTqgJyR-C0wYkdhk.js → pieDiagram-ENE6RG2P-BkTqgJyR-SuQOUJv7.js} +1 -1
  57. package/dist/assets/{quadrantDiagram-ABIIQ3AL-Bm1Zjm45-HKnKnEKU.js → quadrantDiagram-ABIIQ3AL-Bm1Zjm45-CxN3pVD1.js} +1 -1
  58. package/dist/assets/radar-I7S5WNFK-7CKcb_l--DXFUvOtM.js +1 -0
  59. package/dist/assets/railroad-3IZDKUUU-gCySKdnW-BU8WcG97.js +1 -0
  60. package/dist/assets/railroad-abnf-AHOZXSZD-BophH4r--Bsm5mLm7.js +1 -0
  61. package/dist/assets/railroad-ebnf-EBAXGLYW-AZNjl_Zu-BpVcU0NO.js +1 -0
  62. package/dist/assets/railroad-peg-LSFZ7HO6-BSiEEyeb-Da2qBADq.js +1 -0
  63. package/dist/assets/{railroadDiagram-RFXS5EU6-BkfbdeAs-BxYC_fFp.js → railroadDiagram-RFXS5EU6-BkfbdeAs-x3RjQYe5.js} +1 -1
  64. package/dist/assets/{requirementDiagram-TGXJPOKE-CrGTTjYg-B3HYTfaW.js → requirementDiagram-TGXJPOKE-CrGTTjYg-CZVJXiB0.js} +1 -1
  65. package/dist/assets/{sankeyDiagram-HTMAVEWB-rWXPf03Z-BSzqUsBJ.js → sankeyDiagram-HTMAVEWB-rWXPf03Z-DhdvF4v5.js} +1 -1
  66. package/dist/assets/{sequenceDiagram-DBY2YBRQ-nkJYWO2m-C911Onke.js → sequenceDiagram-DBY2YBRQ-nkJYWO2m-Dvi_zljF.js} +1 -1
  67. package/dist/assets/{stateDiagram-2N3HPSRC-T4-clK8b-B-giNW0K.js → stateDiagram-2N3HPSRC-T4-clK8b-nnUFeTnz.js} +1 -1
  68. package/dist/assets/stateDiagram-v2-6OUMAXLB-DIp7nhRd-BviIi3HE.js +1 -0
  69. package/dist/assets/{swimlanes-5IMT3BWC-HmQNEntu-CSiN22-5.js → swimlanes-5IMT3BWC-HmQNEntu-CnEGBQ_x.js} +1 -1
  70. package/dist/assets/swimlanesDiagram-G3AALYLV-BeoZhwg7-gz62UWNS.js +8 -0
  71. package/dist/assets/{timeline-definition-FHXFAJF6-CNc9jSTP-CIyjGbiA.js → timeline-definition-FHXFAJF6-CNc9jSTP-DzXY5BW4.js} +1 -1
  72. package/dist/assets/treeView-QDETBFTQ-nIQcG1h9-DfpLaR6K.js +1 -0
  73. package/dist/assets/treemap-6X3UGDF4-BnsvC8yL-76EFh-rZ.js +1 -0
  74. package/dist/assets/{vennDiagram-L72KCM5P-Dr3pTJ_0-D-WU2GoG.js → vennDiagram-L72KCM5P-Dr3pTJ_0-Cz_J7qhF.js} +1 -1
  75. package/dist/assets/wardley-OPB4EBWU-8Odxkx6V-D573z6BH.js +1 -0
  76. package/dist/assets/{wardleyDiagram-EHGQE667-DSFc7ZZa-BRv4D8qc.js → wardleyDiagram-EHGQE667-DSFc7ZZa-dN8C2khV.js} +1 -1
  77. package/dist/assets/{xychartDiagram-FW5EYKEG-BP0Nn4Pp-ByYvhjoR.js → xychartDiagram-FW5EYKEG-BP0Nn4Pp-BhdsqgjF.js} +1 -1
  78. package/dist/index.html +2 -2
  79. package/package.json +1 -1
  80. package/server/backends/remoteHost/skills.spec.ts +80 -1
  81. package/server/backends/remoteHost/skills.ts +78 -25
  82. package/server/codex-skills.ts +4 -1
  83. package/server/config-schema.spec.ts +9 -1
  84. package/server/config-schema.ts +15 -0
  85. package/server/dir-config.spec.ts +15 -0
  86. package/server/dir-config.ts +15 -1
  87. package/server/file-cache.spec.ts +48 -0
  88. package/server/file-cache.ts +44 -0
  89. package/server/index.ts +98 -19
  90. package/server/skills/mulmoterminal-config/SKILL.md +12 -0
  91. package/server/tmux-routes.spec.ts +120 -0
  92. package/server/tmux-routes.ts +46 -0
  93. package/server/tmux.spec.ts +17 -1
  94. package/server/tmux.ts +13 -0
  95. package/server/transcript.spec.ts +45 -0
  96. package/server/transcript.ts +30 -19
  97. package/dist/assets/architecture-TIHT7OUA-CYMWc3UT-DKr4hbNv.js +0 -1
  98. package/dist/assets/channel-Di5rtkx0-ENMPwr9m.js +0 -1
  99. package/dist/assets/classDiagram-OUVF2IWQ-BgAZMSbT-C4hmeWEb.js +0 -1
  100. package/dist/assets/classDiagram-v2-EOCWNBFH-DxHTyui1-C4hmeWEb.js +0 -1
  101. package/dist/assets/cynefin-VYW2F7L2-DqA3n9nY-GgLCM_nw.js +0 -1
  102. package/dist/assets/eventmodeling-45OFAUF4-_BVSjAXf-ZNaf3uDd.js +0 -1
  103. package/dist/assets/flowDiagram-23GEKE2U-BeOc_anm-GSALmqQ3.js +0 -1
  104. package/dist/assets/gitGraph-TEB2WS4Q-CH12KLTN-BGOUxFnc.js +0 -1
  105. package/dist/assets/index-DsRhtnU0.css +0 -1
  106. package/dist/assets/info-DKCQHKI2-Cbw3mbiK-HXxrjjRx.js +0 -1
  107. package/dist/assets/packet-7NZHBO7P-lwb58iYx-DB-Dy5kn.js +0 -1
  108. package/dist/assets/pie-RZYD4A2V-B1UWb4Gu-DGylsaHj.js +0 -1
  109. package/dist/assets/radar-I7S5WNFK-7CKcb_l--DjWDNt3M.js +0 -1
  110. package/dist/assets/railroad-3IZDKUUU-gCySKdnW-CYIDYmq5.js +0 -1
  111. package/dist/assets/railroad-abnf-AHOZXSZD-BophH4r--BcibSZfl.js +0 -1
  112. package/dist/assets/railroad-ebnf-EBAXGLYW-AZNjl_Zu-ChODKeRY.js +0 -1
  113. package/dist/assets/railroad-peg-LSFZ7HO6-BSiEEyeb-5nqohbXV.js +0 -1
  114. package/dist/assets/stateDiagram-v2-6OUMAXLB-DIp7nhRd-DuCOmOmY.js +0 -1
  115. package/dist/assets/swimlanesDiagram-G3AALYLV-BeoZhwg7-DG3vt7aV.js +0 -8
  116. package/dist/assets/treeView-QDETBFTQ-nIQcG1h9-DbwA95vD.js +0 -1
  117. package/dist/assets/treemap-6X3UGDF4-BnsvC8yL-DEq41o1Y.js +0 -1
  118. package/dist/assets/wardley-OPB4EBWU-8Odxkx6V-B-jvjF9O.js +0 -1
package/README.md CHANGED
@@ -71,6 +71,7 @@ server, and opens the browser. For local development from a clone, see
71
71
  - [Configuration](#configuration)
72
72
  - [Running](#running)
73
73
  - [Scripts (Run menu)](#scripts-run-menu)
74
+ - [Skills (Skill menu)](#skills-skill-menu)
74
75
  - [Files view (browse & edit)](#files-view-browse--edit)
75
76
  - [Git worktrees & pull requests](#git-worktrees--pull-requests)
76
77
  - [Cost & token usage](#cost--token-usage)
@@ -495,6 +496,39 @@ the last 32 KB of output. See
495
496
 
496
497
  ---
497
498
 
499
+ ## Skills (Skill menu)
500
+
501
+ Next to the **▶ Run ▾** dropdown, every running terminal's header has a **⚡ Skill ▾**
502
+ dropdown — in both the single view and each grid cell, and **only when the open
503
+ project has skills** (nothing discovered, no button). It lists the
504
+ [Claude skills](https://docs.claude.com/en/docs/claude-code/skills) discoverable for
505
+ that terminal's directory — both **project scope** (`<dir>/.claude/skills`) and **user
506
+ scope** (`~/.claude/skills`), the same skills Claude sees — and, on pick, **runs the
507
+ skill in that session**: it types the skill's invocation into the terminal and submits
508
+ it (for Claude, its `/<slug>` command; for Codex, which has no slash command, a plain
509
+ `Use the "<slug>" skill.` instruction). Unlike **▶ Run** — which launches a
510
+ `script.json` shell command in a spare cell — a skill runs **in the session you
511
+ picked it from**, continuing that conversation.
512
+
513
+ **Ordering:** working-dir (project) skills come **first**, then user-scope ones,
514
+ alphabetical within each group; a project skill of the same slug shadows the user one.
515
+
516
+ **Filtering:** add a `skills` array to the directory's
517
+ [`.mulmoterminal.json`](#per-directory-settings-projectmulmoterminaljson) to narrow the menu —
518
+ an allowlist of slugs that also sets the order (only those show, in that order). Omit
519
+ it to show everything.
520
+
521
+ ```jsonc
522
+ // <dir>/.mulmoterminal.json
523
+ { "skills": ["review-diff", "commit-msg"] }
524
+ ```
525
+
526
+ Each menu item shows the skill's id, with its `SKILL.md` `description` as the hover
527
+ tooltip. A directory (or workspace) without any `.claude/skills` simply shows no
528
+ button. Skills are discovered read-only; the menu never creates or edits them.
529
+
530
+ ---
531
+
498
532
  ## Files view (browse & edit)
499
533
 
500
534
  A terminal header can carry a **📁 Files** button — add it as a [header button](#header-buttons)
@@ -683,6 +717,30 @@ position the client sends back to `/ws/run`).
683
717
  A missing or invalid `script.json` is **not** an error — it yields an empty
684
718
  `scripts` array.
685
719
 
720
+ ### HTTP: `GET /api/skills`
721
+
722
+ The Claude skills discoverable for a terminal's chosen directory (`?cwd=<dir>`,
723
+ falling back to `CLAUDE_CWD`) — project scope (`<cwd>/.claude/skills`) plus user scope
724
+ (`~/.claude/skills`), deduped by slug (project shadows user), **working-dir skills
725
+ first**; see [Skills (Skill menu)](#skills-skill-menu). A `skills` allowlist in that
726
+ directory's `.mulmoterminal.json` narrows and reorders the result; absent → all. The
727
+ resolved `cwd` is echoed back. Each entry carries its `slug` (the skill invoked as
728
+ `/<slug>`) and the `SKILL.md` `description` (the menu tooltip).
729
+
730
+ ```jsonc
731
+ // GET /api/skills?cwd=/Users/me/proj
732
+ {
733
+ "cwd": "/Users/me/proj",
734
+ "skills": [
735
+ { "slug": "commit", "description": "Write a commit message" },
736
+ { "slug": "review", "description": "Review the current diff" }
737
+ ]
738
+ }
739
+ ```
740
+
741
+ A directory without any discoverable skills is **not** an error — it yields an empty
742
+ `skills` array.
743
+
686
744
  ### HTTP: `POST /api/command/summarize`
687
745
 
688
746
  Runs `claude -p` **headless** over a command cell's captured terminal output and
@@ -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-CcAjWs6c.js";import"./chunk-WYO6CB5R-B83L_z6I-CTQn5U85.js";import"./chunk-VAUOI2AC-DrcykVNK-jGzw5YJX.js";import{n as i,r as a,t as o}from"./chunk-MOJQB5TN-CqxshQHA-ozqXE506.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-DC7NPJ_M-IqvgPv4-.js";import"./chunk-WYO6CB5R-B83L_z6I-DOF2nExc.js";import"./chunk-VAUOI2AC-DrcykVNK-Dj0ZfRKp.js";import{n as i,r as a,t as o}from"./chunk-MOJQB5TN-CqxshQHA--ID4cJe7.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-IqvgPv4-.js";export{e as createArchitectureServices};