@symerian/symi 2.7.7 → 2.7.9

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 (410) hide show
  1. package/dist/{acp-cli-DLsBwWlS.js → acp-cli-DwKj-AqM.js} +3 -3
  2. package/dist/{acp-cli-CeN5gs7J.js → acp-cli-lkOF8AeX.js} +3 -3
  3. package/dist/{agents-CCeOMXJF.js → agents-Qr0BDw_h.js} +7 -7
  4. package/dist/{agents.config-AdyGWyGd.js → agents.config-D0ih9tP3.js} +1 -1
  5. package/dist/{agents.config-B8-mSnnL.js → agents.config-DIjsIDbS.js} +1 -1
  6. package/dist/{audio-preflight-BUoEMkmr.js → audio-preflight-D0nJ1LEt.js} +7 -7
  7. package/dist/{audio-preflight-3Wa38hZz.js → audio-preflight-DJXj9QP9.js} +13 -13
  8. package/dist/{audio-preflight-Bsa1_iU3.js → audio-preflight-D_g9Duqw.js} +7 -7
  9. package/dist/{audio-preflight-C45lDI-t.js → audio-preflight-DfALITTK.js} +13 -13
  10. package/dist/{audit-DD5qcj2W.js → audit-DVUHZrf4.js} +7 -7
  11. package/dist/{audit-G3JpLuYZ.js → audit-DgAM_dWL.js} +7 -7
  12. package/dist/{auth-choice-B97lJuV1.js → auth-choice-DhI8MW-5.js} +4 -4
  13. package/dist/{auth-choice-BkF4yNXk.js → auth-choice-PdYn-qiM.js} +4 -4
  14. package/dist/{banner-kmyj39fQ.js → banner-BQhYK_Ag.js} +1 -1
  15. package/dist/{browser-cli-LlkXk8qz.js → browser-cli-CQKRSqbb.js} +4 -4
  16. package/dist/{browser-cli-DPAw_dFl.js → browser-cli-ClxJjz9C.js} +4 -4
  17. package/dist/build-info.json +3 -3
  18. package/dist/bundled/boot-md/handler.js +16 -16
  19. package/dist/bundled/session-memory/handler.js +16 -16
  20. package/dist/{call-ple9aZCT.js → call-BrRWr7Lj.js} +2 -1
  21. package/dist/{call-CtiVeyeQ.js → call-CVqBgwrx.js} +2 -1
  22. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  23. package/dist/{catalog-NQ4pj9RI.js → catalog-DX1l43Ru.js} +1 -1
  24. package/dist/{catalog-DLQFKucJ.js → catalog-buoA8ik4.js} +1 -1
  25. package/dist/{channel-options-7M72jx9S.js → channel-options-CFwo8sFR.js} +2 -2
  26. package/dist/{channel-options-CWyYAyJ8.js → channel-options-ZHpChVVk.js} +2 -2
  27. package/dist/{channel-web-DNYIZGo5.js → channel-web-UmRhDGhI.js} +7 -7
  28. package/dist/{channels-cli-BbbQhLVm.js → channels-cli-CRDgQtex.js} +34 -34
  29. package/dist/{channels-cli-CIApZn8b.js → channels-cli-rzQvsXSw.js} +35 -35
  30. package/dist/{chrome-CDPH3KAn.js → chrome-BJvuH-NZ.js} +1 -1
  31. package/dist/{chrome-Cs57nwfJ.js → chrome-BUT--ob3.js} +1 -1
  32. package/dist/{chrome-PSMCM7XH.js → chrome-C08Z0XAa.js} +1 -1
  33. package/dist/{chrome-CWdu8vA2.js → chrome-D2ohnA09.js} +1 -1
  34. package/dist/cli/daemon-cli.js +1 -1
  35. package/dist/{cli-BdYpv3II.js → cli-CC9jaj6w.js} +28 -28
  36. package/dist/{cli-Chwue7dC.js → cli-DN6fX0Xu.js} +29 -29
  37. package/dist/{command-registry-X9-mDiVG.js → command-registry-qqb2gJ4P.js} +11 -11
  38. package/dist/{completion-cli-CKRgTAVA.js → completion-cli-BX_yaiom.js} +1 -1
  39. package/dist/{completion-cli-C6CUvtmX.js → completion-cli-g-Vdnude.js} +2 -2
  40. package/dist/{config-1z3NlJzC.js → config-BAVNLbja.js} +1 -1
  41. package/dist/{config-CnQmFG2h.js → config-BkZ9HOKT.js} +1 -1
  42. package/dist/{config-XZ7orePK.js → config-DXt3pc08.js} +1 -1
  43. package/dist/{config-Cz_ObCzY.js → config-PXAJCHa5.js} +1 -1
  44. package/dist/{config-cli-CsqLGGPo.js → config-cli-CnFTSv-1.js} +3 -3
  45. package/dist/{config-cli-mWb-8dem.js → config-cli-CsCvDCZV.js} +3 -3
  46. package/dist/{config-guard-C7V44mcM.js → config-guard-CJ4iAPK5.js} +2 -2
  47. package/dist/{config-guard-NmACsPTr.js → config-guard-DsOhmFl6.js} +6 -6
  48. package/dist/{config-validation-Cp9cMMJA.js → config-validation-BvAfeukQ.js} +1 -1
  49. package/dist/{config-validation-DpNRQ6U4.js → config-validation-CY8IJG3b.js} +1 -1
  50. package/dist/{configure-C-0GLJbj.js → configure-BYd07Mo5.js} +10 -10
  51. package/dist/{configure-cN-Og45p.js → configure-CAuW3YmR.js} +10 -10
  52. package/dist/{control-service-CSbQSkSn.js → control-service-Ce4HMDRY.js} +4 -4
  53. package/dist/{control-service-Cqck1Zry.js → control-service-D0IdaeI8.js} +4 -4
  54. package/dist/control-ui/css/style.css +213 -6
  55. package/dist/control-ui/index.html +24 -2
  56. package/dist/control-ui/js/connections.js +193 -40
  57. package/dist/{cron-cli-CnWIltKL.js → cron-cli--z6DSGhk.js} +4 -4
  58. package/dist/{cron-cli-DLn4ynWB.js → cron-cli-DZJZ_EvY.js} +4 -4
  59. package/dist/{daemon-cli-DGXcyiDn.js → daemon-cli-B9yneKpO.js} +6 -6
  60. package/dist/{daemon-cli-BUO3va5K.js → daemon-cli-bwFAShzf.js} +6 -6
  61. package/dist/daemon-cli.js +3 -1
  62. package/dist/{daemon-runtime-BetFDUaM.js → daemon-runtime-BT1zC2PU.js} +1 -1
  63. package/dist/{daemon-runtime-CbbrW5g3.js → daemon-runtime-BV78EN62.js} +1 -1
  64. package/dist/{deliver-BLNOhQLM.js → deliver-B36OzmeP.js} +2 -2
  65. package/dist/{deliver-DFAium1x.js → deliver-BLt_liXS.js} +3 -3
  66. package/dist/{deliver-DGSxISab.js → deliver-CLZGlRZt.js} +2 -2
  67. package/dist/{deliver-Co2XquFO.js → deliver-lG9ITE8w.js} +3 -3
  68. package/dist/{devices-cli-BvMSzdXp.js → devices-cli-fVRpoa9z.js} +3 -3
  69. package/dist/{devices-cli-CCyr0lUw.js → devices-cli-oqibXYae.js} +3 -3
  70. package/dist/{directory-cli-JgFtCkve.js → directory-cli-CQ5O6Z5j.js} +2 -2
  71. package/dist/{directory-cli-CtA0O-ho.js → directory-cli-Ca5P3Bdg.js} +2 -2
  72. package/dist/{dns-cli-ClxFzTrN.js → dns-cli-7lxNoNVz.js} +2 -2
  73. package/dist/{dns-cli-XEIAfGBW.js → dns-cli-HQ5yjLoE.js} +2 -2
  74. package/dist/{docs-cli-BB4yLXGO.js → docs-cli-BOa4OKW4.js} +2 -2
  75. package/dist/{docs-cli-qE-blOLC.js → docs-cli-Dol0VaNr.js} +2 -2
  76. package/dist/{doctor-completion-9YerM5WQ.js → doctor-completion-Cqce5h2X.js} +1 -1
  77. package/dist/{doctor-completion-CctxaDOf.js → doctor-completion-Dqfl4aR1.js} +1 -1
  78. package/dist/{doctor-config-flow-C7EIHqIm.js → doctor-config-flow-C81j0-sE.js} +3 -3
  79. package/dist/{doctor-config-flow-COCO8sJB.js → doctor-config-flow-CN8seKLA.js} +3 -3
  80. package/dist/entry.js +1 -1
  81. package/dist/{exec-approvals-cli-SLQmCzAk.js → exec-approvals-cli-BpOqYXNL.js} +5 -5
  82. package/dist/{exec-approvals-cli-Be49SVlp.js → exec-approvals-cli-DjGZKQbZ.js} +5 -5
  83. package/dist/extensionAPI.js +16 -16
  84. package/dist/{gateway-cli-DFwW91fW.js → gateway-cli-BUqL_Yh6.js} +49 -48
  85. package/dist/{gateway-cli-EspQMxcD.js → gateway-cli-DA1fRZ5w.js} +50 -49
  86. package/dist/{gateway-rpc-D1Oid7kh.js → gateway-rpc-Bp0KNJtL.js} +1 -1
  87. package/dist/{gateway-rpc-BPldxGhH.js → gateway-rpc-XT8cFwtz.js} +1 -1
  88. package/dist/{glass-ui-ws-C9slRAdq.js → glass-ui-ws-BzBtCYP7.js} +39 -39
  89. package/dist/{glass-ui-ws-BCAruY1k.js → glass-ui-ws-Cm-WtdFI.js} +40 -40
  90. package/dist/{health-CUAawozd.js → health-Bx8UUqFA.js} +5 -5
  91. package/dist/{health-uSVTJefC.js → health-C7HtwYDj.js} +5 -5
  92. package/dist/{hooks-cli-NOol1x2D.js → hooks-cli-5G9JN39f.js} +29 -29
  93. package/dist/{hooks-cli-1hn9EEhc.js → hooks-cli-DtVT3wM_.js} +30 -30
  94. package/dist/{image-9tqGkUqf.js → image-BHhzdmbq.js} +2 -2
  95. package/dist/{image-Dopj30W7.js → image-BnO8X_hj.js} +2 -2
  96. package/dist/{image-DFxGwWA7.js → image-DXco5IYt.js} +2 -2
  97. package/dist/{image-Bd9ilPV9.js → image-D_qN_IxA.js} +2 -2
  98. package/dist/index.js +38 -38
  99. package/dist/{lifecycle-core-AeKXuI87.js → lifecycle-core-B9EgW7Tg.js} +2 -2
  100. package/dist/{lifecycle-core-Dpd8ty8k.js → lifecycle-core-JD8GNX_f.js} +2 -2
  101. package/dist/llm-slug-generator.js +16 -16
  102. package/dist/{login-CQTjtlgX.js → login-BgJLYdBR.js} +2 -2
  103. package/dist/{login-CPDAMiNc.js → login-CksRbu5D.js} +2 -2
  104. package/dist/{login-BKjGtdQb.js → login-DiorUpLk.js} +2 -2
  105. package/dist/{login-qr-BnV3nWaD.js → login-qr-B0SnFKfa.js} +3 -3
  106. package/dist/{login-qr-4Pmnupol.js → login-qr-BkwojQSe.js} +3 -3
  107. package/dist/{login-qr-Ca_QjL8s.js → login-qr-COIr6FGZ.js} +3 -3
  108. package/dist/{login-qr-BkqlPQja.js → login-qr-De_4jYaF.js} +3 -3
  109. package/dist/{login-KF21s52V.js → login-tgA4RM8O.js} +2 -2
  110. package/dist/{logs-cli-wAogU3fl.js → logs-cli-gU7p7zX0.js} +4 -4
  111. package/dist/{logs-cli-BLyCHsIE.js → logs-cli-tJPD_Dps.js} +4 -4
  112. package/dist/{manifest-registry-C4BxOMWX.js → manifest-registry-BDSRH8nU.js} +2 -1
  113. package/dist/{manifest-registry-yb7sAlu4.js → manifest-registry-CBCGTsIb.js} +2 -1
  114. package/dist/{manifest-registry-Czr39pxG.js → manifest-registry-D5bnO5uA.js} +2 -1
  115. package/dist/{manifest-registry-D-mTF1cj.js → manifest-registry-DWdYdchb.js} +2 -1
  116. package/dist/{memory-cli-MMLg1Ccf.js → memory-cli-AoMrHA5O.js} +1 -1
  117. package/dist/{memory-cli-CY3CHJS9.js → memory-cli-Bf2sefbp.js} +1 -1
  118. package/dist/{model-catalog-BkurhUo7.js → model-catalog-DKGSg6jF.js} +2 -2
  119. package/dist/{model-catalog-Bkny3qg9.js → model-catalog-Dex2EDUJ.js} +2 -2
  120. package/dist/{model-picker-CkXMb7R4.js → model-picker-D-n-rWyt.js} +2 -2
  121. package/dist/{model-picker-Bl_c2WTt.js → model-picker-RQfDGgfM.js} +2 -2
  122. package/dist/{models-CYqsDjad.js → models-DQthIpnz.js} +8 -8
  123. package/dist/{models-cli-CmU3OOJG.js → models-cli-D8zc0jSg.js} +32 -32
  124. package/dist/{models-cli-mOTgaVlj.js → models-cli-UaHeUaJq.js} +31 -31
  125. package/dist/{models-config-C7LKdahT.js → models-config-B91ShhoT.js} +1 -1
  126. package/dist/{models-config-CPAA0Wkr.js → models-config-J1x_DaPn.js} +1 -1
  127. package/dist/{node-cli-BJ1yRo3F.js → node-cli-jdFJpJym.js} +10 -10
  128. package/dist/{node-cli-dsjkpZpf.js → node-cli-jnHMAtfE.js} +10 -10
  129. package/dist/{nodes-cli-BxLO-rv5.js → nodes-cli-6vHqlpLI.js} +4 -4
  130. package/dist/{nodes-cli-D1Fz0Q2m.js → nodes-cli-DxHMNlWq.js} +4 -4
  131. package/dist/{onboard-Cf49_nCM.js → onboard-C1GtzpAc.js} +7 -7
  132. package/dist/{onboard-channels-CrQDcwVv.js → onboard-channels-CUUTFx1F.js} +3 -3
  133. package/dist/{onboard-channels-CIP2VRJ-.js → onboard-channels-HyGv2y5c.js} +3 -3
  134. package/dist/{onboard-custom-BVNvbjaX.js → onboard-custom-B1paBymW.js} +2 -2
  135. package/dist/{onboard-custom-MKL2uerp.js → onboard-custom-B3CBlZe5.js} +2 -2
  136. package/dist/{onboard-helpers-09M-gWu4.js → onboard-helpers-7H_XiJt-.js} +2 -2
  137. package/dist/{onboard-helpers-B1El5sBR.js → onboard-helpers-CPSKXD5k.js} +2 -2
  138. package/dist/{onboard-remote-DD3wt16B.js → onboard-remote-BlCdyTsP.js} +1 -1
  139. package/dist/{onboard-remote-C9Ftkn3-.js → onboard-remote-DFavRxQ6.js} +1 -1
  140. package/dist/{onboard-skills-kU_Yop1T.js → onboard-skills-CssuFDjw.js} +3 -3
  141. package/dist/{onboard-skills-dmWPtzui.js → onboard-skills-DVtfVPsB.js} +3 -3
  142. package/dist/{onboard-TK9M_DAs.js → onboard-sl1Xputw.js} +7 -7
  143. package/dist/{onboarding-BQUTtbxF.js → onboarding-B4qg0ZYp.js} +10 -10
  144. package/dist/{onboarding-CfG_bJab.js → onboarding-C89rTOOy.js} +10 -10
  145. package/dist/{onboarding.finalize-Dv8-c9UZ.js → onboarding.finalize-CGk4vov2.js} +36 -36
  146. package/dist/{onboarding.finalize-DycOefUd.js → onboarding.finalize-ClJ1HBVt.js} +34 -34
  147. package/dist/{onboarding.gateway-config-LqxG8IjE.js → onboarding.gateway-config-TM8ERKyn.js} +5 -5
  148. package/dist/{onboarding.gateway-config-dLlNI0HQ.js → onboarding.gateway-config-vGTQDqA6.js} +5 -5
  149. package/dist/{outbound-DHoZh3-b.js → outbound-CX-uuDet.js} +1 -1
  150. package/dist/{outbound-BdTCdEPw.js → outbound-Ct6vGE68.js} +1 -1
  151. package/dist/{outbound-neBb4qTL.js → outbound-D6GeeR8F.js} +1 -1
  152. package/dist/{outbound-BfHd69Dr.js → outbound-XakUc977.js} +1 -1
  153. package/dist/{pairing-cli-DOtEC7pl.js → pairing-cli-C8KSZlA7.js} +2 -2
  154. package/dist/{pairing-cli-CG57JnkE.js → pairing-cli-DmISXPhp.js} +2 -2
  155. package/dist/{pi-embedded-lpIsgmb9.js → pi-embedded-BaNpG0Aq.js} +60 -36
  156. package/dist/{pi-embedded-helpers-Bhi5wJBG.js → pi-embedded-helpers-BET359cH.js} +6 -6
  157. package/dist/{pi-embedded-helpers-DaWb-3Gv.js → pi-embedded-helpers-DSscUmkR.js} +1 -1
  158. package/dist/{pi-embedded-helpers-CU7jP5wD.js → pi-embedded-helpers-DcN8GHTt.js} +6 -6
  159. package/dist/{pi-embedded-helpers-BqeG6ogg.js → pi-embedded-helpers-DpOccVre.js} +1 -1
  160. package/dist/{pi-tools.policy-DN0wUEFa.js → pi-tools.policy-BpN-v9bT.js} +2 -2
  161. package/dist/{pi-tools.policy-jD4uEUBo.js → pi-tools.policy-DOVQ8dDx.js} +2 -2
  162. package/dist/{plugin-auto-enable-Dcki5Acl.js → plugin-auto-enable-BsGorrCZ.js} +1 -1
  163. package/dist/{plugin-auto-enable-hvfjAaew.js → plugin-auto-enable-BvmQklg-.js} +1 -1
  164. package/dist/{plugin-registry-BtHWHT4p.js → plugin-registry-7MeuYUTG.js} +2 -2
  165. package/dist/{plugin-registry-1jm5tMNl.js → plugin-registry-Dx8MaVaX.js} +2 -2
  166. package/dist/plugin-sdk/{accounts-BtaOa4z_.js → accounts-BToL3HlP.js} +1 -1
  167. package/dist/plugin-sdk/{accounts-Ddm33hQm.js → accounts-D9zGZU5t.js} +3 -3
  168. package/dist/plugin-sdk/{accounts-s-AdhXVR.js → accounts-Dtszw3Zn.js} +1 -1
  169. package/dist/plugin-sdk/{active-listener-BgwYQkdI.js → active-listener-BRYwA2Ic.js} +1 -1
  170. package/dist/plugin-sdk/{agent-scope-CYYpcO9W.js → agent-scope-C3gMMKCU.js} +2 -2
  171. package/dist/plugin-sdk/agents/pi-embedded-runner/email-capability-prompt.d.ts +11 -0
  172. package/dist/plugin-sdk/{api-key-rotation-DGJZ8SVa.js → api-key-rotation-CBsLb_4V.js} +1 -1
  173. package/dist/plugin-sdk/{audio-preflight-BG_wJSnx.js → audio-preflight-B-Laxbmb.js} +24 -24
  174. package/dist/plugin-sdk/{bindings-C7hRtgYW.js → bindings-BbwoUGPx.js} +2 -2
  175. package/dist/plugin-sdk/{channel-activity-DoC1xtDu.js → channel-activity-Ji7f0gqq.js} +1 -1
  176. package/dist/plugin-sdk/{channel-web-D8iVDOP9.js → channel-web-C6_r-2VI.js} +22 -22
  177. package/dist/plugin-sdk/{chrome-D5HOVhVd.js → chrome-D9kN9org.js} +3 -3
  178. package/dist/plugin-sdk/{chunk-Dw2XBYXv.js → chunk-jvk9axTQ.js} +1 -1
  179. package/dist/plugin-sdk/{command-format-GKSevep4.js → command-format-DSdvQ_M5.js} +1 -1
  180. package/dist/plugin-sdk/{commands-registry-Be2qTyJK.js → commands-registry-By2smfUF.js} +4 -4
  181. package/dist/plugin-sdk/{config-B0RNG4KH.js → config-BzupW6LN.js} +9 -9
  182. package/dist/plugin-sdk/{deliver-BgipoVt6.js → deliver-CNuL0O4P.js} +10 -10
  183. package/dist/plugin-sdk/{diagnostic-W5975qL9.js → diagnostic-EyuCSUXO.js} +1 -1
  184. package/dist/plugin-sdk/{image-F536ZrNo.js → image-BmU8yYnz.js} +4 -4
  185. package/dist/plugin-sdk/{image-ops-BlQR__MN.js → image-ops-Bnp6LXEx.js} +1 -1
  186. package/dist/plugin-sdk/index.js +54 -54
  187. package/dist/plugin-sdk/{ir-BJ6BHE5b.js → ir-Fb3qpcis.js} +4 -4
  188. package/dist/plugin-sdk/{local-roots-BHLNSI8U.js → local-roots-Ckk1QfzI.js} +3 -3
  189. package/dist/plugin-sdk/{login-zRvF566v.js → login-eqtXmx21.js} +7 -7
  190. package/dist/plugin-sdk/{login-qr-DnVmgDSL.js → login-qr-Cbt9KlK3.js} +9 -9
  191. package/dist/plugin-sdk/{manager-UQQc8UDq.js → manager-Dc9yVyTt.js} +8 -8
  192. package/dist/plugin-sdk/{manifest-registry-CPnHl_K3.js → manifest-registry-hy3Bn-r9.js} +3 -2
  193. package/dist/plugin-sdk/{markdown-tables-BoYFajMu.js → markdown-tables-Dfaqilz6.js} +1 -1
  194. package/dist/plugin-sdk/{message-channel-COTAJzHd.js → message-channel-BdI5Ra9S.js} +1 -1
  195. package/dist/plugin-sdk/{model-selection-Bbs4XGPG.js → model-selection-CtVwtb6y.js} +4 -4
  196. package/dist/plugin-sdk/{outbound-ComvEv1j.js → outbound-ZcDVYNoy.js} +7 -7
  197. package/dist/plugin-sdk/{outbound-attachment-CqhMcNuS.js → outbound-attachment-DJ3CI92h.js} +2 -2
  198. package/dist/plugin-sdk/{pi-auth-json-B_aZna6j.js → pi-auth-json-r2U9wDoc.js} +1 -1
  199. package/dist/plugin-sdk/{pi-embedded-helpers-C-iQL8fR.js → pi-embedded-helpers-BCNFLt_H.js} +17 -17
  200. package/dist/plugin-sdk/{plugins-BNByVCIH.js → plugins-BbAvhC25.js} +4 -4
  201. package/dist/plugin-sdk/{pw-ai-oafsM7Z6.js → pw-ai-B3jHOSti.js} +8 -8
  202. package/dist/plugin-sdk/{qmd-manager-BZvD_Hd3.js → qmd-manager-C6GM0Qik.js} +4 -4
  203. package/dist/plugin-sdk/{registry-D0xTnUWt.js → registry--_pGht6S.js} +2 -2
  204. package/dist/plugin-sdk/{replies-Df8hdWHU.js → replies-DkGqfiO4.js} +3 -3
  205. package/dist/plugin-sdk/{reply-BSU5u23A.js → reply-CIDYJYie.js} +105 -81
  206. package/dist/plugin-sdk/{reply-prefix-uxfMZW4p.js → reply-prefix-BHuV5t70.js} +1 -1
  207. package/dist/plugin-sdk/{resolve-outbound-target-BiyAyTWz.js → resolve-outbound-target-BkCUbYGV.js} +2 -2
  208. package/dist/plugin-sdk/{resolve-route-B3CCBumQ.js → resolve-route-D3JH_D2N.js} +3 -3
  209. package/dist/plugin-sdk/{retry-CwQ_iIj8.js → retry-ilSJqnz9.js} +1 -1
  210. package/dist/plugin-sdk/{runner-BlEQTSlO.js → runner-WzrwRCvL.js} +9 -9
  211. package/dist/plugin-sdk/{send-DjUL-5e8.js → send-7NqCWP0r.js} +7 -7
  212. package/dist/plugin-sdk/{send-NmhuhIk0.js → send-BGE1fXlm.js} +6 -6
  213. package/dist/plugin-sdk/{send-DSaRu7CO.js → send-BP5pSPaZ.js} +6 -6
  214. package/dist/plugin-sdk/{send-BGYE1Ojf.js → send-FFUmNt0K.js} +10 -10
  215. package/dist/plugin-sdk/{send-4CJD3HN9.js → send-ZhAe1nXO.js} +10 -10
  216. package/dist/plugin-sdk/{session-CrxOeAtT.js → session-8vfTL_H6.js} +4 -4
  217. package/dist/plugin-sdk/{skill-commands-DSDv-F1f.js → skill-commands-DF3ouLEu.js} +5 -5
  218. package/dist/plugin-sdk/{skills-_yTP47Cd.js → skills-C9DbB-Kp.js} +7 -7
  219. package/dist/plugin-sdk/{sqlite-CxAR5ttJ.js → sqlite-Cq_7Cg4E.js} +1 -1
  220. package/dist/plugin-sdk/{store-BdrNabcU.js → store-Do3t33-c.js} +2 -2
  221. package/dist/plugin-sdk/{subsystem-B2uDN3TV.js → subsystem-Coz2AgU8.js} +1 -1
  222. package/dist/plugin-sdk/{tables-DNwXwNFa.js → tables-DR0NmBeH.js} +1 -1
  223. package/dist/plugin-sdk/{target-errors-Paro1BjP.js → target-errors-B7YyMnIi.js} +2 -2
  224. package/dist/plugin-sdk/{thinking-CXqf7WTe.js → thinking-DCNUIAHY.js} +5 -5
  225. package/dist/plugin-sdk/{tokens-bC3UVmVH.js → tokens-CWMflosr.js} +1 -1
  226. package/dist/plugin-sdk/{tool-images-HJ2sfZDV.js → tool-images-D7Lno-TE.js} +2 -2
  227. package/dist/plugin-sdk/{tool-loop-detection-Dthxc7SC.js → tool-loop-detection-BAUvBvAO.js} +2 -2
  228. package/dist/plugin-sdk/web-CHKraWl6.js +66 -0
  229. package/dist/plugin-sdk/{whatsapp-actions-C_Yw2LhH.js → whatsapp-actions-0DfquiaD.js} +21 -21
  230. package/dist/{plugins-cli-uIEn-Rls.js → plugins-cli-bblxpPhT.js} +31 -31
  231. package/dist/{plugins-cli-DZAESODm.js → plugins-cli-oatWFlGr.js} +30 -30
  232. package/dist/{program-BDFBNGBK.js → program-B4MbPh6k.js} +37 -37
  233. package/dist/{program-context-CIIYbXwz.js → program-context-BfdA1JM9.js} +39 -39
  234. package/dist/{prompt-select-styled-Drqp3Q79.js → prompt-select-styled-DNhjvdZL.js} +15 -15
  235. package/dist/{prompt-select-styled-C5haNrfL.js → prompt-select-styled-bMJTZkj7.js} +15 -15
  236. package/dist/{provider-auth-helpers-rSnpzVFU.js → provider-auth-helpers-CezJXPrZ.js} +2 -2
  237. package/dist/{provider-auth-helpers-C90hxnuP.js → provider-auth-helpers-D9BOiQMP.js} +2 -2
  238. package/dist/{push-apns-DhAfcmF5.js → push-apns-CL2MBhWP.js} +1 -1
  239. package/dist/{push-apns-ze6w0evQ.js → push-apns-DUWtWoB-.js} +1 -1
  240. package/dist/{pw-ai-ePWNGOSp.js → pw-ai-B476LzSK.js} +3 -3
  241. package/dist/{pw-ai-seGb-ko0.js → pw-ai-DE8wmtet.js} +3 -3
  242. package/dist/{pw-ai-BeOKbmWW.js → pw-ai-Df3SCnGC.js} +3 -3
  243. package/dist/{pw-ai-P5lOraHd.js → pw-ai-VRkM0Qt0.js} +3 -3
  244. package/dist/{qr-cli-BIl334kM.js → qr-cli-Bgejiz98.js} +2 -2
  245. package/dist/{qr-cli-CGO65wLz.js → qr-cli-D_7jTOhP.js} +2 -2
  246. package/dist/{register.agent-Bpm5Fh13.js → register.agent-B-v1ixge.js} +39 -39
  247. package/dist/{register.agent-BirwyJVS.js → register.agent-Dms0oymW.js} +37 -37
  248. package/dist/{register.configure-BQet1kco.js → register.configure-CVct6y53.js} +44 -44
  249. package/dist/{register.configure-C5UDp3N5.js → register.configure-MY0P8ucP.js} +43 -43
  250. package/dist/{register.maintenance-DYkT5jnV.js → register.maintenance-Ciblsa6H.js} +40 -40
  251. package/dist/{register.maintenance-UfVK3mjx.js → register.maintenance-DpSSW9tp.js} +42 -42
  252. package/dist/{register.message-CKq6NCSm.js → register.message-Csn-WBH0.js} +30 -30
  253. package/dist/{register.message-C3SzLAgk.js → register.message-FsBEsQeD.js} +29 -29
  254. package/dist/{register.onboard-B9a9EHLC.js → register.onboard-BQ-ciW9l.js} +36 -36
  255. package/dist/{register.onboard-D9Cm7LZb.js → register.onboard-MIhaldvp.js} +35 -35
  256. package/dist/{register.setup-ybjh7_q_.js → register.setup-DCTamI7u.js} +35 -35
  257. package/dist/{register.setup-ycd7a2ur.js → register.setup-M0O0Tp-n.js} +36 -36
  258. package/dist/{register.status-health-sessions-2QNhX3pX.js → register.status-health-sessions-Drc5WQGq.js} +33 -33
  259. package/dist/{register.status-health-sessions-BryhDGnZ.js → register.status-health-sessions-DzKtjfA-.js} +35 -35
  260. package/dist/{register.subclis-Dxm9Un5O.js → register.subclis-Btg8-Nnf.js} +29 -29
  261. package/dist/{replies-DFjjnJ3D.js → replies-BVeiOxGr.js} +1 -1
  262. package/dist/{replies-B-xLfipR.js → replies-BWgZR_w5.js} +1 -1
  263. package/dist/{replies-j1a_GMFx.js → replies-CNJXJgMU.js} +1 -1
  264. package/dist/{replies-BQj0lY4W.js → replies-CsUBFXf6.js} +1 -1
  265. package/dist/{reply-WdyooxLc.js → reply-B0azB7WR.js} +70 -47
  266. package/dist/{routes-CRgMkkG0.js → routes-2b4mQUhe.js} +3 -3
  267. package/dist/{routes-K5Fj1g7Q.js → routes-C8PNEZ8b.js} +3 -3
  268. package/dist/{rpc-BWtktGFm.js → rpc-CHb_JvbM.js} +1 -1
  269. package/dist/{rpc-P3TWbEaf.js → rpc-Cog-Z1rx.js} +1 -1
  270. package/dist/{run-main-CijnQAcO.js → run-main-DfxDXt2d.js} +49 -49
  271. package/dist/{runner-ef6nFMvq.js → runner-BVgCl6yZ.js} +2 -2
  272. package/dist/{runner-DOVS95oz.js → runner-CSdQSvE8.js} +3 -3
  273. package/dist/{runner-B59C4Wdw.js → runner-C_BlQ2fG.js} +3 -3
  274. package/dist/{runner-B97ZHSOs.js → runner-D5nFF9E6.js} +2 -2
  275. package/dist/{sandbox-LreyCjoX.js → sandbox-BOVopTqv.js} +6 -6
  276. package/dist/{sandbox-DiPHRUDK.js → sandbox-CDxHBl3I.js} +6 -6
  277. package/dist/{sandbox-cli-Cb7iGM1l.js → sandbox-cli-0eu7BCa8.js} +8 -8
  278. package/dist/{sandbox-cli-B7p0Hp3r.js → sandbox-cli-BpfYaZBG.js} +8 -8
  279. package/dist/{security-cli-DqVGrNy5.js → security-cli-B5s73Le2.js} +11 -11
  280. package/dist/{security-cli-DALRwIjj.js → security-cli-CzWHkrqD.js} +11 -11
  281. package/dist/{send-DAbxpmwe.js → send-AbhXOS2H.js} +1 -1
  282. package/dist/{send-Dc09jNH2.js → send-B7aHpAco.js} +1 -1
  283. package/dist/{send-cpH_yqHj.js → send-B9_a63ZG.js} +1 -1
  284. package/dist/{send-B3j7hxxO.js → send-BKhluIbb.js} +1 -1
  285. package/dist/{send-brznOT92.js → send-BahPjsMR.js} +1 -1
  286. package/dist/{send-Co9egPXG.js → send-BcvVKfh2.js} +1 -1
  287. package/dist/{send-CkIwAjAB.js → send-BuJyyJe7.js} +1 -1
  288. package/dist/{send-BhKkBArw.js → send-C0K_2AUP.js} +1 -1
  289. package/dist/{send-CXuAFSJP.js → send-CBcCKe5w.js} +1 -1
  290. package/dist/{send-CuuFC05i.js → send-CCmxHtaA.js} +1 -1
  291. package/dist/{send-DlsuAlpS.js → send-CaUqpyyp.js} +1 -1
  292. package/dist/{send-EHiP2shE.js → send-D8AIYNR_.js} +1 -1
  293. package/dist/{send-Djb958bI.js → send-DFftzTHo.js} +1 -1
  294. package/dist/{send-BZZ4_x4c.js → send-Dmb0z8Yy.js} +1 -1
  295. package/dist/{send-C2rS0q26.js → send-DnsTDCll.js} +1 -1
  296. package/dist/{send-BMoIcGXM.js → send-H2g9Eaud.js} +1 -1
  297. package/dist/{send-CmP1lu-b.js → send-Yzy50T1h.js} +1 -1
  298. package/dist/{send-cM1DDAnI.js → send-pFcMiyew.js} +1 -1
  299. package/dist/{send-BlSnzj96.js → send-vqwluhp3.js} +1 -1
  300. package/dist/{send-Dkhr43v-.js → send-xTfsDEE2.js} +1 -1
  301. package/dist/{server-context-B4j3P5K6.js → server-context-BBaojT7U.js} +5 -5
  302. package/dist/{server-context-2Vn21Z8T.js → server-context-C2gfYdh8.js} +5 -5
  303. package/dist/{server-methods-Db4Zr1Uh.js → server-methods-BcBroG6v.js} +118 -20
  304. package/dist/{server-methods-DcQq8SQr.js → server-methods-OJbQNjOJ.js} +119 -21
  305. package/dist/{server-node-events-C_v8BnlG.js → server-node-events-AVxH5dXs.js} +29 -29
  306. package/dist/{server-node-events-CaL-a5Ml.js → server-node-events-Ba9K9DB9.js} +30 -30
  307. package/dist/{session-C33JrUuB.js → session-BGKShBIy.js} +1 -1
  308. package/dist/{session-DLof5lJz.js → session-BTLA3Rm7.js} +1 -1
  309. package/dist/{session-L_LqHxcV.js → session-BuAvI2u-.js} +1 -1
  310. package/dist/{session-BddH7QoH.js → session-tLyG4haq.js} +1 -1
  311. package/dist/{session-utils-Ch5rIQbz.js → session-utils-BPXkhuNM.js} +3 -3
  312. package/dist/{sessions-oOAi4H3s.js → sessions-BPD85pWA.js} +1 -1
  313. package/dist/{sessions-C8h-0oVK.js → sessions-BeYHj0gr.js} +1 -1
  314. package/dist/{sessions-RfQP0zIn.js → sessions-NTd36-CO.js} +3 -3
  315. package/dist/{shared-CF9jxSQs.js → shared-D8j919CK.js} +1 -1
  316. package/dist/{shared-DxlCJeK_.js → shared-DdGOSL9s.js} +1 -1
  317. package/dist/{skill-commands-CIkcmGzD.js → skill-commands-BMu-U3SX.js} +1 -1
  318. package/dist/{skill-commands-BVeV_mpq.js → skill-commands-BSJONVkt.js} +1 -1
  319. package/dist/{skill-commands-Cg_ajTBC.js → skill-commands-CkqZdod4.js} +1 -1
  320. package/dist/{skill-commands-eaynYuR6.js → skill-commands-D1hG6Ikz.js} +1 -1
  321. package/dist/{skills-6jdJQ5ZL.js → skills-BG8FpqDp.js} +1 -1
  322. package/dist/{skills-Bs0AW1g3.js → skills-CXxrn_e2.js} +1 -1
  323. package/dist/{skills-hAdgFdrv.js → skills-D_oCiaQn.js} +1 -1
  324. package/dist/{skills-BNpGMnp-.js → skills-XEbTRNYL.js} +1 -1
  325. package/dist/{skills-cli-o6AfvfLb.js → skills-cli-BIURlIkS.js} +6 -6
  326. package/dist/{skills-cli-Cf7sLA5e.js → skills-cli-DBDVQeo4.js} +6 -6
  327. package/dist/{skills-install-CWVdJkLn.js → skills-install-D8JjjETa.js} +1 -1
  328. package/dist/{skills-install-1ZdwGTnh.js → skills-install-Por3jP0P.js} +1 -1
  329. package/dist/{skills-status-C3ptXwnh.js → skills-status-CKmK1hOo.js} +1 -1
  330. package/dist/{skills-status-DKXJ-tbi.js → skills-status-DODCG6UU.js} +1 -1
  331. package/dist/{status-BSd4QQZY.js → status-CpWkGj5h.js} +2 -2
  332. package/dist/{status-BddhZm3Y.js → status-DNxAYvxM.js} +2 -2
  333. package/dist/{status-B17aJsTi.js → status-RlJA2XzQ.js} +11 -11
  334. package/dist/{status-DALZR6Rh.js → status-Ut-dfDT0.js} +12 -12
  335. package/dist/{status.update-DEn_vM2K.js → status.update-BGSQrlxW.js} +1 -1
  336. package/dist/{status.update-DFx1sm1w.js → status.update-C1I_7XIo.js} +1 -1
  337. package/dist/{subagent-registry-DLyi3sgU.js → subagent-registry-CsYeP8wc.js} +71 -48
  338. package/dist/{system-cli-DjQq8evF.js → system-cli-D3CVv1ab.js} +4 -4
  339. package/dist/{system-cli-BfQs2bCu.js → system-cli-rpyy5jcw.js} +4 -4
  340. package/dist/{systemd-hints-CitUdPEJ.js → systemd-hints-BWjICrbb.js} +1 -1
  341. package/dist/{systemd-hints-nyPn6fDv.js → systemd-hints-G9M4s_fF.js} +1 -1
  342. package/dist/{tui-D1JLyFne.js → tui-DfPeXwah.js} +4 -4
  343. package/dist/{tui-D1DDOQ5b.js → tui-LZPdrFmK.js} +4 -4
  344. package/dist/{tui-cli-9g2Fi07C.js → tui-cli-Bm3TJgXf.js} +11 -11
  345. package/dist/{tui-cli-D9jJkoxe.js → tui-cli-DFXZ7r1F.js} +11 -11
  346. package/dist/{unified-runner-Dxj9fcQO.js → unified-runner-BojeuKIk.js} +60 -36
  347. package/dist/{update-DEMKx4eC.js → update-BWwyHVQj.js} +1 -1
  348. package/dist/{update-Ya0e-JnM.js → update-DdQCEAVD.js} +1 -1
  349. package/dist/{update-cli-C0D0gizK.js → update-cli-Cb12PjyN.js} +44 -44
  350. package/dist/{update-cli-CqLTiVU8.js → update-cli-Cm4ftHhu.js} +46 -46
  351. package/dist/{update-runner-DnEVHl6G.js → update-runner-BE6kDMsw.js} +1 -1
  352. package/dist/{update-runner-DRxTynZP.js → update-runner-Cv6hDgKV.js} +1 -1
  353. package/dist/{web-1apyUJY6.js → web-BOv3xM7W.js} +32 -32
  354. package/dist/{web-BTM-eHmT.js → web-CYf5I3aU.js} +32 -32
  355. package/dist/{web-DRQN-o-U.js → web-Dxkxcp7P.js} +19 -19
  356. package/dist/{web-CpLsElI8.js → web-f1xT-H2y.js} +19 -19
  357. package/dist/{webhooks-cli-CVYW5w5y.js → webhooks-cli-UuxPLc9l.js} +3 -3
  358. package/dist/{webhooks-cli-Bgc_FCJP.js → webhooks-cli-YK0wXLCn.js} +3 -3
  359. package/dist/{whatsapp-actions-BWd0ZXyg.js → whatsapp-actions-3wS2mDjT.js} +3 -3
  360. package/dist/{whatsapp-actions-doS0R248.js → whatsapp-actions-CiXMwRR8.js} +3 -3
  361. package/dist/{whatsapp-actions-BA9n6KQd.js → whatsapp-actions-DyfuVva4.js} +3 -3
  362. package/dist/{whatsapp-actions-DqA8SCfH.js → whatsapp-actions-qetg6Gkh.js} +3 -3
  363. package/dist/{with-timeout-Cei98OCY.js → with-timeout-BIXdW2Bg.js} +1 -1
  364. package/dist/{with-timeout-DLKss9E3.js → with-timeout-emS7y-kf.js} +1 -1
  365. package/docs/connections/email.md +143 -0
  366. package/docs/connections/msteams.md +80 -0
  367. package/docs/connections/slack.md +91 -0
  368. package/extensions/bluebubbles/package.json +1 -1
  369. package/extensions/copilot-proxy/package.json +1 -1
  370. package/extensions/diagnostics-otel/package.json +1 -1
  371. package/extensions/discord/package.json +1 -1
  372. package/extensions/feishu/package.json +1 -1
  373. package/extensions/google-antigravity-auth/package.json +1 -1
  374. package/extensions/google-gemini-cli-auth/package.json +1 -1
  375. package/extensions/googlechat/package.json +1 -1
  376. package/extensions/imessage/package.json +1 -1
  377. package/extensions/irc/package.json +1 -1
  378. package/extensions/learning-loop/package.json +1 -1
  379. package/extensions/line/package.json +1 -1
  380. package/extensions/llm-task/package.json +1 -1
  381. package/extensions/matrix/CHANGELOG.md +12 -0
  382. package/extensions/matrix/package.json +1 -1
  383. package/extensions/mattermost/package.json +1 -1
  384. package/extensions/memory-core/package.json +1 -1
  385. package/extensions/memory-lancedb/package.json +1 -1
  386. package/extensions/minimax-portal-auth/package.json +1 -1
  387. package/extensions/msteams/CHANGELOG.md +12 -0
  388. package/extensions/msteams/package.json +1 -1
  389. package/extensions/nextcloud-talk/package.json +1 -1
  390. package/extensions/nostr/CHANGELOG.md +12 -0
  391. package/extensions/nostr/package.json +1 -1
  392. package/extensions/open-prose/package.json +1 -1
  393. package/extensions/outlook/package.json +1 -1
  394. package/extensions/pipeline/package.json +1 -1
  395. package/extensions/signal/package.json +1 -1
  396. package/extensions/slack/package.json +1 -1
  397. package/extensions/telegram/package.json +1 -1
  398. package/extensions/tlon/package.json +1 -1
  399. package/extensions/twitch/CHANGELOG.md +12 -0
  400. package/extensions/twitch/package.json +1 -1
  401. package/extensions/voice-call/CHANGELOG.md +12 -0
  402. package/extensions/voice-call/package.json +1 -1
  403. package/extensions/whatsapp/package.json +1 -1
  404. package/extensions/zalo/CHANGELOG.md +12 -0
  405. package/extensions/zalo/package.json +1 -1
  406. package/extensions/zalouser/CHANGELOG.md +12 -0
  407. package/extensions/zalouser/package.json +1 -1
  408. package/package.json +1 -1
  409. package/skills/connect-email/SKILL.md +141 -0
  410. package/dist/plugin-sdk/web-C9dYYAlm.js +0 -66
@@ -440,7 +440,8 @@ body {
440
440
  white-space: nowrap;
441
441
  appearance: none;
442
442
  -webkit-appearance: none;
443
- background-image: linear-gradient(45deg, transparent 50%, currentColor 50%),
443
+ background-image:
444
+ linear-gradient(45deg, transparent 50%, currentColor 50%),
444
445
  linear-gradient(135deg, currentColor 50%, transparent 50%);
445
446
  background-position:
446
447
  calc(100% - 10px) 50%,
@@ -3630,10 +3631,18 @@ body {
3630
3631
  font-weight: 600;
3631
3632
  letter-spacing: 0.04em;
3632
3633
  }
3633
- .debug-type--chat { color: var(--accent-cyan); }
3634
- .debug-type--agent { color: var(--accent-purple); }
3635
- .debug-type--error { color: #ef4444; }
3636
- .debug-type--other { color: rgba(255, 255, 255, 0.4); }
3634
+ .debug-type--chat {
3635
+ color: var(--accent-cyan);
3636
+ }
3637
+ .debug-type--agent {
3638
+ color: var(--accent-purple);
3639
+ }
3640
+ .debug-type--error {
3641
+ color: #ef4444;
3642
+ }
3643
+ .debug-type--other {
3644
+ color: rgba(255, 255, 255, 0.4);
3645
+ }
3637
3646
 
3638
3647
  .debug-summary {
3639
3648
  color: rgba(255, 255, 255, 0.55);
@@ -4114,10 +4123,12 @@ body {
4114
4123
  display: flex;
4115
4124
  align-items: center;
4116
4125
  gap: 8px;
4126
+ font-family: inherit;
4117
4127
  font-size: 12px;
4118
4128
  font-weight: 500;
4119
4129
  color: var(--accent-cyan);
4120
4130
  text-decoration: none;
4131
+ cursor: pointer;
4121
4132
  padding: 8px 14px;
4122
4133
  background: rgba(0, 212, 255, 0.1);
4123
4134
  border: 1px solid rgba(0, 212, 255, 0.2);
@@ -4129,6 +4140,203 @@ body {
4129
4140
  border-color: rgba(0, 212, 255, 0.35);
4130
4141
  }
4131
4142
 
4143
+ /* ── Docs Viewer Modal (scrollable markdown viewer) ────────────────────── */
4144
+
4145
+ .docs-viewer-overlay {
4146
+ position: fixed;
4147
+ inset: 0;
4148
+ z-index: 9100;
4149
+ display: flex;
4150
+ align-items: center;
4151
+ justify-content: center;
4152
+ background: rgba(0, 0, 0, 0.75);
4153
+ backdrop-filter: blur(10px);
4154
+ opacity: 0;
4155
+ visibility: hidden;
4156
+ transition:
4157
+ opacity 0.25s ease,
4158
+ visibility 0.25s ease;
4159
+ }
4160
+ .docs-viewer-overlay.open {
4161
+ opacity: 1;
4162
+ visibility: visible;
4163
+ }
4164
+
4165
+ .docs-viewer {
4166
+ position: relative;
4167
+ width: 92%;
4168
+ max-width: 820px;
4169
+ max-height: 82vh;
4170
+ display: flex;
4171
+ flex-direction: column;
4172
+ background: linear-gradient(135deg, rgba(15, 15, 25, 0.98), rgba(10, 10, 18, 0.98));
4173
+ border: 1px solid rgba(255, 255, 255, 0.12);
4174
+ border-radius: 16px;
4175
+ box-shadow:
4176
+ 0 28px 90px rgba(0, 0, 0, 0.7),
4177
+ 0 0 1px rgba(255, 255, 255, 0.1);
4178
+ transform: scale(0.96) translateY(12px);
4179
+ transition: transform 0.25s ease;
4180
+ overflow: hidden;
4181
+ }
4182
+ .docs-viewer-overlay.open .docs-viewer {
4183
+ transform: scale(1) translateY(0);
4184
+ }
4185
+
4186
+ .docs-viewer-header {
4187
+ display: flex;
4188
+ align-items: center;
4189
+ gap: 14px;
4190
+ padding: 18px 22px;
4191
+ border-bottom: 1px solid rgba(255, 255, 255, 0.08);
4192
+ flex-shrink: 0;
4193
+ }
4194
+ .docs-viewer-title {
4195
+ flex: 1;
4196
+ font-size: 16px;
4197
+ font-weight: 600;
4198
+ color: var(--text);
4199
+ letter-spacing: 0.02em;
4200
+ }
4201
+ .docs-viewer-close {
4202
+ width: 34px;
4203
+ height: 34px;
4204
+ border: none;
4205
+ background: rgba(255, 255, 255, 0.06);
4206
+ border-radius: 8px;
4207
+ color: var(--text-muted);
4208
+ cursor: pointer;
4209
+ display: flex;
4210
+ align-items: center;
4211
+ justify-content: center;
4212
+ transition: all 0.2s ease;
4213
+ }
4214
+ .docs-viewer-close:hover {
4215
+ background: rgba(255, 255, 255, 0.12);
4216
+ color: var(--text);
4217
+ }
4218
+
4219
+ .docs-viewer-body {
4220
+ padding: 20px 28px 28px;
4221
+ overflow-y: auto;
4222
+ flex: 1 1 auto;
4223
+ color: var(--text);
4224
+ font-size: 14px;
4225
+ line-height: 1.6;
4226
+ }
4227
+ .docs-viewer-loading,
4228
+ .docs-viewer-error {
4229
+ color: var(--text-muted);
4230
+ font-style: italic;
4231
+ padding: 8px 0;
4232
+ }
4233
+ .docs-viewer-error {
4234
+ color: var(--accent-red, #f87171);
4235
+ font-style: normal;
4236
+ }
4237
+
4238
+ .docs-viewer-body h1,
4239
+ .docs-viewer-body h2,
4240
+ .docs-viewer-body h3,
4241
+ .docs-viewer-body h4 {
4242
+ color: var(--text);
4243
+ font-weight: 600;
4244
+ line-height: 1.3;
4245
+ margin-top: 1.4em;
4246
+ margin-bottom: 0.5em;
4247
+ }
4248
+ .docs-viewer-body h1 {
4249
+ font-size: 22px;
4250
+ margin-top: 0;
4251
+ }
4252
+ .docs-viewer-body h2 {
4253
+ font-size: 18px;
4254
+ border-bottom: 1px solid rgba(255, 255, 255, 0.08);
4255
+ padding-bottom: 6px;
4256
+ }
4257
+ .docs-viewer-body h3 {
4258
+ font-size: 15px;
4259
+ color: var(--accent-cyan);
4260
+ }
4261
+ .docs-viewer-body h4 {
4262
+ font-size: 13px;
4263
+ text-transform: uppercase;
4264
+ letter-spacing: 0.06em;
4265
+ color: var(--text-muted);
4266
+ }
4267
+ .docs-viewer-body p {
4268
+ margin: 0.6em 0;
4269
+ }
4270
+ .docs-viewer-body ul,
4271
+ .docs-viewer-body ol {
4272
+ margin: 0.5em 0;
4273
+ padding-left: 1.4em;
4274
+ }
4275
+ .docs-viewer-body li {
4276
+ margin: 0.25em 0;
4277
+ }
4278
+ .docs-viewer-body a {
4279
+ color: var(--accent-cyan);
4280
+ text-decoration: underline;
4281
+ text-underline-offset: 2px;
4282
+ }
4283
+ .docs-viewer-body a:hover {
4284
+ color: var(--text);
4285
+ }
4286
+ .docs-viewer-body code {
4287
+ font-family: var(--font-mono);
4288
+ font-size: 12.5px;
4289
+ background: rgba(255, 255, 255, 0.06);
4290
+ border: 1px solid rgba(255, 255, 255, 0.08);
4291
+ border-radius: 4px;
4292
+ padding: 1px 5px;
4293
+ color: var(--accent-cyan);
4294
+ }
4295
+ .docs-viewer-body pre {
4296
+ background: rgba(0, 0, 0, 0.45);
4297
+ border: 1px solid rgba(255, 255, 255, 0.08);
4298
+ border-radius: 8px;
4299
+ padding: 12px 14px;
4300
+ overflow-x: auto;
4301
+ margin: 0.8em 0;
4302
+ }
4303
+ .docs-viewer-body pre code {
4304
+ background: none;
4305
+ border: none;
4306
+ padding: 0;
4307
+ color: var(--text);
4308
+ font-size: 12px;
4309
+ line-height: 1.55;
4310
+ }
4311
+ .docs-viewer-body table {
4312
+ width: 100%;
4313
+ border-collapse: collapse;
4314
+ margin: 0.8em 0;
4315
+ font-size: 13px;
4316
+ }
4317
+ .docs-viewer-body th,
4318
+ .docs-viewer-body td {
4319
+ text-align: left;
4320
+ padding: 8px 10px;
4321
+ border: 1px solid rgba(255, 255, 255, 0.08);
4322
+ }
4323
+ .docs-viewer-body th {
4324
+ background: rgba(255, 255, 255, 0.04);
4325
+ font-weight: 600;
4326
+ color: var(--text);
4327
+ }
4328
+ .docs-viewer-body blockquote {
4329
+ border-left: 3px solid rgba(0, 212, 255, 0.4);
4330
+ margin: 0.8em 0;
4331
+ padding: 0.3em 0 0.3em 14px;
4332
+ color: var(--text-muted);
4333
+ }
4334
+ .docs-viewer-body hr {
4335
+ border: none;
4336
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
4337
+ margin: 1.4em 0;
4338
+ }
4339
+
4132
4340
  /* ══════════════════════════════════════════════════════════════════════════
4133
4341
  SUBAGENTS PANEL
4134
4342
  ══════════════════════════════════════════════════════════════════════════ */
@@ -5488,4 +5696,3 @@ body {
5488
5696
  box-shadow: 0 0 0 4px rgba(239, 68, 68, 0);
5489
5697
  }
5490
5698
  }
5491
-
@@ -798,7 +798,7 @@
798
798
  </div>
799
799
  <div class="conn-modal-body" id="conn-modal-body"></div>
800
800
  <div class="conn-modal-footer" id="conn-modal-footer">
801
- <a class="conn-modal-docs" id="conn-modal-docs" href="#" target="_blank" rel="noopener">
801
+ <button class="conn-modal-docs" id="conn-modal-docs" type="button">
802
802
  <svg width="12" height="12" viewBox="0 0 24 24" fill="none">
803
803
  <path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20" stroke="currentColor" stroke-width="2" />
804
804
  <path
@@ -808,7 +808,29 @@
808
808
  />
809
809
  </svg>
810
810
  View Documentation
811
- </a>
811
+ </button>
812
+ </div>
813
+ </div>
814
+ </div>
815
+
816
+ <!-- ── Docs Viewer Modal (scrollable markdown viewer) ─────────────────── -->
817
+ <div class="docs-viewer-overlay" id="docs-viewer-overlay" aria-hidden="true">
818
+ <div class="docs-viewer" id="docs-viewer" role="dialog" aria-modal="true">
819
+ <div class="docs-viewer-header">
820
+ <div class="docs-viewer-title" id="docs-viewer-title">Documentation</div>
821
+ <button class="docs-viewer-close" id="docs-viewer-close" title="Close" type="button">
822
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none">
823
+ <path
824
+ d="M18 6L6 18M6 6l12 12"
825
+ stroke="currentColor"
826
+ stroke-width="2"
827
+ stroke-linecap="round"
828
+ />
829
+ </svg>
830
+ </button>
831
+ </div>
832
+ <div class="docs-viewer-body" id="docs-viewer-body">
833
+ <p class="docs-viewer-loading">Loading documentation…</p>
812
834
  </div>
813
835
  </div>
814
836
  </div>
@@ -11,7 +11,6 @@
11
11
  id: "slack",
12
12
  name: "Slack",
13
13
  configPath: "channels.slack",
14
- docsUrl: "https://docs.symi.ai/channels/slack",
15
14
  icon: `<svg viewBox="0 0 24 24" fill="currentColor">
16
15
  <path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.124 2.521a2.528 2.528 0 0 1 2.52-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.52V8.834zm-1.271 0a2.528 2.528 0 0 1-2.521 2.521 2.528 2.528 0 0 1-2.521-2.521V2.522A2.528 2.528 0 0 1 15.166 0a2.528 2.528 0 0 1 2.521 2.522v6.312zm-2.521 10.124a2.528 2.528 0 0 1 2.521 2.52A2.528 2.528 0 0 1 15.166 24a2.528 2.528 0 0 1-2.521-2.522v-2.52h2.521zm0-1.271a2.528 2.528 0 0 1-2.521-2.521 2.528 2.528 0 0 1 2.521-2.521h6.312A2.528 2.528 0 0 1 24 15.166a2.528 2.528 0 0 1-2.522 2.521h-6.312z"/>
17
16
  </svg>`,
@@ -23,24 +22,21 @@
23
22
  },
24
23
  email: {
25
24
  id: "email",
26
- name: "Email (Gmail)",
27
- configPath: "hooks.gmail",
28
- docsUrl: "https://docs.symi.ai/automation/gmail-pubsub",
25
+ name: "Email",
26
+ configPath: "hooks.gmail + outlook plugin",
29
27
  icon: `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
30
28
  <rect x="2" y="4" width="20" height="16" rx="2"/>
31
29
  <path d="M22 6l-10 7L2 6"/>
32
30
  </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/..."`,
31
+ // setupInfo/configExample unused for email the modal renders two
32
+ // per-provider sections (Outlook, Gmail) instead. See openModal().
33
+ setupInfo: "",
34
+ configExample: "",
38
35
  },
39
36
  msteams: {
40
37
  id: "msteams",
41
38
  name: "Microsoft Teams",
42
39
  configPath: "channels.msteams",
43
- docsUrl: "https://docs.symi.ai/channels/msteams",
44
40
  icon: `<svg viewBox="0 0 24 24" fill="currentColor">
45
41
  <path d="M19.19 8.77c-.73 0-1.39.29-1.88.76V8.5a2.5 2.5 0 0 0-2.5-2.5h-1.62c.18-.46.28-.96.28-1.48a4.04 4.04 0 0 0-4.04-4.04c-2.23 0-4.04 1.81-4.04 4.04 0 .52.1 1.02.28 1.48H4.5A2.5 2.5 0 0 0 2 8.5v9a2.5 2.5 0 0 0 2.5 2.5h9a2.5 2.5 0 0 0 2.5-2.5v-.97c.49.47 1.15.76 1.88.76a2.69 2.69 0 0 0 2.69-2.69v-3.14a2.69 2.69 0 0 0-2.69-2.69h.31zM9.43 2.98a2.04 2.04 0 1 1 0 4.08 2.04 2.04 0 0 1 0-4.08zm4.57 14.52a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 .5.5v9zm5.88-4.17a.69.69 0 0 1-.69.69.69.69 0 0 1-.69-.69v-3.14c0-.38.31-.69.69-.69.38 0 .69.31.69.69v3.14z"/>
46
42
  <circle cx="17.5" cy="5.5" r="2.5"/>
@@ -56,7 +52,7 @@
56
52
 
57
53
  const state = {
58
54
  slack: { status: "checking", notifications: 0 },
59
- email: { status: "checking", notifications: 0 },
55
+ email: { status: "checking", notifications: 0, gmail: null, outlook: null },
60
56
  msteams: { status: "checking", notifications: 0 },
61
57
  };
62
58
 
@@ -136,15 +132,17 @@
136
132
  state.slack.status = "disconnected";
137
133
  }
138
134
 
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
- }
135
+ // Update Email status: connected if EITHER Outlook OR Gmail is live.
136
+ // Outlook is injected into channels.outlook by the gateway
137
+ // (src/gateway/server-methods/channels.ts).
138
+ const gmail = channels.gmail || channels.email || null;
139
+ const outlook = channels.outlook || null;
140
+ const gmailConnected = !!(gmail && gmail.configured && gmail.connected !== false);
141
+ const outlookConnected = !!(outlook && outlook.configured && outlook.connected !== false);
142
+ state.email.gmail = gmail;
143
+ state.email.outlook = outlook;
144
+ state.email.status = gmailConnected || outlookConnected ? "connected" : "disconnected";
145
+ state.email.notifications = (gmail?.unread ?? 0) + (outlook?.unread ?? 0);
148
146
 
149
147
  // Update Teams status
150
148
  if (channels.msteams) {
@@ -174,6 +172,133 @@
174
172
  const modalDocs = document.getElementById("conn-modal-docs");
175
173
  const modalClose = document.getElementById("conn-modal-close");
176
174
 
175
+ // Docs viewer (in-app scrollable markdown renderer, stacks above conn modal)
176
+ const docsViewerOverlay = document.getElementById("docs-viewer-overlay");
177
+ const docsViewerBody = document.getElementById("docs-viewer-body");
178
+ const docsViewerTitle = document.getElementById("docs-viewer-title");
179
+ const docsViewerClose = document.getElementById("docs-viewer-close");
180
+
181
+ // Tracks which channel's connection modal is currently open, so the
182
+ // "View Documentation" button knows which docs key to fetch.
183
+ let currentModalChannelId = null;
184
+
185
+ const DOCS_VIEWER_TITLES = {
186
+ email: "Email — Outlook & Gmail",
187
+ slack: "Slack Setup",
188
+ msteams: "Microsoft Teams Setup",
189
+ };
190
+
191
+ function stripFrontmatter(markdown) {
192
+ if (!markdown.startsWith("---\n") && !markdown.startsWith("---\r\n")) {
193
+ return markdown;
194
+ }
195
+ const end = markdown.indexOf("\n---", 4);
196
+ if (end === -1) {
197
+ return markdown;
198
+ }
199
+ return markdown.slice(end + 4).replace(/^\s+/, "");
200
+ }
201
+
202
+ async function openDocsViewer(key) {
203
+ if (!docsViewerOverlay || !docsViewerBody) {
204
+ return;
205
+ }
206
+ docsViewerTitle.textContent = DOCS_VIEWER_TITLES[key] || "Documentation";
207
+ docsViewerBody.innerHTML = '<p class="docs-viewer-loading">Loading documentation…</p>';
208
+ docsViewerOverlay.classList.add("open");
209
+ docsViewerOverlay.setAttribute("aria-hidden", "false");
210
+ // Capture phase so we beat the conn-modal's Esc handler
211
+ document.addEventListener("keydown", onDocsViewerKey, true);
212
+
213
+ if (!window.gateway?.rpc) {
214
+ docsViewerBody.innerHTML =
215
+ '<p class="docs-viewer-error">Gateway is not connected — cannot load documentation.</p>';
216
+ return;
217
+ }
218
+ try {
219
+ const result = await window.gateway.rpc("docs.get", { key });
220
+ const markdown = result && typeof result.markdown === "string" ? result.markdown : "";
221
+ if (!markdown) {
222
+ docsViewerBody.innerHTML =
223
+ '<p class="docs-viewer-error">Documentation is empty or missing on this install.</p>';
224
+ return;
225
+ }
226
+ const body = stripFrontmatter(markdown);
227
+ const html =
228
+ window.marked && typeof window.marked.parse === "function"
229
+ ? window.marked.parse(body)
230
+ : "<pre>" + escHtml(body) + "</pre>";
231
+ docsViewerBody.innerHTML = html;
232
+ // Make external links open in a new tab with safe rel
233
+ docsViewerBody.querySelectorAll('a[href^="http"]').forEach((a) => {
234
+ a.setAttribute("target", "_blank");
235
+ a.setAttribute("rel", "noopener noreferrer");
236
+ });
237
+ docsViewerBody.scrollTop = 0;
238
+ } catch (err) {
239
+ const msg = err && err.message ? err.message : String(err);
240
+ docsViewerBody.innerHTML =
241
+ '<p class="docs-viewer-error">Failed to load documentation: ' + escHtml(msg) + "</p>";
242
+ }
243
+ }
244
+
245
+ function closeDocsViewer() {
246
+ if (!docsViewerOverlay) {
247
+ return;
248
+ }
249
+ docsViewerOverlay.classList.remove("open");
250
+ docsViewerOverlay.setAttribute("aria-hidden", "true");
251
+ document.removeEventListener("keydown", onDocsViewerKey, true);
252
+ }
253
+
254
+ function onDocsViewerKey(e) {
255
+ if (e.key === "Escape") {
256
+ // Stop the conn-modal's keydown listener from also firing
257
+ e.stopImmediatePropagation();
258
+ closeDocsViewer();
259
+ }
260
+ }
261
+
262
+ function renderProviderSection(title, connected, detailLine, actionLine) {
263
+ const klass = connected ? "connected" : "disconnected";
264
+ const badge = connected ? "CONNECTED" : "NOT CONFIGURED";
265
+ return `
266
+ <div class="conn-modal-status ${klass}" style="margin-bottom:6px;">
267
+ <div class="conn-modal-status-dot"></div>
268
+ <span class="conn-modal-status-text"><strong>${escHtml(title)}</strong> — ${escHtml(detailLine)}</span>
269
+ <span class="conn-modal-status-badge">${badge}</span>
270
+ </div>
271
+ <p class="conn-modal-info" style="margin-top:0;margin-bottom:14px;">${actionLine}</p>
272
+ `;
273
+ }
274
+
275
+ function renderEmailModalBody(channelState) {
276
+ const outlook = channelState.outlook;
277
+ const gmail = channelState.gmail;
278
+ const outlookConnected = !!(outlook && outlook.configured && outlook.connected !== false);
279
+ const gmailConnected = !!(gmail && gmail.configured && gmail.connected !== false);
280
+
281
+ const outlookDetail = outlookConnected
282
+ ? `Connected as ${outlook.email || "Microsoft account"}`
283
+ : "Microsoft 365 / outlook.com / hotmail.com";
284
+ const outlookAction = outlookConnected
285
+ ? `Type <code>/outlook logout</code> in chat to disconnect.`
286
+ : `Type <code>/outlook login</code> in chat — a Microsoft device-code flow will start and tools become available immediately after sign-in.`;
287
+
288
+ const gmailAccount = gmail && typeof gmail.account === "string" ? gmail.account : null;
289
+ const gmailDetail = gmailConnected
290
+ ? `Watching ${gmailAccount || "your Gmail inbox"}`
291
+ : "Gmail / Google Workspace (requires Pub/Sub setup)";
292
+ const gmailAction = gmailConnected
293
+ ? `Incoming email creates <code>hook:gmail:&lt;id&gt;</code> sessions automatically.`
294
+ : `Configure <code>hooks.gmail</code> in <code>symi.json</code> — see the docs link below for the full Google Cloud Pub/Sub walkthrough.`;
295
+
296
+ return (
297
+ renderProviderSection("Outlook 365", outlookConnected, outlookDetail, outlookAction) +
298
+ renderProviderSection("Gmail", gmailConnected, gmailDetail, gmailAction)
299
+ );
300
+ }
301
+
177
302
  function openModal(channelId) {
178
303
  const channel = CHANNELS[channelId];
179
304
  const channelState = state[channelId];
@@ -188,27 +313,32 @@
188
313
  // Set title
189
314
  modalTitle.textContent = channel.name;
190
315
 
191
- // Set docs link
192
- modalDocs.href = channel.docsUrl;
316
+ // Remember which channel this modal is showing so the
317
+ // "View Documentation" button knows which docs key to fetch.
318
+ currentModalChannelId = channelId;
193
319
 
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
- `;
320
+ if (channelId === "email") {
321
+ modalBody.innerHTML = renderEmailModalBody(channelState);
322
+ } else {
323
+ // Generic single-provider layout for other channels
324
+ const isConnected = channelState.status === "connected";
325
+ const statusClass = isConnected ? "connected" : "disconnected";
326
+ const statusText = isConnected
327
+ ? "Channel is active and receiving messages"
328
+ : "Channel is not configured";
329
+ const badgeText = isConnected ? "CONNECTED" : "NOT CONFIGURED";
330
+
331
+ modalBody.innerHTML = `
332
+ <div class="conn-modal-status ${statusClass}">
333
+ <div class="conn-modal-status-dot"></div>
334
+ <span class="conn-modal-status-text">${statusText}</span>
335
+ <span class="conn-modal-status-badge">${badgeText}</span>
336
+ </div>
337
+ <p class="conn-modal-info">${channel.setupInfo}</p>
338
+ <p class="conn-modal-info">Add to your <code>symi.json</code> config:</p>
339
+ <pre class="conn-modal-config">${escHtml(channel.configExample)}</pre>
340
+ `;
341
+ }
212
342
 
213
343
  // Show modal
214
344
  modalOverlay.classList.add("open");
@@ -240,6 +370,29 @@
240
370
  });
241
371
  }
242
372
 
373
+ // "View Documentation" button → open in-app docs viewer.
374
+ // The docs-viewer overlay stacks on top of the conn-modal.
375
+ if (modalDocs) {
376
+ modalDocs.addEventListener("click", (e) => {
377
+ e.preventDefault();
378
+ if (currentModalChannelId) {
379
+ void openDocsViewer(currentModalChannelId);
380
+ }
381
+ });
382
+ }
383
+
384
+ // Docs viewer event listeners
385
+ if (docsViewerClose) {
386
+ docsViewerClose.addEventListener("click", closeDocsViewer);
387
+ }
388
+ if (docsViewerOverlay) {
389
+ docsViewerOverlay.addEventListener("click", (e) => {
390
+ if (e.target === docsViewerOverlay) {
391
+ closeDocsViewer();
392
+ }
393
+ });
394
+ }
395
+
243
396
  // ── Handle Click ─────────────────────────────────────────────────────────
244
397
  function handleChannelClick(channelId) {
245
398
  openModal(channelId);
@@ -10,21 +10,21 @@ 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-Cz_ObCzY.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-CtiVeyeQ.js";
20
+ import "./call-CVqBgwrx.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-D1Oid7kh.js";
27
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-Bp0KNJtL.js";
28
28
 
29
29
  //#region src/cli/cron-cli/shared.ts
30
30
  const getCronChannelOptions = () => ["last", ...listChannelPlugins().map((plugin) => plugin.id)].join("|");
@@ -4,10 +4,10 @@ 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-XZ7orePK.js";
7
+ import "./manifest-registry-D5bnO5uA.js";
8
+ import "./config-DXt3pc08.js";
9
9
  import "./client-qUlxXXVJ.js";
10
- import "./call-ple9aZCT.js";
10
+ import "./call-BrRWr7Lj.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-BPldxGhH.js";
21
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-XT8cFwtz.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-XZ7orePK.js";
5
- import { n as callGateway } from "./call-ple9aZCT.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-BrRWr7Lj.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-09M-gWu4.js";
14
+ import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-7H_XiJt-.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-CbbrW5g3.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-AeKXuI87.js";
20
- import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-CitUdPEJ.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";