mulmoterminal 0.9.1 → 0.9.3
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 +13 -2
- package/dist/assets/{abnfDiagram-VRR7QNED-6nNByj6v-CVgYtC8A.js → abnfDiagram-VRR7QNED-6nNByj6v-DtVCunM4.js} +1 -1
- package/dist/assets/architecture-TIHT7OUA-CYMWc3UT-DwTylFBi.js +1 -0
- package/dist/assets/{architectureDiagram-ZJ3FMSHR-Bgnyaj_i-DIwUJtFo.js → architectureDiagram-ZJ3FMSHR-Bgnyaj_i-BlvfAzkT.js} +1 -1
- package/dist/assets/{blockDiagram-677ZJIJ3-DQ35o5E4-BOstxdgY.js → blockDiagram-677ZJIJ3-DQ35o5E4-DV5mC34o.js} +1 -1
- package/dist/assets/{c4Diagram-LMCZKHZV-ClWZeiWo-CJgnuXMJ.js → c4Diagram-LMCZKHZV-ClWZeiWo-gfTIn5Lw.js} +1 -1
- package/dist/assets/channel-Di5rtkx0-DkEgk-pd.js +1 -0
- package/dist/assets/{chunk-32BRIVSS-CCt9wtYd-D-DAaeXJ.js → chunk-32BRIVSS-CCt9wtYd-DpyNEnwu.js} +1 -1
- package/dist/assets/{chunk-52WLFC77-FbBbR4uI-BgyQM603.js → chunk-52WLFC77-FbBbR4uI-CcEzfpDT.js} +1 -1
- package/dist/assets/{chunk-C7G6YPKG-C87hlS9c-CNU64g__.js → chunk-C7G6YPKG-C87hlS9c-LvEVJ1IQ.js} +1 -1
- package/dist/assets/{chunk-EX3LRPZG-BqGqMXLN-BCZDGM-w.js → chunk-EX3LRPZG-BqGqMXLN-BmIsXusx.js} +1 -1
- package/dist/assets/{chunk-FWX5IMBZ-BkbSAAuW-Bq9OtrcX.js → chunk-FWX5IMBZ-BkbSAAuW-DQH0V6p8.js} +2 -2
- package/dist/assets/{chunk-HOUHSVGY-Cxu0eDlh-BIvtWbJ0.js → chunk-HOUHSVGY-Cxu0eDlh-CEUtBKYW.js} +1 -1
- package/dist/assets/{chunk-ICXQ74PX-hiraF_Xj-Dx5twF_S.js → chunk-ICXQ74PX-hiraF_Xj-DQR2BrrB.js} +1 -1
- package/dist/assets/{chunk-MOJQB5TN-CqxshQHA-BV_RK3Vr.js → chunk-MOJQB5TN-CqxshQHA-Czit54cz.js} +1 -1
- package/dist/assets/{chunk-OGEWGWER-CjCr7ceX-DdaHiBxq.js → chunk-OGEWGWER-CjCr7ceX-Dmr6jo33.js} +1 -1
- package/dist/assets/{chunk-PUDLZKDR-Dx6M-vz1-DmN05gZD.js → chunk-PUDLZKDR-Dx6M-vz1-C8-lXFhC.js} +1 -1
- package/dist/assets/{chunk-Q4XR5HBZ-CZd-9lTB-cw9QtxXY.js → chunk-Q4XR5HBZ-CZd-9lTB-fUkYcZLq.js} +1 -1
- package/dist/assets/{chunk-V7JOEXUC-rI0xlC_O-gsq823jB.js → chunk-V7JOEXUC-rI0xlC_O-BVaZytO-.js} +1 -1
- package/dist/assets/{chunk-VAUOI2AC-DrcykVNK-D4zp9mNB.js → chunk-VAUOI2AC-DrcykVNK-yJ-tlNfF.js} +1 -1
- package/dist/assets/{chunk-VR4S4FIN-O6iF8Yvf-CNstNe-T.js → chunk-VR4S4FIN-O6iF8Yvf-CVzjJQ5n.js} +1 -1
- package/dist/assets/{chunk-WYO6CB5R-B83L_z6I-BGsPsjAI.js → chunk-WYO6CB5R-B83L_z6I-TrxMG8rr.js} +1 -1
- package/dist/assets/{chunk-ZGVPDNZ5-BpFv9JSP-IiKGkWvT.js → chunk-ZGVPDNZ5-BpFv9JSP-BQhaQx6J.js} +1 -1
- package/dist/assets/classDiagram-OUVF2IWQ-BgAZMSbT-B8VyQdV-.js +1 -0
- package/dist/assets/classDiagram-v2-EOCWNBFH-DxHTyui1-B8VyQdV-.js +1 -0
- package/dist/assets/cynefin-VYW2F7L2-DqA3n9nY-BaTsKKi0.js +1 -0
- package/dist/assets/{cynefinDiagram-TSTJHNR4-x0-0sQ15-DKxBfSSe.js → cynefinDiagram-TSTJHNR4-x0-0sQ15-9Tm1QSku.js} +1 -1
- package/dist/assets/{dagre-VKFMJZFB-CQdfl-bx-xPr09wi6.js → dagre-VKFMJZFB-CQdfl-bx-Dwg9OMoG.js} +1 -1
- package/dist/assets/{diagram-FQU43EPY-BOSB6VUb-BhBLu_3q.js → diagram-FQU43EPY-BOSB6VUb-DnnqZnYR.js} +1 -1
- package/dist/assets/{diagram-G47NLZAW-DLXrcXsN-CFT5wbq3.js → diagram-G47NLZAW-DLXrcXsN-f983VIfA.js} +1 -1
- package/dist/assets/{diagram-NH7WQ7WH-BMQp1rkF-OnMtnXwo.js → diagram-NH7WQ7WH-BMQp1rkF-BiLjP0he.js} +1 -1
- package/dist/assets/{diagram-OA4YK3LP-D1wQ0vUj-Buf7sHLb.js → diagram-OA4YK3LP-D1wQ0vUj-DGc7Jn0K.js} +1 -1
- package/dist/assets/{diagram-WEI45ONY-RR0DpF8R-CiKo8dEV.js → diagram-WEI45ONY-RR0DpF8R-tDIw9Yke.js} +1 -1
- package/dist/assets/{ebnfDiagram-CCIWWBDH-M123uVJ8-BF7MJcAR.js → ebnfDiagram-CCIWWBDH-M123uVJ8-CQ3Je5fz.js} +1 -1
- package/dist/assets/{erDiagram-Q63AITRT-BWx_-PXG-CaNpcR0c.js → erDiagram-Q63AITRT-BWx_-PXG-CezHcRTF.js} +1 -1
- package/dist/assets/eventmodeling-45OFAUF4-_BVSjAXf-CyWTugzn.js +1 -0
- package/dist/assets/flowDiagram-23GEKE2U-BeOc_anm-CdmnRPZw.js +1 -0
- package/dist/assets/{ganttDiagram-NO4QXBWP-BOoJ1eTw-D43vlPZo.js → ganttDiagram-NO4QXBWP-BOoJ1eTw-Clcd2QEr.js} +1 -1
- package/dist/assets/gitGraph-TEB2WS4Q-CH12KLTN-C_bw49Ma.js +1 -0
- package/dist/assets/{gitGraphDiagram-IHSO6WYX-B2CJhk_G-Plj2BffT.js → gitGraphDiagram-IHSO6WYX-B2CJhk_G-B2Hd148X.js} +1 -1
- package/dist/assets/{index-3f30jaT0.css → index-8xyJ3JLz.css} +1 -1
- package/dist/assets/index-BnjRaP6A.js +357 -0
- package/dist/assets/info-DKCQHKI2-Cbw3mbiK-KtkQGqzk.js +1 -0
- package/dist/assets/{infoDiagram-FWYZ7A6U-Mp1X3pBP-CuA1P6ZB.js → infoDiagram-FWYZ7A6U-Mp1X3pBP-734PnMyt.js} +1 -1
- package/dist/assets/{ishikawaDiagram-FXEZZL3T-BNG7tkJu-BNMqzXxb.js → ishikawaDiagram-FXEZZL3T-BNG7tkJu-Cch0pp0L.js} +1 -1
- package/dist/assets/{journeyDiagram-5HDEW3XC-Dbp_hY9X-NflQYiYP.js → journeyDiagram-5HDEW3XC-Dbp_hY9X-Hgxk3xz1.js} +1 -1
- package/dist/assets/{kanban-definition-HUTT4EX6-DSTc5u3q-DQm3IbIw.js → kanban-definition-HUTT4EX6-DSTc5u3q-Dj2ygtwy.js} +1 -1
- package/dist/assets/{line-B1wBwzrY-PYTdSGHu.js → line-B1wBwzrY-BfNBRxmq.js} +1 -1
- package/dist/assets/{marp-iErKCKYz.js → marp-CBSoH1Vt.js} +1 -1
- package/dist/assets/{mermaid-parser.core-DC7NPJ_M-DAhbeSgr.js → mermaid-parser.core-DC7NPJ_M-Cfp31QX2.js} +2 -2
- package/dist/assets/{mermaid.core-DZM3Ha-E-BNwp1SSa.js → mermaid.core-DZM3Ha-E-s4una8R5.js} +3 -3
- package/dist/assets/{mindmap-definition-LN4V7U3C-DYtgcMsY-CdTgRgD3.js → mindmap-definition-LN4V7U3C-DYtgcMsY-DBtBWMe3.js} +1 -1
- package/dist/assets/packet-7NZHBO7P-lwb58iYx-DwSDPzqY.js +1 -0
- package/dist/assets/{pegDiagram-2B236MQR-C43eIpKM-BoY9YcBj.js → pegDiagram-2B236MQR-C43eIpKM-CGl0Mxne.js} +1 -1
- package/dist/assets/pie-RZYD4A2V-B1UWb4Gu-CiB48qnn.js +1 -0
- package/dist/assets/{pieDiagram-ENE6RG2P-BkTqgJyR-BvAMoz4E.js → pieDiagram-ENE6RG2P-BkTqgJyR-D2B2wsUi.js} +1 -1
- package/dist/assets/{quadrantDiagram-ABIIQ3AL-Bm1Zjm45-CGzER_DL.js → quadrantDiagram-ABIIQ3AL-Bm1Zjm45-OakSJ-Xf.js} +1 -1
- package/dist/assets/radar-I7S5WNFK-7CKcb_l--6l7KPMn8.js +1 -0
- package/dist/assets/railroad-3IZDKUUU-gCySKdnW-8ClzQSfW.js +1 -0
- package/dist/assets/railroad-abnf-AHOZXSZD-BophH4r--C0FLZOzv.js +1 -0
- package/dist/assets/railroad-ebnf-EBAXGLYW-AZNjl_Zu-DGtEHnA9.js +1 -0
- package/dist/assets/railroad-peg-LSFZ7HO6-BSiEEyeb-CreTgxNy.js +1 -0
- package/dist/assets/{railroadDiagram-RFXS5EU6-BkfbdeAs-D3nWzhoi.js → railroadDiagram-RFXS5EU6-BkfbdeAs-BcsE6Ggi.js} +1 -1
- package/dist/assets/{requirementDiagram-TGXJPOKE-CrGTTjYg-BXJOdcqX.js → requirementDiagram-TGXJPOKE-CrGTTjYg-tOFWf7Wj.js} +1 -1
- package/dist/assets/{sankeyDiagram-HTMAVEWB-rWXPf03Z-BT7OPSSo.js → sankeyDiagram-HTMAVEWB-rWXPf03Z-CynV8Q_B.js} +1 -1
- package/dist/assets/{sequenceDiagram-DBY2YBRQ-nkJYWO2m-DUQmimHp.js → sequenceDiagram-DBY2YBRQ-nkJYWO2m-CLgDqxDM.js} +1 -1
- package/dist/assets/{stateDiagram-2N3HPSRC-T4-clK8b-DLDU9NAl.js → stateDiagram-2N3HPSRC-T4-clK8b-DbWlwbcm.js} +1 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-DIp7nhRd-DgqIU_8B.js +1 -0
- package/dist/assets/{swimlanes-5IMT3BWC-HmQNEntu-CiEjMDZR.js → swimlanes-5IMT3BWC-HmQNEntu-CULdZ2Ss.js} +1 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-BeoZhwg7-Zht4hkxA.js +8 -0
- package/dist/assets/{timeline-definition-FHXFAJF6-CNc9jSTP-qngINip4.js → timeline-definition-FHXFAJF6-CNc9jSTP-DmFMY1Mv.js} +1 -1
- package/dist/assets/treeView-QDETBFTQ-nIQcG1h9-CxgFefwU.js +1 -0
- package/dist/assets/treemap-6X3UGDF4-BnsvC8yL-CyDDLqfk.js +1 -0
- package/dist/assets/{vennDiagram-L72KCM5P-Dr3pTJ_0-CI-qJgRs.js → vennDiagram-L72KCM5P-Dr3pTJ_0-BmBHfE4y.js} +1 -1
- package/dist/assets/wardley-OPB4EBWU-8Odxkx6V-DtA9dAOH.js +1 -0
- package/dist/assets/{wardleyDiagram-EHGQE667-DSFc7ZZa-DlPPC65K.js → wardleyDiagram-EHGQE667-DSFc7ZZa-DWvD9JbG.js} +1 -1
- package/dist/assets/{xychartDiagram-FW5EYKEG-BP0Nn4Pp-BinlTtjN.js → xychartDiagram-FW5EYKEG-BP0Nn4Pp-D2cjwNtU.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +4 -2
- package/server/activity-state.spec.ts +55 -0
- package/server/activity-state.ts +46 -0
- package/server/app-config.spec.ts +70 -2
- package/server/app-config.ts +37 -1
- package/server/backends/remoteHost/firebase.ts +9 -14
- package/server/backends/remoteHost/index.ts +25 -56
- package/server/backends/remoteHost/ingestAttachments.ts +6 -3
- package/server/backends/remoteHost/onExpire.ts +2 -2
- package/server/backends/remoteHost/routes.spec.ts +113 -0
- package/server/backends/remoteHost/routes.ts +97 -0
- package/server/backends/remoteHost/session.spec.ts +14 -0
- package/server/backends/remoteHost/session.ts +93 -0
- package/server/config-routes.ts +14 -12
- package/server/index.ts +51 -23
- package/server/pick-file.spec.ts +19 -0
- package/server/pick-file.ts +46 -38
- package/server/web-push.spec.ts +37 -0
- package/server/web-push.ts +56 -0
- package/dist/assets/architecture-TIHT7OUA-CYMWc3UT-CcGK28Wb.js +0 -1
- package/dist/assets/channel-Di5rtkx0-CJv7O5cW.js +0 -1
- package/dist/assets/classDiagram-OUVF2IWQ-BgAZMSbT-DdJSBc1F.js +0 -1
- package/dist/assets/classDiagram-v2-EOCWNBFH-DxHTyui1-DdJSBc1F.js +0 -1
- package/dist/assets/cynefin-VYW2F7L2-DqA3n9nY-BIulluQj.js +0 -1
- package/dist/assets/eventmodeling-45OFAUF4-_BVSjAXf-D8Ivbop-.js +0 -1
- package/dist/assets/flowDiagram-23GEKE2U-BeOc_anm-Dk5wVlnP.js +0 -1
- package/dist/assets/gitGraph-TEB2WS4Q-CH12KLTN-MW0ISpSx.js +0 -1
- package/dist/assets/index-De_Nmxpc.js +0 -357
- package/dist/assets/info-DKCQHKI2-Cbw3mbiK-_OUQv6WN.js +0 -1
- package/dist/assets/packet-7NZHBO7P-lwb58iYx-C10L-hFO.js +0 -1
- package/dist/assets/pie-RZYD4A2V-B1UWb4Gu--5742Zz5.js +0 -1
- package/dist/assets/radar-I7S5WNFK-7CKcb_l--BHQOivQG.js +0 -1
- package/dist/assets/railroad-3IZDKUUU-gCySKdnW-BbRNCyKS.js +0 -1
- package/dist/assets/railroad-abnf-AHOZXSZD-BophH4r--D0SwiYgD.js +0 -1
- package/dist/assets/railroad-ebnf-EBAXGLYW-AZNjl_Zu-DdB_RBGP.js +0 -1
- package/dist/assets/railroad-peg-LSFZ7HO6-BSiEEyeb-CeDMAu58.js +0 -1
- package/dist/assets/stateDiagram-v2-6OUMAXLB-DIp7nhRd-Bxnpzuaj.js +0 -1
- package/dist/assets/swimlanesDiagram-G3AALYLV-BeoZhwg7-CWfgjlGg.js +0 -8
- package/dist/assets/treeView-QDETBFTQ-nIQcG1h9-DswVl6Qi.js +0 -1
- package/dist/assets/treemap-6X3UGDF4-BnsvC8yL-JquGkPwZ.js +0 -1
- package/dist/assets/wardley-OPB4EBWU-8Odxkx6V-Cv0QuPfn.js +0 -1
- package/server/waiting-state.spec.ts +0 -50
- package/server/waiting-state.ts +0 -29
package/README.md
CHANGED
|
@@ -302,6 +302,7 @@ The Settings modal (⚙) persists per-user UI choices to `~/.mulmoterminal/confi
|
|
|
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
303
|
| `buttons` | Header action buttons — see [Header buttons](#header-buttons). Omit to keep the defaults; set to replace them. |
|
|
304
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). |
|
|
305
306
|
|
|
306
307
|
#### Header buttons
|
|
307
308
|
|
|
@@ -325,6 +326,14 @@ chime) or in the config file; the server streams that file at `GET /api/sound` a
|
|
|
325
326
|
the client decodes it (falling back to the chime if it's missing or not audio). It's
|
|
326
327
|
your own local file referenced by absolute path — nothing is added to the package.
|
|
327
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
|
+
|
|
328
337
|
### Per-directory settings (`<project>/.mulmoterminal.json`)
|
|
329
338
|
|
|
330
339
|
Drop a `.mulmoterminal.json` in a project directory to give terminals opened **in
|
|
@@ -398,7 +407,9 @@ In dev, open the Vite URL; its proxy forwards `/ws`, `/ws/pubsub`, and `/api` to
|
|
|
398
407
|
|
|
399
408
|
## Scripts (Run menu)
|
|
400
409
|
|
|
401
|
-
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
|
|
402
413
|
that launches project scripts (a dev server, tests, a build, …) **in that cell, in
|
|
403
414
|
the directory the cell is pointed at** — so a whole workflow lives in one window
|
|
404
415
|
alongside the Claude sessions. Scripts are **per-directory**: the cell reads the
|
|
@@ -755,7 +766,7 @@ same-origin-guarded.
|
|
|
755
766
|
| `POST /api/transcribe`(`/model`…) | Voice-input transcription (Whisper, macOS). |
|
|
756
767
|
| `POST /api/translation` | Runtime UI-string translation. |
|
|
757
768
|
| `GET /api/remote-host/status` · `POST /api/remote-host/{connect,disconnect}` | Companion phone-client link. |
|
|
758
|
-
| `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). |
|
|
759
770
|
|
|
760
771
|
### WebSocket: `/ws` (terminal)
|
|
761
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-Cfp31QX2.js";import"./chunk-WYO6CB5R-B83L_z6I-TrxMG8rr.js";import"./chunk-VAUOI2AC-DrcykVNK-yJ-tlNfF.js";import{n as i,r as a,t as o}from"./chunk-MOJQB5TN-CqxshQHA-Czit54cz.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-Cfp31QX2.js";export{e as createArchitectureServices};
|