mulmoterminal 4.17.0 → 4.18.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 (144) hide show
  1. package/common/toolGroups.ts +37 -4
  2. package/dist/assets/{AllPackages-CF2GkZ5g-BM2ZCqpM.js → AllPackages-CF2GkZ5g-BpghxJjj.js} +1 -1
  3. package/dist/assets/{BaseConfiguration-CAwZOAki-61HNB4KU.js → BaseConfiguration-CAwZOAki-WQURtaX1.js} +1 -1
  4. package/dist/assets/{Element-BMI7Nj5w-jhgNonEG.js → Element-BMI7Nj5w-CcDgA_9-.js} +1 -1
  5. package/dist/assets/{Entities-C8p_0jCn-uB3dgX2I.js → Entities-C8p_0jCn-DRWzxsVw.js} +1 -1
  6. package/dist/assets/{FunctionList-YWk54TCy-i3alyZfA.js → FunctionList-YWk54TCy-BrIR4n-1.js} +1 -1
  7. package/dist/assets/{InputJax-C5dj-ntL-Cz7UC3Uo.js → InputJax-C5dj-ntL-AT5iU-td.js} +1 -1
  8. package/dist/assets/{MathItem-YJvQL-XJ-C1bORDtj.js → MathItem-YJvQL-XJ-CxJPVleP.js} +1 -1
  9. package/dist/assets/{MmlFactory-DuXYIgx8-Bif7yIsv.js → MmlFactory-DuXYIgx8-Ey_YXuDi.js} +1 -1
  10. package/dist/assets/{Options-oARQeeuT-C50_lJqO.js → Options-oARQeeuT-BZ9bNEz5.js} +1 -1
  11. package/dist/assets/{OutputJax-DfUZNNCu-DE_RZgGD.js → OutputJax-DfUZNNCu-De4Z1Pn_.js} +1 -1
  12. package/dist/assets/{PrioritizedList-6lun1Xqd-C4vXSpxa.js → PrioritizedList-6lun1Xqd-BTQmhniB.js} +1 -1
  13. package/dist/assets/{Styles-BPXeoqzi-B0yxW5ro.js → Styles-BPXeoqzi-Cwo9PIXj.js} +1 -1
  14. package/dist/assets/{TeXAtom-LHT3KFWH-sdnhniMs.js → TeXAtom-LHT3KFWH-B58fWn67.js} +1 -1
  15. package/dist/assets/{abnfDiagram-VCTEODGH-DoYNjdBB-DDU_ufuO.js → abnfDiagram-VCTEODGH-DoYNjdBB-N4p9eIcR.js} +1 -1
  16. package/dist/assets/{arc-CqByPKkF-DYCiP5i4.js → arc-CqByPKkF-o90vYcFT.js} +1 -1
  17. package/dist/assets/architecture-7GRP2DOG-CRS69XmP-Dofb7uTe.js +1 -0
  18. package/dist/assets/{architectureDiagram-5GKGNRK7-BhcT6qS5-6joLXTpG.js → architectureDiagram-5GKGNRK7-BhcT6qS5-y2WkXlFP.js} +1 -1
  19. package/dist/assets/{assistive-mml-DXJXho4o-DTTIy-v6.js → assistive-mml-DXJXho4o-DHpoehaR.js} +1 -1
  20. package/dist/assets/{blockDiagram-I7D4REHJ-1Cng0Q4K-joPtLvDb.js → blockDiagram-I7D4REHJ-1Cng0Q4K-BDINYHUk.js} +1 -1
  21. package/dist/assets/{c4Diagram-7LVT6UL2-CAb9c8nc-IQqW75OE.js → c4Diagram-7LVT6UL2-CAb9c8nc-BtCR-OQb.js} +1 -1
  22. package/dist/assets/channel-BjESmYnj-D2HJk1kK.js +1 -0
  23. package/dist/assets/{chunk-4HAMMTFA-ChwfIAnF-COcrcqxY.js → chunk-4HAMMTFA-ChwfIAnF-BoqlitDw.js} +1 -1
  24. package/dist/assets/{chunk-75Z2AOVW-CbPA0Zt_-BF9bwhEX.js → chunk-75Z2AOVW-CbPA0Zt_-sG1wziTf.js} +1 -1
  25. package/dist/assets/{chunk-DU6HZSFF-DuOx2LFX-BT0kvgiW.js → chunk-DU6HZSFF-DuOx2LFX-jw2gw2WG.js} +1 -1
  26. package/dist/assets/{chunk-F27PBJKO-CgBMw9yN-1FJUPFRX.js → chunk-F27PBJKO-CgBMw9yN-BIA-Rq1B.js} +1 -1
  27. package/dist/assets/{chunk-GMAD6QVW-JTqlimUX-Bf8YP1up.js → chunk-GMAD6QVW-JTqlimUX-B7VyMMki.js} +1 -1
  28. package/dist/assets/{chunk-GVQU2GXP-D6ccB4DO-BKIPWMRX.js → chunk-GVQU2GXP-D6ccB4DO-CxN0Y161.js} +1 -1
  29. package/dist/assets/{chunk-IMKFNOWR-ij1DSzMb-Ct1tQH8R.js → chunk-IMKFNOWR-ij1DSzMb-Cp5MHDVx.js} +1 -1
  30. package/dist/assets/{chunk-L3NEJ4N5-CUoAQVG2-DU3oJJeV.js → chunk-L3NEJ4N5-CUoAQVG2-Cq8hXkjf.js} +1 -1
  31. package/dist/assets/{chunk-OSK3NFVY-_VNbXQSu-CzWFtK18.js → chunk-OSK3NFVY-_VNbXQSu-CLHHccp_.js} +1 -1
  32. package/dist/assets/{chunk-P2QGCYS3-B8lzOn3Y-nhIUuhjm.js → chunk-P2QGCYS3-B8lzOn3Y-9R8JiTOW.js} +1 -1
  33. package/dist/assets/{chunk-POPQ4Y6H-Bh_uOTmp-BDpTYVeC.js → chunk-POPQ4Y6H-Bh_uOTmp-IIk4SISs.js} +1 -1
  34. package/dist/assets/{chunk-PWAF6VOD-DzjnfYSw-DKPY-7mP.js → chunk-PWAF6VOD-DzjnfYSw-FXKbHA4z.js} +1 -1
  35. package/dist/assets/{chunk-SHT3W25Y-B8dQLS5w-BOuFBdeA.js → chunk-SHT3W25Y-B8dQLS5w-asO6U825.js} +1 -1
  36. package/dist/assets/{chunk-SVP7TREG-B6A-T8Th-D0lLwfAu.js → chunk-SVP7TREG-B6A-T8Th-C_31sNJS.js} +1 -1
  37. package/dist/assets/{chunk-TICWLB2K-C1kwD29l-ClC085Mh.js → chunk-TICWLB2K-C1kwD29l-De2Aa9yO.js} +1 -1
  38. package/dist/assets/{chunk-XXDRQBXY-vg0kfC73-CQphc_9V.js → chunk-XXDRQBXY-vg0kfC73-MJrwfLy3.js} +1 -1
  39. package/dist/assets/classDiagram-ZZMXUADV-C7gP-pUH-CTNdATck.js +1 -0
  40. package/dist/assets/classDiagram-v2-VYDZK3BY-CUwV5k1F-CTNdATck.js +1 -0
  41. package/dist/assets/{cose-bilkent-JH36ORCC-NuHCtE3P-Ctskoi14.js → cose-bilkent-JH36ORCC-NuHCtE3P-CBmhuRye.js} +1 -1
  42. package/dist/assets/cynefin-OW5HDTMX-C4iKivN4-BAbBOyvn.js +1 -0
  43. package/dist/assets/{cynefinDiagram-5FMLGOSQ-CA7sro34-B0HlDcFp.js → cynefinDiagram-5FMLGOSQ-CA7sro34-C7EC0rCC.js} +1 -1
  44. package/dist/assets/{dagre-GXQ25YYZ-DOztjUR_-B9a9ItM-.js → dagre-GXQ25YYZ-DOztjUR_-DUYDKcad.js} +1 -1
  45. package/dist/assets/{diagram-S7CK7UJ4-D_nsLfRT-BjeaPY2a.js → diagram-S7CK7UJ4-D_nsLfRT-6xfPNGOi.js} +1 -1
  46. package/dist/assets/{diagram-UQ7AKVKN-DNN-YX9a-B7lns2-O.js → diagram-UQ7AKVKN-DNN-YX9a-DabWPcsA.js} +1 -1
  47. package/dist/assets/{diagram-VSXAHHWV--HENzo-l-CYS8QI0b.js → diagram-VSXAHHWV--HENzo-l-0O7qAbYx.js} +1 -1
  48. package/dist/assets/{diagram-VX7I27RA-m2m9dROj-Df30362U.js → diagram-VX7I27RA-m2m9dROj-DSsL6lbk.js} +1 -1
  49. package/dist/assets/{diagram-Z3DM3KII-D4qpv4-B-DIRG03W8.js → diagram-Z3DM3KII-D4qpv4-B-x5aaLfdn.js} +1 -1
  50. package/dist/assets/{dist-DyK-orJO.js → dist-BHbP5Rdy.js} +1 -1
  51. package/dist/assets/{dist-DYecIxGd.js → dist-CI0Sz8VW.js} +1 -1
  52. package/dist/assets/{dist-DeiyD9Ki-NpwH3Qk1.js → dist-DeiyD9Ki-CyYR8D-0.js} +1 -1
  53. package/dist/assets/{dist-Ca5wsja_.js → dist-KHYYM69R.js} +1 -1
  54. package/dist/assets/{dist-nYE452Bv.js → dist-to-wCxn9.js} +1 -1
  55. package/dist/assets/{ebnfDiagram-PWID7BFC-CAbv3sZg-CLaLnxQc.js → ebnfDiagram-PWID7BFC-CAbv3sZg-CzJDavSQ.js} +1 -1
  56. package/dist/assets/{erDiagram-RLTQ6QDP-a10Ryh0--CNmjy1Io.js → erDiagram-RLTQ6QDP-a10Ryh0--BfSvF1ta.js} +1 -1
  57. package/dist/assets/eventmodeling-NTZA5JFV-DhqtNS8R-DZDQj3ay.js +1 -0
  58. package/dist/assets/flowDiagram-HODETNUW-CAW_8mwY-B4f7Dpo6.js +1 -0
  59. package/dist/assets/{ganttDiagram-EL5Y4UJY-Cb7leeOC-Bo_KYl5-.js → ganttDiagram-EL5Y4UJY-Cb7leeOC-DKtB1NzV.js} +1 -1
  60. package/dist/assets/gitGraph-4MIJSDKK-S_Zs6Nxs-CZ6NmIpk.js +1 -0
  61. package/dist/assets/{gitGraphDiagram-WWUBYQGX-BCSbUpXG-B25LdXPq.js → gitGraphDiagram-WWUBYQGX-BCSbUpXG-DKX1wbps.js} +1 -1
  62. package/dist/assets/{html-DdQiKDqM-CWXcuZKY.js → html-DdQiKDqM-O0S29Dwr.js} +1 -1
  63. package/dist/assets/{index-BQiJKXEe.js → index-yoMfkmrj.js} +353 -319
  64. package/dist/assets/info-A6RAGUB7-4sGJh1is-DIi5EBfj.js +1 -0
  65. package/dist/assets/{infoDiagram-27XIBGKW-BJRaZItN-CVeXTxkK.js → infoDiagram-27XIBGKW-BJRaZItN-q1dLBYbI.js} +1 -1
  66. package/dist/assets/{ishikawaDiagram-5VMMS53U-DHlFe__S-s0Hksvvm.js → ishikawaDiagram-5VMMS53U-DHlFe__S-DEAMGQtX.js} +1 -1
  67. package/dist/assets/{journeyDiagram-3NMN7TZE-BOIo3JM--CUDKJOre.js → journeyDiagram-3NMN7TZE-BOIo3JM--BO_7tBTd.js} +1 -1
  68. package/dist/assets/{kanban-definition-UXKFOSKX-yrQdG683-Bu-56dzn.js → kanban-definition-UXKFOSKX-yrQdG683-Bx4it8pk.js} +1 -1
  69. package/dist/assets/{lengths-CvmPfBid-DS9M1Zck.js → lengths-CvmPfBid-BJ7XjTXv.js} +1 -1
  70. package/dist/assets/{line-DUb1TjJS-C6h_ukz1.js → line-DUb1TjJS-DTQdqqNY.js} +1 -1
  71. package/dist/assets/{linear-xsuGWu5q-DCIuhl_K.js → linear-xsuGWu5q-DAJY5eE1.js} +1 -1
  72. package/dist/assets/{liteAdaptor-C0FQiOEx-68b9WFkn.js → liteAdaptor-C0FQiOEx-CpU2hMwG.js} +1 -1
  73. package/dist/assets/{mathjax-DVEo4UYj-BeP6fXTI.js → mathjax-DVEo4UYj-DblCQqUM.js} +1 -1
  74. package/dist/assets/{mermaid-parser.core-fkjeiYO7-BI7W6lAR.js → mermaid-parser.core-fkjeiYO7-xLW4or9n.js} +2 -2
  75. package/dist/assets/{mermaid.core-CZDx2Cyn-DunezLlE.js → mermaid.core-CZDx2Cyn-BWO3dTDf.js} +4 -4
  76. package/dist/assets/{mindmap-definition-YA3MSWOX-BpKAVyqs-DRRBWBS2.js → mindmap-definition-YA3MSWOX-BpKAVyqs-BrJpjBKU.js} +1 -1
  77. package/dist/assets/{mo-CrlNnGXX-DTWdNVwW.js → mo-CrlNnGXX-Eo4cINyg.js} +1 -1
  78. package/dist/assets/packet-AYTQ26CC-MQQyx8fI-yAikr6bQ.js +1 -0
  79. package/dist/assets/{pegDiagram-XKGWAZYB-C7eG_Ohl-B2Ycq3J4.js → pegDiagram-XKGWAZYB-C7eG_Ohl-CaXo4ojb.js} +1 -1
  80. package/dist/assets/pie-WAS4IAKB-CyaL5i_d-BIdTCQS6.js +1 -0
  81. package/dist/assets/{pieDiagram-E7YTZNPT-5f9wSfDR-D17gLilp.js → pieDiagram-E7YTZNPT-5f9wSfDR-BwnQjyyW.js} +1 -1
  82. package/dist/assets/{quadrantDiagram-AXDQQJYC-mWeaOj5S-5l2e2-lu.js → quadrantDiagram-AXDQQJYC-mWeaOj5S-DvsMFOc9.js} +1 -1
  83. package/dist/assets/radar-RG4KPBEZ-DR-SsHDJ-0JhYwnII.js +1 -0
  84. package/dist/assets/railroad-74A4TZTK-C2gqsOGX-C1zJ70Ow.js +1 -0
  85. package/dist/assets/railroad-abnf-HS5TGJTU-Dpzw6P5u-BMKd1LY4.js +1 -0
  86. package/dist/assets/railroad-ebnf-LZEXJU2U-J_BuIrPo-D5xXkaGL.js +1 -0
  87. package/dist/assets/railroad-peg-WCYAUIDC-DzMStOR--CTf0TsuO.js +1 -0
  88. package/dist/assets/{railroadDiagram-O6MQD6OU-DJskhE7u-B7L40GB9.js → railroadDiagram-O6MQD6OU-DJskhE7u-C_0njIFi.js} +1 -1
  89. package/dist/assets/{requirementDiagram-BXWQKSXE-B5E0bU4h-o05nW1Ur.js → requirementDiagram-BXWQKSXE-B5E0bU4h-C5hnNnLY.js} +1 -1
  90. package/dist/assets/{sankeyDiagram-P5KCCOFB-DS3AOTai-CFeYTT2u.js → sankeyDiagram-P5KCCOFB-DS3AOTai-pWFxLlmZ.js} +1 -1
  91. package/dist/assets/{sequenceDiagram-WJ2MYXX4-Bn2L9osv-BGgRBUQD.js → sequenceDiagram-WJ2MYXX4-Bn2L9osv-Qj-GBMA5.js} +1 -1
  92. package/dist/assets/{src-CLC0ddSd-DeMngDQg.js → src-CLC0ddSd-C6SesIb_.js} +1 -1
  93. package/dist/assets/{stateDiagram-D77RDMKH-DbtoW7HL-D4l11dwx.js → stateDiagram-D77RDMKH-DbtoW7HL-0tDoAFAn.js} +1 -1
  94. package/dist/assets/stateDiagram-v2-MP3YSRHH-CX6RalKY-CyxuK80e.js +1 -0
  95. package/dist/assets/{svg-CaHU_sxA-DGR0XOoK.js → svg-CaHU_sxA-hUQUwI5e.js} +1 -1
  96. package/dist/assets/{swimlanes-42K2YHIH-90h8w_3B-BBRu6p3C.js → swimlanes-42K2YHIH-90h8w_3B-BIANSbUk.js} +1 -1
  97. package/dist/assets/swimlanesDiagram-VR7AAH4N-49XH_TMr-nlZP2lTW.js +8 -0
  98. package/dist/assets/{tex-B1cONMvb-CWipwtJg.js → tex-B1cONMvb-BuuMe8DF.js} +1 -1
  99. package/dist/assets/{timeline-definition-24CTP7MA-Bx3KcICO-BEgprufy.js → timeline-definition-24CTP7MA-Bx3KcICO-uJwxqLxL.js} +1 -1
  100. package/dist/assets/treeView-Q6P3EWNA-gFs854Sn-BDnUAqSd.js +1 -0
  101. package/dist/assets/treemap-WGGIJYW6-DGh_szUA-BcyHS0XZ.js +1 -0
  102. package/dist/assets/{vennDiagram-4TSXK5OY-DSexNe_H-CS1weuUo.js → vennDiagram-4TSXK5OY-DSexNe_H-CEWVEpb7.js} +1 -1
  103. package/dist/assets/wardley-WFR3VGLG-BVLYL3gB-CTDrPm0c.js +1 -0
  104. package/dist/assets/{wardleyDiagram-VM6X3IG4-DesYYyZW-B2Xol-7C.js → wardleyDiagram-VM6X3IG4-DesYYyZW-7T-CCnI4.js} +1 -1
  105. package/dist/assets/{xychartDiagram-S5SC5T6Z-dIt6pHWV-Ba2mmvhL.js → xychartDiagram-S5SC5T6Z-dIt6pHWV-BWhy5WEU.js} +1 -1
  106. package/dist/index.html +1 -1
  107. package/package.json +3 -3
  108. package/server/agents/codex-sessions.ts +7 -7
  109. package/server/agents/codex-thread-names.ts +87 -0
  110. package/server/agents/codex-user-turn.ts +86 -0
  111. package/server/backends/fileChange.ts +9 -0
  112. package/server/backends/openPath.ts +6 -0
  113. package/server/backends/presentPathRoot.ts +7 -1
  114. package/server/backends/shapescript.ts +51 -0
  115. package/server/infra/host-tools.ts +13 -1
  116. package/server/infra/plugins-registry.ts +27 -10
  117. package/server/infra/shapescript-render-tool.ts +79 -0
  118. package/server/routes/app-routes.ts +7 -0
  119. package/server/routes/plugin-routes.ts +21 -0
  120. package/server/routes/ws-routes.ts +5 -1
  121. package/server/session/last-turn.ts +9 -9
  122. package/server/session/prompt-history.ts +25 -8
  123. package/server/session/session-resolve.ts +15 -1
  124. package/dist/assets/architecture-7GRP2DOG-CRS69XmP-BDFbpKIc.js +0 -1
  125. package/dist/assets/channel-BjESmYnj-4fT8Ljy3.js +0 -1
  126. package/dist/assets/classDiagram-ZZMXUADV-C7gP-pUH-CGYE0ALU.js +0 -1
  127. package/dist/assets/classDiagram-v2-VYDZK3BY-CUwV5k1F-CGYE0ALU.js +0 -1
  128. package/dist/assets/cynefin-OW5HDTMX-C4iKivN4-Ck3MtWqY.js +0 -1
  129. package/dist/assets/eventmodeling-NTZA5JFV-DhqtNS8R-DND0wWFL.js +0 -1
  130. package/dist/assets/flowDiagram-HODETNUW-CAW_8mwY-B9sfp4B8.js +0 -1
  131. package/dist/assets/gitGraph-4MIJSDKK-S_Zs6Nxs-BbhWwhsR.js +0 -1
  132. package/dist/assets/info-A6RAGUB7-4sGJh1is-BBy4DjBX.js +0 -1
  133. package/dist/assets/packet-AYTQ26CC-MQQyx8fI-BGwT-qpH.js +0 -1
  134. package/dist/assets/pie-WAS4IAKB-CyaL5i_d-BUM2aSuD.js +0 -1
  135. package/dist/assets/radar-RG4KPBEZ-DR-SsHDJ-B0abbdQP.js +0 -1
  136. package/dist/assets/railroad-74A4TZTK-C2gqsOGX-CGR3fOea.js +0 -1
  137. package/dist/assets/railroad-abnf-HS5TGJTU-Dpzw6P5u-bLa5M0Rd.js +0 -1
  138. package/dist/assets/railroad-ebnf-LZEXJU2U-J_BuIrPo-DD46tZ66.js +0 -1
  139. package/dist/assets/railroad-peg-WCYAUIDC-DzMStOR--CouNrg-J.js +0 -1
  140. package/dist/assets/stateDiagram-v2-MP3YSRHH-CX6RalKY-DOA8omDg.js +0 -1
  141. package/dist/assets/swimlanesDiagram-VR7AAH4N-49XH_TMr-DAJi7crp.js +0 -8
  142. package/dist/assets/treeView-Q6P3EWNA-gFs854Sn-B3zhZnF1.js +0 -1
  143. package/dist/assets/treemap-WGGIJYW6-DGh_szUA-BPTAC2rf.js +0 -1
  144. package/dist/assets/wardley-WFR3VGLG-BVLYL3gB-C2b5fV9M.js +0 -1
@@ -8,7 +8,12 @@
8
8
  // config already written against it.
9
9
 
10
10
  // The groups, ordered by how much damage a call can do.
11
- // render — draws into the Canvas panel and stops there. No side effect outside it.
11
+ // render — draws a model or document for the user, and writes nothing but the
12
+ // artifact it just drew. It USED to mean "no side effect outside the
13
+ // Canvas panel"; presentShapeScript saves its `.shape` and
14
+ // renderShapeScript saves a PNG, so the honest line is that a render
15
+ // tool touches only its own output, never the workspace's data or
16
+ // anything off this machine.
12
17
  // data — reads/writes the workspace's structured data (collections, accounting).
13
18
  // media — generation that is slow, costly, and lands files on disk.
14
19
  // external — reaches a third-party account or API.
@@ -85,6 +90,10 @@ const GROUP_BY_TOOL = new Map<string, ToolGroup>([
85
90
  ["presentChart", "render"],
86
91
  ["presentHtml", "render"],
87
92
  ["presentShapeScript", "render"],
93
+ // Beside presentShapeScript deliberately: a cell that can show a 3D model should be
94
+ // able to CHECK one, and splitting the pair would leave an agent able to present a
95
+ // model it cannot look at first.
96
+ ["renderShapeScript", "render"],
88
97
 
89
98
  // presentCollection RENDERS, but it renders collection data and only makes sense next to
90
99
  // manageCollection — a cell offered the view without the store gets a tool it cannot fill.
@@ -177,9 +186,33 @@ export const LEGACY_GUI_SERVER_IDS: readonly string[] = ["mulmoterminal-gui"];
177
186
  // keeps Claude Code's prompt (answer it once per project and the prompt stops).
178
187
  //
179
188
  // The four below save an artifact and draw it, and call nothing external.
180
- // `presentShapeScript` does not even save one — the ShapeScript source travels in
181
- // the result and is rendered client-side — so it clears the bar the others meet.
182
- export const AUTO_ALLOWED_TOOLS: readonly string[] = ["presentForm", "presentChart", "presentHtml", "presentShapeScript"];
189
+ //
190
+ // `presentShapeScript` was listed here on the grounds that it saved nothing at all —
191
+ // the source travelled in the tool result and was rendered client-side. That stopped
192
+ // being true at shapescript-plugin 1.1.0, which writes the model to
193
+ // `artifacts/shapes/` and can open a `.shape` the caller names. It stays on the list,
194
+ // but now for the same reason as the other three rather than a stronger one that no
195
+ // longer holds.
196
+ //
197
+ // `renderShapeScript` is here too, and the reasoning is worth stating because the first
198
+ // attempt got it wrong. It starts a PROCESS — a headless browser — which reads like the
199
+ // far side of "calls nothing external", so it was left off. But this bar is about REACH
200
+ // and COST, not about process creation: the tools kept off it spend money
201
+ // (presentDocument's image fill), publish to the internet, or act in someone else's
202
+ // account. A local Chromium rendering a page WE construct, with every request it makes
203
+ // aborted unless it is one of our two assets, does none of that. It writes a PNG under
204
+ // the workspace artifacts and burns CPU for at most the render budget.
205
+ //
206
+ // Leaving it off was also not the half-measure it looked like. This list governs GRID
207
+ // cells; the workspace passes `allowedToolNames()`, which auto-approves everything not
208
+ // in NEVER_AUTO_APPROVED_TOOLS — so the tool prompted in a cell and ran unattended in
209
+ // the workspace, which is the worst of both and matches no stated policy (codex on
210
+ // #2010). The two paths now agree.
211
+ //
212
+ // And the friction had no payoff: the tool exists so an agent can CHECK a model before
213
+ // showing it, which is a render-look-fix loop. A prompt in the middle of that costs the
214
+ // user attention to approve the agent looking at its own work.
215
+ export const AUTO_ALLOWED_TOOLS: readonly string[] = ["presentForm", "presentChart", "presentHtml", "presentShapeScript", "renderShapeScript"];
183
216
 
184
217
  /** Tools that must keep the agent's permission prompt on EVERY claude session, including the
185
218
  * workspace.