@symerian/symi 2.6.10 → 2.6.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/dist/{accounts-BRw8yhIW.js → accounts-D1r2dq1t.js} +21 -21
  2. package/dist/{accounts-3dCrO3oZ.js → accounts-dRUMQQrB.js} +1 -1
  3. package/dist/{accounts-BuZxOb3B.js → accounts-wSphH5gv.js} +1 -1
  4. package/dist/{acp-cli-DT0rEuUE.js → acp-cli-Cu4icbJT.js} +2 -2
  5. package/dist/{active-listener-CfHHV2SU.js → active-listener-DFUTUjxt.js} +1 -1
  6. package/dist/{agent-scope-CpEJ0B88.js → agent-scope-D68_xfTL.js} +3 -3
  7. package/dist/{agents-DDqXWXbP.js → agents-DRRBdgqz.js} +4 -4
  8. package/dist/{agents.config-CEt-ES9z.js → agents.config-BO1N5Z_6.js} +1 -1
  9. package/dist/{agents.config-Bu_N-bn_.js → agents.config-GCucbcBy.js} +1 -1
  10. package/dist/{audio-preflight-C40mKAp7.js → audio-preflight-CPBOQV4I.js} +4 -4
  11. package/dist/{audio-preflight-BcSzL_0I.js → audio-preflight-CWnxkaac.js} +8 -8
  12. package/dist/{audio-preflight-BVaaZWkg.js → audio-preflight-CjV36MUe.js} +29 -29
  13. package/dist/{audit-BIE9JAxf.js → audit-CrITRV6w.js} +5 -5
  14. package/dist/{auth-choice-Bmd-rbuU.js → auth-choice-C1sul2-I.js} +1 -1
  15. package/dist/{auth-choice-Djy_YmfW.js → auth-choice-i7tTgbDd.js} +4 -4
  16. package/dist/{auth-profiles-DdK1Hxaa.js → auth-profiles-Bl9aU7fc.js} +17 -17
  17. package/dist/{banner-BNkhjU8E.js → banner-VbhMdl-b.js} +1 -1
  18. package/dist/{bindings-BsHoBLIE.js → bindings-Bat2RnAR.js} +2 -2
  19. package/dist/{browser-cli-nNQ60Koh.js → browser-cli-BG4qPxpM.js} +3 -3
  20. package/dist/build-info.json +3 -3
  21. package/dist/bundled/boot-md/handler.js +53 -53
  22. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  23. package/dist/bundled/command-logger/handler.js +1 -1
  24. package/dist/bundled/session-memory/handler.js +53 -53
  25. package/dist/{call-7djMRPgl.js → call-CJaS1iRF.js} +1 -1
  26. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  27. package/dist/{channel-activity-B6G1jnQT.js → channel-activity-DK0AV-r9.js} +1 -1
  28. package/dist/{channel-options-NLrg-j_d.js → channel-options-CsXOvqAc.js} +1 -1
  29. package/dist/{channel-options-D8ByM6g0.js → channel-options-Esf0QB4M.js} +1 -1
  30. package/dist/{channel-web-BUQWBln9.js → channel-web-DDC84nZg.js} +2 -2
  31. package/dist/{channels-cli-qBgicVqp.js → channels-cli-C989dAD4.js} +19 -19
  32. package/dist/{channels-cli-C5DWcDDG.js → channels-cli-DomEe8uI.js} +4 -4
  33. package/dist/{chrome-CDJYxX5a.js → chrome-D2SKJnR7.js} +7 -7
  34. package/dist/{chrome-DkaXoP36.js → chrome-DRHvMBbb.js} +14 -14
  35. package/dist/{chrome-DBKZkx0x.js → chrome-DtPkPq9T.js} +7 -7
  36. package/dist/{chunk-09egQapi.js → chunk-DR8ukp6r.js} +1 -1
  37. package/dist/cli/daemon-cli.js +1 -1
  38. package/dist/{cli-Bx78WeyO.js → cli-CPRCkEdK.js} +1 -1
  39. package/dist/{cli-UHMMUbWL.js → cli-RXswESw1.js} +16 -16
  40. package/dist/{client-Z6SFrwob.js → client-CQSyCS4M.js} +3 -3
  41. package/dist/{command-registry-BSGsNY71.js → command-registry-DwBw5-nh.js} +9 -9
  42. package/dist/{commands-registry-Bfc7Uz0o.js → commands-registry-DIakZUZb.js} +4 -4
  43. package/dist/{completion-cli-B915TqN4.js → completion-cli-C43sjF75.js} +2 -2
  44. package/dist/{completion-cli-CajQzz5J.js → completion-cli-Cwx8MtF9.js} +1 -1
  45. package/dist/{config-5SdHIcHU.js → config-CvmE3Yx1.js} +12 -12
  46. package/dist/{config-cli-CeErUiHR.js → config-cli-CkkIU7AY.js} +1 -1
  47. package/dist/{config-cli-BM9FX48b.js → config-cli-DG0xBZhs.js} +1 -1
  48. package/dist/{configure-DggNPSKd.js → configure-DlVtomYJ.js} +3 -3
  49. package/dist/{configure-CbiNzEIk.js → configure-nxnXIUVI.js} +8 -8
  50. package/dist/{control-service-DdeFa44u.js → control-service-Bz7rxLWq.js} +3 -3
  51. package/dist/{cron-cli-C_1RndRW.js → cron-cli-DBIlCvp3.js} +3 -3
  52. package/dist/{daemon-cli-C2fkpr13.js → daemon-cli-DscwlsKW.js} +2 -2
  53. package/dist/{deliver-BH0l3UKW.js → deliver-C-37cZUe.js} +1 -1
  54. package/dist/{deliver-Bu624MY6.js → deliver-CWR_98sK.js} +1 -1
  55. package/dist/{deliver-C46-vyqg.js → deliver-UMgfGLxW.js} +20 -20
  56. package/dist/{devices-cli-ERMql8Dq.js → devices-cli-Dds-25Ve.js} +2 -2
  57. package/dist/{diagnostic-rPhsBoZz.js → diagnostic-spWOtH_g.js} +1 -1
  58. package/dist/{doctor-completion-BP_qD5Bt.js → doctor-completion-CWr51Q4O.js} +1 -1
  59. package/dist/{doctor-completion-BfLDfA98.js → doctor-completion-Dd5P0i9L.js} +1 -1
  60. package/dist/entry.js +1 -1
  61. package/dist/{env-BDXYbTKj.js → env-xmBFQPBP.js} +1 -1
  62. package/dist/{exec-approvals-cli-BEU-xJFu.js → exec-approvals-cli-BliRl8VB.js} +4 -4
  63. package/dist/extensionAPI.js +6 -6
  64. package/dist/{frontmatter-CTR5f_Ez.js → frontmatter-CV0YkjoY.js} +2 -2
  65. package/dist/{gateway-cli-LmMxDk7B.js → gateway-cli-B1h1FhD-.js} +28 -28
  66. package/dist/{gateway-cli-qMBjCmLH.js → gateway-cli-BBJjWKyu.js} +9 -9
  67. package/dist/{gateway-rpc-BWZzo3L9.js → gateway-rpc-BxkKeCZ0.js} +1 -1
  68. package/dist/{gemini-auth-Dy12ZAH3.js → gemini-auth-C6Z-2T42.js} +1 -1
  69. package/dist/{github-copilot-token-cCYzSU9h.js → github-copilot-token-B8B2pmph.js} +7 -7
  70. package/dist/{glass-ui-ws-CXpW0epd.js → glass-ui-ws-Bk01KSVI.js} +7 -7
  71. package/dist/{glass-ui-ws-DbV46Nrg.js → glass-ui-ws-UewDPjVh.js} +23 -23
  72. package/dist/{health-BctmvDJ0.js → health-BiipZUOd.js} +1 -1
  73. package/dist/{health-pukFTT09.js → health-Dzi6letr.js} +3 -3
  74. package/dist/{hooks-cli-DcQN6UeT.js → hooks-cli-BdelOAPH.js} +2 -2
  75. package/dist/{hooks-cli-BMQOn6QU.js → hooks-cli-DxRXaSHR.js} +17 -17
  76. package/dist/{image-CuzFLQWC.js → image-CK4oZUJJ.js} +4 -4
  77. package/dist/{image-CtCUVPCD.js → image-D9uvDTrc.js} +1 -1
  78. package/dist/{image-CHzdaNJ4.js → image-DcpMiprB.js} +1 -1
  79. package/dist/{image-ops-C7CauEK8.js → image-ops-M5agStZn.js} +16 -16
  80. package/dist/index.js +21 -21
  81. package/dist/{ir-CTiz95Vb.js → ir-B-XXcYFe.js} +4 -4
  82. package/dist/llm-slug-generator.js +53 -53
  83. package/dist/{local-roots-DhZz0Ybs.js → local-roots-CdXg5-Cx.js} +5 -5
  84. package/dist/{login-ul8zaw_S.js → login-BHUrERYo.js} +7 -7
  85. package/dist/{login-qr-AP9agO-i.js → login-qr-BKIOHn1V.js} +12 -12
  86. package/dist/{logs-cli-V5qUbmVy.js → logs-cli-xOzIPrHm.js} +3 -3
  87. package/dist/{manager-PprhCvO_.js → manager-DW3JqFpY.js} +22 -22
  88. package/dist/{manifest-registry-yb7sAlu4.js → manifest-registry-0J48biqr.js} +19 -19
  89. package/dist/{markdown-tables-C-BmIap8.js → markdown-tables-tW9bGjLM.js} +1 -1
  90. package/dist/{message-channel-OlFBYAw8.js → message-channel-DwDSKGn4.js} +1 -1
  91. package/dist/{model-catalog-Da6fXK5K.js → model-catalog-DvBJ8pMD.js} +1 -1
  92. package/dist/{model-picker-B6QoK7pe.js → model-picker-Ddo3jHe-.js} +1 -1
  93. package/dist/{models-yF2XRbPQ.js → models-DUrbBEOU.js} +2 -2
  94. package/dist/{models-cli-DAKvip7R.js → models-cli-CF0KZtK4.js} +18 -18
  95. package/dist/{models-cli-DHOMkJmd.js → models-cli-D5KE-evn.js} +3 -3
  96. package/dist/{node-cli-r5-MNz9_.js → node-cli-C_G-Q3h-.js} +6 -6
  97. package/dist/{nodes-cli-DQed-Snk.js → nodes-cli-BcnuJajV.js} +3 -3
  98. package/dist/{onboard-BafMA6T9.js → onboard-Bizq_LAS.js} +5 -5
  99. package/dist/{onboard-BhqTlAS0.js → onboard-DK-oOqRl.js} +2 -2
  100. package/dist/{onboard-channels-CHe-XSLv.js → onboard-channels-B6yLPqH5.js} +1 -1
  101. package/dist/{onboard-channels-CZB5bhSJ.js → onboard-channels-DSZzjOo1.js} +1 -1
  102. package/dist/{onboard-custom-BduhuM_4.js → onboard-custom-C7O-zfQ1.js} +1 -1
  103. package/dist/{onboard-helpers-CiLCJJVQ.js → onboard-helpers-ZmZYzlq3.js} +1 -1
  104. package/dist/{onboard-remote-C1nRkyWo.js → onboard-remote-zUjD7UtM.js} +1 -1
  105. package/dist/{onboard-skills-9GLwG44a.js → onboard-skills-BB0YhUmF.js} +1 -1
  106. package/dist/{onboarding-BXVYtRYj.js → onboarding-CkWWIQA7.js} +3 -3
  107. package/dist/{onboarding-D5yCx7Yb.js → onboarding-DGSCNnGY.js} +9 -9
  108. package/dist/{onboarding.finalize-DF5Zx0Zc.js → onboarding.finalize-BMGwhjIR.js} +6 -6
  109. package/dist/{onboarding.finalize-BX4DUaoK.js → onboarding.finalize-Dj0noUgo.js} +21 -21
  110. package/dist/{onboarding.gateway-config-TSh7IejG.js → onboarding.gateway-config-CJUgDC6Y.js} +3 -3
  111. package/dist/{outbound-CtMCmwxR.js → outbound-CIVsLpJK.js} +7 -7
  112. package/dist/{outbound-attachment-DJldbweZ.js → outbound-attachment-CHcmlip8.js} +2 -2
  113. package/dist/paths-CYmyCDsE.js +212 -0
  114. package/dist/{paths-CbQV9WEg.js → paths-DEuVuViW.js} +1 -1
  115. package/dist/{pi-auth-json-Bk8ERadJ.js → pi-auth-json-BYuCWAs0.js} +8 -8
  116. package/dist/{pi-auth-json-Tqz9D47K.js → pi-auth-json-DayrlDg_.js} +1 -1
  117. package/dist/{pi-embedded-DV6dp0BP.js → pi-embedded-DLma-HLn.js} +57 -16
  118. package/dist/{pi-embedded-helpers-lgx_U5KS.js → pi-embedded-helpers-B8kqLWns.js} +4 -4
  119. package/dist/{pi-embedded-helpers-CfqDGQ9J.js → pi-embedded-helpers-BU8EZuwx.js} +73 -73
  120. package/dist/{pi-embedded-helpers-D-dUrQOR.js → pi-embedded-helpers-CNPyv_ax.js} +1 -1
  121. package/dist/{pi-tools.policy-CgGK6Jq8.js → pi-tools.policy-CIDBbw6x.js} +1 -1
  122. package/dist/{plugin-registry-BSmy8tIV.js → plugin-registry-BcgpVdtC.js} +1 -1
  123. package/dist/{plugin-registry-BwnzEvIz.js → plugin-registry-D8PAS3Sx.js} +1 -1
  124. package/dist/plugin-sdk/{channel-web-BdY2z7lg.js → channel-web-DgNOPxkV.js} +1 -1
  125. package/dist/plugin-sdk/index.js +2 -2
  126. package/dist/plugin-sdk/{reply-BvxntA3R.js → reply-DJN8Xcq2.js} +43 -2
  127. package/dist/plugin-sdk/{web-CorFnJCI.js → web-HkDBSFef.js} +2 -2
  128. package/dist/{plugins-BzmbgY7s.js → plugins-Bkr5ZdYs.js} +9 -9
  129. package/dist/{plugins-cli-BMmiYArH.js → plugins-cli-B_ln22KG.js} +17 -17
  130. package/dist/{plugins-cli-CrN718uZ.js → plugins-cli-Bcmq1fs1.js} +2 -2
  131. package/dist/{program-NGbjPxJh.js → program-C_rxRb1M.js} +7 -7
  132. package/dist/{program-context-BqxG0w61.js → program-context-BqH8IVSK.js} +30 -30
  133. package/dist/{prompt-select-styled-B7SzTPf7.js → prompt-select-styled-D8WAeDQY.js} +8 -8
  134. package/dist/{prompt-select-styled-B1LZVYl0.js → prompt-select-styled-DMRbQO0q.js} +4 -4
  135. package/dist/{provider-auth-helpers--A-4LKUl.js → provider-auth-helpers-DiuVmtmQ.js} +1 -1
  136. package/dist/{provider-auth-helpers-CNEhLjMl.js → provider-auth-helpers-DstpUAya.js} +1 -1
  137. package/dist/{push-apns-DgT_gz_P.js → push-apns-DKU4DgbI.js} +1 -1
  138. package/dist/{push-apns-Cem8OlK7.js → push-apns-be2xWY22.js} +1 -1
  139. package/dist/{pw-ai-De-KR9_s.js → pw-ai-1htA-NnS.js} +1 -1
  140. package/dist/{pw-ai-m0mj2KWK.js → pw-ai-BTgmcNVp.js} +11 -11
  141. package/dist/{pw-ai-CC0xm0TY.js → pw-ai-DqL87js3.js} +1 -1
  142. package/dist/{qmd-manager-iDLSiI4Z.js → qmd-manager-BKu9rOuB.js} +7 -7
  143. package/dist/{register.agent-vP7gkHzk.js → register.agent-Dcd_oFsG.js} +6 -6
  144. package/dist/{register.agent-DT0doE92.js → register.agent-k7WxtPOd.js} +21 -21
  145. package/dist/{register.configure-BnkkCig3.js → register.configure-BOgCp-h4.js} +25 -25
  146. package/dist/{register.configure-B_W1y_ag.js → register.configure-DMHVPA-T.js} +6 -6
  147. package/dist/{register.maintenance-Br5q9f-j.js → register.maintenance-BdBlQQ6G.js} +8 -8
  148. package/dist/{register.maintenance-C0akYVa2.js → register.maintenance-Bsbgpe-Z.js} +22 -22
  149. package/dist/{register.message-mCGVBJsU.js → register.message-BE0gDUQZ.js} +17 -17
  150. package/dist/{register.message-CRaEakG_.js → register.message-DAyubW1M.js} +2 -2
  151. package/dist/{register.onboard-BvsYOovb.js → register.onboard-CTKa4O9W.js} +21 -21
  152. package/dist/{register.onboard-CV_3MiHm.js → register.onboard-CqavyaNa.js} +4 -4
  153. package/dist/{register.setup-BQqw49hm.js → register.setup-BO3CD8Pz.js} +21 -21
  154. package/dist/{register.setup-DFcMhPAd.js → register.setup-DpkI2F6r.js} +4 -4
  155. package/dist/{register.status-health-sessions-DlgKRa9S.js → register.status-health-sessions-C5Qa-DmU.js} +3 -3
  156. package/dist/{register.status-health-sessions-SAm9yGnr.js → register.status-health-sessions-ClDUpT3j.js} +19 -19
  157. package/dist/{register.subclis-CdANuuHY.js → register.subclis-Bvil7KuO.js} +9 -9
  158. package/dist/{registry-DYq1AYOv.js → registry-UkL38jvt.js} +17 -17
  159. package/dist/{replies-LSmuwOhA.js → replies-mfnbLu2p.js} +3 -3
  160. package/dist/{reply-CiPQDsZl.js → reply-4ilKYVzu.js} +64 -23
  161. package/dist/{reply-prefix-DpqZu44Z.js → reply-prefix-DkGsdyBm.js} +1 -1
  162. package/dist/{resolve-route-C4_I4GFI.js → resolve-route-q8AFnU5c.js} +4 -4
  163. package/dist/{retry-BBVXkKBV.js → retry-CqMeDhyp.js} +1 -1
  164. package/dist/{routes-BO8eMYxn.js → routes-Ba9CUQ8M.js} +2 -2
  165. package/dist/{rpc-BcyzUwtC.js → rpc-BfhojW8g.js} +1 -1
  166. package/dist/{run-main-z8u07ybv.js → run-main-D1n_tgGX.js} +14 -14
  167. package/dist/{runner-DUBExAb5.js → runner-BcQ0sF9T.js} +1 -1
  168. package/dist/{runner-CU9l0uJh.js → runner-CKYly94z.js} +22 -22
  169. package/dist/{runner-DxdRmWfW.js → runner-CUglpiFP.js} +2 -2
  170. package/dist/{sandbox-B7qoYkRl.js → sandbox-C-T6hOMv.js} +3 -3
  171. package/dist/{sandbox-cli-C-hbJJWM.js → sandbox-cli-BllVdQzR.js} +4 -4
  172. package/dist/{security-cli-CNzBZn7V.js → security-cli-BFLtWWHy.js} +8 -8
  173. package/dist/{send-DYj_o4_F.js → send-B7z8CDbr.js} +18 -18
  174. package/dist/{send-CQAKg_12.js → send-Cd81AY_Z.js} +7 -7
  175. package/dist/{send-CvhXrdgS.js → send-D3zDmQim.js} +10 -10
  176. package/dist/{send-DAN9hA5h.js → send-XRUYukww.js} +6 -6
  177. package/dist/{send-CVMyYPQw.js → send-qItpAHcI.js} +6 -6
  178. package/dist/{server-context-B-ra1emS.js → server-context-CEpFjqSk.js} +4 -4
  179. package/dist/{server-methods-Dwsrsy7D.js → server-methods-BRdl4pcP.js} +7 -7
  180. package/dist/{server-methods-D9jBWl7O.js → server-methods-VC0ahxUh.js} +14 -14
  181. package/dist/{server-node-events-9T-Sm9Q4.js → server-node-events-Bq2fr8Z3.js} +17 -17
  182. package/dist/{server-node-events-CUKIb7Xq.js → server-node-events-Y5xFGvsj.js} +2 -2
  183. package/dist/{session-DSU1vxxi.js → session-Dh2wWQkD.js} +8 -8
  184. package/dist/{skill-commands-DcVwOafC.js → skill-commands-B_f8uGi7.js} +16 -16
  185. package/dist/{skills-Bs0AW1g3.js → skills-CGHRETGF.js} +24 -24
  186. package/dist/{sqlite-D_mz1_-y.js → sqlite-Bv87EXeg.js} +16 -16
  187. package/dist/{status-DPk2qV91.js → status-BxNHXm7T.js} +1 -1
  188. package/dist/{status-Dqm_DV3z.js → status-CRCD2RpZ.js} +2 -2
  189. package/dist/{status-CB6N6XaA.js → status-DNJBoKuu.js} +1 -1
  190. package/dist/{status-UWWMuety.js → status-DOCg6R55.js} +5 -5
  191. package/dist/{store-01F_JM7O.js → store-Ea3zM6xK.js} +6 -6
  192. package/dist/{subagent-registry-DTIudfq4.js → subagent-registry-7wPEZQKK.js} +43 -2
  193. package/dist/{subsystem-BjyjJF-d.js → subsystem-DN75fnEF.js} +1 -1
  194. package/dist/{system-cli-_0h_FSPB.js → system-cli-UMsMEurS.js} +3 -3
  195. package/dist/{tables-qMwbq29u.js → tables-BX7_aBvN.js} +1 -1
  196. package/dist/{target-errors-Bbr9rlzN.js → target-errors-7KhTCTdS.js} +2 -2
  197. package/dist/{thinking-BprCy23Z.js → thinking-C9-JAUzD.js} +5 -5
  198. package/dist/{tokens-Bux9Y_xD.js → tokens-BZGy4v--.js} +1 -1
  199. package/dist/{tool-images-SqqWIT22.js → tool-images-B1qVCntj.js} +2 -2
  200. package/dist/{tool-loop-detection-DR_rrIA1.js → tool-loop-detection-C8FBZVVx.js} +3 -3
  201. package/dist/{tui-D0s_9S8b.js → tui-CriznorL.js} +3 -3
  202. package/dist/{tui-cli-gm9fv3M8.js → tui-cli-CSIdfCTR.js} +8 -8
  203. package/dist/{unified-runner-DdeRGc1w.js → unified-runner-quomT1T-.js} +261 -220
  204. package/dist/{update-cli-C55vGnoj.js → update-cli-CcyCWvCB.js} +8 -8
  205. package/dist/{update-cli-D8jX4yKe.js → update-cli-FOE23Lo4.js} +23 -23
  206. package/dist/{update-runner-B0ORHPYT.js → update-runner-CJg-OANA.js} +1 -1
  207. package/dist/{update-runner-CGsqW9Gu.js → update-runner-Dcjlf0aY.js} +1 -1
  208. package/dist/{web-DsGfc1GN.js → web-BTmqdXgt.js} +17 -17
  209. package/dist/{web-CRFt1vNo.js → web-CuNZExQK.js} +1 -1
  210. package/dist/{web-BC4kDUZw.js → web-DPBfrIzo.js} +6 -6
  211. package/dist/{web-nKQzj7wJ.js → web-DcHxbz2H.js} +57 -57
  212. package/dist/{whatsapp-actions-BIeSWsCF.js → whatsapp-actions-SXenaJIn.js} +23 -23
  213. package/dist/{with-timeout-BFdGltxb.js → with-timeout-gmK6RciS.js} +1 -1
  214. package/dist/{workspace-DscDraUb.js → workspace-DqJ5h-ZB.js} +27 -27
  215. package/package.json +1 -1
@@ -36,7 +36,7 @@ async function requireRiskAcknowledgement(params) {
36
36
  })) throw new WizardCancelledError("risk not accepted");
37
37
  }
38
38
  async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
39
- const onboardHelpers = await import("./onboard-helpers-CiLCJJVQ.js").then((n) => n.d);
39
+ const onboardHelpers = await import("./onboard-helpers-ZmZYzlq3.js").then((n) => n.d);
40
40
  onboardHelpers.printWizardHeader(runtime);
41
41
  await prompter.intro("Symi onboarding");
42
42
  await requireRiskAcknowledgement({
@@ -204,7 +204,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
204
204
  }]
205
205
  }));
206
206
  if (mode === "remote") {
207
- const { promptRemoteGatewayConfig } = await import("./onboard-remote-C1nRkyWo.js").then((n) => n.t);
207
+ const { promptRemoteGatewayConfig } = await import("./onboard-remote-zUjD7UtM.js").then((n) => n.t);
208
208
  const { logConfigUpdated } = await import("./logging-BzzwiKjv.js").then((n) => n.r);
209
209
  let nextConfig = await promptRemoteGatewayConfig(baseConfig, prompter);
210
210
  nextConfig = onboardHelpers.applyWizardMetadata(nextConfig, {
@@ -224,9 +224,9 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
224
224
  let nextConfig = applyOnboardingLocalWorkspaceConfig(baseConfig, workspaceDir);
225
225
  const { ensureAuthProfileStore } = await import("./model-selection-CyFvYcRt.js").then((n) => n.dt);
226
226
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-BLzEBA1v.js").then((n) => n.t);
227
- const { promptCustomApiConfig } = await import("./onboard-custom-BduhuM_4.js").then((n) => n.r);
228
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-Djy_YmfW.js").then((n) => n.t);
229
- const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-B6QoK7pe.js").then((n) => n.i);
227
+ const { promptCustomApiConfig } = await import("./onboard-custom-C7O-zfQ1.js").then((n) => n.r);
228
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-i7tTgbDd.js").then((n) => n.t);
229
+ const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-Ddo3jHe-.js").then((n) => n.i);
230
230
  const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
231
231
  const authChoiceFromPrompt = opts.authChoice === void 0;
232
232
  const authChoice = opts.authChoice ?? await promptAuthChoiceGrouped({
@@ -263,7 +263,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
263
263
  if (modelSelection.model) nextConfig = applyPrimaryModel(nextConfig, modelSelection.model);
264
264
  }
265
265
  await warnIfModelConfigLooksOff(nextConfig, prompter);
266
- const { configureGatewayForOnboarding } = await import("./onboarding.gateway-config-TSh7IejG.js");
266
+ const { configureGatewayForOnboarding } = await import("./onboarding.gateway-config-CJUgDC6Y.js");
267
267
  const gateway = await configureGatewayForOnboarding({
268
268
  flow,
269
269
  baseConfig,
@@ -278,7 +278,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
278
278
  if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
279
279
  else {
280
280
  const { listChannelPlugins } = await import("./plugins-DKDeQZF0.js").then((n) => n.i);
281
- const { setupChannels } = await import("./onboard-channels-CZB5bhSJ.js").then((n) => n.n);
281
+ const { setupChannels } = await import("./onboard-channels-DSZzjOo1.js").then((n) => n.n);
282
282
  const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
283
283
  nextConfig = await setupChannels(nextConfig, runtime, prompter, {
284
284
  allowSignalInstall: true,
@@ -294,7 +294,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
294
294
  await onboardHelpers.ensureWorkspaceAndSessions(workspaceDir, runtime, { skipBootstrap: Boolean(nextConfig.agents?.defaults?.skipBootstrap) });
295
295
  if (opts.skipSkills) await prompter.note("Skipping skills setup.", "Skills");
296
296
  else {
297
- const { setupSkills } = await import("./onboard-skills-9GLwG44a.js").then((n) => n.t);
297
+ const { setupSkills } = await import("./onboard-skills-BB0YhUmF.js").then((n) => n.t);
298
298
  nextConfig = await setupSkills(nextConfig, workspaceDir, runtime, prompter);
299
299
  }
300
300
  const { setupInternalHooks } = await import("./onboard-hooks-BAA8CoVv.js");
@@ -304,7 +304,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
304
304
  mode
305
305
  });
306
306
  await writeConfigFile(nextConfig);
307
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-BX4DUaoK.js");
307
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-Dj0noUgo.js");
308
308
  const { launchedTui } = await finalizeOnboardingWizard({
309
309
  flow,
310
310
  opts,
@@ -14,7 +14,7 @@ import "./client-DMBZpU6X.js";
14
14
  import "./call-BcE47FtD.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-DTIudfq4.js";
17
+ import "./subagent-registry-7wPEZQKK.js";
18
18
  import "./sessions-CJXnZVjR.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -99,18 +99,18 @@ import "./prompt-style-DwCXob2h.js";
99
99
  import "./pairing-labels-D1HDboV2.js";
100
100
  import "./pi-tools.policy-De00gPXt.js";
101
101
  import "./note-DDecZomM.js";
102
- import "./register.subclis-CdANuuHY.js";
103
- import "./command-registry-BSGsNY71.js";
102
+ import "./register.subclis-Bvil7KuO.js";
103
+ import "./command-registry-DwBw5-nh.js";
104
104
  import "./program-context-CqzR_m-7.js";
105
- import { r as installCompletion } from "./completion-cli-B915TqN4.js";
105
+ import { r as installCompletion } from "./completion-cli-C43sjF75.js";
106
106
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CfRwa6qh.js";
107
107
  import "./runtime-guard-D7waq_Ho.js";
108
108
  import { r as isSystemdUserServiceAvailable } from "./systemd-DlMdyFDY.js";
109
109
  import { t as resolveGatewayService } from "./service-Cm9j9WzQ.js";
110
- import { r as healthCommand } from "./health-BctmvDJ0.js";
110
+ import { r as healthCommand } from "./health-BiipZUOd.js";
111
111
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BseSWee1.js";
112
112
  import { t as formatHealthCheckFailure } from "./health-format-CzgUHmmX.js";
113
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BfLDfA98.js";
113
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-Dd5P0i9L.js";
114
114
  import { t as runTui } from "./tui-BJB80muc.js";
115
115
  import os from "node:os";
116
116
  import path from "node:path";
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import { h as pathExists, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-CiPQDsZl.js";
4
+ import "./reply-4ilKYVzu.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { p as restoreTerminalState } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -15,19 +15,19 @@ import "./message-channel-aT-I_DTX.js";
15
15
  import "./send-CZr1hVHY.js";
16
16
  import "./config-CHwyw6l5.js";
17
17
  import "./manifest-registry-C4BxOMWX.js";
18
- import "./runner-DxdRmWfW.js";
19
- import "./image-CtCUVPCD.js";
18
+ import "./runner-CUglpiFP.js";
19
+ import "./image-D9uvDTrc.js";
20
20
  import "./models-config-qyOXrOli.js";
21
21
  import "./pi-model-discovery-4uUnLc3n.js";
22
- import "./pi-embedded-helpers-D-dUrQOR.js";
23
- import "./sandbox-B7qoYkRl.js";
24
- import "./chrome-DBKZkx0x.js";
22
+ import "./pi-embedded-helpers-CNPyv_ax.js";
23
+ import "./sandbox-C-T6hOMv.js";
24
+ import "./chrome-DtPkPq9T.js";
25
25
  import "./tailscale-D5dKabOc.js";
26
26
  import "./auth-B741uFtk.js";
27
- import "./server-context-B-ra1emS.js";
27
+ import "./server-context-CEpFjqSk.js";
28
28
  import "./frontmatter-DWQhtOo7.js";
29
29
  import "./skills-6jdJQ5ZL.js";
30
- import "./routes-BO8eMYxn.js";
30
+ import "./routes-Ba9CUQ8M.js";
31
31
  import "./redact-f-Q-hFt_.js";
32
32
  import "./errors-BF3TeRH2.js";
33
33
  import "./fs-safe-CUjO1ca2.js";
@@ -53,10 +53,10 @@ import "./fetch-guard-DOPkVbh3.js";
53
53
  import "./api-key-rotation-CzuPlV2t.js";
54
54
  import "./local-roots-aAFLQGkY.js";
55
55
  import "./sqlite-Dx3J_aSE.js";
56
- import "./model-catalog-Da6fXK5K.js";
56
+ import "./model-catalog-DvBJ8pMD.js";
57
57
  import "./tokens-BuceUQDl.js";
58
- import "./with-timeout-BFdGltxb.js";
59
- import "./deliver-Bu624MY6.js";
58
+ import "./with-timeout-gmK6RciS.js";
59
+ import "./deliver-CWR_98sK.js";
60
60
  import "./diagnostic-DjBRPfu9.js";
61
61
  import "./diagnostic-session-state-CUslJyKP.js";
62
62
  import "./send-Cutb0ZDY.js";
@@ -72,8 +72,8 @@ import "./ir-DZam9q5M.js";
72
72
  import "./render-CXDO_kgw.js";
73
73
  import "./commands-BNLCWX6e.js";
74
74
  import "./commands-registry-BT0-zzs3.js";
75
- import "./client-Z6SFrwob.js";
76
- import "./call-7djMRPgl.js";
75
+ import "./client-CQSyCS4M.js";
76
+ import "./call-CJaS1iRF.js";
77
77
  import "./pairing-token-CX3NN_qj.js";
78
78
  import "./channel-activity-BOiuJS3t.js";
79
79
  import "./fetch-DTNGXEzX.js";
@@ -93,27 +93,27 @@ import "./session-cost-usage-UxUgrslM.js";
93
93
  import "./outbound-attachment-mQQiYZ3C.js";
94
94
  import "./delivery-queue-CxuV9EeG.js";
95
95
  import "./send-DWYkPSUs.js";
96
- import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-CiLCJJVQ.js";
96
+ import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-ZmZYzlq3.js";
97
97
  import "./prompt-style-8JqOYj0q.js";
98
98
  import "./pairing-labels-2S6x2UoV.js";
99
99
  import "./exec-approvals-Kn31mBcW.js";
100
100
  import "./nodes-screen-VBGXKdLk.js";
101
- import "./pi-tools.policy-CgGK6Jq8.js";
102
- import "./control-service-DdeFa44u.js";
101
+ import "./pi-tools.policy-CIDBbw6x.js";
102
+ import "./control-service-Bz7rxLWq.js";
103
103
  import "./stagger-BUClb97_.js";
104
104
  import "./channel-selection-DuWs0Aak.js";
105
105
  import "./runtime-guard-B37eizu-.js";
106
- import "./program-context-BqxG0w61.js";
106
+ import "./program-context-BqH8IVSK.js";
107
107
  import "./note-DeHoW7xO.js";
108
- import { r as installCompletion } from "./completion-cli-CajQzz5J.js";
108
+ import { r as installCompletion } from "./completion-cli-Cwx8MtF9.js";
109
109
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-2mwX-jqj.js";
110
110
  import { r as isSystemdUserServiceAvailable } from "./systemd-riq8uNJQ.js";
111
111
  import { t as resolveGatewayService } from "./service-Cl74hx8J.js";
112
- import { r as healthCommand } from "./health-pukFTT09.js";
112
+ import { r as healthCommand } from "./health-Dzi6letr.js";
113
113
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Z947tKLt.js";
114
114
  import { t as formatHealthCheckFailure } from "./health-format-DSwnXZPU.js";
115
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BP_qD5Bt.js";
116
- import { t as runTui } from "./tui-D0s_9S8b.js";
115
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CWr51Q4O.js";
116
+ import { t as runTui } from "./tui-CriznorL.js";
117
117
  import os from "node:os";
118
118
  import path from "node:path";
119
119
  import fs from "node:fs/promises";
@@ -21,10 +21,10 @@ import "./accounts-DyJN4_vR.js";
21
21
  import "./bindings-DFaVVCsf.js";
22
22
  import "./logging-w5jq5901.js";
23
23
  import "./paths-CyhzMxFA.js";
24
- import "./client-Z6SFrwob.js";
25
- import "./call-7djMRPgl.js";
24
+ import "./client-CQSyCS4M.js";
25
+ import "./call-CJaS1iRF.js";
26
26
  import "./pairing-token-CX3NN_qj.js";
27
- import { h as randomToken, u as normalizeGatewayTokenInput, y as validateGatewayPasswordInput } from "./onboard-helpers-CiLCJJVQ.js";
27
+ import { h as randomToken, u as normalizeGatewayTokenInput, y as validateGatewayPasswordInput } from "./onboard-helpers-ZmZYzlq3.js";
28
28
  import "./prompt-style-8JqOYj0q.js";
29
29
  import { i as TAILSCALE_MISSING_BIN_NOTE_LINES, n as TAILSCALE_DOCS_LINES, r as TAILSCALE_EXPOSURE_OPTIONS, t as validateIPv4AddressInput } from "./ipv4-CxY-xbsH.js";
30
30
 
@@ -1,12 +1,12 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { D as escapeRegExp, H as toWhatsappJid, rt as getChildLogger } from "./registry-DYq1AYOv.js";
3
- import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
4
- import { n as loadConfig } from "./config-5SdHIcHU.js";
5
- import { n as resolveMarkdownTableMode } from "./markdown-tables-C-BmIap8.js";
6
- import { a as loadWebMedia } from "./ir-CTiz95Vb.js";
2
+ import { D as escapeRegExp, H as toWhatsappJid, rt as getChildLogger } from "./registry-UkL38jvt.js";
3
+ import { t as createSubsystemLogger } from "./subsystem-DN75fnEF.js";
4
+ import { n as loadConfig } from "./config-CvmE3Yx1.js";
5
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-tW9bGjLM.js";
6
+ import { a as loadWebMedia } from "./ir-B-XXcYFe.js";
7
7
  import { n as normalizePollInput } from "./polls-CCuCaqgv.js";
8
- import { t as convertMarkdownTables } from "./tables-qMwbq29u.js";
9
- import { n as requireActiveWebListener } from "./active-listener-CfHHV2SU.js";
8
+ import { t as convertMarkdownTables } from "./tables-BX7_aBvN.js";
9
+ import { n as requireActiveWebListener } from "./active-listener-DFUTUjxt.js";
10
10
  import { randomUUID } from "node:crypto";
11
11
 
12
12
  //#region src/markdown/whatsapp.ts
@@ -1,5 +1,5 @@
1
- import { r as saveMediaBuffer } from "./store-01F_JM7O.js";
2
- import { a as loadWebMedia } from "./ir-CTiz95Vb.js";
1
+ import { r as saveMediaBuffer } from "./store-Ea3zM6xK.js";
2
+ import { a as loadWebMedia } from "./ir-B-XXcYFe.js";
3
3
 
4
4
  //#region src/media/outbound-attachment.ts
5
5
  async function resolveOutboundAttachmentFromUrl(mediaUrl, maxBytes, options) {
@@ -0,0 +1,212 @@
1
+ import path from "node:path";
2
+ import fsSync from "node:fs";
3
+ import os from "node:os";
4
+
5
+ //#region src/infra/home-dir.ts
6
+ function normalize(value) {
7
+ const trimmed = value?.trim();
8
+ return trimmed ? trimmed : void 0;
9
+ }
10
+ function resolveEffectiveHomeDir(env = process.env, homedir = os.homedir) {
11
+ const raw = resolveRawHomeDir(env, homedir);
12
+ return raw ? path.resolve(raw) : void 0;
13
+ }
14
+ function resolveRawHomeDir(env, homedir) {
15
+ const explicitHome = normalize(env.SYMI_HOME);
16
+ if (explicitHome) {
17
+ if (explicitHome === "~" || explicitHome.startsWith("~/") || explicitHome.startsWith("~\\")) {
18
+ const fallbackHome = normalize(env.HOME) ?? normalize(env.USERPROFILE) ?? normalizeSafe(homedir);
19
+ if (fallbackHome) return explicitHome.replace(/^~(?=$|[\\/])/, fallbackHome);
20
+ return;
21
+ }
22
+ return explicitHome;
23
+ }
24
+ const envHome = normalize(env.HOME);
25
+ if (envHome) return envHome;
26
+ const userProfile = normalize(env.USERPROFILE);
27
+ if (userProfile) return userProfile;
28
+ return normalizeSafe(homedir);
29
+ }
30
+ function normalizeSafe(homedir) {
31
+ try {
32
+ return normalize(homedir());
33
+ } catch {
34
+ return;
35
+ }
36
+ }
37
+ function resolveRequiredHomeDir(env = process.env, homedir = os.homedir) {
38
+ return resolveEffectiveHomeDir(env, homedir) ?? path.resolve(process.cwd());
39
+ }
40
+ function expandHomePrefix(input, opts) {
41
+ if (!input.startsWith("~")) return input;
42
+ const home = normalize(opts?.home) ?? resolveEffectiveHomeDir(opts?.env ?? process.env, opts?.homedir ?? os.homedir);
43
+ if (!home) return input;
44
+ return input.replace(/^~(?=$|[\\/])/, home);
45
+ }
46
+
47
+ //#endregion
48
+ //#region src/config/paths.ts
49
+ /**
50
+ * Nix mode detection: When SYMI_NIX_MODE=1, the gateway is running under Nix.
51
+ * In this mode:
52
+ * - No auto-install flows should be attempted
53
+ * - Missing dependencies should produce actionable Nix-specific error messages
54
+ * - Config is managed externally (read-only from Nix perspective)
55
+ */
56
+ function resolveIsNixMode(env = process.env) {
57
+ return env.SYMI_NIX_MODE === "1";
58
+ }
59
+ const isNixMode = resolveIsNixMode();
60
+ const LEGACY_STATE_DIRNAMES = [];
61
+ const NEW_STATE_DIRNAME = ".symi";
62
+ const CONFIG_FILENAME = "symi.json";
63
+ const LEGACY_CONFIG_FILENAMES = [];
64
+ function resolveDefaultHomeDir() {
65
+ return resolveRequiredHomeDir(process.env, os.homedir);
66
+ }
67
+ /** Build a homedir thunk that respects SYMI_HOME for the given env. */
68
+ function envHomedir(env) {
69
+ return () => resolveRequiredHomeDir(env, os.homedir);
70
+ }
71
+ function legacyStateDirs(homedir = resolveDefaultHomeDir) {
72
+ return LEGACY_STATE_DIRNAMES.map((dir) => path.join(homedir(), dir));
73
+ }
74
+ function newStateDir(homedir = resolveDefaultHomeDir) {
75
+ return path.join(homedir(), NEW_STATE_DIRNAME);
76
+ }
77
+ /**
78
+ * State directory for mutable data (sessions, logs, caches).
79
+ * Can be overridden via SYMI_STATE_DIR.
80
+ * Default: ~/.symi
81
+ */
82
+ function resolveStateDir(env = process.env, homedir = envHomedir(env)) {
83
+ const effectiveHomedir = () => resolveRequiredHomeDir(env, homedir);
84
+ const override = env.SYMI_STATE_DIR?.trim();
85
+ if (override) return resolveUserPath(override, env, effectiveHomedir);
86
+ const newDir = newStateDir(effectiveHomedir);
87
+ const legacyDirs = legacyStateDirs(effectiveHomedir);
88
+ if (fsSync.existsSync(newDir)) return newDir;
89
+ const existingLegacy = legacyDirs.find((dir) => {
90
+ try {
91
+ return fsSync.existsSync(dir);
92
+ } catch {
93
+ return false;
94
+ }
95
+ });
96
+ if (existingLegacy) return existingLegacy;
97
+ return newDir;
98
+ }
99
+ function resolveUserPath(input, env = process.env, homedir = envHomedir(env)) {
100
+ const trimmed = input.trim();
101
+ if (!trimmed) return trimmed;
102
+ if (trimmed.startsWith("~")) {
103
+ const expanded = expandHomePrefix(trimmed, {
104
+ home: resolveRequiredHomeDir(env, homedir),
105
+ env,
106
+ homedir
107
+ });
108
+ return path.resolve(expanded);
109
+ }
110
+ return path.resolve(trimmed);
111
+ }
112
+ const STATE_DIR = resolveStateDir();
113
+ /**
114
+ * Config file path (JSON5).
115
+ * Can be overridden via SYMI_CONFIG_PATH.
116
+ * Default: ~/.symi/symi.json (or $SYMI_STATE_DIR/symi.json)
117
+ */
118
+ function resolveCanonicalConfigPath(env = process.env, stateDir = resolveStateDir(env, envHomedir(env))) {
119
+ const override = env.SYMI_CONFIG_PATH?.trim();
120
+ if (override) return resolveUserPath(override, env, envHomedir(env));
121
+ return path.join(stateDir, CONFIG_FILENAME);
122
+ }
123
+ /**
124
+ * Resolve the active config path by preferring existing config candidates
125
+ * before falling back to the canonical path.
126
+ */
127
+ function resolveConfigPathCandidate(env = process.env, homedir = envHomedir(env)) {
128
+ const existing = resolveDefaultConfigCandidates(env, homedir).find((candidate) => {
129
+ try {
130
+ return fsSync.existsSync(candidate);
131
+ } catch {
132
+ return false;
133
+ }
134
+ });
135
+ if (existing) return existing;
136
+ return resolveCanonicalConfigPath(env, resolveStateDir(env, homedir));
137
+ }
138
+ /**
139
+ * Active config path (prefers existing config files).
140
+ */
141
+ function resolveConfigPath(env = process.env, stateDir = resolveStateDir(env, envHomedir(env)), homedir = envHomedir(env)) {
142
+ const override = env.SYMI_CONFIG_PATH?.trim();
143
+ if (override) return resolveUserPath(override, env, homedir);
144
+ const stateOverride = env.SYMI_STATE_DIR?.trim();
145
+ const existing = [path.join(stateDir, CONFIG_FILENAME), ...LEGACY_CONFIG_FILENAMES.map((name) => path.join(stateDir, name))].find((candidate) => {
146
+ try {
147
+ return fsSync.existsSync(candidate);
148
+ } catch {
149
+ return false;
150
+ }
151
+ });
152
+ if (existing) return existing;
153
+ if (stateOverride) return path.join(stateDir, CONFIG_FILENAME);
154
+ const defaultStateDir = resolveStateDir(env, homedir);
155
+ if (path.resolve(stateDir) === path.resolve(defaultStateDir)) return resolveConfigPathCandidate(env, homedir);
156
+ return path.join(stateDir, CONFIG_FILENAME);
157
+ }
158
+ const CONFIG_PATH = resolveConfigPathCandidate();
159
+ /**
160
+ * Resolve default config path candidates across default locations.
161
+ * Order: explicit config path → state-dir-derived paths → new default.
162
+ */
163
+ function resolveDefaultConfigCandidates(env = process.env, homedir = envHomedir(env)) {
164
+ const effectiveHomedir = () => resolveRequiredHomeDir(env, homedir);
165
+ const explicit = env.SYMI_CONFIG_PATH?.trim();
166
+ if (explicit) return [resolveUserPath(explicit, env, effectiveHomedir)];
167
+ const candidates = [];
168
+ const symiStateDir = env.SYMI_STATE_DIR?.trim();
169
+ if (symiStateDir) {
170
+ const resolved = resolveUserPath(symiStateDir, env, effectiveHomedir);
171
+ candidates.push(path.join(resolved, CONFIG_FILENAME));
172
+ candidates.push(...LEGACY_CONFIG_FILENAMES.map((name) => path.join(resolved, name)));
173
+ }
174
+ const defaultDirs = [newStateDir(effectiveHomedir), ...legacyStateDirs(effectiveHomedir)];
175
+ for (const dir of defaultDirs) {
176
+ candidates.push(path.join(dir, CONFIG_FILENAME));
177
+ candidates.push(...LEGACY_CONFIG_FILENAMES.map((name) => path.join(dir, name)));
178
+ }
179
+ return candidates;
180
+ }
181
+ const DEFAULT_GATEWAY_PORT = 18789;
182
+ const OAUTH_FILENAME = "oauth.json";
183
+ /**
184
+ * OAuth credentials storage directory.
185
+ *
186
+ * Precedence:
187
+ * - `SYMI_OAUTH_DIR` (explicit override)
188
+ * - `$*_STATE_DIR/credentials` (canonical server/default)
189
+ */
190
+ function resolveOAuthDir(env = process.env, stateDir = resolveStateDir(env, envHomedir(env))) {
191
+ const override = env.SYMI_OAUTH_DIR?.trim();
192
+ if (override) return resolveUserPath(override, env, envHomedir(env));
193
+ return path.join(stateDir, "credentials");
194
+ }
195
+ function resolveOAuthPath(env = process.env, stateDir = resolveStateDir(env, envHomedir(env))) {
196
+ return path.join(resolveOAuthDir(env, stateDir), OAUTH_FILENAME);
197
+ }
198
+ function resolveGatewayPort(cfg, env = process.env) {
199
+ const envRaw = env.SYMI_GATEWAY_PORT?.trim();
200
+ if (envRaw) {
201
+ const parsed = Number.parseInt(envRaw, 10);
202
+ if (Number.isFinite(parsed) && parsed > 0) return parsed;
203
+ }
204
+ const configPort = cfg?.gateway?.port;
205
+ if (typeof configPort === "number" && Number.isFinite(configPort)) {
206
+ if (configPort > 0) return configPort;
207
+ }
208
+ return DEFAULT_GATEWAY_PORT;
209
+ }
210
+
211
+ //#endregion
212
+ export { resolveOAuthDir as a, expandHomePrefix as c, resolveGatewayPort as i, resolveEffectiveHomeDir as l, resolveConfigPath as n, resolveOAuthPath as o, resolveDefaultConfigCandidates as r, resolveStateDir as s, STATE_DIR as t, resolveRequiredHomeDir as u };
@@ -1,4 +1,4 @@
1
- import { c as expandHomePrefix, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-CE7eVGHg.js";
1
+ import { c as expandHomePrefix, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-CYmyCDsE.js";
2
2
  import { s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-BCzIW1Y2.js";
3
3
  import path from "node:path";
4
4
  import os from "node:os";
@@ -1,11 +1,11 @@
1
- import "./paths-CE7eVGHg.js";
2
- import "./registry-DYq1AYOv.js";
3
- import "./agent-scope-CpEJ0B88.js";
4
- import "./subsystem-BjyjJF-d.js";
5
- import "./workspace-DscDraUb.js";
6
- import { C as normalizeProviderId, d as ensureAuthProfileStore } from "./auth-profiles-DdK1Hxaa.js";
7
- import "./env-BDXYbTKj.js";
8
- import "./github-copilot-token-cCYzSU9h.js";
1
+ import "./paths-CYmyCDsE.js";
2
+ import "./registry-UkL38jvt.js";
3
+ import "./agent-scope-D68_xfTL.js";
4
+ import "./subsystem-DN75fnEF.js";
5
+ import "./workspace-DqJ5h-ZB.js";
6
+ import { C as normalizeProviderId, d as ensureAuthProfileStore } from "./auth-profiles-Bl9aU7fc.js";
7
+ import "./env-xmBFQPBP.js";
8
+ import "./github-copilot-token-B8B2pmph.js";
9
9
  import "./boolean-CE7i9tBR.js";
10
10
  import path from "node:path";
11
11
  import fs from "node:fs/promises";
@@ -8,6 +8,6 @@ import "./model-selection-CyFvYcRt.js";
8
8
  import "./github-copilot-token-DAu1a6BX.js";
9
9
  import "./boolean-BsqeuxE6.js";
10
10
  import "./env-DPCHYPeH.js";
11
- import { t as ensurePiAuthJsonFromAuthProfiles } from "./system-cli-_0h_FSPB.js";
11
+ import { t as ensurePiAuthJsonFromAuthProfiles } from "./system-cli-UMsMEurS.js";
12
12
 
13
13
  export { ensurePiAuthJsonFromAuthProfiles };