mulmoterminal 5.6.0 → 5.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.
Files changed (100) hide show
  1. package/README.md +10 -1
  2. package/dist/assets/{abnfDiagram-O67JEVCF-RFfgyLoh.js → abnfDiagram-O67JEVCF-CYOfx7Yo.js} +1 -1
  3. package/dist/assets/architecture-7GRP2DOG-Dijgh_EH.js +1 -0
  4. package/dist/assets/{architectureDiagram-NJMV4G6O-DAIQV4rO.js → architectureDiagram-NJMV4G6O-Dm0h1sLC.js} +1 -1
  5. package/dist/assets/{blockDiagram-BEXU5L5S-UROY713P.js → blockDiagram-BEXU5L5S-cC6WXel_.js} +1 -1
  6. package/dist/assets/{c4Diagram-YGBWAQC7-DTNuYtHX.js → c4Diagram-YGBWAQC7-BqW75dss.js} +1 -1
  7. package/dist/assets/channel-DHp9c6le.js +1 -0
  8. package/dist/assets/{chunk-3FUC2YCW-C-X1ZyiP.js → chunk-3FUC2YCW-DTVDYTX9.js} +1 -1
  9. package/dist/assets/{chunk-5DYCD2WN-DYzrVJ4g.js → chunk-5DYCD2WN-Dg5McYUR.js} +1 -1
  10. package/dist/assets/{chunk-742MDFTN-DS7U8zBF.js → chunk-742MDFTN-BEAKMPzi.js} +1 -1
  11. package/dist/assets/{chunk-7INBJB4K-B1wYOj10.js → chunk-7INBJB4K-C0yNpk2a.js} +1 -1
  12. package/dist/assets/{chunk-7M6MHVWA-BiGTObKz.js → chunk-7M6MHVWA-D-sFy2uQ.js} +1 -1
  13. package/dist/assets/{chunk-7PRAP22T-DVtJcWUJ.js → chunk-7PRAP22T-B14Ti70Y.js} +1 -1
  14. package/dist/assets/{chunk-GTNCS2PH-Da0ND9eE.js → chunk-GTNCS2PH-GehvsYOa.js} +1 -1
  15. package/dist/assets/{chunk-GWA4HPMP-CVesnc8B.js → chunk-GWA4HPMP-BulkiEZu.js} +1 -1
  16. package/dist/assets/{chunk-MBY4JIJT-L9FiAeQ3.js → chunk-MBY4JIJT-tfx8juF1.js} +1 -1
  17. package/dist/assets/{chunk-NETBCI7D-CXJT9YAs.js → chunk-NETBCI7D-C47K-ltk.js} +1 -1
  18. package/dist/assets/{chunk-O7XYJQB3-Dqy2Ij3F.js → chunk-O7XYJQB3-BCjP9Rta.js} +1 -1
  19. package/dist/assets/{chunk-UA2S7LBM-Bfg3sSte.js → chunk-UA2S7LBM-BpEzQRku.js} +1 -1
  20. package/dist/assets/{chunk-WEXAMYUT-RM1WdIlv.js → chunk-WEXAMYUT-D2vVHs-s.js} +1 -1
  21. package/dist/assets/{chunk-Z7XXMR3K-Dt-Plljg.js → chunk-Z7XXMR3K-DrJC9r6c.js} +1 -1
  22. package/dist/assets/{chunk-ZIGJFQKS-3lsPo_kX.js → chunk-ZIGJFQKS-Cqa6msm6.js} +1 -1
  23. package/dist/assets/{classDiagram-v2-NBCMYWYE-DKOdHcNv.js → classDiagram-v2-NBCMYWYE-D69sDeij.js} +1 -1
  24. package/dist/assets/{cynefin-OW5HDTMX-CdfEeYnn.js → cynefin-OW5HDTMX-D9hRYnKO.js} +1 -1
  25. package/dist/assets/{cynefinDiagram-VND7K2PF-IkWvIqEb.js → cynefinDiagram-VND7K2PF-DldT_nhD.js} +1 -1
  26. package/dist/assets/{dagre-6A5THRUB-DLgBrsyE.js → dagre-6A5THRUB-BlyXIart.js} +1 -1
  27. package/dist/assets/{diagram-22UHCM2B-zk6neLfs.js → diagram-22UHCM2B-CjYyg7-_.js} +1 -1
  28. package/dist/assets/{diagram-3UASUU5V-C7fNd6nz.js → diagram-3UASUU5V-D8pdVWk4.js} +1 -1
  29. package/dist/assets/{diagram-ATOU4E4O-CzZ0ybLh.js → diagram-ATOU4E4O-DxMrJkE8.js} +1 -1
  30. package/dist/assets/{diagram-CDSNMT55-DFzYQbXV.js → diagram-CDSNMT55-BrsVpho9.js} +1 -1
  31. package/dist/assets/{diagram-MLGK6HIB-LhlSm3At.js → diagram-MLGK6HIB-CzfhH-bY.js} +1 -1
  32. package/dist/assets/{diagram-MPIPVDR6-DGlz-Gz_.js → diagram-MPIPVDR6-BGHdoFkl.js} +1 -1
  33. package/dist/assets/{dist-BmiKcFDk.js → dist-C5oyTNeI.js} +1 -1
  34. package/dist/assets/{dist-CYyCFtex.js → dist-CJNuReym.js} +1 -1
  35. package/dist/assets/{dist-DlVfafDj.js → dist-CQ590Pt6.js} +1 -1
  36. package/dist/assets/{dist-CUB7R6CP.js → dist-DEUFvoe-.js} +1 -1
  37. package/dist/assets/{ebnfDiagram-ZINNZB2B-BXOpXLDq.js → ebnfDiagram-ZINNZB2B-DCg9UZ81.js} +1 -1
  38. package/dist/assets/{elk-276RUBZZ-COOLC29s.js → elk-276RUBZZ-C18yctnQ.js} +1 -1
  39. package/dist/assets/{erDiagram-OPXOYQCR-DLW9touV.js → erDiagram-OPXOYQCR-Dq5BOJPw.js} +1 -1
  40. package/dist/assets/eventmodeling-NTZA5JFV-CDYLpUt9.js +1 -0
  41. package/dist/assets/flowDiagram-KWPJA3E3-h1ikP3h8.js +1 -0
  42. package/dist/assets/{ganttDiagram-FUAMR5RP-B-J2yKj-.js → ganttDiagram-FUAMR5RP-BSrhA7Pa.js} +1 -1
  43. package/dist/assets/{gitGraph-4MIJSDKK-D9V7nTh3.js → gitGraph-4MIJSDKK-CvczhabF.js} +1 -1
  44. package/dist/assets/{gitGraphDiagram-X574FWY7-D2ydD-sr.js → gitGraphDiagram-X574FWY7-29kAFfTL.js} +1 -1
  45. package/dist/assets/index-ugC-gYB8.css +1 -0
  46. package/dist/assets/{index-jqKj2Ih-.js → index-yIGIp5mP.js} +137 -137
  47. package/dist/assets/{info-A6RAGUB7-BZamo1a2.js → info-A6RAGUB7-5Vfn18aA.js} +1 -1
  48. package/dist/assets/{infoDiagram-VRGFBTTK-1mF8GY7H.js → infoDiagram-VRGFBTTK-C0xjRn68.js} +1 -1
  49. package/dist/assets/{ishikawaDiagram-OU5B5YK6-Duj77geT.js → ishikawaDiagram-OU5B5YK6-BNyfWBfD.js} +1 -1
  50. package/dist/assets/{journeyDiagram-ZHPQQLJL-avHPhq3z.js → journeyDiagram-ZHPQQLJL-Bgoyolap.js} +1 -1
  51. package/dist/assets/{kanban-definition-PNTS6WVX-B3YcPpJl.js → kanban-definition-PNTS6WVX-B_T0w2yS.js} +1 -1
  52. package/dist/assets/{line-DoCr4bJP.js → line-BrXN-7YZ.js} +1 -1
  53. package/dist/assets/{mermaid-parser.core-V1gpWY2I.js → mermaid-parser.core-Co2Ckrb2.js} +3 -3
  54. package/dist/assets/{mermaid.core-D3e7D68E.js → mermaid.core-D_YUclq0.js} +4 -4
  55. package/dist/assets/{mindmap-definition-NLK3R4M7-u1klmfn5.js → mindmap-definition-NLK3R4M7-fNbg5oGy.js} +1 -1
  56. package/dist/assets/{packet-AYTQ26CC-BJILPUX-.js → packet-AYTQ26CC-CMQpjVs5.js} +1 -1
  57. package/dist/assets/{pegDiagram-GJSIUBJH-B1a6bBkF.js → pegDiagram-GJSIUBJH-Be59j7k7.js} +1 -1
  58. package/dist/assets/{pie-WAS4IAKB-DbR_G7bn.js → pie-WAS4IAKB-BXlA1T4A.js} +1 -1
  59. package/dist/assets/{pieDiagram-5QR66LMP-BQP4p421.js → pieDiagram-5QR66LMP-DNRFkJyr.js} +1 -1
  60. package/dist/assets/{quadrantDiagram-O4NWA36T-D8utwgpm.js → quadrantDiagram-O4NWA36T-C0i5FRZ5.js} +1 -1
  61. package/dist/assets/{radar-RG4KPBEZ-BXz4Ty90.js → radar-RG4KPBEZ-2KY2iAu1.js} +1 -1
  62. package/dist/assets/{railroad-74A4TZTK-B37cvSf2.js → railroad-74A4TZTK-C_GgKCcI.js} +1 -1
  63. package/dist/assets/railroad-abnf-HS5TGJTU-Cf7XV4TE.js +1 -0
  64. package/dist/assets/railroad-ebnf-LZEXJU2U-CKRQohBA.js +1 -0
  65. package/dist/assets/railroad-peg-WCYAUIDC-CjbG--HC.js +1 -0
  66. package/dist/assets/{railroadDiagram-XR7U4H2S-DMSskLpg.js → railroadDiagram-XR7U4H2S-fr0qrDLC.js} +1 -1
  67. package/dist/assets/{requirementDiagram-PLB6GJNP-DVh6Y9kv.js → requirementDiagram-PLB6GJNP-B2KHZAiT.js} +1 -1
  68. package/dist/assets/{sankeyDiagram-IPEJSGJF-7e6ybiU1.js → sankeyDiagram-IPEJSGJF-BemGIYLY.js} +1 -1
  69. package/dist/assets/{sequenceDiagram-PO4LG4MO-MwLzuLBw.js → sequenceDiagram-PO4LG4MO-CiH1vDbp.js} +1 -1
  70. package/dist/assets/{stateDiagram-v2-GCMORJYK-ClFmP9D_.js → stateDiagram-v2-GCMORJYK-DmIHn8Nr.js} +1 -1
  71. package/dist/assets/{swimlanes-2SLR337P-94uTsBbN.js → swimlanes-2SLR337P-BmsAt5p2.js} +1 -1
  72. package/dist/assets/swimlanesDiagram-TC7HE7FX-DvhbaIot.js +8 -0
  73. package/dist/assets/{timeline-definition-EJHVYXUP-Do5dGsUL.js → timeline-definition-EJHVYXUP-CyNooLGe.js} +1 -1
  74. package/dist/assets/{treeView-Q6P3EWNA-BcUdf2cs.js → treeView-Q6P3EWNA-o7bobygY.js} +1 -1
  75. package/dist/assets/{treemap-WGGIJYW6-g4e4QV1M.js → treemap-WGGIJYW6-CZmVz7iJ.js} +1 -1
  76. package/dist/assets/{usecaseDiagram-POWQR4AR-CwWWrct5.js → usecaseDiagram-POWQR4AR-Bmltb1jH.js} +1 -1
  77. package/dist/assets/{vennDiagram-UO4OBE2U-CzwGLaXY.js → vennDiagram-UO4OBE2U-dgKx3GjX.js} +1 -1
  78. package/dist/assets/{wardley-WFR3VGLG-CwShVfwe.js → wardley-WFR3VGLG-C2KTqHOy.js} +1 -1
  79. package/dist/assets/{wardleyDiagram-VNRHLVJA-BYMi6RfJ.js → wardleyDiagram-VNRHLVJA-BUIrJNs3.js} +1 -1
  80. package/dist/assets/{xychartDiagram-PMCCYNJV-yED7nk5a.js → xychartDiagram-PMCCYNJV-B1S0Fgu_.js} +1 -1
  81. package/dist/index.html +2 -2
  82. package/package.json +1 -1
  83. package/server/backends/remoteHost/hostSessionList.ts +67 -13
  84. package/server/backends/remoteHost/phoneRowText.ts +60 -0
  85. package/server/backends/remoteHost/terminalScreen.ts +28 -3
  86. package/server/index.ts +17 -1
  87. package/server/infra/tmux.ts +27 -0
  88. package/server/session/lifecycle.ts +3 -0
  89. package/server/session/pane-mode-watch.ts +72 -0
  90. package/server/session/pty-connection.ts +40 -14
  91. package/server/session/session-reads.ts +12 -1
  92. package/dist/assets/architecture-7GRP2DOG-D6B2cgBI.js +0 -1
  93. package/dist/assets/channel-btmtLVS8.js +0 -1
  94. package/dist/assets/eventmodeling-NTZA5JFV-DzjiXhxT.js +0 -1
  95. package/dist/assets/flowDiagram-KWPJA3E3-DB_pveN5.js +0 -1
  96. package/dist/assets/index-Ckw6w67E.css +0 -1
  97. package/dist/assets/railroad-abnf-HS5TGJTU-DyVFspQu.js +0 -1
  98. package/dist/assets/railroad-ebnf-LZEXJU2U-DdONoAAl.js +0 -1
  99. package/dist/assets/railroad-peg-WCYAUIDC-B7_KDdFK.js +0 -1
  100. package/dist/assets/swimlanesDiagram-TC7HE7FX-CpVlK8Hz.js +0 -8
package/README.md CHANGED
@@ -646,6 +646,12 @@ a crash. Windows keeps the old behaviour — the launcher ends when its server d
646
646
  before. An explicit close (a cell's ✕) ends the tmux session; a machine reboot does not
647
647
  survive (tmux itself is gone). Command-cell scripts are ephemeral and not persisted.
648
648
 
649
+ **Scrolling back can put a pane in tmux's copy-mode.** A program that does not handle the mouse
650
+ itself — a shell, or Codex's normal screen — scrolls through tmux: a wheel-up or a drag enters
651
+ copy-mode, where keys move through the history instead of reaching the program. While a pane is
652
+ in it, the cell shows a **"Viewing history" banner** with a **Back to input** button; `q` works
653
+ too. Leaving sends nothing to the program, and keys typed right after the button are not lost.
654
+
649
655
  **Installing tmux** (optional):
650
656
 
651
657
  ```bash
@@ -2034,6 +2040,7 @@ connection (or reattach to an existing background PTY).
2034
2040
  | `{ "type": "session", "id": string }` | Sent immediately on connect — the session id this socket is bound to (lets the client learn a new session's generated id). |
2035
2041
  | `{ "type": "output", "data": string }` | PTY output to write to the terminal. On reattach, the first `output` frame is the replayed tail buffer (≤ 64 KB). |
2036
2042
  | `{ "type": "exit", "exitCode": number, "signal": number }` | The `claude` process exited; the socket then closes. |
2043
+ | `{ "type": "paneMode", "inCopyMode": boolean }` | tmux-backed sessions only: whether the pane is in tmux copy-mode, where keys go to tmux instead of the program. Sent when it changes, and again to a reattached socket. |
2037
2044
 
2038
2045
  **Client → server** (JSON text frames):
2039
2046
 
@@ -2041,6 +2048,7 @@ connection (or reattach to an existing background PTY).
2041
2048
  | ------- | ------- |
2042
2049
  | `{ "type": "input", "data": string }` | Keystrokes / bytes to write to the PTY. |
2043
2050
  | `{ "type": "resize", "cols": number, "rows": number }` | Resize the PTY. |
2051
+ | `{ "type": "exitCopyMode" }` | tmux-backed sessions only: leave copy-mode (`send-keys -X cancel`). Writes nothing to the PTY. |
2044
2052
 
2045
2053
  A non-JSON frame is written to the PTY verbatim (fallback).
2046
2054
 
@@ -2050,7 +2058,8 @@ A non-JSON frame is written to the PTY verbatim (fallback).
2050
2058
 
2051
2059
  ### More WebSocket endpoints
2052
2060
 
2053
- The other raw WebSockets share the `/ws` frame format (`output` / `input` / `resize` / `exit`).
2061
+ The other raw WebSockets share the `/ws` frame format (`output` / `input` / `resize` / `exit`, plus
2062
+ `paneMode` / `exitCopyMode` for a tmux-backed session).
2054
2063
  **Every non-Claude agent has one** — `/ws/codex`, `/ws/antigravity`, `/ws/grok`, `/ws/muse`,
2055
2064
  `/ws/copilot`, `/ws/cursor` — and they take the same query and behave the same way; codex's is
2056
2065
  documented here as the representative one, and the per-agent differences are the matrix in
@@ -1 +1 @@
1
- import{m as e,t}from"./mermaid-parser.core-V1gpWY2I.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-CllyRBe0.js";import"./chunk-O7XYJQB3-Dqy2Ij3F.js";import{n as i,r as a,t as o}from"./chunk-GTNCS2PH-Da0ND9eE.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-D3e7D68E.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(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=n(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=n(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=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
1
+ import{m as e,t}from"./mermaid-parser.core-Co2Ckrb2.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-CllyRBe0.js";import"./chunk-O7XYJQB3-BCjP9Rta.js";import{n as i,r as a,t as o}from"./chunk-GTNCS2PH-GehvsYOa.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-D_YUclq0.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(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=n(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=n(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=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[ABNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
@@ -0,0 +1 @@
1
+ import"./chunk-FOHPRMQF-DzxwRta7.js";import{M as e}from"./mermaid-parser.core-Co2Ckrb2.js";export{e as createArchitectureServices};