@symerian/symi 2.6.37 → 2.6.38

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 (435) hide show
  1. package/dist/{acp-cli-gr5XIPZf.js → acp-cli-ByYHYK_E.js} +4 -4
  2. package/dist/{agents-BDKvA-fr.js → agents-BaNrmXzu.js} +4 -4
  3. package/dist/{agents.config-SvdnvFsa.js → agents.config-BOxmN33d.js} +1 -1
  4. package/dist/{agents.config-DP7J1Yxi.js → agents.config-C78DHdxT.js} +1 -1
  5. package/dist/{audio-preflight-xSDULLAj.js → audio-preflight-BuT_gIRW.js} +2 -2
  6. package/dist/{audio-preflight-BVaaZWkg.js → audio-preflight-Cz1htqcz.js} +9 -9
  7. package/dist/{audio-preflight-COe9clRU.js → audio-preflight-CzQUZSUK.js} +7 -7
  8. package/dist/{audio-preflight-C40mKAp7.js → audio-preflight-DBMz5TQp.js} +7 -7
  9. package/dist/{audit-DCDNPsGr.js → audit-BxqTVyZo.js} +9 -9
  10. package/dist/{auth-choice-CinzPjY5.js → auth-choice-BnJzLsv5.js} +7 -7
  11. package/dist/{auth-choice-DeTIgQiQ.js → auth-choice-CnpKK0cS.js} +3 -3
  12. package/dist/{auth-choice-options-DOqFUoBo.js → auth-choice-options-DmQgUlhC.js} +1 -1
  13. package/dist/{auth-choice-prompt-BLzEBA1v.js → auth-choice-prompt-Cn6U3t8O.js} +1 -1
  14. package/dist/{auth-profiles-DdK1Hxaa.js → auth-profiles-q3HjbboY.js} +1 -1
  15. package/dist/{banner-DlzlZSHv.js → banner-DdpNhjX6.js} +1 -1
  16. package/dist/{bonjour-discovery-BHTF5p0X.js → bonjour-discovery-DUQ6tE92.js} +1 -1
  17. package/dist/{browser-cli-FNGt_E96.js → browser-cli-BrzYV9w9.js} +3 -3
  18. package/dist/build-info.json +3 -3
  19. package/dist/bundled/boot-md/handler.js +37 -36
  20. package/dist/bundled/bootstrap-extra-files/handler.js +1 -1
  21. package/dist/bundled/session-memory/handler.js +38 -37
  22. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  23. package/dist/{channel-activity-B6G1jnQT.js → channel-activity-D-kw83R0.js} +1 -1
  24. package/dist/{channel-options-38j3QjH3.js → channel-options-47wHx-rM.js} +2 -2
  25. package/dist/{channel-options-D7Lp2WmW.js → channel-options-CJE7N_QV.js} +1 -1
  26. package/dist/{channel-web-DoJWvCSG.js → channel-web-CVf8YV4M.js} +5 -5
  27. package/dist/{channels-cli-CMMBVrwz.js → channels-cli-CMLy_xVT.js} +7 -6
  28. package/dist/{channels-cli-DmvAljR1.js → channels-cli-Iya7tcnY.js} +44 -43
  29. package/dist/{chrome-DkaXoP36.js → chrome-34eOyt_6.js} +1 -1
  30. package/dist/{chrome-CDJYxX5a.js → chrome-CovpMGdO.js} +8 -8
  31. package/dist/{clack-prompter-B7pN13HV.js → clack-prompter-DMuVyYP2.js} +3 -3
  32. package/dist/{cli-D9LYX6lB.js → cli-DmGUr8aj.js} +4 -3
  33. package/dist/{cli-Cd4B5FyU.js → cli-dC-CEeDc.js} +27 -26
  34. package/dist/{command-registry-CARx8WBf.js → command-registry-Dk55OGO6.js} +9 -9
  35. package/dist/{commands-registry-Bfc7Uz0o.js → commands-registry-BSvi46KZ.js} +1 -1
  36. package/dist/{commands-registry-C_aYUwpl.js → commands-registry-DYoNKo_h.js} +1 -1
  37. package/dist/{completion-cli-DCO3bMjl.js → completion-cli-1HmgP7tY.js} +2 -2
  38. package/dist/{completion-cli-LYcBopv1.js → completion-cli-DrDwlbAX.js} +1 -1
  39. package/dist/{config-5SdHIcHU.js → config-4Iu6iHCA.js} +1 -1
  40. package/dist/{config-BmV60pPT.js → config-DBqxAhpU.js} +1 -1
  41. package/dist/{config-cli-BCiQhEoA.js → config-cli-Cm4KwczC.js} +1 -1
  42. package/dist/{config-cli-9rTAv29s.js → config-cli-DLFKoU1U.js} +1 -1
  43. package/dist/{config-guard-BflmO0t7.js → config-guard--WfHrCVe.js} +6 -6
  44. package/dist/{configure-BeKcXpvL.js → configure-BbFd3c68.js} +5 -5
  45. package/dist/{configure-RmJWWP1i.js → configure-DNRNOqKI.js} +20 -20
  46. package/dist/{control-service-Bz7rxLWq.js → control-service-Dtn-qw2s.js} +2 -2
  47. package/dist/{cron-cli-KYTOQ6d9.js → cron-cli-Bml4UNHa.js} +3 -3
  48. package/dist/{daemon-cli-CJJ8Vueq.js → daemon-cli-BPHe9wOW.js} +11 -11
  49. package/dist/{daemon-runtime-2mwX-jqj.js → daemon-runtime-COZ4usfy.js} +2 -2
  50. package/dist/{deliver-BH0l3UKW.js → deliver-BCYGr-CD.js} +2 -2
  51. package/dist/{deliver-CWR_98sK.js → deliver-DrFtaFZt.js} +3 -3
  52. package/dist/{deliver-C46-vyqg.js → deliver-DtM4u1u_.js} +6 -6
  53. package/dist/{devices-cli-j0f38zcG.js → devices-cli-texa_iUV.js} +1 -1
  54. package/dist/{diagnostic-DjBRPfu9.js → diagnostic-CH0skkp6.js} +1 -1
  55. package/dist/{diagnostic-rPhsBoZz.js → diagnostic-CQiU0O8b.js} +1 -1
  56. package/dist/{diagnostics-BAMlsVVX.js → diagnostics-BRwihzJG.js} +1 -1
  57. package/dist/{directory-cli-CpUByQew.js → directory-cli-BRMi7Alb.js} +3 -3
  58. package/dist/{dns-cli-Beyzdh3S.js → dns-cli-BsRMpavf.js} +2 -2
  59. package/dist/{doctor-completion-CfPhNCUx.js → doctor-completion-B8IZFxo9.js} +2 -2
  60. package/dist/{doctor-completion-BlysSk9e.js → doctor-completion-D6tzA47C.js} +1 -1
  61. package/dist/{doctor-config-flow-QnaBd8kL.js → doctor-config-flow-BTQvpBys.js} +4 -4
  62. package/dist/{enable-HSYin9n7.js → enable-vgRSCfxI.js} +1 -1
  63. package/dist/entry.js +1 -1
  64. package/dist/{exec-approvals-cli-2BfYmO4M.js → exec-approvals-cli-DxKAWA8Y.js} +7 -7
  65. package/dist/extensionAPI.js +20 -19
  66. package/dist/{fetch-Bso4i15F.js → fetch-Dnti0cFs.js} +1 -1
  67. package/dist/{gateway-cli-B1AI4M7v.js → gateway-cli-DCTt5acx.js} +74 -73
  68. package/dist/{gateway-cli-D2MuH-Vj.js → gateway-cli-DdjXGMTo.js} +12 -11
  69. package/dist/{gemini-auth-Dy12ZAH3.js → gemini-auth-BkLFtndu.js} +1 -1
  70. package/dist/{gemini-auth-CSlZZ1Pw.js → gemini-auth-ClVyOv9p.js} +1 -1
  71. package/dist/{glass-ui-ws-cB1R6KOh.js → glass-ui-ws-C_DzMNsd.js} +51 -50
  72. package/dist/{glass-ui-ws-xbRlW2Pz.js → glass-ui-ws-DBlQ-hk7.js} +10 -9
  73. package/dist/{health-DjUN4OFC.js → health-9z0Hpkuc.js} +4 -4
  74. package/dist/{health-By4_Yu9p.js → health-NTpZ8ssG.js} +1 -1
  75. package/dist/{hooks-cli-BENuuN6Y.js → hooks-cli-C86OGnVu.js} +33 -32
  76. package/dist/{hooks-cli-CGrOzATb.js → hooks-cli-wq_uFJly.js} +5 -4
  77. package/dist/{hooks-status-BqLZtMLa.js → hooks-status-oUebZVnL.js} +2 -2
  78. package/dist/{image-D9uvDTrc.js → image-BwXkayiM.js} +1 -1
  79. package/dist/{image-CHzdaNJ4.js → image-DKudhySz.js} +3 -3
  80. package/dist/{image-CuzFLQWC.js → image-mx18hbyY.js} +4 -4
  81. package/dist/index.js +42 -41
  82. package/dist/{inspect-CllGjsWo.js → inspect-CvbbCuoa.js} +2 -2
  83. package/dist/{install-safe-path-tCLiMpmO.js → install-safe-path-D3Uz77u7.js} +1 -1
  84. package/dist/{installs-C1Cebk97.js → installs-DQcRVF1U.js} +3 -3
  85. package/dist/{ir-CTiz95Vb.js → ir-JAy_3A3B.js} +2 -2
  86. package/dist/{lifecycle-core-D6LYXpFj.js → lifecycle-core-D0n_6gjJ.js} +6 -6
  87. package/dist/llm-slug-generator.js +37 -36
  88. package/dist/{local-roots-DhZz0Ybs.js → local-roots-Se92wAN5.js} +1 -1
  89. package/dist/{login-XprgoYoQ.js → login-CeXFO0OG.js} +2 -2
  90. package/dist/{login-ul8zaw_S.js → login-IpOTJtyn.js} +2 -2
  91. package/dist/{login-qr-CUErSLXH.js → login-qr-BMIn_eOf.js} +3 -3
  92. package/dist/{login-qr-pbXdFORv.js → login-qr-CC0TE3ax.js} +1 -1
  93. package/dist/{login-qr-AP9agO-i.js → login-qr-DRepVMvu.js} +3 -3
  94. package/dist/{login-dIlDkG4X.js → login-y9uojrfG.js} +1 -1
  95. package/dist/{logs-cli-C0FZokFv.js → logs-cli-Dld6m2xN.js} +2 -2
  96. package/dist/{manager-PprhCvO_.js → manager-CJ3M1Uxq.js} +4 -4
  97. package/dist/{manager-jpn5vRTY.js → manager-CgLdpXXM.js} +2 -2
  98. package/dist/{memory-cli-Ca5r9AUb.js → memory-cli-CPONmMrJ.js} +1 -1
  99. package/dist/{model-catalog-CqCsARJX.js → model-catalog-Bn0ffe1O.js} +3 -2
  100. package/dist/{model-catalog-DsFLN-ua.js → model-catalog-r6v4orfa.js} +3 -2
  101. package/dist/{model-picker-D5nCutGW.js → model-picker-D1J9kB3d.js} +1 -1
  102. package/dist/{model-picker-BzIRY_aM.js → model-picker-TnkH7DsN.js} +2 -2
  103. package/dist/{model-selection-BQCG9ah0.js → model-selection-B8QKPmTL.js} +1 -1
  104. package/dist/{models-D1mOj_fd.js → models-DfuMRKvu.js} +5 -5
  105. package/dist/{models-cli-DhanAXLt.js → models-cli-BJv-aMkH.js} +37 -37
  106. package/dist/{models-cli-Blg1YDNe.js → models-cli-FnD3ZD7s.js} +6 -6
  107. package/dist/{node-cli-DUi87xSB.js → node-cli-C8xs7jkn.js} +16 -16
  108. package/dist/{node-service-Cxz4e-Qd.js → node-service-CD47Qpf1.js} +2 -2
  109. package/dist/{nodes-cli-wgJi8nLG.js → nodes-cli-_wKGGKvG.js} +6 -6
  110. package/dist/{note-DeHoW7xO.js → note-DQ9BvHF2.js} +1 -1
  111. package/dist/{npm-registry-spec-C2JDdSZS.js → npm-registry-spec-C0CPT3vr.js} +1 -1
  112. package/dist/{onboard-BKl9tvd9.js → onboard-CEE38rOh.js} +17 -17
  113. package/dist/{onboard-DIjwRWbY.js → onboard-Dxf43Kz5.js} +4 -4
  114. package/dist/{onboard-channels-wd_fR_EA.js → onboard-channels-CEZpwlsw.js} +6 -6
  115. package/dist/{onboard-channels-CW1DBHfJ.js → onboard-channels-DjqHX51z.js} +1 -1
  116. package/dist/{onboard-custom-BPvHqbtj.js → onboard-custom-BNyCb71p.js} +2 -2
  117. package/dist/{onboard-custom-DdWPfzJO.js → onboard-custom-yNOjvlgR.js} +1 -1
  118. package/dist/{onboard-helpers-Ci50bfCW.js → onboard-helpers-CAjcAisT.js} +2 -2
  119. package/dist/{onboard-hooks-BAA8CoVv.js → onboard-hooks-C3ok8kqB.js} +2 -2
  120. package/dist/{onboard-remote-I9QVs0MQ.js → onboard-remote-D-8pd-tx.js} +3 -3
  121. package/dist/{onboard-skills-DX7L1thH.js → onboard-skills-c4Rw-CGf.js} +3 -3
  122. package/dist/{onboarding-Ban5B7QD.js → onboarding-B1VwuUX5.js} +15 -15
  123. package/dist/{onboarding-DnhVdzx6.js → onboarding-BxHFNg2y.js} +5 -5
  124. package/dist/{onboarding.finalize-YbnkoDuN.js → onboarding.finalize-DQm4Tey0.js} +40 -39
  125. package/dist/{onboarding.finalize-QCZDp4AW.js → onboarding.finalize-dP5Igu4h.js} +9 -8
  126. package/dist/{onboarding.gateway-config-CJU7Hzrn.js → onboarding.gateway-config-DOna9Sr4.js} +3 -3
  127. package/dist/{openai-model-default-DMjQRsb1.js → openai-model-default-WqcGxyFM.js} +1 -1
  128. package/dist/{outbound-3MZ12YrQ.js → outbound-BihTVvMr.js} +2 -2
  129. package/dist/{outbound-DB5Zus0-.js → outbound-DyBiNY4z.js} +1 -1
  130. package/dist/{outbound-CtMCmwxR.js → outbound-UwQEXYXv.js} +6 -6
  131. package/dist/{outbound-attachment-DJldbweZ.js → outbound-attachment-BzwVH4Pn.js} +1 -1
  132. package/dist/{pairing-cli-CBLfGvqW.js → pairing-cli-CpKm3M-X.js} +2 -2
  133. package/dist/{path-env-MnzRq6nD.js → path-env-BaQ2E7uD.js} +1 -1
  134. package/dist/{pi-auth-json-D6YbgrAe.js → pi-auth-json-BloyLEwh.js} +24 -9
  135. package/dist/{pi-auth-json-CaX_1WHk.js → pi-auth-json-CCaxCywz.js} +21 -2
  136. package/dist/{pi-auth-json-Bk8ERadJ.js → pi-auth-json-LXkL5WS_.js} +24 -11
  137. package/dist/pi-auth-json-zHckislA.js +133 -0
  138. package/dist/{pi-embedded-DG6dQt8v.js → pi-embedded-DKaDXfFG.js} +51 -49
  139. package/dist/{pi-embedded-helpers-CNPyv_ax.js → pi-embedded-helpers-BuVSLhG_.js} +1 -1
  140. package/dist/{pi-embedded-helpers-lgx_U5KS.js → pi-embedded-helpers-CepVOR4e.js} +6 -6
  141. package/dist/{pi-embedded-helpers-CfqDGQ9J.js → pi-embedded-helpers-DASLSiel.js} +6 -6
  142. package/dist/{pi-tools.policy-CIDBbw6x.js → pi-tools.policy-C6MWZ59E.js} +1 -1
  143. package/dist/{plugin-auto-enable-BzX1uAKy.js → plugin-auto-enable-CP0nONRL.js} +2 -2
  144. package/dist/{plugin-registry-BdvMB68i.js → plugin-registry-DMUt9X9t.js} +1 -1
  145. package/dist/{plugin-registry-DfODDpUe.js → plugin-registry-DeT0nOee.js} +1 -1
  146. package/dist/plugin-sdk/{accounts-BtaOa4z_.js → accounts-BToL3HlP.js} +1 -1
  147. package/dist/plugin-sdk/{accounts-Ddm33hQm.js → accounts-D9zGZU5t.js} +3 -3
  148. package/dist/plugin-sdk/{accounts-s-AdhXVR.js → accounts-Dtszw3Zn.js} +1 -1
  149. package/dist/plugin-sdk/{active-listener-BXYeALs0.js → active-listener-BRYwA2Ic.js} +1 -1
  150. package/dist/plugin-sdk/{agent-scope-CYYpcO9W.js → agent-scope-C3gMMKCU.js} +2 -2
  151. package/dist/plugin-sdk/agents/pi-auth-json.d.ts +12 -1
  152. package/dist/plugin-sdk/{api-key-rotation-D_sMvI5W.js → api-key-rotation-LTEeykrm.js} +1 -1
  153. package/dist/plugin-sdk/{audio-preflight-VpItkiy3.js → audio-preflight-JLsqSVmS.js} +24 -24
  154. package/dist/plugin-sdk/{bindings-C7hRtgYW.js → bindings-BbwoUGPx.js} +2 -2
  155. package/dist/plugin-sdk/{channel-activity-DoC1xtDu.js → channel-activity-Ji7f0gqq.js} +1 -1
  156. package/dist/plugin-sdk/{channel-web-DHcmAnVa.js → channel-web-BtuQPMkd.js} +22 -22
  157. package/dist/plugin-sdk/{chrome-B7RdxmJ0.js → chrome-cPabhZZ4.js} +3 -3
  158. package/dist/plugin-sdk/{chunk-Dw2XBYXv.js → chunk-jvk9axTQ.js} +1 -1
  159. package/dist/plugin-sdk/{command-format-GKSevep4.js → command-format-DSdvQ_M5.js} +1 -1
  160. package/dist/plugin-sdk/{commands-registry-COIaslGl.js → commands-registry-C9W8UWBh.js} +4 -4
  161. package/dist/plugin-sdk/{config-KlTNfkFF.js → config-XjK1L039.js} +9 -9
  162. package/dist/plugin-sdk/{deliver-BZ99UKQq.js → deliver-Clj5uUID.js} +10 -10
  163. package/dist/plugin-sdk/{diagnostic-05pm5Rxi.js → diagnostic-EyuCSUXO.js} +2 -2
  164. package/dist/plugin-sdk/{image-CLOPx7yW.js → image-CAA-0T17.js} +4 -4
  165. package/dist/plugin-sdk/{image-ops-BlQR__MN.js → image-ops-Bnp6LXEx.js} +1 -1
  166. package/dist/plugin-sdk/index.js +54 -53
  167. package/dist/plugin-sdk/{ir-BJ6BHE5b.js → ir-Fb3qpcis.js} +4 -4
  168. package/dist/plugin-sdk/{local-roots-BHLNSI8U.js → local-roots-Ckk1QfzI.js} +3 -3
  169. package/dist/plugin-sdk/{login-DQMXuxOk.js → login-Btqnuww9.js} +7 -7
  170. package/dist/plugin-sdk/{login-qr-BjVZSoCi.js → login-qr-Bxhch9R1.js} +9 -9
  171. package/dist/plugin-sdk/{manager-CBSBFuFz.js → manager-CJXUXj6F.js} +8 -8
  172. package/dist/plugin-sdk/{manifest-registry-CPnHl_K3.js → manifest-registry-B3ugY9-f.js} +1 -1
  173. package/dist/plugin-sdk/{markdown-tables-BoYFajMu.js → markdown-tables-Dfaqilz6.js} +1 -1
  174. package/dist/plugin-sdk/{message-channel-COTAJzHd.js → message-channel-BdI5Ra9S.js} +1 -1
  175. package/dist/plugin-sdk/{model-selection-CsbEfrS0.js → model-selection-DduIg_Yt.js} +5 -5
  176. package/dist/plugin-sdk/{outbound-B0e8KdaR.js → outbound-D_7ktHfW.js} +7 -7
  177. package/dist/plugin-sdk/{outbound-attachment-CnslKL38.js → outbound-attachment-DJ3CI92h.js} +2 -2
  178. package/dist/plugin-sdk/{pi-auth-json-qWi7ZIYV.js → pi-auth-json-CcR0OJ6f.js} +24 -9
  179. package/dist/plugin-sdk/{pi-embedded-helpers-CW630epe.js → pi-embedded-helpers-CDrcAlGW.js} +17 -17
  180. package/dist/plugin-sdk/{plugins-BNByVCIH.js → plugins-BbAvhC25.js} +4 -4
  181. package/dist/plugin-sdk/{pw-ai-CnbPIPY9.js → pw-ai-CJjlxWj7.js} +8 -8
  182. package/dist/plugin-sdk/{qmd-manager-CH0XbIHf.js → qmd-manager-C6GM0Qik.js} +4 -4
  183. package/dist/plugin-sdk/{registry-D0xTnUWt.js → registry--_pGht6S.js} +2 -2
  184. package/dist/plugin-sdk/{replies-LLcQL3w6.js → replies-DC9NI2KS.js} +3 -3
  185. package/dist/plugin-sdk/{reply-CeoL_D-u.js → reply-CnTdwks6.js} +81 -79
  186. package/dist/plugin-sdk/{reply-prefix-uxfMZW4p.js → reply-prefix-BHuV5t70.js} +1 -1
  187. package/dist/plugin-sdk/{resolve-outbound-target-BiyAyTWz.js → resolve-outbound-target-BkCUbYGV.js} +2 -2
  188. package/dist/plugin-sdk/{resolve-route-B3CCBumQ.js → resolve-route-D3JH_D2N.js} +3 -3
  189. package/dist/plugin-sdk/{retry-CwQ_iIj8.js → retry-ilSJqnz9.js} +1 -1
  190. package/dist/plugin-sdk/{runner-CGBT7tgF.js → runner-CBq0_f-j.js} +11 -10
  191. package/dist/plugin-sdk/{send-pYqe432l.js → send-BditKDxK.js} +6 -6
  192. package/dist/plugin-sdk/{send-C5h_YxNb.js → send-BeO7M3pz.js} +7 -7
  193. package/dist/plugin-sdk/{send-CjOBB3Vo.js → send-CdJoYllr.js} +10 -10
  194. package/dist/plugin-sdk/{send-CRsR8-vO.js → send-u7SJPkmf.js} +10 -10
  195. package/dist/plugin-sdk/{send-B2CEnVLL.js → send-vTA7ntTD.js} +6 -6
  196. package/dist/plugin-sdk/{session-BsOrxiMj.js → session-t6hhaLPe.js} +4 -4
  197. package/dist/plugin-sdk/{skill-commands-ff_01_r3.js → skill-commands-D-rpF3bM.js} +5 -5
  198. package/dist/plugin-sdk/{skills-_yTP47Cd.js → skills-B1GeRYlu.js} +7 -7
  199. package/dist/plugin-sdk/{sqlite-CxAR5ttJ.js → sqlite-Cq_7Cg4E.js} +1 -1
  200. package/dist/plugin-sdk/{store-BdrNabcU.js → store-Do3t33-c.js} +2 -2
  201. package/dist/plugin-sdk/{subsystem-B2uDN3TV.js → subsystem-Coz2AgU8.js} +1 -1
  202. package/dist/plugin-sdk/{tables-DNwXwNFa.js → tables-DR0NmBeH.js} +1 -1
  203. package/dist/plugin-sdk/{target-errors-Paro1BjP.js → target-errors-B7YyMnIi.js} +2 -2
  204. package/dist/plugin-sdk/{thinking-CXqf7WTe.js → thinking-DCNUIAHY.js} +5 -5
  205. package/dist/plugin-sdk/{tokens-bC3UVmVH.js → tokens-CWMflosr.js} +1 -1
  206. package/dist/plugin-sdk/{tool-images-HJ2sfZDV.js → tool-images-D7Lno-TE.js} +2 -2
  207. package/dist/plugin-sdk/{tool-loop-detection-at_K42K7.js → tool-loop-detection-BAUvBvAO.js} +2 -2
  208. package/dist/plugin-sdk/web-BkK8fGjJ.js +66 -0
  209. package/dist/plugin-sdk/{whatsapp-actions-DfseosPO.js → whatsapp-actions-DifisvHY.js} +21 -21
  210. package/dist/{plugins-cli-DMxHIMNz.js → plugins-cli-BCYM8B89.js} +5 -4
  211. package/dist/{plugins-cli-Dcd56Auo.js → plugins-cli-D85G3qZp.js} +34 -33
  212. package/dist/{program-CK6pb4lq.js → program-DGLuU2_H.js} +10 -9
  213. package/dist/{program-context-0dr-H7wo.js → program-context-B2BcluHm.js} +40 -40
  214. package/dist/{prompt-select-styled-uYsTGG3x.js → prompt-select-styled-C9RTEKcx.js} +5 -5
  215. package/dist/{prompt-select-styled-Bi9q87ml.js → prompt-select-styled-CAKiYm_X.js} +28 -28
  216. package/dist/{provider-auth-helpers-BC24Uzzu.js → provider-auth-helpers-B8RGFZit.js} +1 -1
  217. package/dist/{provider-auth-helpers-BUorkQUD.js → provider-auth-helpers-CfkQBpo7.js} +6 -6
  218. package/dist/{push-apns-BwHZ2F7j.js → push-apns-DM6nj062.js} +1 -1
  219. package/dist/{push-apns-BQckoz9S.js → push-apns-DmpUv3y4.js} +1 -1
  220. package/dist/{pw-ai-m0mj2KWK.js → pw-ai-CPelTpWz.js} +3 -3
  221. package/dist/{pw-ai-De-KR9_s.js → pw-ai-Cfeeyp0u.js} +3 -3
  222. package/dist/{qmd-manager-iDLSiI4Z.js → qmd-manager-lBS9mT9w.js} +1 -1
  223. package/dist/{register.agent-wv_0IcpN.js → register.agent-DX-OyYzL.js} +10 -9
  224. package/dist/{register.agent-Ffw952Cm.js → register.agent-DcvwdQXs.js} +50 -49
  225. package/dist/{register.configure-BMkj8T9e.js → register.configure-Bldjj3LP.js} +59 -58
  226. package/dist/{register.configure-BTKXkVgp.js → register.configure-DBaELzEM.js} +11 -10
  227. package/dist/{register.maintenance-CRu_hm_x.js → register.maintenance-BKB_D_Py.js} +11 -10
  228. package/dist/{register.maintenance-D1xEYvHY.js → register.maintenance-BgWyvLo5.js} +52 -51
  229. package/dist/{register.message-f-91gZI8.js → register.message-ClKGIfK4.js} +30 -29
  230. package/dist/{register.message-DD5LEq6t.js → register.message-DUeR-Dz2.js} +5 -4
  231. package/dist/{register.onboard-BRTil6DH.js → register.onboard-CSmfgDU5.js} +44 -43
  232. package/dist/{register.onboard-BetMbk4D.js → register.onboard-DT1We9u2.js} +9 -8
  233. package/dist/{register.setup-DX01Qmwr.js → register.setup-CEW5ApHJ.js} +9 -8
  234. package/dist/{register.setup-C0XLhwPd.js → register.setup-mJzihfMO.js} +44 -43
  235. package/dist/{register.status-health-sessions-CMF93G-p.js → register.status-health-sessions-BJYemCHi.js} +6 -5
  236. package/dist/{register.status-health-sessions-Dqh15XbO.js → register.status-health-sessions-CMQS8zwA.js} +44 -43
  237. package/dist/{register.subclis-D_HoHaB7.js → register.subclis-Bi4jmYW6.js} +9 -9
  238. package/dist/{replies-ZYtI9jr0.js → replies-CM5QgPHM.js} +1 -1
  239. package/dist/{replies-LSmuwOhA.js → replies-DA4YTv9G.js} +3 -3
  240. package/dist/{reply-CMb-m0ZJ.js → reply-YphHjxHp.js} +46 -44
  241. package/dist/{routes-Ba9CUQ8M.js → routes-B1-BfEDm.js} +1 -1
  242. package/dist/{rpc-_E0CZJKf.js → rpc-gJOYujMj.js} +1 -1
  243. package/dist/{run-main-e6LI0zRf.js → run-main-Ugk40lFF.js} +17 -16
  244. package/dist/{runner-BORIO-D3.js → runner-CW9KEL7W.js} +1 -1
  245. package/dist/{runner-CU9l0uJh.js → runner-DKq2NJqT.js} +10 -9
  246. package/dist/{runner-BSzJIT-z.js → runner-DmM2HhB-.js} +2 -2
  247. package/dist/{runner-DUBExAb5.js → runner-qeYibveF.js} +7 -6
  248. package/dist/{sandbox-C-T6hOMv.js → sandbox-DAOxwUQm.js} +2 -2
  249. package/dist/{sandbox-cli-BllVdQzR.js → sandbox-cli-BV6FS0bK.js} +3 -3
  250. package/dist/{security-cli-BSZ1_9R3.js → security-cli-BA4AGkeh.js} +8 -8
  251. package/dist/{send-C1IYd3g7.js → send-BJTX03Bn.js} +1 -1
  252. package/dist/{send-DAN9hA5h.js → send-C4Bqsa_r.js} +6 -6
  253. package/dist/{send-DXW6mdgR.js → send-CB3dCCmE.js} +1 -1
  254. package/dist/{send-D-hWrHoH.js → send-CFzf_ab4.js} +1 -1
  255. package/dist/{send-DkfYiRx5.js → send-Cgcbuw8U.js} +1 -1
  256. package/dist/{send-CvhXrdgS.js → send-Cq1L-2Ik.js} +9 -9
  257. package/dist/{send-C4Ucr8ep.js → send-DHWMRnPk.js} +3 -3
  258. package/dist/{send-DYj_o4_F.js → send-DVt9RLDh.js} +9 -9
  259. package/dist/{send-CVMyYPQw.js → send-DX0p0ym_.js} +5 -5
  260. package/dist/{send-DWYkPSUs.js → send-ZI2bG_Jc.js} +1 -1
  261. package/dist/{send-BArQpbtx.js → send-iVPD3yf2.js} +1 -1
  262. package/dist/{send-CQAKg_12.js → send-vtz9ZwUj.js} +4 -4
  263. package/dist/{server-context-CEpFjqSk.js → server-context-CHYWo_TC.js} +3 -3
  264. package/dist/{server-methods-CZJHMB_M.js → server-methods-C3xXynlm.js} +7 -7
  265. package/dist/{server-methods-D5X0JrXg.js → server-methods-DJ3Bi-Xg.js} +25 -25
  266. package/dist/{server-node-events-BpNyybGF.js → server-node-events-Cgdwex4k.js} +5 -4
  267. package/dist/{server-node-events-Cu_8g2ws.js → server-node-events-DS50d7AK.js} +28 -27
  268. package/dist/{service-Cl74hx8J.js → service-osK70kTZ.js} +2 -2
  269. package/dist/{session-DtMfLMdP.js → session-BF9s_N2s.js} +1 -1
  270. package/dist/{session-DSU1vxxi.js → session-BQWef058.js} +1 -1
  271. package/dist/{session-cost-usage-UxUgrslM.js → session-cost-usage-BXAI7CNH.js} +1 -1
  272. package/dist/session-dirs-Dgz7kkUM.js +18 -0
  273. package/dist/{shared-BJvwnR5z.js → shared-DnmJ0ABB.js} +2 -2
  274. package/dist/{skill-commands-DcVwOafC.js → skill-commands-BiPrghRt.js} +1 -1
  275. package/dist/{skill-commands-DklY7Cj7.js → skill-commands-D8RiKDh0.js} +1 -1
  276. package/dist/{skills-cli-BZTBLQTt.js → skills-cli-C-URp1av.js} +5 -5
  277. package/dist/{skills-install-D67isO1L.js → skills-install-CWVdJkLn.js} +4 -4
  278. package/dist/{skills-status-CURJKnyY.js → skills-status-C3ptXwnh.js} +1 -1
  279. package/dist/{status-CXib3MSE.js → status-0aNBSe72.js} +16 -16
  280. package/dist/{status-iJUy8byq.js → status-2KD2q2sn.js} +1 -1
  281. package/dist/{status-C2iQbl7T.js → status-BBnhTX-n.js} +1 -1
  282. package/dist/{status-CL1xQrpW.js → status-D9uWA9pU.js} +2 -2
  283. package/dist/{status.update-DtwCUTf-.js → status.update-DP0OFqyb.js} +1 -1
  284. package/dist/{subagent-registry-Cdiios3w.js → subagent-registry-aZczbtLM.js} +8 -6
  285. package/dist/{system-cli-C4A3Udil.js → system-cli-BXewgTZR.js} +3 -112
  286. package/dist/system-run-command-B_qw8CXP.js +93 -0
  287. package/dist/{systemd-riq8uNJQ.js → systemd-DT6SbCim.js} +1 -1
  288. package/dist/{systemd-hints-BR6gChwm.js → systemd-hints-DZH9qY5W.js} +4 -4
  289. package/dist/{systemd-linger-aQ75ZlXY.js → systemd-linger-DCskIKcx.js} +2 -2
  290. package/dist/{tables-qMwbq29u.js → tables-BuM4FKR3.js} +2 -2
  291. package/dist/{tui-D14a9N3F.js → tui-DLaU7tTx.js} +2 -2
  292. package/dist/{tui-cli-Bg4YuRSd.js → tui-cli-D-PVUsS5.js} +6 -6
  293. package/dist/{unified-runner-dSVvVx1y.js → unified-runner-CMgTwCmG.js} +74 -72
  294. package/dist/{update-rw7wJwHd.js → update-Ya0e-JnM.js} +1 -1
  295. package/dist/{update-check-CtckACbb.js → update-check-7EzEjSzb.js} +1 -1
  296. package/dist/{update-cli-B5q0ErXF.js → update-cli-DiH9ccFa.js} +11 -10
  297. package/dist/{update-cli-CSWxJ-hA.js → update-cli-Dup4Xi6b.js} +62 -61
  298. package/dist/{update-runner-jvpPI7iP.js → update-runner-BkdQhkKR.js} +1 -1
  299. package/dist/{update-runner-BB5A0jnW.js → update-runner-dT5l0kuK.js} +3 -3
  300. package/dist/{web-DDmkA8-N.js → web-BIo1QcLd.js} +42 -41
  301. package/dist/{web-BuHFfZp7.js → web-BrGvZQ21.js} +24 -23
  302. package/dist/{web-DsdmLxAP.js → web-CJSRBiDm.js} +31 -30
  303. package/dist/{web-BsEbA9Ur.js → web-DPki9fDa.js} +4 -3
  304. package/dist/{webhooks-cli-cD58DWAE.js → webhooks-cli-iOLEyFdx.js} +1 -1
  305. package/dist/{whatsapp-actions-DvhI5-DC.js → whatsapp-actions-BW8P8Izy.js} +3 -3
  306. package/dist/{whatsapp-actions-DbcsdOH3.js → whatsapp-actions-BmcMtU_J.js} +1 -1
  307. package/dist/{whatsapp-actions-BIeSWsCF.js → whatsapp-actions-DZfLLQ0Y.js} +10 -10
  308. package/dist/{with-timeout-gmK6RciS.js → with-timeout-D2z7OkiK.js} +1 -1
  309. package/extensions/bluebubbles/package.json +1 -1
  310. package/extensions/copilot-proxy/package.json +1 -1
  311. package/extensions/diagnostics-otel/package.json +1 -1
  312. package/extensions/discord/package.json +1 -1
  313. package/extensions/feishu/package.json +1 -1
  314. package/extensions/google-antigravity-auth/package.json +1 -1
  315. package/extensions/google-gemini-cli-auth/package.json +1 -1
  316. package/extensions/googlechat/package.json +1 -1
  317. package/extensions/imessage/package.json +1 -1
  318. package/extensions/irc/package.json +1 -1
  319. package/extensions/learning-loop/package.json +1 -1
  320. package/extensions/line/package.json +1 -1
  321. package/extensions/llm-task/package.json +1 -1
  322. package/extensions/matrix/CHANGELOG.md +6 -0
  323. package/extensions/matrix/package.json +1 -1
  324. package/extensions/mattermost/package.json +1 -1
  325. package/extensions/memory-core/package.json +1 -1
  326. package/extensions/memory-lancedb/package.json +1 -1
  327. package/extensions/minimax-portal-auth/package.json +1 -1
  328. package/extensions/msteams/CHANGELOG.md +6 -0
  329. package/extensions/msteams/package.json +1 -1
  330. package/extensions/nextcloud-talk/package.json +1 -1
  331. package/extensions/nostr/CHANGELOG.md +6 -0
  332. package/extensions/nostr/package.json +1 -1
  333. package/extensions/open-prose/package.json +1 -1
  334. package/extensions/outlook/package.json +1 -1
  335. package/extensions/pipeline/package.json +1 -1
  336. package/extensions/signal/package.json +1 -1
  337. package/extensions/slack/package.json +1 -1
  338. package/extensions/telegram/package.json +1 -1
  339. package/extensions/tlon/package.json +1 -1
  340. package/extensions/twitch/CHANGELOG.md +6 -0
  341. package/extensions/twitch/package.json +1 -1
  342. package/extensions/voice-call/CHANGELOG.md +6 -0
  343. package/extensions/voice-call/package.json +1 -1
  344. package/extensions/whatsapp/package.json +1 -1
  345. package/extensions/zalo/CHANGELOG.md +6 -0
  346. package/extensions/zalo/package.json +1 -1
  347. package/extensions/zalouser/CHANGELOG.md +6 -0
  348. package/extensions/zalouser/package.json +1 -1
  349. package/package.json +1 -1
  350. package/dist/pi-auth-json-DhTX6MBO.js +0 -13
  351. package/dist/plugin-sdk/web-qmzvsQZn.js +0 -65
  352. /package/dist/{active-listener-CfHHV2SU.js → active-listener-Br2FcRv7.js} +0 -0
  353. /package/dist/{active-listener-1krIj9TM.js → active-listener-Dx_Y1ouV.js} +0 -0
  354. /package/dist/{active-listener-kvXhlgwu.js → active-listener-SKkHHqlN.js} +0 -0
  355. /package/dist/{allow-from-BZCKLkjL.js → allow-from-BIJVrwCW.js} +0 -0
  356. /package/dist/{argv-C6ovOie2.js → argv-B20UI_hB.js} +0 -0
  357. /package/dist/{auth-choice-legacy-Ch38-Kbr.js → auth-choice-legacy-aJ8D6F_s.js} +0 -0
  358. /package/dist/{auth-token-BnOynwk4.js → auth-token-Cay2jwzn.js} +0 -0
  359. /package/dist/{brew-DjNEjKAo.js → brew-DZPKCJr0.js} +0 -0
  360. /package/dist/{catalog-RiADx7MA.js → catalog-NQ4pj9RI.js} +0 -0
  361. /package/dist/{channel-selection-DuWs0Aak.js → channel-selection-V2xDgw16.js} +0 -0
  362. /package/dist/{channels-status-issues-B_kBkl_u.js → channels-status-issues-CJ0Vb_9z.js} +0 -0
  363. /package/dist/{chunk-09egQapi.js → chunk-BHW8Yu5A.js} +0 -0
  364. /package/dist/{clipboard-Cg3cin13.js → clipboard-BIyDbnnI.js} +0 -0
  365. /package/dist/{command-options-BtDai3oC.js → command-options-BkTXKWlb.js} +0 -0
  366. /package/dist/{command-poll-backoff-BiwOFDEK.js → command-poll-backoff-BGS2SHjF.js} +0 -0
  367. /package/dist/{command-poll-backoff-Bup9wS1y.js → command-poll-backoff-CaTOIqVn.js} +0 -0
  368. /package/dist/{config-ClSsetRi.js → config-DmMe1tf9.js} +0 -0
  369. /package/dist/{config-validation-CmimHAES.js → config-validation-BckiR0w9.js} +0 -0
  370. /package/dist/{constants-C8_BLnaW.js → constants-CafH8-8D.js} +0 -0
  371. /package/dist/{control-ui-assets-Z947tKLt.js → control-ui-assets-B7moDVHX.js} +0 -0
  372. /package/dist/{dangerous-tools-BL-M3lPt.js → dangerous-tools-BvU3-DRl.js} +0 -0
  373. /package/dist/{delivery-queue-CxuV9EeG.js → delivery-queue-CAxX6nGq.js} +0 -0
  374. /package/dist/{dm-policy-shared-Bh3TbexU.js → dm-policy-shared-DlDAGtZL.js} +0 -0
  375. /package/dist/{docs-cli-BpnEOtJi.js → docs-cli-qE-blOLC.js} +0 -0
  376. /package/dist/{entry-status-CAs6m3_l.js → entry-status-BOOmFr_b.js} +0 -0
  377. /package/dist/{exec-approvals-Kn31mBcW.js → exec-approvals-DXM2pQYL.js} +0 -0
  378. /package/dist/{fetch-timeout-DL3f_O53.js → fetch-timeout-Cj6kcyGt.js} +0 -0
  379. /package/dist/{format-yQZNwAF2.js → format-B0yJsjEo.js} +0 -0
  380. /package/dist/{gateway-rpc-5aGm8LwU.js → gateway-rpc-DiTk_nOl.js} +0 -0
  381. /package/dist/{gmail-setup-utils-Bv0M7ka7.js → gmail-setup-utils-Dq6vwkWW.js} +0 -0
  382. /package/dist/{health-format-DSwnXZPU.js → health-format-DRCaak6L.js} +0 -0
  383. /package/dist/{heartbeat-visibility-U4BL57eQ.js → heartbeat-visibility-ChEo5Zvk.js} +0 -0
  384. /package/dist/{helpers-By2rxBQ5.js → helpers-BtH6pa6c.js} +0 -0
  385. /package/dist/{helpers-BcGbMZD1.js → helpers-DnjQ73f_.js} +0 -0
  386. /package/dist/{inbound-context-DSDTl6Kj.js → inbound-context-Dvqh1Tgb.js} +0 -0
  387. /package/dist/{ipv4-CxY-xbsH.js → ipv4-CjlyK5jc.js} +0 -0
  388. /package/dist/{is-main-DrpmTCqv.js → is-main-CmNWsNFB.js} +0 -0
  389. /package/dist/{logging-BzzwiKjv.js → logging-KpicI3yD.js} +0 -0
  390. /package/dist/{markdown-tables-C-BmIap8.js → markdown-tables-Dnj2LQUc.js} +0 -0
  391. /package/dist/{model-param-b-BCRDjJEJ.js → model-param-b-Cp9d4e-0.js} +0 -0
  392. /package/dist/{node-match-CN8o4Vi3.js → node-match-CdUiymRU.js} +0 -0
  393. /package/dist/{nodes-screen-VBGXKdLk.js → nodes-screen-8Bq7DiSa.js} +0 -0
  394. /package/dist/{onboard-config-DPPsiC8t.js → onboard-config-B9jTl83d.js} +0 -0
  395. /package/dist/{outbound-attachment-mQQiYZ3C.js → outbound-attachment-Bw-c5Cdp.js} +0 -0
  396. /package/dist/{pairing-labels-2S6x2UoV.js → pairing-labels-DyXoD1DS.js} +0 -0
  397. /package/dist/{parse-log-line-BHCUQaF3.js → parse-log-line-DvYyTYq4.js} +0 -0
  398. /package/dist/{parse-port-Vm8F7Kus.js → parse-port-DnJYkByg.js} +0 -0
  399. /package/dist/{parse-timeout-C385GCpE.js → parse-timeout-2S5vp0-9.js} +0 -0
  400. /package/dist/{path-safety-BqPJ8DDQ.js → path-safety-D55Cxg8r.js} +0 -0
  401. /package/dist/{pi-model-discovery-Bv5YDJc8.js → pi-model-discovery-CuZX_Q4t.js} +0 -0
  402. /package/dist/plugin-sdk/{command-poll-backoff-CBq0jVRw.js → command-poll-backoff-Bug27PHS.js} +0 -0
  403. /package/dist/{plugins-allowlist-sArtGE-d.js → plugins-allowlist-BjKJrQ0e.js} +0 -0
  404. /package/dist/{polls-CCuCaqgv.js → polls-BKbIUHj7.js} +0 -0
  405. /package/dist/{ports-BX0kKI0g.js → ports-DtW62rqS.js} +0 -0
  406. /package/dist/{prompt-style-8JqOYj0q.js → prompt-style-CnkMpSXt.js} +0 -0
  407. /package/dist/{prompts-Xu2Sveka.js → prompts-CfOu9uZi.js} +0 -0
  408. /package/dist/{proxy-BaSHbVlA.js → proxy-CLEew2L6.js} +0 -0
  409. /package/dist/{proxy-CBJ1upuz.js → proxy-DVy9foH0.js} +0 -0
  410. /package/dist/{pw-ai-DqL87js3.js → pw-ai-C_1hRlOM.js} +0 -0
  411. /package/dist/{qmd-manager-D85GJrir.js → qmd-manager-CCUK1xoc.js} +0 -0
  412. /package/dist/{qmd-manager-Bx06p6nk.js → qmd-manager-qpFs_a6u.js} +0 -0
  413. /package/dist/{qr-cli-jd9LdZpq.js → qr-cli-9L-HExyH.js} +0 -0
  414. /package/dist/{render-CDCvpfhh.js → render-DwEu-aCr.js} +0 -0
  415. /package/dist/{reply-prefix-DpqZu44Z.js → reply-prefix-CvEIl6_d.js} +0 -0
  416. /package/dist/{resolve-route-C4_I4GFI.js → resolve-route-DX7xcMsD.js} +0 -0
  417. /package/dist/{retry-BBVXkKBV.js → retry-B-y5suGA.js} +0 -0
  418. /package/dist/{runtime-guard-B37eizu-.js → runtime-guard-Dik20CVM.js} +0 -0
  419. /package/dist/{runtime-status-CR9445g5.js → runtime-status-D6c3G7my.js} +0 -0
  420. /package/dist/{session-DIBTkyvE.js → session-CINKYYDi.js} +0 -0
  421. /package/dist/{shared-Knv1hy6h.js → shared-CvNixzwn.js} +0 -0
  422. /package/dist/{skill-scanner-CLs8u6vQ.js → skill-scanner-hMtQbWPV.js} +0 -0
  423. /package/dist/{sqlite-D_mz1_-y.js → sqlite-BHWvOATS.js} +0 -0
  424. /package/dist/{stagger-BUClb97_.js → stagger-CvFURHzt.js} +0 -0
  425. /package/dist/{status-BrV-afZE.js → status-klsFDD3M.js} +0 -0
  426. /package/dist/{table-BTgkRafz.js → table-BKlH0YlA.js} +0 -0
  427. /package/dist/{target-errors-Bbr9rlzN.js → target-errors-BEugWC4F.js} +0 -0
  428. /package/dist/{tokens-Bux9Y_xD.js → tokens-W0JzCJJM.js} +0 -0
  429. /package/dist/{tool-loop-detection-DR_rrIA1.js → tool-loop-detection-D5mBY7AC.js} +0 -0
  430. /package/dist/{tool-loop-detection-DPVtQOfM.js → tool-loop-detection-DZQMPDma.js} +0 -0
  431. /package/dist/{tool-loop-detection-C7TCF2V2.js → tool-loop-detection-Dd4SFWb1.js} +0 -0
  432. /package/dist/{usage-format-BzKEDn0q.js → usage-format-BgUx3Bm4.js} +0 -0
  433. /package/dist/{widearea-dns-DzLerlJb.js → widearea-dns-CyVOLgNE.js} +0 -0
  434. /package/dist/{workspace-CYxdoAlY.js → workspace-B4H-2N8y.js} +0 -0
  435. /package/dist/{wsl-C4424szg.js → wsl-q8spwrME.js} +0 -0
@@ -0,0 +1,133 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
+ import { At as ensureAuthProfileStore, l as normalizeProviderId, zt as normalizeOptionalSecretInput } from "./model-selection-CyFvYcRt.js";
3
+ import path from "node:path";
4
+ import fs from "node:fs/promises";
5
+
6
+ //#region src/agents/pi-auth-json.ts
7
+ var pi_auth_json_exports = /* @__PURE__ */ __exportAll({ ensurePiAuthJsonFromAuthProfiles: () => ensurePiAuthJsonFromAuthProfiles });
8
+ async function readAuthJson(filePath) {
9
+ try {
10
+ const raw = await fs.readFile(filePath, "utf8");
11
+ const parsed = JSON.parse(raw);
12
+ if (!parsed || typeof parsed !== "object") return {};
13
+ return parsed;
14
+ } catch {
15
+ return {};
16
+ }
17
+ }
18
+ /**
19
+ * Convert an Symi auth-profiles credential to pi-coding-agent auth.json format.
20
+ * Returns null if the credential cannot be converted.
21
+ */
22
+ function convertCredential(cred) {
23
+ if (cred.type === "api_key") {
24
+ const key = typeof cred.key === "string" ? cred.key.trim() : "";
25
+ if (!key) return null;
26
+ return {
27
+ type: "api_key",
28
+ key
29
+ };
30
+ }
31
+ if (cred.type === "token") {
32
+ const token = typeof cred.token === "string" ? cred.token.trim() : "";
33
+ if (!token) return null;
34
+ const expires = typeof cred.expires === "number" ? cred.expires : NaN;
35
+ if (Number.isFinite(expires) && expires > 0 && Date.now() >= expires) return null;
36
+ return {
37
+ type: "api_key",
38
+ key: token
39
+ };
40
+ }
41
+ if (cred.type === "oauth") {
42
+ const accessRaw = cred.access;
43
+ const refreshRaw = cred.refresh;
44
+ const expiresRaw = cred.expires;
45
+ const access = typeof accessRaw === "string" ? accessRaw.trim() : "";
46
+ const refresh = typeof refreshRaw === "string" ? refreshRaw.trim() : "";
47
+ const expires = typeof expiresRaw === "number" ? expiresRaw : NaN;
48
+ if (!access || !refresh || !Number.isFinite(expires) || expires <= 0) return null;
49
+ return {
50
+ type: "oauth",
51
+ access,
52
+ refresh,
53
+ expires
54
+ };
55
+ }
56
+ return null;
57
+ }
58
+ /**
59
+ * Check if two auth.json credentials are equivalent.
60
+ */
61
+ function credentialsEqual(a, b) {
62
+ if (!a || typeof a !== "object") return false;
63
+ if (a.type !== b.type) return false;
64
+ if (a.type === "api_key" && b.type === "api_key") return a.key === b.key;
65
+ if (a.type === "oauth" && b.type === "oauth") return a.access === b.access && a.refresh === b.refresh && a.expires === b.expires;
66
+ return false;
67
+ }
68
+ /**
69
+ * pi-coding-agent's ModelRegistry/AuthStorage expects credentials in auth.json.
70
+ *
71
+ * Symi stores credentials in auth-profiles.json instead. This helper
72
+ * bridges all credentials into agentDir/auth.json so pi-coding-agent can
73
+ * (a) consider providers authenticated and (b) include built-in models in its
74
+ * registry/catalog output.
75
+ *
76
+ * Syncs all credential types: api_key, token (as api_key), and oauth.
77
+ *
78
+ * When a SymiConfig is supplied via options.config, any provider in
79
+ * config.models.providers that declares an inline apiKey is also seeded into
80
+ * auth.json (for providers not already covered by an auth-profile). This is
81
+ * required for user-defined OpenAI-compatible endpoints (e.g. CoreWeave vLLM
82
+ * with apiKey: "none"): without an auth.json entry, pi-coding-agent's
83
+ * AuthStorage treats the provider as unauthenticated and the SDK fails with
84
+ * "Connection error" before any HTTP request is made.
85
+ */
86
+ async function ensurePiAuthJsonFromAuthProfiles(agentDir, options) {
87
+ const store = ensureAuthProfileStore(agentDir, { allowKeychainPrompt: false });
88
+ const authPath = path.join(agentDir, "auth.json");
89
+ const providerCredentials = /* @__PURE__ */ new Map();
90
+ for (const [, cred] of Object.entries(store.profiles)) {
91
+ const provider = normalizeProviderId(String(cred.provider ?? "")).trim();
92
+ if (!provider || providerCredentials.has(provider)) continue;
93
+ const converted = convertCredential(cred);
94
+ if (converted) providerCredentials.set(provider, converted);
95
+ }
96
+ const inlineProviders = options?.config?.models?.providers;
97
+ if (inlineProviders) for (const [providerKey, providerCfg] of Object.entries(inlineProviders)) {
98
+ const provider = normalizeProviderId(String(providerKey ?? "")).trim();
99
+ if (!provider || providerCredentials.has(provider)) continue;
100
+ const inlineKey = normalizeOptionalSecretInput(providerCfg?.apiKey);
101
+ if (!inlineKey) continue;
102
+ providerCredentials.set(provider, {
103
+ type: "api_key",
104
+ key: inlineKey
105
+ });
106
+ }
107
+ if (providerCredentials.size === 0) return {
108
+ wrote: false,
109
+ authPath
110
+ };
111
+ const existing = await readAuthJson(authPath);
112
+ let changed = false;
113
+ for (const [provider, cred] of providerCredentials) if (!credentialsEqual(existing[provider], cred)) {
114
+ existing[provider] = cred;
115
+ changed = true;
116
+ }
117
+ if (!changed) return {
118
+ wrote: false,
119
+ authPath
120
+ };
121
+ await fs.mkdir(agentDir, {
122
+ recursive: true,
123
+ mode: 448
124
+ });
125
+ await fs.writeFile(authPath, `${JSON.stringify(existing, null, 2)}\n`, { mode: 384 });
126
+ return {
127
+ wrote: true,
128
+ authPath
129
+ };
130
+ }
131
+
132
+ //#endregion
133
+ export { pi_auth_json_exports as n, ensurePiAuthJsonFromAuthProfiles as t };
@@ -4,7 +4,7 @@ import { _ as isCronSessionKey, b as resolveThreadParentSessionKey, c as normali
4
4
  import { $ as isRich, A as normalizeE164, D as isRecord$1, E as formatTerminalLink, H as isPlainObject, I as shortenHomeInString, J as setVerbose, K as logVerbose, L as shortenHomePath, P as resolveUserPath, Q as colorize, R as sleep$1, S as clampInt, T as escapeRegExp, U as danger, V as truncateUtf16Safe, Y as shouldLogVerbose, Z as warn, _ as matchPluginCommand, a as normalizeAnyChannelId, b as CONFIG_DIR, d as createPluginRegistry, et as theme, f as normalizePluginHttpPath, g as listPluginCommands, h as getPluginCommandSpecs, l as requireActivePluginRegistry, lt as resolvePreferredSymiTmpDir, m as executePluginCommand, n as CHAT_CHANNEL_ORDER, o as normalizeChannelId, p as clearPluginCommands, r as DEFAULT_CHAT_CHANNEL, st as normalizeLogLevel, tt as getChildLogger, u as setActivePluginRegistry, v as createInternalHookEvent, w as ensureDir$3, y as triggerInternalHook, z as sliceUtf16Safe } from "./registry-BhoUuugi.js";
5
5
  import { A as logInfo, C as resolveSymiPackageRoot, D as spawnWithFallback, E as runExec, O as logDebug, S as loadWorkspaceBootstrapFiles, T as runCommandWithTimeout, a as resolveAgentModelPrimary, b as ensureAgentWorkspace, c as resolveDefaultAgentId, d as resolveSessionAgentIds, h as DEFAULT_IDENTITY_FILENAME, i as resolveAgentModelFallbacksOverride, j as logWarn, k as logError, l as resolveEffectiveModelFallbacks, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_AGENT_WORKSPACE_DIR, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentId, x as filterBootstrapFilesForSession } from "./agent-scope-Cbl5pNe1.js";
6
6
  import { a as registerActiveProgressLine, i as clearActiveProgressLine, n as createNonExitingRuntime, o as unregisterActiveProgressLine, r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-CZixfwU8.js";
7
- import { $ as DEFAULT_PROVIDER, A as resolveShellEnvFallbackTimeoutMs, B as dedupeProfileIds, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as getSoonestCooldownExpiry, G as resolveSymiAgentDir, H as markAuthProfileGood, I as isProfileInCooldown, K as withFileLock, L as markAuthProfileFailure, O as getShellPathFromLoginShell, P as resolveAuthProfileOrder, Q as DEFAULT_MODEL, R as markAuthProfileUsed, S as getApiKeyForModel, T as resolveApiKeyForProvider, U as ensureAuthProfileStore, V as listProfilesForProvider, W as resolveAuthStorePathForDisplay, X as resolveAuthProfileDisplayLabel, Y as normalizeSecretInput, Z as DEFAULT_CONTEXT_TOKENS, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, i as findNormalizedProviderValue, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveApiKeyForProfile } from "./model-selection-BQCG9ah0.js";
7
+ import { $ as DEFAULT_MODEL, A as resolveShellEnvFallbackTimeoutMs, B as dedupeProfileIds, C as getCustomProviderApiKey, D as resolveModelAuthMode, E as resolveEnvApiKey, F as getSoonestCooldownExpiry, G as resolveSymiAgentDir, H as markAuthProfileGood, I as isProfileInCooldown, K as withFileLock, L as markAuthProfileFailure, O as getShellPathFromLoginShell, P as resolveAuthProfileOrder, Q as DEFAULT_CONTEXT_TOKENS, R as markAuthProfileUsed, S as getApiKeyForModel, T as resolveApiKeyForProvider, U as ensureAuthProfileStore, V as listProfilesForProvider, W as resolveAuthStorePathForDisplay, X as normalizeSecretInput, Z as resolveAuthProfileDisplayLabel, a as isCliProvider, b as OLLAMA_NATIVE_BASE_URL, c as normalizeProviderId, d as resolveDefaultModelForAgent, et as DEFAULT_PROVIDER, f as resolveModelRefFromString, i as findNormalizedProviderValue, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, r as buildModelAliasIndex, s as normalizeModelRef$2, t as buildAllowedModelSet, u as resolveConfiguredModelRef, w as requireApiKey, x as createOllamaStreamFn, z as resolveApiKeyForProfile } from "./model-selection-B8QKPmTL.js";
8
8
  import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-K_J_nfgx.js";
9
9
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-BbsJ0Qbo.js";
10
10
  import { i as resolveCliName, n as parseBooleanValue$1, r as formatCliCommand, t as isTruthyEnvValue } from "./env-CQ_DQOwT.js";
@@ -12,20 +12,20 @@ import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY
12
12
  import { _ as resolveDiscordAccount, a as normalizeWhatsAppTarget, c as listTelegramAccountIds, d as resolveSlackAccount, g as listEnabledDiscordAccounts, h as createDiscordActionGate, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackBotToken, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAppToken, r as normalizeChannelId$1, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeDiscordToken } from "./plugins-71oIavrF.js";
13
13
  import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExists, r as getWebAuthAgeMs, t as resolveWhatsAppAccount } from "./accounts-DDEyGwby.js";
14
14
  import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
15
- import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-D-hWrHoH.js";
16
- import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-C1IYd3g7.js";
17
- import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-BH0l3UKW.js";
15
+ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-CFzf_ab4.js";
16
+ import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-BJTX03Bn.js";
17
+ import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-BCYGr-CD.js";
18
18
  import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-D0xmLpej.js";
19
19
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-C1vRJs5w.js";
20
20
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-8zZqL37v.js";
21
- import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-C4Ucr8ep.js";
21
+ import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-DHWMRnPk.js";
22
22
  import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-ByaQt43P.js";
23
23
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
24
24
  import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-BQINJQIT.js";
25
- import { $ as mergeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-lgx_U5KS.js";
26
- import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-BmV60pPT.js";
25
+ import { $ as mergeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-CepVOR4e.js";
26
+ import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-DBqxAhpU.js";
27
27
  import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-D-mTF1cj.js";
28
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-CDJYxX5a.js";
28
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-CovpMGdO.js";
29
29
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-BNpGMnp-.js";
30
30
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-CPfngF0S.js";
31
31
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
@@ -36,8 +36,8 @@ import { t as resolveIMessageAccount } from "./accounts-DImOt9jX.js";
36
36
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-DkMamAQ-.js";
37
37
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
38
38
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-ChC2CXaN.js";
39
- import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-CHzdaNJ4.js";
40
- import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-jpn5vRTY.js";
39
+ import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-DKudhySz.js";
40
+ import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-CgLdpXXM.js";
41
41
  import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-BNh23mUR.js";
42
42
  import { n as retryAsync } from "./retry-QGp0jvVi.js";
43
43
  import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-BbOqxMY0.js";
@@ -46,21 +46,22 @@ import { n as resolveMarkdownTableMode } from "./markdown-tables-DawaaZEe.js";
46
46
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-BheTNyes.js";
47
47
  import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-CC8jiKDk.js";
48
48
  import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-F0moAwIl.js";
49
- import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-C_aYUwpl.js";
50
- import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-DklY7Cj7.js";
49
+ import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-DYoNKo_h.js";
50
+ import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-D8RiKDh0.js";
51
51
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-QOi5vzUt.js";
52
- import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-DUBExAb5.js";
52
+ import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-qeYibveF.js";
53
53
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DtLn7YU3.js";
54
54
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-DtXYsHEc.js";
55
55
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-D9q-fIPB.js";
56
56
  import { n as normalizePollInput } from "./polls-DQcEziPg.js";
57
57
  import { t as convertMarkdownTables } from "./tables-COnZ169v.js";
58
- import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-DXW6mdgR.js";
59
- import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-BArQpbtx.js";
58
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-CB3dCCmE.js";
59
+ import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-iVPD3yf2.js";
60
60
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-We7ViAbg.js";
61
- import { t as makeProxyFetch } from "./proxy-BaSHbVlA.js";
62
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-ZYtI9jr0.js";
63
- import { t as getActiveWebListener } from "./active-listener-1krIj9TM.js";
61
+ import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-BloyLEwh.js";
62
+ import { t as makeProxyFetch } from "./proxy-CLEew2L6.js";
63
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-CM5QgPHM.js";
64
+ import { t as getActiveWebListener } from "./active-listener-Dx_Y1ouV.js";
64
65
  import { createRequire } from "node:module";
65
66
  import * as path$1 from "node:path";
66
67
  import path from "node:path";
@@ -79,7 +80,7 @@ import { EdgeTTS } from "node-edge-tts";
79
80
  import AjvPkg from "ajv";
80
81
  import { createServer } from "node:http";
81
82
  import { ProxyAgent, fetch as fetch$1 } from "undici";
82
- import WebSocket$1, { WebSocket } from "ws";
83
+ import WebSocket, { WebSocket as WebSocket$1 } from "ws";
83
84
  import { Buffer as Buffer$1 } from "node:buffer";
84
85
  import { createJiti } from "jiti";
85
86
  import { Type } from "@sinclair/typebox";
@@ -3460,7 +3461,7 @@ async function getMemorySearchManager(params) {
3460
3461
  if (cached) return { manager: cached };
3461
3462
  }
3462
3463
  try {
3463
- const { QmdMemoryManager } = await import("./qmd-manager-Bx06p6nk.js");
3464
+ const { QmdMemoryManager } = await import("./qmd-manager-qpFs_a6u.js");
3464
3465
  const primary = await QmdMemoryManager.create({
3465
3466
  cfg: params.cfg,
3466
3467
  agentId: params.agentId,
@@ -3472,7 +3473,7 @@ async function getMemorySearchManager(params) {
3472
3473
  const wrapper = new FallbackMemoryManager({
3473
3474
  primary,
3474
3475
  fallbackFactory: async () => {
3475
- const { MemoryIndexManager } = await import("./manager-jpn5vRTY.js").then((n) => n.t);
3476
+ const { MemoryIndexManager } = await import("./manager-CgLdpXXM.js").then((n) => n.t);
3476
3477
  return await MemoryIndexManager.get(params);
3477
3478
  }
3478
3479
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -3485,7 +3486,7 @@ async function getMemorySearchManager(params) {
3485
3486
  }
3486
3487
  }
3487
3488
  try {
3488
- const { MemoryIndexManager } = await import("./manager-jpn5vRTY.js").then((n) => n.t);
3489
+ const { MemoryIndexManager } = await import("./manager-CgLdpXXM.js").then((n) => n.t);
3489
3490
  return { manager: await MemoryIndexManager.get(params) };
3490
3491
  } catch (err) {
3491
3492
  return {
@@ -5719,7 +5720,7 @@ var GatewayClient = class {
5719
5720
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
5720
5721
  });
5721
5722
  }
5722
- this.ws = new WebSocket(url, wsOptions);
5723
+ this.ws = new WebSocket$1(url, wsOptions);
5723
5724
  this.ws.on("open", () => {
5724
5725
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
5725
5726
  const tlsError = this.validateTlsFingerprint();
@@ -5938,7 +5939,7 @@ var GatewayClient = class {
5938
5939
  return null;
5939
5940
  }
5940
5941
  async request(method, params, opts) {
5941
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
5942
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
5942
5943
  const id = randomUUID();
5943
5944
  const frame = {
5944
5945
  type: "req",
@@ -7204,7 +7205,7 @@ async function routeReply(params) {
7204
7205
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
7205
7206
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
7206
7207
  try {
7207
- const { deliverOutboundPayloads } = await import("./deliver-BH0l3UKW.js").then((n) => n.n);
7208
+ const { deliverOutboundPayloads } = await import("./deliver-BCYGr-CD.js").then((n) => n.n);
7208
7209
  return {
7209
7210
  ok: true,
7210
7211
  messageId: (await deliverOutboundPayloads({
@@ -12659,7 +12660,7 @@ async function createModelSelectionState(params) {
12659
12660
  }
12660
12661
  }
12661
12662
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
12662
- const { ensureAuthProfileStore } = await import("./model-selection-BQCG9ah0.js").then((n) => n.N);
12663
+ const { ensureAuthProfileStore } = await import("./model-selection-B8QKPmTL.js").then((n) => n.N);
12663
12664
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
12664
12665
  const providerKey = normalizeProviderId(provider);
12665
12666
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -42042,7 +42043,7 @@ async function recordLoopOutcome(args) {
42042
42043
  if (!args.ctx?.sessionKey) return;
42043
42044
  try {
42044
42045
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-C1vRJs5w.js").then((n) => n.n);
42045
- const { recordToolCallOutcome } = await import("./tool-loop-detection-C7TCF2V2.js");
42046
+ const { recordToolCallOutcome } = await import("./tool-loop-detection-Dd4SFWb1.js");
42046
42047
  recordToolCallOutcome(getDiagnosticSessionState({
42047
42048
  sessionKey: args.ctx.sessionKey,
42048
42049
  sessionId: args.ctx?.agentId
@@ -42064,7 +42065,7 @@ async function runBeforeToolCallHook(args) {
42064
42065
  if (args.ctx?.sessionKey) {
42065
42066
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-C1vRJs5w.js").then((n) => n.n);
42066
42067
  const { logToolLoopAction } = await import("./diagnostic-D0xmLpej.js").then((n) => n.n);
42067
- const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-C7TCF2V2.js");
42068
+ const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-Dd4SFWb1.js");
42068
42069
  const sessionState = getDiagnosticSessionState({
42069
42070
  sessionKey: args.ctx.sessionKey,
42070
42071
  sessionId: args.ctx?.agentId
@@ -47297,6 +47298,7 @@ async function runEmbeddedPiAgent(params) {
47297
47298
  const agentDir = params.agentDir ?? resolveSymiAgentDir();
47298
47299
  const fallbackConfigured = (params.config?.agents?.defaults?.model?.fallbacks?.length ?? 0) > 0;
47299
47300
  await ensureSymiModelsJson(params.config, agentDir);
47301
+ await ensurePiAuthJsonFromAuthProfiles(agentDir, { config: params.config });
47300
47302
  let modelResolveOverride;
47301
47303
  const hookRunner = getGlobalHookRunner();
47302
47304
  const hookCtx = {
@@ -50804,7 +50806,7 @@ async function deliverSessionMaintenanceWarning(params) {
50804
50806
  return;
50805
50807
  }
50806
50808
  try {
50807
- const { deliverOutboundPayloads } = await import("./deliver-BH0l3UKW.js").then((n) => n.n);
50809
+ const { deliverOutboundPayloads } = await import("./deliver-BCYGr-CD.js").then((n) => n.n);
50808
50810
  await deliverOutboundPayloads({
50809
50811
  cfg: params.cfg,
50810
50812
  channel,
@@ -54250,7 +54252,7 @@ async function describeStickerImage(params) {
54250
54252
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
54251
54253
  try {
54252
54254
  const buffer = await fs$1.readFile(imagePath);
54253
- const { describeImageWithModel } = await import("./image-CHzdaNJ4.js").then((n) => n.n);
54255
+ const { describeImageWithModel } = await import("./image-DKudhySz.js").then((n) => n.n);
54254
54256
  return (await describeImageWithModel({
54255
54257
  buffer,
54256
54258
  fileName: "sticker.webp",
@@ -54673,7 +54675,7 @@ function createWhatsAppLoginTool() {
54673
54675
  force: Type.Optional(Type.Boolean())
54674
54676
  }),
54675
54677
  execute: async (_toolCallId, args) => {
54676
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CUErSLXH.js");
54678
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-BMIn_eOf.js");
54677
54679
  if ((args?.action ?? "start") === "wait") {
54678
54680
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
54679
54681
  return {
@@ -56912,7 +56914,7 @@ async function preflightDiscordMessage(params) {
56912
56914
  let preflightTranscript;
56913
56915
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
56914
56916
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
56915
- const { transcribeFirstAudio } = await import("./audio-preflight-C40mKAp7.js");
56917
+ const { transcribeFirstAudio } = await import("./audio-preflight-DBMz5TQp.js");
56916
56918
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
56917
56919
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
56918
56920
  ctx: {
@@ -60695,27 +60697,27 @@ function isVoiceChannelType(type) {
60695
60697
  function createDefaultDeps() {
60696
60698
  return {
60697
60699
  sendMessageWhatsApp: async (...args) => {
60698
- const { sendMessageWhatsApp } = await import("./web-BuHFfZp7.js");
60700
+ const { sendMessageWhatsApp } = await import("./web-BrGvZQ21.js");
60699
60701
  return await sendMessageWhatsApp(...args);
60700
60702
  },
60701
60703
  sendMessageTelegram: async (...args) => {
60702
- const { sendMessageTelegram } = await import("./send-C4Ucr8ep.js").then((n) => n.l);
60704
+ const { sendMessageTelegram } = await import("./send-DHWMRnPk.js").then((n) => n.l);
60703
60705
  return await sendMessageTelegram(...args);
60704
60706
  },
60705
60707
  sendMessageDiscord: async (...args) => {
60706
- const { sendMessageDiscord } = await import("./send-C1IYd3g7.js").then((n) => n.t);
60708
+ const { sendMessageDiscord } = await import("./send-BJTX03Bn.js").then((n) => n.t);
60707
60709
  return await sendMessageDiscord(...args);
60708
60710
  },
60709
60711
  sendMessageSlack: async (...args) => {
60710
- const { sendMessageSlack } = await import("./send-D-hWrHoH.js").then((n) => n.n);
60712
+ const { sendMessageSlack } = await import("./send-CFzf_ab4.js").then((n) => n.n);
60711
60713
  return await sendMessageSlack(...args);
60712
60714
  },
60713
60715
  sendMessageSignal: async (...args) => {
60714
- const { sendMessageSignal } = await import("./send-DXW6mdgR.js").then((n) => n.i);
60716
+ const { sendMessageSignal } = await import("./send-CB3dCCmE.js").then((n) => n.i);
60715
60717
  return await sendMessageSignal(...args);
60716
60718
  },
60717
60719
  sendMessageIMessage: async (...args) => {
60718
- const { sendMessageIMessage } = await import("./send-BArQpbtx.js").then((n) => n.n);
60720
+ const { sendMessageIMessage } = await import("./send-iVPD3yf2.js").then((n) => n.n);
60719
60721
  return await sendMessageIMessage(...args);
60720
60722
  }
60721
60723
  };
@@ -63600,7 +63602,7 @@ function createDiscordGatewayPlugin(params) {
63600
63602
  super(options);
63601
63603
  }
63602
63604
  createWebSocket(url) {
63603
- return new WebSocket$1(url, { agent });
63605
+ return new WebSocket(url, { agent });
63604
63606
  }
63605
63607
  }
63606
63608
  return new ProxyGatewayPlugin();
@@ -71142,7 +71144,7 @@ function readSlackExternalArgMenuToken(raw) {
71142
71144
  }
71143
71145
  let commandsRegistry;
71144
71146
  async function getCommandsRegistry() {
71145
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-C_aYUwpl.js").then((n) => n.n);
71147
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-DYoNKo_h.js").then((n) => n.n);
71146
71148
  return commandsRegistry;
71147
71149
  }
71148
71150
  function encodeSlackCommandArgValue(parts) {
@@ -71545,7 +71547,7 @@ async function registerSlackMonitorSlashCommands(params) {
71545
71547
  });
71546
71548
  const deliverSlashPayloads = async (replies) => {
71547
71549
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
71548
- import("./replies-ZYtI9jr0.js").then((n) => n.r),
71550
+ import("./replies-CM5QgPHM.js").then((n) => n.r),
71549
71551
  import("./chunk-DTMTDXwE.js").then((n) => n.s),
71550
71552
  import("./markdown-tables-DawaaZEe.js").then((n) => n.t)
71551
71553
  ]);
@@ -71600,7 +71602,7 @@ async function registerSlackMonitorSlashCommands(params) {
71600
71602
  let nativeCommands = [];
71601
71603
  if (nativeEnabled) {
71602
71604
  reg = await getCommandsRegistry();
71603
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-DklY7Cj7.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
71605
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-D8RiKDh0.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
71604
71606
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
71605
71607
  skillCommands,
71606
71608
  provider: "slack"
@@ -72034,7 +72036,7 @@ async function auditTelegramGroupMembership(params) {
72034
72036
  groups: [],
72035
72037
  elapsedMs: Date.now() - started
72036
72038
  };
72037
- const fetcher = params.proxyUrl ? (await import("./proxy-BaSHbVlA.js").then((n) => n.n)).makeProxyFetch(params.proxyUrl) : fetch;
72039
+ const fetcher = params.proxyUrl ? (await import("./proxy-CLEew2L6.js").then((n) => n.n)).makeProxyFetch(params.proxyUrl) : fetch;
72038
72040
  const { fetchWithTimeout } = await import("./fetch-timeout-BheTNyes.js").then((n) => n.r);
72039
72041
  const base = `${TELEGRAM_API_BASE$1}/bot${token}`;
72040
72042
  const groups = [];
@@ -73818,7 +73820,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
73818
73820
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
73819
73821
  let preflightTranscript;
73820
73822
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
73821
- const { transcribeFirstAudio } = await import("./audio-preflight-C40mKAp7.js");
73823
+ const { transcribeFirstAudio } = await import("./audio-preflight-DBMz5TQp.js");
73822
73824
  preflightTranscript = await transcribeFirstAudio({
73823
73825
  ctx: {
73824
73826
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -75963,23 +75965,23 @@ let webLoginQrPromise = null;
75963
75965
  let webChannelPromise = null;
75964
75966
  let whatsappActionsPromise = null;
75965
75967
  function loadWebOutbound() {
75966
- webOutboundPromise ??= import("./outbound-3MZ12YrQ.js").then((n) => n.t);
75968
+ webOutboundPromise ??= import("./outbound-BihTVvMr.js").then((n) => n.t);
75967
75969
  return webOutboundPromise;
75968
75970
  }
75969
75971
  function loadWebLogin() {
75970
- webLoginPromise ??= import("./login-XprgoYoQ.js").then((n) => n.n);
75972
+ webLoginPromise ??= import("./login-CeXFO0OG.js").then((n) => n.n);
75971
75973
  return webLoginPromise;
75972
75974
  }
75973
75975
  function loadWebLoginQr() {
75974
- webLoginQrPromise ??= import("./login-qr-CUErSLXH.js");
75976
+ webLoginQrPromise ??= import("./login-qr-BMIn_eOf.js");
75975
75977
  return webLoginQrPromise;
75976
75978
  }
75977
75979
  function loadWebChannel() {
75978
- webChannelPromise ??= import("./web-BuHFfZp7.js");
75980
+ webChannelPromise ??= import("./web-BrGvZQ21.js");
75979
75981
  return webChannelPromise;
75980
75982
  }
75981
75983
  function loadWhatsAppActions() {
75982
- whatsappActionsPromise ??= import("./whatsapp-actions-DvhI5-DC.js");
75984
+ whatsappActionsPromise ??= import("./whatsapp-actions-BW8P8Izy.js");
75983
75985
  return whatsappActionsPromise;
75984
75986
  }
75985
75987
  function createPluginRuntime() {
@@ -1,6 +1,6 @@
1
1
  import { E as truncateUtf16Safe } from "./utils-B-0b9bGM.js";
2
2
  import { s as normalizeThinkLevel } from "./thinking-EAliFiVK.js";
3
- import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-C-T6hOMv.js";
3
+ import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-DAOxwUQm.js";
4
4
  import { t as sanitizeContentBlocksImages } from "./tool-images-DvUBlqjX.js";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs/promises";
@@ -3,14 +3,14 @@ import { c as normalizeMainKey, l as resolveAgentIdFromSessionKey, m as normaliz
3
3
  import { A as normalizeE164, P as resolveUserPath, V as truncateUtf16Safe, lt as resolvePreferredSymiTmpDir, t as CHANNEL_IDS } from "./registry-BhoUuugi.js";
4
4
  import { E as runExec, _ as DEFAULT_SYMIPULSE_FILENAME, b as ensureAgentWorkspace, f as DEFAULT_AGENTS_FILENAME, g as DEFAULT_SYMICORE_FILENAME, h as DEFAULT_IDENTITY_FILENAME, m as DEFAULT_BOOTSTRAP_FILENAME, n as resolveAgentConfig, p as DEFAULT_AGENT_WORKSPACE_DIR, u as resolveSessionAgentId, v as DEFAULT_TOOLS_FILENAME, y as DEFAULT_USER_FILENAME } from "./agent-scope-Cbl5pNe1.js";
5
5
  import { r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-CZixfwU8.js";
6
- import { J as isPidAlive, q as resolveProcessScopedMap } from "./model-selection-BQCG9ah0.js";
6
+ import { J as isPidAlive, q as resolveProcessScopedMap } from "./model-selection-B8QKPmTL.js";
7
7
  import { n as parseBooleanValue, r as formatCliCommand } from "./env-CQ_DQOwT.js";
8
8
  import { r as normalizeChannelId } from "./plugins-71oIavrF.js";
9
9
  import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
10
10
  import { c as SafeOpenError, i as getImageMetadata, l as openFileWithinRoot, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-ByaQt43P.js";
11
11
  import { o as listDeliverableMessageChannels, s as normalizeMessageChannel } from "./message-channel-BQINJQIT.js";
12
- import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-BmV60pPT.js";
13
- import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-CDJYxX5a.js";
12
+ import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-DBqxAhpU.js";
13
+ import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-CovpMGdO.js";
14
14
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-BNpGMnp-.js";
15
15
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-CPfngF0S.js";
16
16
  import { t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
@@ -931,7 +931,7 @@ function isModuleNotFoundError(err) {
931
931
  }
932
932
  async function loadPwAiModule(mode) {
933
933
  try {
934
- return await import("./pw-ai-De-KR9_s.js");
934
+ return await import("./pw-ai-Cfeeyp0u.js");
935
935
  } catch (err) {
936
936
  if (mode === "soft") return null;
937
937
  if (isModuleNotFoundError(err)) return null;
@@ -3471,11 +3471,11 @@ function createProfileContext(opts, profile) {
3471
3471
  const userDataDir = resolveSymiUserDataDir(profile.name);
3472
3472
  const profileState = getProfileState();
3473
3473
  if (await isHttpReachable(300) && !profileState.running) try {
3474
- await (await import("./pw-ai-De-KR9_s.js")).closePlaywrightBrowserConnection();
3474
+ await (await import("./pw-ai-Cfeeyp0u.js")).closePlaywrightBrowserConnection();
3475
3475
  } catch {}
3476
3476
  if (profileState.running) await stopRunningBrowser();
3477
3477
  try {
3478
- await (await import("./pw-ai-De-KR9_s.js")).closePlaywrightBrowserConnection();
3478
+ await (await import("./pw-ai-Cfeeyp0u.js")).closePlaywrightBrowserConnection();
3479
3479
  } catch {}
3480
3480
  if (!fs.existsSync(userDataDir)) return {
3481
3481
  moved: false,
@@ -5,11 +5,11 @@ import { n as resolveAgentConfig, u as resolveSessionAgentId } from "./agent-sco
5
5
  import { r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
6
6
  import { _ as runExec, a as DEFAULT_SYMICORE_FILENAME, c as DEFAULT_USER_FILENAME, i as DEFAULT_IDENTITY_FILENAME, l as ensureAgentWorkspace, n as DEFAULT_AGENT_WORKSPACE_DIR, o as DEFAULT_SYMIPULSE_FILENAME, r as DEFAULT_BOOTSTRAP_FILENAME, s as DEFAULT_TOOLS_FILENAME, t as DEFAULT_AGENTS_FILENAME } from "./workspace-DscDraUb.js";
7
7
  import { a as resolveSessionTranscriptPathInDir, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-CbQV9WEg.js";
8
- import { h as isPidAlive, m as resolveProcessScopedMap } from "./auth-profiles-DdK1Hxaa.js";
8
+ import { h as isPidAlive, m as resolveProcessScopedMap } from "./auth-profiles-q3HjbboY.js";
9
9
  import { n as formatCliCommand } from "./env-BDXYbTKj.js";
10
10
  import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
11
- import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-5SdHIcHU.js";
12
- import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-DkaXoP36.js";
11
+ import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-4Iu6iHCA.js";
12
+ import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-34eOyt_6.js";
13
13
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-Bs0AW1g3.js";
14
14
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-XIsvXeC-.js";
15
15
  import { b as openFileWithinRoot, i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS, y as SafeOpenError } from "./image-ops-C7CauEK8.js";
@@ -933,7 +933,7 @@ function isModuleNotFoundError(err) {
933
933
  }
934
934
  async function loadPwAiModule(mode) {
935
935
  try {
936
- return await import("./pw-ai-m0mj2KWK.js");
936
+ return await import("./pw-ai-CPelTpWz.js");
937
937
  } catch (err) {
938
938
  if (mode === "soft") return null;
939
939
  if (isModuleNotFoundError(err)) return null;
@@ -3473,11 +3473,11 @@ function createProfileContext(opts, profile) {
3473
3473
  const userDataDir = resolveSymiUserDataDir(profile.name);
3474
3474
  const profileState = getProfileState();
3475
3475
  if (await isHttpReachable(300) && !profileState.running) try {
3476
- await (await import("./pw-ai-m0mj2KWK.js")).closePlaywrightBrowserConnection();
3476
+ await (await import("./pw-ai-CPelTpWz.js")).closePlaywrightBrowserConnection();
3477
3477
  } catch {}
3478
3478
  if (profileState.running) await stopRunningBrowser();
3479
3479
  try {
3480
- await (await import("./pw-ai-m0mj2KWK.js")).closePlaywrightBrowserConnection();
3480
+ await (await import("./pw-ai-CPelTpWz.js")).closePlaywrightBrowserConnection();
3481
3481
  } catch {}
3482
3482
  if (!fs.existsSync(userDataDir)) return {
3483
3483
  moved: false,
@@ -2,7 +2,7 @@ import { C as resolveThreadParentSessionKey, l as resolveAgentIdFromSessionKey }
2
2
  import { r as resolveAgentConfig } from "./agent-scope-CgUHAtCo.js";
3
3
  import { l as normalizeMessageChannel } from "./message-channel-aT-I_DTX.js";
4
4
  import { z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-CHwyw6l5.js";
5
- import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-C-T6hOMv.js";
5
+ import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-DAOxwUQm.js";
6
6
  import { o as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-BhS32F6E.js";
7
7
 
8
8
  //#region src/agents/sandbox-tool-policy.ts