@symerian/symi 3.4.27 → 3.4.29

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 (215) hide show
  1. package/dist/{agent-DOOj3Gzb.js → agent-CQlyTNu-.js} +1 -1
  2. package/dist/{agent-CiqPWDUd.js → agent-N_J2cDO6.js} +18 -18
  3. package/dist/{agent-scope-Bnsyyeci.js → agent-scope-DOrZjOnW.js} +18 -18
  4. package/dist/{agents-BBQfFoen.js → agents-1xmRO246.js} +2 -2
  5. package/dist/{agents.config-Dm3oLpYK.js → agents.config-BJ9RIQlb.js} +1 -1
  6. package/dist/{audit-BSX7fMfc.js → audit-DCwHws4M.js} +20 -20
  7. package/dist/{auth-choice-rhBmet5i.js → auth-choice-DwXdS4c2.js} +11 -11
  8. package/dist/{auth-choice-BYbTjWcs.js → auth-choice-Ryx7oj6G.js} +1 -1
  9. package/dist/{auth-profiles-D5nYBj_Z.js → auth-profiles-Ce7R_25e.js} +2 -2
  10. package/dist/{auth-token-CAV1oLQG.js → auth-token-DgRRSbEX.js} +3 -3
  11. package/dist/{banner-C1qG5Rm9.js → banner-CxMQaUgh.js} +1 -1
  12. package/dist/{browser-cli-De8jg4-F.js → browser-cli-C3hfJNZy.js} +9 -9
  13. package/dist/build-info.json +3 -3
  14. package/dist/bundled/boot-md/handler.js +2 -2
  15. package/dist/bundled/session-memory/handler.js +2 -2
  16. package/dist/{call-CW8U1BPq.js → call-BouPakqe.js} +9 -9
  17. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  18. package/dist/{channel-options-CJD7jwYg.js → channel-options-WR29vfWK.js} +1 -1
  19. package/dist/{channel-options-BsXUgCMq.js → channel-options-n9C_ovb1.js} +1 -1
  20. package/dist/{channels-cli-Dxn5n9e4.js → channels-cli-Cs-Uq67O.js} +7 -7
  21. package/dist/{channels-cli-Bao4VNbH.js → channels-cli-DbFGI3vF.js} +57 -57
  22. package/dist/{chrome-pFBxO63W.js → chrome-rzK8edU7.js} +2 -2
  23. package/dist/{cli-WP38F9C5.js → cli-7ceDvtPc.js} +45 -45
  24. package/dist/{cli-CrhLSz3t.js → cli-D55pCJ8Q.js} +4 -4
  25. package/dist/{client-T5P9umyG.js → client-BzUAFrla.js} +1 -1
  26. package/dist/{command-registry-DoXcG7FZ.js → command-registry-DAy62yhH.js} +10 -10
  27. package/dist/{commands-registry-BjcGLk4v.js → commands-registry-VfAQOVZO.js} +1 -1
  28. package/dist/{completion-cli-C0SXi7ya.js → completion-cli-Bc1jojml.js} +12 -12
  29. package/dist/{completion-cli-DaWi3_ux.js → completion-cli-Bh-Y2NVp.js} +2 -2
  30. package/dist/{config-D-PYSlE8.js → config-D7SS4vdk.js} +2 -2
  31. package/dist/{config-cli-DXKm0pS5.js → config-cli-BxRcn2oD.js} +1 -1
  32. package/dist/{config-cli-DS67KtKf.js → config-cli-DupKETmw.js} +4 -4
  33. package/dist/{config-guard-xLTTFANi.js → config-guard-BGAQzX2K.js} +6 -6
  34. package/dist/{config-validation-C4wGq3rz.js → config-validation-COcIIMNe.js} +1 -1
  35. package/dist/{configure-B99YJJb0.js → configure-0XYm59w7.js} +14 -14
  36. package/dist/{configure-CzO4_jJJ.js → configure-BilM_Fgn.js} +2 -2
  37. package/dist/{consolidate-BB4BOQIN.js → consolidate-DI20-Wtn.js} +6 -6
  38. package/dist/{control-service-y53w3Jzy.js → control-service-Ry7Le68N.js} +4 -4
  39. package/dist/{control-ui-assets-Dryy7mCE.js → control-ui-assets-DuDhl0co.js} +1 -1
  40. package/dist/{cron-cli-BMblAFRK.js → cron-cli-DHFgjr_X.js} +7 -7
  41. package/dist/{daemon-cli-BJGNf5qV.js → daemon-cli-fC2R9YZd.js} +11 -11
  42. package/dist/{daemon-runtime-u4p9jsEF.js → daemon-runtime-tZgIbDPz.js} +10 -10
  43. package/dist/{deliver-C79-Umbk.js → deliver-DB4v0Tyl.js} +2 -2
  44. package/dist/{deps-UA1UBhl7.js → deps-BlmO-MfQ.js} +1 -1
  45. package/dist/{devices-cli-wsTs-nti.js → devices-cli-DtkKN4l0.js} +6 -6
  46. package/dist/{diagnostics-oW0LBW-t.js → diagnostics-tVJR9V0_.js} +5 -5
  47. package/dist/{directory-cli-D8As6t8Z.js → directory-cli-Bfy_ejW2.js} +3 -3
  48. package/dist/{dm-policy-shared-DRJrFKqJ.js → dm-policy-shared-CBlUyDSX.js} +1 -1
  49. package/dist/{dns-cli-BKOTBn3n.js → dns-cli-DzKaV6NZ.js} +3 -3
  50. package/dist/{docs-cli-D5j7Nmz2.js → docs-cli-a90_8wuN.js} +1 -1
  51. package/dist/{doctor-completion-mev5PRjN.js → doctor-completion-B6OPl_GZ.js} +2 -2
  52. package/dist/{doctor-completion-B1YCzbvi.js → doctor-completion-BZJWX3Dr.js} +1 -1
  53. package/dist/{doctor-config-flow-Uv41seME.js → doctor-config-flow-30ZEvATb.js} +9 -9
  54. package/dist/entry.js +1 -1
  55. package/dist/{exec-approvals-cli-B4ry9s5r.js → exec-approvals-cli-C3gZAwV8.js} +13 -13
  56. package/dist/extensionAPI.js +2 -2
  57. package/dist/{file-lock-2AecMjCa.js → file-lock-BVUYnlQv.js} +8 -8
  58. package/dist/{fs-safe-B0Is-oLk.js → fs-safe-BdejYjW8.js} +6 -6
  59. package/dist/{gateway-cli-B3JVj_dv.js → gateway-cli-CyhLb-zS.js} +98 -98
  60. package/dist/{gateway-cli-Chnp6icp.js → gateway-cli-DQhYa6AL.js} +10 -10
  61. package/dist/{gateway-rpc-CLzM6ugo.js → gateway-rpc-DNq7EMhm.js} +1 -1
  62. package/dist/{glass-ui-ws-5o8dvEZO.js → glass-ui-ws-CLDbMDPk.js} +8 -8
  63. package/dist/{glass-ui-ws--GjxFRyX.js → glass-ui-ws-SJVljtUx.js} +67 -67
  64. package/dist/{health-D2th0Ip6.js → health-DZ0aipDZ.js} +4 -4
  65. package/dist/{hooks-cli-B4Nvp9AV.js → hooks-cli-BMRj13QU.js} +59 -59
  66. package/dist/{hooks-cli-B_sZth4r.js → hooks-cli-BVtdP5x7.js} +5 -5
  67. package/dist/{image-ops-BzCBIakN.js → image-ops-L70xVnpG.js} +10 -10
  68. package/dist/index.js +52 -52
  69. package/dist/{inspect-U3g9owQ8.js → inspect-CXsOujVt.js} +4 -4
  70. package/dist/{install-safe-path-BwMMOh9z.js → install-safe-path-D5gi-nfu.js} +11 -11
  71. package/dist/{installs-vdi1BESF.js → installs-DF_LhGX6.js} +10 -10
  72. package/dist/{internal-csqU78gW.js → internal-DVCddhhN.js} +9 -9
  73. package/dist/{lifecycle-core-BfmNlC-k.js → lifecycle-core-Bvdl2ShM.js} +5 -5
  74. package/dist/llm-slug-generator.js +2 -2
  75. package/dist/{local-roots-2Jb79HZ8.js → local-roots-CgDCgCuM.js} +1 -1
  76. package/dist/{logs-cli-COZzdFu6.js → logs-cli-mdSEYBKS.js} +7 -7
  77. package/dist/{manager-DyYRwHZt.js → manager-BLg6zbeA.js} +15 -15
  78. package/dist/{manager-BfbQb9qM.js → manager-BhIaahpm.js} +1 -1
  79. package/dist/{manager-Bryhc0Ip.js → manager-BsQIpjy1.js} +1 -1
  80. package/dist/{manager-C5FGNRjL.js → manager-CtDuNn2T.js} +1 -1
  81. package/dist/{memory-DgDnTEcB.js → memory-B4DsKRSc.js} +5 -5
  82. package/dist/{memory-Cypj1lBQ.js → memory-BENbCb4f.js} +2 -2
  83. package/dist/{memory-cli-DB7UIev4.js → memory-cli-BIjwqjBx.js} +2 -2
  84. package/dist/{memory-cli-CfJkD7mO.js → memory-cli-DotHyA76.js} +12 -12
  85. package/dist/{model-DbILYCfo.js → model-DsMHOvMn.js} +1 -1
  86. package/dist/{model-auth-_C07_3Yr.js → model-auth-1EAQvYRv.js} +2 -2
  87. package/dist/{model-catalog-CeqDEWGz.js → model-catalog-DQTmHZK7.js} +3 -3
  88. package/dist/{model-picker-C_f6MALt.js → model-picker-D4TY_tPx.js} +5 -5
  89. package/dist/{model-selection-CCTzD29o.js → model-selection-7wdmO-Iw.js} +1 -1
  90. package/dist/{models-Bpqeds64.js → models-CmToZKBp.js} +2 -2
  91. package/dist/{models-cli-BUWfj5iJ.js → models-cli-CZgkOUZB.js} +55 -55
  92. package/dist/{models-cli-Bc47WFhD.js → models-cli-Di7iKhD4.js} +6 -6
  93. package/dist/{models-config-Dp5-tBqs.js → models-config-CRnTzdFs.js} +8 -8
  94. package/dist/{node-cli-BdjmGI32.js → node-cli-BXv9SEDG.js} +27 -27
  95. package/dist/{node-service-DphkTjBV.js → node-service-CrDVFWQl.js} +1 -1
  96. package/dist/{nodes-cli-BChJzcKY.js → nodes-cli-Cim3ANNU.js} +10 -10
  97. package/dist/{nodes-screen-Cp5QP3ET.js → nodes-screen-De9ma6e1.js} +4 -4
  98. package/dist/{npm-registry-spec-CqVgiBCf.js → npm-registry-spec-YMWTMnm_.js} +9 -9
  99. package/dist/{onboard-BbfERyKU.js → onboard-BXI02b3e.js} +1 -1
  100. package/dist/{onboard-C0nMMiiS.js → onboard-CuLvp4Ds.js} +15 -15
  101. package/dist/{onboard-channels-CMp9YXHC.js → onboard-channels-A6_QP7MR.js} +1 -1
  102. package/dist/{onboard-channels-CmsfVut5.js → onboard-channels-E5NIYGJz.js} +4 -4
  103. package/dist/{onboard-custom-BfHczxx0.js → onboard-custom-BrtjWDlX.js} +3 -3
  104. package/dist/{onboard-helpers-OB_xKQze.js → onboard-helpers---sZ9pdZ.js} +8 -8
  105. package/dist/{onboard-hooks-BA22KYCG.js → onboard-hooks-CtIRdncr.js} +1 -1
  106. package/dist/{onboard-remote-Dv2Uz8Ru.js → onboard-remote-BUB3VPBP.js} +1 -1
  107. package/dist/{onboard-skills-BzxofI4T.js → onboard-skills-Cs3BZ4VJ.js} +3 -3
  108. package/dist/{onboarding-vgZFhH5N.js → onboarding-BWMBA6cP.js} +12 -12
  109. package/dist/{onboarding-DoYMfCjS.js → onboarding-BeYl1Egj.js} +3 -3
  110. package/dist/{onboarding.finalize-Dj0xG8pk.js → onboarding.finalize-Bk-XW8b3.js} +4 -4
  111. package/dist/{onboarding.finalize-BYHDzz2i.js → onboarding.finalize-CH8dBgA2.js} +31 -31
  112. package/dist/{onboarding.gateway-config-CDRLfIZM.js → onboarding.gateway-config-arRNxrI9.js} +8 -8
  113. package/dist/{openai-model-default-Dl21Ivjc.js → openai-model-default-XudD4Xik.js} +2 -2
  114. package/dist/{pairing-cli-C2_Zobhz.js → pairing-cli-NDavTm1_.js} +5 -5
  115. package/dist/{pairing-store-Be-ZQK87.js → pairing-store-BNhJOnWn.js} +1 -1
  116. package/dist/{pairing-token-B703A1U3.js → pairing-token-Dcy37-4s.js} +7 -7
  117. package/dist/{paths-BWqg8NZT.js → paths-DObzwe08.js} +1 -1
  118. package/dist/{pi-auth-json-D-vdh-nY.js → pi-auth-json-Db8XJVGL.js} +6 -6
  119. package/dist/{pi-embedded-C7mJzGIf.js → pi-embedded-BL3_b-H_.js} +6 -52
  120. package/dist/{pi-embedded-helpers-y3vJmW6T.js → pi-embedded-helpers-B5cWV7_y.js} +6 -6
  121. package/dist/{pi-tools.policy-ji-L-Mpv.js → pi-tools.policy-BdGVEMZn.js} +3 -3
  122. package/dist/{plugin-auto-enable-Ctbn2w4Q.js → plugin-auto-enable-B_lNp6yM.js} +1 -1
  123. package/dist/{plugin-registry-pKaJ4ltN.js → plugin-registry-CAdIrLmG.js} +1 -1
  124. package/dist/{plugin-registry-D2ZbwBU_.js → plugin-registry-DovNSdK0.js} +3 -3
  125. package/dist/plugin-sdk/agents/pi-tools.types.d.ts +2 -1
  126. package/dist/plugin-sdk/agents/tools/common.d.ts +0 -30
  127. package/dist/{plugins-cli-uo8lcB7v.js → plugins-cli-JzKO-vmR.js} +5 -5
  128. package/dist/{plugins-cli-CoHiV4BX.js → plugins-cli-ZG4PxNTC.js} +54 -54
  129. package/dist/{ports-ukrEAkOP.js → ports-C3ZSkRGq.js} +1 -1
  130. package/dist/{ports-CB_Iu83U.js → ports-gxLM5ahL.js} +2 -2
  131. package/dist/{program-rzYjZKRz.js → program-BbfU4idg.js} +10 -10
  132. package/dist/{program-context-B1ZbQmLL.js → program-context-ByiEP1Lk.js} +38 -38
  133. package/dist/{prompt-select-styled-F6P-rvFI.js → prompt-select-styled-CWH2Mcrb.js} +4 -4
  134. package/dist/{prompt-select-styled-CX0v66wx.js → prompt-select-styled-DvrG_zWV.js} +38 -38
  135. package/dist/{provider-auth-helpers-_jn9PngO.js → provider-auth-helpers-2x7YxT5F.js} +6 -6
  136. package/dist/{provider-auth-helpers-Ck98bkHV.js → provider-auth-helpers-CMQexdSl.js} +1 -1
  137. package/dist/{push-apns-BtMtpzEm.js → push-apns-CtWwPxRj.js} +1 -1
  138. package/dist/{push-apns-CmeoBcIQ.js → push-apns-eGdGU3r7.js} +4 -4
  139. package/dist/{pw-ai-CQJsGI1b.js → pw-ai-tgngV3iZ.js} +7 -7
  140. package/dist/{qmd-manager-DawTY2mB.js → qmd-manager-qV_04VKG.js} +19 -19
  141. package/dist/{qr-cli-DKowtQcM.js → qr-cli-Vo1XL6B2.js} +3 -3
  142. package/dist/{register.agent-_UqSBmt5.js → register.agent-DZE9NBNx.js} +9 -9
  143. package/dist/{register.agent-0hWBZXD7.js → register.agent-Dwkya1rv.js} +67 -67
  144. package/dist/{register.configure-KrTtvKSp.js → register.configure-CD8WkXo8.js} +8 -8
  145. package/dist/{register.configure-CgQ6sqtQ.js → register.configure-DCpbCHR0.js} +70 -70
  146. package/dist/{register.maintenance-DjZeknO6.js → register.maintenance-Bqjj77CZ.js} +67 -67
  147. package/dist/{register.maintenance-DDSfzFoo.js → register.maintenance-CxVeo_7j.js} +9 -9
  148. package/dist/{register.message-DSwwDcGi.js → register.message-tcJN7-E3.js} +5 -5
  149. package/dist/{register.message-DTZJ5OiL.js → register.message-uhAmNxoO.js} +47 -47
  150. package/dist/{register.onboard-B8k5phG7.js → register.onboard-F6d_Wrv1.js} +25 -25
  151. package/dist/{register.onboard-BToIZTIS.js → register.onboard-Rm5t0yxX.js} +2 -2
  152. package/dist/{register.setup-BdUewOo1.js → register.setup-C2datfZK.js} +2 -2
  153. package/dist/{register.setup-1fexz2oW.js → register.setup-CcHxpsUT.js} +28 -28
  154. package/dist/{register.status-health-sessions-eBaeXIvo.js → register.status-health-sessions-DFVjS9Hy.js} +3 -3
  155. package/dist/{register.status-health-sessions-0RyA2cXf.js → register.status-health-sessions-DIUDRMqm.js} +41 -41
  156. package/dist/{register.subclis-tX3BslaT.js → register.subclis-D9uGnVGm.js} +9 -9
  157. package/dist/{replies-D3cffD5N.js → replies-DzsYQ8Md.js} +1 -1
  158. package/dist/{reply-prefix-CtZtkTJK.js → reply-prefix-BFNeXT65.js} +1 -1
  159. package/dist/{resolve-route-B0i_o4Fo.js → resolve-route-Zww0Y-HJ.js} +1 -1
  160. package/dist/{routes-zpAUwtCG.js → routes-C-rIjd8Z.js} +10 -10
  161. package/dist/{rpc-DhsDKVo-.js → rpc-BkFkeuJ6.js} +1 -1
  162. package/dist/{run-main-DIl_Kl0B.js → run-main-HkbyvIDy.js} +17 -17
  163. package/dist/{sandbox-DQCaejcD.js → sandbox-Dx8IMw-E.js} +18 -18
  164. package/dist/{sandbox-cli-CbvyZs1z.js → sandbox-cli-BFkLKdlk.js} +13 -13
  165. package/dist/{security-cli-CbJxNYZx.js → security-cli-BEpQ_rO1.js} +29 -29
  166. package/dist/{send-QscYkkNh.js → send-Cxu1tl56.js} +7 -7
  167. package/dist/{server-context-CXVq7gZ7.js → server-context--mmXXEkE.js} +5 -5
  168. package/dist/{server-methods-CpFBGxWI.js → server-methods-DJ8eiTu1.js} +6 -6
  169. package/dist/{server-methods-DPxjPGr0.js → server-methods-RtjWUhkv.js} +58 -58
  170. package/dist/{server-node-events-2SUW10k3.js → server-node-events-CT8fFtBQ.js} +6 -6
  171. package/dist/{server-node-events-B_BPbi7z.js → server-node-events-DQ1iCUgY.js} +48 -48
  172. package/dist/{service-Cm4-5AH9.js → service-CyEDtYLq.js} +15 -15
  173. package/dist/{session-dirs-BypCYFN3.js → session-dirs-CXErIzZq.js} +2 -2
  174. package/dist/{session-utils-lXjJoBxe.js → session-utils-BZnPW904.js} +14 -14
  175. package/dist/{sessions-aSo5jsmg.js → sessions-optZRB57.js} +10 -10
  176. package/dist/{shared-DDX_4ypC.js → shared-Ctok0Bcs.js} +1 -1
  177. package/dist/{shared-BI-gOZsD.js → shared-DJFwvlUi.js} +3 -3
  178. package/dist/{skill-commands-C9WuAfb2.js → skill-commands-yPirQFOb.js} +4 -4
  179. package/dist/{skill-scanner-CFqMkfZW.js → skill-scanner-BBwesm0w.js} +5 -5
  180. package/dist/{skills-CYcBtLGH.js → skills-BwDmcZdt.js} +4 -4
  181. package/dist/{skills-cli-BgyaAQoj.js → skills-cli-gC5ETdly.js} +7 -7
  182. package/dist/{skills-install-MGsx6q5Z.js → skills-install-CLN_Ks5r.js} +3 -3
  183. package/dist/{skills-remote-BcRQTDsZ.js → skills-remote-bz71Bstn.js} +3 -3
  184. package/dist/{skills-status-CbSdFlvm.js → skills-status-iltfI_bO.js} +1 -1
  185. package/dist/{sqlite-BpogPlQW.js → sqlite-Cod7C5ba.js} +5 -5
  186. package/dist/{status-DbNNmkNB.js → status-CoqGtHXq.js} +1 -1
  187. package/dist/{status-BVYDUlnp.js → status-Cpz64Vy_.js} +1 -1
  188. package/dist/{status-C-r9JpJf.js → status-CuMBp54T.js} +23 -23
  189. package/dist/{status-DIJvpgEm.js → status-EAjzyREy.js} +3 -3
  190. package/dist/{status.update-EyslEZkn.js → status.update-F4CbQCxF.js} +3 -3
  191. package/dist/{subagent-registry-DWemyjbN.js → subagent-registry-Dkif1XYO.js} +6 -52
  192. package/dist/{symi-root-DeCVdZB4.js → symi-root-BQ0IpoW2.js} +2 -2
  193. package/dist/{synthesis-BdTiornP.js → synthesis-B6tq6-9G.js} +2 -2
  194. package/dist/{synthesis-C7RlvHEs.js → synthesis-CKKZrrYd.js} +45 -45
  195. package/dist/{synthesis-BxYzOZUA.js → synthesis-CpsURf9J.js} +4 -4
  196. package/dist/{synthesis-DQ7Y6OE0.js → synthesis-mgcCKSzl.js} +2 -2
  197. package/dist/{system-cli-DgOvK_kU.js → system-cli-DMKzffe3.js} +7 -7
  198. package/dist/{systemd-B2nTr3Y2.js → systemd-DRpQb_L1.js} +5 -5
  199. package/dist/{systemd-hints-DtOWJT_2.js → systemd-hints-DR4u43WA.js} +6 -6
  200. package/dist/{systemd-linger-CWi5l8Nt.js → systemd-linger-BQQl5RXN.js} +1 -1
  201. package/dist/{tui-D7ms_iQ4.js → tui-CqrM_Fj2.js} +7 -7
  202. package/dist/{tui-cli-DNvAqIYN.js → tui-cli-BsqRmqTX.js} +19 -19
  203. package/dist/{unified-runner-DPWNhQQA.js → unified-runner-DAWxqcS9.js} +6 -52
  204. package/dist/{unified-runner-BIUJm_Iv.js → unified-runner-DZAjU6aB.js} +104 -150
  205. package/dist/{update-pddgyV7i.js → update-CWEjB8uS.js} +3 -3
  206. package/dist/{update-check-CduiCxPo.js → update-check-CxBGAP1E.js} +5 -5
  207. package/dist/{update-cli-BM-A3cIZ.js → update-cli-Bgk30eoA.js} +9 -9
  208. package/dist/{update-cli-GKXF83cS.js → update-cli-t7W6vcQY.js} +77 -77
  209. package/dist/{update-runner-BMYqz1dl.js → update-runner-C4Uy75eP.js} +15 -15
  210. package/dist/{webhooks-cli-BPPmnDCj.js → webhooks-cli-Dp-pp0Sf.js} +4 -4
  211. package/dist/{with-timeout-D1qzvPE0.js → with-timeout-B5zAsivw.js} +1 -1
  212. package/dist/{workspace-dirs-DCICLTHx.js → workspace-dirs-jKFQf7of.js} +1 -1
  213. package/dist/{wsl-Sed675xh.js → wsl-DMA0sTvh.js} +2 -2
  214. package/package.json +1 -1
  215. package/dist/plugin-sdk/agents/tools/availability-filter.d.ts +0 -10
@@ -40,10 +40,10 @@ import "./bindings-BpMZcmYL.js";
40
40
  import "./progress-CqV5lJkt.js";
41
41
  import "./prompt-style-BIa9VCNS.js";
42
42
  import "./note--x67NNhv.js";
43
- import "./register.subclis-tX3BslaT.js";
44
- import "./command-registry-DoXcG7FZ.js";
43
+ import "./register.subclis-D9uGnVGm.js";
44
+ import "./command-registry-DAy62yhH.js";
45
45
  import "./program-context-4vIUuzQk.js";
46
- import { r as installCompletion } from "./completion-cli-DaWi3_ux.js";
46
+ import { r as installCompletion } from "./completion-cli-Bh-Y2NVp.js";
47
47
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-Cyqcsmvq.js";
48
48
  import "./runtime-guard-C8jl1lEu.js";
49
49
  import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-Cut7JJgz.js";
@@ -52,7 +52,7 @@ import { t as resolveGatewayService } from "./service-Bhr6wh5u.js";
52
52
  import { r as healthCommand } from "./health-CXUnVb6i.js";
53
53
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-C_5Ba0OA.js";
54
54
  import { t as formatHealthCheckFailure } from "./health-format-y74JTiFu.js";
55
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-B1YCzbvi.js";
55
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BZJWX3Dr.js";
56
56
  import { t as runTui } from "./tui-KP3CPTV4.js";
57
57
  import os from "node:os";
58
58
  import path from "node:path";
@@ -5,61 +5,61 @@ import { p as restoreTerminalState } from "./subsystem-CHbO_DkH.js";
5
5
  import { n as resolveCliName } from "./cli-name-CzMV-gJF.js";
6
6
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
7
7
  import "./exec-DuYbft0z.js";
8
- import { h as DEFAULT_BOOTSTRAP_FILENAME } from "./agent-scope-Bnsyyeci.js";
9
- import "./model-selection-CCTzD29o.js";
10
- import "./pi-embedded-helpers-y3vJmW6T.js";
11
- import "./config-D-PYSlE8.js";
8
+ import { h as DEFAULT_BOOTSTRAP_FILENAME } from "./agent-scope-DOrZjOnW.js";
9
+ import "./model-selection-7wdmO-Iw.js";
10
+ import "./pi-embedded-helpers-B5cWV7_y.js";
11
+ import "./config-D7SS4vdk.js";
12
12
  import "./boolean-CbZoNRMn.js";
13
13
  import "./env-BRnPI9sO.js";
14
14
  import "./shell-env-Dc3iU7HK.js";
15
15
  import "./manifest-registry-D1MLZEjS.js";
16
- import "./sandbox-DQCaejcD.js";
17
- import "./chrome-pFBxO63W.js";
16
+ import "./sandbox-Dx8IMw-E.js";
17
+ import "./chrome-rzK8edU7.js";
18
18
  import "./tailscale-DpKBMIvx.js";
19
19
  import "./auth-Bkx-QuRN.js";
20
- import "./server-context-CXVq7gZ7.js";
20
+ import "./server-context--mmXXEkE.js";
21
21
  import "./frontmatter-B_jqcova.js";
22
- import "./skills-CYcBtLGH.js";
23
- import "./routes-zpAUwtCG.js";
22
+ import "./skills-BwDmcZdt.js";
23
+ import "./routes-C-rIjd8Z.js";
24
24
  import "./redact-B3O-RBO1.js";
25
25
  import "./errors-bI7Tdx75.js";
26
- import "./fs-safe-B0Is-oLk.js";
27
- import "./paths-BWqg8NZT.js";
26
+ import "./fs-safe-BdejYjW8.js";
27
+ import "./paths-DObzwe08.js";
28
28
  import "./ssrf-DOZRI5XH.js";
29
- import "./image-ops-BzCBIakN.js";
30
- import "./ports-CB_Iu83U.js";
29
+ import "./image-ops-L70xVnpG.js";
30
+ import "./ports-gxLM5ahL.js";
31
31
  import "./trash-_YhavPQI.js";
32
- import "./sessions-aSo5jsmg.js";
32
+ import "./sessions-optZRB57.js";
33
33
  import "./dock-hF45sewN.js";
34
34
  import "./message-channel-DgjXWzf-.js";
35
35
  import "./plugins-CF5skkHh.js";
36
36
  import "./paths-BtvQ7JvU.js";
37
37
  import "./thinking-COroyVA5.js";
38
38
  import "./commands-DUzLGgEZ.js";
39
- import "./commands-registry-BjcGLk4v.js";
40
- import "./client-T5P9umyG.js";
41
- import "./call-CW8U1BPq.js";
42
- import "./pairing-token-B703A1U3.js";
39
+ import "./commands-registry-VfAQOVZO.js";
40
+ import "./client-BzUAFrla.js";
41
+ import "./call-BouPakqe.js";
42
+ import "./pairing-token-Dcy37-4s.js";
43
43
  import "./tool-display-DFOL6UQ9.js";
44
44
  import "./bindings-CLS_owm_.js";
45
45
  import "./progress-HNhsbm0E.js";
46
46
  import "./runtime-guard-DfRLODeV.js";
47
- import "./program-context-B1ZbQmLL.js";
47
+ import "./program-context-ByiEP1Lk.js";
48
48
  import "./prompt-style-BEDZROvQ.js";
49
49
  import "./note-DlaPViz1.js";
50
- import { r as installCompletion } from "./completion-cli-C0SXi7ya.js";
51
- import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-u4p9jsEF.js";
52
- import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-OB_xKQze.js";
53
- import { r as isSystemdUserServiceAvailable } from "./systemd-B2nTr3Y2.js";
54
- import { t as resolveGatewayService } from "./service-Cm4-5AH9.js";
55
- import { r as healthCommand } from "./health-D2th0Ip6.js";
56
- import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Dryy7mCE.js";
50
+ import { r as installCompletion } from "./completion-cli-Bc1jojml.js";
51
+ import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-tZgIbDPz.js";
52
+ import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers---sZ9pdZ.js";
53
+ import { r as isSystemdUserServiceAvailable } from "./systemd-DRpQb_L1.js";
54
+ import { t as resolveGatewayService } from "./service-CyEDtYLq.js";
55
+ import { r as healthCommand } from "./health-DZ0aipDZ.js";
56
+ import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DuDhl0co.js";
57
57
  import { t as formatHealthCheckFailure } from "./health-format-CUEM0lJl.js";
58
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-mev5PRjN.js";
59
- import { t as runTui } from "./tui-D7ms_iQ4.js";
58
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-B6OPl_GZ.js";
59
+ import { t as runTui } from "./tui-CqrM_Fj2.js";
60
60
  import path from "node:path";
61
61
  import os from "node:os";
62
- import fsPromises from "node:fs/promises";
62
+ import fs from "node:fs/promises";
63
63
 
64
64
  //#region src/wizard/onboarding.completion.ts
65
65
  async function resolveProfileHint(shell) {
@@ -121,7 +121,7 @@ async function finalizeOnboardingWizard(options) {
121
121
  const systemdAvailable = process.platform === "linux" ? await isSystemdUserServiceAvailable() : true;
122
122
  if (process.platform === "linux" && !systemdAvailable) await prompter.note("Systemd user services are unavailable. Skipping lingering checks and service install.", "Systemd");
123
123
  if (process.platform === "linux" && systemdAvailable) {
124
- const { ensureSystemdUserLingerInteractive } = await import("./systemd-linger-CWi5l8Nt.js").then((n) => n.r);
124
+ const { ensureSystemdUserLingerInteractive } = await import("./systemd-linger-BQQl5RXN.js").then((n) => n.r);
125
125
  await ensureSystemdUserLingerInteractive({
126
126
  runtime,
127
127
  prompter: {
@@ -270,7 +270,7 @@ async function finalizeOnboardingWizard(options) {
270
270
  });
271
271
  const gatewayStatusLine = gatewayProbe.ok ? "Gateway: reachable" : `Gateway: not detected${gatewayProbe.detail ? ` (${gatewayProbe.detail})` : ""}`;
272
272
  const bootstrapPath = path.join(resolveUserPath(options.workspaceDir), DEFAULT_BOOTSTRAP_FILENAME);
273
- const hasBootstrap = await fsPromises.access(bootstrapPath).then(() => true).catch(() => false);
273
+ const hasBootstrap = await fs.access(bootstrapPath).then(() => true).catch(() => false);
274
274
  await prompter.note([
275
275
  `Web UI: ${links.httpUrl}`,
276
276
  settings.authMode === "token" && settings.gatewayToken ? `Web UI (with token): ${authedUrl}` : void 0,
@@ -3,24 +3,24 @@ import "./paths-By0XjHBk.js";
3
3
  import "./utils-CTPsqyE_.js";
4
4
  import "./subsystem-CHbO_DkH.js";
5
5
  import "./exec-DuYbft0z.js";
6
- import "./agent-scope-Bnsyyeci.js";
7
- import "./model-selection-CCTzD29o.js";
8
- import "./config-D-PYSlE8.js";
6
+ import "./agent-scope-DOrZjOnW.js";
7
+ import "./model-selection-7wdmO-Iw.js";
8
+ import "./config-D7SS4vdk.js";
9
9
  import "./boolean-CbZoNRMn.js";
10
10
  import "./env-BRnPI9sO.js";
11
11
  import "./shell-env-Dc3iU7HK.js";
12
12
  import "./manifest-registry-D1MLZEjS.js";
13
13
  import { a as findTailscaleBinary } from "./tailscale-DpKBMIvx.js";
14
- import "./sessions-aSo5jsmg.js";
14
+ import "./sessions-optZRB57.js";
15
15
  import "./dock-hF45sewN.js";
16
16
  import "./message-channel-DgjXWzf-.js";
17
17
  import "./plugins-CF5skkHh.js";
18
18
  import "./paths-BtvQ7JvU.js";
19
- import "./client-T5P9umyG.js";
20
- import "./call-CW8U1BPq.js";
21
- import "./pairing-token-B703A1U3.js";
19
+ import "./client-BzUAFrla.js";
20
+ import "./call-BouPakqe.js";
21
+ import "./pairing-token-Dcy37-4s.js";
22
22
  import "./prompt-style-BEDZROvQ.js";
23
- import { h as randomToken, u as normalizeGatewayTokenInput, y as validateGatewayPasswordInput } from "./onboard-helpers-OB_xKQze.js";
23
+ import { h as randomToken, u as normalizeGatewayTokenInput, y as validateGatewayPasswordInput } from "./onboard-helpers---sZ9pdZ.js";
24
24
  import { i as TAILSCALE_MISSING_BIN_NOTE_LINES, n as TAILSCALE_DOCS_LINES, r as TAILSCALE_EXPOSURE_OPTIONS, t as validateIPv4AddressInput } from "./ipv4-Coaw2jro.js";
25
25
 
26
26
  //#region src/wizard/onboarding.gateway-config.ts
@@ -1,7 +1,7 @@
1
1
  import { c as escapeRegExp, p as resolveConfigDir } from "./utils-CTPsqyE_.js";
2
- import { p as resolveAllowlistModelKey, w as DEFAULT_PROVIDER } from "./model-selection-CCTzD29o.js";
2
+ import { p as resolveAllowlistModelKey, w as DEFAULT_PROVIDER } from "./model-selection-7wdmO-Iw.js";
3
3
  import { n as fetchWithTimeout } from "./fetch-timeout-BhdrdVp5.js";
4
- import { St as ZAI_GLOBAL_BASE_URL, bt as ZAI_CODING_CN_BASE_URL, xt as ZAI_CODING_GLOBAL_BASE_URL, yt as ZAI_CN_BASE_URL } from "./auth-token-CAV1oLQG.js";
4
+ import { St as ZAI_GLOBAL_BASE_URL, bt as ZAI_CODING_CN_BASE_URL, xt as ZAI_CODING_GLOBAL_BASE_URL, yt as ZAI_CN_BASE_URL } from "./auth-token-DgRRSbEX.js";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs";
7
7
 
@@ -4,16 +4,16 @@ import "./utils-CTPsqyE_.js";
4
4
  import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
5
5
  import { t as formatCliCommand } from "./command-format-BzjsXBTi.js";
6
6
  import "./exec-DuYbft0z.js";
7
- import "./agent-scope-Bnsyyeci.js";
8
- import "./model-selection-CCTzD29o.js";
9
- import "./file-lock-2AecMjCa.js";
10
- import { i as loadConfig } from "./config-D-PYSlE8.js";
7
+ import "./agent-scope-DOrZjOnW.js";
8
+ import "./model-selection-7wdmO-Iw.js";
9
+ import "./file-lock-BVUYnlQv.js";
10
+ import { i as loadConfig } from "./config-D7SS4vdk.js";
11
11
  import "./boolean-CbZoNRMn.js";
12
12
  import "./env-BRnPI9sO.js";
13
13
  import "./shell-env-Dc3iU7HK.js";
14
14
  import "./manifest-registry-D1MLZEjS.js";
15
15
  import { r as normalizeChannelId } from "./plugins-CF5skkHh.js";
16
- import { c as listPairingChannels, l as notifyPairingApproved, n as approveChannelPairingCode, r as listChannelPairingRequests, s as getPairingAdapter } from "./pairing-store-Be-ZQK87.js";
16
+ import { c as listPairingChannels, l as notifyPairingApproved, n as approveChannelPairingCode, r as listChannelPairingRequests, s as getPairingAdapter } from "./pairing-store-BNhJOnWn.js";
17
17
  import { t as formatDocsLink } from "./links-TQwptN6q.js";
18
18
  import { t as renderTable } from "./table-D902H0x3.js";
19
19
 
@@ -1,6 +1,6 @@
1
1
  import { _ as resolveStateDir, b as resolveRequiredHomeDir, h as resolveOAuthDir } from "./paths-By0XjHBk.js";
2
2
  import { g as safeParseJson } from "./utils-CTPsqyE_.js";
3
- import { t as withFileLock$1 } from "./file-lock-2AecMjCa.js";
3
+ import { t as withFileLock$1 } from "./file-lock-BVUYnlQv.js";
4
4
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CF5skkHh.js";
5
5
  import crypto from "node:crypto";
6
6
  import path from "node:path";
@@ -2,12 +2,12 @@ import { _ as resolveStateDir } from "./paths-By0XjHBk.js";
2
2
  import { t as safeEqualSecret } from "./secret-equal-CbntzRkh.js";
3
3
  import { randomBytes, randomUUID } from "node:crypto";
4
4
  import path from "node:path";
5
- import fsPromises from "node:fs/promises";
5
+ import fs from "node:fs/promises";
6
6
 
7
7
  //#region src/infra/json-files.ts
8
8
  async function readJsonFile(filePath) {
9
9
  try {
10
- const raw = await fsPromises.readFile(filePath, "utf8");
10
+ const raw = await fs.readFile(filePath, "utf8");
11
11
  return JSON.parse(raw);
12
12
  } catch {
13
13
  return null;
@@ -16,15 +16,15 @@ async function readJsonFile(filePath) {
16
16
  async function writeJsonAtomic(filePath, value, options) {
17
17
  const mode = options?.mode ?? 384;
18
18
  const dir = path.dirname(filePath);
19
- await fsPromises.mkdir(dir, { recursive: true });
19
+ await fs.mkdir(dir, { recursive: true });
20
20
  const tmp = `${filePath}.${randomUUID()}.tmp`;
21
- await fsPromises.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
21
+ await fs.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
22
22
  try {
23
- await fsPromises.chmod(tmp, mode);
23
+ await fs.chmod(tmp, mode);
24
24
  } catch {}
25
- await fsPromises.rename(tmp, filePath);
25
+ await fs.rename(tmp, filePath);
26
26
  try {
27
- await fsPromises.chmod(filePath, mode);
27
+ await fs.chmod(filePath, mode);
28
28
  } catch {}
29
29
  }
30
30
  function createAsyncLock() {
@@ -1,5 +1,5 @@
1
1
  import { B as resolvePreferredSymiTmpDir } from "./registry-Sbac4a4z.js";
2
- import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-B0Is-oLk.js";
2
+ import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-BdejYjW8.js";
3
3
  import path from "node:path";
4
4
 
5
5
  //#region src/browser/paths.ts
@@ -1,15 +1,15 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { b as ensureAuthProfileStore } from "./auth-profiles-D5nYBj_Z.js";
3
- import { u as normalizeProviderId } from "./model-selection-CCTzD29o.js";
2
+ import { b as ensureAuthProfileStore } from "./auth-profiles-Ce7R_25e.js";
3
+ import { u as normalizeProviderId } from "./model-selection-7wdmO-Iw.js";
4
4
  import { t as normalizeOptionalSecretInput } from "./normalize-secret-input-DjGU5EXe.js";
5
5
  import path from "node:path";
6
- import fsPromises from "node:fs/promises";
6
+ import fs from "node:fs/promises";
7
7
 
8
8
  //#region src/agents/pi-auth-json.ts
9
9
  var pi_auth_json_exports = /* @__PURE__ */ __exportAll({ ensurePiAuthJsonFromAuthProfiles: () => ensurePiAuthJsonFromAuthProfiles });
10
10
  async function readAuthJson(filePath) {
11
11
  try {
12
- const raw = await fsPromises.readFile(filePath, "utf8");
12
+ const raw = await fs.readFile(filePath, "utf8");
13
13
  const parsed = JSON.parse(raw);
14
14
  if (!parsed || typeof parsed !== "object") return {};
15
15
  return parsed;
@@ -120,11 +120,11 @@ async function ensurePiAuthJsonFromAuthProfiles(agentDir, options) {
120
120
  wrote: false,
121
121
  authPath
122
122
  };
123
- await fsPromises.mkdir(agentDir, {
123
+ await fs.mkdir(agentDir, {
124
124
  recursive: true,
125
125
  mode: 448
126
126
  });
127
- await fsPromises.writeFile(authPath, `${JSON.stringify(existing, null, 2)}\n`, { mode: 384 });
127
+ await fs.writeFile(authPath, `${JSON.stringify(existing, null, 2)}\n`, { mode: 384 });
128
128
  return {
129
129
  wrote: true,
130
130
  authPath
@@ -29,7 +29,7 @@ import { n as resolveConversationLabel } from "./conversation-label-DTTqF8gH.js"
29
29
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-BsT3BvfH.js";
30
30
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-ChU6IQwp.js";
31
31
  import { n as saveJsonFile, t as loadJsonFile } from "./json-file-B7D44OOV.js";
32
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, d as requireApiKey, f as resolveApiKeyForProvider, h as resolveModelAuthMode, i as resolveOllamaBaseUrl, l as getApiKeyForModel, m as resolveEnvApiKey, n as retryAsync, o as collectProviderApiKeysForExecution, p as resolveAwsSdkEnvVarName, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation, u as getCustomProviderApiKey } from "./manager-Bryhc0Ip.js";
32
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, d as requireApiKey, f as resolveApiKeyForProvider, h as resolveModelAuthMode, i as resolveOllamaBaseUrl, l as getApiKeyForModel, m as resolveEnvApiKey, n as retryAsync, o as collectProviderApiKeysForExecution, p as resolveAwsSdkEnvVarName, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation, u as getCustomProviderApiKey } from "./manager-BsQIpjy1.js";
33
33
  import { r as resolveCopilotApiToken, t as DEFAULT_COPILOT_API_BASE_URL } from "./github-copilot-token-dYUr1mDQ.js";
34
34
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-Ce-sg7EN.js";
35
35
  import { n as resolveMarkdownTableMode } from "./markdown-tables-jQzXAsf3.js";
@@ -3390,7 +3390,7 @@ async function getMemorySearchManager(params) {
3390
3390
  const wrapper = new FallbackMemoryManager({
3391
3391
  primary,
3392
3392
  fallbackFactory: async () => {
3393
- const { MemoryIndexManager } = await import("./manager-Bryhc0Ip.js").then((n) => n.t);
3393
+ const { MemoryIndexManager } = await import("./manager-BsQIpjy1.js").then((n) => n.t);
3394
3394
  return await MemoryIndexManager.get(params);
3395
3395
  }
3396
3396
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -3403,7 +3403,7 @@ async function getMemorySearchManager(params) {
3403
3403
  }
3404
3404
  }
3405
3405
  try {
3406
- const { MemoryIndexManager } = await import("./manager-Bryhc0Ip.js").then((n) => n.t);
3406
+ const { MemoryIndexManager } = await import("./manager-BsQIpjy1.js").then((n) => n.t);
3407
3407
  return { manager: await MemoryIndexManager.get(params) };
3408
3408
  } catch (err) {
3409
3409
  return {
@@ -40590,19 +40590,11 @@ function createWebSearchTool(options) {
40590
40590
  const provider = resolveSearchProvider(search);
40591
40591
  const perplexityConfig = resolvePerplexityConfig(search);
40592
40592
  const grokConfig = resolveGrokConfig(search);
40593
- const description = provider === "perplexity" ? "Search the web using Perplexity Sonar (direct or via OpenRouter). Returns AI-synthesized answers with citations from real-time web search." : provider === "grok" ? "Search the web using xAI Grok. Returns AI-synthesized answers with citations from real-time web search." : "Search the web using Brave Search API. Supports region-specific and localized search via country and language parameters. Returns titles, URLs, and snippets for fast research.";
40594
- const resolveActiveApiKey = () => {
40595
- if (provider === "perplexity") return resolvePerplexityApiKey(perplexityConfig)?.apiKey;
40596
- if (provider === "grok") return resolveGrokApiKey(grokConfig);
40597
- return resolveSearchApiKey(search);
40598
- };
40599
40593
  return {
40600
40594
  label: "Web Search",
40601
40595
  name: "web_search",
40602
- description,
40596
+ description: provider === "perplexity" ? "Search the web using Perplexity Sonar (direct or via OpenRouter). Returns AI-synthesized answers with citations from real-time web search." : provider === "grok" ? "Search the web using xAI Grok. Returns AI-synthesized answers with citations from real-time web search." : "Search the web using Brave Search API. Supports region-specific and localized search via country and language parameters. Returns titles, URLs, and snippets for fast research.",
40603
40597
  parameters: WebSearchSchema,
40604
- checkFn: () => Boolean(resolveActiveApiKey()),
40605
- requiredEnv: provider === "perplexity" ? ["PERPLEXITY_API_KEY", "OPENROUTER_API_KEY"] : provider === "grok" ? ["XAI_API_KEY"] : ["BRAVE_API_KEY"],
40606
40598
  execute: async (_toolCallId, args) => {
40607
40599
  const perplexityAuth = provider === "perplexity" ? resolvePerplexityApiKey(perplexityConfig) : void 0;
40608
40600
  const apiKey = provider === "perplexity" ? perplexityAuth?.apiKey : provider === "grok" ? resolveGrokApiKey(grokConfig) : resolveSearchApiKey(search);
@@ -60911,44 +60903,6 @@ function applyToolPolicyPipeline(params) {
60911
60903
  return filtered;
60912
60904
  }
60913
60905
 
60914
- //#endregion
60915
- //#region src/agents/tools/availability-filter.ts
60916
- const FORCE_ALL_TOOLS_ENV = "SYMI_FORCE_ALL_TOOLS";
60917
- /**
60918
- * Filter the tool palette by each tool's `checkFn`. Tools without a
60919
- * checkFn pass through unchanged. Throwing checkFns are treated as
60920
- * available (defensive). The `SYMI_FORCE_ALL_TOOLS=1` env bypasses the
60921
- * filter entirely.
60922
- *
60923
- * Pure function — does not mutate the input array.
60924
- */
60925
- function filterToolsByAvailability(tools) {
60926
- if (isTruthyEnvValue(process.env[FORCE_ALL_TOOLS_ENV])) return [...tools];
60927
- const out = [];
60928
- for (const tool of tools) {
60929
- if (!tool.checkFn) {
60930
- out.push(tool);
60931
- continue;
60932
- }
60933
- let available;
60934
- try {
60935
- available = tool.checkFn();
60936
- } catch (err) {
60937
- logVerbose(`tool availability: checkFn for "${getToolName(tool)}" threw — including tool anyway. ${String(err)}`);
60938
- out.push(tool);
60939
- continue;
60940
- }
60941
- if (available) out.push(tool);
60942
- else logVerbose(`tool availability: filtered out "${getToolName(tool)}" — checkFn returned false. Set ${FORCE_ALL_TOOLS_ENV}=1 to bypass this filter.`);
60943
- }
60944
- return out;
60945
- }
60946
- function getToolName(tool) {
60947
- const definition = tool.definition;
60948
- if (definition && typeof definition.name === "string") return definition.name;
60949
- return "(unknown tool)";
60950
- }
60951
-
60952
60906
  //#endregion
60953
60907
  //#region src/agents/pi-tools.ts
60954
60908
  function isOpenAIProvider(provider) {
@@ -61168,7 +61122,7 @@ function createSymiCodingTools(options) {
61168
61122
  root: sandboxRoot,
61169
61123
  bridge: sandboxFsBridge
61170
61124
  }), readEditTracker) : null;
61171
- const withHooks = filterToolsByAvailability(applyToolPolicyPipeline({
61125
+ const withHooks = applyToolPolicyPipeline({
61172
61126
  tools: applyOwnerOnlyToolPolicy([
61173
61127
  ...base,
61174
61128
  ...sandboxRoot ? allowWorkspaceWrites && sandboxedEditTool && sandboxedWriteTool ? [workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedEditTool, sandboxRoot) : sandboxedEditTool, workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedWriteTool, sandboxRoot) : sandboxedWriteTool] : [] : [],
@@ -61240,7 +61194,7 @@ function createSymiCodingTools(options) {
61240
61194
  label: "subagent tools.allow"
61241
61195
  }
61242
61196
  ]
61243
- })).map((tool) => normalizeToolParameters(tool, { modelProvider: options?.modelProvider })).map((tool) => wrapToolWithBeforeToolCallHook(tool, {
61197
+ }).map((tool) => normalizeToolParameters(tool, { modelProvider: options?.modelProvider })).map((tool) => wrapToolWithBeforeToolCallHook(tool, {
61244
61198
  agentId,
61245
61199
  sessionKey: options?.sessionKey,
61246
61200
  loopDetection: resolveToolLoopDetectionConfig({
@@ -1,11 +1,11 @@
1
1
  import { x as truncateUtf16Safe } from "./utils-CTPsqyE_.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
3
- import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-DQCaejcD.js";
4
- import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-BzCBIakN.js";
3
+ import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-Dx8IMw-E.js";
4
+ import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-L70xVnpG.js";
5
5
  import { s as normalizeThinkLevel } from "./thinking-COroyVA5.js";
6
6
  import { createHash } from "node:crypto";
7
7
  import path from "node:path";
8
- import fsPromises from "node:fs/promises";
8
+ import fs from "node:fs/promises";
9
9
 
10
10
  //#region src/agents/pi-embedded-helpers/bootstrap.ts
11
11
  function isBase64Signature(value) {
@@ -102,10 +102,10 @@ function clampToBudget(content, budget) {
102
102
  async function ensureSessionHeader(params) {
103
103
  const file = params.sessionFile;
104
104
  try {
105
- await fsPromises.stat(file);
105
+ await fs.stat(file);
106
106
  return;
107
107
  } catch {}
108
- await fsPromises.mkdir(path.dirname(file), { recursive: true });
108
+ await fs.mkdir(path.dirname(file), { recursive: true });
109
109
  const entry = {
110
110
  type: "session",
111
111
  version: 2,
@@ -113,7 +113,7 @@ async function ensureSessionHeader(params) {
113
113
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
114
114
  cwd: params.cwd
115
115
  };
116
- await fsPromises.writeFile(file, `${JSON.stringify(entry)}\n`, "utf-8");
116
+ await fs.writeFile(file, `${JSON.stringify(entry)}\n`, "utf-8");
117
117
  }
118
118
  function buildBootstrapContextFiles(files, opts) {
119
119
  const maxChars = opts?.maxChars ?? DEFAULT_BOOTSTRAP_MAX_CHARS;
@@ -1,7 +1,7 @@
1
1
  import { S as resolveThreadParentSessionKey, c as resolveAgentIdFromSessionKey } from "./session-key-DUSb7CCb.js";
2
- import { r as resolveAgentConfig } from "./agent-scope-Bnsyyeci.js";
3
- import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-D-PYSlE8.js";
4
- import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-DQCaejcD.js";
2
+ import { r as resolveAgentConfig } from "./agent-scope-DOrZjOnW.js";
3
+ import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-D7SS4vdk.js";
4
+ import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-Dx8IMw-E.js";
5
5
  import { a as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-hF45sewN.js";
6
6
  import { l as normalizeMessageChannel } from "./message-channel-DgjXWzf-.js";
7
7
 
@@ -1,6 +1,6 @@
1
1
  import { o as getChatChannelMeta, s as listChatChannels, u as normalizeChatChannelId } from "./registry-Sbac4a4z.js";
2
2
  import { u as isRecord } from "./utils-CTPsqyE_.js";
3
- import { u as normalizeProviderId } from "./model-selection-CCTzD29o.js";
3
+ import { u as normalizeProviderId } from "./model-selection-7wdmO-Iw.js";
4
4
  import { n as getChannelPluginCatalogEntry, r as listChannelPluginCatalogEntries } from "./catalog-DsC3JTw1.js";
5
5
  import { t as ensurePluginAllowlisted } from "./plugins-allowlist-CWCQC08H.js";
6
6
 
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
3
3
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-C-Jte08L.js";
4
4
  import { i as loadConfig } from "./config-_DaupjQd.js";
5
- import { m as loadSymiPlugins } from "./subagent-registry-DWemyjbN.js";
5
+ import { m as loadSymiPlugins } from "./subagent-registry-Dkif1XYO.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as loadSymiPlugins } from "./unified-runner-BIUJm_Iv.js";
2
+ import { s as loadSymiPlugins } from "./unified-runner-DZAjU6aB.js";
3
3
  import { d as getActivePluginRegistry } from "./registry-Sbac4a4z.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-CHbO_DkH.js";
5
- import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-Bnsyyeci.js";
6
- import { i as loadConfig } from "./config-D-PYSlE8.js";
5
+ import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-DOrZjOnW.js";
6
+ import { i as loadConfig } from "./config-D7SS4vdk.js";
7
7
 
8
8
  //#region src/cli/plugin-registry.ts
9
9
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1 +1,2 @@
1
- export type { AnyAgentTool } from "./tools/common.js";
1
+ import type { AgentTool } from "@mariozechner/pi-agent-core";
2
+ export type AnyAgentTool = AgentTool<any, unknown>;
@@ -2,36 +2,6 @@ import type { AgentTool, AgentToolResult } from "@mariozechner/pi-agent-core";
2
2
  import type { ImageSanitizationLimits } from "../image-sanitization.js";
3
3
  export type AnyAgentTool = AgentTool<any, unknown> & {
4
4
  ownerOnly?: boolean;
5
- /**
6
- * Optional runtime availability check. If defined and returns `false`,
7
- * the tool is filtered out of the agent's palette before the LLM ever
8
- * sees it — preventing wasted turns on tools that can't actually run
9
- * (e.g., a search tool with no API key configured).
10
- *
11
- * **Defensive design rules**:
12
- * - Default behavior (when not defined) is "always available" — tools
13
- * without checkFn are NEVER filtered. Existing tools keep working
14
- * exactly as before.
15
- * - When implementing checkFn, only return `false` if the tool is
16
- * CERTAIN to fail. When uncertain, return `true` and let the agent
17
- * try — better to surface the real error than to wrongly hide a
18
- * working tool.
19
- * - For multi-credential tools (e.g., web_search has 4 providers),
20
- * return `true` if ANY credential path is available.
21
- * - The user can bypass all checkFn filtering by setting the env var
22
- * `SYMI_FORCE_ALL_TOOLS=1` — useful when our check is wrong and
23
- * the user knows their setup works.
24
- */
25
- checkFn?: () => boolean;
26
- /**
27
- * Optional declarative list of env var names this tool may use. Pure
28
- * metadata — the gateway uses it to answer "Why isn't tool X
29
- * available?" by listing which env vars would enable it. Not consumed
30
- * for actual gating (that's checkFn's job). When the tool accepts
31
- * credentials from multiple sources (env, config, profile store),
32
- * list every env var name it ever consults.
33
- */
34
- requiredEnv?: readonly string[];
35
5
  };
36
6
  export type StringParamOptions = {
37
7
  required?: boolean;
@@ -17,7 +17,7 @@ import "./client-BqT7xONl.js";
17
17
  import "./call-GzGqMHAx.js";
18
18
  import "./message-channel-DXToSaWK.js";
19
19
  import "./pairing-token-B-OTYROz.js";
20
- import "./subagent-registry-DWemyjbN.js";
20
+ import "./subagent-registry-Dkif1XYO.js";
21
21
  import "./sessions-DHPf5TzB.js";
22
22
  import "./plugins-BsEhWvLn.js";
23
23
  import "./send-BBfSp-8Q.js";
@@ -47,8 +47,8 @@ import "./model-auth-Byr7Gic_.js";
47
47
  import "./github-copilot-token-B5y4__YM.js";
48
48
  import "./models-config-Br7EjqgG.js";
49
49
  import "./reply-prefix-DV3KhOhL.js";
50
- import "./memory-Cypj1lBQ.js";
51
- import "./manager-BfbQb9qM.js";
50
+ import "./memory-BENbCb4f.js";
51
+ import "./manager-BhIaahpm.js";
52
52
  import "./sqlite-9jF_eajd.js";
53
53
  import "./chunk-B2lBXhR0.js";
54
54
  import "./markdown-tables-BEdkErjm.js";
@@ -78,7 +78,7 @@ import { t as formatDocsLink } from "./links-BDe4dm1J.js";
78
78
  import "./cli-utils-BhfE5XS2.js";
79
79
  import "./help-format-CbgFRc-H.js";
80
80
  import "./progress-CqV5lJkt.js";
81
- import "./memory-cli-DB7UIev4.js";
81
+ import "./memory-cli-BIjwqjBx.js";
82
82
  import "./logging-BeW3kpQA.js";
83
83
  import "./replies-LM-arXEE.js";
84
84
  import "./pi-tools.policy-4gtz_Ipq.js";
@@ -87,7 +87,7 @@ import "./npm-registry-spec-B5KYXHyZ.js";
87
87
  import "./skill-scanner-CH9qofCG.js";
88
88
  import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-CylGJ0W4.js";
89
89
  import { t as renderTable } from "./table-DTXkjZUY.js";
90
- import { t as buildPluginStatusReport } from "./status-DbNNmkNB.js";
90
+ import { t as buildPluginStatusReport } from "./status-CoqGtHXq.js";
91
91
  import { n as updateNpmInstalledPlugins } from "./update-BhFBDs4W.js";
92
92
  import os from "node:os";
93
93
  import path from "node:path";