mulmoterminal 4.22.0 → 4.23.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 +22 -15
- package/common/guiMcpAgents.ts +2 -28
- package/dist/assets/{AllPackages-CF2GkZ5g-BcuVXmcX.js → AllPackages-CF2GkZ5g-Dcf5cDN0.js} +1 -1
- package/dist/assets/{BaseConfiguration-CAwZOAki-D9nXz-eP.js → BaseConfiguration-CAwZOAki-DUdHJKsk.js} +1 -1
- package/dist/assets/{Element-BMI7Nj5w-9E1MzusH.js → Element-BMI7Nj5w-hV6e9MWX.js} +1 -1
- package/dist/assets/{Entities-C8p_0jCn-aaXtUOdq.js → Entities-C8p_0jCn-B8iGcgdn.js} +1 -1
- package/dist/assets/{FunctionList-YWk54TCy-XBYAozMP.js → FunctionList-YWk54TCy-BirKP0I_.js} +1 -1
- package/dist/assets/{InputJax-C5dj-ntL-DkjYd-Hz.js → InputJax-C5dj-ntL-Darzu8r-.js} +1 -1
- package/dist/assets/{MathItem-YJvQL-XJ-RKdhqGjF.js → MathItem-YJvQL-XJ-BelhLvBn.js} +1 -1
- package/dist/assets/{MmlFactory-DuXYIgx8-Cs82jkFU.js → MmlFactory-DuXYIgx8-djfJFX6f.js} +1 -1
- package/dist/assets/{Options-oARQeeuT-DT1Tx-Lf.js → Options-oARQeeuT-J_ILSCvw.js} +1 -1
- package/dist/assets/{OutputJax-DfUZNNCu-C6-qqEPU.js → OutputJax-DfUZNNCu-DtuXVd03.js} +1 -1
- package/dist/assets/{PrioritizedList-6lun1Xqd-CbjBO_Oc.js → PrioritizedList-6lun1Xqd-BilCpUSB.js} +1 -1
- package/dist/assets/{Styles-BPXeoqzi-CrUDQm_T.js → Styles-BPXeoqzi-CdLkCiVG.js} +1 -1
- package/dist/assets/{TeXAtom-LHT3KFWH-CAgE6z_w.js → TeXAtom-LHT3KFWH-BXMHOoT3.js} +1 -1
- package/dist/assets/{abnfDiagram-VCTEODGH-DoYNjdBB-CYzeMhfw.js → abnfDiagram-VCTEODGH-DoYNjdBB-B7ZIBaJ6.js} +1 -1
- package/dist/assets/{arc-CqByPKkF-CiGsCTiw.js → arc-CqByPKkF-FwfFFIr8.js} +1 -1
- package/dist/assets/architecture-7GRP2DOG-CRS69XmP-DpDCM-7V.js +1 -0
- package/dist/assets/{architectureDiagram-5GKGNRK7-BhcT6qS5-CxYCYh4L.js → architectureDiagram-5GKGNRK7-BhcT6qS5-Baq_JrpW.js} +1 -1
- package/dist/assets/{assistive-mml-DXJXho4o-Rb2wPxtZ.js → assistive-mml-DXJXho4o-rl36c5mB.js} +1 -1
- package/dist/assets/{blockDiagram-I7D4REHJ-1Cng0Q4K-Cs0cTz0Q.js → blockDiagram-I7D4REHJ-1Cng0Q4K-_Juv9OUQ.js} +1 -1
- package/dist/assets/{c4Diagram-7LVT6UL2-CAb9c8nc-BUsnyqmK.js → c4Diagram-7LVT6UL2-CAb9c8nc-Bd9Kox9w.js} +1 -1
- package/dist/assets/channel-BjESmYnj-Dr25JeaW.js +1 -0
- package/dist/assets/{chunk-4HAMMTFA-ChwfIAnF-BHjtPDde.js → chunk-4HAMMTFA-ChwfIAnF-BDdeq7BI.js} +1 -1
- package/dist/assets/{chunk-75Z2AOVW-CbPA0Zt_-CdgguGGU.js → chunk-75Z2AOVW-CbPA0Zt_-DVkb-raF.js} +1 -1
- package/dist/assets/{chunk-DU6HZSFF-DuOx2LFX--8Aqhl9J.js → chunk-DU6HZSFF-DuOx2LFX-DQp1Pge9.js} +1 -1
- package/dist/assets/{chunk-F27PBJKO-CgBMw9yN-DAXe7Kw9.js → chunk-F27PBJKO-CgBMw9yN-D7wnwed7.js} +1 -1
- package/dist/assets/{chunk-GMAD6QVW-JTqlimUX-B9fBYVVw.js → chunk-GMAD6QVW-JTqlimUX-wV8tTz7w.js} +1 -1
- package/dist/assets/{chunk-GVQU2GXP-D6ccB4DO-C9ciWebQ.js → chunk-GVQU2GXP-D6ccB4DO-DSqETOAb.js} +1 -1
- package/dist/assets/{chunk-IMKFNOWR-ij1DSzMb-siJmTc1J.js → chunk-IMKFNOWR-ij1DSzMb-dYKuj_-S.js} +1 -1
- package/dist/assets/{chunk-L3NEJ4N5-CUoAQVG2-D2PIgA5u.js → chunk-L3NEJ4N5-CUoAQVG2-CznTknVk.js} +1 -1
- package/dist/assets/{chunk-OSK3NFVY-_VNbXQSu-D6uNmbP7.js → chunk-OSK3NFVY-_VNbXQSu-BOPlkrah.js} +1 -1
- package/dist/assets/{chunk-P2QGCYS3-B8lzOn3Y-B0rhisRg.js → chunk-P2QGCYS3-B8lzOn3Y-GBonRamd.js} +1 -1
- package/dist/assets/{chunk-POPQ4Y6H-Bh_uOTmp-F2MZHALw.js → chunk-POPQ4Y6H-Bh_uOTmp-YP4Y0H7o.js} +1 -1
- package/dist/assets/{chunk-PWAF6VOD-DzjnfYSw-BAEg9ICR.js → chunk-PWAF6VOD-DzjnfYSw-DlHoeX2q.js} +1 -1
- package/dist/assets/{chunk-SHT3W25Y-B8dQLS5w-JocijxSR.js → chunk-SHT3W25Y-B8dQLS5w-BYPNRBhs.js} +1 -1
- package/dist/assets/{chunk-SVP7TREG-B6A-T8Th-DGod9RQf.js → chunk-SVP7TREG-B6A-T8Th-BYSVtNuZ.js} +1 -1
- package/dist/assets/{chunk-TICWLB2K-C1kwD29l-D-fcAtmN.js → chunk-TICWLB2K-C1kwD29l-Br0bNia0.js} +1 -1
- package/dist/assets/{chunk-XXDRQBXY-vg0kfC73-BHJD87yL.js → chunk-XXDRQBXY-vg0kfC73-CPErv3MQ.js} +1 -1
- package/dist/assets/classDiagram-ZZMXUADV-C7gP-pUH-CPvsl0Ux.js +1 -0
- package/dist/assets/classDiagram-v2-VYDZK3BY-CUwV5k1F-CPvsl0Ux.js +1 -0
- package/dist/assets/{cose-bilkent-JH36ORCC-NuHCtE3P-BEFDutcR.js → cose-bilkent-JH36ORCC-NuHCtE3P-h2_ltbMI.js} +1 -1
- package/dist/assets/cynefin-OW5HDTMX-C4iKivN4-DdU3BeU3.js +1 -0
- package/dist/assets/{cynefinDiagram-5FMLGOSQ-CA7sro34-hf-uq6uW.js → cynefinDiagram-5FMLGOSQ-CA7sro34-DEmjN8U0.js} +1 -1
- package/dist/assets/{dagre-GXQ25YYZ-DOztjUR_-DYJC88Cb.js → dagre-GXQ25YYZ-DOztjUR_-v1g1_N9e.js} +1 -1
- package/dist/assets/{diagram-S7CK7UJ4-D_nsLfRT-DaDGeJUx.js → diagram-S7CK7UJ4-D_nsLfRT-CG7iqcK9.js} +1 -1
- package/dist/assets/{diagram-UQ7AKVKN-DNN-YX9a-D8JdyLBv.js → diagram-UQ7AKVKN-DNN-YX9a-DPhn9r3f.js} +1 -1
- package/dist/assets/{diagram-VSXAHHWV--HENzo-l-CqoOnNdh.js → diagram-VSXAHHWV--HENzo-l-DiD97poT.js} +1 -1
- package/dist/assets/{diagram-VX7I27RA-m2m9dROj-CsT-aVOB.js → diagram-VX7I27RA-m2m9dROj-BKDeFJgq.js} +1 -1
- package/dist/assets/{diagram-Z3DM3KII-D4qpv4-B-DCgIzms7.js → diagram-Z3DM3KII-D4qpv4-B-D0DcEN8W.js} +1 -1
- package/dist/assets/{dist-C1y0E8Di.js → dist-CyJfj5nA.js} +1 -1
- package/dist/assets/{dist-CrvZQbzA.js → dist-D1NuNlw7.js} +1 -1
- package/dist/assets/{dist-DeiyD9Ki-HmcgckNS.js → dist-DeiyD9Ki-CsdnEslR.js} +1 -1
- package/dist/assets/{dist-DjAUC6Df.js → dist-csgyobRf.js} +1 -1
- package/dist/assets/{dist-D0m3HNDL.js → dist-iwCSUG0R.js} +1 -1
- package/dist/assets/{ebnfDiagram-PWID7BFC-CAbv3sZg-D_wgwK21.js → ebnfDiagram-PWID7BFC-CAbv3sZg-zYV7b2Vy.js} +1 -1
- package/dist/assets/{erDiagram-RLTQ6QDP-a10Ryh0--Bujk3q7n.js → erDiagram-RLTQ6QDP-a10Ryh0--Dq--2XRb.js} +1 -1
- package/dist/assets/eventmodeling-NTZA5JFV-DhqtNS8R-C9p-sqyF.js +1 -0
- package/dist/assets/flowDiagram-HODETNUW-CAW_8mwY-C7N_B32G.js +1 -0
- package/dist/assets/{ganttDiagram-EL5Y4UJY-Cb7leeOC-BM1XnrTx.js → ganttDiagram-EL5Y4UJY-Cb7leeOC-BZul1n-G.js} +1 -1
- package/dist/assets/gitGraph-4MIJSDKK-S_Zs6Nxs-DY1iSFH4.js +1 -0
- package/dist/assets/{gitGraphDiagram-WWUBYQGX-BCSbUpXG-wz9LJhjS.js → gitGraphDiagram-WWUBYQGX-BCSbUpXG-Cd562rpn.js} +1 -1
- package/dist/assets/{html-DdQiKDqM-_EHD0DY0.js → html-DdQiKDqM-BsuwriGq.js} +1 -1
- package/dist/assets/{index-IfilW1QZ.js → index-CDUg8mhn.js} +330 -330
- package/dist/assets/info-A6RAGUB7-4sGJh1is-C7ujB-Ie.js +1 -0
- package/dist/assets/{infoDiagram-27XIBGKW-BJRaZItN-DUn6Imd4.js → infoDiagram-27XIBGKW-BJRaZItN-Cm4T5Wwv.js} +1 -1
- package/dist/assets/{ishikawaDiagram-5VMMS53U-DHlFe__S-QEXazEAW.js → ishikawaDiagram-5VMMS53U-DHlFe__S-DGs6xnNx.js} +1 -1
- package/dist/assets/{journeyDiagram-3NMN7TZE-BOIo3JM--BuXFu263.js → journeyDiagram-3NMN7TZE-BOIo3JM--Bzc0IZn6.js} +1 -1
- package/dist/assets/{kanban-definition-UXKFOSKX-yrQdG683-DOReg6eb.js → kanban-definition-UXKFOSKX-yrQdG683-Cct0Djrh.js} +1 -1
- package/dist/assets/{lengths-CvmPfBid-BCQFXUKI.js → lengths-CvmPfBid-CzTSmCcr.js} +1 -1
- package/dist/assets/{line-DUb1TjJS-BuJA9mg4.js → line-DUb1TjJS-3fYWqbSc.js} +1 -1
- package/dist/assets/{linear-xsuGWu5q-n7S60vDq.js → linear-xsuGWu5q-CfNm2yv7.js} +1 -1
- package/dist/assets/{liteAdaptor-C0FQiOEx-Cq4--uCe.js → liteAdaptor-C0FQiOEx-CTVB31Rv.js} +1 -1
- package/dist/assets/{mathjax-DVEo4UYj-CQVW99gS.js → mathjax-DVEo4UYj-Bp47CElr.js} +1 -1
- package/dist/assets/{mermaid-parser.core-fkjeiYO7-BB0BoGpH.js → mermaid-parser.core-fkjeiYO7-P9xXkjhl.js} +2 -2
- package/dist/assets/{mermaid.core-CZDx2Cyn-BgLyvZEv.js → mermaid.core-CZDx2Cyn-C08TJAFj.js} +4 -4
- package/dist/assets/{mindmap-definition-YA3MSWOX-BpKAVyqs-C-qd-rAQ.js → mindmap-definition-YA3MSWOX-BpKAVyqs-d4jTnjxk.js} +1 -1
- package/dist/assets/{mo-CrlNnGXX-ZonVrraQ.js → mo-CrlNnGXX-DC4IkWbc.js} +1 -1
- package/dist/assets/packet-AYTQ26CC-MQQyx8fI-2fyYIiyC.js +1 -0
- package/dist/assets/{pegDiagram-XKGWAZYB-C7eG_Ohl-qsj3QzrM.js → pegDiagram-XKGWAZYB-C7eG_Ohl-Bq1D--Oy.js} +1 -1
- package/dist/assets/pie-WAS4IAKB-CyaL5i_d-Cx6D4r8D.js +1 -0
- package/dist/assets/{pieDiagram-E7YTZNPT-5f9wSfDR-BtYdsTu0.js → pieDiagram-E7YTZNPT-5f9wSfDR-DSt7pK7-.js} +1 -1
- package/dist/assets/{quadrantDiagram-AXDQQJYC-mWeaOj5S-K6fu4j7h.js → quadrantDiagram-AXDQQJYC-mWeaOj5S-C-jM9gYY.js} +1 -1
- package/dist/assets/radar-RG4KPBEZ-DR-SsHDJ-DvcjCpIE.js +1 -0
- package/dist/assets/railroad-74A4TZTK-C2gqsOGX-CZDIxK_E.js +1 -0
- package/dist/assets/railroad-abnf-HS5TGJTU-Dpzw6P5u-C1DLl3Zi.js +1 -0
- package/dist/assets/railroad-ebnf-LZEXJU2U-J_BuIrPo-CIwsP1_7.js +1 -0
- package/dist/assets/railroad-peg-WCYAUIDC-DzMStOR--svRhPIKR.js +1 -0
- package/dist/assets/{railroadDiagram-O6MQD6OU-DJskhE7u-Db2jf6Vu.js → railroadDiagram-O6MQD6OU-DJskhE7u-myONQWUy.js} +1 -1
- package/dist/assets/{requirementDiagram-BXWQKSXE-B5E0bU4h-Bu5DE1z8.js → requirementDiagram-BXWQKSXE-B5E0bU4h-D9fqLodu.js} +1 -1
- package/dist/assets/{sankeyDiagram-P5KCCOFB-DS3AOTai-CnB0Boj3.js → sankeyDiagram-P5KCCOFB-DS3AOTai-BthgK6rY.js} +1 -1
- package/dist/assets/{sequenceDiagram-WJ2MYXX4-Bn2L9osv-CnvxSlmR.js → sequenceDiagram-WJ2MYXX4-Bn2L9osv-DS7EWkDd.js} +1 -1
- package/dist/assets/{src-CLC0ddSd-ShceZCNY.js → src-CLC0ddSd-BdwptT7W.js} +1 -1
- package/dist/assets/{stateDiagram-D77RDMKH-DbtoW7HL-CpFvDXBl.js → stateDiagram-D77RDMKH-DbtoW7HL-4vaZ49Do.js} +1 -1
- package/dist/assets/stateDiagram-v2-MP3YSRHH-CX6RalKY-R5jhdX-f.js +1 -0
- package/dist/assets/{svg-CaHU_sxA-BO3d_6Ky.js → svg-CaHU_sxA-Z3rOtT_R.js} +1 -1
- package/dist/assets/{swimlanes-42K2YHIH-90h8w_3B-Cb8CFT1b.js → swimlanes-42K2YHIH-90h8w_3B-MickVn2k.js} +1 -1
- package/dist/assets/swimlanesDiagram-VR7AAH4N-49XH_TMr-DC1vETI3.js +8 -0
- package/dist/assets/{tex-B1cONMvb-BfsG0Rte.js → tex-B1cONMvb-DcRnJGdj.js} +1 -1
- package/dist/assets/{timeline-definition-24CTP7MA-Bx3KcICO-BwXqR_3e.js → timeline-definition-24CTP7MA-Bx3KcICO-DL8QwA1A.js} +1 -1
- package/dist/assets/treeView-Q6P3EWNA-gFs854Sn-Dye9sPOg.js +1 -0
- package/dist/assets/treemap-WGGIJYW6-DGh_szUA-CiKg4aQq.js +1 -0
- package/dist/assets/{vennDiagram-4TSXK5OY-DSexNe_H-gzw6hGhi.js → vennDiagram-4TSXK5OY-DSexNe_H-BJy1ZzMN.js} +1 -1
- package/dist/assets/wardley-WFR3VGLG-BVLYL3gB-BdfK_sE2.js +1 -0
- package/dist/assets/{wardleyDiagram-VM6X3IG4-DesYYyZW--gQrXHHZ.js → wardleyDiagram-VM6X3IG4-DesYYyZW-CzErQ6vX.js} +1 -1
- package/dist/assets/{xychartDiagram-S5SC5T6Z-dIt6pHWV-DoBDFiMo.js → xychartDiagram-S5SC5T6Z-dIt6pHWV-B9Deu8_-.js} +1 -1
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/server/agents/antigravity-mcp.ts +7 -2
- package/server/agents/cursor-last-turn.ts +105 -0
- package/server/agents/cursor-mcp.ts +177 -0
- package/server/agents/cursor-sessions.ts +26 -4
- package/server/agents/cursor-usage.ts +123 -0
- package/server/infra/own-assign.ts +15 -0
- package/server/routes/hook-routes.ts +18 -1
- package/server/routes/mcp-routes.ts +2 -2
- package/server/routes/plugin-routes.ts +14 -12
- package/server/routes/ws-routes.ts +13 -2
- package/server/session/agent-badges.ts +10 -0
- package/server/session/bridge-session.ts +34 -14
- package/server/session/lifecycle.ts +2 -0
- package/server/session/session-reads.ts +18 -0
- package/server/session/spawn-cursor.ts +25 -9
- package/server/session/spawn-directory-mcp.ts +14 -0
- package/dist/assets/architecture-7GRP2DOG-CRS69XmP-D0hwkUSe.js +0 -1
- package/dist/assets/channel-BjESmYnj-CSH8it0a.js +0 -1
- package/dist/assets/classDiagram-ZZMXUADV-C7gP-pUH-DfPjXaJw.js +0 -1
- package/dist/assets/classDiagram-v2-VYDZK3BY-CUwV5k1F-DfPjXaJw.js +0 -1
- package/dist/assets/cynefin-OW5HDTMX-C4iKivN4-DO_vgD-g.js +0 -1
- package/dist/assets/eventmodeling-NTZA5JFV-DhqtNS8R-CO3LnOLR.js +0 -1
- package/dist/assets/flowDiagram-HODETNUW-CAW_8mwY-BAZr48OD.js +0 -1
- package/dist/assets/gitGraph-4MIJSDKK-S_Zs6Nxs-9qkMMsLJ.js +0 -1
- package/dist/assets/info-A6RAGUB7-4sGJh1is-B5MTNXpw.js +0 -1
- package/dist/assets/packet-AYTQ26CC-MQQyx8fI-DNzukwFF.js +0 -1
- package/dist/assets/pie-WAS4IAKB-CyaL5i_d-BvgAS1Ii.js +0 -1
- package/dist/assets/radar-RG4KPBEZ-DR-SsHDJ-BKmGFUW2.js +0 -1
- package/dist/assets/railroad-74A4TZTK-C2gqsOGX-CtqPBulg.js +0 -1
- package/dist/assets/railroad-abnf-HS5TGJTU-Dpzw6P5u-Uce82Efu.js +0 -1
- package/dist/assets/railroad-ebnf-LZEXJU2U-J_BuIrPo-b31ZUSUp.js +0 -1
- package/dist/assets/railroad-peg-WCYAUIDC-DzMStOR--Debzjp3V.js +0 -1
- package/dist/assets/stateDiagram-v2-MP3YSRHH-CX6RalKY-B6UpeGWr.js +0 -1
- package/dist/assets/swimlanesDiagram-VR7AAH4N-49XH_TMr-DlAxKIKI.js +0 -8
- package/dist/assets/treeView-Q6P3EWNA-gFs854Sn-BwdxVCvS.js +0 -1
- package/dist/assets/treemap-WGGIJYW6-DGh_szUA-BLuORwku.js +0 -1
- package/dist/assets/wardley-WFR3VGLG-BVLYL3gB-BlIA2tmL.js +0 -1
package/README.md
CHANGED
|
@@ -1446,9 +1446,13 @@ question: can this CLI be handed a session-scoped payload on a per-spawn flag? *
|
|
|
1446
1446
|
Copilot** can. **Antigravity, Grok and Cursor** cannot — they read a file in the directory — and
|
|
1447
1447
|
**Muse** reads neither, which is the third route below.
|
|
1448
1448
|
|
|
1449
|
-
**Cursor is
|
|
1450
|
-
|
|
1451
|
-
|
|
1449
|
+
**Cursor is half of each**, and the half nobody would guess is the second: it reads a file in the
|
|
1450
|
+
directory as agy does (`.cursor/mcp.json`, written by `server/agents/cursor-mcp.ts`), but it starts
|
|
1451
|
+
that MCP server on a CURATED ENVIRONMENT rather than its own — so the group and the port travel as
|
|
1452
|
+
ARGV, as muse's do, and the SESSION is resolved through `/api/mcp-resolve`. An agy-shaped entry (group
|
|
1453
|
+
in `env`, port inherited) was tried first and reached the bridge with no port at all. Cursor also refuses to
|
|
1454
|
+
load a server it has not APPROVED and says nothing when it skips one, so each entry is approved with
|
|
1455
|
+
`cursor-agent mcp enable` as the cell starts.
|
|
1452
1456
|
|
|
1453
1457
|
|
|
1454
1458
|
| | Workspace cell / single view | Project-directory grid cell |
|
|
@@ -1487,34 +1491,37 @@ Which route a session takes is decided by `carriesFullGuiMcp()` in
|
|
|
1487
1491
|
`server/session/mcp-config.ts` — the single view, a cell-less chat, or anything whose cwd **is**
|
|
1488
1492
|
the workspace take the first; anything in a project directory takes the second.
|
|
1489
1493
|
|
|
1490
|
-
**The workspace is agent-agnostic for the agents that can RECEIVE a per-spawn config** — claude
|
|
1491
|
-
codex ask the same predicate, so two terminals in the workspace reach the same tools no
|
|
1492
|
-
of the
|
|
1493
|
-
meet first:**
|
|
1494
|
+
**The workspace is agent-agnostic for the agents that can RECEIVE a per-spawn config** — claude,
|
|
1495
|
+
codex and copilot ask the same predicate, so two terminals in the workspace reach the same tools no
|
|
1496
|
+
matter which of the three started them. **Antigravity, Grok, Muse and Cursor cannot, and that is the
|
|
1497
|
+
exception you will meet first:**
|
|
1494
1498
|
|
|
1495
1499
|
| Started as | In the workspace | In a project directory |
|
|
1496
1500
|
|---|---|---|
|
|
1497
1501
|
| claude cell (including `?gui=0`) | `mt`, every tool | the directory's registered groups |
|
|
1498
1502
|
| codex cell | `mt`, every tool | the directory's registered groups |
|
|
1503
|
+
| copilot cell | `mt`, every tool | the directory's registered groups |
|
|
1504
|
+
| cursor cell | **the directory's registered groups** — nothing registered means **no GUI tools at all** | the directory's registered groups |
|
|
1499
1505
|
| antigravity cell | **the directory's registered groups** — nothing registered means **no GUI tools at all** | the directory's registered groups |
|
|
1500
1506
|
| grok cell | **the directory's registered groups** — nothing registered means **no GUI tools at all** | the directory's registered groups |
|
|
1501
1507
|
| muse cell | **the directory's registered groups** — nothing registered means **no GUI tools at all** | the directory's registered groups |
|
|
1502
1508
|
| any launcher chip | untouched | untouched |
|
|
1503
1509
|
|
|
1504
|
-
None of
|
|
1505
|
-
`.grok/config.toml` in the working directory, and `muse` reads a
|
|
1506
|
-
machine — and neither a file shared by every session in a directory nor
|
|
1507
|
-
handed to one session and not another — so there is nothing for "this cwd
|
|
1510
|
+
None of those four takes an MCP flag: `agy` reads `.agents/mcp_config.json`, `grok` reads
|
|
1511
|
+
`.grok/config.toml` and `cursor` reads `.cursor/mcp.json` in the working directory, and `muse` reads a
|
|
1512
|
+
plugin installed for the whole machine — and neither a file shared by every session in a directory nor
|
|
1513
|
+
a machine-wide plugin can be handed to one session and not another — so there is nothing for "this cwd
|
|
1514
|
+
is the workspace" to change. The
|
|
1508
1515
|
membership is `FULL_GUI_MCP_AGENTS` in `common/guiMcpAgents.ts`, in `common/` precisely so the
|
|
1509
1516
|
launcher form and the spawn cannot disagree about it
|
|
1510
1517
|
([#1423](https://github.com/receptron/mulmoterminal/issues/1423)).
|
|
1511
1518
|
|
|
1512
1519
|
The consequence is easy to hit and hard to guess: `presentDocument` works in a project you once
|
|
1513
1520
|
flipped **Canvas** on for, and is missing in the workspace where everything else is automatic. Fix it
|
|
1514
|
-
the same way anywhere — pick **Antigravity** or **
|
|
1515
|
-
flip the **Canvas** switch (it stays visible for
|
|
1516
|
-
registers the directory, never a session already running. Full procedure:
|
|
1517
|
-
[Antigravity and
|
|
1521
|
+
the same way anywhere — pick **Antigravity**, **Grok**, **Muse** or **Cursor**, point WORKING
|
|
1522
|
+
DIRECTORY at that directory, flip the **Canvas** switch (it stays visible for all four), and start a
|
|
1523
|
+
**new** session; the switch registers the directory, never a session already running. Full procedure:
|
|
1524
|
+
[Antigravity, Grok, Muse and Cursor register everywhere](https://receptron.github.io/mulmoterminal/guide/en/basics.html#antigravity-gui-tools)
|
|
1518
1525
|
· [日本語](https://receptron.github.io/mulmoterminal/guide/ja/basics.html#antigravity-gui-tools).
|
|
1519
1526
|
|
|
1520
1527
|
**A launcher chip is not an agent session — it is a command.** Whatever the command line names,
|
package/common/guiMcpAgents.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// Which agents are handed the WHOLE GUI MCP — every tool on one generated `mt` URL — when their
|
|
2
|
-
// session runs in the workspace, which reach GUI tools only through what their directory
|
|
3
|
-
// registered
|
|
4
|
-
// they read is one nothing here writes yet.
|
|
2
|
+
// session runs in the workspace, and which reach GUI tools only through what their directory
|
|
3
|
+
// registered.
|
|
5
4
|
//
|
|
6
5
|
// In `common/` because BOTH sides decide from it and neither can derive it: the server decides it
|
|
7
6
|
// by which spawn path consults `carriesFullGuiMcp`, and the launcher form decides from it whether
|
|
@@ -58,28 +57,3 @@ export const pickCarriesFullGuiMcp = (pick: AgentPick, customAgents: readonly Cu
|
|
|
58
57
|
if (custom) return agentCarriesFullGuiMcp(custom.agent);
|
|
59
58
|
return isLaunchAgent(pick) && agentCarriesFullGuiMcp(pick);
|
|
60
59
|
};
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Agents that reach NEITHER route — not the per-spawn flag above, and not the directory's
|
|
64
|
-
* registration either.
|
|
65
|
-
*
|
|
66
|
-
* Cursor alone, and that is a GAP rather than a mechanism: it reads `.cursor/mcp.json` (or
|
|
67
|
-
* `~/.cursor/mcp.json`) and nothing in this repo writes either file yet (#2066). Until one does,
|
|
68
|
-
* the launcher's four per-group switches cannot affect a cursor session — they register servers
|
|
69
|
-
* that Antigravity and Grok read — so showing them under a cursor cell's "GUI tools" is a control
|
|
70
|
-
* that does nothing, which is #1423's lesson from the other side: that issue was about HIDING the
|
|
71
|
-
* only control that could have helped, and this is about SHOWING one that cannot.
|
|
72
|
-
*
|
|
73
|
-
* Delete this the day #2066 lands. It is a list of one because the condition is a missing writer,
|
|
74
|
-
* not a property of the CLI.
|
|
75
|
-
*/
|
|
76
|
-
export const DIRECTORY_MCP_BLIND_AGENTS = ["cursor"] as const;
|
|
77
|
-
|
|
78
|
-
export const agentReachesNoGuiMcp = (agent: SessionAgent): boolean => DIRECTORY_MCP_BLIND_AGENTS.some((candidate) => candidate === agent);
|
|
79
|
-
|
|
80
|
-
/** The same question asked of an Agent Picker choice. A custom agent runs Claude Code, which is on
|
|
81
|
-
* the per-spawn route, so it is never blind. */
|
|
82
|
-
export const pickReachesNoGuiMcp = (pick: AgentPick, customAgents: readonly CustomAgent[]): boolean => {
|
|
83
|
-
if (customAgentFor(pick, customAgents)) return false;
|
|
84
|
-
return isLaunchAgent(pick) && agentReachesNoGuiMcp(pick);
|
|
85
|
-
};
|