@p4code/cli 0.8.3 → 0.8.4

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 (409) hide show
  1. package/dist/{AcpMcpStdioBridge-D_JnxPWS.mjs → AcpMcpStdioBridge-CD9BQr2l.mjs} +1 -1
  2. package/dist/{AcpMcpStdioBridge-DBONIB-w.mjs → AcpMcpStdioBridge-DHwGLtep.mjs} +61 -4
  3. package/dist/bin.mjs +2 -2
  4. package/dist/{binCli-DouSNynJ.mjs → binCli-Bgjc_5FL.mjs} +406 -247
  5. package/dist/client/.vite/manifest.json +2125 -2102
  6. package/dist/client/assets/{AnimatedHeight-DoG4b7y8.js → AnimatedHeight-DYUgtGfz.js} +2 -2
  7. package/dist/client/assets/{AuthSurfaceShell-DbeJoeXz.js → AuthSurfaceShell-CfLnzrCc.js} +2 -2
  8. package/dist/client/assets/{CSPContext-DkFc4cYo.js → CSPContext-i9QaQnwk.js} +2 -2
  9. package/dist/client/assets/ChatGptUsageButton-BWTEbaUC.js +2 -0
  10. package/dist/client/assets/ChatMarkdown-C6UsXjP9.js +65 -0
  11. package/dist/client/assets/CodexSetupSection.logic-VTayPks4.js +2 -0
  12. package/dist/client/assets/{ComboboxClear-ZQvkAjz8.js → ComboboxClear-B-iYnTX_.js} +2 -2
  13. package/dist/client/assets/{CommandBlock-c98wFxMU.js → CommandBlock-dh2vBT70.js} +2 -2
  14. package/dist/client/assets/{ComposerPromptEditor-CBuOXkT9.js → ComposerPromptEditor-fIqs_--j.js} +12 -12
  15. package/dist/client/assets/{CompositeRoot-BMUI_bmJ.js → CompositeRoot-JeAqW-33.js} +2 -2
  16. package/dist/client/assets/{ConnectionStatusDot-B69zfKRh.js → ConnectionStatusDot-BCSqqCpf.js} +2 -2
  17. package/dist/client/assets/{DevicePanel-1xw7KQ15.js → DevicePanel-BckpiUTa.js} +2 -2
  18. package/dist/client/assets/{DeviceSetup-DemgUuG-.js → DeviceSetup-L8Q-0h1V.js} +2 -2
  19. package/dist/client/assets/{DialogTitle-BXot7RA0.js → DialogTitle-BRYusK7T.js} +2 -2
  20. package/dist/client/assets/{DiffCommentAnnotation-vAZP7JBy.js → DiffCommentAnnotation-DxxGd0sM.js} +3 -3
  21. package/dist/client/assets/{DiffFileTree-BhqF8nD5.js → DiffFileTree-C2N3dwbB.js} +2 -2
  22. package/dist/client/assets/DiffPanel-0HWHkPjD.js +2 -0
  23. package/dist/client/assets/{DiffWorkerPoolProvider-D4VIo5Vu.js → DiffWorkerPoolProvider-Dd8cIhyy.js} +3 -3
  24. package/dist/client/assets/{EnvironmentMachineIcon-DPQkDtvr.js → EnvironmentMachineIcon-giyHKjbh.js} +2 -2
  25. package/dist/client/assets/{ExpandableText-EZ9C25tN.js → ExpandableText-dJhpznMp.js} +3 -3
  26. package/dist/client/assets/{FieldControl-C4IsJLMZ.js → FieldControl-CxuWXcJE.js} +2 -2
  27. package/dist/client/assets/{FileDiff-H9QHqXa0.js → FileDiff-EWd5oWlS.js} +2 -2
  28. package/dist/client/assets/{FilePreviewPanel-DGm_SU_e.js → FilePreviewPanel-D3kud1xs.js} +4 -4
  29. package/dist/client/assets/{FoldedSettingsSection-BSYFyChk.js → FoldedSettingsSection-CsN_jb3V.js} +2 -2
  30. package/dist/client/assets/{FormContext-DiXpMuU8.js → FormContext-Vk5aZcR6.js} +2 -2
  31. package/dist/client/assets/{Icons-DA4msgfR.js → Icons-DM1SzuL7.js} +2 -2
  32. package/dist/client/assets/{KeybindingsSettings.logic-7EBA0xLE.js → KeybindingsSettings.logic-BcJGxVhV.js} +2 -2
  33. package/dist/client/assets/{NoProjectsHero-YjEc2OIw.js → NoProjectsHero-DrkWMiG4.js} +2 -2
  34. package/dist/client/assets/{PanelLayoutControls-BfRIRM0o.js → PanelLayoutControls-DjmAXscr.js} +8 -8
  35. package/dist/client/assets/{PierreEntryIcon-BxxykifK.js → PierreEntryIcon-BJ8xtDqQ.js} +2 -2
  36. package/dist/client/assets/PreviewPanel-D_JLD7YP.js +2 -0
  37. package/dist/client/assets/ProjectDefaultsSettings-Bqo3T1SR.js +2 -0
  38. package/dist/client/assets/{ProjectFavicon-CiauSitF.js → ProjectFavicon-By6-kpgk.js} +3 -3
  39. package/dist/client/assets/{ProjectIconPickerDialog-GDqk2LEH.js → ProjectIconPickerDialog-Cx-QcJLy.js} +2 -2
  40. package/dist/client/assets/{ProjectMonogram-Bqe3OyZR.js → ProjectMonogram-BJVBhwjz.js} +2 -2
  41. package/dist/client/assets/{ProviderAuthTerminal-D_OC5vdS.js → ProviderAuthTerminal-DBiUwanv.js} +2 -2
  42. package/dist/client/assets/{ProviderModelPicker-Bfpy_Rw1.js → ProviderModelPicker-DV64N-fE.js} +2 -2
  43. package/dist/client/assets/{ProviderSettingsForm-BA6yGdRn.js → ProviderSettingsForm-Tkr5xKCJ.js} +2 -2
  44. package/dist/client/assets/{PullRequestCodeTab-BOM7mgfd.js → PullRequestCodeTab-DijqMjN0.js} +3 -3
  45. package/dist/client/assets/{ReadOnlySourcePreview-C3LnvSkA.js → ReadOnlySourcePreview-CydDaO9-.js} +2 -2
  46. package/dist/client/assets/{RenderErrorBoundary-C-EIIrrq.js → RenderErrorBoundary-D4M2khxk.js} +2 -2
  47. package/dist/client/assets/{ScheduledTasksSettings-DFtwNfb8.js → ScheduledTasksSettings-D_Z_3GVl.js} +4 -4
  48. package/dist/client/assets/ScopedSwitch-B8wdvttG.js +2 -0
  49. package/dist/client/assets/{SecretInput-Be5Akw8x.js → SecretInput-CNWNAhNe.js} +2 -2
  50. package/dist/client/assets/SettingsPanels-DAv_V_mk.js +39 -0
  51. package/dist/client/assets/{SettingsPanels.logic-CLB8Pu-U.js → SettingsPanels.logic-BYa5iHwl.js} +2 -2
  52. package/dist/client/assets/{SettingsScopeNotice-CVoWG1oN.js → SettingsScopeNotice-CcLrVZWz.js} +2 -2
  53. package/dist/client/assets/{T3ConnectAccountPages-ClNzwIQw.js → T3ConnectAccountPages-DjITJ87o.js} +2 -2
  54. package/dist/client/assets/{T3ConnectSidebarSignIn-BqM_Vqe1.js → T3ConnectSidebarSignIn-B-rQNmqG.js} +2 -2
  55. package/dist/client/assets/{ThemeEditorPanel-vVmQV_Vv.js → ThemeEditorPanel-CJGqmeTA.js} +2 -2
  56. package/dist/client/assets/{ThreadTerminalDrawer-aLeVbe6g.js → ThreadTerminalDrawer-Cdl3DAIx.js} +4 -4
  57. package/dist/client/assets/{Virtualizer-DTOYU5Jp.js → Virtualizer-Bk-YJlPj.js} +2 -2
  58. package/dist/client/assets/{WorkspaceBreadcrumb-C9OPPGJE.js → WorkspaceBreadcrumb-DSFWvH19.js} +2 -2
  59. package/dist/client/assets/{WorkspacePageContainer-DtXJ5ept.js → WorkspacePageContainer-BXUbfbEU.js} +2 -2
  60. package/dist/client/assets/{WorkspacePageHeader-5zzLFpEN.js → WorkspacePageHeader-LbIzJCDs.js} +2 -2
  61. package/dist/client/assets/_chat-oHhtDqeh.js +45 -0
  62. package/dist/client/assets/{_chat.index-BP1JWABB.js → _chat.index-CTew1WmI.js} +2 -2
  63. package/dist/client/assets/_chat.new-COSURrfS.js +4 -0
  64. package/dist/client/assets/{_chat.pull-requests-B6-Vck8B.js → _chat.pull-requests-BlXnsqov.js} +2 -2
  65. package/dist/client/assets/{abnfDiagram-VCTEODGH-BXvAfzAg.js → abnfDiagram-VCTEODGH-brKh7bzh.js} +2 -2
  66. package/dist/client/assets/{alert-B-or1ble.js → alert-quTC4YbH.js} +2 -2
  67. package/dist/client/assets/architecture-7GRP2DOG-BMFS-mJW.js +1 -0
  68. package/dist/client/assets/{architectureDiagram-5GKGNRK7-MEUA3QVe.js → architectureDiagram-5GKGNRK7-BVDiXgfK.js} +2 -2
  69. package/dist/client/assets/archive-x-D3w6saMD.js +2 -0
  70. package/dist/client/assets/arrow-left-BFquhiaO.js +1 -0
  71. package/dist/client/assets/arrow-right-DiV8cYUQ.js +1 -0
  72. package/dist/client/assets/arrow-up-down-BDQTjPr1.js +1 -0
  73. package/dist/client/assets/assets-CRmNKuHc.js +2 -0
  74. package/dist/client/assets/bell-BvJp3v99.js +1 -0
  75. package/dist/client/assets/{blockDiagram-I7D4REHJ-BOdLeYJh.js → blockDiagram-I7D4REHJ-CzoRCJDe.js} +2 -2
  76. package/dist/client/assets/blocks-NuR9qdGl.js +1 -0
  77. package/dist/client/assets/bot-mvw1ddnU.js +1 -0
  78. package/dist/client/assets/{browserHistoryStore-BJD0OPpb.js → browserHistoryStore-Cw3ffhOV.js} +2 -2
  79. package/dist/client/assets/{browserLinkTarget-CoogLhhO.js → browserLinkTarget-KTI1tSl7.js} +2 -2
  80. package/dist/client/assets/{c4Diagram-7LVT6UL2-COZrm1O8.js → c4Diagram-7LVT6UL2-CfyobiDu.js} +2 -2
  81. package/dist/client/assets/calendar-clock-CuvWKWXS.js +1 -0
  82. package/dist/client/assets/channel-Cf2J77rP.js +2 -0
  83. package/dist/client/assets/chart-no-axes-column-Hfs9TSWj.js +1 -0
  84. package/dist/client/assets/checkbox-BHsP70Vt.js +2 -0
  85. package/dist/client/assets/{chunk-4HAMMTFA-Bs-Fo0v1.js → chunk-4HAMMTFA-CPnMRFld.js} +2 -2
  86. package/dist/client/assets/{chunk-75Z2AOVW-DpOWzc3R.js → chunk-75Z2AOVW-C85FbOND.js} +2 -2
  87. package/dist/client/assets/{chunk-DU6HZSFF-Bgpi4W6E.js → chunk-DU6HZSFF-s_qrqgaz.js} +2 -2
  88. package/dist/client/assets/{chunk-F27PBJKO-CLxgnzXS.js → chunk-F27PBJKO-90tTgV9x.js} +2 -2
  89. package/dist/client/assets/{chunk-GMAD6QVW-D98J5Pan.js → chunk-GMAD6QVW-CYRPr7hZ.js} +2 -2
  90. package/dist/client/assets/{chunk-GVQU2GXP-VuCIOHGI.js → chunk-GVQU2GXP-CxAvUb1-.js} +2 -2
  91. package/dist/client/assets/{chunk-IMKFNOWR-DXIyBsaE.js → chunk-IMKFNOWR-794woOlB.js} +2 -2
  92. package/dist/client/assets/{chunk-L3NEJ4N5-CrMlU3ZU.js → chunk-L3NEJ4N5-JXcRdiIo.js} +2 -2
  93. package/dist/client/assets/{chunk-OSK3NFVY-V2__4gNB.js → chunk-OSK3NFVY-ToxVvjW1.js} +2 -2
  94. package/dist/client/assets/{chunk-P2QGCYS3-BrPw6V5F.js → chunk-P2QGCYS3-JB1PmfIc.js} +2 -2
  95. package/dist/client/assets/{chunk-POPQ4Y6H-DBQ9Y51x.js → chunk-POPQ4Y6H-RMxlqjhd.js} +2 -2
  96. package/dist/client/assets/{chunk-PWAF6VOD-BN6AAbfF.js → chunk-PWAF6VOD-AB579n2y.js} +2 -2
  97. package/dist/client/assets/{chunk-SHT3W25Y-Vay44dCU.js → chunk-SHT3W25Y-CV2hE9-g.js} +2 -2
  98. package/dist/client/assets/{chunk-SVP7TREG-CcGlNErV.js → chunk-SVP7TREG-b2Gs4u5W.js} +2 -2
  99. package/dist/client/assets/{chunk-TICWLB2K-Dk1P_xkD.js → chunk-TICWLB2K-CtkYqLLJ.js} +2 -2
  100. package/dist/client/assets/classDiagram-ZZMXUADV-D9m4giYc.js +2 -0
  101. package/dist/client/assets/classDiagram-v2-VYDZK3BY-D9m4giYc.js +2 -0
  102. package/dist/client/assets/{color-picker-gBclRe5T.js → color-picker-CFc6YapE.js} +2 -2
  103. package/dist/client/assets/{combobox-C81z_216.js → combobox-WVgW_agq.js} +2 -2
  104. package/dist/client/assets/{command-DnJZPOmf.js → command-w6WcFbeZ.js} +2 -2
  105. package/dist/client/assets/{connect-Am2IS-vZ.js → connect-D_ncSJiK.js} +2 -2
  106. package/dist/client/assets/{connect-agent-Cw1s7hYt.js → connect-agent-8mHL_bau.js} +2 -2
  107. package/dist/client/assets/corner-left-up-DedXC9IG.js +1 -0
  108. package/dist/client/assets/{cynefin-OW5HDTMX-0s30RxOq.js → cynefin-OW5HDTMX-BDIjrXPB.js} +1 -1
  109. package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-Drd0Msog.js → cynefinDiagram-5FMLGOSQ-h9tw36zs.js} +2 -2
  110. package/dist/client/assets/{dagre-GXQ25YYZ-BMfu7T0o.js → dagre-GXQ25YYZ-D3s1T81F.js} +2 -2
  111. package/dist/client/assets/{device-C_oIGJqy.js → device-DhvzgETq.js} +2 -2
  112. package/dist/client/assets/{diagram-S7CK7UJ4-8egngY0E.js → diagram-S7CK7UJ4-DTawhR4X.js} +2 -2
  113. package/dist/client/assets/{diagram-UQ7AKVKN-BALPQoDH.js → diagram-UQ7AKVKN-CTUDQHKY.js} +2 -2
  114. package/dist/client/assets/{diagram-VSXAHHWV-BjyJZVGC.js → diagram-VSXAHHWV-DsbNNWnj.js} +2 -2
  115. package/dist/client/assets/{diagram-VX7I27RA-B9f6eKkq.js → diagram-VX7I27RA-BBy99N9O.js} +2 -2
  116. package/dist/client/assets/{diagram-Z3DM3KII-CRUj2d3v.js → diagram-Z3DM3KII-CEy69xv1.js} +2 -2
  117. package/dist/client/assets/{dialog-Bn1u_Xoc.js → dialog-CPLO59bH.js} +2 -2
  118. package/dist/client/assets/{diffRendering-C26rfQBu.js → diffRendering-BlmxsRF9.js} +2 -2
  119. package/dist/client/assets/{discovery-list-Fg_u6w-x.js → discovery-list-D0LBmkzJ.js} +2 -2
  120. package/dist/client/assets/{dist-DtKaGeij.js → dist-DZWol-cd.js} +3 -3
  121. package/dist/client/assets/download-CUcdw53T.js +1 -0
  122. package/dist/client/assets/{draft-input-D8eUYug0.js → draft-input-CmvO5rl_.js} +2 -2
  123. package/dist/client/assets/{duoViewer-CBoAg4hS.js → duoViewer-B0QD-fyi.js} +2 -2
  124. package/dist/client/assets/dynamic-tF-2a8Zt.js +3 -0
  125. package/dist/client/assets/earth-BqADiov-.js +1 -0
  126. package/dist/client/assets/{ebnfDiagram-PWID7BFC-BSbPiqg7.js → ebnfDiagram-PWID7BFC-B9LWNbny.js} +2 -2
  127. package/dist/client/assets/ellipsis-BUF_4-Z7.js +1 -0
  128. package/dist/client/assets/{embeddedScripts-Dsi0aZEx.js → embeddedScripts-B1MGNr-e.js} +2 -2
  129. package/dist/client/assets/{empty-C-gDaZ_z.js → empty-tr-EsB66.js} +2 -2
  130. package/dist/client/assets/entities-DqhRur25.js +2 -0
  131. package/dist/client/assets/{erDiagram-RLTQ6QDP-sL_q0j_k.js → erDiagram-RLTQ6QDP-Nu9IMF5-.js} +2 -2
  132. package/dist/client/assets/eventmodeling-NTZA5JFV-CHuv5_8f.js +1 -0
  133. package/dist/client/assets/eye-C8OhITrC.js +1 -0
  134. package/dist/client/assets/file-search-ComEiFQ8.js +1 -0
  135. package/dist/client/assets/{fileLinks-DubkPNVt.js → fileLinks-BHAkEh9k.js} +2 -2
  136. package/dist/client/assets/{fileTreeExpansion-VtSAPhxL.js → fileTreeExpansion-BierCVUV.js} +2 -2
  137. package/dist/client/assets/flowDiagram-HODETNUW-wmC7eeQc.js +1 -0
  138. package/dist/client/assets/folder-git-2-COyuVTXA.js +1 -0
  139. package/dist/client/assets/folder-open-DZzz50kK.js +1 -0
  140. package/dist/client/assets/folder-plus-BzJT8jXs.js +1 -0
  141. package/dist/client/assets/{ganttDiagram-EL5Y4UJY-DCiKb0rQ.js → ganttDiagram-EL5Y4UJY-D_s5F9rI.js} +2 -2
  142. package/dist/client/assets/{getDiffFileInput-DU5zpXo3.js → getDiffFileInput-B5j6sQbM.js} +2 -2
  143. package/dist/client/assets/git-branch-CCzcdr93.js +1 -0
  144. package/dist/client/assets/{gitGraph-4MIJSDKK-DfRe6ZT5.js → gitGraph-4MIJSDKK-BASxGOL3.js} +1 -1
  145. package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-Bt7diV1n.js → gitGraphDiagram-WWUBYQGX-BtA4z_1S.js} +2 -2
  146. package/dist/client/assets/grip-vertical-COceJQZo.js +1 -0
  147. package/dist/client/assets/{guideRunStore-CF9bByzk.js → guideRunStore-C95PbUuP.js} +2 -2
  148. package/dist/client/assets/hard-drive-BKLzbeTS.js +1 -0
  149. package/dist/client/assets/history-CAAEfWkp.js +1 -0
  150. package/dist/client/assets/house-U4txgvXa.js +1 -0
  151. package/dist/client/assets/{htmlRender-vOqAdlJH.js → htmlRender-DgdJ8GkZ.js} +2 -2
  152. package/dist/client/assets/{index-1HGbj0-7.js → index-D_uSeco8.js} +3 -3
  153. package/dist/client/assets/{info-A6RAGUB7-0FtL6-Am.js → info-A6RAGUB7-Q4Qe5TI_.js} +1 -1
  154. package/dist/client/assets/{infoDiagram-27XIBGKW-BPLvtPCc.js → infoDiagram-27XIBGKW-CNnDxcfZ.js} +2 -2
  155. package/dist/client/assets/{input-Cd_0h7h_.js → input-DaCwubQj.js} +2 -2
  156. package/dist/client/assets/{input-group-CJ7ZOvDN.js → input-group-DJwXFHGO.js} +2 -2
  157. package/dist/client/assets/{ishikawaDiagram-5VMMS53U-DVcx0XTh.js → ishikawaDiagram-5VMMS53U-Drb03OY6.js} +2 -2
  158. package/dist/client/assets/{journeyDiagram-3NMN7TZE-w46bbjL2.js → journeyDiagram-3NMN7TZE-CynC6Up1.js} +2 -2
  159. package/dist/client/assets/{kanban-definition-UXKFOSKX-C41yE_yV.js → kanban-definition-UXKFOSKX-DfyC_hIe.js} +2 -2
  160. package/dist/client/assets/{kbd-c17EHIx1.js → kbd-R3wkAau0.js} +2 -2
  161. package/dist/client/assets/{keybindings-uYm_vnXl.js → keybindings-QrjnJ5jB.js} +2 -2
  162. package/dist/client/assets/keyboard-kgy5M4lo.js +1 -0
  163. package/dist/client/assets/{lazyRouteComponent-CTVuEvaz.js → lazyRouteComponent-cLZROdN-.js} +2 -2
  164. package/dist/client/assets/{line-tu9XZ0qp.js → line-C3gvAOpf.js} +2 -2
  165. package/dist/client/assets/{link-C4sEUNOK.js → link-Bl21VXlj.js} +2 -2
  166. package/dist/client/assets/link-C1k5F8-V.js +1 -0
  167. package/dist/client/assets/{linkedPrompt-VYl90REW.js → linkedPrompt-DAcv0O_f.js} +2 -2
  168. package/dist/client/assets/list-CU7BIfIS.js +1 -0
  169. package/dist/client/assets/main-BsiZpg85.css +2 -0
  170. package/dist/client/assets/main-uLg3xUJM.js +30 -0
  171. package/dist/client/assets/{mediaReference-BTVvzs2e.js → mediaReference-DN8lzwOF.js} +2 -2
  172. package/dist/client/assets/{mediaSource-DXHFWHMA.js → mediaSource-0nIWHHoL.js} +2 -2
  173. package/dist/client/assets/{mermaid-parser.core-DNd412Oc.js → mermaid-parser.core-B3cYmj0d.js} +4 -4
  174. package/dist/client/assets/{mermaid.core-CyE6QOQY.js → mermaid.core-9ekBSYCO.js} +5 -5
  175. package/dist/client/assets/message-circle-question-mark-wTwD9xwk.js +1 -0
  176. package/dist/client/assets/message-square-dashed-Hcy2Q2EP.js +1 -0
  177. package/dist/client/assets/message-square-lCzwndCW.js +1 -0
  178. package/dist/client/assets/{mindmap-definition-YA3MSWOX-DH1uxdTm.js → mindmap-definition-YA3MSWOX-K4rtZu2z.js} +2 -2
  179. package/dist/client/assets/mouse-pointer-2-BFFAEWXU.js +1 -0
  180. package/dist/client/assets/number-field-pAaF-e0N.js +2 -0
  181. package/dist/client/assets/{observeResize-Csvw3hy4.js → observeResize-BEjNJ-rK.js} +2 -2
  182. package/dist/client/assets/{onboarding-CJPrQc71.js → onboarding--LqcHqO0.js} +2 -2
  183. package/dist/client/assets/openFileInPreview-NwK1GJFN.js +2 -0
  184. package/dist/client/assets/{p4ProjectFile-BWszgcDk.js → p4ProjectFile-CVEoe1SJ.js} +2 -2
  185. package/dist/client/assets/{packet-AYTQ26CC-DflCOkCN.js → packet-AYTQ26CC-kDkfULQq.js} +1 -1
  186. package/dist/client/assets/{pair-Dd_e1jxq.js → pair-Bxo10T5t.js} +2 -2
  187. package/dist/client/assets/palette-BkpHEJXn.js +1 -0
  188. package/dist/client/assets/panel-left-DNz3ps89.js +1 -0
  189. package/dist/client/assets/panels-top-left-bKuZF4FX.js +1 -0
  190. package/dist/client/assets/{pegDiagram-XKGWAZYB-Cnx9j2xX.js → pegDiagram-XKGWAZYB-6b8AqBYd.js} +2 -2
  191. package/dist/client/assets/{phoneViewer-B9EUVDD2.js → phoneViewer-Vql_2ZzY.js} +2 -2
  192. package/dist/client/assets/{pie-WAS4IAKB-CDwew7fN.js → pie-WAS4IAKB-CfoqFIwI.js} +1 -1
  193. package/dist/client/assets/{pieDiagram-E7YTZNPT-BxejSN6k.js → pieDiagram-E7YTZNPT-i8FgTMai.js} +2 -2
  194. package/dist/client/assets/{pierre-icons-C839Otpo.js → pierre-icons-CBmlpFgP.js} +2 -2
  195. package/dist/client/assets/{popover-CKyetthu.js → popover-BXin7C0B.js} +2 -2
  196. package/dist/client/assets/{preview-CjgXQQdj.js → preview-6t42evKb.js} +2 -2
  197. package/dist/client/assets/{preview-CEMnbqVB.js → preview-C9iPHfb1.js} +2 -2
  198. package/dist/client/assets/{previewMiniPlayerStore-B9Lqaaij.js → previewMiniPlayerStore-BDRPsVx0.js} +2 -2
  199. package/dist/client/assets/primary-DOpcfgLH.js +2 -0
  200. package/dist/client/assets/primaryCloudLinkState-Dulej3bP.js +2 -0
  201. package/dist/client/assets/projectFilesQueryState-C1crs3C8.js +2 -0
  202. package/dist/client/assets/projectScriptEditor-ku2tGeKq.js +2 -0
  203. package/dist/client/assets/providerSkills-D0IxW0_5.js +2 -0
  204. package/dist/client/assets/{pullRequestDetail.logic-DTxWqKoX.js → pullRequestDetail.logic-BiwUoz1M.js} +4 -4
  205. package/dist/client/assets/{pullRequestReviewStore-C5gaoGaz.js → pullRequestReviewStore-J7YIGsZ9.js} +2 -2
  206. package/dist/client/assets/pullRequests-BQ9KruZm.js +2 -0
  207. package/dist/client/assets/puzzle-wfhgUaHl.js +1 -0
  208. package/dist/client/assets/{quadrantDiagram-AXDQQJYC-Bj4FEpOg.js → quadrantDiagram-AXDQQJYC-DzvIAxCm.js} +2 -2
  209. package/dist/client/assets/queries-CEjFwxVW.js +2 -0
  210. package/dist/client/assets/query-D5pQUQvZ.js +2 -0
  211. package/dist/client/assets/{radar-RG4KPBEZ-DEopr2Gv.js → radar-RG4KPBEZ-BnTV8utT.js} +1 -1
  212. package/dist/client/assets/{radio-group-fljQQ7Xp.js → radio-group-DhpPG5HP.js} +2 -2
  213. package/dist/client/assets/{railroad-74A4TZTK-BSAOgUn6.js → railroad-74A4TZTK-nxEBKbUo.js} +1 -1
  214. package/dist/client/assets/railroad-abnf-HS5TGJTU-bDIjPMME.js +1 -0
  215. package/dist/client/assets/railroad-ebnf-LZEXJU2U-BREFlihg.js +1 -0
  216. package/dist/client/assets/railroad-peg-WCYAUIDC-B0hEZefb.js +1 -0
  217. package/dist/client/assets/{railroadDiagram-O6MQD6OU-BSOJGJ6v.js → railroadDiagram-O6MQD6OU-DFdlMVKn.js} +2 -2
  218. package/dist/client/assets/{renderScheduler-v8LIpnE2.js → renderScheduler-DWKKtxcJ.js} +2 -2
  219. package/dist/client/assets/{requirementDiagram-BXWQKSXE-Bp5TqEho.js → requirementDiagram-BXWQKSXE-BW8o0F_p.js} +2 -2
  220. package/dist/client/assets/{rightPanelStore-DqMd0tFH.js → rightPanelStore-CQ94819A.js} +2 -2
  221. package/dist/client/assets/rotate-ccw-CkpQmcC5.js +1 -0
  222. package/dist/client/assets/rotate-cw-BAiACGtX.js +1 -0
  223. package/dist/client/assets/runtime-Bsb2I_n2.js +2 -0
  224. package/dist/client/assets/runtime-DkYxB4ri.js +6 -0
  225. package/dist/client/assets/{sankeyDiagram-P5KCCOFB-C7KUHrP7.js → sankeyDiagram-P5KCCOFB-JA6FB6i0.js} +2 -2
  226. package/dist/client/assets/{scheduledTasksSettings.logic-C3Mbc4mh.js → scheduledTasksSettings.logic-C_AdQNVz.js} +3 -3
  227. package/dist/client/assets/{scroll-area-LhpLVf8r.js → scroll-area-BYyfw-9F.js} +2 -2
  228. package/dist/client/assets/select-CjGEfXy_.js +2 -0
  229. package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-Bs9mfTLC.js → sequenceDiagram-WJ2MYXX4-DgBrrcVR.js} +2 -2
  230. package/dist/client/assets/server-BYntb2dN.js +2 -0
  231. package/dist/client/assets/session-eLrubJEW.js +2 -0
  232. package/dist/client/assets/{session-logic-DneZDyPZ.js → session-logic-l1juLk9v.js} +5 -5
  233. package/dist/client/assets/settings-2-CDBTJPBs.js +1 -0
  234. package/dist/client/assets/settings-DDvSs7LG.js +1 -0
  235. package/dist/client/assets/{settings-C8FiUQu0.js → settings-xKzLy5aw.js} +2 -2
  236. package/dist/client/assets/settings.appearance-CEA3GKAa.js +2 -0
  237. package/dist/client/assets/settings.archived-DPWjmD2l.js +2 -0
  238. package/dist/client/assets/{settings.computer-use-B3Ujc2AS.js → settings.computer-use-DZu90DiM.js} +2 -2
  239. package/dist/client/assets/settings.connections-BKWbsMUk.js +2 -0
  240. package/dist/client/assets/settings.data-controls-CBrcsSvm.js +2 -0
  241. package/dist/client/assets/{settings.decisions-C5UE4drK.js → settings.decisions-CGz9znLs.js} +2 -2
  242. package/dist/client/assets/settings.diagnostics-DKkOOzoq.js +2 -0
  243. package/dist/client/assets/settings.general-CoPWyKC4.js +2 -0
  244. package/dist/client/assets/{settings.integrations-BCtpk2dY.js → settings.integrations-K3Jwfkyd.js} +2 -2
  245. package/dist/client/assets/{settings.keybindings-DfFrYXxY.js → settings.keybindings-BbR3qnVs.js} +2 -2
  246. package/dist/client/assets/{settings.open-source-licenses-CqRM1gRd.js → settings.open-source-licenses-Mh-zg97k.js} +2 -2
  247. package/dist/client/assets/settings.plugins-BI68kAsM.js +5 -0
  248. package/dist/client/assets/{settings.projects-CT-l0EfX.js → settings.projects-BahZsoyx.js} +4 -4
  249. package/dist/client/assets/settings.providers-Dsnq0-AL.js +3 -0
  250. package/dist/client/assets/settings.scheduled-tasks-BOpVl_XK.js +2 -0
  251. package/dist/client/assets/{settings.snap-shot-BMxV-ClC.js → settings.snap-shot-Bs_DZS7D.js} +2 -2
  252. package/dist/client/assets/settings.source-control-Akrp_mGm.js +2 -0
  253. package/dist/client/assets/{settings.storage-DKm6BZ2r.js → settings.storage-fl2BN0Cu.js} +2 -2
  254. package/dist/client/assets/settingsLayout-DV36_Jgq.js +3 -0
  255. package/dist/client/assets/shield-check-yRjvgn4y.js +1 -0
  256. package/dist/client/assets/shield-question-mark-DyVUewRO.js +1 -0
  257. package/dist/client/assets/{sidebar-DI1ZJMkM.js → sidebar-MBwCdIpv.js} +2 -2
  258. package/dist/client/assets/{sidebarProjectGrouping-DXRKqrOP.js → sidebarProjectGrouping-Sm7y9bd1.js} +2 -2
  259. package/dist/client/assets/{skeleton-BlMPaSbD.js → skeleton-CS8ffFVv.js} +2 -2
  260. package/dist/client/assets/{sortable.esm-CnSn9HhJ.js → sortable.esm-CwrTFe-B.js} +2 -2
  261. package/dist/client/assets/{sourceControl-ogZI3Qhj.js → sourceControl-DyHbbOxl.js} +2 -2
  262. package/dist/client/assets/{spinner-I_NrXl2i.js → spinner-B7a-VUeR.js} +2 -2
  263. package/dist/client/assets/square-pen-BrE59gWn.js +1 -0
  264. package/dist/client/assets/{standalone-page-C0mvdk0N.js → standalone-page-DTvNMgJy.js} +2 -2
  265. package/dist/client/assets/{stateDiagram-D77RDMKH-lcvbm4gc.js → stateDiagram-D77RDMKH-gHEAo7xC.js} +2 -2
  266. package/dist/client/assets/stateDiagram-v2-MP3YSRHH-CGT21P8W.js +2 -0
  267. package/dist/client/assets/{swimlanes-42K2YHIH-BftXRbCQ.js → swimlanes-42K2YHIH-_qZ90QGb.js} +2 -2
  268. package/dist/client/assets/swimlanesDiagram-VR7AAH4N-D9Ttx7dQ.js +9 -0
  269. package/dist/client/assets/{terminal-links-BWEpET__.js → terminal-links-Dc2HX7Ov.js} +2 -2
  270. package/dist/client/assets/{terminalSessions-CQOPPXfy.js → terminalSessions-DK9WKgga.js} +2 -2
  271. package/dist/client/assets/text-search-CFbEY3qo.js +1 -0
  272. package/dist/client/assets/{textarea-Bu723jDd.js → textarea-CYXHTTG6.js} +2 -2
  273. package/dist/client/assets/{themePalette-CAxv2FDZ.js → themePalette-zVYGoviO.js} +3 -3
  274. package/dist/client/assets/threadSort-Byzu7B1A.js +2 -0
  275. package/dist/client/assets/{timeline-definition-24CTP7MA-_aV_EuqE.js → timeline-definition-24CTP7MA-BxWmcZQs.js} +2 -2
  276. package/dist/client/assets/toast-BX9uiMAh.js +2 -0
  277. package/dist/client/assets/{toggle-B5fidRv0.js → toggle-fk33ppsB.js} +2 -2
  278. package/dist/client/assets/{toggle-group-DCQTLIPb.js → toggle-group-W0bDGcPB.js} +2 -2
  279. package/dist/client/assets/tooltip-B0rhqi5b.js +2 -0
  280. package/dist/client/assets/{treeView-Q6P3EWNA-ALGd5g_W.js → treeView-Q6P3EWNA-BsPhq-Fl.js} +1 -1
  281. package/dist/client/assets/{treemap-WGGIJYW6-CGQrkzMs.js → treemap-WGGIJYW6-DZ3fnU-o.js} +1 -1
  282. package/dist/client/assets/{usage-DmGxFUdr.js → usage-DlNazxzV.js} +2 -2
  283. package/dist/client/assets/{usageAccess-CY-JtQnU.js → usageAccess-Mp1Nbm2r.js} +2 -2
  284. package/dist/client/assets/{usageFormat-Cs-UHzLq.js → usageFormat-ZiOrCBxk.js} +2 -2
  285. package/dist/client/assets/{usageShortcuts-CP952NDO.js → usageShortcuts-Be5hddhr.js} +2 -2
  286. package/dist/client/assets/use-atom-command-RgcuqzP9.js +2 -0
  287. package/dist/client/assets/{useAriaLabelledBy-4I5xhNlP.js → useAriaLabelledBy-D-n0SDV6.js} +2 -2
  288. package/dist/client/assets/{useHandleNewThread-Bzaf_PDE.js → useHandleNewThread-BQ5wqZab.js} +2 -2
  289. package/dist/client/assets/{useLocation-QINZoaPz.js → useLocation-BN5q7LjL.js} +2 -2
  290. package/dist/client/assets/useNavigate-CDvr3Yvg.js +2 -0
  291. package/dist/client/assets/{useNavigateBack-CbbWf0z6.js → useNavigateBack-BWhsiBJ5.js} +2 -2
  292. package/dist/client/assets/{useParams-BTKEXLBT.js → useParams-DQgx0pmy.js} +2 -2
  293. package/dist/client/assets/{usePermissionStatus-Zbsv_90x.js → usePermissionStatus-FtemMvNg.js} +2 -2
  294. package/dist/client/assets/{usePullRequestActions-DGTJ6ne6.js → usePullRequestActions-D97OVSkM.js} +3 -3
  295. package/dist/client/assets/{useRegisterFieldControl-Cr87Snzk.js → useRegisterFieldControl-KOnbOVnX.js} +2 -2
  296. package/dist/client/assets/useScopedModelAvailability-BTR7tHpB.js +2 -0
  297. package/dist/client/assets/useSettings-BIggY3j1.js +3 -0
  298. package/dist/client/assets/{useT3ConnectAuthPrompt-BYqrzQIx.js → useT3ConnectAuthPrompt-CPGDAWRk.js} +2 -2
  299. package/dist/client/assets/{utils-DmfMX1v5.js → utils-BxISc9RR.js} +17 -17
  300. package/dist/client/assets/vcsRefInvalidation-h_E9Figo.js +2 -0
  301. package/dist/client/assets/{vennDiagram-4TSXK5OY-9Jx7JrgE.js → vennDiagram-4TSXK5OY-BnH-hzBf.js} +2 -2
  302. package/dist/client/assets/{wardley-WFR3VGLG-qG58RzFw.js → wardley-WFR3VGLG-BbiFWq4f.js} +1 -1
  303. package/dist/client/assets/{wardleyDiagram-VM6X3IG4-8Ml3tzfR.js → wardleyDiagram-VM6X3IG4-DPf4ISf5.js} +2 -2
  304. package/dist/client/assets/{welcome-CPcQsM9H.js → welcome-DjYohRu3.js} +2 -2
  305. package/dist/client/assets/{xychartDiagram-S5SC5T6Z-C-u_0wo0.js → xychartDiagram-S5SC5T6Z-oaZh5sFY.js} +2 -2
  306. package/dist/client/index.html +1 -1
  307. package/package.json +1 -1
  308. package/dist/client/assets/ChatGptUsageButton-D93cMeTp.js +0 -2
  309. package/dist/client/assets/ChatMarkdown-CLD9Y6dg.js +0 -65
  310. package/dist/client/assets/CodexSetupSection.logic-DJw6xB7P.js +0 -2
  311. package/dist/client/assets/DiffPanel-Dqh76p3E.js +0 -2
  312. package/dist/client/assets/PreviewPanel-QkMfuC1J.js +0 -2
  313. package/dist/client/assets/ProjectDefaultsSettings-C6wxaRmJ.js +0 -2
  314. package/dist/client/assets/ScopedSwitch-DsEcG6rk.js +0 -2
  315. package/dist/client/assets/SettingsPanels-CI-FknGh.js +0 -39
  316. package/dist/client/assets/_chat-BKcYL38S.js +0 -45
  317. package/dist/client/assets/_chat.new-BX5LyFum.js +0 -4
  318. package/dist/client/assets/architecture-7GRP2DOG-DqzmsB35.js +0 -1
  319. package/dist/client/assets/archive-x-BN7DYXYC.js +0 -2
  320. package/dist/client/assets/arrow-left-DI1Oo3nI.js +0 -1
  321. package/dist/client/assets/arrow-right-DRgAj8le.js +0 -1
  322. package/dist/client/assets/arrow-up-down-C6OEPUz7.js +0 -1
  323. package/dist/client/assets/assets-_CWIS9vb.js +0 -2
  324. package/dist/client/assets/bell-DW1iPWzH.js +0 -1
  325. package/dist/client/assets/blocks-DKOyf4K4.js +0 -1
  326. package/dist/client/assets/bot-DYcBiSui.js +0 -1
  327. package/dist/client/assets/calendar-clock-BqL7OneL.js +0 -1
  328. package/dist/client/assets/channel-DbsUczqI.js +0 -2
  329. package/dist/client/assets/chart-no-axes-column-CtQ7A5KE.js +0 -1
  330. package/dist/client/assets/checkbox-CaZu1EKJ.js +0 -2
  331. package/dist/client/assets/classDiagram-ZZMXUADV-DotTjRcO.js +0 -2
  332. package/dist/client/assets/classDiagram-v2-VYDZK3BY-DotTjRcO.js +0 -2
  333. package/dist/client/assets/corner-left-up-BT-2gfvH.js +0 -1
  334. package/dist/client/assets/download-DNjijPHR.js +0 -1
  335. package/dist/client/assets/dynamic-p5s8CQGu.js +0 -3
  336. package/dist/client/assets/earth-DGA4iwBJ.js +0 -1
  337. package/dist/client/assets/ellipsis-Cbd-Ac19.js +0 -1
  338. package/dist/client/assets/entities-82m-Smm-.js +0 -2
  339. package/dist/client/assets/eventmodeling-NTZA5JFV-OEIkdS25.js +0 -1
  340. package/dist/client/assets/eye-BUplLfz9.js +0 -1
  341. package/dist/client/assets/file-search-CcnLiCku.js +0 -1
  342. package/dist/client/assets/fileContextMenu-Dcs50sFI.js +0 -2
  343. package/dist/client/assets/flowDiagram-HODETNUW-BDZPeVYD.js +0 -1
  344. package/dist/client/assets/folder-git-2-5RczFn6m.js +0 -1
  345. package/dist/client/assets/folder-open-PwiT4lvQ.js +0 -1
  346. package/dist/client/assets/folder-plus--IokSBmG.js +0 -1
  347. package/dist/client/assets/git-branch-jf-x2c63.js +0 -1
  348. package/dist/client/assets/grip-vertical-OASdudbE.js +0 -1
  349. package/dist/client/assets/hard-drive-BxN5msOb.js +0 -1
  350. package/dist/client/assets/history-DdVU5lcf.js +0 -1
  351. package/dist/client/assets/house-mbks5FAa.js +0 -1
  352. package/dist/client/assets/keyboard-DckDn_SM.js +0 -1
  353. package/dist/client/assets/link-Dw3ue0Rm.js +0 -1
  354. package/dist/client/assets/list-1rglB5Lq.js +0 -1
  355. package/dist/client/assets/main-BB3F4O6Y.js +0 -30
  356. package/dist/client/assets/main-CnVegMVf.css +0 -2
  357. package/dist/client/assets/message-circle-question-mark-CLPs5tYP.js +0 -1
  358. package/dist/client/assets/message-square-BInn4EwR.js +0 -1
  359. package/dist/client/assets/message-square-dashed-Dea7_sXv.js +0 -1
  360. package/dist/client/assets/mouse-pointer-2-BPl1Yb5N.js +0 -1
  361. package/dist/client/assets/number-field-CVtwAsLe.js +0 -2
  362. package/dist/client/assets/openFileInPreview-C3O_ayUT.js +0 -2
  363. package/dist/client/assets/palette-DC6st-Ld.js +0 -1
  364. package/dist/client/assets/panel-left-BxNE-mqR.js +0 -1
  365. package/dist/client/assets/panels-top-left-CpwWAaSX.js +0 -1
  366. package/dist/client/assets/primary-uszZTzpR.js +0 -2
  367. package/dist/client/assets/primaryCloudLinkState-CWT2YTBZ.js +0 -2
  368. package/dist/client/assets/projectFilesQueryState-ELgLflk5.js +0 -2
  369. package/dist/client/assets/projectScriptEditor-BAuP_HeU.js +0 -2
  370. package/dist/client/assets/pullRequests-DjbQ49mZ.js +0 -2
  371. package/dist/client/assets/puzzle-foT3lPUZ.js +0 -1
  372. package/dist/client/assets/queries-Cq5C9N-K.js +0 -2
  373. package/dist/client/assets/query-DpwJQzeq.js +0 -2
  374. package/dist/client/assets/railroad-abnf-HS5TGJTU-C_4g8TOP.js +0 -1
  375. package/dist/client/assets/railroad-ebnf-LZEXJU2U-CHZB5YoP.js +0 -1
  376. package/dist/client/assets/railroad-peg-WCYAUIDC-B-PbMjlp.js +0 -1
  377. package/dist/client/assets/rotate-ccw-rssHZoOL.js +0 -1
  378. package/dist/client/assets/rotate-cw-D726GGah.js +0 -1
  379. package/dist/client/assets/runtime-BQJQC-Ny.js +0 -6
  380. package/dist/client/assets/runtime-C6FwphD-.js +0 -2
  381. package/dist/client/assets/select-B4VvMEs2.js +0 -2
  382. package/dist/client/assets/server-BD_Y5Gsn.js +0 -2
  383. package/dist/client/assets/session-DsbInyNV.js +0 -2
  384. package/dist/client/assets/settings-2-Qrnq-5XQ.js +0 -1
  385. package/dist/client/assets/settings-MUAsYy_j.js +0 -1
  386. package/dist/client/assets/settings.appearance-B5-X4oyX.js +0 -2
  387. package/dist/client/assets/settings.archived-DVUmF0nS.js +0 -2
  388. package/dist/client/assets/settings.connections-EQYBOa7e.js +0 -2
  389. package/dist/client/assets/settings.diagnostics-CBcOEqPM.js +0 -2
  390. package/dist/client/assets/settings.general-BOmr4mSV.js +0 -2
  391. package/dist/client/assets/settings.plugins-DC4js6dE.js +0 -5
  392. package/dist/client/assets/settings.providers-CJuBTAiR.js +0 -3
  393. package/dist/client/assets/settings.scheduled-tasks-CvLNaadX.js +0 -2
  394. package/dist/client/assets/settings.source-control-DJWucVsM.js +0 -2
  395. package/dist/client/assets/settingsLayout-jP1a50ek.js +0 -3
  396. package/dist/client/assets/shield-check-k2SY7zjx.js +0 -2
  397. package/dist/client/assets/shield-question-mark-kKJBH4Uj.js +0 -1
  398. package/dist/client/assets/square-pen-DilH8raK.js +0 -1
  399. package/dist/client/assets/stateDiagram-v2-MP3YSRHH-DuLLhUia.js +0 -2
  400. package/dist/client/assets/swimlanesDiagram-VR7AAH4N-BrHQKVnf.js +0 -9
  401. package/dist/client/assets/text-search-DpDcKspl.js +0 -1
  402. package/dist/client/assets/threadSort-BoaTqeGH.js +0 -2
  403. package/dist/client/assets/toast-CjelgyqV.js +0 -2
  404. package/dist/client/assets/tooltip-taOyJZax.js +0 -2
  405. package/dist/client/assets/use-atom-command-CQHjSXPR.js +0 -2
  406. package/dist/client/assets/useNavigate-4thj06GJ.js +0 -2
  407. package/dist/client/assets/useScopedModelAvailability-BEfh0WXx.js +0 -2
  408. package/dist/client/assets/useSettings-CLtJrOYI.js +0 -3
  409. package/dist/client/assets/vcsRefInvalidation-nP-qgsHs.js +0 -2
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { $ as Uint8Array$2, $n as resolveAt, $r as isLessThan$1, $t as makeFilter, A as Null, An as omit, Ar as toString$3, At as encodeUnknownExit, B as SchemaError, Bn as make$249, Br as parseHeader, Bt as isLessThan, C as Literal, Ci as a7t, Cn as isInetAddress, Cr as Pointer, Ct as decodeUnknownResult, D as Never, Dn as assign, Dr as fromInput$2, Dt as encodeSync, En as isSchemaError, Er as empty$10, Et as encodeEffect, F as Option$3, Fn as getReferenceKey, Fr as empty$11, Ft as isBetween, G as TaggedError$1, Gn as getLastEncoding, Gr as encode$4, Gt as isNonEmpty, H as StringFromUriComponent, Hn as applyToSelfOrLastLinkEncoding, Hr as toSetCookieHeaders, Ht as isMaxLength, I as OptionFromNullOr, In as toMultiDocumentOpenApi3_1, Ir as expireCookie, It as isFinite$1, J as Trim, Jn as isNull, Jr as add$4, Jt as isSchemaError$1, K as TaggedStruct, Kn as isDeclaration, Kr as Equivalence$1, Kt as isPattern, L as Record$2, Ln as _is, Lr as fromSetCookie, Lt as isGreaterThan, M as Number$3, Mn as toJsonSchemaMultiDocument, Mr as make$246, Mt as fromJsonString, N as NumberFromString, Nn as toCodecJsonAST, Nr as value$3, Nt as instanceOf, O as NonEmptyArray, On as lambda, Or as setAll$1, Ot as encodeTo, P as Opaque, Pn as VALID_OPEN_API_COMPONENTS_SCHEMAS_KEY_REGEXP, Pr as stringOrRedacted, Pt as is$2, Q as URLFromString, Qn as isVoid, Qr as isGreaterThanOrEqualTo$2, Qt as make$247, R as RecordFromUrlParams, Rn as decodeUnknownEffect, Rr as isEmpty$3, Rt as isGreaterThanOrEqualTo$1, S as JsonObject$2, Si as map$7, Sn as inetAddressFromIpString, Sr as InvalidValue$1, St as decodeUnknownOption, T as MutableJson, Ti as y7t, Tn as unixPathAddress, Tr as appendAll$1, Tt as encode$5, U as Struct, Un as decodeTo, Ur as decode$6, Ut as isMaxProperties, V as String$7, Vn as Union$1, Vr as set$8, Vt as isLessThanOrEqualTo, W as StructWithRest, Wn as getAST, Wr as decodeString$3, Wt as isMinLength, X as Tuple, Xn as isSuspend, Xr as formatIso, Xt as isTrimmed, Y as TrueLiterals, Yn as isObjects, Yr as addDuration, Yt as isStartingWith, Z as URL$3, Zn as isUnion, Zr as isGreaterThan$1, Zt as isUUID, _ as FalseLiterals, _i as Error$6, _n as withDecodingDefault, _r as transform$4, _t as decodeOption, a as BooleanFromBit, ai as nowInCurrentZone, an as resolveAnnotationsKey, ar as composeTransformation, at as UnknownFromJsonString$2, b as Int$6, bi as taggedEnum, bn as formatUrlHostString, br as withDefault$3, bt as decodeUnknownEffect$1, c as Class$1, ci as subtract, cn as toCodecArrayFromSingle, cr as transform$3, ct as annotateKey, d as Defect, di as toEpochMillis, dn as toEncoded$1, dr as trim, dt as catchEncoding, ei as isLessThanOrEqualTo$1, en as mutable, er as resolveDescription, et as Uint8ArrayFromBase64, f as Duration, fi as toParts, fn as toEquivalence, fr as compose, ft as check, g as Exit, gi as Class$2, gn as withConstructorDefault, gr as stringifyJson, gt as decodeExit, h as Error$7, hi as EncodingError, hn as toType, hr as passthrough, ht as decodeEffect, i as Boolean$5, ii as now, in as resolveAnnotations, ir as Transformation, it as Unknown, j as NullOr, jn as toRepresentations, jr as isRedacted, jt as fieldsAssign, k as NonEmptyString$2, kn as map$8, kr as toRecord, kt as encodeUnknownEffect$1, l as DateTimeUtc, li as subtractDuration, ln as toCodecJson, lr as transformEffect$1, lt as brand, m as DurationFromString$1, mi as withCurrentZoneLocal, mn as toTaggedUnion, mr as parseJson$1, mt as decode$7, n as Any, ni as makeUnsafe$8, nn as optional$9, nr as toEncoded, nt as UndefinedOr, o as BooleanLiterals, oi as nowUnsafe, on as suspend, or as splitKeyValue, ot as Void, p as DurationFromMillis, pi as toUtc, pn as toJsonSchemaDocument, pr as forbidden, pt as declare$1, q as TemplateLiteral, qn as isLiteral, qr as Order$1, qt as isSchema, r as ArraySchema, ri as min, rn as optionalKey, rr as unknown$1, rt as Union, s as Cause, si as setParts, sn as tag$3, sr as toLowerCase, st as annotate$2, t as runClaudeHistoryWorker, ti as make$248, tn as mutableKey, tr as resolveIdentifier, tt as Undefined, u as DateTimeUtcFromString, ui as toDate, un as toCodecStringTree, ur as transformOptional, ut as catchDecoding, v as Finite, vi as TaggedClass, vn as withDecodingDefaultKey, vr as transformEffect, vt as decodeSync, w as Literals$2, wi as h7t, wn as isUnspecified, wr as defaultFormatter$1, wt as decodeUnknownSync, x as Json, xi as makeEquivalence$1, xn as formatUrlUnsafe, xr as Forbidden$1, xt as decodeUnknownExit, y as FiniteFromString, yi as TaggedError, yn as formatIp, yr as transformOptional$1, yt as decodeTo$1, z as Redacted$1, zn as encodeUnknownEffect, zr as merge$2, zt as isInt } from "./claudeHistoryWorker-v_0uyLGp.mjs";
4
4
  import { $ as forEach, $i as hasDies, $n as set$9, $r as makeUnsafe$10, $s as isFailure$1, $t as runPromise, A as currentSpan, Aa as contextWith, Ac as toArray$1, Ai as interrupt$3, Al as array, An as updateContext, Ao as has$6, Ar as effect, As as isArrayNonEmpty, At as matchEffect, B as filter$2, Ba as fiberEnterInterruptibleUnsafe, Bc as make$256, Bi as NoSuchElementError, Bl as hasProperty, Bn as withTracerEnabled, Bo as isNegative, Br as succeedContext, Bs as reduce, Bt as promise, C as catchTag, Ca as CurrentLoggers$1, Cc as liftThrowable, Ci as succeed$6, Cn as tryPromise, Co as externalSpan, Cr as currentTimeMillis, Cs as findFirst, D as context, Da as asSome$1, Dc as none$2, Di as failCause$1, Dn as undefined_, Do as random$1, Dr as build, Ds as fromIterable, Dt as match$2, E as clockWith, Ec as match, Ei as fail$2, El as equals, En as txRetry, Eo as encode$6, Er as CurrentMemoMap, Es as flatMapNullishOr, Et as mapErrorEager, F as exit$3, Fa as exitIsSuccess, Fc as flip, Fi as succeed$3, Fl as string$2, Fn as withErrorReporting, Fo as fromInputUnsafe$1, Fr as merge$4, Fs as makeBy, Ft as onInterrupt, G as findFirst$1, Gc as PipeInspectableProto, Gi as die$1, Gn as Class$4, Go as minutes$1, Gr as Scope, Gs as filterMap, Gt as race, H as filterMapOrFail, Ha as fiberInterrupt, Hi as UnknownError$3, Hn as zip, Ho as max, Hr as sync$2, Hs as sort, Ht as provideContext, I as fail$1, Ii as void_$2, Il as structure, In as withFiber, Io as hours, Ir as mergeAll, It as option$1, J as flatMapEager, Ja as forkUnsafe, Ji as filterInterruptors, Jl as isNotUndefined, Jn as empty$12, Jo as seconds, Jr as close, Js as fail, Jt as request, K as firstSuccessOf, Ki as done, Kl as isNotNull, Kn as RequestPrototype, Ko as nanos, Kr as addFinalizer, Ks as headUnsafe, Kt as raceFirst, L as failCause$2, Lc as isGreaterThanOrEqualTo$3, Li as Done, Ln as withLogSpan, Lo as infinity, Lr as provide$1, Ls as map$9, Lt as orDie, M as die, Ma as endSpan, Mi as isFailure, Ml as hash$2, Mn as void_$1, Mo as days, Mr as effectDiscard, Ms as isReadonlyArrayNonEmpty, Mt as onError, N as effectify, Na as exitHasInterrupts, Nc as Number$4, Ni as isSuccess$1, No as format$1, Nr as empty$16, Nt as onExit, O as contextWith$1, Oc as orElse$2, Oi as findErrorOption$1, On as uninterruptible, Oo as Scheduler$1, Or as buildWithMemoMap, Ot as matchCauseEffect, P as ensuring, Pi as match$3, Pl as optimize, Pn as whileLoop, Po as fromInput$3, Pr as launch$1, Pt as onExitPrimitive, Qa as loggerMake, Qi as fromReasons, Qn as remove$5, Qo as toMinutes, Qr as make$253, Qs as getOrUndefined$2, Qt as runForkWith, Ri as ExceededCapacityError, Rl as symbol$4, Rn as withParentSpan, Rr as provideMerge, Rs as match$1, Rt as orElseSucceed, S as catchReason, Sa as ConsoleRef, Sc as isSome, Si as poll, Sn as timeoutOrElse, So as Tracer, Sr as Clock, Ss as filterMap$1, St as map$11, Su as pipeArguments, T as catch_, Tc as map$12, Ti as die$2, Tl as strictEqual, Tn as tx, To as nativeTracer, Tr as monotonicTimeNanos, Ts as findLast, Tt as mapError, U as filterOrElse, Ui as annotate$3, Un as zipWith, Uo as millis, Ur as tap$2, Us as take$1, Ut as provideService, Va as fiberEnterUninterruptibleUnsafe, Vc as mapInput$1, Vi as StackTrace, Vn as yieldNow, Vo as isZero, Vr as suspend$2, Vs as reverse, Vt as provide$2, W as filterOrFail, Wa as fiberJoin, Wi as combine$2, Wn as equalBatchKeys, Wo as min$1, Wr as unwrap, Ws as empty$15, X as fn, Xc as contE, Xi as findErrorOption, Xl as isNumber$1, Xn as has$5, Xo as times, Xr as fork, Xt as retry$1, Y as flatten$1, Yc as contA, Yl as isNullish, Yn as get$15, Yo as sum, Yr as closeUnsafe, Ys as failVoid, Yt as result$1, Z as fnUntraced, Zi as findFail, Zl as isObject$3, Zn as make$252, Zo as toMillis$1, Zr as forkUnsafe$1, Zs as getOrThrow, Zt as runFork, _ as catchCauseIf, _a as pretty, _c as getOrNull, _i as isDeferred, _l as symbolRedactable, _n as tapDefect, _o as CurrentErrorReporters$1, _s as append$2, _t as logFatal, _u as memoize, a as all$5, aa as isCause, ac as succeed$2, ai as MinimumLogLevel, al as getStackTraceLimit, an as scoped, ao as reportCauseUnsafe, ar as fromStep, as as get$14, at as fromOption, au as or$1, b as catchFilter, ba as squash, bc as isNone, bi as make$255, bl as normalize$3, bn as timeout, bo as NativeSpan, br as Random$1, bs as ensure, bt as logWithLevel, c as annotateLogs, ca as isFailReason, cc as exists, ci as UnhandledLogLevel, cl as Class$3, cn as serviceOption, co as succeedNone$1, cr as jittered, cs as getOrUndefined$1, ct as ignore$2, cu as compose$1, d as asSome, dc as flatMap$2, di as done$1, dl as format, dn as succeedNone, do as sync, dr as spaced, ds as make$251, dt as interruptible, du as constUndefined, ec as isResult, ei as provide, el as exitSucceed, en as runPromiseWith, er as size$5, es as zero$1, et as forever, eu as isReadonlyObject, f as asVoid, fa as isTimeoutError, fc as flatten, fi as doneUnsafe, fn as succeedSome, fo as tracerLogger$1, fr as toStep, fs as makeUnsafe$11, ft as isEffect, fu as constVoid, g as catchCause, gc as getOrElse, gi as into, gl as redact$1, gn as tapCause, gs as allocate, gt as logError, gu as identity, h as callback, hc as fromUndefinedOr, hn as tap$1, ho as void_$3, hr as catchDone, hs as Prototype, ht as logDebug, hu as flow$2, i as addFinalizer$1, ia as interruptors, ii as CurrentStackFrame, il as withFiber$1, in as scope, io as onExitUnsafe, ir as forever$1, is as empty$14, it as forkScoped, j as delay, ja as effectIsExit, ji as isExit, jl as combine$1, jn as useSpan, jo as toPredicate, jr as effectContext, js as isCanonicalArrayIndex, jt as never, k as currentParentSpan, ka as consolePretty$1, kc as some, ki as hasInterrupts, kl as symbol$3, kn as uninterruptibleMask, ko as compose$2, kr as catch_$1, kt as matchCauseEffectEager, l as annotateLogsScoped, la as isInterruptReason, lc as filter$1, li as _await, ll as NodeInspectSymbol, ln as sleep, lo as succeedSome$1, lr as modifyDelay, ls as getOrUndefinedUnsafe, lt as ignoreCause, lu as constFalse, m as cachedInvalidateWithTTL, ma as makeFailReason, mc as fromNullishOr, mi as failCause$3, mn as sync$1, mo as updateContext$1, mr as upTo, ms as omit$1, mt as log$1, mu as dual, n as acquireRelease, na as hasInterruptsOnly, nc as map$10, ni as CurrentLogLevel, nn as runSyncExit, nr as addDelay, ns as Service$3, nt as forkDetach, nu as isTagged, o as andThen, oa as isDieReason, oc as try_$1, oi as TracerEnabled, ol as setStackTraceLimit, on as scopedWith, or as identity_, os as getOption$2, ot as fromResult, ou as backEdges, p as cached, pa as makeDieReason, pi as fail$4, pn as suspend$1, ps as merge$3, pt as isSuccess$3, pu as constant, q as flatMap$1, qa as fnUntraced$1, qi as fail$3, qn as clear$1, qr as addFinalizerExit, qs as all$6, qt as repeat, r as acquireUseRelease, ra as interrupt$2, ri as CurrentLogSpans, rn as runSyncWith, rr as exponential, rs as add$5, rt as forkIn, ru as isUndefined, s as annotateCurrentSpan, sc as contains, si as TracerTimingEnabled, sl as BaseProto, sn as service, so as succeed$5, sr as isSchedule, ss as getOrElse$1, st as gen$1, su as cast, t as Transaction, ta as hasInterrupts$1, tc as isSuccess$2, ti as CurrentLogAnnotations, tl as isEffect$1, tn as runSync, to as makeSpanUnsafe, ts as Reference, tt as forkChild, tu as isString, u as as, ua as isNoSuchElementError, uc as firstSomeOf, ui as die$3, ul as toJson, un as succeed$1, ur as passthrough$1, us as getUnsafe$2, ut as interrupt$1, uu as constTrue, v as catchDefect, va as prettyErrors, vc as getOrThrow$1, vi as isDone, vl as assignProperties, vn as tapError$1, vo as DisablePropagation, vr as isDoneCause, vt as logInfo, w as catchTags, wa as LogLevelOrder, wc as makeOrder, wi as asVoidAll, wl as make$250, wn as try_, wo as make$254, wr as currentTimeNanos, ws as findFirstIndex, wt as mapEager, x as catchIf, xa as ClockRef, xc as isOption, xi as makeUnsafe$9, xl as normalizeNonEmpty, xn as timeoutOption, xo as ParentSpan, xr as nextBetween, xs as filter, xt as makeSpanScoped, y as catchEager, ya as reasonAnnotations, yc as getOrUndefined, yi as isDoneUnsafe, yl as assignProperty, yn as tapErrorTag, yo as MinimumTraceLevel, ys as empty$13, yt as logWarning$1, yu as pipe, z as fiber, zi as IllegalArgumentError, zl as compose$3, zn as withSpan, zo as isFinite$2, zr as succeed$4, zs as of$1, zt as partition } from "./Effect-BahT0mOQ.mjs";
5
- import { $ as mergeAll$1, $t as mapEffect$2, A as fromArray, An as sliding$1, At as timeoutOrElse$1, B as fromReadableStream, Bn as interrupt$4, Bt as zipLatestWith, C as filter$3, Cn as take$2, Ct as suspend$3, D as flatMap$3, Dn as publishAll, Dt as takeWhile, E as filterMapEffect, En as publish, Et as takeUntilEffect, F as fromIterable$1, Fn as set$10, G as isStream, Gn as round, Gt as last, H as groupedWithin, Hn as join$1, Ht as forEach$1, I as fromIteratorSucceed, In as makeUnsafe$12, It as transduce, J as mapAccum, Jt as decodeText$2, K as make$260, Kt as mapInput$2, L as fromPubSub, Ln as awaitAll, Lt as transformPull, M as fromChannel$1, Mn as take$3, Mt as toAsyncIterableWith, N as fromEffect, Nn as unbounded$1, Nt as toPull, O as flattenIterable, On as publishUnsafe, Ot as tap$3, P as fromEffectRepeat, Pn as make$257, Pt as toReadableStreamEffect, Q as merge$5, Qt as mapDone, R as fromPull, Rn as await_, Rt as unfold, S as failCause$5, Sn as sliding, St as succeed$7, T as filterMap$2, Tn as unbounded$2, Tt as takeUntil, U as ignore$3, Un as runIn, Ut as fromChannel, V as fromSubscription, Vn as interruptAll, Vt as drain, W as interruptWhen, Wn as parse$6, Wt as isSink, X as mapEffect$3, Y as mapArrayEffect, Yt as filterArray, Z as mapError$1, Zt as fromTransform, _ as drop$2, _n as offerAll, _t as runForEachArray, a as responsePayloads, an as makeUnsafe$13, at as pipeThroughChannel, b as ensuring$1, bn as shutdown$1, bt as scoped$1, c as catchTag$1, cn as collect$1, ct as provideService$1, d as changesWith, dn as endUnsafe, dt as run$5, et as mkString, f as concat$2, fn as fail$6, ft as runCollect, g as drain$1, gn as offer$1, gt as runForEach, h as die$4, hn as make$258, ht as runFoldEffect, in as make$259, it as paginate$1, j as fromAsyncIterable, jn as subscribe, jt as toAsyncIterable, k as forever$2, kn as shutdown$2, kt as tick, l as catch_$2, ln as dropping, lt as rechunk, m as decodeText$1, mn as failCauseUnsafe, mt as runFold, nn as pipeTo, nt as onEnd, o as callback$1, on as bounded, ot as pipeThroughChannelOrFail, p as debounce, pn as failCause$4, pt as runDrain, q as map$13, qt as unwrap$2, r as runAcpMcpCliFastPath, rn as splitLines$2, rt as orDie$1, s as catchCause$1, sn as clear$2, st as provideContext$1, tt as mkUint8Array, u as changes$1, un as end, ut as repeat$1, v as empty$17, vn as offerUnsafe, vt as runHead, w as filterEffect, wn as takeAll, wt as switchMap, x as fail$5, xn as shutdownUnsafe, xt as splitLines$1, y as encodeText$1, yn as poll$1, yt as runLast, z as fromQueue, zn as getCurrent, zt as unwrap$1 } from "./AcpMcpStdioBridge-DBONIB-w.mjs";
5
+ import { $ as mergeAll$1, $t as mapEffect$2, A as fromArray, An as sliding$1, At as timeoutOrElse$1, B as fromReadableStream, Bn as interrupt$4, Bt as zipLatestWith, C as filter$3, Cn as take$2, Ct as suspend$3, D as flatMap$3, Dn as publishAll, Dt as takeWhile, E as filterMapEffect, En as publish, Et as takeUntilEffect, F as fromIterable$1, Fn as set$10, G as isStream, Gn as round, Gt as last, H as groupedWithin, Hn as join$1, Ht as forEach$1, I as fromIteratorSucceed, In as makeUnsafe$12, It as transduce, J as mapAccum, Jt as decodeText$2, K as make$260, Kt as mapInput$2, L as fromPubSub, Ln as awaitAll, Lt as transformPull, M as fromChannel$1, Mn as take$3, Mt as toAsyncIterableWith, N as fromEffect, Nn as unbounded$1, Nt as toPull, O as flattenIterable, On as publishUnsafe, Ot as tap$3, P as fromEffectRepeat, Pn as make$257, Pt as toReadableStreamEffect, Q as merge$5, Qt as mapDone, R as fromPull, Rn as await_, Rt as unfold, S as failCause$5, Sn as sliding, St as succeed$7, T as filterMap$2, Tn as unbounded$2, Tt as takeUntil, U as ignore$3, Un as runIn, Ut as fromChannel, V as fromSubscription, Vn as interruptAll, Vt as drain, W as interruptWhen, Wn as parse$6, Wt as isSink, X as mapEffect$3, Y as mapArrayEffect, Yt as filterArray, Z as mapError$1, Zt as fromTransform, _ as drop$2, _n as offerAll, _t as runForEachArray, a as responsePayloads, an as makeUnsafe$13, at as pipeThroughChannel, b as ensuring$1, bn as shutdown$1, bt as scoped$1, c as catchTag$1, cn as collect$1, ct as provideService$1, d as changesWith, dn as endUnsafe, dt as run$5, et as mkString, f as concat$2, fn as fail$6, ft as runCollect, g as drain$1, gn as offer$1, gt as runForEach, h as die$4, hn as make$258, ht as runFoldEffect, in as make$259, it as paginate$1, j as fromAsyncIterable, jn as subscribe, jt as toAsyncIterable, k as forever$2, kn as shutdown$2, kt as tick, l as catch_$2, ln as dropping, lt as rechunk, m as decodeText$1, mn as failCauseUnsafe, mt as runFold, nn as pipeTo, nt as onEnd, o as callback$1, on as bounded, ot as pipeThroughChannelOrFail, p as debounce, pn as failCause$4, pt as runDrain, q as map$13, qt as unwrap$2, r as runAcpMcpCliFastPath, rn as splitLines$2, rt as orDie$1, s as catchCause$1, sn as clear$2, st as provideContext$1, tt as mkUint8Array, u as changes$1, un as end, ut as repeat$1, v as empty$17, vn as offerUnsafe, vt as runHead, w as filterEffect, wn as takeAll, wt as switchMap, x as fail$5, xn as shutdownUnsafe, xt as splitLines$1, y as encodeText$1, yn as poll$1, yt as runLast, z as fromQueue, zn as getCurrent, zt as unwrap$1 } from "./AcpMcpStdioBridge-DHwGLtep.mjs";
6
6
  import * as NodeModule from "node:module";
7
7
  import { createRequire } from "node:module";
8
8
  import * as NFS from "node:fs";
@@ -14902,7 +14902,7 @@ const make$228 = () => {
14902
14902
  const layer$242 = sync$2(NetService, make$228);
14903
14903
  //#endregion
14904
14904
  //#region package.json
14905
- var version$2 = "0.8.3";
14905
+ var version$2 = "0.8.4";
14906
14906
  //#endregion
14907
14907
  //#region src/cli/acpMcpBridge.ts
14908
14908
  /**
@@ -40660,24 +40660,10 @@ const McpServerConfig = Struct({
40660
40660
  });
40661
40661
  /**
40662
40662
  * Whether a driver can receive a server over the transport. Codex, Claude and
40663
- * Cursor take both transports. OpenCode shares one server across a directory's
40664
- * threads, so it takes none. Every other driver runs over ACP, which takes
40665
- * stdio servers without a working directory.
40663
+ * Cursor take both transports. ACP uses P4's stdio bridge for HTTP servers;
40664
+ * OpenCode receives the registry in its isolated local server.
40666
40665
  */
40667
- const mcpProviderSupport = (driver, transport) => {
40668
- if (driver === "codex" || driver === "claudeAgent" || driver === "cursor") return { supported: true };
40669
- if (driver === "opencode") return {
40670
- supported: false,
40671
- reason: "provider"
40672
- };
40673
- if (transport.type === "http") return {
40674
- supported: false,
40675
- reason: "remote"
40676
- };
40677
- if (transport.cwd !== void 0) return {
40678
- supported: false,
40679
- reason: "working-directory"
40680
- };
40666
+ const mcpProviderSupport = (_driver, _transport) => {
40681
40667
  return { supported: true };
40682
40668
  };
40683
40669
  /** A Claude Code plugin folder on the server host (`.claude-plugin/plugin.json`). */
@@ -40752,11 +40738,13 @@ const McpServerOAuthStartResult = Struct({ authorizationUrl: NullOr(String$7) })
40752
40738
  */
40753
40739
  const DiscoveredMcpServer = Struct({
40754
40740
  provider: McpImportSource,
40741
+ /** All providers with an equivalent configuration; optional for older servers. */
40742
+ providers: optionalKey(ArraySchema(McpImportSource)),
40755
40743
  path: String$7,
40756
40744
  name: String$7,
40757
40745
  type: Literals$2(["stdio", "http"]),
40758
40746
  summary: String$7,
40759
- /** Already in the registry under the same name. */
40747
+ /** An equivalent configuration is already in the registry. */
40760
40748
  alreadyAdded: Boolean$5
40761
40749
  });
40762
40750
  const McpDiscoverInput = Struct({ projectId: optionalKey(ProjectId) });
@@ -41912,6 +41900,8 @@ const ProjectSettingsOverrides = Struct({
41912
41900
  mcpServers: optionalKey(Record$2(McpServerId, ProjectRegistryEntryOverride)),
41913
41901
  /** Per-entry `enabled` overrides of `plugins`, merged like `providerInstances`. */
41914
41902
  plugins: optionalKey(Record$2(PluginId, ProjectRegistryEntryOverride)),
41903
+ /** Native skill enablement by name, for providers with session controls. */
41904
+ skillOverrides: optionalKey(Record$2(TrimmedNonEmptyString, Boolean$5)),
41915
41905
  worktreeCleanup: optionalKey(WorktreeCleanup),
41916
41906
  defaultModelSelection: optionalKey(NullOr(ModelSelection)),
41917
41907
  defaultRuntimeMode: optionalKey(RuntimeMode$1),
@@ -42139,6 +42129,8 @@ const ServerSettings = Struct({
42139
42129
  * environment starts. Environment and header values live in the secret store.
42140
42130
  */
42141
42131
  mcpServers: Record$2(McpServerId, McpServerConfig).pipe(withDecodingDefault(succeed$1({}))),
42132
+ /** Native skill enablement. External provider configuration files are never changed. */
42133
+ skillOverrides: Record$2(TrimmedNonEmptyString, Boolean$5).pipe(withDecodingDefault(succeed$1({}))),
42142
42134
  /** Claude Code plugin folders on this host, given to Claude sessions. */
42143
42135
  plugins: Record$2(PluginId, PluginConfig).pipe(withDecodingDefault(succeed$1({}))),
42144
42136
  /** Allows this server to read the Cursor CLI's macOS Keychain login for account usage. */
@@ -42367,6 +42359,7 @@ const ServerSettingsPatch = Struct({
42367
42359
  usageLimitSources: optionalKey(Record$2(UsageLimitSourceId, NullOr(UsageLimitSourceConfig))),
42368
42360
  mcpServers: optionalKey(Record$2(McpServerId, NullOr(McpServerConfig))),
42369
42361
  plugins: optionalKey(Record$2(PluginId, NullOr(PluginConfig))),
42362
+ skillOverrides: optionalKey(Record$2(TrimmedNonEmptyString, NullOr(Boolean$5))),
42370
42363
  cursorKeychainUsageEnabled: optionalKey(Boolean$5),
42371
42364
  /** Each entry replaces one model's rates; `null` restores automatic pricing. */
42372
42365
  usagePriceOverrides: optionalKey(Record$2(TrimmedNonEmptyString, NullOr(UsageModelPriceOverride))),
@@ -56740,7 +56733,8 @@ function mergeProjectSettingsOverridesPatch(current, patch) {
56740
56733
  ...entry,
56741
56734
  ...keepOmittedOverride(entry, stored, "providerInstances"),
56742
56735
  ...keepOmittedOverride(entry, stored, "mcpServers"),
56743
- ...keepOmittedOverride(entry, stored, "plugins")
56736
+ ...keepOmittedOverride(entry, stored, "plugins"),
56737
+ ...keepOmittedOverride(entry, stored, "skillOverrides")
56744
56738
  });
56745
56739
  }
56746
56740
  return Object.fromEntries(next);
@@ -56798,7 +56792,7 @@ function translateLegacyProjectOverridePatch(current, patch) {
56798
56792
  function applyServerSettingsPatch(current, rawPatch) {
56799
56793
  const patch = translateLegacyProjectOverridePatch(current, rawPatch);
56800
56794
  const selectionPatch = patch.textGenerationModelSelection;
56801
- const { migrateModelPreferences, setModelFavorites, setModelsHidden, setProviderModelOrder, providerModelPreferences, automaticGitFetchInterval, providerHealthRefreshInterval, backgroundActivityProfile, backgroundActivity, worktreeCleanup: worktreeCleanupPatch, usageLimitSources: usageLimitSourcesPatch, mcpServers: mcpServersPatch, plugins: pluginsPatch, sourceControlHosts: sourceControlHostsPatch, usagePriceOverrides: usagePriceOverridesPatch, usageModelAliases: usageModelAliasesPatch, projectSettingsOverrides: projectSettingsOverridesPatch, projectAgentBrowserAccessOverrides: _legacyBrowserAccess, projectAutoPullOverrides: _legacyAutoPull, projectScriptOverrides: _legacyScripts, ...patchForMerge } = patch;
56795
+ const { migrateModelPreferences, setModelFavorites, setModelsHidden, setProviderModelOrder, providerModelPreferences, automaticGitFetchInterval, providerHealthRefreshInterval, backgroundActivityProfile, backgroundActivity, worktreeCleanup: worktreeCleanupPatch, usageLimitSources: usageLimitSourcesPatch, mcpServers: mcpServersPatch, plugins: pluginsPatch, skillOverrides: skillOverridesPatch, sourceControlHosts: sourceControlHostsPatch, usagePriceOverrides: usagePriceOverridesPatch, usageModelAliases: usageModelAliasesPatch, projectSettingsOverrides: projectSettingsOverridesPatch, projectAgentBrowserAccessOverrides: _legacyBrowserAccess, projectAutoPullOverrides: _legacyAutoPull, projectScriptOverrides: _legacyScripts, ...patchForMerge } = patch;
56802
56796
  const currentBackgroundActivity = normalizeServerBackgroundActivitySettings(current);
56803
56797
  const backgroundActivityPatch = backgroundActivityProfile !== void 0 ? {
56804
56798
  schemaVersion: 1,
@@ -56891,6 +56885,7 @@ function applyServerSettingsPatch(current, rawPatch) {
56891
56885
  ...patch.defaultProjectScripts !== void 0 ? { defaultProjectScripts: patch.defaultProjectScripts } : {},
56892
56886
  ...usageLimitSourcesPatch !== void 0 ? { usageLimitSources: mergeSettingsEntries(current.usageLimitSources, usageLimitSourcesPatch) } : {},
56893
56887
  ...mcpServersPatch !== void 0 ? { mcpServers: mergeSettingsEntries(current.mcpServers, mcpServersPatch) } : {},
56888
+ ...skillOverridesPatch !== void 0 ? { skillOverrides: mergeSettingsEntries(current.skillOverrides, skillOverridesPatch) } : {},
56894
56889
  ...pluginsPatch !== void 0 ? { plugins: mergeSettingsEntries(current.plugins, pluginsPatch) } : {},
56895
56890
  ...usagePriceOverridesPatch !== void 0 ? { usagePriceOverrides: mergeSettingsEntries(current.usagePriceOverrides, usagePriceOverridesPatch) } : {},
56896
56891
  ...usageModelAliasesPatch !== void 0 ? { usageModelAliases: mergeSettingsEntries(current.usageModelAliases, usageModelAliasesPatch) } : {},
@@ -168430,6 +168425,24 @@ function mcpToolPresentation$1(input) {
168430
168425
  *
168431
168426
  * @module provider-core/server/UserMcpServers
168432
168427
  */
168428
+ /** Preserve cwd for provider SDKs whose stdio configuration has no cwd field. */
168429
+ const withStdioWorkingDirectory = (transport, self) => {
168430
+ if (transport.cwd === void 0) return transport;
168431
+ return {
168432
+ type: "stdio",
168433
+ command: self.command,
168434
+ args: selfInvocationArgs(self, ["acp-mcp-bridge"]),
168435
+ env: {
168436
+ ...transport.env,
168437
+ ELECTRON_RUN_AS_NODE: "1",
168438
+ T3_ACP_MCP_STDIO: JSON.stringify({
168439
+ command: transport.command,
168440
+ args: transport.args,
168441
+ cwd: transport.cwd
168442
+ })
168443
+ }
168444
+ };
168445
+ };
168433
168446
  const EMPTY_USER_MCP_REGISTRY = {
168434
168447
  servers: [],
168435
168448
  plugins: []
@@ -169412,20 +169425,41 @@ function negotiatedCapabilities(base, started) {
169412
169425
  };
169413
169426
  }
169414
169427
  /**
169415
- * Registry servers an ACP agent can take. Stdio is ACP's baseline transport;
169416
- * remote servers are left out because agents routinely drop injected http
169417
- * servers (see below), and ACP's stdio entry has no working directory.
169428
+ * ACP's baseline is stdio. Bridge remote entries using P4's resolved headers,
169429
+ * so agents never need their own OAuth grant.
169418
169430
  */
169419
- function acpUserMcpServers(servers) {
169420
- return servers.flatMap((server) => server.transport.type === "stdio" && server.transport.cwd === void 0 ? [{
169421
- name: server.name,
169422
- command: server.transport.command,
169423
- args: [...server.transport.args],
169424
- env: Object.entries(server.transport.env).map(([name, value]) => ({
169425
- name,
169426
- value
169427
- }))
169428
- }] : []);
169431
+ function acpUserMcpServers(servers, self) {
169432
+ return servers.map((server) => {
169433
+ if (server.transport.type === "http") return {
169434
+ name: server.name,
169435
+ command: self.command,
169436
+ args: [...selfInvocationArgs(self, ["acp-mcp-bridge"])],
169437
+ env: [
169438
+ {
169439
+ name: "ELECTRON_RUN_AS_NODE",
169440
+ value: "1"
169441
+ },
169442
+ {
169443
+ name: "T3_ACP_MCP_ENDPOINT",
169444
+ value: server.transport.url
169445
+ },
169446
+ {
169447
+ name: "T3_ACP_MCP_HEADERS",
169448
+ value: JSON.stringify(server.transport.headers)
169449
+ }
169450
+ ]
169451
+ };
169452
+ const transport = withStdioWorkingDirectory(server.transport, self);
169453
+ return {
169454
+ name: server.name,
169455
+ command: transport.command,
169456
+ args: [...transport.args],
169457
+ env: Object.entries(transport.env).map(([name, value]) => ({
169458
+ name,
169459
+ value
169460
+ }))
169461
+ };
169462
+ });
169429
169463
  }
169430
169464
  function acpMcpContext(session, self, userServers = []) {
169431
169465
  if (session === void 0) return {
@@ -169866,7 +169900,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
169866
169900
  const { flavor, selfInvocation: self } = options;
169867
169901
  const readUserMcpRegistry = yield* makeReader;
169868
169902
  const driver = flavor.driver;
169869
- const readMcpContext = (threadId) => threadId === null ? succeed$1(acpMcpContext(void 0, self)) : all$5([mcpSessions.read(threadId), readUserMcpRegistry(threadId)]).pipe(map$11(([session, registry]) => acpMcpContext(session, self, acpUserMcpServers(serversForDriver(registry, driver)))));
169903
+ const readMcpContext = (threadId) => threadId === null ? succeed$1(acpMcpContext(void 0, self)) : all$5([mcpSessions.read(threadId), readUserMcpRegistry(threadId)]).pipe(map$11(([session, registry]) => acpMcpContext(session, self, acpUserMcpServers(serversForDriver(registry, driver), self))));
169870
169904
  const continuationRequests = options.continuationRequests;
169871
169905
  const postSettleContinuationEnabled = flavor.enablePostSettleContinuation === true && continuationRequests !== void 0;
169872
169906
  return ProviderAdapterV2.of({
@@ -170343,7 +170377,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170343
170377
  markdown,
170344
170378
  planId
170345
170379
  });
170346
- const now$133 = yield* now;
170380
+ const now$134 = yield* now;
170347
170381
  const nodeId = idAllocator.derive.nodeFromProviderItem({
170348
170382
  driver,
170349
170383
  nativeItemId
@@ -170376,7 +170410,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170376
170410
  runtimeRequestId: null,
170377
170411
  checkpointScopeId: null,
170378
170412
  startedAt: context.startedAt,
170379
- completedAt: now$133
170413
+ completedAt: now$134
170380
170414
  }
170381
170415
  });
170382
170416
  yield* emitProviderEvent({
@@ -170408,8 +170442,8 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170408
170442
  status: "completed",
170409
170443
  title: null,
170410
170444
  startedAt: context.startedAt,
170411
- completedAt: now$133,
170412
- updatedAt: now$133,
170445
+ completedAt: now$134,
170446
+ updatedAt: now$134,
170413
170447
  type: "proposed_plan",
170414
170448
  planId,
170415
170449
  markdown,
@@ -170437,7 +170471,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170437
170471
  const emitTextSegment = fnUntraced(function* (context, kind, completed) {
170438
170472
  const segment = textStreamFor(context, kind).current;
170439
170473
  if (segment === null) return;
170440
- const now$121 = yield* now;
170474
+ const now$122 = yield* now;
170441
170475
  const ordinal = yield* resolveItemOrdinal(context, segment.nativeItemId);
170442
170476
  const nodeId = providerNodeId(segment.nativeItemId);
170443
170477
  const turnItemId = providerTurnItemId(segment.nativeItemId);
@@ -170464,7 +170498,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170464
170498
  runtimeRequestId: null,
170465
170499
  checkpointScopeId: null,
170466
170500
  startedAt: segment.startedAt,
170467
- completedAt: completed ? now$121 : null
170501
+ completedAt: completed ? now$122 : null
170468
170502
  }
170469
170503
  });
170470
170504
  if (kind !== "reasoning") {
@@ -170482,7 +170516,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170482
170516
  attachments: [],
170483
170517
  streaming: !completed,
170484
170518
  createdAt: segment.startedAt,
170485
- updatedAt: now$121
170519
+ updatedAt: now$122
170486
170520
  };
170487
170521
  yield* emitProviderEvent({
170488
170522
  type: "message.updated",
@@ -170507,8 +170541,8 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170507
170541
  status: completed ? "completed" : "running",
170508
170542
  title: null,
170509
170543
  startedAt: segment.startedAt,
170510
- completedAt: completed ? now$121 : null,
170511
- updatedAt: now$121,
170544
+ completedAt: completed ? now$122 : null,
170545
+ updatedAt: now$122,
170512
170546
  type: "user_message",
170513
170547
  messageId,
170514
170548
  inputIntent: "turn_start",
@@ -170531,8 +170565,8 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170531
170565
  status: completed ? "completed" : "running",
170532
170566
  title: null,
170533
170567
  startedAt: segment.startedAt,
170534
- completedAt: completed ? now$121 : null,
170535
- updatedAt: now$121,
170568
+ completedAt: completed ? now$122 : null,
170569
+ updatedAt: now$122,
170536
170570
  type: "assistant_message",
170537
170571
  messageId,
170538
170572
  text: segment.text,
@@ -170558,8 +170592,8 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170558
170592
  status: completed ? "completed" : "running",
170559
170593
  title: null,
170560
170594
  startedAt: segment.startedAt,
170561
- completedAt: completed ? now$121 : null,
170562
- updatedAt: now$121,
170595
+ completedAt: completed ? now$122 : null,
170596
+ updatedAt: now$122,
170563
170597
  type: "reasoning",
170564
170598
  text: segment.text,
170565
170599
  streaming: !completed
@@ -170588,10 +170622,10 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170588
170622
  const sourceMessageId = messageId?.trim() || null;
170589
170623
  if (stream.current !== null && sourceMessageId !== null && stream.current.sourceMessageId !== null && stream.current.sourceMessageId !== sourceMessageId) yield* closeTextStream(context, kind);
170590
170624
  if (stream.current === null) {
170591
- const now$125 = yield* now;
170625
+ const now$126 = yield* now;
170592
170626
  stream.current = {
170593
170627
  nativeItemId: sourceMessageId === null ? `${context.nativeTurnId}:${kind}:${stream.nextSegment}` : `${context.nativeTurnId}:${kind}:message:${sourceMessageId}`,
170594
- startedAt: now$125,
170628
+ startedAt: now$126,
170595
170629
  sourceMessageId,
170596
170630
  text: ""
170597
170631
  };
@@ -170609,10 +170643,10 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170609
170643
  const stream = textStreamFor(context, kind);
170610
170644
  if (stream.current?.sourceMessageId !== messageId) {
170611
170645
  yield* closeTextStream(context, kind);
170612
- const now$123 = yield* now;
170646
+ const now$124 = yield* now;
170613
170647
  stream.current = {
170614
170648
  nativeItemId: `${context.nativeTurnId}:${kind}:message:${messageId}`,
170615
- startedAt: now$123,
170649
+ startedAt: now$124,
170616
170650
  sourceMessageId: messageId,
170617
170651
  text
170618
170652
  };
@@ -170627,7 +170661,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170627
170661
  const messageText = mode === "replace" ? text : `${previous}${text}`;
170628
170662
  subagent.assistantMessages.set(nativeItemId, messageText);
170629
170663
  subagent.assistantText = messageText;
170630
- const now$122 = yield* now;
170664
+ const now$123 = yield* now;
170631
170665
  const ordinal = resolveSubagentChildOrdinal(subagent, nativeItemId);
170632
170666
  const artifacts = makeSubagentConversationArtifacts({
170633
170667
  messageId: providerMessageId(nativeItemId),
@@ -170644,7 +170678,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170644
170678
  role: "assistant",
170645
170679
  text: subagent.assistantText,
170646
170680
  ordinal,
170647
- now: now$122
170681
+ now: now$123
170648
170682
  });
170649
170683
  yield* emitProviderEvent({
170650
170684
  type: "message.updated",
@@ -170679,7 +170713,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170679
170713
  if (existing === void 0) {
170680
170714
  if (update.prompt === "" && update.title === null || update.suppressNormalTool === false) return;
170681
170715
  }
170682
- const now$126 = yield* now;
170716
+ const now$127 = yield* now;
170683
170717
  const nativeTaskId = existing?.task.nativeTaskRef?.nativeId ?? update.nativeTaskId;
170684
170718
  const nativeItemRef = {
170685
170719
  driver,
@@ -170712,13 +170746,13 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170712
170746
  prompt: update.prompt,
170713
170747
  title: update.title,
170714
170748
  result: null,
170715
- startedAt: now$126
170749
+ startedAt: now$127
170716
170750
  },
170717
170751
  model: update.model?.trim() || existing?.task.model || null,
170718
170752
  status: taskStatus,
170719
170753
  result: update.result ?? existing?.task.result ?? null,
170720
- completedAt: acpSubagentStatusIsTerminal(taskStatus) ? now$126 : null,
170721
- updatedAt: now$126
170754
+ completedAt: acpSubagentStatusIsTerminal(taskStatus) ? now$127 : null,
170755
+ updatedAt: now$127
170722
170756
  };
170723
170757
  const subagent = existing ?? {
170724
170758
  task,
@@ -170757,7 +170791,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170757
170791
  prompt: update.prompt,
170758
170792
  ordinal: context.subagents.size
170759
170793
  }),
170760
- now: now$126,
170794
+ now: now$127,
170761
170795
  createdBy: "agent",
170762
170796
  creationSource: "provider"
170763
170797
  })
@@ -170779,7 +170813,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170779
170813
  role: "user",
170780
170814
  text: update.prompt,
170781
170815
  ordinal: 100,
170782
- now: now$126
170816
+ now: now$127
170783
170817
  });
170784
170818
  yield* emitProviderEvent({
170785
170819
  type: "message.updated",
@@ -170808,7 +170842,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170808
170842
  providerThreadId: context.input.providerThread.id,
170809
170843
  providerTurnId: context.providerTurnId
170810
170844
  },
170811
- now: now$126
170845
+ now: now$127
170812
170846
  });
170813
170847
  subagent.task = {
170814
170848
  ...subagent.task,
@@ -170836,8 +170870,8 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170836
170870
  ...subagent.task,
170837
170871
  status: taskStatus,
170838
170872
  result,
170839
- completedAt: acpSubagentStatusIsTerminal(taskStatus) ? now$126 : null,
170840
- updatedAt: now$126
170873
+ completedAt: acpSubagentStatusIsTerminal(taskStatus) ? now$127 : null,
170874
+ updatedAt: now$127
170841
170875
  };
170842
170876
  const providerThreadId = subagent.task.providerThreadId;
170843
170877
  yield* emitProviderEvent({
@@ -170904,7 +170938,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
170904
170938
  title: subagent.task.title,
170905
170939
  startedAt: subagent.task.startedAt,
170906
170940
  completedAt: subagent.task.completedAt,
170907
- updatedAt: now$126,
170941
+ updatedAt: now$127,
170908
170942
  type: "subagent",
170909
170943
  subagentId: subagent.task.id,
170910
170944
  origin: "provider_native",
@@ -171065,7 +171099,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
171065
171099
  return;
171066
171100
  }
171067
171101
  const status = projectedStatus ?? toolStatus$1(toolCall.status);
171068
- const now$132 = yield* now;
171102
+ const now$133 = yield* now;
171069
171103
  const nativeItemId = `${context.nativeThreadId}:tool:${toolCall.toolCallId}`;
171070
171104
  const ordinal = yield* resolveItemOrdinal(context, nativeItemId);
171071
171105
  const nodeId = providerNodeId(nativeItemId);
@@ -171075,9 +171109,9 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
171075
171109
  nativeId: toolCall.toolCallId,
171076
171110
  strength: "strong"
171077
171111
  };
171078
- const startedAt = context.toolStartedAt.get(toolCall.toolCallId) ?? now$132;
171112
+ const startedAt = context.toolStartedAt.get(toolCall.toolCallId) ?? now$133;
171079
171113
  context.toolStartedAt.set(toolCall.toolCallId, startedAt);
171080
- const completedAt = completedAtForStatus(status, now$132);
171114
+ const completedAt = completedAtForStatus(status, now$133);
171081
171115
  const title = toolCall.title ?? null;
171082
171116
  yield* emitProviderEvent({
171083
171117
  type: "node.updated",
@@ -171114,7 +171148,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
171114
171148
  title,
171115
171149
  startedAt,
171116
171150
  completedAt,
171117
- updatedAt: now$132
171151
+ updatedAt: now$133
171118
171152
  };
171119
171153
  const rawInput = toolCall.data.rawInput;
171120
171154
  const rawOutput = toolCall.data.rawOutput ?? toolCall.data.content;
@@ -171286,7 +171320,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
171286
171320
  if (update.kind === "removed" && existing === void 0) return;
171287
171321
  const nativeItemId = `${context.nativeTurnId}:plan:${encodeURIComponent(update.nativePlanId)}`;
171288
171322
  const ordinal = yield* resolveItemOrdinal(context, nativeItemId);
171289
- const now$131 = yield* now;
171323
+ const now$132 = yield* now;
171290
171324
  const nodeId = providerNodeId(nativeItemId);
171291
171325
  const turnItemId = providerTurnItemId(nativeItemId);
171292
171326
  const planState = existing ?? {
@@ -171295,7 +171329,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
171295
171329
  runId: context.input.runId,
171296
171330
  driver
171297
171331
  }),
171298
- startedAt: now$131,
171332
+ startedAt: now$132,
171299
171333
  latest: null
171300
171334
  };
171301
171335
  const planId = planState.id;
@@ -171362,7 +171396,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
171362
171396
  runtimeRequestId: null,
171363
171397
  checkpointScopeId: null,
171364
171398
  startedAt: planState.startedAt,
171365
- completedAt: completed ? now$131 : null
171399
+ completedAt: completed ? now$132 : null
171366
171400
  }
171367
171401
  });
171368
171402
  yield* emitProviderEvent({
@@ -171386,8 +171420,8 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
171386
171420
  status: completed ? "completed" : "running",
171387
171421
  title: null,
171388
171422
  startedAt: planState.startedAt,
171389
- completedAt: completed ? now$131 : null,
171390
- updatedAt: now$131,
171423
+ completedAt: completed ? now$132 : null,
171424
+ updatedAt: now$132,
171391
171425
  ...plan.kind === "todo_list" ? {
171392
171426
  type: "todo_list",
171393
171427
  planId,
@@ -171404,7 +171438,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
171404
171438
  });
171405
171439
  const appendLoadedHistory = (notification, role, text, replace = false) => gen$1(function* () {
171406
171440
  if (text.length === 0 && !replace) return;
171407
- const now$128 = yield* now;
171441
+ const now$129 = yield* now;
171408
171442
  yield* update$4(snapshot, (current) => {
171409
171443
  const update = notification.update;
171410
171444
  const sourceMessageId = (update.sessionUpdate === "user_message_chunk" || update.sessionUpdate === "agent_message_chunk" || update.sessionUpdate === "agent_thought_chunk" || update.sessionUpdate === "user_message" || update.sessionUpdate === "agent_message" || update.sessionUpdate === "agent_thought") && update.messageId ? update.messageId : null;
@@ -171426,8 +171460,8 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
171426
171460
  text: replace ? text : `${previous?.text ?? ""}${text}`,
171427
171461
  attachments: [],
171428
171462
  streaming: false,
171429
- createdAt: previous?.createdAt ?? now$128,
171430
- updatedAt: now$128
171463
+ createdAt: previous?.createdAt ?? now$129,
171464
+ updatedAt: now$129
171431
171465
  });
171432
171466
  return {
171433
171467
  order: current.order.includes(key) ? current.order : [...current.order, key],
@@ -171653,12 +171687,12 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
171653
171687
  }
171654
171688
  const knownProviderThread = (yield* get$7(providerThreadByNativeSessionId)).get(notification.sessionId);
171655
171689
  if (knownProviderThread !== void 0) {
171656
- const now$124 = yield* now;
171690
+ const now$125 = yield* now;
171657
171691
  const providerThread = {
171658
171692
  ...knownProviderThread,
171659
171693
  contextUsage: (yield* get$7(contextUsageBySessionId)).get(notification.sessionId) ?? knownProviderThread.contextUsage ?? null,
171660
171694
  nativeMetadata: (yield* get$7(nativeMetadataBySessionId)).get(notification.sessionId) ?? knownProviderThread.nativeMetadata ?? null,
171661
- updatedAt: now$124
171695
+ updatedAt: now$125
171662
171696
  };
171663
171697
  yield* update$4(providerThreadByNativeSessionId, (current) => new Map(current).set(notification.sessionId, providerThread));
171664
171698
  yield* emitProviderEvent({
@@ -171756,9 +171790,9 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
171756
171790
  context.tools.set(key, merged);
171757
171791
  if (!shouldPersistToolUpdate(context, key, previous, merged, merged.status)) continue;
171758
171792
  const mcpIdentity = extractMcpToolCallIdentity(merged, { embeddedTerminalCommands: [...embeddedTerminalCommands(notification.sessionId, toolCall.toolCallId), ...rootSessionId === null ? [] : embeddedTerminalCommands(rootSessionId, toolCall.toolCallId)] });
171759
- const now$134 = yield* now;
171793
+ const now$135 = yield* now;
171760
171794
  const status = toolStatus$1(merged.status);
171761
- const startedAt = context.toolStartedAt.get(key) ?? now$134;
171795
+ const startedAt = context.toolStartedAt.get(key) ?? now$135;
171762
171796
  context.toolStartedAt.set(key, startedAt);
171763
171797
  const ordinal = resolveSubagentChildOrdinal(subagent, key);
171764
171798
  yield* emitProviderEvent({
@@ -171781,8 +171815,8 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
171781
171815
  status,
171782
171816
  title: merged.title ?? merged.kind ?? "Tool",
171783
171817
  startedAt,
171784
- completedAt: completedAtForStatus(status, now$134),
171785
- updatedAt: now$134,
171818
+ completedAt: completedAtForStatus(status, now$135),
171819
+ updatedAt: now$135,
171786
171820
  type: "dynamic_tool",
171787
171821
  ...mcpIdentity === void 0 ? {} : mcpToolPresentation$1({
171788
171822
  serverName: mcpIdentity.server,
@@ -171973,7 +172007,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
171973
172007
  const decision = yield* make$255();
171974
172008
  const nativeResponseAcknowledgement = yield* make$255();
171975
172009
  yield* registerNativeResponseAcknowledgement(generation, transportRequestId, nativeResponseAcknowledgement);
171976
- const now$120 = yield* now;
172010
+ const now$121 = yield* now;
171977
172011
  const nodeId = idAllocator.derive.approvalNode({ requestId });
171978
172012
  const requestKind = providerRequestKind(parsed.kind);
171979
172013
  const nativeItemRef = {
@@ -171993,7 +172027,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
171993
172027
  type: "live",
171994
172028
  providerSessionId: input.providerSessionId
171995
172029
  },
171996
- createdAt: now$120,
172030
+ createdAt: now$121,
171997
172031
  resolvedAt: null
171998
172032
  };
171999
172033
  const node = {
@@ -172010,7 +172044,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
172010
172044
  nativeItemRef,
172011
172045
  runtimeRequestId: requestId,
172012
172046
  checkpointScopeId: null,
172013
- startedAt: now$120,
172047
+ startedAt: now$121,
172014
172048
  completedAt: null
172015
172049
  };
172016
172050
  const turnItem = {
@@ -172025,9 +172059,9 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
172025
172059
  ordinal,
172026
172060
  status: "waiting",
172027
172061
  title: null,
172028
- startedAt: now$120,
172062
+ startedAt: now$121,
172029
172063
  completedAt: null,
172030
- updatedAt: now$120,
172064
+ updatedAt: now$121,
172031
172065
  type: "approval_request",
172032
172066
  requestId,
172033
172067
  requestKind,
@@ -172084,7 +172118,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
172084
172118
  const answers = yield* make$255();
172085
172119
  const nativeResponseAcknowledgement = yield* make$255();
172086
172120
  yield* registerNativeResponseAcknowledgement(generation, transportRequestId, nativeResponseAcknowledgement);
172087
- const now$137 = yield* now;
172121
+ const now$117 = yield* now;
172088
172122
  const nodeId = providerNodeId(request.nativeItemId);
172089
172123
  const turnItemId = providerTurnItemId(request.nativeItemId);
172090
172124
  const nativeItemRef = {
@@ -172108,7 +172142,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
172108
172142
  type: "live",
172109
172143
  providerSessionId: input.providerSessionId
172110
172144
  },
172111
- createdAt: now$137,
172145
+ createdAt: now$117,
172112
172146
  resolvedAt: null
172113
172147
  };
172114
172148
  const node = {
@@ -172125,7 +172159,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
172125
172159
  nativeItemRef,
172126
172160
  runtimeRequestId: requestId,
172127
172161
  checkpointScopeId: null,
172128
- startedAt: now$137,
172162
+ startedAt: now$117,
172129
172163
  completedAt: null
172130
172164
  };
172131
172165
  const turnItem = {
@@ -172140,9 +172174,9 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
172140
172174
  ordinal,
172141
172175
  status: "waiting",
172142
172176
  title: null,
172143
- startedAt: now$137,
172177
+ startedAt: now$117,
172144
172178
  completedAt: null,
172145
- updatedAt: now$137,
172179
+ updatedAt: now$117,
172146
172180
  type: "user_input_request",
172147
172181
  requestId,
172148
172182
  questions: [...request.questions]
@@ -172206,7 +172240,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
172206
172240
  const cancelPendingRuntimeRequests = fnUntraced(function* () {
172207
172241
  const requests = yield* modify$3(pendingRuntimeRequests, (current) => [[...current.values()], /* @__PURE__ */ new Map()]);
172208
172242
  if (requests.length === 0) return;
172209
- const now$127 = yield* now;
172243
+ const now$128 = yield* now;
172210
172244
  yield* forEach(requests, (request) => gen$1(function* () {
172211
172245
  if (!(yield* request.type === "approval" ? succeed$6(request.decision, "cancel") : succeed$6(request.answers, null))) return;
172212
172246
  yield* emitProviderEvent({
@@ -172216,7 +172250,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
172216
172250
  runtimeRequest: {
172217
172251
  ...request.runtimeRequest,
172218
172252
  status: "cancelled",
172219
- resolvedAt: now$127
172253
+ resolvedAt: now$128
172220
172254
  }
172221
172255
  });
172222
172256
  yield* emitProviderEvent({
@@ -172225,7 +172259,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
172225
172259
  node: {
172226
172260
  ...request.node,
172227
172261
  status: "cancelled",
172228
- completedAt: now$127
172262
+ completedAt: now$128
172229
172263
  }
172230
172264
  });
172231
172265
  yield* emitProviderEvent({
@@ -172234,8 +172268,8 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
172234
172268
  turnItem: {
172235
172269
  ...request.turnItem,
172236
172270
  status: "cancelled",
172237
- completedAt: now$127,
172238
- updatedAt: now$127
172271
+ completedAt: now$128,
172272
+ updatedAt: now$128
172239
172273
  }
172240
172274
  });
172241
172275
  }), {
@@ -172249,15 +172283,15 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
172249
172283
  * longer guaranteed to ingest the terminal event.
172250
172284
  */
172251
172285
  const mutateCarryoverSubagentStatus = fnUntraced(function* (subagent, status, resultOverride) {
172252
- const now$130 = yield* now;
172286
+ const now$131 = yield* now;
172253
172287
  const result = resultOverride !== void 0 && resultOverride !== null && resultOverride.length > 0 ? resultOverride : subagent.task.result ?? (subagent.assistantText || null);
172254
- const completedAt = acpSubagentStatusIsTerminal(status) ? now$130 : null;
172288
+ const completedAt = acpSubagentStatusIsTerminal(status) ? now$131 : null;
172255
172289
  subagent.task = {
172256
172290
  ...subagent.task,
172257
172291
  status,
172258
172292
  result,
172259
172293
  completedAt,
172260
- updatedAt: now$130
172294
+ updatedAt: now$131
172261
172295
  };
172262
172296
  });
172263
172297
  /**
@@ -173037,7 +173071,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
173037
173071
  else if (settledStatus === "interrupted") yield* terminalizeOpenRunOwnedItems(context, { terminalizeSubagents: directStopQuarantine });
173038
173072
  yield* closeTextStreams(context);
173039
173073
  if (settledStatus !== "failed") yield* emitProviderRetry(context, settledStatus);
173040
- const now$117 = yield* now;
173074
+ const now$118 = yield* now;
173041
173075
  if (flavor.supportsCompaction === true && context.input.message.text.trim() === "/compact" && context.input.message.attachments.length === 0 && settledStatus === "completed") {
173042
173076
  const nativeItemId = `${context.nativeTurnId}:compaction`;
173043
173077
  yield* emitProviderEvent({
@@ -173065,12 +173099,12 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
173065
173099
  status: "completed",
173066
173100
  title: "Context compacted",
173067
173101
  startedAt: context.startedAt,
173068
- completedAt: now$117,
173069
- updatedAt: now$117
173102
+ completedAt: now$118,
173103
+ updatedAt: now$118
173070
173104
  }
173071
173105
  });
173072
173106
  }
173073
- const turn = providerTurnPayload(context, settledStatus, now$117);
173107
+ const turn = providerTurnPayload(context, settledStatus, now$118);
173074
173108
  yield* update$4(providerTurns, (current) => {
173075
173109
  const updated = new Map(current);
173076
173110
  updated.set(String(turn.id), turn);
@@ -173090,7 +173124,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
173090
173124
  firstRunOrdinal: context.input.providerThread.firstRunOrdinal ?? context.input.runOrdinal,
173091
173125
  contextUsage: context.contextUsage,
173092
173126
  nativeMetadata: context.nativeMetadata,
173093
- updatedAt: now$117
173127
+ updatedAt: now$118
173094
173128
  };
173095
173129
  yield* update$4(providerThreadByNativeSessionId, (current) => new Map(current).set(context.nativeThreadId, updatedProviderThread));
173096
173130
  yield* emitProviderEvent({
@@ -173503,7 +173537,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
173503
173537
  return false;
173504
173538
  }) } : {},
173505
173539
  ensureThread: fn("AcpAdapterV2.ensureThread")(function* (threadInput) {
173506
- const now$118 = yield* now;
173540
+ const now$119 = yield* now;
173507
173541
  const sessionId = yield* get$7(activeSessionId);
173508
173542
  if (sessionId === null) return yield* new ProviderAdapterProtocolError({
173509
173543
  driver,
@@ -173517,7 +173551,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
173517
173551
  providerSessionId: input.providerSessionId,
173518
173552
  nativeThreadId: sessionId,
173519
173553
  ...itemIdentityVersion === void 0 ? {} : { itemIdentityVersion },
173520
- now: now$118
173554
+ now: now$119
173521
173555
  });
173522
173556
  yield* update$4(providerThreadByNativeSessionId, (current) => new Map(current).set(sessionId, providerThread));
173523
173557
  return providerThread;
@@ -173553,12 +173587,12 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
173553
173587
  yield* set$5(activeSelection, nextSelection);
173554
173588
  yield* set$5(activeInteractionMode, nextRuntimePolicy.interactionMode);
173555
173589
  }
173556
- const now$135 = yield* now;
173590
+ const now$136 = yield* now;
173557
173591
  return {
173558
173592
  ...threadInput.providerThread,
173559
173593
  providerSessionId: input.providerSessionId,
173560
173594
  status: "idle",
173561
- updatedAt: now$135
173595
+ updatedAt: now$136
173562
173596
  };
173563
173597
  }));
173564
173598
  }, (effect, threadInput) => effect.pipe(mapError((cause) => new ProviderAdapterResumeThreadError({
@@ -173791,13 +173825,13 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
173791
173825
  yield* set$5(activeInteractionMode, null);
173792
173826
  }
173793
173827
  const state = yield* get$7(snapshot);
173794
- const now$129 = yield* now;
173828
+ const now$130 = yield* now;
173795
173829
  return {
173796
173830
  providerThread: {
173797
173831
  ...snapshotInput.providerThread,
173798
173832
  providerSessionId: input.providerSessionId,
173799
173833
  status: "idle",
173800
- updatedAt: now$129
173834
+ updatedAt: now$130
173801
173835
  },
173802
173836
  providerTurns: [...(yield* get$7(providerTurns)).values()],
173803
173837
  messages: state.order.flatMap((key) => {
@@ -173856,7 +173890,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
173856
173890
  yield* set$5(lastTurnRoute, null);
173857
173891
  }));
173858
173892
  })).pipe(retry$1({ times: 1 }));
173859
- const now$136 = yield* now;
173893
+ const now$137 = yield* now;
173860
173894
  return {
173861
173895
  providerThread: {
173862
173896
  ...rollbackInput.providerThread,
@@ -173871,7 +173905,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
173871
173905
  itemIdentityVersion: 2
173872
173906
  },
173873
173907
  status: "idle",
173874
- updatedAt: now$136
173908
+ updatedAt: now$137
173875
173909
  },
173876
173910
  providerTurns: [],
173877
173911
  messages: [],
@@ -173906,7 +173940,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
173906
173940
  yield* set$5(activeSelection, null);
173907
173941
  yield* set$5(activeInteractionMode, null);
173908
173942
  itemIdentityVersion = 2;
173909
- const now$119 = yield* now;
173943
+ const now$120 = yield* now;
173910
173944
  const providerThread = makeProviderThread$3({
173911
173945
  driver,
173912
173946
  providerInstanceId: options.instanceId,
@@ -173920,7 +173954,7 @@ const makeAcpAdapterV2 = fn("makeAcpAdapterV2")(function* (options) {
173920
173954
  providerThreadId: forkInput.sourceProviderThread.id,
173921
173955
  ...forkInput.providerTurnId === void 0 ? {} : { providerTurnId: forkInput.providerTurnId }
173922
173956
  },
173923
- now: now$119
173957
+ now: now$120
173924
173958
  });
173925
173959
  yield* update$4(providerThreadByNativeSessionId, (current) => new Map(current).set(forked.sessionId, providerThread));
173926
173960
  return providerThread;
@@ -191547,6 +191581,7 @@ function claudeUserMcpServers(servers) {
191547
191581
  }
191548
191582
  function claudeMcpQueryOverrides(input) {
191549
191583
  const session = input.mcpSession;
191584
+ const skillSettings = input.userRegistry?.skillOverrides === void 0 ? {} : { sdkSettings: { skillOverrides: Object.fromEntries(Object.entries(input.userRegistry.skillOverrides).map(([name, enabled]) => [name, enabled ? "on" : "off"])) } };
191550
191585
  const userServers = claudeUserMcpServers(input.userRegistry === void 0 ? [] : serversForDriver(input.userRegistry, CLAUDE_PROVIDER));
191551
191586
  const plugins = input.userRegistry === void 0 || input.userRegistry.plugins.length === 0 ? {} : { plugins: input.userRegistry.plugins.map((plugin) => ({
191552
191587
  type: "local",
@@ -191555,7 +191590,8 @@ function claudeMcpQueryOverrides(input) {
191555
191590
  if (session === void 0) return {
191556
191591
  ...input.allowedTools === void 0 ? {} : { allowedTools: input.allowedTools },
191557
191592
  ...Object.keys(userServers).length === 0 ? {} : { mcpServers: userServers },
191558
- ...plugins
191593
+ ...plugins,
191594
+ ...skillSettings
191559
191595
  };
191560
191596
  const mcpAllowedTools = input.readOnlySandbox ? CLAUDE_READ_ONLY_T3_MCP_ALLOWED_TOOLS : [CLAUDE_T3_MCP_TOOL_WILDCARD];
191561
191597
  return {
@@ -191569,7 +191605,8 @@ function claudeMcpQueryOverrides(input) {
191569
191605
  timeout: CLAUDE_T3_MCP_TOOL_TIMEOUT_MS
191570
191606
  }
191571
191607
  },
191572
- ...plugins
191608
+ ...plugins,
191609
+ ...skillSettings
191573
191610
  };
191574
191611
  }
191575
191612
  function providerSession$2(input) {
@@ -191926,6 +191963,7 @@ function claudeRuntimeQueryPolicyKey(policy) {
191926
191963
  function claudeEffectiveQueryPolicyKey(queryPolicy, mcpOverrides) {
191927
191964
  return JSON.stringify({
191928
191965
  plugins: mcpOverrides.plugins,
191966
+ skillSettings: mcpOverrides.sdkSettings,
191929
191967
  runtimePolicy: claudeRuntimeQueryPolicyKey({
191930
191968
  ...queryPolicy,
191931
191969
  ...mcpOverrides.allowedTools === void 0 ? {} : { allowedTools: mcpOverrides.allowedTools }
@@ -192801,7 +192839,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
192801
192839
  const { attachmentsDir, fileSystem, path, crypto, idAllocator, queryRunner } = adapterOptions;
192802
192840
  const subagentModelCatalog = scopeClaudeModelCatalog(BUNDLED_CLAUDE_MODEL_CATALOG, adapterOptions.settings.customModels);
192803
192841
  const continuationRequests = adapterOptions.continuationRequests ?? { offer: () => void_$1 };
192804
- const userInvocableSkillNames = (cwd) => discoverClaudeSkills(adapterOptions.settings, cwd ?? void 0, adapterOptions.environment).pipe(map$11((skills) => new Set(skills.filter((skill) => skill.enabled && skill.userInvocable !== false).map((skill) => skill.name))), provideService(FileSystem, fileSystem), provideService(Path$2, path));
192842
+ const userInvocableSkillNames = (cwd, threadId) => discoverClaudeSkills(adapterOptions.settings, cwd ?? void 0, adapterOptions.environment).pipe(flatMap$1((skills) => readUserMcpRegistry(threadId).pipe(map$11((registry) => new Set(skills.filter((skill) => (registry.skillOverrides?.[skill.name] ?? skill.enabled) && skill.userInvocable !== false).map((skill) => skill.name))))), provideService(FileSystem, fileSystem), provideService(Path$2, path));
192805
192843
  return ProviderAdapterV2.of({
192806
192844
  instanceId: adapterOptions.instanceId,
192807
192845
  driver: CLAUDE_PROVIDER,
@@ -193050,14 +193088,14 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
193050
193088
  const clearOpaqueBackgroundTaskReplayTombstone = (nativeThreadId, taskId) => clearTaskIdFromNativeThreadSet(opaqueBackgroundTaskReplayTombstonesByNativeThread, nativeThreadId, taskId);
193051
193089
  const emitProviderThreadRoster = fnUntraced(function* (input) {
193052
193090
  const roster = rosterForNativeThread(yield* get$7(pendingBackgroundTasksByNativeThread), input.nativeThreadId);
193053
- const now$109 = yield* now;
193091
+ const now$104 = yield* now;
193054
193092
  const providerThread = {
193055
193093
  ...input.providerThread,
193056
193094
  providerSessionId: session.id,
193057
193095
  ...input.status === void 0 ? {} : { status: input.status },
193058
193096
  pendingBackgroundTasks: claudePendingBackgroundTasksFromRoster(roster),
193059
193097
  ...goalsByNativeThread.has(input.nativeThreadId) ? { goal: goalsByNativeThread.get(input.nativeThreadId) ?? null } : {},
193060
- updatedAt: now$109
193098
+ updatedAt: now$104
193061
193099
  };
193062
193100
  yield* rememberProviderThread(providerThread);
193063
193101
  yield* emitProviderEvent({
@@ -193335,7 +193373,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
193335
193373
  }).pipe(catch_(() => logWarning$1("orchestration-v2.claude-subagent-launch-lookup-failed", { taskId: resume.taskId }).pipe(as(null))));
193336
193374
  if (launchToolUseId === null || launchToolUseId === resume.toolUseId) return;
193337
193375
  const ids = claudeSubagentIds(resume.context, resume.taskId);
193338
- const now$113 = yield* now;
193376
+ const now$108 = yield* now;
193339
193377
  const subagent = {
193340
193378
  confirmedOutcome: void 0,
193341
193379
  childThread: null,
@@ -193360,9 +193398,9 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
193360
193398
  model: null,
193361
193399
  result: null,
193362
193400
  status: "completed",
193363
- startedAt: now$113,
193364
- completedAt: now$113,
193365
- updatedAt: now$113
193401
+ startedAt: now$108,
193402
+ completedAt: now$108,
193403
+ updatedAt: now$108
193366
193404
  },
193367
193405
  rootNodeId: resume.context.input.rootNodeId,
193368
193406
  childThreadId: ids.childThreadId,
@@ -193447,7 +193485,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
193447
193485
  const parentThread = input.coordinator.childThread;
193448
193486
  const taskId = input.coordinator.task.nativeTaskRef?.nativeId;
193449
193487
  if (parentThread === null || taskId === void 0 || taskId === null) return;
193450
- const now$107 = yield* now;
193488
+ const now$102 = yield* now;
193451
193489
  const seen = yield* get$7(workflowMemberStates);
193452
193490
  const transcriptDir = input.workflow.runHandles?.transcriptDir;
193453
193491
  for (const member of input.workflow.agents) {
@@ -193460,9 +193498,9 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
193460
193498
  const model = member.model ?? parentThread.modelSelection.model;
193461
193499
  const attempt = member.attempt ?? previous?.attempt ?? 1;
193462
193500
  const restarted = previous !== void 0 && attempt > previous.attempt;
193463
- const createdAt = previous?.createdAt ?? now$107;
193464
- const startedAt = status === "pending" ? null : member.startedAt !== void 0 ? makeUnsafe$8(member.startedAt) : (restarted ? null : previous?.startedAt) ?? (status === "running" ? now$107 : null);
193465
- const completedAt = settled ? (restarted ? null : previous?.completedAt) ?? now$107 : null;
193501
+ const createdAt = previous?.createdAt ?? now$102;
193502
+ const startedAt = status === "pending" ? null : member.startedAt !== void 0 ? makeUnsafe$8(member.startedAt) : (restarted ? null : previous?.startedAt) ?? (status === "running" ? now$102 : null);
193503
+ const completedAt = settled ? (restarted ? null : previous?.completedAt) ?? now$102 : null;
193466
193504
  const changed = restarted || previous?.status !== status || !equals(previous?.startedAt, startedAt) || previous?.result !== member.result || previous?.label !== member.label || previous?.prompt !== prompt || previous?.model !== model;
193467
193505
  const agentId = member.agentId;
193468
193506
  const readTranscript = settled && transcriptDir !== void 0 && agentId !== void 0 && (input.coordinator.task.status === "running" ? (restarted ? 0 : previous?.transcriptReadAttempts ?? 0) < 3 : restarted || previous?.finalTranscriptRead !== true);
@@ -193503,7 +193541,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
193503
193541
  role: "user",
193504
193542
  text: prompt,
193505
193543
  ordinal: 100,
193506
- now: now$107
193544
+ now: now$102
193507
193545
  });
193508
193546
  if (restarted && !settled) yield* emitSubagentConversationMessage({
193509
193547
  nativeItemId: `${memberKey}:answer:200`,
@@ -193512,7 +193550,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
193512
193550
  role: "assistant",
193513
193551
  text: "Retry in progress.",
193514
193552
  ordinal: 200,
193515
- now: now$107
193553
+ now: now$102
193516
193554
  });
193517
193555
  const task = {
193518
193556
  id: nodeId,
@@ -193537,7 +193575,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
193537
193575
  result: member.result ?? null,
193538
193576
  startedAt,
193539
193577
  completedAt,
193540
- updatedAt: now$107
193578
+ updatedAt: now$102
193541
193579
  };
193542
193580
  const nodeBase = {
193543
193581
  runId: null,
@@ -193598,7 +193636,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
193598
193636
  role: "assistant",
193599
193637
  text: answer,
193600
193638
  ordinal: 200,
193601
- now: now$107
193639
+ now: now$102
193602
193640
  });
193603
193641
  }
193604
193642
  yield* update$4(workflowMemberStates, (current) => new Map(current).set(memberKey, {
@@ -193644,7 +193682,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
193644
193682
  if (existingSubagent !== void 0 && existingSubagent.task.status !== "running" && input.status === "running" && !isReopen) return;
193645
193683
  const resumeToolUseId = input.reopen === true && existingSubagent !== void 0 && input.toolUseId !== void 0 && input.toolUseId !== existingSubagent.runToolUseId && input.prompt !== void 0 ? input.toolUseId : null;
193646
193684
  const lifecycleChanged = existingSubagent === void 0 || existingSubagent.task.status !== input.status || input.reopen === true && input.status === "running";
193647
- const now$108 = yield* now;
193685
+ const now$103 = yield* now;
193648
193686
  const nativeItemId = `task:${input.taskId}`;
193649
193687
  const derivedIds = claudeSubagentIds(input.context, input.taskId);
193650
193688
  const nodeId = existingSubagent?.task.id ?? derivedIds.nodeId;
@@ -193686,7 +193724,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
193686
193724
  title: input.title ?? null,
193687
193725
  model: input.model ?? null,
193688
193726
  result: null,
193689
- startedAt: now$108
193727
+ startedAt: now$103
193690
193728
  },
193691
193729
  status: input.status,
193692
193730
  ...input.reopen === true && input.status === "running" && existingSubagent !== void 0 ? { runId: input.context.input.runId } : {},
@@ -193697,9 +193735,9 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
193697
193735
  ...input.progress === void 0 ? {} : { progress: input.progress },
193698
193736
  ...workflowWithThreads === void 0 ? {} : { workflow: workflowWithThreads },
193699
193737
  ...input.result === void 0 ? {} : { result: input.result },
193700
- ...isReopen ? { startedAt: now$108 } : {},
193701
- completedAt: input.status === "running" ? null : priorTask?.completedAt ?? now$108,
193702
- updatedAt: now$108
193738
+ ...isReopen ? { startedAt: now$103 } : {},
193739
+ completedAt: input.status === "running" ? null : priorTask?.completedAt ?? now$103,
193740
+ updatedAt: now$103
193703
193741
  };
193704
193742
  const subagent = {
193705
193743
  task,
@@ -193753,7 +193791,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
193753
193791
  title: workflowWithThreads === void 0 ? task.title : `Workflow · ${workflowWithThreads.name ?? task.title ?? "Untitled"}`,
193754
193792
  ordinal: input.context.subagentsByTaskId.size
193755
193793
  }),
193756
- now: now$108,
193794
+ now: now$103,
193757
193795
  createdBy: "agent",
193758
193796
  creationSource: "provider"
193759
193797
  });
@@ -193821,7 +193859,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
193821
193859
  role: "user",
193822
193860
  text: task.prompt,
193823
193861
  ordinal: existingSubagent === void 0 ? 100 : ++subagent.nextChildItemOrdinal,
193824
- now: now$108
193862
+ now: now$103
193825
193863
  });
193826
193864
  yield* emitProviderEvent({
193827
193865
  type: "subagent.updated",
@@ -193880,7 +193918,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
193880
193918
  role: "assistant",
193881
193919
  text: input.result,
193882
193920
  ordinal: resultItemOrdinal,
193883
- now: now$108
193921
+ now: now$103
193884
193922
  });
193885
193923
  }
193886
193924
  });
@@ -194186,7 +194224,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
194186
194224
  const block = context.reasoning.blocks.get(update.itemId);
194187
194225
  if (block === void 0 || update.text.length === 0) return;
194188
194226
  block.text = update.text;
194189
- const now$114 = yield* now;
194227
+ const now$109 = yield* now;
194190
194228
  yield* emitProviderEvent({
194191
194229
  type: "turn_item.updated",
194192
194230
  driver: CLAUDE_PROVIDER,
@@ -194213,8 +194251,8 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
194213
194251
  streaming: !update.completed,
194214
194252
  status: update.completed ? "completed" : "running",
194215
194253
  startedAt: block.startedAt,
194216
- completedAt: update.completed ? now$114 : null,
194217
- updatedAt: now$114
194254
+ completedAt: update.completed ? now$109 : null,
194255
+ updatedAt: now$109
194218
194256
  }
194219
194257
  });
194220
194258
  })
@@ -194419,7 +194457,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
194419
194457
  const emitAssistantTextArtifacts = fnUntraced(function* (input) {
194420
194458
  if (input.context.assistant.emittedNativeItemIds.has(input.nativeItemId)) return;
194421
194459
  input.context.assistant.emittedNativeItemIds.add(input.nativeItemId);
194422
- const now$111 = yield* now;
194460
+ const now$107 = yield* now;
194423
194461
  const ordinal = yield* resolveItemOrdinal(input.context, input.nativeItemId);
194424
194462
  const artifacts = buildAssistantArtifacts({
194425
194463
  idAllocator,
@@ -194428,8 +194466,8 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
194428
194466
  nativeItemId: input.nativeItemId,
194429
194467
  text: input.text,
194430
194468
  ordinal,
194431
- startedAt: now$111,
194432
- completedAt: now$111
194469
+ startedAt: now$107,
194470
+ completedAt: now$107
194433
194471
  });
194434
194472
  yield* all$5([
194435
194473
  emitProviderEvent({
@@ -194514,14 +194552,14 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
194514
194552
  message
194515
194553
  });
194516
194554
  if (workflow === void 0) return;
194517
- const now$101 = yield* now;
194555
+ const now$112 = yield* now;
194518
194556
  const progress = text$3(message.description);
194519
194557
  const workflowWithThreads = withWorkflowMemberThreadIds(workflow, registered.childThreadId);
194520
194558
  const task = {
194521
194559
  ...registered.task,
194522
194560
  ...progress === void 0 ? {} : { progress },
194523
194561
  workflow: workflowWithThreads,
194524
- updatedAt: now$101
194562
+ updatedAt: now$112
194525
194563
  };
194526
194564
  const coordinator = {
194527
194565
  ...registered,
@@ -194552,7 +194590,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
194552
194590
  const isNewSubagentTaskStarted = message.type === "system" && message.subtype === "task_started" && !isClaudeNonSubagentTask(message);
194553
194591
  const isKnownSubagentTaskStarted = message.type === "system" && message.subtype === "task_started" && (yield* get$7(sessionSubagentsByTaskId)).has(message.task_id);
194554
194592
  if (isKnownSubagentTaskStarted && message.type === "system" && message.subtype === "task_started") {
194555
- const now$102 = yield* now;
194593
+ const now$113 = yield* now;
194556
194594
  yield* update$4(sessionSubagentsByTaskId, (current) => {
194557
194595
  const registered = current.get(message.task_id);
194558
194596
  if (registered === void 0 || registered.task.status === "running") return current;
@@ -194564,9 +194602,9 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
194564
194602
  ...priorTask,
194565
194603
  status: "running",
194566
194604
  result: null,
194567
- startedAt: now$102,
194605
+ startedAt: now$113,
194568
194606
  completedAt: null,
194569
- updatedAt: now$102
194607
+ updatedAt: now$113
194570
194608
  }
194571
194609
  });
194572
194610
  });
@@ -194699,10 +194737,10 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
194699
194737
  if (!rateLimitInfo) return;
194700
194738
  const names = adapterOptions.scopedLimitNames ? yield* get$7(adapterOptions.scopedLimitNames) : { overageIncluded: void 0 };
194701
194739
  const update = claudeRateLimitEventToUpdate(rateLimitInfo, names);
194702
- const now$100 = yield* now;
194740
+ const now$111 = yield* now;
194703
194741
  if (update && adapterOptions.onUsageLimits) yield* adapterOptions.onUsageLimits({
194704
194742
  ...update,
194705
- checkedAt: formatIso(now$100)
194743
+ checkedAt: formatIso(now$111)
194706
194744
  });
194707
194745
  const context = yield* get$7(activeTurn);
194708
194746
  if (context === null) {
@@ -194728,7 +194766,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
194728
194766
  if (!context.announcedUsageLimits.has(limitKey)) {
194729
194767
  context.announcedUsageLimits.add(limitKey);
194730
194768
  const nativeItemId = `usage-limit:${context.providerTurnId}:${limitKey}`;
194731
- const notice = describeClaudeUsageLimit(rateLimitInfo, toEpochMillis(now$100), names);
194769
+ const notice = describeClaudeUsageLimit(rateLimitInfo, toEpochMillis(now$111), names);
194732
194770
  yield* emitProviderEvent({
194733
194771
  type: "turn_item.updated",
194734
194772
  driver: CLAUDE_PROVIDER,
@@ -194753,9 +194791,9 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
194753
194791
  status: "completed",
194754
194792
  title: notice,
194755
194793
  message: notice,
194756
- startedAt: now$100,
194757
- completedAt: now$100,
194758
- updatedAt: now$100
194794
+ startedAt: now$111,
194795
+ completedAt: now$111,
194796
+ updatedAt: now$111
194759
194797
  }
194760
194798
  });
194761
194799
  }
@@ -194891,7 +194929,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
194891
194929
  }
194892
194930
  }
194893
194931
  if (message.type === "system" && message.subtype === "compact_boundary") {
194894
- const now$105 = yield* now;
194932
+ const now$101 = yield* now;
194895
194933
  const nativeItemId = message.uuid;
194896
194934
  const postTokens = message.compact_metadata.post_tokens;
194897
194935
  const afterTokenCount = typeof postTokens === "number" && Number.isFinite(postTokens) && postTokens > 0 ? Math.round(postTokens) : void 0;
@@ -194916,7 +194954,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
194916
194954
  tokenUsage: {
194917
194955
  usedTokens: afterTokenCount,
194918
194956
  maxTokens: claudeContextWindow(context.input.modelSelection),
194919
- updatedAt: formatIso(now$105)
194957
+ updatedAt: formatIso(now$101)
194920
194958
  }
194921
194959
  }
194922
194960
  });
@@ -194944,9 +194982,9 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
194944
194982
  driver: CLAUDE_PROVIDER,
194945
194983
  status: "completed",
194946
194984
  title: "Context compacted",
194947
- startedAt: now$105,
194948
- completedAt: now$105,
194949
- updatedAt: now$105,
194985
+ startedAt: now$101,
194986
+ completedAt: now$101,
194987
+ updatedAt: now$101,
194950
194988
  ...message.compact_metadata.pre_tokens === void 0 ? {} : { beforeTokenCount: message.compact_metadata.pre_tokens },
194951
194989
  ...afterTokenCount === void 0 ? {} : { afterTokenCount }
194952
194990
  }
@@ -194954,7 +194992,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
194954
194992
  return;
194955
194993
  }
194956
194994
  if (message.type === "system" && message.subtype === "model_refusal_fallback") {
194957
- const now$115 = yield* now;
194995
+ const now$110 = yield* now;
194958
194996
  const nativeItemId = message.uuid;
194959
194997
  yield* emitProviderEvent({
194960
194998
  type: "turn_item.updated",
@@ -194980,9 +195018,9 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
194980
195018
  status: "completed",
194981
195019
  title: message.content,
194982
195020
  message: message.content,
194983
- startedAt: now$115,
194984
- completedAt: now$115,
194985
- updatedAt: now$115
195021
+ startedAt: now$110,
195022
+ completedAt: now$110,
195023
+ updatedAt: now$110
194986
195024
  }
194987
195025
  });
194988
195026
  return;
@@ -195029,8 +195067,8 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
195029
195067
  return;
195030
195068
  }
195031
195069
  if (message.type === "assistant" && input.replayed !== true) {
195032
- const now$103 = yield* now;
195033
- yield* completeProviderRetry(context, now$103);
195070
+ const now$114 = yield* now;
195071
+ yield* completeProviderRetry(context, now$114);
195034
195072
  if (message.parent_tool_use_id === null && message.message.usage !== void 0 && message.message.model !== "<synthetic>") yield* emitProviderEvent({
195035
195073
  type: "provider_turn.updated",
195036
195074
  driver: CLAUDE_PROVIDER,
@@ -195049,7 +195087,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
195049
195087
  status: "running",
195050
195088
  startedAt: context.startedAt,
195051
195089
  completedAt: null,
195052
- tokenUsage: claudeProviderTurnTokenUsage(message.message.usage, context.input.modelSelection, formatIso(now$103))
195090
+ tokenUsage: claudeProviderTurnTokenUsage(message.message.usage, context.input.modelSelection, formatIso(now$114))
195053
195091
  }
195054
195092
  });
195055
195093
  const parentToolUseId = message.parent_tool_use_id;
@@ -195299,7 +195337,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
195299
195337
  const thinking = message.message.content.flatMap((block) => block.type === "thinking" && block.thinking.trim().length > 0 ? [block.thinking] : []);
195300
195338
  const subagent = thinking.length === 0 ? void 0 : yield* resolveSubagentByToolUseId(context, assistantParentToolUseId);
195301
195339
  if (subagent !== void 0) {
195302
- const now$110 = yield* now;
195340
+ const now$105 = yield* now;
195303
195341
  for (const [index, text] of thinking.entries()) {
195304
195342
  const nativeItemId = `${message.uuid}:thinking:${index}`;
195305
195343
  yield* emitProviderEvent({
@@ -195327,9 +195365,9 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
195327
195365
  text,
195328
195366
  streaming: false,
195329
195367
  status: "completed",
195330
- startedAt: now$110,
195331
- completedAt: now$110,
195332
- updatedAt: now$110
195368
+ startedAt: now$105,
195369
+ completedAt: now$105,
195370
+ updatedAt: now$105
195333
195371
  }
195334
195372
  });
195335
195373
  }
@@ -195339,7 +195377,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
195339
195377
  if (assistantText !== null && assistantText.text.length > 0 && assistantParentToolUseId !== null) {
195340
195378
  const subagent = yield* resolveSubagentByToolUseId(context, assistantParentToolUseId);
195341
195379
  if (subagent === void 0) return;
195342
- const now$104 = yield* now;
195380
+ const now$115 = yield* now;
195343
195381
  const nativeMessageId = message.type === "assistant" && typeof message.message.id === "string" ? message.message.id : null;
195344
195382
  subagent.lastAssistantText = nativeMessageId !== null && nativeMessageId === subagent.lastAssistantMessageId ? `${subagent.lastAssistantText ?? ""}\n${assistantText.text}` : assistantText.text;
195345
195383
  subagent.lastAssistantMessageId = nativeMessageId;
@@ -195350,7 +195388,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
195350
195388
  role: "assistant",
195351
195389
  text: assistantText.text,
195352
195390
  ordinal: ++subagent.nextChildItemOrdinal,
195353
- now: now$104
195391
+ now: now$115
195354
195392
  });
195355
195393
  return;
195356
195394
  }
@@ -195802,6 +195840,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
195802
195840
  ...mcpOverrides.allowedTools === void 0 ? {} : { allowedTools: mcpOverrides.allowedTools },
195803
195841
  ...mcpOverrides.mcpServers === void 0 ? {} : { mcpServers: mcpOverrides.mcpServers },
195804
195842
  ...mcpOverrides.plugins === void 0 ? {} : { plugins: mcpOverrides.plugins },
195843
+ ...mcpOverrides.sdkSettings === void 0 ? {} : { sdkSettings: mcpOverrides.sdkSettings },
195805
195844
  permissionMode: queryPolicy.permissionMode,
195806
195845
  ...queryPolicy.allowDangerouslySkipPermissions === void 0 ? {} : { allowDangerouslySkipPermissions: queryPolicy.allowDangerouslySkipPermissions },
195807
195846
  canUseTool,
@@ -195928,7 +195967,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
195928
195967
  attachments: turnInput.message.attachments,
195929
195968
  attachmentsDir,
195930
195969
  fileSystem,
195931
- skillNames: yield* userInvocableSkillNames(turnInput.runtimePolicy.cwd),
195970
+ skillNames: yield* userInvocableSkillNames(turnInput.runtimePolicy.cwd, turnInput.threadId),
195932
195971
  uuid: promptUuid
195933
195972
  });
195934
195973
  const querySession = yield* openQuery(turnInput, nativeThreadId);
@@ -196096,7 +196135,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
196096
196135
  priority: "now",
196097
196136
  attachmentsDir,
196098
196137
  fileSystem,
196099
- skillNames: yield* userInvocableSkillNames(currentTurn.input.runtimePolicy.cwd)
196138
+ skillNames: yield* userInvocableSkillNames(currentTurn.input.runtimePolicy.cwd, currentTurn.input.threadId)
196100
196139
  });
196101
196140
  yield* update$4(steeredTurns, (current) => {
196102
196141
  const next = new Set(current);
@@ -196282,7 +196321,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
196282
196321
  });
196283
196322
  const nativeThreadId = yield* getNativeThreadId$1(rollbackInput.providerThread);
196284
196323
  yield* closeLiveQueryForNativeThread(nativeThreadId);
196285
- const now$106 = yield* now;
196324
+ const now$100 = yield* now;
196286
196325
  if (rollbackInput.target.type === "thread_start") {
196287
196326
  const resetNativeThreadId = yield* queryRunner.allocateSessionId;
196288
196327
  return {
@@ -196295,7 +196334,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
196295
196334
  providerSessionId: input.providerSessionId,
196296
196335
  nativeThreadId: resetNativeThreadId,
196297
196336
  ...rollbackInput.providerThread.forkedFrom === null ? {} : { forkedFrom: rollbackInput.providerThread.forkedFrom },
196298
- now: now$106
196337
+ now: now$100
196299
196338
  }),
196300
196339
  handoffIds: rollbackInput.providerThread.handoffIds
196301
196340
  },
@@ -196316,7 +196355,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
196316
196355
  },
196317
196356
  status: "idle",
196318
196357
  lastRunOrdinal: rollbackInput.target.appRunOrdinal,
196319
- updatedAt: now$106
196358
+ updatedAt: now$100
196320
196359
  },
196321
196360
  providerTurns: [],
196322
196361
  messages: [],
@@ -196351,7 +196390,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
196351
196390
  updated.add(forked.sessionId);
196352
196391
  return updated;
196353
196392
  });
196354
- const now$112 = yield* now;
196393
+ const now$106 = yield* now;
196355
196394
  return makeProviderThread$2({
196356
196395
  idAllocator,
196357
196396
  providerInstanceId: adapterOptions.instanceId,
@@ -196363,7 +196402,7 @@ const makeClaudeAdapterV2 = fn("makeClaudeAdapterV2")(function* (adapterOptions)
196363
196402
  providerThreadId: forkInput.sourceProviderThread.id,
196364
196403
  ...forkInput.providerTurnId === void 0 ? {} : { providerTurnId: forkInput.providerTurnId }
196365
196404
  },
196366
- now: now$112
196405
+ now: now$106
196367
196406
  });
196368
196407
  }, (effect, forkInput) => effect.pipe(mapError((cause) => new ProviderAdapterForkThreadError({
196369
196408
  driver: CLAUDE_PROVIDER,
@@ -251453,7 +251492,12 @@ const OPENCODE_RESTRICTED_PERMISSIONS = [
251453
251492
  * while shell/network/external access remains gated unless policy explicitly
251454
251493
  * allows it.
251455
251494
  */
251456
- function openCodePermissionRules(runtimePolicy) {
251495
+ function openCodePermissionRules(runtimePolicy, skillOverrides = {}) {
251496
+ const skillRules = Object.entries(skillOverrides).map(([name, enabled]) => ({
251497
+ permission: "skill",
251498
+ pattern: name,
251499
+ action: enabled ? "allow" : "deny"
251500
+ }));
251457
251501
  const sandboxPolicy = recordValue(runtimePolicy, "sandboxPolicy");
251458
251502
  const sandboxType = recordString$1(sandboxPolicy, "type");
251459
251503
  const rawApprovalPolicy = runtimePolicy.approvalPolicy;
@@ -251466,7 +251510,7 @@ function openCodePermissionRules(runtimePolicy) {
251466
251510
  permission: "*",
251467
251511
  pattern: "*",
251468
251512
  action: "allow"
251469
- }];
251513
+ }, ...skillRules];
251470
251514
  const rules = [{
251471
251515
  permission: "*",
251472
251516
  pattern: "*",
@@ -251537,7 +251581,7 @@ function openCodePermissionRules(runtimePolicy) {
251537
251581
  });
251538
251582
  }
251539
251583
  }
251540
- return rules;
251584
+ return [...rules, ...skillRules];
251541
251585
  }
251542
251586
  function permissionRuleEquals(left, right) {
251543
251587
  return left.permission === right.permission && left.pattern === right.pattern && left.action === right.action;
@@ -251548,11 +251592,15 @@ function permissionRuleEquals(left, right) {
251548
251592
  * tasks. Install the complete parent policy while retaining only rules that
251549
251593
  * were added specifically for the selected child agent.
251550
251594
  */
251551
- function openCodeChildPermissionRules(runtimePolicy, nativeChildRules) {
251552
- const parentRules = openCodePermissionRules(runtimePolicy);
251595
+ function openCodeChildPermissionRules(runtimePolicy, nativeChildRules, skillOverrides = {}) {
251596
+ const parentRules = openCodePermissionRules(runtimePolicy, skillOverrides);
251553
251597
  const inheritedRules = parentRules.filter((rule) => rule.permission === "external_directory" || rule.action === "deny");
251554
251598
  const childSpecificRules = nativeChildRules.filter((childRule) => !inheritedRules.some((inheritedRule) => permissionRuleEquals(childRule, inheritedRule)));
251555
- return [...parentRules, ...childSpecificRules];
251599
+ return [
251600
+ ...parentRules,
251601
+ ...childSpecificRules,
251602
+ ...parentRules.filter((rule) => rule.permission === "skill" && Object.hasOwn(skillOverrides, rule.pattern))
251603
+ ];
251556
251604
  }
251557
251605
  /**
251558
251606
  * OpenCode's fork/revert boundary is exclusive. To retain the selected app
@@ -251693,6 +251741,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
251693
251741
  const idAllocator = yield* IdAllocatorV2;
251694
251742
  const host = yield* ProviderHost;
251695
251743
  const mcpSessions = yield* McpProviderSessions;
251744
+ const readUserMcpRegistry = yield* makeReader;
251696
251745
  const messageIdClock = yield* make$215({
251697
251746
  epochMillis: -1,
251698
251747
  counter: 0
@@ -251717,6 +251766,31 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
251717
251766
  ...connection.external && options.settings.serverPassword ? { serverPassword: options.settings.serverPassword } : {}
251718
251767
  });
251719
251768
  const mcpSession = yield* mcpSessions.read(input.threadId);
251769
+ const userRegistry = yield* readUserMcpRegistry(input.threadId);
251770
+ const userServers = serversForDriver(userRegistry, OPENCODE_PROVIDER);
251771
+ if (connection.external && userServers.length > 0) return yield* new OpenCodeRuntimeError({
251772
+ operation: "mcp.add",
251773
+ detail: "P4-managed MCP servers require a local OpenCode session. Clear the OpenCode server URL to let P4 start an isolated server."
251774
+ });
251775
+ for (const server of userServers) {
251776
+ const transport = server.transport;
251777
+ yield* runOpenCodeSdk("mcp.add", (signal) => client.mcp.add({
251778
+ name: server.name,
251779
+ config: transport.type === "http" ? {
251780
+ type: "remote",
251781
+ url: transport.url,
251782
+ headers: { ...transport.headers },
251783
+ oauth: false
251784
+ } : {
251785
+ type: "local",
251786
+ command: [transport.command, ...transport.args],
251787
+ environment: { ...transport.env }
251788
+ }
251789
+ }, {
251790
+ signal,
251791
+ throwOnError: true
251792
+ }));
251793
+ }
251720
251794
  const hasT3Mcp = mcpSession !== void 0 && !connection.external;
251721
251795
  const orchestrationSystemPrompt = t3OrchestrationSystemPrompt(hasT3Mcp);
251722
251796
  if (hasT3Mcp) yield* runOpenCodeSdk("mcp.add", () => client.mcp.add({
@@ -251728,7 +251802,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
251728
251802
  oauth: false
251729
251803
  }
251730
251804
  }));
251731
- const now$73 = yield* now;
251805
+ const now$74 = yield* now;
251732
251806
  let sessionEntity = {
251733
251807
  id: input.providerSessionId,
251734
251808
  driver: OPENCODE_PROVIDER,
@@ -251737,8 +251811,8 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
251737
251811
  cwd,
251738
251812
  model: input.modelSelection.model,
251739
251813
  capabilities: OpenCodeProviderCapabilitiesV2,
251740
- createdAt: now$73,
251741
- updatedAt: now$73,
251814
+ createdAt: now$74,
251815
+ updatedAt: now$74,
251742
251816
  lastError: null
251743
251817
  };
251744
251818
  const events = yield* unbounded$2();
@@ -251976,7 +252050,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
251976
252050
  });
251977
252051
  });
251978
252052
  const emitSubagent = fnUntraced(function* (state, turn, part) {
251979
- const now$79 = yield* now;
252053
+ const now$81 = yield* now;
251980
252054
  const nativeItemRef = providerRef$1(part.id);
251981
252055
  const nodeId = idAllocator.derive.nodeFromProviderItem({
251982
252056
  driver: OPENCODE_PROVIDER,
@@ -251999,7 +252073,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
251999
252073
  parentTurn: turn,
252000
252074
  prompt,
252001
252075
  title,
252002
- startedAt: toolStartedAt(part, now$79),
252076
+ startedAt: toolStartedAt(part, now$81),
252003
252077
  childSessionId: null,
252004
252078
  childThreadId: null,
252005
252079
  childProviderThreadId: null,
@@ -252039,7 +252113,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252039
252113
  prompt,
252040
252114
  ordinal: itemOrdinal(turn, part.id)
252041
252115
  }),
252042
- now: now$79,
252116
+ now: now$81,
252043
252117
  createdBy: "agent",
252044
252118
  creationSource: "provider"
252045
252119
  });
@@ -252057,11 +252131,11 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252057
252131
  lastRunOrdinal: null,
252058
252132
  handoffIds: [],
252059
252133
  forkedFrom: null,
252060
- createdAt: now$79,
252061
- updatedAt: now$79
252134
+ createdAt: now$81,
252135
+ updatedAt: now$81
252062
252136
  };
252063
252137
  const nativeChildSession = unwrapData("session.get", yield* sdkCall("session.get", { sessionID: childSessionId }, () => client.session.get({ sessionID: childSessionId })));
252064
- const childPermission = openCodeChildPermissionRules(turn.runtimePolicy, nativeChildSession.permission ?? []);
252138
+ const childPermission = openCodeChildPermissionRules(turn.runtimePolicy, nativeChildSession.permission ?? [], userRegistry.skillOverrides);
252065
252139
  yield* sdkCall("session.update", {
252066
252140
  sessionID: childSessionId,
252067
252141
  permission: childPermission
@@ -252096,7 +252170,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252096
252170
  const output = toolOutput(part);
252097
252171
  if (part.state.status === "completed" && output !== void 0) context.result = output;
252098
252172
  const status = toolStatus(part);
252099
- const completedAt = toolCompletedAt(part, now$79);
252173
+ const completedAt = toolCompletedAt(part, now$81);
252100
252174
  const subagentStatus = status.item === "failed" ? "failed" : status.item === "completed" ? "completed" : status.item === "pending" ? "pending" : "running";
252101
252175
  const subagent = {
252102
252176
  id: nodeId,
@@ -252117,7 +252191,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252117
252191
  result: context.result,
252118
252192
  startedAt: context.startedAt,
252119
252193
  completedAt,
252120
- updatedAt: now$79
252194
+ updatedAt: now$81
252121
252195
  };
252122
252196
  yield* emitProviderEvent({
252123
252197
  type: "node.updated",
@@ -252162,7 +252236,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252162
252236
  title,
252163
252237
  startedAt: context.startedAt,
252164
252238
  completedAt,
252165
- updatedAt: now$79,
252239
+ updatedAt: now$81,
252166
252240
  type: "subagent",
252167
252241
  subagentId: nodeId,
252168
252242
  origin: "provider_native",
@@ -252181,10 +252255,10 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252181
252255
  return;
252182
252256
  }
252183
252257
  if (normalizedTool === "question") return;
252184
- const now$80 = yield* now;
252258
+ const now$73 = yield* now;
252185
252259
  const status = toolStatus(part);
252186
- const startedAt = toolStartedAt(part, now$80);
252187
- const completedAt = toolCompletedAt(part, now$80);
252260
+ const startedAt = toolStartedAt(part, now$73);
252261
+ const completedAt = toolCompletedAt(part, now$73);
252188
252262
  const nativeItemRef = providerRef$1(part.id);
252189
252263
  const nodeId = idAllocator.derive.nodeFromProviderItem({
252190
252264
  driver: OPENCODE_PROVIDER,
@@ -252207,7 +252281,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252207
252281
  title: toolTitle$1(part),
252208
252282
  startedAt,
252209
252283
  completedAt,
252210
- updatedAt: now$80
252284
+ updatedAt: now$73
252211
252285
  };
252212
252286
  const input = toolInput(part);
252213
252287
  const output = toolOutput(part);
@@ -252267,7 +252341,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252267
252341
  });
252268
252342
  });
252269
252343
  const emitTodo = fnUntraced(function* (state, turn, todos) {
252270
- const now$77 = yield* now;
252344
+ const now$79 = yield* now;
252271
252345
  if (turn.planId === null) turn.planId = yield* idAllocator.allocate.plan({
252272
252346
  threadId: turn.threadId,
252273
252347
  ...turn.runId === null ? {} : { runId: turn.runId },
@@ -252307,7 +252381,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252307
252381
  runtimeRequestId: null,
252308
252382
  checkpointScopeId: null,
252309
252383
  startedAt: turn.startedAt,
252310
- completedAt: completed ? now$77 : null
252384
+ completedAt: completed ? now$79 : null
252311
252385
  }
252312
252386
  });
252313
252387
  yield* emitProviderEvent({
@@ -252339,8 +252413,8 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252339
252413
  status: completed ? "completed" : "running",
252340
252414
  title: "Todo list",
252341
252415
  startedAt: turn.startedAt,
252342
- completedAt: completed ? now$77 : null,
252343
- updatedAt: now$77,
252416
+ completedAt: completed ? now$79 : null,
252417
+ updatedAt: now$79,
252344
252418
  type: "todo_list",
252345
252419
  planId,
252346
252420
  steps
@@ -252393,7 +252467,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252393
252467
  const emitRuntimeRequest = fnUntraced(function* (owner, nativeRequestId, request) {
252394
252468
  if (pendingRequestsByNativeId.has(nativeRequestId)) return;
252395
252469
  const { state, turn, subagent } = owner;
252396
- const now$74 = yield* now;
252470
+ const now$76 = yield* now;
252397
252471
  const requestId = yield* idAllocator.allocate.runtimeRequest({
252398
252472
  driver: OPENCODE_PROVIDER,
252399
252473
  providerTurnId: turn.providerTurnId,
@@ -252413,7 +252487,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252413
252487
  parentNodeId: subagent?.nodeId ?? turn.rootNodeId,
252414
252488
  turnItemId,
252415
252489
  requestKind,
252416
- createdAt: now$74,
252490
+ createdAt: now$76,
252417
252491
  ...request.type === "permission" ? { permission: request.value } : { question: request.value }
252418
252492
  };
252419
252493
  pendingRequests.set(String(requestId), pending);
@@ -252429,7 +252503,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252429
252503
  type: "live",
252430
252504
  providerSessionId: inputProviderSessionId
252431
252505
  },
252432
- createdAt: now$74,
252506
+ createdAt: now$76,
252433
252507
  resolvedAt: null
252434
252508
  };
252435
252509
  state.runtimeRequests.set(String(requestId), runtimeRequest);
@@ -252450,7 +252524,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252450
252524
  nativeItemRef: providerRef$1(nativeRequestId),
252451
252525
  runtimeRequestId: requestId,
252452
252526
  checkpointScopeId: null,
252453
- startedAt: now$74,
252527
+ startedAt: now$76,
252454
252528
  completedAt: null
252455
252529
  }
252456
252530
  });
@@ -252463,20 +252537,20 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252463
252537
  yield* emitProviderEvent({
252464
252538
  type: "turn_item.updated",
252465
252539
  driver: OPENCODE_PROVIDER,
252466
- turnItem: runtimeRequestTurnItem(pending, "waiting", null, now$74)
252540
+ turnItem: runtimeRequestTurnItem(pending, "waiting", null, now$76)
252467
252541
  });
252468
252542
  yield* updateProviderSession("waiting", null);
252469
252543
  });
252470
252544
  const resolveRuntimeRequest = fnUntraced(function* (nativeRequestId, status) {
252471
252545
  const pending = pendingRequestsByNativeId.get(nativeRequestId);
252472
252546
  if (pending === void 0) return;
252473
- const now$75 = yield* now;
252547
+ const now$77 = yield* now;
252474
252548
  const current = pending.state.runtimeRequests.get(String(pending.requestId));
252475
252549
  if (current !== void 0) {
252476
252550
  const resolved = {
252477
252551
  ...current,
252478
252552
  status,
252479
- resolvedAt: now$75
252553
+ resolvedAt: now$77
252480
252554
  };
252481
252555
  pending.state.runtimeRequests.set(String(pending.requestId), resolved);
252482
252556
  yield* emitProviderEvent({
@@ -252504,13 +252578,13 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252504
252578
  runtimeRequestId: pending.requestId,
252505
252579
  checkpointScopeId: null,
252506
252580
  startedAt: pending.createdAt,
252507
- completedAt: now$75
252581
+ completedAt: now$77
252508
252582
  }
252509
252583
  });
252510
252584
  yield* emitProviderEvent({
252511
252585
  type: "turn_item.updated",
252512
252586
  driver: OPENCODE_PROVIDER,
252513
- turnItem: runtimeRequestTurnItem(pending, status === "resolved" ? "completed" : "cancelled", now$75, now$75)
252587
+ turnItem: runtimeRequestTurnItem(pending, status === "resolved" ? "completed" : "cancelled", now$77, now$77)
252514
252588
  });
252515
252589
  pendingRequests.delete(String(pending.requestId));
252516
252590
  pendingRequestsByNativeId.delete(nativeRequestId);
@@ -252667,8 +252741,8 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252667
252741
  });
252668
252742
  const createChildTurn = fnUntraced(function* (state, message) {
252669
252743
  if (state.appThread === null || state.parentSubagent === null) return null;
252670
- const now$76 = yield* now;
252671
- const startedAt = dateTimeFromEpoch(message.time.created, now$76);
252744
+ const now$78 = yield* now;
252745
+ const startedAt = dateTimeFromEpoch(message.time.created, now$78);
252672
252746
  const rootNodeId = idAllocator.derive.nodeFromProviderItem({
252673
252747
  driver: OPENCODE_PROVIDER,
252674
252748
  nativeItemId: `${state.nativeSessionId}:root:${message.id}`
@@ -252750,7 +252824,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252750
252824
  return turn;
252751
252825
  });
252752
252826
  const projectChildUserPart = fnUntraced(function* (state, turn, part) {
252753
- const now$78 = yield* now;
252827
+ const now$80 = yield* now;
252754
252828
  const messageId = idAllocator.derive.messageFromProviderItem({
252755
252829
  driver: OPENCODE_PROVIDER,
252756
252830
  nativeItemId: part.messageID
@@ -252771,7 +252845,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252771
252845
  attachments: [],
252772
252846
  streaming: false,
252773
252847
  createdAt: turn.startedAt,
252774
- updatedAt: now$78
252848
+ updatedAt: now$80
252775
252849
  };
252776
252850
  yield* emitProviderEvent({
252777
252851
  type: "message.updated",
@@ -252796,8 +252870,8 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252796
252870
  status: "completed",
252797
252871
  title: null,
252798
252872
  startedAt: projected.createdAt,
252799
- completedAt: now$78,
252800
- updatedAt: now$78,
252873
+ completedAt: now$80,
252874
+ updatedAt: now$80,
252801
252875
  type: "user_message",
252802
252876
  messageId,
252803
252877
  inputIntent: "turn_start",
@@ -252809,7 +252883,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252809
252883
  const emitCompactionItem = fn("OpenCodeAdapterV2.emitCompactionItem")(function* (state, turn) {
252810
252884
  const nativeItemId = `${turn.providerTurnId}:compaction`;
252811
252885
  if (turn.itemOrdinals.has(nativeItemId)) return;
252812
- const now$81 = yield* now;
252886
+ const now$75 = yield* now;
252813
252887
  yield* emitProviderEvent({
252814
252888
  type: "turn_item.updated",
252815
252889
  driver: OPENCODE_PROVIDER,
@@ -252831,8 +252905,8 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
252831
252905
  status: "completed",
252832
252906
  title: "Context compacted",
252833
252907
  startedAt: turn.startedAt,
252834
- completedAt: now$81,
252835
- updatedAt: now$81
252908
+ completedAt: now$75,
252909
+ updatedAt: now$75
252836
252910
  }
252837
252911
  });
252838
252912
  });
@@ -253236,7 +253310,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
253236
253310
  hasPendingBackgroundWork: sync$1(() => busySessionIds.size > 0),
253237
253311
  ensureThread: (threadInput) => gen$1(function* () {
253238
253312
  if (threadInput.existingProviderThread?.nativeThreadRef != null) return yield* runtimeSession.resumeThread({ providerThread: threadInput.existingProviderThread });
253239
- const nativeSession = unwrapData("session.create", yield* sdkCall("session.create", { permission: openCodePermissionRules(threadInput.runtimePolicy) }, () => client.session.create({ permission: openCodePermissionRules(threadInput.runtimePolicy) })));
253313
+ const nativeSession = unwrapData("session.create", yield* sdkCall("session.create", { permission: openCodePermissionRules(threadInput.runtimePolicy, userRegistry.skillOverrides) }, () => client.session.create({ permission: openCodePermissionRules(threadInput.runtimePolicy, userRegistry.skillOverrides) })));
253240
253314
  const createdAt = yield* now;
253241
253315
  const created = makeProviderThread({
253242
253316
  idAllocator,
@@ -253264,6 +253338,10 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
253264
253338
  }))),
253265
253339
  resumeThread: (threadInput) => gen$1(function* () {
253266
253340
  const sessionId = nativeThreadId(threadInput.providerThread);
253341
+ yield* sdkCall("session.update", { sessionID: sessionId }, () => client.session.update({
253342
+ sessionID: sessionId,
253343
+ permission: openCodePermissionRules(input.runtimePolicy, userRegistry.skillOverrides)
253344
+ }));
253267
253345
  const nativeSession = unwrapData("session.get", yield* sdkCall("session.get", { sessionID: sessionId }, () => client.session.get({ sessionID: sessionId })));
253268
253346
  const resumedAt = yield* now;
253269
253347
  const providerThread = {
@@ -253542,7 +253620,7 @@ const makeOpenCodeAdapterV2 = fn("makeOpenCodeAdapterV2")(function* (options) {
253542
253620
  if (unwrapData("session.messages", yield* sdkCall("session.messages", { sessionID: fork.id }, () => client.session.messages({ sessionID: fork.id }))).length !== boundaryIndex) return yield* protocolError("OpenCode did not preserve the requested rewind boundary.");
253543
253621
  yield* sdkCall("session.update", { sessionID: fork.id }, () => client.session.update({
253544
253622
  sessionID: fork.id,
253545
- permission: openCodePermissionRules(input.runtimePolicy)
253623
+ permission: openCodePermissionRules(input.runtimePolicy, userRegistry.skillOverrides)
253546
253624
  }));
253547
253625
  retainedThread = {
253548
253626
  ...rollbackInput.providerThread,
@@ -259933,6 +260011,7 @@ const makeMuseAdapterV2 = fn("makeMuseAdapterV2")(function* (options) {
259933
260011
  const providerHost = yield* ProviderHost;
259934
260012
  const fileSystem = yield* FileSystem;
259935
260013
  const mcpSessions = yield* McpProviderSessions;
260014
+ const readUserMcpRegistry = yield* makeReader;
259936
260015
  const agentScope = yield* AgentScope;
259937
260016
  const protocolError = (detail, payload) => new ProviderAdapterProtocolError({
259938
260017
  driver: MUSE_PROVIDER,
@@ -261148,13 +261227,29 @@ const makeMuseAdapterV2 = fn("makeMuseAdapterV2")(function* (options) {
261148
261227
  return yield* gen$1(function* () {
261149
261228
  nativeSessionId = requestedId ?? host.connection.mintCommandId();
261150
261229
  const mcpSession = yield* mcpSessions.read(args.threadId);
261151
- if (mcpSession && !host.initializeResult.grantedCapabilities.includes("sessionMcp")) return yield* protocolError("Update Muse Code to a version that supports session MCP servers");
261152
- const config = mcpSession ? { mcpServers: { "t3-code": {
261230
+ const userServers = serversForDriver(yield* readUserMcpRegistry(args.threadId), MUSE_PROVIDER);
261231
+ if ((mcpSession || userServers.length > 0) && !host.initializeResult.grantedCapabilities.includes("sessionMcp")) return yield* protocolError("Update Muse Code to a version that supports session MCP servers");
261232
+ const mcpServers = Object.fromEntries(userServers.map(({ name, transport }) => [name, transport.type === "http" ? {
261153
261233
  transport: "streamableHttp",
261154
261234
  mode: "optional",
261155
- url: mcpSession.endpoint,
261156
- headers: { Authorization: mcpSession.authorizationHeader }
261157
- } } } : void 0;
261235
+ url: transport.url,
261236
+ headers: { ...transport.headers }
261237
+ } : {
261238
+ transport: "stdio",
261239
+ mode: "optional",
261240
+ command: transport.command,
261241
+ args: [...transport.args],
261242
+ env: { ...transport.env }
261243
+ }]));
261244
+ const config = mcpSession || userServers.length > 0 ? { mcpServers: {
261245
+ ...mcpServers,
261246
+ ...mcpSession ? { "t3-code": {
261247
+ transport: "streamableHttp",
261248
+ mode: "optional",
261249
+ url: mcpSession.endpoint,
261250
+ headers: { Authorization: mcpSession.authorizationHeader }
261251
+ } } : {}
261252
+ } } : void 0;
261158
261253
  const startModel = yield* resolveModel(args.modelSelection);
261159
261254
  const permissionProfile = musePermissionProfile(args.runtimePolicy.runtimeMode);
261160
261255
  const result = yield* request(requestedId ? "session/resume" : "session/start", requestedId ? {
@@ -262222,6 +262317,7 @@ const makePiRpcConnection = fnUntraced(function* (options) {
262222
262317
  * `@earendil-works/pi-coding-agent` and `typebox` from the user's pi install.
262223
262318
  */
262224
262319
  const PI_T3_MCP_EXTENSION_FILENAME = "pi-t3-mcp-extension.ts";
262320
+ const T3_PI_USER_MCP_ENV = "T3_PI_USER_MCP_SERVERS";
262225
262321
  const T3_MCP_URL_ENV = "T3_MCP_URL";
262226
262322
  const T3_MCP_BEARER_ENV = "T3_MCP_BEARER_TOKEN";
262227
262323
  const T3_PI_RUNTIME_MODE_ENV = "T3_PI_RUNTIME_MODE";
@@ -262237,6 +262333,7 @@ import * as NodeFSP from "node:fs/promises";
262237
262333
  import * as NodePath from "node:path";
262238
262334
  import { Type } from "typebox";
262239
262335
 
262336
+ const USER_MCP_ENV = ${JSON.stringify(T3_PI_USER_MCP_ENV)};
262240
262337
  const URL_ENV = ${JSON.stringify(T3_MCP_URL_ENV)};
262241
262338
  const TOKEN_ENV = ${JSON.stringify(T3_MCP_BEARER_ENV)};
262242
262339
  const RUNTIME_MODE_ENV = ${JSON.stringify(T3_PI_RUNTIME_MODE_ENV)};
@@ -262547,6 +262644,12 @@ export default async function t3McpExtension(pi: ExtensionAPI) {
262547
262644
  }
262548
262645
  });
262549
262646
 
262647
+ const userServers = JSON.parse(env(USER_MCP_ENV) ?? "{}") as Record<string, Parameters<ExtensionAPI["registerMcpServer"]>[1]>;
262648
+ if (Object.keys(userServers).length > 0) {
262649
+ if (typeof pi.registerMcpServer !== "function") throw new Error("Update Pi to 0.99 or later to use P4 MCP servers.");
262650
+ for (const [name, config] of Object.entries(userServers)) pi.registerMcpServer(name, config);
262651
+ }
262652
+
262550
262653
  const endpoint = env(URL_ENV);
262551
262654
  const token = env(TOKEN_ENV);
262552
262655
  if (endpoint === undefined || token === undefined) {
@@ -262871,6 +262974,17 @@ function buildPiRpcLaunch(input) {
262871
262974
  ];
262872
262975
  if (hasT3Extension && input.extensionPath !== void 0 && !hasExplicitExtension(args, input.extensionPath)) args.push("--extension", input.extensionPath);
262873
262976
  const environment = { ...input.environment };
262977
+ delete environment[T3_PI_USER_MCP_ENV];
262978
+ if (hasT3Extension && input.userMcpServers?.length && input.userMcpNamespace) environment[T3_PI_USER_MCP_ENV] = JSON.stringify(Object.fromEntries(input.userMcpServers.map(({ name, transport }) => [`p4_${input.userMcpNamespace}_${name}`, transport.type === "http" ? {
262979
+ url: transport.url,
262980
+ headers: transport.headers,
262981
+ oauth: false
262982
+ } : {
262983
+ command: transport.command,
262984
+ args: transport.args,
262985
+ env: transport.env,
262986
+ ...transport.cwd === void 0 ? {} : { cwd: transport.cwd }
262987
+ }])));
262874
262988
  delete environment[T3_MCP_URL_ENV];
262875
262989
  delete environment[T3_MCP_BEARER_ENV];
262876
262990
  delete environment[T3_PI_MCP_EXTENSION_PATH_ENV];
@@ -263286,6 +263400,7 @@ const makePiAdapterV2 = fn("makePiAdapterV2")(function* (options) {
263286
263400
  const idAllocator = yield* IdAllocatorV2;
263287
263401
  const host = yield* ProviderHost;
263288
263402
  const mcpSessions = yield* McpProviderSessions;
263403
+ const readUserMcpRegistry = yield* makeReader;
263289
263404
  const { continuationRequests } = options;
263290
263405
  const protocolError = (detail, payload) => new ProviderAdapterProtocolError({
263291
263406
  driver: PI_PROVIDER,
@@ -263313,6 +263428,8 @@ const makePiAdapterV2 = fn("makePiAdapterV2")(function* (options) {
263313
263428
  launchArgs: resolvedLaunchArgs.args,
263314
263429
  environment: options.environment,
263315
263430
  mcpSession,
263431
+ userMcpServers: serversForDriver(yield* readUserMcpRegistry(input.threadId), PI_PROVIDER),
263432
+ userMcpNamespace: input.providerSessionId.replace(/[^a-zA-Z0-9_]/g, "_"),
263316
263433
  extensionPath,
263317
263434
  runtimeMode: input.runtimePolicy.runtimeMode
263318
263435
  });
@@ -286079,12 +286196,18 @@ const resolveUserMcpRegistry = (settings, projectId, accessTokens) => {
286079
286196
  }
286080
286197
  });
286081
286198
  }
286199
+ const plugins = Object.entries(settings.plugins).filter(([id]) => resolveRegistryEntryEnabled(settings, "plugins", projectId, id)).map(([, plugin]) => ({
286200
+ name: plugin.name,
286201
+ path: plugin.path
286202
+ }));
286203
+ const skillOverrides = {
286204
+ ...settings.skillOverrides,
286205
+ ...projectId === null ? {} : settings.projectSettingsOverrides[projectId]?.skillOverrides
286206
+ };
286082
286207
  return {
286083
286208
  servers,
286084
- plugins: Object.entries(settings.plugins).filter(([id]) => resolveRegistryEntryEnabled(settings, "plugins", projectId, id)).map(([, plugin]) => ({
286085
- name: plugin.name,
286086
- path: plugin.path
286087
- }))
286209
+ plugins,
286210
+ ...Object.keys(skillOverrides).length ? { skillOverrides } : {}
286088
286211
  };
286089
286212
  };
286090
286213
  /** First line of a failure, bounded, for the settings page. Never a header or env value. */
@@ -286144,6 +286267,7 @@ var McpRegistry = class extends Service$3()("@p4code/cli/mcp/McpRegistry") {};
286144
286267
  const make$76 = gen$1(function* () {
286145
286268
  const settingsService = yield* ServerSettingsService;
286146
286269
  const oauth = yield* McpClientOAuth;
286270
+ const self = yield* resolveSelfInvocation();
286147
286271
  const health = /* @__PURE__ */ new Map();
286148
286272
  const getSettings = settingsService.getSettings.pipe(mapError((cause) => new McpRegistrySettingsError({ cause })));
286149
286273
  const accessTokenFor = (id, server) => server.transport.type === "http" && server.transport.auth === "oauth" ? oauth.accessToken({
@@ -286158,7 +286282,14 @@ const make$76 = gen$1(function* () {
286158
286282
  const token = yield* accessTokenFor(id, server).pipe(timeoutOption(TOKEN_REFRESH_TIMEOUT), map$11(flatten));
286159
286283
  if (isSome(token)) tokens.set(id, token.value);
286160
286284
  }
286161
- return resolveUserMcpRegistry(settings, projectId, tokens);
286285
+ const registry = resolveUserMcpRegistry(settings, projectId, tokens);
286286
+ return {
286287
+ ...registry,
286288
+ servers: registry.servers.map((server) => ({
286289
+ ...server,
286290
+ transport: server.transport.type === "stdio" ? withStdioWorkingDirectory(server.transport, self) : server.transport
286291
+ }))
286292
+ };
286162
286293
  }).pipe(catch_((error) => logWarning$1("failed to resolve the MCP registry", { cause: error }).pipe(as({
286163
286294
  servers: [],
286164
286295
  plugins: []
@@ -325291,7 +325422,6 @@ const summarize = (transport) => {
325291
325422
  const command = transport.command.split(/[\\/]/).at(-1) ?? transport.command;
325292
325423
  return transport.args[0] && !transport.args[0].startsWith("-") ? `${command} ${transport.args[0]}`.slice(0, 120) : command;
325293
325424
  };
325294
- const sameTarget = (a, b) => a.type === "http" && b.type === "http" ? a.url === b.url : a.type === "stdio" && b.type === "stdio" && a.command === b.command && a.args.join("\0") === b.args.join("\0");
325295
325425
  var McpConfigDiscovery = class extends Service$3()("@p4code/cli/mcp/McpConfigDiscovery") {};
325296
325426
  const make$21 = gen$1(function* () {
325297
325427
  const fileSystem = yield* FileSystem;
@@ -325301,6 +325431,7 @@ const make$21 = gen$1(function* () {
325301
325431
  const settingsService = yield* ServerSettingsService;
325302
325432
  const projects = yield* serviceOption(ProjectService);
325303
325433
  const home = OS.homedir();
325434
+ const importLock = yield* make$259(1);
325304
325435
  const readJson = (file) => fileSystem.readFileString(file).pipe(option$1, map$11(flatMap$2(decodeJson)));
325305
325436
  const fromJsonServers = (provider, file, servers) => isRecord(servers) ? Object.entries(servers).flatMap(([name, entry]) => {
325306
325437
  const transport = transportFromJsonEntry(entry);
@@ -325362,7 +325493,17 @@ const make$21 = gen$1(function* () {
325362
325493
  if (isSome(json) && isRecord(json.value)) results.push(...fromJsonServers(provider, file, json.value.mcpServers));
325363
325494
  }
325364
325495
  results.push(...yield* codexServers(root ?? home));
325365
- return results;
325496
+ return results.map((server) => {
325497
+ const transport = server.transport;
325498
+ if (server.provider === "codex" || transport.type !== "http" || transport.auth !== "none" || Object.keys(transport.headers).length > 0) return server;
325499
+ return results.some((other) => other.provider === "codex" && other.transport.type === "http" && other.transport.url === transport.url && other.transport.auth === "oauth" && Object.keys(other.transport.headers).length === 0) ? {
325500
+ ...server,
325501
+ transport: {
325502
+ ...transport,
325503
+ auth: "oauth"
325504
+ }
325505
+ } : server;
325506
+ });
325366
325507
  });
325367
325508
  const discover = (projectId) => gen$1(function* () {
325368
325509
  const settings = yield* settingsService.getSettings.pipe(option$1);
@@ -325370,13 +325511,24 @@ const make$21 = gen$1(function* () {
325370
325511
  onNone: () => [],
325371
325512
  onSome: (value) => Object.values(value.mcpServers)
325372
325513
  });
325373
- return (yield* found(projectId)).map((server) => ({
325514
+ const groups = [];
325515
+ for (const server of yield* found(projectId)) {
325516
+ const group = groups.find((entry) => NodeUtil.isDeepStrictEqual(entry.server.transport, server.transport));
325517
+ if (group) {
325518
+ if (!group.providers.includes(server.provider)) group.providers.push(server.provider);
325519
+ } else groups.push({
325520
+ server,
325521
+ providers: [server.provider]
325522
+ });
325523
+ }
325524
+ return groups.map(({ server, providers }) => ({
325374
325525
  provider: server.provider,
325526
+ providers,
325375
325527
  path: server.path,
325376
325528
  name: server.name,
325377
325529
  type: server.transport.type,
325378
325530
  summary: summarize(server.transport),
325379
- alreadyAdded: registry.some((entry) => entry.name === server.name || sameTarget(entry.transport, server.transport))
325531
+ alreadyAdded: registry.some((entry) => NodeUtil.isDeepStrictEqual(entry.transport, server.transport))
325380
325532
  }));
325381
325533
  });
325382
325534
  const importServers = (input) => gen$1(function* () {
@@ -325387,12 +325539,19 @@ const make$21 = gen$1(function* () {
325387
325539
  })));
325388
325540
  const taken = new Set(Object.values(settings.mcpServers).map((server) => server.name));
325389
325541
  const patch = {};
325542
+ const imported = /* @__PURE__ */ new Set();
325390
325543
  for (const wanted of input.servers) {
325391
325544
  const source = available.find((server) => server.provider === wanted.provider && server.path === wanted.path && server.name === wanted.name);
325392
325545
  if (source === void 0) return yield* new McpImportError({ reason: "not-found" });
325546
+ const existing = [...Object.entries(settings.mcpServers), ...Object.entries(patch)].find(([, server]) => NodeUtil.isDeepStrictEqual(server.transport, source.transport));
325547
+ if (existing) {
325548
+ imported.add(McpServerId.make(existing[0]));
325549
+ continue;
325550
+ }
325393
325551
  const name = registryNameFor(source.name, taken);
325394
325552
  taken.add(name);
325395
325553
  const id = McpServerId.make(yield* crypto.randomUUIDv4().pipe(orDie));
325554
+ imported.add(id);
325396
325555
  patch[id] = {
325397
325556
  name,
325398
325557
  enabled: true,
@@ -325404,12 +325563,12 @@ const make$21 = gen$1(function* () {
325404
325563
  }
325405
325564
  };
325406
325565
  }
325407
- yield* settingsService.updateSettings({ mcpServers: patch }).pipe(mapError((cause) => new McpImportError({
325566
+ if (Object.keys(patch).length > 0) yield* settingsService.updateSettings({ mcpServers: patch }).pipe(mapError((cause) => new McpImportError({
325408
325567
  reason: "settings",
325409
325568
  cause
325410
325569
  })));
325411
- return Object.keys(patch);
325412
- });
325570
+ return [...imported];
325571
+ }).pipe(importLock.withPermits(1));
325413
325572
  return McpConfigDiscovery.of({
325414
325573
  discover,
325415
325574
  import: importServers
@@ -345971,4 +346130,4 @@ function runCli() {
345971
346130
  //#endregion
345972
346131
  export { runCli };
345973
346132
 
345974
- //# sourceMappingURL=binCli-DouSNynJ.mjs.map
346133
+ //# sourceMappingURL=binCli-Bgjc_5FL.mjs.map