mulmoterminal 1.6.0 → 1.7.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 +27 -11
- package/dist/assets/{abnfDiagram-VRR7QNED-6nNByj6v-w5RLkQ22.js → abnfDiagram-VRR7QNED-6nNByj6v-BCJQa4DV.js} +1 -1
- package/dist/assets/architecture-TIHT7OUA-CYMWc3UT-DgJ3pu6_.js +1 -0
- package/dist/assets/{architectureDiagram-ZJ3FMSHR-Bgnyaj_i-D69YcDkW.js → architectureDiagram-ZJ3FMSHR-Bgnyaj_i-D_Nt7RIE.js} +1 -1
- package/dist/assets/{blockDiagram-677ZJIJ3-DQ35o5E4-7uQXieKy.js → blockDiagram-677ZJIJ3-DQ35o5E4-BILj_7MF.js} +1 -1
- package/dist/assets/{c4Diagram-LMCZKHZV-ClWZeiWo-EXpL5q8c.js → c4Diagram-LMCZKHZV-ClWZeiWo-CUaWnhEC.js} +1 -1
- package/dist/assets/channel-Di5rtkx0-Bi7KHChX.js +1 -0
- package/dist/assets/{chunk-32BRIVSS-CCt9wtYd-BBNy9Wsw.js → chunk-32BRIVSS-CCt9wtYd-CH_vt2Gl.js} +1 -1
- package/dist/assets/{chunk-52WLFC77-FbBbR4uI-nrizj9KQ.js → chunk-52WLFC77-FbBbR4uI-DyZrk4KQ.js} +1 -1
- package/dist/assets/{chunk-C7G6YPKG-C87hlS9c-BeUrCw4a.js → chunk-C7G6YPKG-C87hlS9c-CFx1Arp1.js} +1 -1
- package/dist/assets/{chunk-EX3LRPZG-BqGqMXLN-B6S4Nm2k.js → chunk-EX3LRPZG-BqGqMXLN-CiSc3YI0.js} +1 -1
- package/dist/assets/{chunk-FWX5IMBZ-BkbSAAuW-DyThgqZX.js → chunk-FWX5IMBZ-BkbSAAuW-B6Frv5LB.js} +2 -2
- package/dist/assets/{chunk-HOUHSVGY-Cxu0eDlh-D5RjKEII.js → chunk-HOUHSVGY-Cxu0eDlh-PsDgJqDO.js} +1 -1
- package/dist/assets/{chunk-ICXQ74PX-hiraF_Xj-JuRpIiaL.js → chunk-ICXQ74PX-hiraF_Xj-DYPMB6hF.js} +1 -1
- package/dist/assets/{chunk-MOJQB5TN-CqxshQHA-D3AD-OQe.js → chunk-MOJQB5TN-CqxshQHA-gM_q16Ft.js} +1 -1
- package/dist/assets/{chunk-OGEWGWER-CjCr7ceX-CqjmtDlt.js → chunk-OGEWGWER-CjCr7ceX-9qc1rmAh.js} +1 -1
- package/dist/assets/{chunk-PUDLZKDR-Dx6M-vz1-DnwunR7_.js → chunk-PUDLZKDR-Dx6M-vz1-CbyfAYMR.js} +1 -1
- package/dist/assets/{chunk-Q4XR5HBZ-CZd-9lTB-CTRA-UzE.js → chunk-Q4XR5HBZ-CZd-9lTB-CHAmO99-.js} +1 -1
- package/dist/assets/{chunk-V7JOEXUC-rI0xlC_O-yFVHoSz8.js → chunk-V7JOEXUC-rI0xlC_O-CpbdluPv.js} +1 -1
- package/dist/assets/{chunk-VAUOI2AC-DrcykVNK-Bu5JrdaI.js → chunk-VAUOI2AC-DrcykVNK-DFpod4Mi.js} +1 -1
- package/dist/assets/{chunk-VR4S4FIN-O6iF8Yvf-bQ7KsnFU.js → chunk-VR4S4FIN-O6iF8Yvf-BDT221yg.js} +1 -1
- package/dist/assets/{chunk-WYO6CB5R-B83L_z6I-Db0d_mXD.js → chunk-WYO6CB5R-B83L_z6I-Djv0Pedo.js} +1 -1
- package/dist/assets/{chunk-ZGVPDNZ5-BpFv9JSP-D6iQstYB.js → chunk-ZGVPDNZ5-BpFv9JSP-X8DR2YEI.js} +1 -1
- package/dist/assets/classDiagram-OUVF2IWQ-BgAZMSbT-B5BBPEcr.js +1 -0
- package/dist/assets/classDiagram-v2-EOCWNBFH-DxHTyui1-B5BBPEcr.js +1 -0
- package/dist/assets/cynefin-VYW2F7L2-DqA3n9nY-CNt3aNde.js +1 -0
- package/dist/assets/{cynefinDiagram-TSTJHNR4-x0-0sQ15-DX3rOamM.js → cynefinDiagram-TSTJHNR4-x0-0sQ15-CDpp4wje.js} +1 -1
- package/dist/assets/{dagre-VKFMJZFB-CQdfl-bx-CMvy6K78.js → dagre-VKFMJZFB-CQdfl-bx-MejOSRzt.js} +1 -1
- package/dist/assets/{diagram-FQU43EPY-BOSB6VUb-7Cloywn1.js → diagram-FQU43EPY-BOSB6VUb-B55SUPg7.js} +1 -1
- package/dist/assets/{diagram-G47NLZAW-DLXrcXsN-BTVMn6-x.js → diagram-G47NLZAW-DLXrcXsN-BtHyFrEv.js} +1 -1
- package/dist/assets/{diagram-NH7WQ7WH-BMQp1rkF-YaK2dWz0.js → diagram-NH7WQ7WH-BMQp1rkF-DAo6PIHz.js} +1 -1
- package/dist/assets/{diagram-OA4YK3LP-D1wQ0vUj-D3A1N794.js → diagram-OA4YK3LP-D1wQ0vUj-BOP-rGWN.js} +1 -1
- package/dist/assets/{diagram-WEI45ONY-RR0DpF8R-mQyI-Ztc.js → diagram-WEI45ONY-RR0DpF8R-DMkTz0bs.js} +1 -1
- package/dist/assets/{ebnfDiagram-CCIWWBDH-M123uVJ8-6QHlDAzo.js → ebnfDiagram-CCIWWBDH-M123uVJ8-DYQvurZD.js} +1 -1
- package/dist/assets/{erDiagram-Q63AITRT-BWx_-PXG-Dm9LOTEX.js → erDiagram-Q63AITRT-BWx_-PXG-NRsUZc6C.js} +1 -1
- package/dist/assets/eventmodeling-45OFAUF4-_BVSjAXf-DckF6nty.js +1 -0
- package/dist/assets/flowDiagram-23GEKE2U-BeOc_anm-BRAAyPH5.js +1 -0
- package/dist/assets/{ganttDiagram-NO4QXBWP-BOoJ1eTw-DF8P-WOj.js → ganttDiagram-NO4QXBWP-BOoJ1eTw-im9hAj69.js} +1 -1
- package/dist/assets/gitGraph-TEB2WS4Q-CH12KLTN-C3PN2LIe.js +1 -0
- package/dist/assets/{gitGraphDiagram-IHSO6WYX-B2CJhk_G-C1VDCiQA.js → gitGraphDiagram-IHSO6WYX-B2CJhk_G-BZV7bMgx.js} +1 -1
- package/dist/assets/index-Cue6y3NP.css +1 -0
- package/dist/assets/index-JiqffS7s.js +617 -0
- package/dist/assets/info-DKCQHKI2-Cbw3mbiK-BAo5Fb7g.js +1 -0
- package/dist/assets/{infoDiagram-FWYZ7A6U-Mp1X3pBP-BPoQawfx.js → infoDiagram-FWYZ7A6U-Mp1X3pBP-n9QeRL84.js} +1 -1
- package/dist/assets/{ishikawaDiagram-FXEZZL3T-BNG7tkJu-lE_jc2TT.js → ishikawaDiagram-FXEZZL3T-BNG7tkJu-BaCscIGZ.js} +1 -1
- package/dist/assets/{journeyDiagram-5HDEW3XC-Dbp_hY9X-CO0R6cU-.js → journeyDiagram-5HDEW3XC-Dbp_hY9X-Dt8UlK_2.js} +1 -1
- package/dist/assets/{kanban-definition-HUTT4EX6-DSTc5u3q-CxGAv9XA.js → kanban-definition-HUTT4EX6-DSTc5u3q-DUVHu497.js} +1 -1
- package/dist/assets/{lib-DRGyh9Q-.js → lib-1OP8J0D5.js} +1 -1
- package/dist/assets/{line-B1wBwzrY-CRPsJOzA.js → line-B1wBwzrY-BcbT6-ul.js} +1 -1
- package/dist/assets/{marp--aqCYout.js → marp-GfniLWYo.js} +1 -1
- package/dist/assets/{mermaid-parser.core-DC7NPJ_M-4_BR6vAg.js → mermaid-parser.core-DC7NPJ_M-B3PfPUiA.js} +2 -2
- package/dist/assets/{mermaid.core-DZM3Ha-E-QA2iKs10.js → mermaid.core-DZM3Ha-E-BWGnyKvd.js} +3 -3
- package/dist/assets/{mindmap-definition-LN4V7U3C-DYtgcMsY-dUsG7ytl.js → mindmap-definition-LN4V7U3C-DYtgcMsY-Bi04e3Dh.js} +1 -1
- package/dist/assets/packet-7NZHBO7P-lwb58iYx-B_vqCkVp.js +1 -0
- package/dist/assets/{pegDiagram-2B236MQR-C43eIpKM-C0qYy0kY.js → pegDiagram-2B236MQR-C43eIpKM-D5nABd5d.js} +1 -1
- package/dist/assets/pie-RZYD4A2V-B1UWb4Gu-CAPwLWC2.js +1 -0
- package/dist/assets/{pieDiagram-ENE6RG2P-BkTqgJyR-p9ruWXka.js → pieDiagram-ENE6RG2P-BkTqgJyR-BYsX0pmp.js} +1 -1
- package/dist/assets/{quadrantDiagram-ABIIQ3AL-Bm1Zjm45-D6JMmK1K.js → quadrantDiagram-ABIIQ3AL-Bm1Zjm45-CpkA29IU.js} +1 -1
- package/dist/assets/radar-I7S5WNFK-7CKcb_l--YAwbZSSO.js +1 -0
- package/dist/assets/railroad-3IZDKUUU-gCySKdnW-DWNa-BLR.js +1 -0
- package/dist/assets/railroad-abnf-AHOZXSZD-BophH4r--8kHN0m0s.js +1 -0
- package/dist/assets/railroad-ebnf-EBAXGLYW-AZNjl_Zu-BeQb-Rfm.js +1 -0
- package/dist/assets/railroad-peg-LSFZ7HO6-BSiEEyeb-fqlxInkH.js +1 -0
- package/dist/assets/{railroadDiagram-RFXS5EU6-BkfbdeAs-DKGrmtAb.js → railroadDiagram-RFXS5EU6-BkfbdeAs-DljCkwrn.js} +1 -1
- package/dist/assets/{requirementDiagram-TGXJPOKE-CrGTTjYg-_rK4hExQ.js → requirementDiagram-TGXJPOKE-CrGTTjYg-C9JLg12J.js} +1 -1
- package/dist/assets/{sankeyDiagram-HTMAVEWB-rWXPf03Z-CtaFLD0A.js → sankeyDiagram-HTMAVEWB-rWXPf03Z-DDL7fuaw.js} +1 -1
- package/dist/assets/{sequenceDiagram-DBY2YBRQ-nkJYWO2m-Cfwgbl-y.js → sequenceDiagram-DBY2YBRQ-nkJYWO2m-Pyu_gxuA.js} +1 -1
- package/dist/assets/{stateDiagram-2N3HPSRC-T4-clK8b-DHGQRUOm.js → stateDiagram-2N3HPSRC-T4-clK8b-CYg9qZQS.js} +1 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-DIp7nhRd-DPkjtkgF.js +1 -0
- package/dist/assets/{swimlanes-5IMT3BWC-HmQNEntu-D869r1NM.js → swimlanes-5IMT3BWC-HmQNEntu-DEKxjcNL.js} +1 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-BeoZhwg7-B2wFtrEU.js +8 -0
- package/dist/assets/{timeline-definition-FHXFAJF6-CNc9jSTP-BeazEwi2.js → timeline-definition-FHXFAJF6-CNc9jSTP-DpFI7Gdx.js} +1 -1
- package/dist/assets/treeView-QDETBFTQ-nIQcG1h9-CxCShMBw.js +1 -0
- package/dist/assets/treemap-6X3UGDF4-BnsvC8yL-BFi0W9rh.js +1 -0
- package/dist/assets/{vennDiagram-L72KCM5P-Dr3pTJ_0-CMOqalF2.js → vennDiagram-L72KCM5P-Dr3pTJ_0-Dmra9rkk.js} +1 -1
- package/dist/assets/wardley-OPB4EBWU-8Odxkx6V-2Yl3qxOe.js +1 -0
- package/dist/assets/{wardleyDiagram-EHGQE667-DSFc7ZZa-CEPlNlLn.js → wardleyDiagram-EHGQE667-DSFc7ZZa-CbUid2zT.js} +1 -1
- package/dist/assets/{xychartDiagram-FW5EYKEG-BP0Nn4Pp-Bvdb_Uk8.js → xychartDiagram-FW5EYKEG-BP0Nn4Pp-BJc0ZRNl.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/server/backends/remoteHost/attachment-path.ts +31 -0
- package/server/backends/remoteHost/attachmentStore.ts +1 -24
- package/server/backends/remoteHost/sessionActivity.ts +11 -1
- package/server/index.ts +15 -0
- package/server/infra/process-guards.ts +32 -0
- package/server/routes/app-routes.ts +3 -0
- package/server/routes/hook-routes.ts +8 -0
- package/server/routes/session-routes.ts +5 -3
- package/server/routes/ws-routes.ts +14 -1
- package/server/session/draft-injection.ts +4 -4
- package/server/session/draft-plan.ts +21 -0
- package/server/session/lifecycle.ts +12 -3
- package/server/session/session-list.ts +8 -6
- package/server/session/work-phase-tracker.ts +56 -0
- package/dist/assets/architecture-TIHT7OUA-CYMWc3UT-BUaZ0MSo.js +0 -1
- package/dist/assets/channel-Di5rtkx0-C_m9yiey.js +0 -1
- package/dist/assets/classDiagram-OUVF2IWQ-BgAZMSbT-DEFx7H3k.js +0 -1
- package/dist/assets/classDiagram-v2-EOCWNBFH-DxHTyui1-DEFx7H3k.js +0 -1
- package/dist/assets/cynefin-VYW2F7L2-DqA3n9nY-BCw_wwOv.js +0 -1
- package/dist/assets/eventmodeling-45OFAUF4-_BVSjAXf-CAJF7-9m.js +0 -1
- package/dist/assets/flowDiagram-23GEKE2U-BeOc_anm-CLQEzYDX.js +0 -1
- package/dist/assets/gitGraph-TEB2WS4Q-CH12KLTN-CuWNblKk.js +0 -1
- package/dist/assets/index-BFfKUWpL.js +0 -617
- package/dist/assets/index-aQgV74tC.css +0 -1
- package/dist/assets/info-DKCQHKI2-Cbw3mbiK-rc7lkPBD.js +0 -1
- package/dist/assets/packet-7NZHBO7P-lwb58iYx-BRjtDgmF.js +0 -1
- package/dist/assets/pie-RZYD4A2V-B1UWb4Gu-DjuYUfZC.js +0 -1
- package/dist/assets/radar-I7S5WNFK-7CKcb_l--BSS9MxXL.js +0 -1
- package/dist/assets/railroad-3IZDKUUU-gCySKdnW-hpLOScUf.js +0 -1
- package/dist/assets/railroad-abnf-AHOZXSZD-BophH4r--D67cs0T8.js +0 -1
- package/dist/assets/railroad-ebnf-EBAXGLYW-AZNjl_Zu-D64IlM4-.js +0 -1
- package/dist/assets/railroad-peg-LSFZ7HO6-BSiEEyeb-Da5GoZb9.js +0 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-DIp7nhRd-Ud1cpdGy.js +0 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-BeoZhwg7-DUGuyc0H.js +0 -8
- package/dist/assets/treeView-QDETBFTQ-nIQcG1h9-u70as5aK.js +0 -1
- package/dist/assets/treemap-6X3UGDF4-BnsvC8yL-CkNsgl3O.js +0 -1
- package/dist/assets/wardley-OPB4EBWU-8Odxkx6V-DsDgGaTC.js +0 -1
package/README.md
CHANGED
|
@@ -12,6 +12,12 @@ 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
|
+
- 📖 **User guide:** [English](https://receptron.github.io/mulmoterminal/guide/en/) — the
|
|
16
|
+
grid view, everyday workflows, the full feature list, configuration, and mobile push
|
|
17
|
+
notifications.
|
|
18
|
+
- 📖 **ユーザーガイド:** [日本語](https://receptron.github.io/mulmoterminal/guide/ja/) —
|
|
19
|
+
グリッドの使い方・日々のワークフロー・機能一覧・設定・スマホ通知の設定はこちら。
|
|
20
|
+
|
|
15
21
|

|
|
16
22
|
|
|
17
23
|
*The grid is a **cockpit for parallel agents** — here, four live Claude sessions, each in its own color-coded project. Every cell's header carries what you need to triage at a glance: **model · context %**, **token counts** (`⇡in ⇣out`), the **git branch / changes** chip, and an AI summary of what the agent is doing. A cell's **border color signals state** — working / done (blue), needs-you (amber — e.g. waiting on a permission), idle — with an attention chime so a stuck cell off-screen still pulls you back. Supervise many; only step in where you're called.*
|
|
@@ -21,14 +27,17 @@ npx mulmoterminal # starts on http://localhost:34567 and opens your brows
|
|
|
21
27
|
- **See every agent at once.** A grid of live sessions, each cell color-coded by state —
|
|
22
28
|
**working** (blue), **blocked / needs a permission** (amber), **done, unreviewed** (blue),
|
|
23
29
|
**idle** — with an attention chime and a toolbar tally, so an off-screen agent that's stuck
|
|
24
|
-
never slips past you. Stop babysitting one terminal; supervise ten.
|
|
30
|
+
never slips past you. Stop babysitting one terminal; supervise ten. Zoom into one and the
|
|
31
|
+
**cockpit roster** keeps everyone else in view — one text row per session with its AI
|
|
32
|
+
summary, last prompt, latest reply, and the branch's **PR phase** (draft / CI fail /
|
|
33
|
+
ready / merged).
|
|
25
34
|
- **A GUI for your agents, not just a terminal.** Beside the terminal, a **Canvas** panel
|
|
26
35
|
renders what an agent produces over MCP — **documents, forms, charts, generated images,
|
|
27
36
|
HTML, collection cards** — each drawn by its own plugin. The agent doesn't just print
|
|
28
37
|
text; it hands you an interface.
|
|
29
|
-
- **Get pulled back from anywhere.** A finished
|
|
30
|
-
phone**, and the **RemoteHost** companion lets you watch and
|
|
31
|
-
itself — walk away, get pinged, jump back in.
|
|
38
|
+
- **Get pulled back from anywhere.** A finished — or input-waiting — task sends a **Web Push
|
|
39
|
+
to your phone**, and the **RemoteHost** companion lets you watch sessions and answer with a
|
|
40
|
+
tap (**yes / no / continue**) from the phone itself — walk away, get pinged, jump back in.
|
|
32
41
|
- **Nothing is lost on a restart.** With `tmux`, every session survives a server crash,
|
|
33
42
|
restart, or `node --watch` reload — a mid-turn agent, a long build, a dev server all keep
|
|
34
43
|
running and reattach when you come back.
|
|
@@ -42,6 +51,12 @@ npx mulmoterminal # starts on http://localhost:34567 and opens your brows
|
|
|
42
51
|
`staging` in amber), a configurable header (buttons + info chips), custom attention sounds,
|
|
43
52
|
and Run / Skill menus to launch a project's scripts and `.claude/skills` right inside a cell.
|
|
44
53
|
|
|
54
|
+

|
|
55
|
+
|
|
56
|
+
*Zoomed in, the **cockpit roster** replaces thumbnails with information: every session as a
|
|
57
|
+
text row — directory, AI summary, your last prompt, the agent's latest reply, a status word,
|
|
58
|
+
and the branch's **PR phase** badge. Click a row to swap the enlarged terminal.*
|
|
59
|
+
|
|
45
60
|
### What it is, under the hood
|
|
46
61
|
|
|
47
62
|
Each session runs as a real PTY on the server (the agent CLI in a pseudo-terminal) and is
|
|
@@ -113,8 +128,9 @@ for the details and model notes.
|
|
|
113
128
|
> `google login`). Reading/creating events on your primary calendar keeps working without re-linking.
|
|
114
129
|
|
|
115
130
|
A global install isn't auto-updated, so on startup MulmoTerminal checks npm and
|
|
116
|
-
prints a one-line notice when a newer version is available
|
|
117
|
-
|
|
131
|
+
prints a one-line notice when a newer version is available — and the web toolbar shows a
|
|
132
|
+
clickable **update badge** with the exact command for your install (`npm i -g mulmoterminal`,
|
|
133
|
+
or `git pull` for a clone). Disable with `MULMOTERMINAL_NO_UPDATE_CHECK=1` (or `NO_UPDATE_NOTIFIER=1`).
|
|
118
134
|
|
|
119
135
|
Options: `--cwd <dir>` (working directory — relative paths allowed; defaults to the
|
|
120
136
|
directory you run the command from), `--port <n>` (default 34567), `--no-open`,
|
|
@@ -332,7 +348,7 @@ building the sandbox spawn, so they have no effect unless `MULMOTERMINAL_SANDBOX
|
|
|
332
348
|
| -------- | ---------- |
|
|
333
349
|
| Frontend | Vue 3 (`<script setup>` + TypeScript), Vue Router, Vite, xterm.js (`@xterm/*`), CodeMirror 6, socket.io-client |
|
|
334
350
|
| Backend | Node (ESM, TypeScript run via `tsx`), Express 5, `ws` (terminal WebSocket), `node-pty`, socket.io, `@modelcontextprotocol/sdk` (in-process GUI MCP) |
|
|
335
|
-
| Plugins | GUI-protocol Vue plugins (`@mulmoclaude/*`, `@mulmochat-plugin/*`): markdown, form, image, chart, HTML, collection, accounting |
|
|
351
|
+
| Plugins | GUI-protocol Vue plugins (`@mulmoclaude/*`, `@mulmochat-plugin/*`): markdown, form, image, chart, HTML, collection, accounting, mulmoscript (MulmoCast video/slides), google |
|
|
336
352
|
| Tests | Vitest + @vue/test-utils + jsdom |
|
|
337
353
|
|
|
338
354
|
Requires **Node ≥ 22.9** (uses `node --env-file-if-exists`) and the `claude` CLI on `PATH`.
|
|
@@ -692,7 +708,7 @@ Each grid cell's header shows two badges for its session, refreshed when a turn
|
|
|
692
708
|
|
|
693
709
|
- **Context badge** — e.g. `Opus · ctx 35%`: the model family plus how full its context
|
|
694
710
|
window is (the *last* turn's input + cache tokens ÷ the model's window — **1M** for
|
|
695
|
-
current-gen Opus / Sonnet / Fable, **200k** otherwise). A session running on a
|
|
711
|
+
current-gen Opus / Sonnet / Fable / Mythos, **200k** otherwise). A session running on a
|
|
696
712
|
[provider model](#agents-claude--codex) shows that model's name and its published window
|
|
697
713
|
(`Kimi K2.7 Code · ctx 12%`); a model in neither list keeps the label and hides the %,
|
|
698
714
|
since the window is never guessed.
|
|
@@ -724,9 +740,9 @@ mirrors the active session, and replays history on re-select. Plugins reach the
|
|
|
724
740
|
an **in-process MCP server** served per session at `POST /api/mcp/:sessionId` (server name
|
|
725
741
|
`mulmoterminal-gui`) — which works from the host *or* the Docker sandbox (over
|
|
726
742
|
`host.docker.internal`). Which plugins load is gated by `plugins/plugins.json`; the shipped
|
|
727
|
-
set includes markdown, form, image generation (needs `GEMINI_API_KEY`), chart, HTML,
|
|
728
|
-
collection views. You can also merge
|
|
729
|
-
session via Settings → `userMcpServers`.
|
|
743
|
+
set includes markdown, form, image generation (needs `GEMINI_API_KEY`), chart, HTML,
|
|
744
|
+
collection, and mulmoscript (MulmoCast video/slides/PDF playback) views. You can also merge
|
|
745
|
+
your **own HTTP MCP servers** into the single-view session via Settings → `userMcpServers`.
|
|
730
746
|
|
|
731
747
|
**Wiki.** The toolbar **Wiki** button opens a read-only browser over `<workspace>/data/wiki/`
|
|
732
748
|
— an **index** (tag-filterable page catalog), rendered **pages** with `[[wiki links]]` 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-
|
|
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-B3PfPUiA.js";import"./chunk-WYO6CB5R-B83L_z6I-Djv0Pedo.js";import"./chunk-VAUOI2AC-DrcykVNK-DFpod4Mi.js";import{n as i,r as a,t as o}from"./chunk-MOJQB5TN-CqxshQHA-gM_q16Ft.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-B3PfPUiA.js";export{e as createArchitectureServices};
|