@symerian/symi 2.7.6 → 2.7.8

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 (404) hide show
  1. package/dist/{acp-cli-D-9rzaOI.js → acp-cli-6peVIuMz.js} +4 -4
  2. package/dist/{acp-cli-B2f0qBiM.js → acp-cli-DV6gYjcL.js} +4 -4
  3. package/dist/{agents-vN5prTgJ.js → agents-DhWccW-I.js} +8 -8
  4. package/dist/{agents.config-CPF1rNc6.js → agents.config-ByNtHnqX.js} +1 -1
  5. package/dist/{agents.config-CNX3szM-.js → agents.config-DwibJO90.js} +1 -1
  6. package/dist/{api-key-rotation-CzuPlV2t.js → api-key-rotation-CI0CtTtl.js} +1 -1
  7. package/dist/{audio-preflight-K-s65jbB.js → audio-preflight-DIXDvyz5.js} +9 -9
  8. package/dist/{audio-preflight-CIiS5cfP.js → audio-preflight-DJXj9QP9.js} +15 -15
  9. package/dist/{audio-preflight-XrlQA8IZ.js → audio-preflight-DfALITTK.js} +15 -15
  10. package/dist/{audio-preflight-HILy3i0m.js → audio-preflight-lr-WPpc9.js} +9 -9
  11. package/dist/{audit-BgdM9XZl.js → audit-BZU2PNKl.js} +9 -9
  12. package/dist/{audit-xSagQWH8.js → audit-CaFXenfE.js} +9 -9
  13. package/dist/{auth-choice-5Em94iVS.js → auth-choice-DOQ4Xf6i.js} +7 -7
  14. package/dist/{auth-choice-p5RC-lQV.js → auth-choice-Divyczym.js} +7 -7
  15. package/dist/{auth-profiles-Q1xTr5SX.js → auth-profiles-BBniPGeS.js} +67 -0
  16. package/dist/{auth-profiles-q3HjbboY.js → auth-profiles-C2vj6htZ.js} +67 -0
  17. package/dist/{auth-token-Cmrk2TPo.js → auth-token-DWgYs9Ek.js} +1 -1
  18. package/dist/{auth-token-Cay2jwzn.js → auth-token-iC00Mmg8.js} +1 -1
  19. package/dist/{banner-Lym3CMv8.js → banner-Cyi2LLe-.js} +1 -1
  20. package/dist/{browser-cli-Dr0yx7-7.js → browser-cli-DM3GvpUm.js} +5 -5
  21. package/dist/{browser-cli-Bc_JVdTj.js → browser-cli-DUcEYbmP.js} +5 -5
  22. package/dist/build-info.json +3 -3
  23. package/dist/bundled/boot-md/handler.js +21 -21
  24. package/dist/bundled/session-memory/handler.js +21 -21
  25. package/dist/{call-CX0cs106.js → call-BHn18ubR.js} +1 -1
  26. package/dist/{call-DeCQ2DhS.js → call-CJl0moIs.js} +1 -1
  27. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  28. package/dist/{catalog-NQ4pj9RI.js → catalog-DX1l43Ru.js} +1 -1
  29. package/dist/{catalog-DLQFKucJ.js → catalog-buoA8ik4.js} +1 -1
  30. package/dist/{channel-options-hNgj1H9B.js → channel-options-Bk4m4-d5.js} +2 -2
  31. package/dist/{channel-options-BuKhvC1L.js → channel-options-C1sGPky6.js} +2 -2
  32. package/dist/{channel-web-yFEUqLHE.js → channel-web-BKbzqQ7x.js} +8 -8
  33. package/dist/{channels-cli-qRheq8Du.js → channels-cli-CAz8gCcs.js} +42 -42
  34. package/dist/{channels-cli-T_kW3lG4.js → channels-cli-CGOOVbGf.js} +43 -43
  35. package/dist/{chrome-CiOKaTN-.js → chrome-B14NNyfm.js} +8 -8
  36. package/dist/{chrome-DU2ZysN3.js → chrome-BJvuH-NZ.js} +1 -1
  37. package/dist/{chrome-DAw-AWNi.js → chrome-D2ohnA09.js} +1 -1
  38. package/dist/{chrome-BYOhnxTr.js → chrome-ROtrXlNs.js} +8 -8
  39. package/dist/cli/daemon-cli.js +1 -1
  40. package/dist/{cli-BCt6uJct.js → cli-7JBNvH2_.js} +36 -36
  41. package/dist/{cli-DjQJlH-S.js → cli-C0zcu-AX.js} +37 -37
  42. package/dist/{command-registry-oYm-oxIA.js → command-registry-BGMCr778.js} +11 -11
  43. package/dist/{commands-registry-BT0-zzs3.js → commands-registry-B6cf3Cmq.js} +1 -1
  44. package/dist/{commands-registry-D1K_inhv.js → commands-registry-CccyRhnX.js} +1 -1
  45. package/dist/{commands-registry-BSvi46KZ.js → commands-registry-CfoYlMQB.js} +1 -1
  46. package/dist/{commands-registry-DYoNKo_h.js → commands-registry-D9ZzWaEz.js} +1 -1
  47. package/dist/{completion-cli-BHAASnn7.js → completion-cli-B1wj8Q43.js} +2 -2
  48. package/dist/{completion-cli-DaW26e_r.js → completion-cli-EO1xz8q6.js} +1 -1
  49. package/dist/{config-BUTI-mUZ.js → config-BAVNLbja.js} +2 -2
  50. package/dist/{config-B6OxYMgn.js → config-BkZ9HOKT.js} +2 -2
  51. package/dist/{config-BNTB6qj8.js → config-DXt3pc08.js} +2 -2
  52. package/dist/{config-Dz95lSBW.js → config-PXAJCHa5.js} +2 -2
  53. package/dist/{config-cli-DE0dPkwr.js → config-cli-B9RnWD0Y.js} +4 -4
  54. package/dist/{config-cli-CHeP49gh.js → config-cli-QugXKbsV.js} +4 -4
  55. package/dist/{config-guard-B1skCv1C.js → config-guard-CJ4iAPK5.js} +2 -2
  56. package/dist/{config-guard-CEkSg4hl.js → config-guard-DsOhmFl6.js} +7 -7
  57. package/dist/{config-validation-Cutpn5eO.js → config-validation-BvAfeukQ.js} +1 -1
  58. package/dist/{config-validation-HDVDlMSV.js → config-validation-CY8IJG3b.js} +1 -1
  59. package/dist/{configure-fhmKpDk9.js → configure-C_BD9gNf.js} +11 -11
  60. package/dist/{configure-CksV_L1w.js → configure-DOfxxuzV.js} +11 -11
  61. package/dist/{control-service-rbSHSlcd.js → control-service-Ce4HMDRY.js} +4 -4
  62. package/dist/{control-service-BYKXzY4f.js → control-service-D0IdaeI8.js} +4 -4
  63. package/dist/control-ui/js/connections.js +80 -35
  64. package/dist/{cron-cli-BHxfvWeT.js → cron-cli-CH0XOOxj.js} +5 -5
  65. package/dist/{cron-cli-DacyI1Pw.js → cron-cli-DBt3Lxhm.js} +5 -5
  66. package/dist/{daemon-cli-BxKtiouf.js → daemon-cli-BRMcpQb7.js} +6 -6
  67. package/dist/{daemon-cli-BLhFbih0.js → daemon-cli-DZeTm_F2.js} +6 -6
  68. package/dist/daemon-cli.js +2 -1
  69. package/dist/{daemon-runtime-mE1b-Q48.js → daemon-runtime-BT1zC2PU.js} +1 -1
  70. package/dist/{daemon-runtime-CVFg-ZmT.js → daemon-runtime-BV78EN62.js} +1 -1
  71. package/dist/{deliver-C1HRkzPJ.js → deliver-BC3liFsT.js} +2 -2
  72. package/dist/{deliver-Bu0iWeja.js → deliver-BLt_liXS.js} +3 -3
  73. package/dist/{deliver-D6IcPfbt.js → deliver-DrC7tG6s.js} +2 -2
  74. package/dist/{deliver-B4KZ6-oZ.js → deliver-lG9ITE8w.js} +3 -3
  75. package/dist/{devices-cli-1kiO08aL.js → devices-cli-C7aaQeFG.js} +4 -4
  76. package/dist/{devices-cli-B8Q8AzbX.js → devices-cli-DwCYjYyV.js} +4 -4
  77. package/dist/{directory-cli-BxnSZZsW.js → directory-cli-CQ5O6Z5j.js} +3 -3
  78. package/dist/{directory-cli-KgsAVTA0.js → directory-cli-Ca5P3Bdg.js} +3 -3
  79. package/dist/{dm-policy-shared-DJ-61hCT.js → dm-policy-shared-DF2uLfXk.js} +1 -1
  80. package/dist/{dm-policy-shared-DlDAGtZL.js → dm-policy-shared-DwFEXR-I.js} +1 -1
  81. package/dist/{dns-cli-Cwr92Aiq.js → dns-cli-7lxNoNVz.js} +3 -3
  82. package/dist/{dns-cli-BuVomfxS.js → dns-cli-HQ5yjLoE.js} +3 -3
  83. package/dist/{docs-cli-BB4yLXGO.js → docs-cli-BOa4OKW4.js} +2 -2
  84. package/dist/{docs-cli-qE-blOLC.js → docs-cli-Dol0VaNr.js} +2 -2
  85. package/dist/{doctor-completion-GPrwh8QP.js → doctor-completion-DL-ojJGb.js} +1 -1
  86. package/dist/{doctor-completion-XpW5mN61.js → doctor-completion-Dm4QxJdc.js} +1 -1
  87. package/dist/{doctor-config-flow-DhAYwhNB.js → doctor-config-flow-C81j0-sE.js} +3 -3
  88. package/dist/{doctor-config-flow-iIzSEQxb.js → doctor-config-flow-CN8seKLA.js} +3 -3
  89. package/dist/entry.js +1 -1
  90. package/dist/{exec-approvals-cli-Cj6Z-vxL.js → exec-approvals-cli-BcwVEh83.js} +6 -6
  91. package/dist/{exec-approvals-cli-BRx2oxs5.js → exec-approvals-cli-CWpi7F1X.js} +6 -6
  92. package/dist/extensionAPI.js +21 -21
  93. package/dist/{gateway-cli-CNln2fct.js → gateway-cli-DcrPLnL3.js} +58 -58
  94. package/dist/{gateway-cli-om2uguIi.js → gateway-cli-DyFOMcg2.js} +57 -57
  95. package/dist/{gateway-rpc-WM-HXUbl.js → gateway-rpc-BzkjTxlD.js} +1 -1
  96. package/dist/{gateway-rpc-BWTK7g8B.js → gateway-rpc-CJPoGX_W.js} +1 -1
  97. package/dist/{gemini-auth-BkLFtndu.js → gemini-auth-BefM10YB.js} +1 -1
  98. package/dist/{gemini-auth-CgCIvUpe.js → gemini-auth-DEakvf-D.js} +1 -1
  99. package/dist/{gemini-auth-ClVyOv9p.js → gemini-auth-DVcG-42i.js} +1 -1
  100. package/dist/{glass-ui-ws-CCi1VjiP.js → glass-ui-ws-Czh-1YjO.js} +49 -49
  101. package/dist/{glass-ui-ws-NMwMa3px.js → glass-ui-ws-nxFknxgE.js} +48 -48
  102. package/dist/{health-pUOQFZFa.js → health-1ZDwurPU.js} +5 -5
  103. package/dist/{health-Bg2DBcUP.js → health-CFd-Q1SH.js} +5 -5
  104. package/dist/{hooks-cli-D-x6V5v5.js → hooks-cli-C4tUO222.js} +37 -37
  105. package/dist/{hooks-cli-U7W3xDK1.js → hooks-cli-nKBiWE2v.js} +38 -38
  106. package/dist/{image-CbyTdMd5.js → image-C6v6m8Id.js} +3 -3
  107. package/dist/{image-D7Fl08gG.js → image-CKeN0xJL.js} +3 -3
  108. package/dist/{image-C3wYkWyK.js → image-DXco5IYt.js} +3 -3
  109. package/dist/{image-BWmcNF8N.js → image-D_qN_IxA.js} +3 -3
  110. package/dist/index.js +46 -46
  111. package/dist/{lifecycle-core-BZ5sOcHT.js → lifecycle-core-B9EgW7Tg.js} +2 -2
  112. package/dist/{lifecycle-core-C4HzGXA1.js → lifecycle-core-JD8GNX_f.js} +2 -2
  113. package/dist/llm-slug-generator.js +21 -21
  114. package/dist/{login-CiVdC-o_.js → login-BgJLYdBR.js} +2 -2
  115. package/dist/{login-BtBwGFrb.js → login-CksRbu5D.js} +2 -2
  116. package/dist/{login-DODfJ3Dn.js → login-DiorUpLk.js} +2 -2
  117. package/dist/{login-qr-CBRxijIg.js → login-qr-B0SnFKfa.js} +4 -4
  118. package/dist/{login-qr-Dbw5m381.js → login-qr-BkwojQSe.js} +4 -4
  119. package/dist/{login-qr-q201Ckfe.js → login-qr-COIr6FGZ.js} +4 -4
  120. package/dist/{login-qr-DPxuLEvD.js → login-qr-De_4jYaF.js} +4 -4
  121. package/dist/{login-BkbDSDPc.js → login-tgA4RM8O.js} +2 -2
  122. package/dist/{logs-cli-BZV7dq_U.js → logs-cli-DWqkAMwy.js} +5 -5
  123. package/dist/{logs-cli-DyCcDkRs.js → logs-cli-q93Kur4b.js} +5 -5
  124. package/dist/{manager-CgLdpXXM.js → manager-B0BFUVEs.js} +2 -2
  125. package/dist/{manager-D4LJSRyZ.js → manager-B2Yd9HdF.js} +2 -2
  126. package/dist/{manager-CJ3M1Uxq.js → manager-DXyJKTj7.js} +2 -2
  127. package/dist/{manager-Vb2F7vQq.js → manager-MZfhMvm3.js} +2 -2
  128. package/dist/{manifest-registry-C4BxOMWX.js → manifest-registry-BDSRH8nU.js} +2 -1
  129. package/dist/{manifest-registry-yb7sAlu4.js → manifest-registry-CBCGTsIb.js} +2 -1
  130. package/dist/{manifest-registry-Czr39pxG.js → manifest-registry-D5bnO5uA.js} +2 -1
  131. package/dist/{manifest-registry-D-mTF1cj.js → manifest-registry-DWdYdchb.js} +2 -1
  132. package/dist/{memory-cli-DDumUksr.js → memory-cli-AoMrHA5O.js} +5 -5
  133. package/dist/{memory-cli-Btzr8gfD.js → memory-cli-Bf2sefbp.js} +5 -5
  134. package/dist/{model-tWhwnFf8.js → model-ECsJuJew.js} +1 -1
  135. package/dist/{model-catalog-DNvgFPZn.js → model-catalog-DKGSg6jF.js} +4 -4
  136. package/dist/{model-catalog-8Son0J4O.js → model-catalog-Dex2EDUJ.js} +4 -4
  137. package/dist/{model-picker-CAm2Bftd.js → model-picker-D-n-rWyt.js} +3 -3
  138. package/dist/{model-picker-Casgrpw3.js → model-picker-RQfDGgfM.js} +3 -3
  139. package/dist/{model-selection-CyFvYcRt.js → model-selection-C-eIBa0H.js} +67 -0
  140. package/dist/{model-selection-B8QKPmTL.js → model-selection-vHAQ4r1b.js} +67 -0
  141. package/dist/{model-DiCH8rkE.js → model-yI45t1OQ.js} +1 -1
  142. package/dist/{models-B6SKDYS_.js → models-Cd9pFy1G.js} +14 -14
  143. package/dist/{models-cli-C5eOgOQy.js → models-cli-CSqy5xI0.js} +42 -42
  144. package/dist/{models-cli-XspODna9.js → models-cli-Cxo55E0S.js} +41 -41
  145. package/dist/{models-config-CFFjJPe7.js → models-config-B91ShhoT.js} +2 -2
  146. package/dist/{models-config-Be8DRFkB.js → models-config-J1x_DaPn.js} +2 -2
  147. package/dist/{node-cli-4eMRkmrw.js → node-cli-jdFJpJym.js} +11 -11
  148. package/dist/{node-cli-Dfs0UmnJ.js → node-cli-jnHMAtfE.js} +11 -11
  149. package/dist/{nodes-cli-DxfP9DIz.js → nodes-cli-BHVOxukb.js} +5 -5
  150. package/dist/{nodes-cli-BKb61OjH.js → nodes-cli-seBKfjdd.js} +5 -5
  151. package/dist/{onboard-Dm9MxfSI.js → onboard-CVKCZHVL.js} +10 -10
  152. package/dist/{onboard-BCkqj8ta.js → onboard-SceHniST.js} +10 -10
  153. package/dist/{onboard-channels-Ai7QWSJP.js → onboard-channels-BI-59zLH.js} +3 -3
  154. package/dist/{onboard-channels-TWMPiKZ-.js → onboard-channels-KGMbYFcP.js} +3 -3
  155. package/dist/{onboard-custom-CQOMQkfS.js → onboard-custom-B1paBymW.js} +3 -3
  156. package/dist/{onboard-custom-XiomtQr7.js → onboard-custom-B3CBlZe5.js} +3 -3
  157. package/dist/{onboard-helpers-CueJ7O_B.js → onboard-helpers-BFyI1sla.js} +2 -2
  158. package/dist/{onboard-helpers-PpGrZIGw.js → onboard-helpers-BV3zKTt_.js} +2 -2
  159. package/dist/{onboard-remote-Cd9kIiSG.js → onboard-remote-C-EvSvV9.js} +1 -1
  160. package/dist/{onboard-remote-DCdpB2HH.js → onboard-remote-CvtBwhma.js} +1 -1
  161. package/dist/{onboard-skills-DRICcBwa.js → onboard-skills-C1jrqA-P.js} +4 -4
  162. package/dist/{onboard-skills-CC2CV5Er.js → onboard-skills-CWaMGMQi.js} +4 -4
  163. package/dist/{onboarding-CDhc6Zmz.js → onboarding-BPjquWC3.js} +11 -11
  164. package/dist/{onboarding-DN7tXzCm.js → onboarding-Bs3JhONv.js} +11 -11
  165. package/dist/{onboarding.finalize-PosKt4ba.js → onboarding.finalize-Dbx89qG2.js} +44 -44
  166. package/dist/{onboarding.finalize-_qpqxoJ4.js → onboarding.finalize-lAwIuZFE.js} +42 -42
  167. package/dist/{onboarding.gateway-config-DTWQ-Bqq.js → onboarding.gateway-config-Btb5PaGv.js} +6 -6
  168. package/dist/{onboarding.gateway-config-Dj68bVBt.js → onboarding.gateway-config-gMhAsXgO.js} +6 -6
  169. package/dist/{openai-model-default-WqcGxyFM.js → openai-model-default-C33ovcE8.js} +2 -2
  170. package/dist/{openai-model-default-DAwnTUcK.js → openai-model-default-Ct3kMOUH.js} +2 -2
  171. package/dist/{outbound-DL8bdXlZ.js → outbound-CX-uuDet.js} +1 -1
  172. package/dist/{outbound-BIOChOHt.js → outbound-Ct6vGE68.js} +1 -1
  173. package/dist/{outbound-Bt8rj9kO.js → outbound-D6GeeR8F.js} +1 -1
  174. package/dist/{outbound-wnv03tb3.js → outbound-XakUc977.js} +1 -1
  175. package/dist/{pairing-cli-HDWwcqjZ.js → pairing-cli-C8KSZlA7.js} +5 -5
  176. package/dist/{pairing-cli-DSM82gJG.js → pairing-cli-DmISXPhp.js} +5 -5
  177. package/dist/{pairing-labels-D1HDboV2.js → pairing-labels-BScqzHEx.js} +1 -1
  178. package/dist/{pairing-labels-DyXoD1DS.js → pairing-labels-DwceB1dG.js} +1 -1
  179. package/dist/{pairing-store-CK726Dzq.js → pairing-store-BRM-hV6H.js} +1 -1
  180. package/dist/{pairing-store-vpO8vXVN.js → pairing-store-NgA78L2g.js} +1 -1
  181. package/dist/{pi-auth-json-BloyLEwh.js → pi-auth-json-BVcOA3t8.js} +1 -1
  182. package/dist/{pi-auth-json-LXkL5WS_.js → pi-auth-json-CnvkCEt-.js} +1 -1
  183. package/dist/{pi-auth-json-CCaxCywz.js → pi-auth-json-RXOlh8ar.js} +1 -1
  184. package/dist/{pi-auth-json-zHckislA.js → pi-auth-json-wOW5rGEs.js} +1 -1
  185. package/dist/{pi-embedded-C8fvjnV5.js → pi-embedded-CG4P3hy3.js} +71 -48
  186. package/dist/{pi-embedded-helpers-GaCyI2oH.js → pi-embedded-helpers-BUNbSNWw.js} +7 -7
  187. package/dist/{pi-embedded-helpers-DXAoe1Bx.js → pi-embedded-helpers-D8YgtMdl.js} +7 -7
  188. package/dist/{pi-embedded-helpers-DA4liAIZ.js → pi-embedded-helpers-DSscUmkR.js} +1 -1
  189. package/dist/{pi-embedded-helpers-BgdB5kvy.js → pi-embedded-helpers-DpOccVre.js} +1 -1
  190. package/dist/{pi-tools.policy-DRWb_Cax.js → pi-tools.policy-BpN-v9bT.js} +2 -2
  191. package/dist/{pi-tools.policy-DxNwL7Dl.js → pi-tools.policy-DOVQ8dDx.js} +2 -2
  192. package/dist/{plugin-auto-enable-CP0nONRL.js → plugin-auto-enable-BsGorrCZ.js} +2 -2
  193. package/dist/{plugin-auto-enable-D6ENR3Xg.js → plugin-auto-enable-BvmQklg-.js} +2 -2
  194. package/dist/{plugin-registry-9VvP1Tn0.js → plugin-registry-C4aoDdOB.js} +2 -2
  195. package/dist/{plugin-registry-BXmgwF7Q.js → plugin-registry-DSrgdZKM.js} +2 -2
  196. package/dist/plugin-sdk/agents/pi-embedded-runner/email-capability-prompt.d.ts +11 -0
  197. package/dist/plugin-sdk/{api-key-rotation-LTEeykrm.js → api-key-rotation-CBsLb_4V.js} +1 -1
  198. package/dist/plugin-sdk/{audio-preflight-BacDFPyc.js → audio-preflight-B-Laxbmb.js} +9 -9
  199. package/dist/plugin-sdk/{channel-web-BepK3pwm.js → channel-web-CsZ6epLT.js} +7 -7
  200. package/dist/plugin-sdk/{chrome-BMimuhgP.js → chrome-D9kN9org.js} +1 -1
  201. package/dist/plugin-sdk/{commands-registry-C9W8UWBh.js → commands-registry-By2smfUF.js} +1 -1
  202. package/dist/plugin-sdk/{config-DdA6JiyD.js → config-BzupW6LN.js} +2 -2
  203. package/dist/plugin-sdk/{deliver-Bxa1-mj5.js → deliver-CNuL0O4P.js} +2 -2
  204. package/dist/plugin-sdk/{image-aq-JAobP.js → image-BmU8yYnz.js} +3 -3
  205. package/dist/plugin-sdk/index.js +25 -25
  206. package/dist/plugin-sdk/{login-CHgiUvI_.js → login-eqtXmx21.js} +2 -2
  207. package/dist/plugin-sdk/{login-qr-D5vJo1fy.js → login-qr-Cbt9KlK3.js} +4 -4
  208. package/dist/plugin-sdk/{manager-CJXUXj6F.js → manager-Dc9yVyTt.js} +2 -2
  209. package/dist/plugin-sdk/{manifest-registry-B3ugY9-f.js → manifest-registry-hy3Bn-r9.js} +2 -1
  210. package/dist/plugin-sdk/{model-selection-DduIg_Yt.js → model-selection-CtVwtb6y.js} +67 -0
  211. package/dist/plugin-sdk/{outbound-CD38Hxn9.js → outbound-ZcDVYNoy.js} +1 -1
  212. package/dist/plugin-sdk/{pi-auth-json-CcR0OJ6f.js → pi-auth-json-r2U9wDoc.js} +1 -1
  213. package/dist/plugin-sdk/{pi-embedded-helpers-BPvzgLtj.js → pi-embedded-helpers-BCNFLt_H.js} +7 -7
  214. package/dist/plugin-sdk/{pw-ai-fdBOQzz5.js → pw-ai-B3jHOSti.js} +4 -4
  215. package/dist/plugin-sdk/{replies-CW_-4klO.js → replies-DkGqfiO4.js} +1 -1
  216. package/dist/plugin-sdk/{reply-B99hcAXo.js → reply-Rv3jE0Rs.js} +67 -44
  217. package/dist/plugin-sdk/{runner-BQJ7x06O.js → runner-WzrwRCvL.js} +5 -5
  218. package/dist/plugin-sdk/{send-Xy1L54q4.js → send-7NqCWP0r.js} +1 -1
  219. package/dist/plugin-sdk/{send-C4t6h9-o.js → send-BGE1fXlm.js} +1 -1
  220. package/dist/plugin-sdk/{send-DG6c7BpZ.js → send-BP5pSPaZ.js} +1 -1
  221. package/dist/plugin-sdk/{send-Cz_FQ8Ao.js → send-FFUmNt0K.js} +2 -2
  222. package/dist/plugin-sdk/{send-HKy51Hz_.js → send-ZhAe1nXO.js} +1 -1
  223. package/dist/plugin-sdk/{session-BUzIlHr9.js → session-8vfTL_H6.js} +1 -1
  224. package/dist/plugin-sdk/{skill-commands-D-rpF3bM.js → skill-commands-DF3ouLEu.js} +2 -2
  225. package/dist/plugin-sdk/{skills-B1GeRYlu.js → skills-C9DbB-Kp.js} +1 -1
  226. package/dist/plugin-sdk/{web-Dfwz3kul.js → web-D6R4__wu.js} +25 -25
  227. package/dist/plugin-sdk/{whatsapp-actions-CZLagx0h.js → whatsapp-actions-0DfquiaD.js} +4 -4
  228. package/dist/{plugins-cli-DaZAekE1.js → plugins-cli-CSwcV2M6.js} +38 -38
  229. package/dist/{plugins-cli-4Ldqe9qU.js → plugins-cli-DJM_xxIg.js} +39 -39
  230. package/dist/{program-CY21EZse.js → program-CtX7o1VN.js} +45 -45
  231. package/dist/{program-context-C2Md11tv.js → program-context-B2HPYMcn.js} +39 -39
  232. package/dist/{prompt-select-styled-CX5iikGF.js → prompt-select-styled-5a7_K1sn.js} +18 -18
  233. package/dist/{prompt-select-styled-CsHoph_Y.js → prompt-select-styled-Cs79EjHm.js} +18 -18
  234. package/dist/{provider-auth-helpers-Cb38dcne.js → provider-auth-helpers-DOa1Rc3D.js} +4 -4
  235. package/dist/{provider-auth-helpers-NCuGLzG3.js → provider-auth-helpers-fWAoFIwZ.js} +4 -4
  236. package/dist/{push-apns-DhvKRjTt.js → push-apns-Dnd_jTU-.js} +1 -1
  237. package/dist/{push-apns-OwzvuC6m.js → push-apns-HnaGVJwW.js} +1 -1
  238. package/dist/{pw-ai-pQoxTh-a.js → pw-ai-BLrC_W1X.js} +4 -4
  239. package/dist/{pw-ai-CANiWpMA.js → pw-ai-DTmHAKPA.js} +4 -4
  240. package/dist/{pw-ai-DQohWnzT.js → pw-ai-Df3SCnGC.js} +4 -4
  241. package/dist/{pw-ai-BCSFVeD5.js → pw-ai-VRkM0Qt0.js} +4 -4
  242. package/dist/{qr-cli-CejYwqsj.js → qr-cli-Bgejiz98.js} +3 -3
  243. package/dist/{qr-cli-XttU2KOR.js → qr-cli-D_7jTOhP.js} +3 -3
  244. package/dist/{register.agent-BdkTU0dy.js → register.agent-CaputGWT.js} +49 -49
  245. package/dist/{register.agent-B-gP3aZT.js → register.agent-lqb5eXZs.js} +47 -47
  246. package/dist/{register.configure-DvRRtnOF.js → register.configure-C0KBR4e6.js} +54 -54
  247. package/dist/{register.configure-CAY2kDIk.js → register.configure-C3AQZaAa.js} +53 -53
  248. package/dist/{register.maintenance-Lq1s-Rgh.js → register.maintenance-DLY3bZTm.js} +49 -49
  249. package/dist/{register.maintenance-KFHEb5mH.js → register.maintenance-c8Ig4nYO.js} +51 -51
  250. package/dist/{register.message-kzmGic77.js → register.message-Bexo7F0u.js} +37 -37
  251. package/dist/{register.message-DGYZrtvo.js → register.message-CUclEFp5.js} +38 -38
  252. package/dist/{register.onboard-C2Rz46GT.js → register.onboard-CVmFRJ__.js} +46 -46
  253. package/dist/{register.onboard-BBGVu_uL.js → register.onboard-DpeqS3GT.js} +45 -45
  254. package/dist/{register.setup-FtmPlDGT.js → register.setup-DogqYYN7.js} +46 -46
  255. package/dist/{register.setup-C22uGnyD.js → register.setup-NiDBVZE2.js} +45 -45
  256. package/dist/{register.status-health-sessions-CGOGymRI.js → register.status-health-sessions-C5noW7M3.js} +44 -44
  257. package/dist/{register.status-health-sessions-iAKMbExG.js → register.status-health-sessions-CTErhiR9.js} +42 -42
  258. package/dist/{register.subclis-DLJWeena.js → register.subclis-E_1XOkdf.js} +29 -29
  259. package/dist/{replies-BMqtgBhh.js → replies-BVeiOxGr.js} +1 -1
  260. package/dist/{replies-CBS0567j.js → replies-BWgZR_w5.js} +1 -1
  261. package/dist/{replies-CfyMcfoY.js → replies-CNJXJgMU.js} +1 -1
  262. package/dist/{replies-Bo49QlAg.js → replies-CsUBFXf6.js} +1 -1
  263. package/dist/{reply-brj51nHu.js → reply-DAMo5JhO.js} +79 -56
  264. package/dist/{routes-BAZTZNuQ.js → routes-2b4mQUhe.js} +3 -3
  265. package/dist/{routes-CMvgBDOg.js → routes-C8PNEZ8b.js} +3 -3
  266. package/dist/{rpc-QHo-8pCM.js → rpc-IXmOgc1l.js} +1 -1
  267. package/dist/{rpc-N1nf_c1A.js → rpc-k8pnK8TE.js} +1 -1
  268. package/dist/{run-main-ChyAx3oY.js → run-main-Cv91hLSK.js} +57 -57
  269. package/dist/{runner-BS9gGL5i.js → runner-COpebDew.js} +5 -5
  270. package/dist/{runner-Dd2bbNGV.js → runner-CSdQSvE8.js} +5 -5
  271. package/dist/{runner-DRv0uCK_.js → runner-C_BlQ2fG.js} +5 -5
  272. package/dist/{runner-B0AbN8wV.js → runner-QX0Z6K1w.js} +5 -5
  273. package/dist/{sandbox-B6N8cV4d.js → sandbox-BOVopTqv.js} +6 -6
  274. package/dist/{sandbox-DY75ZyJD.js → sandbox-CDxHBl3I.js} +6 -6
  275. package/dist/{sandbox-cli-DwzaNjIJ.js → sandbox-cli-0eu7BCa8.js} +9 -9
  276. package/dist/{sandbox-cli-BDM_QM_f.js → sandbox-cli-BpfYaZBG.js} +9 -9
  277. package/dist/{security-cli-CSMUEGPK.js → security-cli-BsStEfWU.js} +14 -14
  278. package/dist/{security-cli-B-4J6enu.js → security-cli-Cxmb5Rpv.js} +14 -14
  279. package/dist/{send-DLWaX69q.js → send-AbhXOS2H.js} +1 -1
  280. package/dist/{send-DI9Vhnmw.js → send-B7aHpAco.js} +1 -1
  281. package/dist/{send-DdLJtOjk.js → send-B9_a63ZG.js} +1 -1
  282. package/dist/{send-CQVnyJyF.js → send-BKhluIbb.js} +1 -1
  283. package/dist/{send-BhJZ16uV.js → send-BahPjsMR.js} +1 -1
  284. package/dist/{send-B7HhiTdx.js → send-BcvVKfh2.js} +1 -1
  285. package/dist/{send-BzKHnf3b.js → send-BuJyyJe7.js} +1 -1
  286. package/dist/{send-B986asZ7.js → send-C0K_2AUP.js} +2 -2
  287. package/dist/{send-9SapUCg7.js → send-CBcCKe5w.js} +1 -1
  288. package/dist/{send-CZemAajS.js → send-CCmxHtaA.js} +1 -1
  289. package/dist/{send-DlQtxlG_.js → send-CaUqpyyp.js} +2 -2
  290. package/dist/{send-RfIXG6-I.js → send-D8AIYNR_.js} +1 -1
  291. package/dist/{send-B3RdXvjC.js → send-DFftzTHo.js} +2 -2
  292. package/dist/{send-DSnJ503J.js → send-Dmb0z8Yy.js} +1 -1
  293. package/dist/{send-CC9V8V81.js → send-DnsTDCll.js} +1 -1
  294. package/dist/{send-DVm0du0_.js → send-H2g9Eaud.js} +1 -1
  295. package/dist/{send-BNnv8GtF.js → send-Yzy50T1h.js} +1 -1
  296. package/dist/{send-Bm4ULEzh.js → send-pFcMiyew.js} +1 -1
  297. package/dist/{send-B9EinkUl.js → send-vqwluhp3.js} +1 -1
  298. package/dist/{send-DaBsat3L.js → send-xTfsDEE2.js} +2 -2
  299. package/dist/{server-context-DK-T2rBR.js → server-context-BBaojT7U.js} +5 -5
  300. package/dist/{server-context-CCBZN8a0.js → server-context-C2gfYdh8.js} +5 -5
  301. package/dist/{server-methods-C8EW5RWk.js → server-methods-CXL1Nrbp.js} +62 -22
  302. package/dist/{server-methods-Dg1CpVjT.js → server-methods-C_rhjm5p.js} +61 -21
  303. package/dist/{server-node-events-55CR5ocL.js → server-node-events-B_UZBZn_.js} +37 -37
  304. package/dist/{server-node-events-CRq8LYPM.js → server-node-events-CdUVoXvg.js} +38 -38
  305. package/dist/{session-CUeezgP1.js → session-BGKShBIy.js} +1 -1
  306. package/dist/{session-v_9AVJhH.js → session-BTLA3Rm7.js} +1 -1
  307. package/dist/{session-DsJGtM7g.js → session-BuAvI2u-.js} +1 -1
  308. package/dist/{session-C1cn-CxQ.js → session-tLyG4haq.js} +1 -1
  309. package/dist/{session-utils-B8Fif925.js → session-utils-BPXkhuNM.js} +4 -4
  310. package/dist/{sessions-Cfa6JEB3.js → sessions-BPD85pWA.js} +2 -2
  311. package/dist/{sessions-Cpgnq0pA.js → sessions-BeYHj0gr.js} +2 -2
  312. package/dist/{sessions-DfbhRBHR.js → sessions-NTd36-CO.js} +4 -4
  313. package/dist/{shared-73T9fyuK.js → shared-D8j919CK.js} +2 -2
  314. package/dist/{shared-DdxPzyOH.js → shared-DdGOSL9s.js} +2 -2
  315. package/dist/{skill-commands-Cxw-jNxU.js → skill-commands-BMu-U3SX.js} +2 -2
  316. package/dist/{skill-commands-C8BcwE33.js → skill-commands-BSJONVkt.js} +2 -2
  317. package/dist/{skill-commands-D8RiKDh0.js → skill-commands-CkqZdod4.js} +2 -2
  318. package/dist/{skill-commands-BiPrghRt.js → skill-commands-D1hG6Ikz.js} +2 -2
  319. package/dist/{skills-6jdJQ5ZL.js → skills-BG8FpqDp.js} +1 -1
  320. package/dist/{skills-Bs0AW1g3.js → skills-CXxrn_e2.js} +1 -1
  321. package/dist/{skills-hAdgFdrv.js → skills-D_oCiaQn.js} +1 -1
  322. package/dist/{skills-BNpGMnp-.js → skills-XEbTRNYL.js} +1 -1
  323. package/dist/{skills-cli-DXkx4vNV.js → skills-cli-BIURlIkS.js} +7 -7
  324. package/dist/{skills-cli-uEA9KXOO.js → skills-cli-DBDVQeo4.js} +7 -7
  325. package/dist/{skills-install-CWVdJkLn.js → skills-install-D8JjjETa.js} +1 -1
  326. package/dist/{skills-install-1ZdwGTnh.js → skills-install-Por3jP0P.js} +1 -1
  327. package/dist/{skills-status-C3ptXwnh.js → skills-status-CKmK1hOo.js} +1 -1
  328. package/dist/{skills-status-DKXJ-tbi.js → skills-status-DODCG6UU.js} +1 -1
  329. package/dist/{status-3nJ92ayF.js → status-CzI_lZth.js} +12 -12
  330. package/dist/{status-Bp43M_fl.js → status-DQQ-w3eF.js} +13 -13
  331. package/dist/{status-DitZmGg2.js → status-Drn5xFtL.js} +2 -2
  332. package/dist/{status-SRfvjbzW.js → status-Ds4oB9tJ.js} +2 -2
  333. package/dist/{status.update-C2GN8s9C.js → status.update-BGSQrlxW.js} +1 -1
  334. package/dist/{status.update-CG0ciGaf.js → status.update-C1I_7XIo.js} +1 -1
  335. package/dist/{subagent-registry-BHR9PLqD.js → subagent-registry-CfoRc8ng.js} +80 -57
  336. package/dist/{system-cli-LFURKpwS.js → system-cli-CQNazJoF.js} +5 -5
  337. package/dist/{system-cli-DY7ov1OT.js → system-cli-DnlgTnqh.js} +5 -5
  338. package/dist/{systemd-hints-DT6cDIM2.js → systemd-hints-BWjICrbb.js} +1 -1
  339. package/dist/{systemd-hints-xYZbFny_.js → systemd-hints-G9M4s_fF.js} +1 -1
  340. package/dist/{tui-BH7JwqvB.js → tui-CXTwJqpz.js} +5 -5
  341. package/dist/{tui-C_5HG495.js → tui-DTW81r9y.js} +5 -5
  342. package/dist/{tui-cli-B65PKZMj.js → tui-cli-DGmt1Xs0.js} +13 -13
  343. package/dist/{tui-cli-CJnfmuxq.js → tui-cli-KiaTeKr0.js} +13 -13
  344. package/dist/{unified-runner-D560EWb3.js → unified-runner-DweFv8Vx.js} +71 -48
  345. package/dist/{update-DEMKx4eC.js → update-BWwyHVQj.js} +1 -1
  346. package/dist/{update-Ya0e-JnM.js → update-DdQCEAVD.js} +1 -1
  347. package/dist/{update-cli-ryqd_Q0J.js → update-cli-Ba4La00X.js} +53 -53
  348. package/dist/{update-cli-DQyEkqwn.js → update-cli-BkJZPKh8.js} +55 -55
  349. package/dist/{update-runner-DfchwsbI.js → update-runner-CqWSrJXt.js} +1 -1
  350. package/dist/{update-runner-BEZOFJjO.js → update-runner-w3GO-spo.js} +1 -1
  351. package/dist/{web-Dg6efnmV.js → web-0cG6_ynp.js} +40 -40
  352. package/dist/{web-DHfkLbcW.js → web-9rrJ5lZr.js} +24 -24
  353. package/dist/{web-B82phjas.js → web-Cx3SfQiX.js} +24 -24
  354. package/dist/{web-CGd3aU8t.js → web-DHAEIalz.js} +40 -40
  355. package/dist/{webhooks-cli-BRxe4uCg.js → webhooks-cli-UuxPLc9l.js} +4 -4
  356. package/dist/{webhooks-cli-CsRZl0_H.js → webhooks-cli-YK0wXLCn.js} +4 -4
  357. package/dist/{whatsapp-actions-7YbV2-Fv.js → whatsapp-actions-3wS2mDjT.js} +4 -4
  358. package/dist/{whatsapp-actions-mBarFBeS.js → whatsapp-actions-CiXMwRR8.js} +4 -4
  359. package/dist/{whatsapp-actions-BylecqEa.js → whatsapp-actions-DyfuVva4.js} +4 -4
  360. package/dist/{whatsapp-actions-ChO_shrk.js → whatsapp-actions-qetg6Gkh.js} +4 -4
  361. package/dist/{with-timeout-Cgi3TwWN.js → with-timeout-BIXdW2Bg.js} +1 -1
  362. package/dist/{with-timeout-CtVdu_1U.js → with-timeout-emS7y-kf.js} +1 -1
  363. package/extensions/bluebubbles/package.json +1 -1
  364. package/extensions/copilot-proxy/package.json +1 -1
  365. package/extensions/diagnostics-otel/package.json +1 -1
  366. package/extensions/discord/package.json +1 -1
  367. package/extensions/feishu/package.json +1 -1
  368. package/extensions/google-antigravity-auth/package.json +1 -1
  369. package/extensions/google-gemini-cli-auth/package.json +1 -1
  370. package/extensions/googlechat/package.json +1 -1
  371. package/extensions/imessage/package.json +1 -1
  372. package/extensions/irc/package.json +1 -1
  373. package/extensions/learning-loop/package.json +1 -1
  374. package/extensions/line/package.json +1 -1
  375. package/extensions/llm-task/package.json +1 -1
  376. package/extensions/matrix/CHANGELOG.md +12 -0
  377. package/extensions/matrix/package.json +1 -1
  378. package/extensions/mattermost/package.json +1 -1
  379. package/extensions/memory-core/package.json +1 -1
  380. package/extensions/memory-lancedb/package.json +1 -1
  381. package/extensions/minimax-portal-auth/package.json +1 -1
  382. package/extensions/msteams/CHANGELOG.md +12 -0
  383. package/extensions/msteams/package.json +1 -1
  384. package/extensions/nextcloud-talk/package.json +1 -1
  385. package/extensions/nostr/CHANGELOG.md +12 -0
  386. package/extensions/nostr/package.json +1 -1
  387. package/extensions/open-prose/package.json +1 -1
  388. package/extensions/outlook/package.json +1 -1
  389. package/extensions/pipeline/package.json +1 -1
  390. package/extensions/signal/package.json +1 -1
  391. package/extensions/slack/package.json +1 -1
  392. package/extensions/telegram/package.json +1 -1
  393. package/extensions/tlon/package.json +1 -1
  394. package/extensions/twitch/CHANGELOG.md +12 -0
  395. package/extensions/twitch/package.json +1 -1
  396. package/extensions/voice-call/CHANGELOG.md +12 -0
  397. package/extensions/voice-call/package.json +1 -1
  398. package/extensions/whatsapp/package.json +1 -1
  399. package/extensions/zalo/CHANGELOG.md +12 -0
  400. package/extensions/zalo/package.json +1 -1
  401. package/extensions/zalouser/CHANGELOG.md +12 -0
  402. package/extensions/zalouser/package.json +1 -1
  403. package/package.json +1 -1
  404. package/skills/connect-email/SKILL.md +141 -0
@@ -23,18 +23,17 @@
23
23
  },
24
24
  email: {
25
25
  id: "email",
26
- name: "Email (Gmail)",
27
- configPath: "hooks.gmail",
26
+ name: "Email",
27
+ configPath: "hooks.gmail + outlook plugin",
28
28
  docsUrl: "https://docs.symi.ai/automation/gmail-pubsub",
29
29
  icon: `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
30
30
  <rect x="2" y="4" width="20" height="16" rx="2"/>
31
31
  <path d="M22 6l-10 7L2 6"/>
32
32
  </svg>`,
33
- setupInfo: "Receive emails via Gmail Pub/Sub integration. Requires Google Cloud setup.",
34
- configExample: `hooks:
35
- gmail:
36
- account: "you@gmail.com"
37
- topic: "projects/.../topics/..."`,
33
+ // setupInfo/configExample unused for email the modal renders two
34
+ // per-provider sections (Outlook, Gmail) instead. See openModal().
35
+ setupInfo: "",
36
+ configExample: "",
38
37
  },
39
38
  msteams: {
40
39
  id: "msteams",
@@ -56,7 +55,7 @@
56
55
 
57
56
  const state = {
58
57
  slack: { status: "checking", notifications: 0 },
59
- email: { status: "checking", notifications: 0 },
58
+ email: { status: "checking", notifications: 0, gmail: null, outlook: null },
60
59
  msteams: { status: "checking", notifications: 0 },
61
60
  };
62
61
 
@@ -136,15 +135,17 @@
136
135
  state.slack.status = "disconnected";
137
136
  }
138
137
 
139
- // Update Email/Gmail status (check both gmail and email keys)
140
- const emailChannel = channels.gmail || channels.email;
141
- if (emailChannel) {
142
- const isConnected = emailChannel.configured && emailChannel.connected !== false;
143
- state.email.status = isConnected ? "connected" : "disconnected";
144
- state.email.notifications = emailChannel.unread ?? 0;
145
- } else {
146
- state.email.status = "disconnected";
147
- }
138
+ // Update Email status: connected if EITHER Outlook OR Gmail is live.
139
+ // Outlook is injected into channels.outlook by the gateway
140
+ // (src/gateway/server-methods/channels.ts).
141
+ const gmail = channels.gmail || channels.email || null;
142
+ const outlook = channels.outlook || null;
143
+ const gmailConnected = !!(gmail && gmail.configured && gmail.connected !== false);
144
+ const outlookConnected = !!(outlook && outlook.configured && outlook.connected !== false);
145
+ state.email.gmail = gmail;
146
+ state.email.outlook = outlook;
147
+ state.email.status = gmailConnected || outlookConnected ? "connected" : "disconnected";
148
+ state.email.notifications = (gmail?.unread ?? 0) + (outlook?.unread ?? 0);
148
149
 
149
150
  // Update Teams status
150
151
  if (channels.msteams) {
@@ -174,6 +175,46 @@
174
175
  const modalDocs = document.getElementById("conn-modal-docs");
175
176
  const modalClose = document.getElementById("conn-modal-close");
176
177
 
178
+ function renderProviderSection(title, connected, detailLine, actionLine) {
179
+ const klass = connected ? "connected" : "disconnected";
180
+ const badge = connected ? "CONNECTED" : "NOT CONFIGURED";
181
+ return `
182
+ <div class="conn-modal-status ${klass}" style="margin-bottom:6px;">
183
+ <div class="conn-modal-status-dot"></div>
184
+ <span class="conn-modal-status-text"><strong>${escHtml(title)}</strong> — ${escHtml(detailLine)}</span>
185
+ <span class="conn-modal-status-badge">${badge}</span>
186
+ </div>
187
+ <p class="conn-modal-info" style="margin-top:0;margin-bottom:14px;">${actionLine}</p>
188
+ `;
189
+ }
190
+
191
+ function renderEmailModalBody(channelState) {
192
+ const outlook = channelState.outlook;
193
+ const gmail = channelState.gmail;
194
+ const outlookConnected = !!(outlook && outlook.configured && outlook.connected !== false);
195
+ const gmailConnected = !!(gmail && gmail.configured && gmail.connected !== false);
196
+
197
+ const outlookDetail = outlookConnected
198
+ ? `Connected as ${outlook.email || "Microsoft account"}`
199
+ : "Microsoft 365 / outlook.com / hotmail.com";
200
+ const outlookAction = outlookConnected
201
+ ? `Type <code>/outlook logout</code> in chat to disconnect.`
202
+ : `Type <code>/outlook login</code> in chat — a Microsoft device-code flow will start and tools become available immediately after sign-in.`;
203
+
204
+ const gmailAccount = gmail && typeof gmail.account === "string" ? gmail.account : null;
205
+ const gmailDetail = gmailConnected
206
+ ? `Watching ${gmailAccount || "your Gmail inbox"}`
207
+ : "Gmail / Google Workspace (requires Pub/Sub setup)";
208
+ const gmailAction = gmailConnected
209
+ ? `Incoming email creates <code>hook:gmail:&lt;id&gt;</code> sessions automatically.`
210
+ : `Configure <code>hooks.gmail</code> in <code>symi.json</code> — see the docs link below for the full Google Cloud Pub/Sub walkthrough.`;
211
+
212
+ return (
213
+ renderProviderSection("Outlook 365", outlookConnected, outlookDetail, outlookAction) +
214
+ renderProviderSection("Gmail", gmailConnected, gmailDetail, gmailAction)
215
+ );
216
+ }
217
+
177
218
  function openModal(channelId) {
178
219
  const channel = CHANNELS[channelId];
179
220
  const channelState = state[channelId];
@@ -191,24 +232,28 @@
191
232
  // Set docs link
192
233
  modalDocs.href = channel.docsUrl;
193
234
 
194
- // Build body content
195
- const isConnected = channelState.status === "connected";
196
- const statusClass = isConnected ? "connected" : "disconnected";
197
- const statusText = isConnected
198
- ? "Channel is active and receiving messages"
199
- : "Channel is not configured";
200
- const badgeText = isConnected ? "CONNECTED" : "NOT CONFIGURED";
201
-
202
- modalBody.innerHTML = `
203
- <div class="conn-modal-status ${statusClass}">
204
- <div class="conn-modal-status-dot"></div>
205
- <span class="conn-modal-status-text">${statusText}</span>
206
- <span class="conn-modal-status-badge">${badgeText}</span>
207
- </div>
208
- <p class="conn-modal-info">${channel.setupInfo}</p>
209
- <p class="conn-modal-info">Add to your <code>symi.json</code> config:</p>
210
- <pre class="conn-modal-config">${escHtml(channel.configExample)}</pre>
211
- `;
235
+ if (channelId === "email") {
236
+ modalBody.innerHTML = renderEmailModalBody(channelState);
237
+ } else {
238
+ // Generic single-provider layout for other channels
239
+ const isConnected = channelState.status === "connected";
240
+ const statusClass = isConnected ? "connected" : "disconnected";
241
+ const statusText = isConnected
242
+ ? "Channel is active and receiving messages"
243
+ : "Channel is not configured";
244
+ const badgeText = isConnected ? "CONNECTED" : "NOT CONFIGURED";
245
+
246
+ modalBody.innerHTML = `
247
+ <div class="conn-modal-status ${statusClass}">
248
+ <div class="conn-modal-status-dot"></div>
249
+ <span class="conn-modal-status-text">${statusText}</span>
250
+ <span class="conn-modal-status-badge">${badgeText}</span>
251
+ </div>
252
+ <p class="conn-modal-info">${channel.setupInfo}</p>
253
+ <p class="conn-modal-info">Add to your <code>symi.json</code> config:</p>
254
+ <pre class="conn-modal-config">${escHtml(channel.configExample)}</pre>
255
+ `;
256
+ }
212
257
 
213
258
  // Show modal
214
259
  modalOverlay.classList.add("open");
@@ -5,26 +5,26 @@ import "./registry-Cja8eT7G.js";
5
5
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
6
6
  import "./exec-CWkblSrI.js";
7
7
  import "./agent-scope-CgUHAtCo.js";
8
- import "./model-selection-CyFvYcRt.js";
8
+ import "./model-selection-C-eIBa0H.js";
9
9
  import "./github-copilot-token-DAu1a6BX.js";
10
10
  import "./boolean-BsqeuxE6.js";
11
11
  import "./env-DPCHYPeH.js";
12
12
  import "./message-channel-aT-I_DTX.js";
13
- import "./config-Dz95lSBW.js";
14
- import "./manifest-registry-C4BxOMWX.js";
13
+ import "./config-PXAJCHa5.js";
14
+ import "./manifest-registry-BDSRH8nU.js";
15
15
  import { n as listChannelPlugins } from "./plugins-DKDeQZF0.js";
16
16
  import "./accounts-DDuIpcln.js";
17
17
  import "./bindings-DFaVVCsf.js";
18
18
  import "./logging-w5jq5901.js";
19
19
  import "./client-B8xmq-Pw.js";
20
- import "./call-CX0cs106.js";
20
+ import "./call-BHn18ubR.js";
21
21
  import "./pairing-token-CX3NN_qj.js";
22
22
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
23
23
  import "./progress-jIePzvGA.js";
24
24
  import { n as formatDurationHuman } from "./format-duration-D0B0Uo-I.js";
25
25
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-CvFURHzt.js";
26
26
  import { n as parsePositiveIntOrUndefined } from "./helpers-BtH6pa6c.js";
27
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-WM-HXUbl.js";
27
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BzkjTxlD.js";
28
28
 
29
29
  //#region src/cli/cron-cli/shared.ts
30
30
  const getCronChannelOptions = () => ["last", ...listChannelPlugins().map((plugin) => plugin.id)].join("|");
@@ -1,13 +1,13 @@
1
1
  import { Dt as theme, Et as isRich, Tt as colorize, _ as defaultRuntime, ht as danger } from "./entry.js";
2
- import "./auth-profiles-Q1xTr5SX.js";
2
+ import "./auth-profiles-BBniPGeS.js";
3
3
  import { d as sanitizeAgentId } from "./session-key-DjZ7Z1hW.js";
4
4
  import "./exec-CBKBIMpA.js";
5
5
  import "./agent-scope-D-jRCY0d.js";
6
6
  import "./github-copilot-token-DuFIqfeC.js";
7
- import "./manifest-registry-Czr39pxG.js";
8
- import "./config-BNTB6qj8.js";
7
+ import "./manifest-registry-D5bnO5uA.js";
8
+ import "./config-DXt3pc08.js";
9
9
  import "./client-qUlxXXVJ.js";
10
- import "./call-DeCQ2DhS.js";
10
+ import "./call-CJl0moIs.js";
11
11
  import "./message-channel-C9dERklz.js";
12
12
  import "./pairing-token-Byh6drgn.js";
13
13
  import { n as listChannelPlugins } from "./plugins-CwSlLxM8.js";
@@ -18,7 +18,7 @@ import { n as formatDurationHuman } from "./format-duration-BOC0O2XQ.js";
18
18
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-CQar2eKe.js";
19
19
  import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
20
20
  import "./progress-BAHiAaDW.js";
21
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BWTK7g8B.js";
21
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-CJPoGX_W.js";
22
22
  import { n as parsePositiveIntOrUndefined } from "./helpers-ITexi1_a.js";
23
23
 
24
24
  //#region src/cli/cron-cli/shared.ts
@@ -1,8 +1,8 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { At as getResolvedLoggerSettings, Dt as theme, Et as isRich, Tt as colorize, Ut as resolveGatewayPort, Wt as resolveIsNixMode, Yt as resolveStateDir, _ as defaultRuntime, lt as shortenHomePath, zt as resolveConfigPath } from "./entry.js";
3
3
  import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
4
- import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-BNTB6qj8.js";
5
- import { n as callGateway } from "./call-DeCQ2DhS.js";
4
+ import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-DXt3pc08.js";
5
+ import { n as callGateway } from "./call-CJl0moIs.js";
6
6
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C9dERklz.js";
7
7
  import { l as resolveGatewayBindHost } from "./net-DZ5Ayk-W.js";
8
8
  import { n as pickPrimaryTailnetIPv4 } from "./tailnet-Cmumpn76.js";
@@ -11,13 +11,13 @@ import { i as formatPortDiagnostics, n as inspectPortUsage } from "./ports-2xFXb
11
11
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-CPeVoSXJ.js";
12
12
  import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
13
13
  import { n as withProgress } from "./progress-BAHiAaDW.js";
14
- import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-PpGrZIGw.js";
14
+ import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-BV3zKTt_.js";
15
15
  import { n as isWSLEnv } from "./wsl-jdLWdiKy.js";
16
16
  import { n as inheritOptionFromParent } from "./command-options-6wdtBBWB.js";
17
- import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CVFg-ZmT.js";
17
+ import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BV78EN62.js";
18
18
  import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-Cm9j9WzQ.js";
19
- import { a as createCliStatusTextStyles, c as parsePortFromArgs, d as renderRuntimeHints, f as resolveRuntimeStatusColor, g as installDaemonServiceAndEmit, h as createDaemonActionContext, i as runServiceUninstall, l as pickProbeHostForBind, m as buildDaemonServiceSnapshot, n as runServiceStart, o as filterDaemonEnv, p as safeDaemonEnv, r as runServiceStop, s as normalizeListenerAddress, t as runServiceRestart, u as renderGatewayServiceStartHints } from "./lifecycle-core-BZ5sOcHT.js";
20
- import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-DT6cDIM2.js";
19
+ import { a as createCliStatusTextStyles, c as parsePortFromArgs, d as renderRuntimeHints, f as resolveRuntimeStatusColor, g as installDaemonServiceAndEmit, h as createDaemonActionContext, i as runServiceUninstall, l as pickProbeHostForBind, m as buildDaemonServiceSnapshot, n as runServiceStart, o as filterDaemonEnv, p as safeDaemonEnv, r as runServiceStop, s as normalizeListenerAddress, t as runServiceRestart, u as renderGatewayServiceStartHints } from "./lifecycle-core-B9EgW7Tg.js";
20
+ import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-BWjICrbb.js";
21
21
  import { t as parsePort } from "./parse-port-BQ0_YQqL.js";
22
22
  import { t as readLastGatewayErrorLine } from "./diagnostics-CS1ov_hH.js";
23
23
  import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-t04OgGMk.js";
@@ -4,22 +4,22 @@ import { B as theme, R as colorize, S as shortenHomePath, U as getResolvedLogger
4
4
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
5
5
  import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
6
6
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-aT-I_DTX.js";
7
- import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-Dz95lSBW.js";
7
+ import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-PXAJCHa5.js";
8
8
  import { n as pickPrimaryTailnetIPv4 } from "./tailnet-B2SPYrh4.js";
9
9
  import { u as resolveGatewayBindHost } from "./ws-C7EXRv8z.js";
10
10
  import { a as resolveGatewayAuth } from "./auth-B741uFtk.js";
11
11
  import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-BOmtxoTv.js";
12
- import { n as callGateway } from "./call-CX0cs106.js";
12
+ import { n as callGateway } from "./call-BHn18ubR.js";
13
13
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
14
14
  import { n as withProgress } from "./progress-jIePzvGA.js";
15
- import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-CueJ7O_B.js";
15
+ import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-BFyI1sla.js";
16
16
  import { n as isWSLEnv } from "./wsl-q8spwrME.js";
17
17
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-CafH8-8D.js";
18
18
  import { n as inheritOptionFromParent } from "./command-options-BkTXKWlb.js";
19
- import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-mE1b-Q48.js";
19
+ import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BT1zC2PU.js";
20
20
  import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-osK70kTZ.js";
21
- import { a as createCliStatusTextStyles, c as parsePortFromArgs, d as renderRuntimeHints, f as resolveRuntimeStatusColor, g as installDaemonServiceAndEmit, h as createDaemonActionContext, i as runServiceUninstall, l as pickProbeHostForBind, m as buildDaemonServiceSnapshot, n as runServiceStart, o as filterDaemonEnv, p as safeDaemonEnv, r as runServiceStop, s as normalizeListenerAddress, t as runServiceRestart, u as renderGatewayServiceStartHints } from "./lifecycle-core-C4HzGXA1.js";
22
- import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-xYZbFny_.js";
21
+ import { a as createCliStatusTextStyles, c as parsePortFromArgs, d as renderRuntimeHints, f as resolveRuntimeStatusColor, g as installDaemonServiceAndEmit, h as createDaemonActionContext, i as runServiceUninstall, l as pickProbeHostForBind, m as buildDaemonServiceSnapshot, n as runServiceStart, o as filterDaemonEnv, p as safeDaemonEnv, r as runServiceStop, s as normalizeListenerAddress, t as runServiceRestart, u as renderGatewayServiceStartHints } from "./lifecycle-core-JD8GNX_f.js";
22
+ import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-G9M4s_fF.js";
23
23
  import { t as parsePort } from "./parse-port-DnJYkByg.js";
24
24
  import { t as readLastGatewayErrorLine } from "./diagnostics-BRwihzJG.js";
25
25
  import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-CvbbCuoa.js";
@@ -4084,7 +4084,8 @@ function defaultSlotIdForKey(slotKey) {
4084
4084
  const BUNDLED_ENABLED_BY_DEFAULT = new Set([
4085
4085
  "device-pair",
4086
4086
  "phone-control",
4087
- "talk-voice"
4087
+ "talk-voice",
4088
+ "outlook"
4088
4089
  ]);
4089
4090
  const normalizeList = (value) => {
4090
4091
  if (!Array.isArray(value)) return [];
@@ -1,5 +1,5 @@
1
1
  import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
2
- import { H as VERSION, R as collectConfigServiceEnvVars } from "./config-Dz95lSBW.js";
2
+ import { H as VERSION, R as collectConfigServiceEnvVars } from "./config-PXAJCHa5.js";
3
3
  import { a as NODE_SERVICE_MARKER, c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, g as resolveNodeWindowsTaskName, h as resolveNodeSystemdServiceName, i as NODE_SERVICE_KIND, m as resolveNodeLaunchAgentLabel, n as GATEWAY_SERVICE_KIND, o as NODE_WINDOWS_TASK_SCRIPT_NAME, r as GATEWAY_SERVICE_MARKER } from "./constants-CafH8-8D.js";
4
4
  import { n as isSupportedNodeVersion } from "./runtime-guard-Dik20CVM.js";
5
5
  import os from "node:os";
@@ -1,5 +1,5 @@
1
1
  import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
2
- import { H as VERSION, R as collectConfigServiceEnvVars } from "./config-BNTB6qj8.js";
2
+ import { H as VERSION, R as collectConfigServiceEnvVars } from "./config-DXt3pc08.js";
3
3
  import { a as NODE_SERVICE_MARKER, c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, g as resolveNodeWindowsTaskName, h as resolveNodeSystemdServiceName, i as NODE_SERVICE_KIND, m as resolveNodeLaunchAgentLabel, n as GATEWAY_SERVICE_KIND, o as NODE_WINDOWS_TASK_SCRIPT_NAME, r as GATEWAY_SERVICE_MARKER } from "./constants-CPeVoSXJ.js";
4
4
  import { n as isSupportedNodeVersion } from "./runtime-guard-D7waq_Ho.js";
5
5
  import { execFile } from "node:child_process";
@@ -3,14 +3,14 @@ import { s as resolveStateDir } from "./paths-CE7eVGHg.js";
3
3
  import { m as normalizeOptionalAccountId, p as normalizeAccountId } from "./session-key-BCzIW1Y2.js";
4
4
  import { c as getActivePluginRegistry, v as createInternalHookEvent, x as triggerInternalHook } from "./registry-DYq1AYOv.js";
5
5
  import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
6
- import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-GaCyI2oH.js";
6
+ import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-BUNbSNWw.js";
7
7
  import { d as getChannelDock } from "./thinking-BprCy23Z.js";
8
8
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BzmbgY7s.js";
9
9
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-W0JzCJJM.js";
10
10
  import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-BHW8Yu5A.js";
11
11
  import { n as resolveMarkdownTableMode } from "./markdown-tables-Dnj2LQUc.js";
12
12
  import { t as getAgentScopedMediaLocalRoots } from "./local-roots-Se92wAN5.js";
13
- import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-CZemAajS.js";
13
+ import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-CCmxHtaA.js";
14
14
  import path from "node:path";
15
15
  import fs from "node:fs";
16
16
  import crypto from "node:crypto";
@@ -1,15 +1,15 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { $t as triggerInternalHook, M as getActivePluginRegistry, Zt as createInternalHookEvent, o as createSubsystemLogger } from "./entry.js";
3
3
  import { g as normalizeOptionalAccountId, h as normalizeAccountId } from "./session-key-DjZ7Z1hW.js";
4
- import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-Cfa6JEB3.js";
4
+ import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-BPD85pWA.js";
5
5
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Csntmwwn.js";
6
6
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
7
- import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-DA4liAIZ.js";
7
+ import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-DSscUmkR.js";
8
8
  import { t as getChannelDock } from "./dock-DKxQXuAg.js";
9
9
  import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-CQyUJNtc.js";
10
10
  import { n as resolveMarkdownTableMode } from "./markdown-tables-D82z_Ahc.js";
11
11
  import { t as getAgentScopedMediaLocalRoots } from "./local-roots-CpUKTvDW.js";
12
- import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-BhJZ16uV.js";
12
+ import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-BahPjsMR.js";
13
13
  import { i as failDelivery, r as enqueueDelivery, t as ackDelivery } from "./delivery-queue-CzNZXd1M.js";
14
14
 
15
15
  //#region src/plugins/hooks.ts
@@ -5,12 +5,12 @@ import { c as getActivePluginRegistry, v as createInternalHookEvent, y as trigge
5
5
  import { t as createSubsystemLogger } from "./subsystem-CZixfwU8.js";
6
6
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Cn6drXx2.js";
7
7
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-71oIavrF.js";
8
- import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-DXAoe1Bx.js";
8
+ import { B as resolveMirroredTranscriptText, i as isMessagingToolDuplicate, z as appendAssistantMessageToSessionTranscript } from "./pi-embedded-helpers-D8YgtMdl.js";
9
9
  import { d as getChannelDock } from "./thinking-W85Rb32m.js";
10
10
  import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-DTMTDXwE.js";
11
11
  import { n as resolveMarkdownTableMode } from "./markdown-tables-DawaaZEe.js";
12
12
  import { t as getAgentScopedMediaLocalRoots } from "./local-roots-CC8jiKDk.js";
13
- import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-DLWaX69q.js";
13
+ import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-AbhXOS2H.js";
14
14
  import path from "node:path";
15
15
  import fs from "node:fs";
16
16
  import crypto from "node:crypto";
@@ -2,15 +2,15 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { g as normalizeOptionalAccountId, h as normalizeAccountId } from "./session-key-DCt45XZa.js";
3
3
  import { C as createInternalHookEvent, T as triggerInternalHook, d as getActivePluginRegistry } from "./registry-Cja8eT7G.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
5
- import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-BgdB5kvy.js";
6
- import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-Cpgnq0pA.js";
5
+ import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-DpOccVre.js";
6
+ import { i as resolveMirroredTranscriptText, r as appendAssistantMessageToSessionTranscript } from "./sessions-BeYHj0gr.js";
7
7
  import { t as getChannelDock } from "./dock-BhS32F6E.js";
8
8
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DKDeQZF0.js";
9
9
  import { t as getAgentScopedMediaLocalRoots } from "./local-roots-aAFLQGkY.js";
10
10
  import { a as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-BuceUQDl.js";
11
11
  import { c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph } from "./chunk-1dhPX1NK.js";
12
12
  import { n as resolveMarkdownTableMode } from "./markdown-tables-CEbN0fEm.js";
13
- import { a as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-Bm4ULEzh.js";
13
+ import { a as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-pFcMiyew.js";
14
14
  import { i as failDelivery, r as enqueueDelivery, t as ackDelivery } from "./delivery-queue-CAxX6nGq.js";
15
15
 
16
16
  //#region src/plugins/hooks.ts
@@ -1,12 +1,12 @@
1
1
  import { Dt as theme, _ as defaultRuntime } from "./entry.js";
2
- import "./auth-profiles-Q1xTr5SX.js";
2
+ import "./auth-profiles-BBniPGeS.js";
3
3
  import "./exec-CBKBIMpA.js";
4
4
  import "./agent-scope-D-jRCY0d.js";
5
5
  import "./github-copilot-token-DuFIqfeC.js";
6
- import "./manifest-registry-Czr39pxG.js";
7
- import "./config-BNTB6qj8.js";
6
+ import "./manifest-registry-D5bnO5uA.js";
7
+ import "./config-DXt3pc08.js";
8
8
  import { Ht as listDevicePairing, Jt as summarizeDeviceTokens, zt as approveDevicePairing } from "./client-qUlxXXVJ.js";
9
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-DeCQ2DhS.js";
9
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CJl0moIs.js";
10
10
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C9dERklz.js";
11
11
  import "./pairing-token-Byh6drgn.js";
12
12
  import { n as isLoopbackHost } from "./net-DZ5Ayk-W.js";
@@ -4,16 +4,16 @@ import "./registry-Cja8eT7G.js";
4
4
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
5
5
  import "./exec-CWkblSrI.js";
6
6
  import "./agent-scope-CgUHAtCo.js";
7
- import "./model-selection-CyFvYcRt.js";
7
+ import "./model-selection-C-eIBa0H.js";
8
8
  import "./github-copilot-token-DAu1a6BX.js";
9
9
  import "./boolean-BsqeuxE6.js";
10
10
  import "./env-DPCHYPeH.js";
11
11
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-aT-I_DTX.js";
12
- import "./config-Dz95lSBW.js";
13
- import "./manifest-registry-C4BxOMWX.js";
12
+ import "./config-PXAJCHa5.js";
13
+ import "./manifest-registry-BDSRH8nU.js";
14
14
  import { r as isLoopbackHost } from "./ws-C7EXRv8z.js";
15
15
  import { Ht as listDevicePairing, Jt as summarizeDeviceTokens, zt as approveDevicePairing } from "./client-B8xmq-Pw.js";
16
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CX0cs106.js";
16
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BHn18ubR.js";
17
17
  import "./pairing-token-CX3NN_qj.js";
18
18
  import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
19
19
  import { n as withProgress } from "./progress-jIePzvGA.js";
@@ -1,10 +1,10 @@
1
1
  import { Dt as theme, _ as defaultRuntime, ht as danger } from "./entry.js";
2
- import "./auth-profiles-Q1xTr5SX.js";
2
+ import "./auth-profiles-BBniPGeS.js";
3
3
  import "./exec-CBKBIMpA.js";
4
4
  import "./agent-scope-D-jRCY0d.js";
5
5
  import "./github-copilot-token-DuFIqfeC.js";
6
- import "./manifest-registry-Czr39pxG.js";
7
- import { i as loadConfig } from "./config-BNTB6qj8.js";
6
+ import "./manifest-registry-D5bnO5uA.js";
7
+ import { i as loadConfig } from "./config-DXt3pc08.js";
8
8
  import "./message-channel-C9dERklz.js";
9
9
  import { t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
10
10
  import "./accounts-D9ITgITj.js";
@@ -4,13 +4,13 @@ import "./registry-Cja8eT7G.js";
4
4
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
5
5
  import "./exec-CWkblSrI.js";
6
6
  import "./agent-scope-CgUHAtCo.js";
7
- import "./model-selection-CyFvYcRt.js";
7
+ import "./model-selection-C-eIBa0H.js";
8
8
  import "./github-copilot-token-DAu1a6BX.js";
9
9
  import "./boolean-BsqeuxE6.js";
10
10
  import "./env-DPCHYPeH.js";
11
11
  import "./message-channel-aT-I_DTX.js";
12
- import { i as loadConfig } from "./config-Dz95lSBW.js";
13
- import "./manifest-registry-C4BxOMWX.js";
12
+ import { i as loadConfig } from "./config-PXAJCHa5.js";
13
+ import "./manifest-registry-BDSRH8nU.js";
14
14
  import { t as getChannelPlugin } from "./plugins-DKDeQZF0.js";
15
15
  import "./accounts-DDuIpcln.js";
16
16
  import "./bindings-DFaVVCsf.js";
@@ -1,5 +1,5 @@
1
1
  import { l as normalizeStringEntries } from "./dock-DKxQXuAg.js";
2
- import { i as readChannelAllowFromStore } from "./pairing-store-vpO8vXVN.js";
2
+ import { i as readChannelAllowFromStore } from "./pairing-store-NgA78L2g.js";
3
3
 
4
4
  //#region src/security/dm-policy-shared.ts
5
5
  async function resolveDmAllowState(params) {
@@ -1,5 +1,5 @@
1
1
  import { l as normalizeStringEntries } from "./dock-BhS32F6E.js";
2
- import { i as readChannelAllowFromStore } from "./pairing-store-CK726Dzq.js";
2
+ import { i as readChannelAllowFromStore } from "./pairing-store-BRM-hV6H.js";
3
3
 
4
4
  //#region src/security/dm-policy-shared.ts
5
5
  async function resolveDmAllowState(params) {
@@ -4,12 +4,12 @@ import "./registry-Cja8eT7G.js";
4
4
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
5
5
  import "./exec-CWkblSrI.js";
6
6
  import "./agent-scope-CgUHAtCo.js";
7
- import "./model-selection-CyFvYcRt.js";
7
+ import "./model-selection-C-eIBa0H.js";
8
8
  import "./github-copilot-token-DAu1a6BX.js";
9
9
  import "./boolean-BsqeuxE6.js";
10
10
  import "./env-DPCHYPeH.js";
11
- import { i as loadConfig } from "./config-Dz95lSBW.js";
12
- import "./manifest-registry-C4BxOMWX.js";
11
+ import { i as loadConfig } from "./config-PXAJCHa5.js";
12
+ import "./manifest-registry-BDSRH8nU.js";
13
13
  import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-B2SPYrh4.js";
14
14
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
15
15
  import { t as renderTable } from "./table-BKlH0YlA.js";
@@ -1,10 +1,10 @@
1
1
  import { Dt as theme, _ as defaultRuntime } from "./entry.js";
2
- import "./auth-profiles-Q1xTr5SX.js";
2
+ import "./auth-profiles-BBniPGeS.js";
3
3
  import "./exec-CBKBIMpA.js";
4
4
  import "./agent-scope-D-jRCY0d.js";
5
5
  import "./github-copilot-token-DuFIqfeC.js";
6
- import "./manifest-registry-Czr39pxG.js";
7
- import { i as loadConfig } from "./config-BNTB6qj8.js";
6
+ import "./manifest-registry-D5bnO5uA.js";
7
+ import { i as loadConfig } from "./config-DXt3pc08.js";
8
8
  import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-Cmumpn76.js";
9
9
  import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
10
10
  import { t as renderTable } from "./table-D01d2GuY.js";
@@ -2,8 +2,8 @@ import { Dt as theme, Et as isRich, _ as defaultRuntime } from "./entry.js";
2
2
  import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
3
3
  import { t as runCommandWithTimeout } from "./exec-CBKBIMpA.js";
4
4
  import { d as hasBinary } from "./frontmatter-B8duUx_6.js";
5
- import "./skills-hAdgFdrv.js";
6
- import "./manifest-registry-Czr39pxG.js";
5
+ import "./skills-D_oCiaQn.js";
6
+ import "./manifest-registry-D5bnO5uA.js";
7
7
  import "./redact-B40lik2B.js";
8
8
  import "./errors-Ba_ROWsq.js";
9
9
  import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
@@ -5,9 +5,9 @@ import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
5
5
  import { t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
6
6
  import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
7
7
  import "./boolean-BsqeuxE6.js";
8
- import "./manifest-registry-C4BxOMWX.js";
8
+ import "./manifest-registry-BDSRH8nU.js";
9
9
  import { d as hasBinary } from "./frontmatter-DWQhtOo7.js";
10
- import "./skills-6jdJQ5ZL.js";
10
+ import "./skills-BG8FpqDp.js";
11
11
  import "./redact-f-Q-hFt_.js";
12
12
  import "./errors-BF3TeRH2.js";
13
13
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
@@ -1,7 +1,7 @@
1
1
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
2
2
  import { r as resolveCliName } from "./command-format-COaS-S7B.js";
3
3
  import { t as note } from "./note-DQ9BvHF2.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DaW26e_r.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-EO1xz8q6.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { r as resolveCliName } from "./command-format-BtYOfWxC.js";
2
2
  import { t as resolveSymiPackageRoot } from "./symi-root-BNuQ4lAT.js";
3
3
  import { t as note } from "./note-DDecZomM.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BHAASnn7.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-B1wj8Q43.js";
5
5
  import { spawnSync } from "node:child_process";
6
6
  import path from "node:path";
7
7
 
@@ -2,11 +2,11 @@ import { Gt as resolveLegacyStateDirs, Kt as resolveNewStateDir, Pt as CONFIG_PA
2
2
  import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
3
3
  import { m as DEFAULT_ACCOUNT_ID, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-DjZ7Z1hW.js";
4
4
  import { l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
5
- import { d as SymiSchema, n as migrateLegacyConfig, o as readConfigFileSnapshot } from "./config-BNTB6qj8.js";
6
- import { M as canonicalizeMainSessionAlias, l as saveSessionStore } from "./sessions-Cfa6JEB3.js";
5
+ import { d as SymiSchema, n as migrateLegacyConfig, o as readConfigFileSnapshot } from "./config-DXt3pc08.js";
6
+ import { M as canonicalizeMainSessionAlias, l as saveSessionStore } from "./sessions-BPD85pWA.js";
7
7
  import { l as listTelegramAccountIds, u as resolveTelegramAccount } from "./plugins-CwSlLxM8.js";
8
8
  import { t as note } from "./note-DDecZomM.js";
9
- import { t as applyPluginAutoEnable } from "./plugin-auto-enable-D6ENR3Xg.js";
9
+ import { t as applyPluginAutoEnable } from "./plugin-auto-enable-BvmQklg-.js";
10
10
  import { t as isWithinDir } from "./path-safety-CP6a8uVu.js";
11
11
  import { n as normalizeTelegramAllowFromEntry, t as isNumericTelegramUserId } from "./allow-from-l_kKpSVO.js";
12
12
  import os from "node:os";
@@ -3,11 +3,11 @@ import { _ as resolveHomeDir, d as isRecord } from "./utils-B-0b9bGM.js";
3
3
  import { m as DEFAULT_ACCOUNT_ID, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-DCt45XZa.js";
4
4
  import { l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
5
5
  import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
6
- import { d as SymiSchema, n as migrateLegacyConfig, o as readConfigFileSnapshot } from "./config-Dz95lSBW.js";
7
- import { l as saveSessionStore, z as canonicalizeMainSessionAlias } from "./sessions-Cpgnq0pA.js";
6
+ import { d as SymiSchema, n as migrateLegacyConfig, o as readConfigFileSnapshot } from "./config-PXAJCHa5.js";
7
+ import { l as saveSessionStore, z as canonicalizeMainSessionAlias } from "./sessions-BeYHj0gr.js";
8
8
  import { l as listTelegramAccountIds, u as resolveTelegramAccount } from "./plugins-DKDeQZF0.js";
9
9
  import { t as note } from "./note-DQ9BvHF2.js";
10
- import { t as applyPluginAutoEnable } from "./plugin-auto-enable-CP0nONRL.js";
10
+ import { t as applyPluginAutoEnable } from "./plugin-auto-enable-BsGorrCZ.js";
11
11
  import { t as isWithinDir } from "./path-safety-D55Cxg8r.js";
12
12
  import { n as normalizeTelegramAllowFromEntry, t as isNumericTelegramUserId } from "./allow-from-BIJVrwCW.js";
13
13
  import fs from "node:fs";
package/dist/entry.js CHANGED
@@ -2500,7 +2500,7 @@ if (!ensureExperimentalWarningSuppressed()) {
2500
2500
  applyCliProfileEnv({ profile: parsed.profile });
2501
2501
  process$1.argv = parsed.argv;
2502
2502
  }
2503
- import("./run-main-ChyAx3oY.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2503
+ import("./run-main-Cv91hLSK.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2504
2504
  console.error("[symi] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
2505
2505
  process$1.exitCode = 1;
2506
2506
  });