@visorcraft/idlehands 4.0.18 → 4.0.19

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 (287) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/{accounts-upx5iuke.js → accounts-BDVs8LTu.js} +1 -1
  3. package/dist/{accounts-yD5yI-jP.js → accounts-CIvVRRHb.js} +1 -1
  4. package/dist/{accounts-CRDMZUcg.js → accounts-Dk8mJIrQ.js} +6 -6
  5. package/dist/{acp-cli-COix-boa.js → acp-cli-B3uwVAGD.js} +2 -2
  6. package/dist/{acp-cli-B-7CXaeS.js → acp-cli-BEpWQbqb.js} +2 -2
  7. package/dist/{agent-scope-BVeQuh5x.js → agent-scope-DyP_tr7s.js} +4 -4
  8. package/dist/{agent-via-gateway-Cl2YwlXJ.js → agent-via-gateway-B03q92bw.js} +2 -2
  9. package/dist/{agent-via-gateway-pMCfUzW-.js → agent-via-gateway-B2Z_k_od.js} +60 -60
  10. package/dist/{agent-via-gateway-ClQrLbgo.js → agent-via-gateway-CUQG6kii.js} +2 -2
  11. package/dist/{agent-via-gateway-CC37LlPd.js → agent-via-gateway-Cn3iNSod.js} +7 -7
  12. package/dist/{agents-DrnGQroU.js → agents-DdTECKDf.js} +5 -5
  13. package/dist/{agents.config-BZPnYIMF.js → agents.config-CHtoYxr6.js} +1 -1
  14. package/dist/{agents.config-DfWZrbXn.js → agents.config-D2EbQiOx.js} +1 -1
  15. package/dist/{anton-BfrX2FMd.js → anton-D4vpCj_q.js} +32 -6
  16. package/dist/{anton-B-I7rEtn.js → anton-DsmttQbC.js} +36 -10
  17. package/dist/{anton-BrY-bWgq.js → anton-hH1PyE2C.js} +32 -6
  18. package/dist/{anton-BgKjig3B.js → anton-x7f6kIFP.js} +32 -6
  19. package/dist/{audio-preflight-aBtF0cRI.js → audio-preflight-BSlR2jEq.js} +35 -35
  20. package/dist/{audio-preflight-CSSlgO89.js → audio-preflight-vD3mDc6w.js} +4 -4
  21. package/dist/{audit-Bkd4fvVb.js → audit-C9PrbHng.js} +2 -2
  22. package/dist/{audit-BmaVRZSd.js → audit-CKeZnjft.js} +2 -2
  23. package/dist/{auth-choice-_C22dz9o.js → auth-choice-DRR52LJT.js} +2 -2
  24. package/dist/{auth-choice-DtvI4epn.js → auth-choice-DVoPuwEs.js} +2 -2
  25. package/dist/{auth-store-DQAd4LSE.js → auth-store-DXT-l7fO.js} +12 -12
  26. package/dist/{banner-B-UYZG8d.js → banner-CFKoGAzN.js} +1 -1
  27. package/dist/{bindings-B9L4cqmm.js → bindings-D3b5Fmc9.js} +2 -2
  28. package/dist/{browser-cli-Ddh5zEZN.js → browser-cli-Brb82I5e.js} +3 -3
  29. package/dist/{browser-cli-Ny1nHwqv.js → browser-cli-Ci6DpTnS.js} +3 -3
  30. package/dist/build-info.json +3 -3
  31. package/dist/bundled/boot-md/handler.js +60 -60
  32. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  33. package/dist/bundled/command-logger/handler.js +3 -3
  34. package/dist/bundled/session-memory/handler.js +60 -60
  35. package/dist/{call-BRL23UCk.js → call-BpWhjuOg.js} +1 -1
  36. package/dist/{call-DuNslqj2.js → call-C82rD2Wn.js} +1 -1
  37. package/dist/{channel-activity-DOLX-uK1.js → channel-activity-D_TMOGQ0.js} +3 -3
  38. package/dist/{channel-options-C0iwLcfC.js → channel-options-B4oF7_V2.js} +1 -1
  39. package/dist/{channel-options-BbwNg4q_.js → channel-options-BU0E7BdU.js} +1 -1
  40. package/dist/{channel-web-BLxKeCXF.js → channel-web-0icuasR6.js} +2 -2
  41. package/dist/{channel-web-q6Ugfiks.js → channel-web-BDytDCrG.js} +2 -2
  42. package/dist/{channels-cli-DaRR8vAs.js → channels-cli-B2w32z11.js} +10 -10
  43. package/dist/{channels-cli-BtL1XuuK.js → channels-cli-DWaQsKP8.js} +10 -10
  44. package/dist/{chrome-Do5potHV.js → chrome-DEnkfZ9p.js} +9 -9
  45. package/dist/{chrome-D_SXDetO.js → chrome-_2tzVjVl.js} +17 -17
  46. package/dist/{chunk-BgScV6uo.js → chunk-CMpX7Jaz.js} +1 -1
  47. package/dist/cli/daemon-cli.js +1 -1
  48. package/dist/{cli-BjhrdeVd.js → cli-BVw2ja-q.js} +5 -5
  49. package/dist/{cli-CrUoGRuS.js → cli-Hplv9sD1.js} +5 -5
  50. package/dist/{client-DxH9hwLn.js → client-DtnD-ee9.js} +1 -0
  51. package/dist/{client-Brv1GCwX.js → client-udFMSDes.js} +1 -0
  52. package/dist/{command-registry-BZNlvfaM.js → command-registry-CWDCVzZv.js} +11 -11
  53. package/dist/{commands-registry-CK7aj_ri.js → commands-registry-j4vAzcF2.js} +5 -5
  54. package/dist/{completion-cli-p9W-g1Pe.js → completion-cli-CjERsZ27.js} +2 -2
  55. package/dist/{completion-cli-BIabgt7h.js → completion-cli-f5M3WVf8.js} +1 -1
  56. package/dist/{config-cli-B4nNEjK9.js → config-cli-B2gc8CV1.js} +1 -1
  57. package/dist/{config-cli-u4zbdm-e.js → config-cli-Bt7n6ZJS.js} +1 -1
  58. package/dist/{configure-BbDbMd5G.js → configure-BXsptBk3.js} +6 -6
  59. package/dist/{configure-Dj1JdeEI.js → configure-CKspMrI1.js} +6 -6
  60. package/dist/{cron-cli-Xml0Uww8.js → cron-cli-DQsnGQKs.js} +3 -3
  61. package/dist/{cron-cli-D4DXiD1C.js → cron-cli-DXZzPHDQ.js} +3 -3
  62. package/dist/{daemon-cli-yC6gq-yv.js → daemon-cli-DOG5Mivy.js} +2 -2
  63. package/dist/{daemon-cli-B1Ti51bt.js → daemon-cli-DUg-s4LG.js} +2 -2
  64. package/dist/daemon-cli.js +1 -0
  65. package/dist/{deliver-whAbSPLk.js → deliver-5FLCa6tB.js} +1 -1
  66. package/dist/{deliver-CJaM2zRY.js → deliver-CVTXl0Cv.js} +20 -20
  67. package/dist/{deps-CQzDLqTz.js → deps-BAMUVAdU.js} +6 -6
  68. package/dist/{deps-BMWq0kjy.js → deps-BbipxGPW.js} +1 -1
  69. package/dist/{deps-BuRud-p8.js → deps-CjWcQwlX.js} +1 -1
  70. package/dist/{deps-Dr9GpASq.js → deps-CwPrf7RC.js} +1 -1
  71. package/dist/{devices-cli-BNkO0Fey.js → devices-cli-DKK65S9Z.js} +2 -2
  72. package/dist/{devices-cli-Ck6s9sQQ.js → devices-cli-aiEJxYcN.js} +2 -2
  73. package/dist/{diagnostic-lz5wKsEe.js → diagnostic-4owMk4vH.js} +1 -1
  74. package/dist/{dock-6MgvdSqu.js → dock-BgOmHcbh.js} +6 -6
  75. package/dist/{doctor-completion-BLRGmusD.js → doctor-completion-C2-SDBd6.js} +1 -1
  76. package/dist/{doctor-completion-BeZMlZPb.js → doctor-completion-DB151YdP.js} +1 -1
  77. package/dist/emergency-stop-BldYLJq7.js +113 -0
  78. package/dist/{emergency-stop-CSSPAKHr.js → emergency-stop-CDozqde9.js} +5 -5
  79. package/dist/{emergency-stop-BEsjWvQL.js → emergency-stop-DpNGtfb4.js} +5 -5
  80. package/dist/{emergency-stop-BU-Vbk3V.js → emergency-stop-Lj33jqJJ.js} +7 -7
  81. package/dist/entry.js +1 -1
  82. package/dist/{env-B7b7MKfk.js → env-B5G1qwGc.js} +1 -1
  83. package/dist/{errors--Eb33_ji.js → errors-C_0nm4TJ.js} +1 -1
  84. package/dist/{exec-approvals-cli-CyjTnYfk.js → exec-approvals-cli-D6XUzs4j.js} +4 -4
  85. package/dist/{exec-approvals-cli-CNWOtvwX.js → exec-approvals-cli-DRoaRYPn.js} +4 -4
  86. package/dist/extensionAPI.js +7 -7
  87. package/dist/{fetch-guard-OZ_PCUyr.js → fetch-guard-iuQsIjqN.js} +1 -1
  88. package/dist/{frontmatter-p8nPDprK.js → frontmatter-BOudmHMS.js} +2 -2
  89. package/dist/{fs-safe-BEl8T_Vc.js → fs-safe-CYUaAFO9.js} +2 -2
  90. package/dist/{gateway-cli-BCHdAJHS.js → gateway-cli-Ccd1ukWq.js} +17 -14
  91. package/dist/{gateway-cli-Dumy2IVU.js → gateway-cli-lNUOd2_i.js} +17 -14
  92. package/dist/{gateway-rpc-CdfF0Zt5.js → gateway-rpc-5PTvwEfj.js} +1 -1
  93. package/dist/{gateway-rpc-Du-ZpDjh.js → gateway-rpc-BBFG1T-M.js} +1 -1
  94. package/dist/{gemini-auth-CA0K3QXj.js → gemini-auth-CIyaa44H.js} +2 -2
  95. package/dist/{github-copilot-token-DCg9Q9Ll.js → github-copilot-token-Dgt6cnsM.js} +7 -7
  96. package/dist/{health-CqdQAURH.js → health--GQAFTBr.js} +2 -2
  97. package/dist/{health-B3kk7l82.js → health-HEN6Wk9G.js} +2 -2
  98. package/dist/{hooks-cli-jMG5GST1.js → hooks-cli-DFrttZGb.js} +6 -6
  99. package/dist/{hooks-cli-Ba4woLl0.js → hooks-cli-Di8qrzIB.js} +6 -6
  100. package/dist/{image-BQ3RQWD8.js → image-COw__ACq.js} +6 -6
  101. package/dist/{image-BAsQlUqT.js → image-C_aN5P6-.js} +1 -1
  102. package/dist/{image-ops-ZNtLhD4c.js → image-ops-D1KtygWz.js} +1 -1
  103. package/dist/index.js +10 -10
  104. package/dist/{ir-DnyYtX4H.js → ir-B7IBoKLy.js} +5 -5
  105. package/dist/llm-slug-generator.js +60 -60
  106. package/dist/{local-roots-C9CA2f0R.js → local-roots-KN4Hp1yZ.js} +5 -5
  107. package/dist/{login-Cn1vc1bn.js → login-CFr5vJmR.js} +6 -6
  108. package/dist/{login-qr-Dj0NmRdg.js → login-qr-CFFFOjOl.js} +11 -11
  109. package/dist/{logs-cli-CH4mFhUt.js → logs-cli-4VQ9Iwiw.js} +3 -3
  110. package/dist/{logs-cli-BN5TN6bg.js → logs-cli-u0WmYxx7.js} +3 -3
  111. package/dist/{manager-DBd_2F6j.js → manager-BE_76jWB.js} +15 -15
  112. package/dist/{markdown-tables-CsrsXS80.js → markdown-tables-CzsockiZ.js} +1 -1
  113. package/dist/{message-channel-Cg9KtLfy.js → message-channel-C8QtrwEU.js} +1 -1
  114. package/dist/{model-selection-Vtu6d5Um.js → model-selection-1MMYqY6M.js} +41 -41
  115. package/dist/{models-cli-iLP9BnPA.js → models-cli-CMwszgSD.js} +6 -6
  116. package/dist/{models-cli-BaR1RccY.js → models-cli-DVAyIZ63.js} +7 -7
  117. package/dist/{models-C6GypzZ1.js → models-tZYpgts_.js} +3 -3
  118. package/dist/{node-cli-Ch7K7WtL.js → node-cli-BYzjxmUY.js} +1 -1
  119. package/dist/{node-cli-BiQaHamJ.js → node-cli-CgeiQGbv.js} +1 -1
  120. package/dist/{nodes-cli-tVCIBdL1.js → nodes-cli-DaE0WsOH.js} +3 -3
  121. package/dist/{nodes-cli-D_hUCPNt.js → nodes-cli-kNOtp0U0.js} +3 -3
  122. package/dist/{npm-resolution-DYUWHUe5.js → npm-resolution-By6bZkA-.js} +1 -1
  123. package/dist/{npm-resolution-CWxaTTrT.js → npm-resolution-DLSA4PTO.js} +1 -1
  124. package/dist/{onboard-DdBsJgzg.js → onboard-B6eOxpDM.js} +3 -3
  125. package/dist/{onboard-CinZ4CuY.js → onboard-CbXlbAx2.js} +3 -3
  126. package/dist/{onboard-channels-Bnwwq6TK.js → onboard-channels-BISq46-i.js} +2 -2
  127. package/dist/{onboard-channels-9XAEsgO-.js → onboard-channels-JPltbNGL.js} +2 -2
  128. package/dist/{onboard-helpers-Dp6wXNs7.js → onboard-helpers-DWivfzcc.js} +1 -1
  129. package/dist/{onboard-helpers-BQmbMJxJ.js → onboard-helpers-mzy38DiC.js} +1 -1
  130. package/dist/{onboard-remote-1ZZd5lcX.js → onboard-remote-BMo2C9Ae.js} +1 -1
  131. package/dist/{onboard-remote-CIjhaP2W.js → onboard-remote-LCBHijVE.js} +1 -1
  132. package/dist/{onboard-skills-BD_AS1Iy.js → onboard-skills-BrqATIYg.js} +1 -1
  133. package/dist/{onboard-skills-BsaUIuq6.js → onboard-skills-jFY9gaOu.js} +1 -1
  134. package/dist/{onboarding-C4oujn63.js → onboarding-Da3n7Rvs.js} +7 -7
  135. package/dist/{onboarding-DFvHWFqL.js → onboarding-DikyMlYG.js} +7 -7
  136. package/dist/{onboarding.finalize-BDWHPpyn.js → onboarding.finalize-Bp2ufMd0.js} +10 -10
  137. package/dist/{onboarding.finalize-DMhdDTvo.js → onboarding.finalize-CwYx5n3Z.js} +11 -11
  138. package/dist/{onboarding.gateway-config-CEQMyj8l.js → onboarding.gateway-config-Btu2gzgr.js} +3 -3
  139. package/dist/{onboarding.gateway-config-Czn7jKsq.js → onboarding.gateway-config-w3C9Yj3B.js} +3 -3
  140. package/dist/{outbound-BYm4JJli.js → outbound-BNh6PpQb.js} +6 -6
  141. package/dist/{outbound-attachment-DwaqvYNG.js → outbound-attachment-3I6GzwDe.js} +2 -2
  142. package/dist/{path-alias-guards-BnjbJzIQ.js → path-alias-guards-Cu1nXNMM.js} +1 -1
  143. package/dist/{paths-CkTEyLTV.js → paths-BYNVLNi_.js} +5 -5
  144. package/dist/{paths-0fcEvxu4.js → paths-D_qUel1T.js} +3 -3
  145. package/dist/{pi-embedded-Dap1HAGA.js → pi-embedded-Bc4KWuTe.js} +28 -27
  146. package/dist/{pi-embedded-BDp9JsrM.js → pi-embedded-BeyOxL6U.js} +177 -176
  147. package/dist/{pi-embedded-helpers-Ct2rwp-P.js → pi-embedded-helpers-C2j0LfJC.js} +4 -4
  148. package/dist/{pi-embedded-helpers-B1CKQ81Y.js → pi-embedded-helpers-CyTpDKo5.js} +24 -24
  149. package/dist/{pi-model-discovery-DBHbwKOo.js → pi-model-discovery-Bb__OY-j.js} +7 -7
  150. package/dist/{plugin-registry-CGFy1ugt.js → plugin-registry-BY85d-vE.js} +1 -1
  151. package/dist/{plugin-registry-LYzfPk35.js → plugin-registry-DROWinG6.js} +1 -1
  152. package/dist/plugin-sdk/{agent-via-gateway-De4e2_-W.js → agent-via-gateway-CXtWg-qx.js} +2 -2
  153. package/dist/plugin-sdk/{anton-BO16dWNw.js → anton-CGYTy9vy.js} +32 -6
  154. package/dist/plugin-sdk/{channel-web-Cd-eamYe.js → channel-web-EFRSObCG.js} +2 -2
  155. package/dist/plugin-sdk/commands/agent/types.d.ts +1 -0
  156. package/dist/plugin-sdk/{deps-D6VWIdk7.js → deps-qZxPlSgp.js} +1 -1
  157. package/dist/plugin-sdk/{emergency-stop-w-HD2bz4.js → emergency-stop-CxcBz-aQ.js} +2 -2
  158. package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +1 -0
  159. package/dist/plugin-sdk/index.js +3 -3
  160. package/dist/plugin-sdk/{reply-BqAPyIsz.js → reply-nUO1aM3T.js} +13 -12
  161. package/dist/plugin-sdk/{web-Dj_tThNQ.js → web-CEtAvhaI.js} +3 -3
  162. package/dist/{plugins-Bb6_uisJ.js → plugins-CRB60mCJ.js} +10 -10
  163. package/dist/{plugins-cli-BQKfJ9aF.js → plugins-cli-RFXGkaxP.js} +6 -6
  164. package/dist/{plugins-cli-BCAcCeRZ.js → plugins-cli-b_o3IL7x.js} +6 -6
  165. package/dist/{program-context-DBOEyhi4.js → program-context-D6irLwPo.js} +31 -31
  166. package/dist/{program-Df-zk5RB.js → program-vH6RTUOw.js} +11 -11
  167. package/dist/{prompt-select-styled-DJVZSK4X.js → prompt-select-styled-CDoDFWo7.js} +6 -6
  168. package/dist/{prompt-select-styled-B0FsbRWb.js → prompt-select-styled-DFVvU0TH.js} +6 -6
  169. package/dist/{provider-auth-helpers-D0cQmJkF.js → provider-auth-helpers-BCc5UtUa.js} +1 -1
  170. package/dist/{provider-auth-helpers-Aojd4jNn.js → provider-auth-helpers-CNRz0SFC.js} +1 -1
  171. package/dist/{push-apns-BtI9tV7C.js → push-apns-CHmvuoMu.js} +1 -1
  172. package/dist/{push-apns-qzriU6TC.js → push-apns-e2xmxGGE.js} +1 -1
  173. package/dist/{pw-ai-BKPa5DlF.js → pw-ai-CowTfhOG.js} +13 -13
  174. package/dist/{pw-ai-yrIWfcWX.js → pw-ai-DjmrIQle.js} +1 -1
  175. package/dist/{qmd-manager-DEJVRLvM.js → qmd-manager-B_GgyQQ0.js} +8 -8
  176. package/dist/{query-expansion-CW7PqIXL.js → query-expansion-DEq020GG.js} +5 -5
  177. package/dist/{redact-D1Ebz_iR.js → redact-Bvpf-ATQ.js} +1 -1
  178. package/dist/{register.agent-ButiRGeg.js → register.agent-Dx7ULz49.js} +12 -12
  179. package/dist/{register.agent-Xdy9Gu3H.js → register.agent-HWcFMr6h.js} +11 -11
  180. package/dist/{register.configure-f4xr9iKB.js → register.configure-BctHAiWh.js} +13 -13
  181. package/dist/{register.configure-m5qhbCOO.js → register.configure-k8gocsJw.js} +13 -13
  182. package/dist/{register.maintenance-N55abUee.js → register.maintenance-BYiX9iOa.js} +12 -12
  183. package/dist/{register.maintenance-BA4e0HDc.js → register.maintenance-C6o2WuQx.js} +11 -11
  184. package/dist/{register.message-DaVB6EYW.js → register.message-BLScF2fV.js} +6 -6
  185. package/dist/{register.message-Zta0bYh0.js → register.message-BewFLd-k.js} +6 -6
  186. package/dist/{register.onboard-BHKf5Emm.js → register.onboard-BVm-2XAx.js} +5 -5
  187. package/dist/{register.onboard-BikBO9Gs.js → register.onboard-a0kqiCTa.js} +5 -5
  188. package/dist/{register.orchestrator-anton-DtPFOV9F.js → register.orchestrator-anton-BYyjV8R-.js} +5 -4
  189. package/dist/{register.orchestrator-anton-x3yGok7b.js → register.orchestrator-anton-Tn_RaMLq.js} +5 -4
  190. package/dist/{register.setup-BeRMjZaz.js → register.setup-BJ0WBUpt.js} +5 -5
  191. package/dist/{register.setup-DCIPrpG0.js → register.setup-BwPJaqpH.js} +5 -5
  192. package/dist/{register.status-health-sessions-I0YSjY_V.js → register.status-health-sessions-Clzt8hbv.js} +8 -8
  193. package/dist/{register.status-health-sessions-CA5wMwpi.js → register.status-health-sessions-wbopjGL-.js} +8 -8
  194. package/dist/{register.subclis-DZkq_g35.js → register.subclis-CrcOefJY.js} +21 -21
  195. package/dist/{replies-CXcxPRWk.js → replies-6_GxvQYe.js} +3 -3
  196. package/dist/{reply-DlS9HBVo.js → reply-D5gCiiGr.js} +15 -15
  197. package/dist/{reply-prefix-49q2WQ2B.js → reply-prefix-BUgeSN2R.js} +1 -1
  198. package/dist/{resolve-route-Dr-fqH39.js → resolve-route-DuttYY7A.js} +4 -4
  199. package/dist/{retry-DWN-e4ja.js → retry-BeB9WenR.js} +1 -1
  200. package/dist/{rpc-CCimHATv.js → rpc-Cf9OK5Yk.js} +1 -1
  201. package/dist/{rpc-CasD0keJ.js → rpc-DVTovtI3.js} +1 -1
  202. package/dist/{run-main-B75ak_hb.js → run-main-BCX3UZMR.js} +18 -18
  203. package/dist/{runner-DO528Ump.js → runner-BzNdfqDz.js} +11 -11
  204. package/dist/{runner-Bv_BA3vd.js → runner-CZW_eyf2.js} +1 -1
  205. package/dist/{secrets-cli-Bx9bIigZ.js → secrets-cli-C4UBK_LV.js} +3 -3
  206. package/dist/{secrets-cli-Bgp_H_bH.js → secrets-cli-CR3h2TBy.js} +3 -3
  207. package/dist/{security-cli-MQ__Ca6v.js → security-cli-B9_LV2po.js} +3 -3
  208. package/dist/{security-cli-e1WjvhRm.js → security-cli-an5u-5Jb.js} +3 -3
  209. package/dist/{send-BspIjWIY.js → send-BeIZJuy4.js} +7 -7
  210. package/dist/{send-szC_vYk_.js → send-C1hvd3bt.js} +6 -6
  211. package/dist/{send-CRnMBrJ2.js → send-D4bMycQu.js} +7 -7
  212. package/dist/{send-De8xTUIV.js → send-Dfa3sn6r.js} +24 -24
  213. package/dist/{send-BypmtKl1.js → send-DmLC7aEF.js} +10 -10
  214. package/dist/{server-node-events-CufCnFp4.js → server-node-events-CbVkqOtV.js} +6 -6
  215. package/dist/{server-node-events-B1RPoseF.js → server-node-events-DvStFPGi.js} +6 -6
  216. package/dist/{session-CKiIT4OY.js → session-F_YDS_1V.js} +7 -7
  217. package/dist/{sessions-BgxmLQuf.js → sessions-3ioSeOA1.js} +41 -41
  218. package/dist/{skill-commands-BOUMR5De.js → skill-commands-Ck3flWX7.js} +9 -9
  219. package/dist/{skills-OsjsCf_S.js → skills-CnAPWfca.js} +22 -22
  220. package/dist/{status-hXjECVBh.js → status-CWnPokQF.js} +5 -5
  221. package/dist/{status-ERmEJYw1.js → status-ClMOrHdT.js} +5 -5
  222. package/dist/{store-B4rHJvSg.js → store-CvMgrKWx.js} +2 -2
  223. package/dist/{subagent-registry-CcxZYIwL.js → subagent-registry-BH5O1rxK.js} +15 -15
  224. package/dist/{subsystem-B98oWbbO.js → subsystem-tzu-rIAJ.js} +1 -1
  225. package/dist/{system-cli-CHiaS_zS.js → system-cli-Dd-gBN0t.js} +3 -3
  226. package/dist/{system-cli-3T-OTIKv.js → system-cli-DyVZ5udc.js} +3 -3
  227. package/dist/{tables-DuOExt0S.js → tables-5k-zOZ-s.js} +1 -1
  228. package/dist/{target-errors-CWZr3RMI.js → target-errors-BPfQrPim.js} +2 -2
  229. package/dist/{tokens-B9ArFCMX.js → tokens-BRLyURxW.js} +1 -1
  230. package/dist/{tool-images-DLiBUCZb.js → tool-images-CcGZpzmq.js} +2 -2
  231. package/dist/{tool-loop-detection-j48jLTrr.js → tool-loop-detection-BNGetx3Z.js} +3 -3
  232. package/dist/{tui-BPgLehyv.js → tui-2u2ZDhHV.js} +2 -2
  233. package/dist/{tui-lalhRHve.js → tui-Bne3YNiw.js} +2 -2
  234. package/dist/{tui-cli-9z2Sm8Qg.js → tui-cli-BWnIeq57.js} +3 -3
  235. package/dist/{tui-cli-BVKWJ9X7.js → tui-cli-D0Z-rcUe.js} +3 -3
  236. package/dist/{update-cli-Rnv68OR6.js → update-cli-BTNcddEX.js} +12 -12
  237. package/dist/{update-cli-DROtjWg7.js → update-cli-CxZD0ekr.js} +13 -13
  238. package/dist/{update-runner-BWxBVG9j.js → update-runner-CN7Dm9tg.js} +1 -1
  239. package/dist/{update-runner-CqeNDbPD.js → update-runner-tu2Aiphu.js} +1 -1
  240. package/dist/{utils-ChNzRVsg.js → utils-CTFLl_ji.js} +18 -18
  241. package/dist/{web-BMSzFWiF.js → web-BV-BEZj6.js} +6 -6
  242. package/dist/{web-5ddwA0bs.js → web-Csmkqx1W.js} +66 -66
  243. package/dist/{web-BQLIquZA.js → web-DiqHxfw7.js} +8 -8
  244. package/dist/{web-CnzKMZK0.js → web-aRaB-CvF.js} +6 -6
  245. package/dist/{whatsapp-actions-CYraflBZ.js → whatsapp-actions-DbPcN6JQ.js} +25 -25
  246. package/dist/{workspace-AM44PzIs.js → workspace-DBFSzT6O.js} +18 -18
  247. package/extensions/acpx/package.json +1 -1
  248. package/extensions/bluebubbles/package.json +1 -1
  249. package/extensions/copilot-proxy/package.json +1 -1
  250. package/extensions/diagnostics-otel/package.json +1 -1
  251. package/extensions/discord/package.json +1 -1
  252. package/extensions/feishu/package.json +1 -1
  253. package/extensions/google-gemini-cli-auth/package.json +1 -1
  254. package/extensions/googlechat/package.json +1 -1
  255. package/extensions/hand/package.json +1 -1
  256. package/extensions/imessage/package.json +1 -1
  257. package/extensions/irc/package.json +1 -1
  258. package/extensions/line/package.json +1 -1
  259. package/extensions/llm-task/package.json +1 -1
  260. package/extensions/matrix/CHANGELOG.md +6 -0
  261. package/extensions/matrix/package.json +1 -1
  262. package/extensions/mattermost/package.json +1 -1
  263. package/extensions/memory-core/package.json +1 -1
  264. package/extensions/memory-lancedb/package.json +1 -1
  265. package/extensions/minimax-portal-auth/package.json +1 -1
  266. package/extensions/msteams/CHANGELOG.md +6 -0
  267. package/extensions/msteams/package.json +1 -1
  268. package/extensions/nextcloud-talk/package.json +1 -1
  269. package/extensions/nostr/CHANGELOG.md +6 -0
  270. package/extensions/nostr/package.json +1 -1
  271. package/extensions/open-prose/package.json +1 -1
  272. package/extensions/signal/package.json +1 -1
  273. package/extensions/slack/package.json +1 -1
  274. package/extensions/synology-chat/package.json +1 -1
  275. package/extensions/telegram/package.json +1 -1
  276. package/extensions/tlon/package.json +1 -1
  277. package/extensions/twitch/CHANGELOG.md +6 -0
  278. package/extensions/twitch/package.json +1 -1
  279. package/extensions/voice-call/CHANGELOG.md +6 -0
  280. package/extensions/voice-call/package.json +1 -1
  281. package/extensions/whatsapp/package.json +1 -1
  282. package/extensions/zalo/CHANGELOG.md +6 -0
  283. package/extensions/zalo/package.json +1 -1
  284. package/extensions/zalouser/CHANGELOG.md +6 -0
  285. package/extensions/zalouser/package.json +1 -1
  286. package/package.json +1 -1
  287. package/dist/emergency-stop-JXB5jZyK.js +0 -113
@@ -1,7 +1,7 @@
1
1
  import { g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-Cn44w-EB.js";
2
2
  import { B as theme, D as isPlainObject, E as truncateUtf16Safe, H as getLogger, M as logVerbose, P as setVerbose, R as colorize, S as shortenHomePath, U as getResolvedLoggerSettings, V as getChildLogger, c as ensureDir, r as clamp, y as resolveUserPath, z as isRich } from "./utils-CXzXXV2o.js";
3
3
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-EAliFiVK.js";
4
- import { $ as normalizeOptionalAgentId, $n as resolveTtsAutoMode, $t as resolveAgentAvatar, A as resolveOutboundSessionRoute, B as setGatewaySigusr1RestartPolicy, Bn as buildOutboundSessionContext, Br as DEFAULT_INPUT_TIMEOUT_MS, Bt as createOutboundSendDeps, C as loadCombinedSessionStoreForGateway, Cn as formatZonedTimestamp, Cr as enqueueSystemEvent, D as resolveSessionModelRef, Dr as requestHeartbeatNow, Dt as requestBodyErrorToText, E as resolveGatewaySessionStoreTarget, En as getTotalPendingReplies, Et as readJsonBodyWithLimit, F as deferGatewayRestartUntilIdle, Fn as listDescendantRunsForRequester, Fr as normalizeSendPolicy, Gn as onAgentEvent, Gr as resolveAgentTimeoutMs, Gt as setCliSessionId, H as consumeRestartSentinel, Hn as clearAgentRunContext, Hr as extractImageContentFromSource, Ht as parseVerboseOverride, I as emitGatewayRestart, Ir as resolveSendPolicy, J as writeRestartSentinel, Jn as clearBootstrapSnapshot, K as summarizeRestartSentinel, Kn as registerAgentRunContext, Kt as runCliAgent, L as isGatewaySigusr1RestartExternallyAllowed, Ln as runSubagentAnnounceFlow, Lr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Lt as resolveOutboundTarget, M as resetDirectoryCache, Mn as stopSubagentsForRequester, Mr as ACP_SESSION_IDENTITY_RENDERER_VERSION, Nn as countActiveDescendantRuns, Nr as getAcpSessionManager, Nt as resolveAgentDeliveryPlan, Ot as computeBackoff, P as consumeGatewaySigusr1RestartAuthorization, Pn as initSubagentRegistry, Pr as resolveAgentSessionDirs, Pt as resolveAgentOutboundTarget, Q as inferLegacyName, Qn as resolveTtsApiKey, Qt as resolveSessionAuthProfileOverride, R as markGatewaySigusr1RestartHandled, Rn as resolveAnnounceTargetFromKey, Rr as DEFAULT_INPUT_IMAGE_MIMES, Rt as resolveSessionDeliveryTarget, S as listSessionsFromStore, T as pruneLegacyStoreKeys, Tn as createReplyDispatcher, Tt as handleSlackHttpRequest, U as formatDoctorNonInteractiveHint, Un as emitAgentEvent, Ur as normalizeMimeList, Ut as runWithModelFallback, V as setPreRestartDeferralCheck, Vn as clearSessionQueues, Vr as extractFileContentFromSource, Vt as applyVerboseOverride, W as formatRestartSentinelMessage, Wn as getAgentRunContext, Wr as resolveInputFileLimits, Wt as getCliSessionId, X as normalizeCronJobCreate, Xn as isTtsEnabled, Xt as lookupContextTokens, Y as normalizeHttpWebhookUrl, Yn as getTtsProvider, Yt as applyModelOverrideToSessionEntry, Z as normalizeCronJobPatch, Zn as isTtsProviderConfigured, _t as normalizeGroupActivation, an as getHookType, ar as textToSpeech, at as buildDeliveryFromLegacyPayload, br as stripHeartbeatToken, cr as getActiveTaskCount, d as runEmbeddedPiAgent, dn as buildHistoryContextFromEntries, dr as markGatewayDraining, dt as persistBrowserProxyFiles, er as resolveTtsConfig, et as normalizeOptionalSessionKey, f as abortEmbeddedPiRun, fr as resetAllLanes, ft as getPluginToolMeta, g as buildDefaultToolPolicyPipelineSteps, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, h as applyToolPolicyPipeline, hr as CommandLane, ht as loadIdleHandsPlugins, i as resolveCronStyleNow, in as detectSuspiciousPatterns, ir as setTtsProvider, it as migrateLegacyCronPayload, jn as isAbortRequestText, jt as agentCommand, k as ensureOutboundSessionEntry, kt as sleepWithAbort, m as waitForEmbeddedPiRunEnd, mr as waitForActiveTasks, n as BARE_SESSION_RESET_PROMPT, nr as resolveTtsProviderOrder, nt as normalizePayloadToSystemText, on as isExternalHookSession, or as OPENAI_TTS_MODELS, ot as hasLegacyDeliveryHints, p as getActiveEmbeddedRunCount, pr as setCommandLaneConcurrency, pt as resolvePluginTools, qn as resolveUserTimezone, rn as buildSafeExternalPrompt, rr as setTtsEnabled, rt as normalizeRequiredName, sn as unbindThreadBindingsBySessionKey, sr as OPENAI_TTS_VOICES, st as stripLegacyDeliveryFields, tr as resolveTtsPrefsPath, tt as normalizeOptionalText, ur as getTotalQueueSize, ut as applyBrowserProxyPaths, v as createIdleHandsTools, w as loadSessionEntry, wn as dispatchInboundMessage, wr as isSystemEventContextChanged, x as listAgentsForGateway, y as canonicalizeSpawnedByForAgent, yt as loadProviderUsageSummary, z as scheduleGatewaySigusr1Restart, zn as readLatestAssistantReply, zr as DEFAULT_INPUT_MAX_REDIRECTS, zt as resolveOutboundChannelPlugin } from "./reply-DlS9HBVo.js";
4
+ import { $ as normalizeOptionalAgentId, $n as resolveTtsAutoMode, $t as resolveAgentAvatar, A as resolveOutboundSessionRoute, B as setGatewaySigusr1RestartPolicy, Bn as buildOutboundSessionContext, Br as DEFAULT_INPUT_TIMEOUT_MS, Bt as createOutboundSendDeps, C as loadCombinedSessionStoreForGateway, Cn as formatZonedTimestamp, Cr as enqueueSystemEvent, D as resolveSessionModelRef, Dr as requestHeartbeatNow, Dt as requestBodyErrorToText, E as resolveGatewaySessionStoreTarget, En as getTotalPendingReplies, Et as readJsonBodyWithLimit, F as deferGatewayRestartUntilIdle, Fn as listDescendantRunsForRequester, Fr as normalizeSendPolicy, Gn as onAgentEvent, Gr as resolveAgentTimeoutMs, Gt as setCliSessionId, H as consumeRestartSentinel, Hn as clearAgentRunContext, Hr as extractImageContentFromSource, Ht as parseVerboseOverride, I as emitGatewayRestart, Ir as resolveSendPolicy, J as writeRestartSentinel, Jn as clearBootstrapSnapshot, K as summarizeRestartSentinel, Kn as registerAgentRunContext, Kt as runCliAgent, L as isGatewaySigusr1RestartExternallyAllowed, Ln as runSubagentAnnounceFlow, Lr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Lt as resolveOutboundTarget, M as resetDirectoryCache, Mn as stopSubagentsForRequester, Mr as ACP_SESSION_IDENTITY_RENDERER_VERSION, Nn as countActiveDescendantRuns, Nr as getAcpSessionManager, Nt as resolveAgentDeliveryPlan, Ot as computeBackoff, P as consumeGatewaySigusr1RestartAuthorization, Pn as initSubagentRegistry, Pr as resolveAgentSessionDirs, Pt as resolveAgentOutboundTarget, Q as inferLegacyName, Qn as resolveTtsApiKey, Qt as resolveSessionAuthProfileOverride, R as markGatewaySigusr1RestartHandled, Rn as resolveAnnounceTargetFromKey, Rr as DEFAULT_INPUT_IMAGE_MIMES, Rt as resolveSessionDeliveryTarget, S as listSessionsFromStore, T as pruneLegacyStoreKeys, Tn as createReplyDispatcher, Tt as handleSlackHttpRequest, U as formatDoctorNonInteractiveHint, Un as emitAgentEvent, Ur as normalizeMimeList, Ut as runWithModelFallback, V as setPreRestartDeferralCheck, Vn as clearSessionQueues, Vr as extractFileContentFromSource, Vt as applyVerboseOverride, W as formatRestartSentinelMessage, Wn as getAgentRunContext, Wr as resolveInputFileLimits, Wt as getCliSessionId, X as normalizeCronJobCreate, Xn as isTtsEnabled, Xt as lookupContextTokens, Y as normalizeHttpWebhookUrl, Yn as getTtsProvider, Yt as applyModelOverrideToSessionEntry, Z as normalizeCronJobPatch, Zn as isTtsProviderConfigured, _t as normalizeGroupActivation, an as getHookType, ar as textToSpeech, at as buildDeliveryFromLegacyPayload, br as stripHeartbeatToken, cr as getActiveTaskCount, d as runEmbeddedPiAgent, dn as buildHistoryContextFromEntries, dr as markGatewayDraining, dt as persistBrowserProxyFiles, er as resolveTtsConfig, et as normalizeOptionalSessionKey, f as abortEmbeddedPiRun, fr as resetAllLanes, ft as getPluginToolMeta, g as buildDefaultToolPolicyPipelineSteps, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, h as applyToolPolicyPipeline, hr as CommandLane, ht as loadIdleHandsPlugins, i as resolveCronStyleNow, in as detectSuspiciousPatterns, ir as setTtsProvider, it as migrateLegacyCronPayload, jn as isAbortRequestText, jt as agentCommand, k as ensureOutboundSessionEntry, kt as sleepWithAbort, m as waitForEmbeddedPiRunEnd, mr as waitForActiveTasks, n as BARE_SESSION_RESET_PROMPT, nr as resolveTtsProviderOrder, nt as normalizePayloadToSystemText, on as isExternalHookSession, or as OPENAI_TTS_MODELS, ot as hasLegacyDeliveryHints, p as getActiveEmbeddedRunCount, pr as setCommandLaneConcurrency, pt as resolvePluginTools, qn as resolveUserTimezone, rn as buildSafeExternalPrompt, rr as setTtsEnabled, rt as normalizeRequiredName, sn as unbindThreadBindingsBySessionKey, sr as OPENAI_TTS_VOICES, st as stripLegacyDeliveryFields, tr as resolveTtsPrefsPath, tt as normalizeOptionalText, ur as getTotalQueueSize, ut as applyBrowserProxyPaths, v as createIdleHandsTools, w as loadSessionEntry, wn as dispatchInboundMessage, wr as isSystemEventContextChanged, x as listAgentsForGateway, y as canonicalizeSpawnedByForAgent, yt as loadProviderUsageSummary, z as scheduleGatewaySigusr1Restart, zn as readLatestAssistantReply, zr as DEFAULT_INPUT_MAX_REDIRECTS, zt as resolveOutboundChannelPlugin } from "./reply-D5gCiiGr.js";
5
5
  import { A as resolveDefaultAgentWorkspaceDir, C as DEFAULT_SOUL_FILENAME, E as ensureAgentWorkspace, O as isWorkspaceOnboardingCompleted, S as DEFAULT_MEMORY_FILENAME, T as DEFAULT_USER_FILENAME, a as resolveAgentDir, b as DEFAULT_IDENTITY_FILENAME, c as resolveAgentModelFallbacksOverride, d as resolveDefaultAgentId, g as DEFAULT_AGENTS_FILENAME, i as resolveAgentConfig, j as resolveWorkspaceTemplateDir, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, n as listAgentEntries, r as listAgentIds, u as resolveAgentWorkspaceDir, v as DEFAULT_BOOTSTRAP_FILENAME, w as DEFAULT_TOOLS_FILENAME, x as DEFAULT_MEMORY_ALT_FILENAME, y as DEFAULT_HEARTBEAT_FILENAME } from "./agent-scope-RA0zXRpu.js";
6
6
  import { F as triggerInternalHook, M as clearInternalHooks, N as createInternalHookEvent, P as registerInternalHook, a as setConsoleSubsystemFilter, b as getActivePluginRegistry, d as CHANNEL_IDS, n as runtimeForLogger, o as setConsoleTimestampPrefix, t as createSubsystemLogger, w as createEmptyPluginRegistry } from "./subsystem-CGZX2PBV.js";
7
7
  import { n as defaultRuntime } from "./runtime-44j_X4Y6.js";
@@ -69,8 +69,8 @@ import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Dg-QZ_
69
69
  import { S as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads, w as runGlobalGatewayStopSafely } from "./deliver--kttnrER.js";
70
70
  import { r as isRestartEnabled } from "./commands-Dj5LalLo.js";
71
71
  import "./commands-registry-CURlRZQJ.js";
72
- import { $ as validateNodePairRejectParams, A as validateCronStatusParams, At as PROTOCOL_VERSION, B as validateExecApprovalsGetParams, Bt as getPairedDevice, C as validateConfigSetParams, Ct as validateWakeParams, D as validateCronRemoveParams, Dt as validateWizardNextParams, E as validateCronListParams, Et as validateWizardCancelParams, F as validateDevicePairRemoveParams, Ft as buildDeviceAuthPayload, G as validateModelsListParams, Gt as revokeDeviceToken, H as validateExecApprovalsNodeSetParams, Ht as rejectDevicePairing, I as validateDeviceTokenRevokeParams, It as buildDeviceAuthPayloadV3, J as validateNodeInvokeParams, Jt as updatePairedDeviceMetadata, K as validateNodeDescribeParams, Kt as rotateDeviceToken, L as validateDeviceTokenRotateParams, Lt as normalizeDeviceMetadataForAuth, M as validateDevicePairApproveParams, Mt as errorShape, N as validateDevicePairListParams, O as validateCronRunParams, Ot as validateWizardStartParams, P as validateDevicePairRejectParams, Pt as parseSessionLabel, Q as validateNodePairListParams, Qt as deriveDeviceIdFromPublicKey, R as validateExecApprovalRequestParams, Rt as approveDevicePairing, S as validateConfigSchemaParams, St as validateUpdateRunParams, T as validateCronAddParams, Tt as validateWebLoginWaitParams, U as validateExecApprovalsSetParams, Ut as removePairedDevice, V as validateExecApprovalsNodeGetParams, Vt as listDevicePairing, W as validateLogsTailParams, Wt as requestDevicePairing, X as validateNodeListParams, Xt as roleScopesAllow, Y as validateNodeInvokeResultParams, Yt as verifyDeviceToken, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSkillsStatusParams, a as validateAgentWaitParams, at as validateRequestFrame, b as validateConfigGetParams, bt as validateTalkModeParams, c as validateAgentsFilesGetParams, ct as validateSessionsDeleteParams, d as validateAgentsListParams, dt as validateSessionsPreviewParams, en as normalizeDevicePublicKeyBase64Url, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsResetParams, g as validateChatHistoryParams, gt as validateSkillsInstallParams, h as validateChatAbortParams, ht as validateSkillsBinsParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as ErrorCodes, k as validateCronRunsParams, kt as validateWizardStatusParams, l as validateAgentsFilesListParams, lt as validateSessionsListParams, m as validateChannelsStatusParams, mt as validateSessionsUsageParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsResolveParams, q as validateNodeEventParams, qt as summarizeDeviceTokens, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsCompactParams, tn as verifyDeviceSignature, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsPatchParams, v as validateChatSendParams, vt as validateSkillsUpdateParams, w as validateConnectParams, wt as validateWebLoginStartParams, x as validateConfigPatchParams, xt as validateToolsCatalogParams, y as validateConfigApplyParams, yt as validateTalkConfigParams, z as validateExecApprovalResolveParams, zt as ensureDeviceToken } from "./client-DxH9hwLn.js";
73
- import { f as loadGatewayTlsRuntime$1, l as authorizeOperatorScopesForMethod, n as callGateway, s as ADMIN_SCOPE$3, u as isNodeRoleMethod } from "./call-BRL23UCk.js";
72
+ import { $ as validateNodePairRejectParams, A as validateCronStatusParams, At as PROTOCOL_VERSION, B as validateExecApprovalsGetParams, Bt as getPairedDevice, C as validateConfigSetParams, Ct as validateWakeParams, D as validateCronRemoveParams, Dt as validateWizardNextParams, E as validateCronListParams, Et as validateWizardCancelParams, F as validateDevicePairRemoveParams, Ft as buildDeviceAuthPayload, G as validateModelsListParams, Gt as revokeDeviceToken, H as validateExecApprovalsNodeSetParams, Ht as rejectDevicePairing, I as validateDeviceTokenRevokeParams, It as buildDeviceAuthPayloadV3, J as validateNodeInvokeParams, Jt as updatePairedDeviceMetadata, K as validateNodeDescribeParams, Kt as rotateDeviceToken, L as validateDeviceTokenRotateParams, Lt as normalizeDeviceMetadataForAuth, M as validateDevicePairApproveParams, Mt as errorShape, N as validateDevicePairListParams, O as validateCronRunParams, Ot as validateWizardStartParams, P as validateDevicePairRejectParams, Pt as parseSessionLabel, Q as validateNodePairListParams, Qt as deriveDeviceIdFromPublicKey, R as validateExecApprovalRequestParams, Rt as approveDevicePairing, S as validateConfigSchemaParams, St as validateUpdateRunParams, T as validateCronAddParams, Tt as validateWebLoginWaitParams, U as validateExecApprovalsSetParams, Ut as removePairedDevice, V as validateExecApprovalsNodeGetParams, Vt as listDevicePairing, W as validateLogsTailParams, Wt as requestDevicePairing, X as validateNodeListParams, Xt as roleScopesAllow, Y as validateNodeInvokeResultParams, Yt as verifyDeviceToken, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSkillsStatusParams, a as validateAgentWaitParams, at as validateRequestFrame, b as validateConfigGetParams, bt as validateTalkModeParams, c as validateAgentsFilesGetParams, ct as validateSessionsDeleteParams, d as validateAgentsListParams, dt as validateSessionsPreviewParams, en as normalizeDevicePublicKeyBase64Url, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsResetParams, g as validateChatHistoryParams, gt as validateSkillsInstallParams, h as validateChatAbortParams, ht as validateSkillsBinsParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as ErrorCodes, k as validateCronRunsParams, kt as validateWizardStatusParams, l as validateAgentsFilesListParams, lt as validateSessionsListParams, m as validateChannelsStatusParams, mt as validateSessionsUsageParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsResolveParams, q as validateNodeEventParams, qt as summarizeDeviceTokens, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsCompactParams, tn as verifyDeviceSignature, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsPatchParams, v as validateChatSendParams, vt as validateSkillsUpdateParams, w as validateConnectParams, wt as validateWebLoginStartParams, x as validateConfigPatchParams, xt as validateToolsCatalogParams, y as validateConfigApplyParams, yt as validateTalkConfigParams, z as validateExecApprovalResolveParams, zt as ensureDeviceToken } from "./client-DtnD-ee9.js";
73
+ import { f as loadGatewayTlsRuntime$1, l as authorizeOperatorScopesForMethod, n as callGateway, s as ADMIN_SCOPE$3, u as isNodeRoleMethod } from "./call-BpWhjuOg.js";
74
74
  import { c as readJsonFile, l as writeJsonAtomic, s as createAsyncLock } from "./pairing-token-lKXTMQ_M.js";
75
75
  import "./fetch-CYe1ekSh.js";
76
76
  import "./retry-Db05aSB8.js";
@@ -107,14 +107,14 @@ import "./resolve-route-D_AbcmD6.js";
107
107
  import "./replies-hSFVxL4h.js";
108
108
  import { S as registerSkillsChangeListener, _ as requestNodePairing, c as recordRemoteNodeInfo, d as removeRemoteNodeInfo, f as setSkillsRemoteRegistry, g as renamePairedNode, h as rejectNodePairing, l as refreshRemoteBinsForConnectedNodes, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, s as primeRemoteSkillsCache, u as refreshRemoteNodeBins, v as updatePairedNodeMetadata, x as getSkillsSnapshotVersion, y as verifyNodeToken } from "./skill-commands-BFzmZAfo.js";
109
109
  import { t as listAgentWorkspaceDirs } from "./workspace-dirs-SsExQ3Bz.js";
110
- import { n as createOutboundSendDeps$1, t as createDefaultDeps } from "./deps-Dr9GpASq.js";
110
+ import { n as createOutboundSendDeps$1, t as createDefaultDeps } from "./deps-CwPrf7RC.js";
111
111
  import { i as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-7DUxMy6A.js";
112
112
  import { n as resolveMessageChannelSelection } from "./channel-selection-ZxRkxpuF.js";
113
113
  import "./outbound-attachment-Bot3bRnK.js";
114
114
  import "./delivery-queue-BvDRo8CK.js";
115
115
  import { c as hasNonzeroUsage, i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, s as deriveSessionTotalTokens, t as discoverAllSessions } from "./session-cost-usage-DS1rjzML.js";
116
116
  import "./send-DQiw_nGD.js";
117
- import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-BQmbMJxJ.js";
117
+ import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-mzy38DiC.js";
118
118
  import "./prompt-style-kmKiCZnm.js";
119
119
  import "./pairing-labels-ChQJzbS9.js";
120
120
  import { n as formatTokenCount, r as formatUsd } from "./usage-format-D1JXJKiz.js";
@@ -130,7 +130,7 @@ import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-ulSRJzn7.
130
130
  import { n as inheritOptionFromParent } from "./command-options-D4MmqoOd.js";
131
131
  import { t as WizardCancelledError } from "./prompts-9ZBCWbQB.js";
132
132
  import { t as resolveChannelDefaultAccountId } from "./helpers-C6eW1WGZ.js";
133
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-BZPnYIMF.js";
133
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-CHtoYxr6.js";
134
134
  import { t as isWithinDir } from "./path-safety-DwibX65n.js";
135
135
  import "./install-safe-path-ChNR9pl6.js";
136
136
  import "./skill-scanner-D7mzXRXd.js";
@@ -143,26 +143,26 @@ import "./service-C8NMS3m_.js";
143
143
  import "./lifecycle-core-B6UoqYTJ.js";
144
144
  import "./systemd-hints-DHu-HVFx.js";
145
145
  import { t as parsePort$1 } from "./parse-port-l2c0Yyf3.js";
146
- import { n as addGatewayServiceCommands } from "./daemon-cli-B1Ti51bt.js";
146
+ import { n as addGatewayServiceCommands } from "./daemon-cli-DUg-s4LG.js";
147
147
  import "./diagnostics-DmZbQ8Nc.js";
148
148
  import "./table-B9AmL3M1.js";
149
149
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-FDdFH5E8.js";
150
150
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-DpLSpJIl.js";
151
- import { a as isNodeCommandAllowed, n as collectEnabledInsecureOrDangerousFlags, o as resolveNodeCommandAllowlist, s as probeGateway } from "./audit-BmaVRZSd.js";
151
+ import { a as isNodeCommandAllowed, n as collectEnabledInsecureOrDangerousFlags, o as resolveNodeCommandAllowlist, s as probeGateway } from "./audit-CKeZnjft.js";
152
152
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-DMslm8Hx.js";
153
- import { n as getStatusSummary, r as pickGatewaySelfPresence } from "./status-hXjECVBh.js";
154
- import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-CqdQAURH.js";
153
+ import { n as getStatusSummary, r as pickGatewaySelfPresence } from "./status-CWnPokQF.js";
154
+ import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health--GQAFTBr.js";
155
155
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-C7ZpN9hN.js";
156
156
  import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-CDbY5AIr.js";
157
157
  import { i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-XmXLaHNk.js";
158
- import { t as runOnboardingWizard } from "./onboarding-C4oujn63.js";
159
- import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-qzriU6TC.js";
158
+ import { t as runOnboardingWizard } from "./onboarding-Da3n7Rvs.js";
159
+ import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-e2xmxGGE.js";
160
160
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-DRJTQOMM.js";
161
161
  import "./node-service-C3vyxHLA.js";
162
162
  import "./status.update-CTi6vuWj.js";
163
163
  import { a as matchSystemRunApprovalBindingV1, i as buildSystemRunApprovalBindingV1, n as resolveSystemRunApprovalRequestContext, o as missingSystemRunApprovalBindingV1, r as resolveSystemRunApprovalRuntimeContext, s as toSystemRunApprovalMismatchError } from "./system-run-approval-context-CISBXlNw.js";
164
164
  import { t as installSkill } from "./skills-install-tr6wRWZj.js";
165
- import { t as runGatewayUpdate } from "./update-runner-BWxBVG9j.js";
165
+ import { t as runGatewayUpdate } from "./update-runner-CN7Dm9tg.js";
166
166
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-D3pARwoB.js";
167
167
  import { fileURLToPath, pathToFileURL } from "node:url";
168
168
  import * as fsSync from "node:fs";
@@ -8604,6 +8604,7 @@ const agentHandlers = {
8604
8604
  let resolvedGroupSpace = groupSpaceRaw || void 0;
8605
8605
  let spawnedByValue = typeof request.spawnedBy === "string" ? request.spawnedBy.trim() : void 0;
8606
8606
  const inputProvenance = normalizeInputProvenance(request.inputProvenance);
8607
+ const requestedWorkspaceDir = typeof request.workspaceDir === "string" && request.workspaceDir.trim() ? request.workspaceDir.trim() : void 0;
8607
8608
  const cached = context.dedupe.get(`agent:${idem}`);
8608
8609
  if (cached) {
8609
8610
  respond(cached.ok, cached.payload, cached.error, { cached: true });
@@ -8728,6 +8729,7 @@ const agentHandlers = {
8728
8729
  label: labelValue,
8729
8730
  spawnedBy: spawnedByValue,
8730
8731
  spawnDepth: entry?.spawnDepth,
8732
+ workspaceDir: requestedWorkspaceDir ?? entry?.workspaceDir,
8731
8733
  channel: entry?.channel ?? request.channel?.trim(),
8732
8734
  groupId: resolvedGroupId ?? entry?.groupId,
8733
8735
  groupChannel: resolvedGroupChannel ?? entry?.groupChannel,
@@ -8881,6 +8883,7 @@ const agentHandlers = {
8881
8883
  runId,
8882
8884
  lane: request.lane,
8883
8885
  extraSystemPrompt: request.extraSystemPrompt,
8886
+ workspaceDir: requestedWorkspaceDir,
8884
8887
  inputProvenance
8885
8888
  }, defaultRuntime, context.deps).then((result) => {
8886
8889
  const payload = {
@@ -12691,7 +12694,7 @@ const nodeHandlers = {
12691
12694
  const p = params;
12692
12695
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
12693
12696
  await respondUnavailableOnThrow(respond, async () => {
12694
- const { handleNodeEvent } = await import("./server-node-events-B1RPoseF.js");
12697
+ const { handleNodeEvent } = await import("./server-node-events-DvStFPGi.js");
12695
12698
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
12696
12699
  await handleNodeEvent({
12697
12700
  deps: context.deps,
@@ -1,5 +1,5 @@
1
1
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-Qpj4ExtQ.js";
2
- import { n as callGateway } from "./call-DuNslqj2.js";
2
+ import { n as callGateway } from "./call-C82rD2Wn.js";
3
3
  import { n as withProgress } from "./progress-B76RkFx7.js";
4
4
 
5
5
  //#region src/cli/gateway-rpc.ts
@@ -1,5 +1,5 @@
1
1
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DVauVtrg.js";
2
- import { n as callGateway } from "./call-BRL23UCk.js";
2
+ import { n as callGateway } from "./call-BpWhjuOg.js";
3
3
  import { n as withProgress } from "./progress-BQLz1r3L.js";
4
4
 
5
5
  //#region src/cli/gateway-rpc.ts
@@ -1,5 +1,5 @@
1
- import { c as normalizeProviderId } from "./model-selection-Vtu6d5Um.js";
2
- import { n as formatErrorMessage } from "./errors--Eb33_ji.js";
1
+ import { c as normalizeProviderId } from "./model-selection-1MMYqY6M.js";
2
+ import { n as formatErrorMessage } from "./errors-C_0nm4TJ.js";
3
3
 
4
4
  //#region src/agents/live-auth-keys.ts
5
5
  const KEY_SPLIT_RE = /[\s,;]+/g;
@@ -1,13 +1,13 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { d as resolveStateDir } from "./paths-CkTEyLTV.js";
2
+ import { d as resolveStateDir } from "./paths-BYNVLNi_.js";
3
3
  import path from "node:path";
4
- import fsSync from "node:fs";
4
+ import syncFs from "node:fs";
5
5
 
6
6
  //#region src/infra/json-file.ts
7
7
  function loadJsonFile(pathname) {
8
8
  try {
9
- if (!fsSync.existsSync(pathname)) return;
10
- const raw = fsSync.readFileSync(pathname, "utf8");
9
+ if (!syncFs.existsSync(pathname)) return;
10
+ const raw = syncFs.readFileSync(pathname, "utf8");
11
11
  return JSON.parse(raw);
12
12
  } catch {
13
13
  return;
@@ -15,12 +15,12 @@ function loadJsonFile(pathname) {
15
15
  }
16
16
  function saveJsonFile(pathname, data) {
17
17
  const dir = path.dirname(pathname);
18
- if (!fsSync.existsSync(dir)) fsSync.mkdirSync(dir, {
18
+ if (!syncFs.existsSync(dir)) syncFs.mkdirSync(dir, {
19
19
  recursive: true,
20
20
  mode: 448
21
21
  });
22
- fsSync.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
23
- fsSync.chmodSync(pathname, 384);
22
+ syncFs.writeFileSync(pathname, `${JSON.stringify(data, null, 2)}\n`, "utf8");
23
+ syncFs.chmodSync(pathname, 384);
24
24
  }
25
25
 
26
26
  //#endregion
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { B as theme, k as info, l as escapeRegExp, z as isRich } from "./utils-CXzXXV2o.js";
3
- import { Bn as buildOutboundSessionContext, Dr as requestHeartbeatNow, Ft as resolveHeartbeatDeliveryTarget, It as resolveHeartbeatSenderContext, Or as setHeartbeatWakeHandler, Tr as peekSystemEventEntries, _r as DEFAULT_HEARTBEAT_EVERY, br as stripHeartbeatToken, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, hr as CommandLane, kr as resolveHeartbeatReasonKind, lr as getQueueSize, qn as resolveUserTimezone, r as appendCronStyleCurrentTimeLine, t as getReplyFromConfig, vr as isHeartbeatContentEffectivelyEmpty, yr as resolveHeartbeatPrompt$1 } from "./reply-DlS9HBVo.js";
3
+ import { Bn as buildOutboundSessionContext, Dr as requestHeartbeatNow, Ft as resolveHeartbeatDeliveryTarget, It as resolveHeartbeatSenderContext, Or as setHeartbeatWakeHandler, Tr as peekSystemEventEntries, _r as DEFAULT_HEARTBEAT_EVERY, br as stripHeartbeatToken, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, hr as CommandLane, kr as resolveHeartbeatReasonKind, lr as getQueueSize, qn as resolveUserTimezone, r as appendCronStyleCurrentTimeLine, t as getReplyFromConfig, vr as isHeartbeatContentEffectivelyEmpty, yr as resolveHeartbeatPrompt$1 } from "./reply-D5gCiiGr.js";
4
4
  import { d as resolveDefaultAgentId, i as resolveAgentConfig, u as resolveAgentWorkspaceDir, y as DEFAULT_HEARTBEAT_FILENAME } from "./agent-scope-RA0zXRpu.js";
5
5
  import { t as createSubsystemLogger } from "./subsystem-CGZX2PBV.js";
6
6
  import { n as defaultRuntime } from "./runtime-44j_X4Y6.js";
@@ -14,7 +14,7 @@ import { a as resolvePreferredAccountId, t as buildChannelAccountBindings } from
14
14
  import { i as resolveSessionFilePath, u as resolveStorePath } from "./paths-DRz46q00.js";
15
15
  import { t as HEARTBEAT_TOKEN } from "./tokens-Dg-QZ_pN.js";
16
16
  import { t as deliverOutboundPayloads } from "./deliver--kttnrER.js";
17
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BRL23UCk.js";
17
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BpWhjuOg.js";
18
18
  import { o as resolveEffectiveMessagesConfig } from "./reply-prefix-C3y4zpTl.js";
19
19
  import { n as withProgress } from "./progress-BQLz1r3L.js";
20
20
  import { a as resolveIndicatorType, n as emitHeartbeatEvent, o as resolveHeartbeatReplyPayload, t as resolveHeartbeatVisibility } from "./heartbeat-visibility-CVWq9u04.js";
@@ -7,9 +7,9 @@ import { l as resolveAgentIdFromSessionKey, p as toAgentStoreSessionKey, s as no
7
7
  import { $ as canonicalizeMainSessionAlias, c as loadSessionStore, et as resolveAgentMainSessionKey, g as updateSessionStore, p as saveSessionStore } from "./sessions-BoqJKVEs.js";
8
8
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CCrfZ49T.js";
9
9
  import { a as resolvePreferredAccountId, t as buildChannelAccountBindings } from "./bindings-Ch_2VM9i.js";
10
- import { An as requestHeartbeatNow, Dr as isHeartbeatContentEffectivelyEmpty, Er as DEFAULT_HEARTBEAT_EVERY, Mn as resolveHeartbeatReasonKind, On as peekSystemEventEntries, Or as resolveHeartbeatPrompt$1, Tr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, bn as buildOutboundSessionContext, et as getReplyFromConfig, jn as setHeartbeatWakeHandler, kr as stripHeartbeatToken, mt as resolveHeartbeatSenderContext, nr as resolveUserTimezone, nt as appendCronStyleCurrentTimeLine, pt as resolveHeartbeatDeliveryTarget, vr as getQueueSize, wr as CommandLane } from "./subagent-registry-CcxZYIwL.js";
10
+ import { An as requestHeartbeatNow, Dr as isHeartbeatContentEffectivelyEmpty, Er as DEFAULT_HEARTBEAT_EVERY, Mn as resolveHeartbeatReasonKind, On as peekSystemEventEntries, Or as resolveHeartbeatPrompt$1, Tr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, bn as buildOutboundSessionContext, et as getReplyFromConfig, jn as setHeartbeatWakeHandler, kr as stripHeartbeatToken, mt as resolveHeartbeatSenderContext, nr as resolveUserTimezone, nt as appendCronStyleCurrentTimeLine, pt as resolveHeartbeatDeliveryTarget, vr as getQueueSize, wr as CommandLane } from "./subagent-registry-BH5O1rxK.js";
11
11
  import { i as resolveSessionFilePath, u as resolveStorePath } from "./paths-CC17i2eK.js";
12
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-DuNslqj2.js";
12
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-C82rD2Wn.js";
13
13
  import { t as HEARTBEAT_TOKEN } from "./tokens-DMP8C42Q.js";
14
14
  import { t as deliverOutboundPayloads } from "./deliver-UdfAQA1U.js";
15
15
  import { i as hasErrnoCode, n as formatErrorMessage } from "./errors-p-ipELrD.js";
@@ -28,11 +28,11 @@ import "./logging-Bgrm4o7g.js";
28
28
  import "./auth-store-D9BmR4S6.js";
29
29
  import "./send-m4lQkQcY.js";
30
30
  import "./send-CCiDIuX4.js";
31
- import "./subagent-registry-CcxZYIwL.js";
31
+ import "./subagent-registry-BH5O1rxK.js";
32
32
  import "./paths-CC17i2eK.js";
33
33
  import "./chat-envelope-Dedaetiq.js";
34
- import "./client-Brv1GCwX.js";
35
- import "./call-DuNslqj2.js";
34
+ import "./client-udFMSDes.js";
35
+ import "./call-C82rD2Wn.js";
36
36
  import "./pairing-token-CnnKAS6M.js";
37
37
  import "./net-CE_62H5R.js";
38
38
  import "./ip-Y1214nEL.js";
@@ -111,8 +111,8 @@ import "./cli-utils-BfsDuRZS.js";
111
111
  import "./help-format-CldHB7lS.js";
112
112
  import "./progress-B76RkFx7.js";
113
113
  import "./replies-DSfpze17.js";
114
- import "./deps-BuRud-p8.js";
115
- import "./onboard-helpers-Dp6wXNs7.js";
114
+ import "./deps-CjWcQwlX.js";
115
+ import "./onboard-helpers-DWivfzcc.js";
116
116
  import "./prompt-style-XmK49QYK.js";
117
117
  import "./pairing-labels-D7xcHkxi.js";
118
118
  import { c as resolveArchiveKind, i as unscopedPackageName, o as fileExists, s as readJsonFile, t as resolveSafeInstallDir } from "./install-safe-path-C7y57-yb.js";
@@ -120,7 +120,7 @@ import { a as resolveInstallModeOptions, c as withExtractedArchiveRoot, i as ins
120
120
  import { t as renderTable } from "./table-aJzHv5Oe.js";
121
121
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-Dj1dL0rI.js";
122
122
  import { t as buildWorkspaceHookStatus } from "./hooks-status-DdEXLhj3.js";
123
- import { n as resolvePinnedNpmInstallRecordForCli, r as buildPluginStatusReport, t as buildNpmInstallRecordFields } from "./npm-resolution-DYUWHUe5.js";
123
+ import { n as resolvePinnedNpmInstallRecordForCli, r as buildPluginStatusReport, t as buildNpmInstallRecordFields } from "./npm-resolution-By6bZkA-.js";
124
124
  import path from "node:path";
125
125
  import fs from "node:fs";
126
126
  import fs$1 from "node:fs/promises";
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cn44w-EB.js";
2
2
  import { B as theme, S as shortenHomePath, t as CONFIG_DIR, y as resolveUserPath } from "./utils-CXzXXV2o.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-DlS9HBVo.js";
4
+ import "./reply-D5gCiiGr.js";
5
5
  import { d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-RA0zXRpu.js";
6
6
  import "./subsystem-CGZX2PBV.js";
7
7
  import { n as defaultRuntime } from "./runtime-44j_X4Y6.js";
@@ -68,8 +68,8 @@ import "./tokens-Dg-QZ_pN.js";
68
68
  import "./deliver--kttnrER.js";
69
69
  import "./commands-Dj5LalLo.js";
70
70
  import "./commands-registry-CURlRZQJ.js";
71
- import "./client-DxH9hwLn.js";
72
- import "./call-BRL23UCk.js";
71
+ import "./client-DtnD-ee9.js";
72
+ import "./call-BpWhjuOg.js";
73
73
  import "./pairing-token-lKXTMQ_M.js";
74
74
  import "./fetch-CYe1ekSh.js";
75
75
  import "./retry-Db05aSB8.js";
@@ -105,14 +105,14 @@ import "./resolve-route-D_AbcmD6.js";
105
105
  import "./replies-hSFVxL4h.js";
106
106
  import "./skill-commands-BFzmZAfo.js";
107
107
  import "./workspace-dirs-SsExQ3Bz.js";
108
- import "./deps-Dr9GpASq.js";
108
+ import "./deps-CwPrf7RC.js";
109
109
  import "./plugin-auto-enable-7DUxMy6A.js";
110
110
  import "./channel-selection-ZxRkxpuF.js";
111
111
  import "./outbound-attachment-Bot3bRnK.js";
112
112
  import "./delivery-queue-BvDRo8CK.js";
113
113
  import "./session-cost-usage-DS1rjzML.js";
114
114
  import "./send-DQiw_nGD.js";
115
- import "./onboard-helpers-BQmbMJxJ.js";
115
+ import "./onboard-helpers-mzy38DiC.js";
116
116
  import "./prompt-style-kmKiCZnm.js";
117
117
  import "./pairing-labels-ChQJzbS9.js";
118
118
  import "./server-lifecycle-B5PlrlbG.js";
@@ -123,7 +123,7 @@ import { a as resolveInstallModeOptions, c as withExtractedArchiveRoot, i as ins
123
123
  import { t as renderTable } from "./table-B9AmL3M1.js";
124
124
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-D3pARwoB.js";
125
125
  import { t as buildWorkspaceHookStatus } from "./hooks-status-DNGo2G8Q.js";
126
- import { n as resolvePinnedNpmInstallRecordForCli, r as buildPluginStatusReport, t as buildNpmInstallRecordFields } from "./npm-resolution-CWxaTTrT.js";
126
+ import { n as resolvePinnedNpmInstallRecordForCli, r as buildPluginStatusReport, t as buildNpmInstallRecordFields } from "./npm-resolution-DLSA4PTO.js";
127
127
  import fs from "node:fs";
128
128
  import path from "node:path";
129
129
  import fs$1 from "node:fs/promises";
@@ -1,10 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { h as resolveAgentModelPrimaryValue, m as resolveAgentModelFallbackValues } from "./agent-scope-BVeQuh5x.js";
3
- import { _ as shortenHomeInString, c as isRecord } from "./utils-ChNzRVsg.js";
4
- import { R as loadConfig, S as getApiKeyForModel, _ as normalizeProviders, dn as resolveIdleHandsAgentDir, gn as normalizeSecretInput, v as resolveImplicitCopilotProvider, w as requireApiKey, y as resolveImplicitProviders } from "./model-selection-Vtu6d5Um.js";
5
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DBHbwKOo.js";
6
- import { P as sanitizeUserFacingText } from "./pi-embedded-helpers-B1CKQ81Y.js";
7
- import { n as redactToolDetail } from "./redact-D1Ebz_iR.js";
2
+ import { h as resolveAgentModelPrimaryValue, m as resolveAgentModelFallbackValues } from "./agent-scope-DyP_tr7s.js";
3
+ import { _ as shortenHomeInString, c as isRecord } from "./utils-CTFLl_ji.js";
4
+ import { R as loadConfig, S as getApiKeyForModel, _ as normalizeProviders, dn as resolveIdleHandsAgentDir, gn as normalizeSecretInput, v as resolveImplicitCopilotProvider, w as requireApiKey, y as resolveImplicitProviders } from "./model-selection-1MMYqY6M.js";
5
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Bb__OY-j.js";
6
+ import { P as sanitizeUserFacingText } from "./pi-embedded-helpers-CyTpDKo5.js";
7
+ import { n as redactToolDetail } from "./redact-Bvpf-ATQ.js";
8
8
  import fs from "node:fs/promises";
9
9
  import path from "node:path";
10
10
  import { complete } from "@mariozechner/pi-ai";
@@ -3,7 +3,7 @@ import { G as resolveAgentModelPrimaryValue, W as resolveAgentModelFallbackValue
3
3
  import { _ as shortenHomeInString, c as isRecord } from "./utils-DWJR1fcE.js";
4
4
  import { C as requireApiKey, L as loadConfig, _ as resolveImplicitCopilotProvider, _n as normalizeSecretInput, fn as resolveIdleHandsAgentDir, g as normalizeProviders, v as resolveImplicitProviders, x as getApiKeyForModel } from "./model-selection-D3Jhcvg-.js";
5
5
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Dic-M5qw.js";
6
- import { P as sanitizeUserFacingText } from "./pi-embedded-helpers-Ct2rwp-P.js";
6
+ import { P as sanitizeUserFacingText } from "./pi-embedded-helpers-C2j0LfJC.js";
7
7
  import { n as redactToolDetail } from "./redact-DeLmHwQa.js";
8
8
  import path from "node:path";
9
9
  import fs from "node:fs/promises";
@@ -1,4 +1,4 @@
1
- import { _ as runExec } from "./workspace-AM44PzIs.js";
1
+ import { _ as runExec } from "./workspace-DBFSzT6O.js";
2
2
  import fs from "node:fs/promises";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import "./paths-Cn44w-EB.js";
3
3
  import { B as theme, P as setVerbose, Q as tryParseLogLevel, T as toWhatsappJid, Y as ALLOWED_LOG_LEVELS, l as escapeRegExp, m as normalizeE164, n as assertWebChannel, z as isRich } from "./utils-CXzXXV2o.js";
4
4
  import "./thinking-EAliFiVK.js";
5
- import { Ct as resolveCommitHash, t as getReplyFromConfig } from "./reply-DlS9HBVo.js";
5
+ import { Ct as resolveCommitHash, t as getReplyFromConfig } from "./reply-D5gCiiGr.js";
6
6
  import "./agent-scope-RA0zXRpu.js";
7
7
  import { r as enableConsoleCapture, u as visibleWidth } from "./subsystem-CGZX2PBV.js";
8
8
  import { n as defaultRuntime } from "./runtime-44j_X4Y6.js";
@@ -67,8 +67,8 @@ import "./tokens-Dg-QZ_pN.js";
67
67
  import "./deliver--kttnrER.js";
68
68
  import "./commands-Dj5LalLo.js";
69
69
  import "./commands-registry-CURlRZQJ.js";
70
- import "./client-DxH9hwLn.js";
71
- import "./call-BRL23UCk.js";
70
+ import "./client-DtnD-ee9.js";
71
+ import "./call-BpWhjuOg.js";
72
72
  import "./pairing-token-lKXTMQ_M.js";
73
73
  import "./fetch-CYe1ekSh.js";
74
74
  import "./retry-Db05aSB8.js";
@@ -104,20 +104,20 @@ import "./resolve-route-D_AbcmD6.js";
104
104
  import "./replies-hSFVxL4h.js";
105
105
  import "./skill-commands-BFzmZAfo.js";
106
106
  import "./workspace-dirs-SsExQ3Bz.js";
107
- import { t as createDefaultDeps } from "./deps-Dr9GpASq.js";
107
+ import { t as createDefaultDeps } from "./deps-CwPrf7RC.js";
108
108
  import "./plugin-auto-enable-7DUxMy6A.js";
109
109
  import "./channel-selection-ZxRkxpuF.js";
110
110
  import "./outbound-attachment-Bot3bRnK.js";
111
111
  import "./delivery-queue-BvDRo8CK.js";
112
112
  import "./session-cost-usage-DS1rjzML.js";
113
113
  import "./send-DQiw_nGD.js";
114
- import "./onboard-helpers-BQmbMJxJ.js";
114
+ import "./onboard-helpers-mzy38DiC.js";
115
115
  import "./prompt-style-kmKiCZnm.js";
116
116
  import "./pairing-labels-ChQJzbS9.js";
117
117
  import "./server-lifecycle-B5PlrlbG.js";
118
118
  import "./stagger-rQoQSWkz.js";
119
119
  import "./system-run-command-qJdgzxLp.js";
120
- import { r as waitForever, t as monitorWebChannel } from "./channel-web-BLxKeCXF.js";
120
+ import { r as waitForever, t as monitorWebChannel } from "./channel-web-0icuasR6.js";
121
121
  import "./outbound-DPTxwchq.js";
122
122
  import "./session-CdnrRhb4.js";
123
123
  import "./login-CfUhrgWT.js";
@@ -126,9 +126,9 @@ import { t as ensureIdleHandsCliOnPath } from "./path-env-CKSLQUS1.js";
126
126
  import { t as assertSupportedRuntime } from "./runtime-guard-X6f4YmTM.js";
127
127
  import "./ports-B2o0FSFD.js";
128
128
  import { a as hasFlag, i as getVerboseFlag, n as getCommandPath, o as hasHelpOrVersion, s as hasRootVersionAlias } from "./argv-BWjW98Xn.js";
129
- import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-DBOEyhi4.js";
130
- import "./plugin-registry-LYzfPk35.js";
131
- import { n as resolveCliChannelOptions } from "./channel-options-C0iwLcfC.js";
129
+ import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-D6irLwPo.js";
130
+ import "./plugin-registry-DROWinG6.js";
131
+ import { n as resolveCliChannelOptions } from "./channel-options-B4oF7_V2.js";
132
132
  import process$1 from "node:process";
133
133
  import { fileURLToPath } from "node:url";
134
134
  import { Command, InvalidArgumentError } from "commander";
@@ -559,7 +559,7 @@ function registerPreActionHooks(program, programVersion) {
559
559
  commandPath
560
560
  });
561
561
  if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
562
- const { ensurePluginRegistryLoaded } = await import("./plugin-registry-LYzfPk35.js").then((n) => n.n);
562
+ const { ensurePluginRegistryLoaded } = await import("./plugin-registry-DROWinG6.js").then((n) => n.n);
563
563
  ensurePluginRegistryLoaded();
564
564
  }
565
565
  });
@@ -1,8 +1,8 @@
1
- import { A as shouldLogVerbose, D as logVerbose, h as resolveUserPath } from "./utils-ChNzRVsg.js";
2
- import { _ as maxBytesForKind, a as hasAlphaChannel, c as detectMime, l as extensionForMime, o as optimizeImageToPng, r as convertHeicToJpeg, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-ZNtLhD4c.js";
3
- import { r as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-BEl8T_Vc.js";
4
- import { a as chunkText } from "./chunk-BgScV6uo.js";
5
- import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots } from "./local-roots-C9CA2f0R.js";
1
+ import { A as shouldLogVerbose, D as logVerbose, h as resolveUserPath } from "./utils-CTFLl_ji.js";
2
+ import { _ as maxBytesForKind, a as hasAlphaChannel, c as detectMime, l as extensionForMime, o as optimizeImageToPng, r as convertHeicToJpeg, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-D1KtygWz.js";
3
+ import { r as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-CYUaAFO9.js";
4
+ import { a as chunkText } from "./chunk-CMpX7Jaz.js";
5
+ import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots } from "./local-roots-KN4Hp1yZ.js";
6
6
  import fs from "node:fs/promises";
7
7
  import path from "node:path";
8
8
  import { fileURLToPath } from "node:url";
@@ -1,71 +1,71 @@
1
- import { a as resolveAgentEffectiveModelPrimary, c as resolveDefaultAgentId, i as resolveAgentDir, s as resolveAgentWorkspaceDir } from "./agent-scope-BVeQuh5x.js";
2
- import "./paths-CkTEyLTV.js";
3
- import { t as createSubsystemLogger } from "./subsystem-B98oWbbO.js";
4
- import "./utils-ChNzRVsg.js";
1
+ import { a as resolveAgentEffectiveModelPrimary, c as resolveDefaultAgentId, i as resolveAgentDir, s as resolveAgentWorkspaceDir } from "./agent-scope-DyP_tr7s.js";
2
+ import "./paths-BYNVLNi_.js";
3
+ import { t as createSubsystemLogger } from "./subsystem-tzu-rIAJ.js";
4
+ import "./utils-CTFLl_ji.js";
5
5
  import "./runtime-8mi3mpYB.js";
6
- import "./workspace-AM44PzIs.js";
7
- import { bn as DEFAULT_PROVIDER, l as parseModelRef, yn as DEFAULT_MODEL } from "./model-selection-Vtu6d5Um.js";
8
- import "./github-copilot-token-DCg9Q9Ll.js";
6
+ import "./workspace-DBFSzT6O.js";
7
+ import { bn as DEFAULT_PROVIDER, l as parseModelRef, yn as DEFAULT_MODEL } from "./model-selection-1MMYqY6M.js";
8
+ import "./github-copilot-token-Dgt6cnsM.js";
9
9
  import "./boolean-CE7i9tBR.js";
10
- import "./env-B7b7MKfk.js";
11
- import "./dock-6MgvdSqu.js";
12
- import "./tokens-B9ArFCMX.js";
13
- import { t as runEmbeddedPiAgent } from "./pi-embedded-BDp9JsrM.js";
14
- import "./plugins-Bb6_uisJ.js";
15
- import "./accounts-CRDMZUcg.js";
16
- import "./bindings-B9L4cqmm.js";
17
- import "./auth-store-DQAd4LSE.js";
18
- import "./send-BspIjWIY.js";
19
- import "./send-BypmtKl1.js";
20
- import "./deliver-CJaM2zRY.js";
21
- import "./diagnostic-lz5wKsEe.js";
10
+ import "./env-B5G1qwGc.js";
11
+ import "./dock-BgOmHcbh.js";
12
+ import "./tokens-BRLyURxW.js";
13
+ import { t as runEmbeddedPiAgent } from "./pi-embedded-BeyOxL6U.js";
14
+ import "./plugins-CRB60mCJ.js";
15
+ import "./accounts-Dk8mJIrQ.js";
16
+ import "./bindings-D3b5Fmc9.js";
17
+ import "./auth-store-DXT-l7fO.js";
18
+ import "./send-BeIZJuy4.js";
19
+ import "./send-DmLC7aEF.js";
20
+ import "./deliver-CVTXl0Cv.js";
21
+ import "./diagnostic-4owMk4vH.js";
22
22
  import "./diagnostic-session-state-BGF2r-kt.js";
23
- import "./accounts-upx5iuke.js";
24
- import "./send-De8xTUIV.js";
25
- import "./image-ops-ZNtLhD4c.js";
26
- import "./pi-model-discovery-DBHbwKOo.js";
27
- import "./message-channel-Cg9KtLfy.js";
28
- import "./pi-embedded-helpers-B1CKQ81Y.js";
29
- import "./chrome-D_SXDetO.js";
23
+ import "./accounts-BDVs8LTu.js";
24
+ import "./send-Dfa3sn6r.js";
25
+ import "./image-ops-D1KtygWz.js";
26
+ import "./pi-model-discovery-Bb__OY-j.js";
27
+ import "./message-channel-C8QtrwEU.js";
28
+ import "./pi-embedded-helpers-CyTpDKo5.js";
29
+ import "./chrome-_2tzVjVl.js";
30
30
  import "./ssrf-CZeHDwVZ.js";
31
- import "./frontmatter-p8nPDprK.js";
32
- import "./skills-OsjsCf_S.js";
33
- import "./path-alias-guards-BnjbJzIQ.js";
34
- import "./redact-D1Ebz_iR.js";
35
- import "./errors--Eb33_ji.js";
36
- import "./fs-safe-BEl8T_Vc.js";
37
- import "./store-B4rHJvSg.js";
38
- import "./sessions-BgxmLQuf.js";
39
- import "./accounts-yD5yI-jP.js";
40
- import "./paths-0fcEvxu4.js";
41
- import "./tool-images-DLiBUCZb.js";
31
+ import "./frontmatter-BOudmHMS.js";
32
+ import "./skills-CnAPWfca.js";
33
+ import "./path-alias-guards-Cu1nXNMM.js";
34
+ import "./redact-Bvpf-ATQ.js";
35
+ import "./errors-C_0nm4TJ.js";
36
+ import "./fs-safe-CYUaAFO9.js";
37
+ import "./store-CvMgrKWx.js";
38
+ import "./sessions-3ioSeOA1.js";
39
+ import "./accounts-CIvVRRHb.js";
40
+ import "./paths-D_qUel1T.js";
41
+ import "./tool-images-CcGZpzmq.js";
42
42
  import "./thinking-z4_linel.js";
43
- import "./image-BQ3RQWD8.js";
44
- import "./reply-prefix-49q2WQ2B.js";
45
- import "./manager-DBd_2F6j.js";
46
- import "./gemini-auth-CA0K3QXj.js";
47
- import "./fetch-guard-OZ_PCUyr.js";
48
- import "./query-expansion-CW7PqIXL.js";
49
- import "./retry-DWN-e4ja.js";
50
- import "./target-errors-CWZr3RMI.js";
51
- import "./chunk-BgScV6uo.js";
52
- import "./markdown-tables-CsrsXS80.js";
53
- import "./local-roots-C9CA2f0R.js";
54
- import "./ir-DnyYtX4H.js";
43
+ import "./image-COw__ACq.js";
44
+ import "./reply-prefix-BUgeSN2R.js";
45
+ import "./manager-BE_76jWB.js";
46
+ import "./gemini-auth-CIyaa44H.js";
47
+ import "./fetch-guard-iuQsIjqN.js";
48
+ import "./query-expansion-DEq020GG.js";
49
+ import "./retry-BeB9WenR.js";
50
+ import "./target-errors-BPfQrPim.js";
51
+ import "./chunk-CMpX7Jaz.js";
52
+ import "./markdown-tables-CzsockiZ.js";
53
+ import "./local-roots-KN4Hp1yZ.js";
54
+ import "./ir-B7IBoKLy.js";
55
55
  import "./render-MTSxc7LK.js";
56
- import "./commands-registry-CK7aj_ri.js";
57
- import "./skill-commands-BOUMR5De.js";
58
- import "./runner-DO528Ump.js";
56
+ import "./commands-registry-j4vAzcF2.js";
57
+ import "./skill-commands-Ck3flWX7.js";
58
+ import "./runner-BzNdfqDz.js";
59
59
  import "./fetch-CsfR_943.js";
60
- import "./channel-activity-DOLX-uK1.js";
61
- import "./tables-DuOExt0S.js";
62
- import "./send-szC_vYk_.js";
63
- import "./outbound-attachment-DwaqvYNG.js";
64
- import "./send-CRnMBrJ2.js";
65
- import "./resolve-route-Dr-fqH39.js";
60
+ import "./channel-activity-D_TMOGQ0.js";
61
+ import "./tables-5k-zOZ-s.js";
62
+ import "./send-C1hvd3bt.js";
63
+ import "./outbound-attachment-3I6GzwDe.js";
64
+ import "./send-D4bMycQu.js";
65
+ import "./resolve-route-DuttYY7A.js";
66
66
  import "./proxy-CRB9oCP5.js";
67
- import "./replies-CXcxPRWk.js";
68
- import "./deps-CQzDLqTz.js";
67
+ import "./replies-6_GxvQYe.js";
68
+ import "./deps-BAMUVAdU.js";
69
69
  import fs from "node:fs/promises";
70
70
  import os from "node:os";
71
71
  import path from "node:path";
@@ -1,8 +1,8 @@
1
- import { s as resolveAgentWorkspaceDir } from "./agent-scope-BVeQuh5x.js";
2
- import { d as resolveStateDir } from "./paths-CkTEyLTV.js";
3
- import { K as resolvePreferredIdleHandsTmpDir } from "./utils-ChNzRVsg.js";
4
- import { c as detectMime, l as extensionForMime } from "./image-ops-ZNtLhD4c.js";
5
- import { t as fetchWithSsrFGuard } from "./fetch-guard-OZ_PCUyr.js";
1
+ import { s as resolveAgentWorkspaceDir } from "./agent-scope-DyP_tr7s.js";
2
+ import { d as resolveStateDir } from "./paths-BYNVLNi_.js";
3
+ import { K as resolvePreferredIdleHandsTmpDir } from "./utils-CTFLl_ji.js";
4
+ import { c as detectMime, l as extensionForMime } from "./image-ops-D1KtygWz.js";
5
+ import { t as fetchWithSsrFGuard } from "./fetch-guard-iuQsIjqN.js";
6
6
  import path from "node:path";
7
7
 
8
8
  //#region src/media/read-response-with-limit.ts
@@ -1,12 +1,12 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { T as info, j as success, w as danger } from "./utils-ChNzRVsg.js";
2
+ import { T as info, j as success, w as danger } from "./utils-CTFLl_ji.js";
3
3
  import { n as defaultRuntime } from "./runtime-8mi3mpYB.js";
4
- import { x as logInfo } from "./workspace-AM44PzIs.js";
5
- import { R as loadConfig } from "./model-selection-Vtu6d5Um.js";
4
+ import { x as logInfo } from "./workspace-DBFSzT6O.js";
5
+ import { R as loadConfig } from "./model-selection-1MMYqY6M.js";
6
6
  import { t as formatCliCommand } from "./command-format-BAxx4PW5.js";
7
- import { n as resolveWhatsAppAccount } from "./accounts-CRDMZUcg.js";
8
- import { a as logoutWeb } from "./auth-store-DQAd4LSE.js";
9
- import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-CKiIT4OY.js";
7
+ import { n as resolveWhatsAppAccount } from "./accounts-Dk8mJIrQ.js";
8
+ import { a as logoutWeb } from "./auth-store-DXT-l7fO.js";
9
+ import { i as waitForWaConnection, n as formatError, t as createWaSocket } from "./session-F_YDS_1V.js";
10
10
  import { DisconnectReason } from "@whiskeysockets/baileys";
11
11
 
12
12
  //#region src/web/login.ts