@symerian/symi 2.6.42 → 2.7.1

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 (204) hide show
  1. package/dist/{acp-cli-CrEIx-c7.js → acp-cli-B2f0qBiM.js} +2 -2
  2. package/dist/{acp-cli-BLUeUUA5.js → acp-cli-D-9rzaOI.js} +2 -2
  3. package/dist/{agents-DDRDszOI.js → agents-Z8ruJPz2.js} +5 -5
  4. package/dist/{agents.config-BEVb1Pyx.js → agents.config-B9BZoM2m.js} +1 -1
  5. package/dist/{agents.config-BKCY6F2A.js → agents.config-C951ocyh.js} +1 -1
  6. package/dist/{audio-preflight-DD18zIZd.js → audio-preflight-HILy3i0m.js} +4 -4
  7. package/dist/{audit-DB9YkTVX.js → audit-BgdM9XZl.js} +2 -2
  8. package/dist/{audit-BjI_Yyr5.js → audit-xSagQWH8.js} +2 -2
  9. package/dist/{auth-choice-D2xXwBeN.js → auth-choice-BmYi6pBy.js} +2 -2
  10. package/dist/{auth-choice-BbzReh6k.js → auth-choice-D_VfXxhG.js} +2 -2
  11. package/dist/{banner-DqqRwplt.js → banner-Bucr6qZ5.js} +1 -1
  12. package/dist/{browser-cli-kDUw45Y0.js → browser-cli-Bc_JVdTj.js} +3 -3
  13. package/dist/{browser-cli-Ctn9do4z.js → browser-cli-Dr0yx7-7.js} +3 -3
  14. package/dist/build-info.json +3 -3
  15. package/dist/bundled/boot-md/handler.js +1 -1
  16. package/dist/bundled/session-memory/handler.js +1 -1
  17. package/dist/{call-DwpGquzW.js → call-CX0cs106.js} +1 -1
  18. package/dist/{call-DKi-hnaF.js → call-DeCQ2DhS.js} +1 -1
  19. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  20. package/dist/{channel-options-DQcpDVCx.js → channel-options-BMDryXHq.js} +1 -1
  21. package/dist/{channel-options-DcazVJQf.js → channel-options-z8-WeZyO.js} +1 -1
  22. package/dist/{channel-web-u5yMYO4j.js → channel-web-D_YxZAHT.js} +1 -1
  23. package/dist/{channels-cli-C3iJE8eg.js → channels-cli-397NgC51.js} +7 -7
  24. package/dist/{channels-cli-Bog4Kn3X.js → channels-cli-CV7_JUru.js} +7 -7
  25. package/dist/{chrome-BxwUEWrH.js → chrome-CiOKaTN-.js} +7 -7
  26. package/dist/cli/daemon-cli.js +1 -1
  27. package/dist/{cli-eBtEEHLK.js → cli-4XU7pNlM.js} +4 -4
  28. package/dist/{cli-QybdZdE7.js → cli-Dq95udFO.js} +4 -4
  29. package/dist/{client-jI1oE0_k.js → client-B8xmq-Pw.js} +13 -1
  30. package/dist/{client-T3qcxXru.js → client-qUlxXXVJ.js} +13 -1
  31. package/dist/{command-registry-BWnZSpbL.js → command-registry-Cx9T7GYx.js} +10 -10
  32. package/dist/{completion-cli-BhJFXaVU.js → completion-cli-WlSuySPZ.js} +1 -1
  33. package/dist/{completion-cli-CUKm7Hb6.js → completion-cli-cyVjlhls.js} +2 -2
  34. package/dist/{config-cli-B796xZBe.js → config-cli-CMymzmrI.js} +1 -1
  35. package/dist/{config-cli-CjnQyv45.js → config-cli-EdmbBExA.js} +1 -1
  36. package/dist/{configure-D3wIQ0yI.js → configure-DRMAIBBf.js} +6 -6
  37. package/dist/{configure-DUqT7Dyn.js → configure-DkFujfiY.js} +6 -6
  38. package/dist/control-ui/css/style.css +165 -0
  39. package/dist/control-ui/js/app.js +39 -0
  40. package/dist/control-ui/js/gateway.js +2 -0
  41. package/dist/control-ui/js/history.js +220 -85
  42. package/dist/control-ui/js/settings.js +71 -8
  43. package/dist/{cron-cli-DCpsXkrw.js → cron-cli-BHxfvWeT.js} +3 -3
  44. package/dist/{cron-cli-QCTdVZuP.js → cron-cli-DacyI1Pw.js} +3 -3
  45. package/dist/{daemon-cli-DSDcmWOi.js → daemon-cli-BLhFbih0.js} +2 -2
  46. package/dist/{daemon-cli-DhJYEAoL.js → daemon-cli-BxKtiouf.js} +2 -2
  47. package/dist/daemon-cli.js +12 -0
  48. package/dist/{deliver-DtuY4Wgl.js → deliver-D6IcPfbt.js} +1 -1
  49. package/dist/{devices-cli-BNG-fvdl.js → devices-cli-1kiO08aL.js} +2 -2
  50. package/dist/{devices-cli-x3jIP4Ih.js → devices-cli-B8Q8AzbX.js} +2 -2
  51. package/dist/{doctor-completion-DBE1IVKj.js → doctor-completion-BDzhB9pE.js} +1 -1
  52. package/dist/{doctor-completion-D3oUNFQM.js → doctor-completion-CfeROjIz.js} +1 -1
  53. package/dist/entry.js +1 -1
  54. package/dist/{exec-approvals-cli-CmndFjEA.js → exec-approvals-cli-BRx2oxs5.js} +4 -4
  55. package/dist/{exec-approvals-cli-BSgxsdMt.js → exec-approvals-cli-Cj6Z-vxL.js} +4 -4
  56. package/dist/extensionAPI.js +6 -6
  57. package/dist/{gateway-cli-BguO9yV4.js → gateway-cli-C-G0QrTd.js} +185 -81
  58. package/dist/{gateway-cli-Dc1RT_b9.js → gateway-cli-Cpn7JyAw.js} +185 -81
  59. package/dist/{gateway-rpc-BMdVa3QV.js → gateway-rpc-BWTK7g8B.js} +1 -1
  60. package/dist/{gateway-rpc-5fREQe9Q.js → gateway-rpc-WM-HXUbl.js} +1 -1
  61. package/dist/{glass-ui-ws-DoIZyE9O.js → glass-ui-ws-BI81Lh6Z.js} +32 -13
  62. package/dist/{glass-ui-ws-D0UYleBF.js → glass-ui-ws-jAbqZVc9.js} +32 -13
  63. package/dist/{health-D3w4YMlC.js → health-B1nih5LD.js} +2 -2
  64. package/dist/{health-cVvZdeDu.js → health-CsTxt66a.js} +2 -2
  65. package/dist/{hooks-cli-te5hzOAB.js → hooks-cli-BhxMFkKe.js} +5 -5
  66. package/dist/{hooks-cli-DZIbjfOA.js → hooks-cli-CIlvtt2M.js} +5 -5
  67. package/dist/{image-lp19FlzF.js → image-D7Fl08gG.js} +1 -1
  68. package/dist/index.js +9 -9
  69. package/dist/llm-slug-generator.js +1 -1
  70. package/dist/{logs-cli-DtlrLf7u.js → logs-cli-BZV7dq_U.js} +3 -3
  71. package/dist/{logs-cli-CfGj-dOg.js → logs-cli-DyCcDkRs.js} +3 -3
  72. package/dist/{models-BCfPhQ4m.js → models-DhMe2rzL.js} +3 -3
  73. package/dist/{models-cli-BFAtjNIF.js → models-cli-DKM5sCQM.js} +5 -5
  74. package/dist/{models-cli-Cj2CwbPw.js → models-cli-Dewg24W2.js} +6 -6
  75. package/dist/{node-cli-DnfDOh1d.js → node-cli-4eMRkmrw.js} +1 -1
  76. package/dist/{node-cli-eHn9-YfJ.js → node-cli-Dfs0UmnJ.js} +1 -1
  77. package/dist/{nodes-cli-Ct4M7JOe.js → nodes-cli-BKb61OjH.js} +3 -3
  78. package/dist/{nodes-cli-Ci3oxw8k.js → nodes-cli-DxfP9DIz.js} +3 -3
  79. package/dist/{onboard-BMq8qc1m.js → onboard-Dw_nX2RD.js} +3 -3
  80. package/dist/{onboard-channels-B5wgcffj.js → onboard-channels-8ynJSZL6.js} +1 -1
  81. package/dist/{onboard-channels-CiOun4k1.js → onboard-channels-ChxtmhFY.js} +1 -1
  82. package/dist/{onboard-helpers-DFvWPFhU.js → onboard-helpers-CueJ7O_B.js} +1 -1
  83. package/dist/{onboard-helpers-BBtPmJEe.js → onboard-helpers-PpGrZIGw.js} +1 -1
  84. package/dist/{onboard-remote-BURDxwoE.js → onboard-remote-Cd9kIiSG.js} +1 -1
  85. package/dist/{onboard-remote-D-B4EiOE.js → onboard-remote-DCdpB2HH.js} +1 -1
  86. package/dist/{onboard-skills-BDCzVjxb.js → onboard-skills-CC2CV5Er.js} +1 -1
  87. package/dist/{onboard-skills-CbzgBT1W.js → onboard-skills-DRICcBwa.js} +1 -1
  88. package/dist/{onboard-VcdBF5TB.js → onboard-yrgbC1mu.js} +3 -3
  89. package/dist/{onboarding-Dp7p6zKa.js → onboarding-BJcYsOFw.js} +7 -7
  90. package/dist/{onboarding-CGNpTyg2.js → onboarding-e-RSXpUi.js} +7 -7
  91. package/dist/{onboarding.finalize-B6DOu8vp.js → onboarding.finalize-CKNdiZEZ.js} +9 -9
  92. package/dist/{onboarding.finalize-CrsE5P43.js → onboarding.finalize-DenYTWUu.js} +10 -10
  93. package/dist/{onboarding.gateway-config-DKwJ5bWd.js → onboarding.gateway-config-DTWQ-Bqq.js} +3 -3
  94. package/dist/{onboarding.gateway-config-B9zGPfCl.js → onboarding.gateway-config-Dj68bVBt.js} +3 -3
  95. package/dist/{pi-embedded-DQe8vBwU.js → pi-embedded-BzS693I1.js} +72 -21
  96. package/dist/{pi-embedded-helpers-Dij3O6ox.js → pi-embedded-helpers-DXAoe1Bx.js} +4 -4
  97. package/dist/{plugin-registry-BzIbwU3K.js → plugin-registry-Bzz7mUyl.js} +1 -1
  98. package/dist/{plugin-registry-D3TUplW8.js → plugin-registry-SUa2FFIj.js} +1 -1
  99. package/dist/plugin-sdk/{channel-web-B6m8UOCl.js → channel-web-DRabhx1e.js} +1 -1
  100. package/dist/plugin-sdk/gateway/protocol/index.d.ts +13 -2
  101. package/dist/plugin-sdk/gateway/protocol/schema/sessions.d.ts +11 -0
  102. package/dist/plugin-sdk/gateway/protocol/schema/types.d.ts +4 -1
  103. package/dist/plugin-sdk/index.js +2 -2
  104. package/dist/plugin-sdk/{reply-CGoJQT_s.js → reply-Cw3shPk2.js} +58 -7
  105. package/dist/plugin-sdk/{web-CJjSOTnI.js → web-CH43nBP0.js} +2 -2
  106. package/dist/{plugins-cli-BD1Jb2Ml.js → plugins-cli-DwtoU3xk.js} +5 -5
  107. package/dist/{plugins-cli-DFyRjAtJ.js → plugins-cli-qG50__1A.js} +5 -5
  108. package/dist/{program-context-45vPEw2G.js → program-context-CZwy-bh6.js} +29 -29
  109. package/dist/{program-qGm2M9PG.js → program-mZOVTSdQ.js} +10 -10
  110. package/dist/{prompt-select-styled-DRIS9jSv.js → prompt-select-styled-BZnuv8jI.js} +6 -6
  111. package/dist/{prompt-select-styled-DRraJGwA.js → prompt-select-styled-CtNg5KGU.js} +6 -6
  112. package/dist/{provider-auth-helpers-BNOWsjW5.js → provider-auth-helpers-CEYCb2mJ.js} +1 -1
  113. package/dist/{provider-auth-helpers-BREVjR7R.js → provider-auth-helpers-D60nbSLq.js} +1 -1
  114. package/dist/{push-apns-CYC70eKy.js → push-apns-B5txhDVi.js} +1 -1
  115. package/dist/{push-apns-CObVeJLC.js → push-apns-CoG1P_P0.js} +1 -1
  116. package/dist/{pw-ai-BO5cSmwD.js → pw-ai-CANiWpMA.js} +1 -1
  117. package/dist/{register.agent-DzzY8jON.js → register.agent-BY_Df_Me.js} +9 -9
  118. package/dist/{register.agent-DRrHvYcz.js → register.agent-CopGIf9e.js} +8 -8
  119. package/dist/{register.configure-DlXkwkNR.js → register.configure-Bu_XKu7Z.js} +11 -11
  120. package/dist/{register.configure-BxtTIFTa.js → register.configure-CoYQhQBT.js} +11 -11
  121. package/dist/{register.maintenance-LEf8Q_5p.js → register.maintenance-BtqQ3hDN.js} +11 -11
  122. package/dist/{register.maintenance-CXLXouZV.js → register.maintenance-VqCqhB7y.js} +10 -10
  123. package/dist/{register.message-DsPa-xHV.js → register.message-DZCCEK01.js} +5 -5
  124. package/dist/{register.message-C4ifV9vG.js → register.message-dd1xYBZT.js} +5 -5
  125. package/dist/{register.onboard-CrY4PxLP.js → register.onboard-B6EL1d-C.js} +7 -7
  126. package/dist/{register.onboard-DLRPa_4B.js → register.onboard-lzwHKufI.js} +7 -7
  127. package/dist/{register.setup-fBG_dJfi.js → register.setup-BJsr5_qp.js} +7 -7
  128. package/dist/{register.setup-By37g1vN.js → register.setup-D_b_HW5D.js} +7 -7
  129. package/dist/{register.status-health-sessions-DG7KGnD0.js → register.status-health-sessions-Dvj4mlom.js} +7 -7
  130. package/dist/{register.status-health-sessions-Ckw86-gn.js → register.status-health-sessions-jeiqtgl7.js} +7 -7
  131. package/dist/{register.subclis-C_xKLugM.js → register.subclis-DdPRkz29.js} +20 -20
  132. package/dist/{reply-DyjXROKp.js → reply-XaXqDK9F.js} +49 -10
  133. package/dist/{rpc-Co5PQ3IJ.js → rpc-N1nf_c1A.js} +1 -1
  134. package/dist/{rpc-D0FiEinj.js → rpc-QHo-8pCM.js} +1 -1
  135. package/dist/{run-main-Cg3ecTbO.js → run-main-MhL-xG3_.js} +17 -17
  136. package/dist/{runner-Ct0suQrd.js → runner-BS9gGL5i.js} +1 -1
  137. package/dist/{security-cli-D5BWzqEJ.js → security-cli-B-4J6enu.js} +3 -3
  138. package/dist/{security-cli-CG1uSlRK.js → security-cli-CSMUEGPK.js} +3 -3
  139. package/dist/{server-methods-CWcLut3F.js → server-methods-0ksPFnev.js} +471 -88
  140. package/dist/{server-methods-CW8eFTGD.js → server-methods-Bu1RjLe6.js} +471 -88
  141. package/dist/{server-node-events-C2h9OPo7.js → server-node-events-DCbzFyQF.js} +5 -5
  142. package/dist/{server-node-events-CDB0u8PP.js → server-node-events-DZAN3hWE.js} +5 -5
  143. package/dist/{status-B2Qt-5kL.js → status-CiHkFbIh.js} +1 -1
  144. package/dist/{status-ZPW5EACm.js → status-DOTlXdcN.js} +5 -5
  145. package/dist/{status-CMx3GAax.js → status-IWqSLXLR.js} +1 -1
  146. package/dist/{status-DfPfMVNZ.js → status-qkmUAeWo.js} +5 -5
  147. package/dist/{subagent-registry-DQHg3jUV.js → subagent-registry-DCoU9xIE.js} +49 -10
  148. package/dist/{system-cli-DFZNGx0i.js → system-cli-DY7ov1OT.js} +3 -3
  149. package/dist/{system-cli-Z7uzO8qd.js → system-cli-LFURKpwS.js} +3 -3
  150. package/dist/{tui-DjPsMdL6.js → tui-BH7JwqvB.js} +2 -2
  151. package/dist/{tui-DrATGNms.js → tui-C_5HG495.js} +2 -2
  152. package/dist/{tui-cli-D19-MCXt.js → tui-cli-B65PKZMj.js} +3 -3
  153. package/dist/{tui-cli-pWD_NrUR.js → tui-cli-CJnfmuxq.js} +3 -3
  154. package/dist/{unified-runner-DvOFqcrw.js → unified-runner-CApgXtVC.js} +58 -7
  155. package/dist/{update-cli-Df9rh_aN.js → update-cli-Bi6iMCXr.js} +11 -11
  156. package/dist/{update-cli-DBasZeVl.js → update-cli-BjQ3o9gQ.js} +12 -12
  157. package/dist/{update-runner-DVa6cMqp.js → update-runner-BhVsdpxm.js} +1 -1
  158. package/dist/{update-runner-BRKFzAwV.js → update-runner-FhW6n-Nv.js} +1 -1
  159. package/dist/{web-Dd05xbUr.js → web-ConlA_Ch.js} +4 -4
  160. package/dist/{web-Cw3bFAiP.js → web-CthDLVSz.js} +1 -1
  161. package/dist/{web-CGh5tw__.js → web-Db_-ahjX.js} +6 -6
  162. package/dist/{web-KiuDkd0x.js → web-Dpb_tv_j.js} +5 -5
  163. package/extensions/bluebubbles/package.json +1 -1
  164. package/extensions/copilot-proxy/package.json +1 -1
  165. package/extensions/diagnostics-otel/package.json +1 -1
  166. package/extensions/discord/package.json +1 -1
  167. package/extensions/feishu/package.json +1 -1
  168. package/extensions/google-antigravity-auth/package.json +1 -1
  169. package/extensions/google-gemini-cli-auth/package.json +1 -1
  170. package/extensions/googlechat/package.json +1 -1
  171. package/extensions/imessage/package.json +1 -1
  172. package/extensions/irc/package.json +1 -1
  173. package/extensions/learning-loop/package.json +1 -1
  174. package/extensions/line/package.json +1 -1
  175. package/extensions/llm-task/package.json +1 -1
  176. package/extensions/matrix/CHANGELOG.md +12 -0
  177. package/extensions/matrix/package.json +1 -1
  178. package/extensions/mattermost/package.json +1 -1
  179. package/extensions/memory-core/package.json +1 -1
  180. package/extensions/memory-lancedb/package.json +1 -1
  181. package/extensions/minimax-portal-auth/package.json +1 -1
  182. package/extensions/msteams/CHANGELOG.md +12 -0
  183. package/extensions/msteams/package.json +1 -1
  184. package/extensions/nextcloud-talk/package.json +1 -1
  185. package/extensions/nostr/CHANGELOG.md +12 -0
  186. package/extensions/nostr/package.json +1 -1
  187. package/extensions/open-prose/package.json +1 -1
  188. package/extensions/outlook/package.json +1 -1
  189. package/extensions/pipeline/package.json +1 -1
  190. package/extensions/signal/package.json +1 -1
  191. package/extensions/slack/package.json +1 -1
  192. package/extensions/telegram/package.json +1 -1
  193. package/extensions/tlon/package.json +1 -1
  194. package/extensions/twitch/CHANGELOG.md +12 -0
  195. package/extensions/twitch/package.json +1 -1
  196. package/extensions/voice-call/CHANGELOG.md +12 -0
  197. package/extensions/voice-call/package.json +1 -1
  198. package/extensions/whatsapp/package.json +1 -1
  199. package/extensions/zalo/CHANGELOG.md +12 -0
  200. package/extensions/zalo/package.json +1 -1
  201. package/extensions/zalouser/CHANGELOG.md +12 -0
  202. package/extensions/zalouser/package.json +1 -1
  203. package/package.json +1 -1
  204. package/skills/long-task/scripts/detach-task.sh +91 -14
@@ -3974,6 +3974,15 @@ const SessionsRestoreParamsSchema = Type.Object({
3974
3974
  key: NonEmptyString,
3975
3975
  targetFile: NonEmptyString
3976
3976
  }, { additionalProperties: false });
3977
+ const SessionsAdoptFileParamsSchema = Type.Object({
3978
+ key: NonEmptyString,
3979
+ targetFile: NonEmptyString
3980
+ }, { additionalProperties: false });
3981
+ const SessionsFavoriteFileParamsSchema = Type.Object({
3982
+ file: NonEmptyString,
3983
+ favorited: Type.Boolean()
3984
+ }, { additionalProperties: false });
3985
+ const SessionsDeleteFileParamsSchema = Type.Object({ file: NonEmptyString }, { additionalProperties: false });
3977
3986
  const SessionsDeleteParamsSchema = Type.Object({
3978
3987
  key: NonEmptyString,
3979
3988
  deleteTranscript: Type.Optional(Type.Boolean()),
@@ -4106,6 +4115,9 @@ const validateSessionsResolveParams = ajv.compile(SessionsResolveParamsSchema);
4106
4115
  const validateSessionsPatchParams = ajv.compile(SessionsPatchParamsSchema);
4107
4116
  const validateSessionsResetParams = ajv.compile(SessionsResetParamsSchema);
4108
4117
  const validateSessionsRestoreParams = ajv.compile(SessionsRestoreParamsSchema);
4118
+ const validateSessionsAdoptFileParams = ajv.compile(SessionsAdoptFileParamsSchema);
4119
+ const validateSessionsFavoriteFileParams = ajv.compile(SessionsFavoriteFileParamsSchema);
4120
+ const validateSessionsDeleteFileParams = ajv.compile(SessionsDeleteFileParamsSchema);
4109
4121
  const validateSessionsDeleteParams = ajv.compile(SessionsDeleteParamsSchema);
4110
4122
  const validateSessionsCompactParams = ajv.compile(SessionsCompactParamsSchema);
4111
4123
  const validateSessionsUsageParams = ajv.compile(SessionsUsageParamsSchema);
@@ -33640,6 +33652,21 @@ const getDmHistoryLimitFromSessionKey = getHistoryLimitFromSessionKey;
33640
33652
  //#region src/agents/pi-embedded-runner/long-task-prompt.ts
33641
33653
  const SCRIPT_REL_PATH = "skills/long-task/scripts/detach-task.sh";
33642
33654
  let cachedScriptPath;
33655
+ function isExecutable(candidatePath) {
33656
+ try {
33657
+ fs.accessSync(candidatePath, fs.constants.X_OK);
33658
+ return true;
33659
+ } catch {
33660
+ return false;
33661
+ }
33662
+ }
33663
+ /**
33664
+ * Ensure the script is present AND has the exec bit. npm usually preserves
33665
+ * mode 100755 on pack/install, but a subset of filesystems (FAT32, some
33666
+ * container mounts) silently drop it. If the bit is missing, we try to set
33667
+ * it; on failure we return null rather than emit a prompt that would break
33668
+ * when the model tries to exec the script.
33669
+ */
33643
33670
  async function resolveDetachScriptPath(params) {
33644
33671
  if (cachedScriptPath !== void 0) return cachedScriptPath;
33645
33672
  const packageRoot = await resolveSymiPackageRoot({
@@ -33652,7 +33679,17 @@ async function resolveDetachScriptPath(params) {
33652
33679
  return null;
33653
33680
  }
33654
33681
  const candidate = path.join(packageRoot, SCRIPT_REL_PATH);
33655
- cachedScriptPath = fs.existsSync(candidate) ? candidate : null;
33682
+ if (!fs.existsSync(candidate)) {
33683
+ cachedScriptPath = null;
33684
+ return null;
33685
+ }
33686
+ if (!isExecutable(candidate)) try {
33687
+ fs.chmodSync(candidate, 493);
33688
+ } catch {
33689
+ cachedScriptPath = null;
33690
+ return null;
33691
+ }
33692
+ cachedScriptPath = candidate;
33656
33693
  return cachedScriptPath;
33657
33694
  }
33658
33695
  async function buildLongTaskPromptSuffix(params) {
@@ -33660,11 +33697,25 @@ async function buildLongTaskPromptSuffix(params) {
33660
33697
  if (!scriptPath) return "";
33661
33698
  return "\n\n" + [
33662
33699
  "LONG-RUNNING TASK PATTERN:",
33663
- "- For any task that may exceed 15 minutes (deep nmap scans of /24 or larger, full brute-force sweeps, long builds, exhaustive enumeration): detach from the agent turn. Do NOT foreground-block the exec tool for the full duration; the agent turn will hit its timeout and SIGTERM the process mid-run.",
33664
- `- Detach pattern: exec \`${scriptPath} <task-id> <workdir> <command...>\`. The script spawns under setsid+nohup, writes PID / cmd / started / status / log files in the workdir. Use the agent workspace as the workdir.`,
33700
+ "- Applies ONLY when a command is expected to take longer than about 15 minutes (deep nmap scans of /24 or larger, full brute-force sweeps, long builds, exhaustive enumeration). For anything shorter, use the normal exec tool detaching short tasks creates pointless cron noise.",
33701
+ "- Foreground-blocking the exec tool for the full duration will fail: the agent turn will hit its timeout and the process will be SIGTERMed mid-run. Detach instead.",
33702
+ `- Detach pattern: exec \`${scriptPath} <task-id> <workdir> <command...>\`.`,
33703
+ " • task-id: alphanumeric + dot/dash/underscore, 1–60 chars, must not start with '.' or '-'.",
33704
+ " • workdir: absolute path you own (e.g. the agent workspace).",
33705
+ " • Script spawns under setsid+nohup+disown, writes task-<id>.{pid,cmd,started,log,status} files.",
33665
33706
  "- Immediately after detaching, respond to the user with: task id, PID, log file path, your ETA estimate, and that a cron monitor has been scheduled.",
33666
- "- Register a cron monitor using the `cron` tool with action=add. Schedule every 2-3 minutes. Job prompt must include the task-id, PID, log path, and status path so the future turn has enough context. Example job prompt: \"Check if PID <pid> is alive (kill -0). If alive: tail -n 20 <log>, post one-sentence progress update. If not alive: read <status> and tail <log>, post a final summary, then call cron tool with action=remove id=<this-cron-id>.\"",
33667
- "- When the monitor turn observes status=complete, it MUST call the cron tool with action=remove to clean up its own job. Do not leave stale monitors running."
33707
+ "- Register a cron monitor using the `cron` tool with action=add. Required fields:",
33708
+ " schedule: { kind: \"interval\", ms: 180000 } (every 3 minutes; minimum 60000)",
33709
+ " • payload: { kind: \"agent\", sessionTarget: \"isolated\", text: <job prompt> }",
33710
+ " The job prompt must literally contain the task-id, PID, log path, and status path so the future turn has enough context without re-deriving them.",
33711
+ "- Safe status read (inside the monitor turn):",
33712
+ " `status=$(cat \"<workdir>/task-<id>.status\" 2>/dev/null || echo missing)`",
33713
+ " Possible values: `running pid=<N> started=<ISO>`, `complete rc=<N> ended=<ISO>`, `aborted rc=<N> signal=<TERM|INT|HUP> ended=<ISO>`, or `missing` if the file was cleaned up.",
33714
+ "- Monitor responsibilities each tick:",
33715
+ " • If status begins with `running`: tail -n 20 <log>, post a one-sentence progress line.",
33716
+ " • If status begins with `complete`: post a final summary with rc and tail, then call cron action=remove on this job id.",
33717
+ " • If status begins with `aborted`: post a failure summary with signal and tail, then call cron action=remove.",
33718
+ " • Never leave stale monitors running after the task finishes."
33668
33719
  ].join("\n");
33669
33720
  }
33670
33721
 
@@ -36544,7 +36595,7 @@ async function runAgentTurn(params) {
36544
36595
  function createDefaultDeps() {
36545
36596
  return {
36546
36597
  sendMessageWhatsApp: async (...args) => {
36547
- const { sendMessageWhatsApp } = await import("./web-CJjSOTnI.js");
36598
+ const { sendMessageWhatsApp } = await import("./web-CH43nBP0.js");
36548
36599
  return await sendMessageWhatsApp(...args);
36549
36600
  },
36550
36601
  sendMessageTelegram: async (...args) => {
@@ -53982,7 +54033,7 @@ function loadWebLoginQr() {
53982
54033
  return webLoginQrPromise;
53983
54034
  }
53984
54035
  function loadWebChannel() {
53985
- webChannelPromise ??= import("./web-CJjSOTnI.js");
54036
+ webChannelPromise ??= import("./web-CH43nBP0.js");
53986
54037
  return webChannelPromise;
53987
54038
  }
53988
54039
  function loadWhatsAppActions() {
@@ -1,5 +1,5 @@
1
1
  import { a as WA_WEB_AUTH_DIR, g as webAuthExists, s as logWebSelfId, u as pickWebChannel } from "./accounts-D9zGZU5t.js";
2
- import "./reply-CGoJQT_s.js";
2
+ import "./reply-Cw3shPk2.js";
3
3
  import "./paths-DR2yt_mP.js";
4
4
  import "./github-copilot-token-D9X2phUj.js";
5
5
  import "./plugins-BbAvhC25.js";
@@ -45,7 +45,7 @@ import "./pi-embedded-helpers-BPvzgLtj.js";
45
45
  import "./paths-A0xdf3yk.js";
46
46
  import "./diagnostic-EyuCSUXO.js";
47
47
  import "./store-Do3t33-c.js";
48
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-B6m8UOCl.js";
48
+ import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-DRabhx1e.js";
49
49
  import "./image-aq-JAobP.js";
50
50
  import "./pi-model-discovery-LbcEa65a.js";
51
51
  import "./api-key-rotation-LTEeykrm.js";
@@ -10,11 +10,11 @@ import "./frontmatter-B8duUx_6.js";
10
10
  import "./skills-hAdgFdrv.js";
11
11
  import { m as defaultSlotIdForKey, p as applyExclusiveSlotSelection, s as resolveBundledPluginsDir, t as clearPluginManifestRegistryCache } from "./manifest-registry-Czr39pxG.js";
12
12
  import { i as loadConfig, l as writeConfigFile } from "./config-BNTB6qj8.js";
13
- import "./client-T3qcxXru.js";
14
- import "./call-DKi-hnaF.js";
13
+ import "./client-qUlxXXVJ.js";
14
+ import "./call-DeCQ2DhS.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-DQHg3jUV.js";
17
+ import "./subagent-registry-DCoU9xIE.js";
18
18
  import "./sessions-Cfa6JEB3.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -94,7 +94,7 @@ import "./cli-utils-CCaEbxAz.js";
94
94
  import "./help-format-B0pWGnZs.js";
95
95
  import "./progress-BAHiAaDW.js";
96
96
  import "./replies-Bo49QlAg.js";
97
- import "./onboard-helpers-BBtPmJEe.js";
97
+ import "./onboard-helpers-PpGrZIGw.js";
98
98
  import "./prompt-style-DwCXob2h.js";
99
99
  import "./pairing-labels-D1HDboV2.js";
100
100
  import "./pi-tools.policy-DxNwL7Dl.js";
@@ -103,7 +103,7 @@ import "./npm-registry-spec-DkaZNHAW.js";
103
103
  import "./skill-scanner-BGWOBqLY.js";
104
104
  import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-CgQpVncj.js";
105
105
  import { t as renderTable } from "./table-D01d2GuY.js";
106
- import { t as buildPluginStatusReport } from "./status-CMx3GAax.js";
106
+ import { t as buildPluginStatusReport } from "./status-IWqSLXLR.js";
107
107
  import { n as updateNpmInstalledPlugins } from "./update-DEMKx4eC.js";
108
108
  import os from "node:os";
109
109
  import path from "node:path";
@@ -1,7 +1,7 @@
1
1
  import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, S as shortenHomePath, g as resolveConfigDir, x as shortenHomeInString, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-DyjXROKp.js";
4
+ import "./reply-XaXqDK9F.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -71,8 +71,8 @@ import "./ir-DZam9q5M.js";
71
71
  import "./render-CXDO_kgw.js";
72
72
  import "./commands-BNLCWX6e.js";
73
73
  import "./commands-registry-BT0-zzs3.js";
74
- import "./client-jI1oE0_k.js";
75
- import "./call-DwpGquzW.js";
74
+ import "./client-B8xmq-Pw.js";
75
+ import "./call-CX0cs106.js";
76
76
  import "./pairing-token-CX3NN_qj.js";
77
77
  import "./channel-activity-BOiuJS3t.js";
78
78
  import "./fetch-DTNGXEzX.js";
@@ -93,7 +93,7 @@ import "./session-cost-usage-BXAI7CNH.js";
93
93
  import "./outbound-attachment-Bw-c5Cdp.js";
94
94
  import "./delivery-queue-CAxX6nGq.js";
95
95
  import "./send-9SapUCg7.js";
96
- import "./onboard-helpers-DFvWPFhU.js";
96
+ import "./onboard-helpers-CueJ7O_B.js";
97
97
  import "./prompt-style-CnkMpSXt.js";
98
98
  import "./pairing-labels-DyXoD1DS.js";
99
99
  import "./exec-approvals-DXM2pQYL.js";
@@ -107,7 +107,7 @@ import "./npm-registry-spec-C0CPT3vr.js";
107
107
  import "./skill-scanner-hMtQbWPV.js";
108
108
  import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-DQcRVF1U.js";
109
109
  import { t as renderTable } from "./table-BKlH0YlA.js";
110
- import { t as buildPluginStatusReport } from "./status-B2Qt-5kL.js";
110
+ import { t as buildPluginStatusReport } from "./status-CiHkFbIh.js";
111
111
  import { n as updateNpmInstalledPlugins } from "./update-Ya0e-JnM.js";
112
112
  import fs from "node:fs";
113
113
  import os from "node:os";
@@ -35,7 +35,7 @@ const entries = [
35
35
  description: "Agent Control Protocol tools",
36
36
  hasSubcommands: true,
37
37
  register: async (program) => {
38
- (await import("./acp-cli-CrEIx-c7.js")).registerAcpCli(program);
38
+ (await import("./acp-cli-B2f0qBiM.js")).registerAcpCli(program);
39
39
  }
40
40
  },
41
41
  {
@@ -43,7 +43,7 @@ const entries = [
43
43
  description: "Run, inspect, and query the WebSocket Gateway",
44
44
  hasSubcommands: true,
45
45
  register: async (program) => {
46
- (await import("./gateway-cli-BguO9yV4.js")).registerGatewayCli(program);
46
+ (await import("./gateway-cli-C-G0QrTd.js")).registerGatewayCli(program);
47
47
  }
48
48
  },
49
49
  {
@@ -51,7 +51,7 @@ const entries = [
51
51
  description: "Gateway service (legacy alias)",
52
52
  hasSubcommands: true,
53
53
  register: async (program) => {
54
- (await import("./daemon-cli-DSDcmWOi.js").then((n) => n.t)).registerDaemonCli(program);
54
+ (await import("./daemon-cli-BLhFbih0.js").then((n) => n.t)).registerDaemonCli(program);
55
55
  }
56
56
  },
57
57
  {
@@ -59,7 +59,7 @@ const entries = [
59
59
  description: "Tail gateway file logs via RPC",
60
60
  hasSubcommands: false,
61
61
  register: async (program) => {
62
- (await import("./logs-cli-CfGj-dOg.js")).registerLogsCli(program);
62
+ (await import("./logs-cli-DyCcDkRs.js")).registerLogsCli(program);
63
63
  }
64
64
  },
65
65
  {
@@ -67,7 +67,7 @@ const entries = [
67
67
  description: "System events, heartbeat, and presence",
68
68
  hasSubcommands: true,
69
69
  register: async (program) => {
70
- (await import("./system-cli-DFZNGx0i.js")).registerSystemCli(program);
70
+ (await import("./system-cli-DY7ov1OT.js")).registerSystemCli(program);
71
71
  }
72
72
  },
73
73
  {
@@ -75,7 +75,7 @@ const entries = [
75
75
  description: "Discover, scan, and configure models",
76
76
  hasSubcommands: true,
77
77
  register: async (program) => {
78
- (await import("./models-cli-BFAtjNIF.js")).registerModelsCli(program);
78
+ (await import("./models-cli-DKM5sCQM.js")).registerModelsCli(program);
79
79
  }
80
80
  },
81
81
  {
@@ -83,7 +83,7 @@ const entries = [
83
83
  description: "Manage exec approvals (gateway or node host)",
84
84
  hasSubcommands: true,
85
85
  register: async (program) => {
86
- (await import("./exec-approvals-cli-BSgxsdMt.js")).registerExecApprovalsCli(program);
86
+ (await import("./exec-approvals-cli-Cj6Z-vxL.js")).registerExecApprovalsCli(program);
87
87
  }
88
88
  },
89
89
  {
@@ -91,7 +91,7 @@ const entries = [
91
91
  description: "Manage gateway-owned node pairing and node commands",
92
92
  hasSubcommands: true,
93
93
  register: async (program) => {
94
- (await import("./nodes-cli-Ci3oxw8k.js")).registerNodesCli(program);
94
+ (await import("./nodes-cli-DxfP9DIz.js")).registerNodesCli(program);
95
95
  }
96
96
  },
97
97
  {
@@ -99,7 +99,7 @@ const entries = [
99
99
  description: "Device pairing + token management",
100
100
  hasSubcommands: true,
101
101
  register: async (program) => {
102
- (await import("./devices-cli-x3jIP4Ih.js")).registerDevicesCli(program);
102
+ (await import("./devices-cli-B8Q8AzbX.js")).registerDevicesCli(program);
103
103
  }
104
104
  },
105
105
  {
@@ -107,7 +107,7 @@ const entries = [
107
107
  description: "Run and manage the headless node host service",
108
108
  hasSubcommands: true,
109
109
  register: async (program) => {
110
- (await import("./node-cli-DnfDOh1d.js")).registerNodeCli(program);
110
+ (await import("./node-cli-4eMRkmrw.js")).registerNodeCli(program);
111
111
  }
112
112
  },
113
113
  {
@@ -123,7 +123,7 @@ const entries = [
123
123
  description: "Open a terminal UI connected to the Gateway",
124
124
  hasSubcommands: false,
125
125
  register: async (program) => {
126
- (await import("./tui-cli-pWD_NrUR.js")).registerTuiCli(program);
126
+ (await import("./tui-cli-CJnfmuxq.js")).registerTuiCli(program);
127
127
  }
128
128
  },
129
129
  {
@@ -131,7 +131,7 @@ const entries = [
131
131
  description: "Manage cron jobs via the Gateway scheduler",
132
132
  hasSubcommands: true,
133
133
  register: async (program) => {
134
- (await import("./cron-cli-DCpsXkrw.js")).registerCronCli(program);
134
+ (await import("./cron-cli-BHxfvWeT.js")).registerCronCli(program);
135
135
  }
136
136
  },
137
137
  {
@@ -155,7 +155,7 @@ const entries = [
155
155
  description: "Manage internal agent hooks",
156
156
  hasSubcommands: true,
157
157
  register: async (program) => {
158
- (await import("./hooks-cli-te5hzOAB.js")).registerHooksCli(program);
158
+ (await import("./hooks-cli-BhxMFkKe.js")).registerHooksCli(program);
159
159
  }
160
160
  },
161
161
  {
@@ -179,7 +179,7 @@ const entries = [
179
179
  description: "Secure DM pairing (approve inbound requests)",
180
180
  hasSubcommands: true,
181
181
  register: async (program) => {
182
- const { registerPluginCliCommands } = await import("./cli-QybdZdE7.js");
182
+ const { registerPluginCliCommands } = await import("./cli-Dq95udFO.js");
183
183
  registerPluginCliCommands(program, await loadConfig());
184
184
  (await import("./pairing-cli-DSM82gJG.js")).registerPairingCli(program);
185
185
  }
@@ -189,8 +189,8 @@ const entries = [
189
189
  description: "Manage Symi plugins and extensions",
190
190
  hasSubcommands: true,
191
191
  register: async (program) => {
192
- (await import("./plugins-cli-DFyRjAtJ.js")).registerPluginsCli(program);
193
- const { registerPluginCliCommands } = await import("./cli-QybdZdE7.js");
192
+ (await import("./plugins-cli-qG50__1A.js")).registerPluginsCli(program);
193
+ const { registerPluginCliCommands } = await import("./cli-Dq95udFO.js");
194
194
  registerPluginCliCommands(program, await loadConfig());
195
195
  }
196
196
  },
@@ -199,7 +199,7 @@ const entries = [
199
199
  description: "Manage connected chat channels (Telegram, Discord, etc.)",
200
200
  hasSubcommands: true,
201
201
  register: async (program) => {
202
- (await import("./channels-cli-Bog4Kn3X.js")).registerChannelsCli(program);
202
+ (await import("./channels-cli-CV7_JUru.js")).registerChannelsCli(program);
203
203
  }
204
204
  },
205
205
  {
@@ -215,7 +215,7 @@ const entries = [
215
215
  description: "Security tools and local config audits",
216
216
  hasSubcommands: true,
217
217
  register: async (program) => {
218
- (await import("./security-cli-D5BWzqEJ.js")).registerSecurityCli(program);
218
+ (await import("./security-cli-B-4J6enu.js")).registerSecurityCli(program);
219
219
  }
220
220
  },
221
221
  {
@@ -231,7 +231,7 @@ const entries = [
231
231
  description: "Update Symi and inspect update channel status",
232
232
  hasSubcommands: true,
233
233
  register: async (program) => {
234
- (await import("./update-cli-Df9rh_aN.js")).registerUpdateCli(program);
234
+ (await import("./update-cli-Bi6iMCXr.js")).registerUpdateCli(program);
235
235
  }
236
236
  },
237
237
  {
@@ -239,7 +239,7 @@ const entries = [
239
239
  description: "Generate shell completion script",
240
240
  hasSubcommands: false,
241
241
  register: async (program) => {
242
- (await import("./completion-cli-BhJFXaVU.js").then((n) => n.n)).registerCompletionCli(program);
242
+ (await import("./completion-cli-WlSuySPZ.js").then((n) => n.n)).registerCompletionCli(program);
243
243
  }
244
244
  }
245
245
  ];
@@ -302,7 +302,7 @@ const coreEntries = [
302
302
  hasSubcommands: false
303
303
  }],
304
304
  register: async ({ program }) => {
305
- (await import("./register.setup-fBG_dJfi.js")).registerSetupCommand(program);
305
+ (await import("./register.setup-BJsr5_qp.js")).registerSetupCommand(program);
306
306
  }
307
307
  },
308
308
  {
@@ -312,7 +312,7 @@ const coreEntries = [
312
312
  hasSubcommands: false
313
313
  }],
314
314
  register: async ({ program }) => {
315
- (await import("./register.onboard-CrY4PxLP.js")).registerOnboardCommand(program);
315
+ (await import("./register.onboard-B6EL1d-C.js")).registerOnboardCommand(program);
316
316
  }
317
317
  },
318
318
  {
@@ -322,7 +322,7 @@ const coreEntries = [
322
322
  hasSubcommands: false
323
323
  }],
324
324
  register: async ({ program }) => {
325
- (await import("./register.configure-BxtTIFTa.js")).registerConfigureCommand(program);
325
+ (await import("./register.configure-CoYQhQBT.js")).registerConfigureCommand(program);
326
326
  }
327
327
  },
328
328
  {
@@ -332,7 +332,7 @@ const coreEntries = [
332
332
  hasSubcommands: true
333
333
  }],
334
334
  register: async ({ program }) => {
335
- (await import("./config-cli-CjnQyv45.js")).registerConfigCli(program);
335
+ (await import("./config-cli-EdmbBExA.js")).registerConfigCli(program);
336
336
  }
337
337
  },
338
338
  {
@@ -359,7 +359,7 @@ const coreEntries = [
359
359
  }
360
360
  ],
361
361
  register: async ({ program }) => {
362
- (await import("./register.maintenance-CXLXouZV.js")).registerMaintenanceCommands(program);
362
+ (await import("./register.maintenance-VqCqhB7y.js")).registerMaintenanceCommands(program);
363
363
  }
364
364
  },
365
365
  {
@@ -369,7 +369,7 @@ const coreEntries = [
369
369
  hasSubcommands: true
370
370
  }],
371
371
  register: async ({ program, ctx }) => {
372
- (await import("./register.message-C4ifV9vG.js")).registerMessageCommands(program, ctx);
372
+ (await import("./register.message-dd1xYBZT.js")).registerMessageCommands(program, ctx);
373
373
  }
374
374
  },
375
375
  {
@@ -393,7 +393,7 @@ const coreEntries = [
393
393
  hasSubcommands: true
394
394
  }],
395
395
  register: async ({ program, ctx }) => {
396
- (await import("./register.agent-DRrHvYcz.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
396
+ (await import("./register.agent-CopGIf9e.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
397
397
  }
398
398
  },
399
399
  {
@@ -415,7 +415,7 @@ const coreEntries = [
415
415
  }
416
416
  ],
417
417
  register: async ({ program }) => {
418
- (await import("./register.status-health-sessions-Ckw86-gn.js")).registerStatusHealthSessionsCommands(program);
418
+ (await import("./register.status-health-sessions-jeiqtgl7.js")).registerStatusHealthSessionsCommands(program);
419
419
  }
420
420
  },
421
421
  {
@@ -425,7 +425,7 @@ const coreEntries = [
425
425
  hasSubcommands: true
426
426
  }],
427
427
  register: async ({ program }) => {
428
- (await import("./browser-cli-Ctn9do4z.js")).registerBrowserCli(program);
428
+ (await import("./browser-cli-Dr0yx7-7.js")).registerBrowserCli(program);
429
429
  }
430
430
  }
431
431
  ];
@@ -11,11 +11,11 @@ import "./frontmatter-B8duUx_6.js";
11
11
  import "./skills-hAdgFdrv.js";
12
12
  import "./manifest-registry-Czr39pxG.js";
13
13
  import { H as VERSION } from "./config-BNTB6qj8.js";
14
- import "./client-T3qcxXru.js";
15
- import "./call-DKi-hnaF.js";
14
+ import "./client-qUlxXXVJ.js";
15
+ import "./call-DeCQ2DhS.js";
16
16
  import "./message-channel-C9dERklz.js";
17
17
  import "./pairing-token-Byh6drgn.js";
18
- import "./subagent-registry-DQHg3jUV.js";
18
+ import "./subagent-registry-DCoU9xIE.js";
19
19
  import "./sessions-Cfa6JEB3.js";
20
20
  import "./tokens-Csntmwwn.js";
21
21
  import "./plugins-CwSlLxM8.js";
@@ -95,18 +95,18 @@ import "./cli-utils-CCaEbxAz.js";
95
95
  import "./help-format-B0pWGnZs.js";
96
96
  import "./progress-BAHiAaDW.js";
97
97
  import "./replies-Bo49QlAg.js";
98
- import "./onboard-helpers-BBtPmJEe.js";
98
+ import "./onboard-helpers-PpGrZIGw.js";
99
99
  import "./prompt-style-DwCXob2h.js";
100
100
  import "./pairing-labels-D1HDboV2.js";
101
101
  import "./pi-tools.policy-DxNwL7Dl.js";
102
102
  import "./catalog-DLQFKucJ.js";
103
- import "./plugin-registry-BzIbwU3K.js";
104
- import { n as resolveCliChannelOptions } from "./channel-options-DQcpDVCx.js";
105
- import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-C_xKLugM.js";
106
- import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-BWnZSpbL.js";
103
+ import "./plugin-registry-Bzz7mUyl.js";
104
+ import { n as resolveCliChannelOptions } from "./channel-options-BMDryXHq.js";
105
+ import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-DdPRkz29.js";
106
+ import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-Cx9T7GYx.js";
107
107
  import { r as setProgramContext } from "./program-context-CqzR_m-7.js";
108
108
  import { t as forceFreePort } from "./ports-Dn122MUd.js";
109
- import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-DqqRwplt.js";
109
+ import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-Bucr6qZ5.js";
110
110
  import { Command } from "commander";
111
111
 
112
112
  //#region src/cli/program/context.ts
@@ -214,7 +214,7 @@ function registerPreActionHooks(program, programVersion) {
214
214
  commandPath
215
215
  });
216
216
  if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
217
- const { ensurePluginRegistryLoaded } = await import("./plugin-registry-BzIbwU3K.js").then((n) => n.n);
217
+ const { ensurePluginRegistryLoaded } = await import("./plugin-registry-Bzz7mUyl.js").then((n) => n.n);
218
218
  ensurePluginRegistryLoaded();
219
219
  }
220
220
  });
@@ -1,6 +1,6 @@
1
1
  import { d as resolveIsNixMode, g as resolveStateDir, m as resolveOAuthDir, t as CONFIG_PATH, u as resolveGatewayPort, y as resolveRequiredHomeDir } from "./paths-Cqn-zk3M.js";
2
2
  import { C as sleep, S as shortenHomePath, U as getResolvedLoggerSettings, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
- import { _r as formatRemainingShort, ft as loadSymiPlugins, gr as buildAuthHealthSummary, hr as DEFAULT_OAUTH_WARN_MS } from "./reply-DyjXROKp.js";
3
+ import { _r as formatRemainingShort, ft as loadSymiPlugins, gr as buildAuthHealthSummary, hr as DEFAULT_OAUTH_WARN_MS } from "./reply-XaXqDK9F.js";
4
4
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
5
5
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
6
6
  import { n as runExec, t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
@@ -19,8 +19,8 @@ import { c as resolveStorePath, n as resolveSessionFilePath, s as resolveSession
19
19
  import { n as loadModelCatalog } from "./model-catalog-8Son0J4O.js";
20
20
  import { i as resolveMemoryBackendConfig } from "./memory-cli-DDumUksr.js";
21
21
  import { i as resolveMemorySearchConfig } from "./manager-D4LJSRyZ.js";
22
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-DwpGquzW.js";
23
- import { h as randomToken, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel } from "./onboard-helpers-DFvWPFhU.js";
22
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CX0cs106.js";
23
+ import { h as randomToken, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel } from "./onboard-helpers-CueJ7O_B.js";
24
24
  import { n as isWSLEnv, t as isWSL } from "./wsl-q8spwrME.js";
25
25
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-CnkMpSXt.js";
26
26
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName, m as resolveNodeLaunchAgentLabel } from "./constants-CafH8-8D.js";
@@ -34,16 +34,16 @@ import { a as launchAgentPlistExists, i as isLaunchAgentLoaded, o as repairLaunc
34
34
  import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, o as needsNodeRuntimeMigration, r as SERVICE_AUDIT_CODES, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-xYZbFny_.js";
35
35
  import { t as readLastGatewayErrorLine } from "./diagnostics-BRwihzJG.js";
36
36
  import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-CvbbCuoa.js";
37
- import { r as healthCommand } from "./health-D3w4YMlC.js";
37
+ import { r as healthCommand } from "./health-B1nih5LD.js";
38
38
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-B7moDVHX.js";
39
39
  import { t as resolveDmAllowState } from "./dm-policy-shared-DlDAGtZL.js";
40
- import { t as runGatewayUpdate } from "./update-runner-BRKFzAwV.js";
40
+ import { t as runGatewayUpdate } from "./update-runner-FhW6n-Nv.js";
41
41
  import { t as resolveAgentSessionDirs } from "./session-dirs-Dgz7kkUM.js";
42
42
  import { n as logConfigUpdated } from "./logging-KpicI3yD.js";
43
43
  import { n as detectLegacyStateMigrations, r as runLegacyStateMigrations, t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-iIzSEQxb.js";
44
44
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-DCskIKcx.js";
45
45
  import { t as formatHealthCheckFailure } from "./health-format-DRCaak6L.js";
46
- import { n as doctorShellCompletion } from "./doctor-completion-D3oUNFQM.js";
46
+ import { n as doctorShellCompletion } from "./doctor-completion-CfeROjIz.js";
47
47
  import fs from "node:fs";
48
48
  import os from "node:os";
49
49
  import path from "node:path";
@@ -6,9 +6,9 @@ import { n as runExec, t as runCommandWithTimeout } from "./exec-CBKBIMpA.js";
6
6
  import { c as resolveAgentWorkspaceDir, i as resolveAgentDir, l as resolveDefaultAgentId, p as DEFAULT_AGENTS_FILENAME } from "./agent-scope-D-jRCY0d.js";
7
7
  import { t as buildWorkspaceSkillStatus } from "./skills-status-DKXJ-tbi.js";
8
8
  import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-BNTB6qj8.js";
9
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-DKi-hnaF.js";
9
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-DeCQ2DhS.js";
10
10
  import { l as resolveGatewayBindHost, n as isLoopbackHost } from "./net-DZ5Ayk-W.js";
11
- import { _n as DEFAULT_OAUTH_WARN_MS, m as loadSymiPlugins, vn as buildAuthHealthSummary, yn as formatRemainingShort } from "./subagent-registry-DQHg3jUV.js";
11
+ import { _n as DEFAULT_OAUTH_WARN_MS, m as loadSymiPlugins, vn as buildAuthHealthSummary, yn as formatRemainingShort } from "./subagent-registry-DCoU9xIE.js";
12
12
  import { F as resolveMainSessionKey, H as cleanStaleLockFiles, o as loadSessionStore } from "./sessions-Cfa6JEB3.js";
13
13
  import { n as listChannelPlugins } from "./plugins-CwSlLxM8.js";
14
14
  import { D as DEFAULT_SANDBOX_COMMON_IMAGE, E as DEFAULT_SANDBOX_BROWSER_IMAGE, O as DEFAULT_SANDBOX_IMAGE, p as resolveSandboxScope } from "./sandbox-DY75ZyJD.js";
@@ -19,7 +19,7 @@ import { i as resolveMemoryBackendConfig } from "./memory-cli-Btzr8gfD.js";
19
19
  import { i as resolveMemorySearchConfig } from "./manager-Vb2F7vQq.js";
20
20
  import { n as loadModelCatalog } from "./model-catalog-DNvgFPZn.js";
21
21
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName, m as resolveNodeLaunchAgentLabel } from "./constants-CPeVoSXJ.js";
22
- import { h as randomToken, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel } from "./onboard-helpers-BBtPmJEe.js";
22
+ import { h as randomToken, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel } from "./onboard-helpers-PpGrZIGw.js";
23
23
  import { n as isWSLEnv, t as isWSL } from "./wsl-jdLWdiKy.js";
24
24
  import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint } from "./prompt-style-DwCXob2h.js";
25
25
  import { t as note$1 } from "./note-DDecZomM.js";
@@ -31,16 +31,16 @@ import { a as launchAgentPlistExists, i as isLaunchAgentLoaded, o as repairLaunc
31
31
  import { i as auditGatewayServiceConfig, n as renderSystemdUnavailableHints, o as needsNodeRuntimeMigration, r as SERVICE_AUDIT_CODES, s as formatRuntimeStatus, t as isSystemdUnavailableDetail } from "./systemd-hints-DT6cDIM2.js";
32
32
  import { t as readLastGatewayErrorLine } from "./diagnostics-CS1ov_hH.js";
33
33
  import { n as renderGatewayServiceCleanupHints, t as findExtraGatewayServices } from "./inspect-t04OgGMk.js";
34
- import { r as healthCommand } from "./health-cVvZdeDu.js";
34
+ import { r as healthCommand } from "./health-CsTxt66a.js";
35
35
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-BseSWee1.js";
36
36
  import { t as resolveDmAllowState } from "./dm-policy-shared-DJ-61hCT.js";
37
- import { t as runGatewayUpdate } from "./update-runner-DVa6cMqp.js";
37
+ import { t as runGatewayUpdate } from "./update-runner-BhVsdpxm.js";
38
38
  import { t as resolveAgentSessionDirs } from "./session-dirs-DWgIYmAt.js";
39
39
  import { n as logConfigUpdated } from "./logging-BGewRZy0.js";
40
40
  import { n as detectLegacyStateMigrations, r as runLegacyStateMigrations, t as loadAndMaybeMigrateDoctorConfig } from "./doctor-config-flow-DhAYwhNB.js";
41
41
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-DA_LW52P.js";
42
42
  import { t as formatHealthCheckFailure } from "./health-format-CzgUHmmX.js";
43
- import { n as doctorShellCompletion } from "./doctor-completion-DBE1IVKj.js";
43
+ import { n as doctorShellCompletion } from "./doctor-completion-BDzhB9pE.js";
44
44
  import { execFile } from "node:child_process";
45
45
  import os from "node:os";
46
46
  import path from "node:path";
@@ -1,6 +1,6 @@
1
1
  import { o as createSubsystemLogger } from "./entry.js";
2
2
  import { L as normalizeProviderId, b as ensureAuthProfileStore, v as upsertAuthProfile } from "./auth-profiles-Q1xTr5SX.js";
3
- import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-DQHg3jUV.js";
3
+ import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-DCoU9xIE.js";
4
4
  import { n as isWSLEnv } from "./wsl-jdLWdiKy.js";
5
5
  import { r as stylePromptTitle } from "./prompt-style-DwCXob2h.js";
6
6
  import { f as updateConfig } from "./shared-DdxPzyOH.js";
@@ -1,4 +1,4 @@
1
- import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-DyjXROKp.js";
1
+ import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-XaXqDK9F.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
3
3
  import { At as ensureAuthProfileStore, Ot as upsertAuthProfile, l as normalizeProviderId } from "./model-selection-CyFvYcRt.js";
4
4
  import { n as isWSLEnv } from "./wsl-q8spwrME.js";
@@ -1,7 +1,7 @@
1
1
  import { Yt as resolveStateDir, _t as isVerbose, f as shouldLogSubsystemToConsole, o as createSubsystemLogger } from "./entry.js";
2
2
  import { S as parseAgentSessionKey } from "./session-key-DjZ7Z1hW.js";
3
3
  import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-Byh6drgn.js";
4
- import { Fn as estimateBase64DecodedBytes, d as sniffMimeFromBase64 } from "./subagent-registry-DQHg3jUV.js";
4
+ import { Fn as estimateBase64DecodedBytes, d as sniffMimeFromBase64 } from "./subagent-registry-DCoU9xIE.js";
5
5
  import { n as redactSensitiveText, t as getDefaultRedactPatterns } from "./redact-B40lik2B.js";
6
6
  import path from "node:path";
7
7
  import chalk from "chalk";
@@ -1,6 +1,6 @@
1
1
  import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
2
2
  import { A as isVerbose } from "./utils-B-0b9bGM.js";
3
- import { Nr as estimateBase64DecodedBytes, ot as sniffMimeFromBase64 } from "./reply-DyjXROKp.js";
3
+ import { Nr as estimateBase64DecodedBytes, ot as sniffMimeFromBase64 } from "./reply-XaXqDK9F.js";
4
4
  import { S as parseAgentSessionKey } from "./session-key-DCt45XZa.js";
5
5
  import { s as shouldLogSubsystemToConsole, t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
6
6
  import { n as redactSensitiveText, t as getDefaultRedactPatterns } from "./redact-f-Q-hFt_.js";
@@ -7,7 +7,7 @@ import "./github-copilot-token-BbsJ0Qbo.js";
7
7
  import { r as formatCliCommand } from "./env-CQ_DQOwT.js";
8
8
  import "./config-BUTI-mUZ.js";
9
9
  import "./manifest-registry-D-mTF1cj.js";
10
- import { _ as fetchJson, b as withCdpSocket, d as normalizeCdpWsUrl, g as appendCdpPath, h as withBrowserNavigationPolicy, m as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, u as formatAriaSnapshot, y as getHeadersWithAuth } from "./chrome-BxwUEWrH.js";
10
+ import { _ as fetchJson, b as withCdpSocket, d as normalizeCdpWsUrl, g as appendCdpPath, h as withBrowserNavigationPolicy, m as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, u as formatAriaSnapshot, y as getHeadersWithAuth } from "./chrome-CiOKaTN-.js";
11
11
  import "./redact-1NGYV_8p.js";
12
12
  import { n as formatErrorMessage } from "./errors-CPfngF0S.js";
13
13
  import "./ssrf-CxfFyMRZ.js";