@symerian/symi 2.6.41 → 2.7.0

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 (292) hide show
  1. package/dist/{accounts-DDuIpcln.js → accounts-Cd816n6l.js} +7 -7
  2. package/dist/{accounts-bK-Yqdwx.js → accounts-CokRskCl.js} +1 -1
  3. package/dist/{accounts-DyJN4_vR.js → accounts-mN_EcgxC.js} +1 -1
  4. package/dist/{acp-cli-CrEIx-c7.js → acp-cli-COzlJi3B.js} +6 -6
  5. package/dist/{agent-scope-CgUHAtCo.js → agent-scope-BRwEc2pG.js} +18 -18
  6. package/dist/{agents-B4RNdKQ3.js → agents-Cu2bthAX.js} +4 -4
  7. package/dist/{agents.config-CA31c0kN.js → agents.config-5PTwsijs.js} +1 -1
  8. package/dist/{agents.config-CG2klYOg.js → agents.config-Dib8Uo2P.js} +2 -2
  9. package/dist/{api-key-rotation-CzuPlV2t.js → api-key-rotation-CEr3lKih.js} +1 -1
  10. package/dist/{audio-preflight-K-s65jbB.js → audio-preflight-COaFw917.js} +4 -4
  11. package/dist/{audio-preflight-CIiS5cfP.js → audio-preflight-mj-z_vQ6.js} +28 -28
  12. package/dist/{audit-DB9YkTVX.js → audit-Djfdh06o.js} +23 -23
  13. package/dist/{auth-choice-CCGIgXvF.js → auth-choice-5gul6jy2.js} +1 -1
  14. package/dist/{auth-choice-CiMf3Pjp.js → auth-choice-CmSUU3t8.js} +8 -8
  15. package/dist/{auth-token-Cay2jwzn.js → auth-token-83A2btbE.js} +1 -1
  16. package/dist/{banner-BNsB_A87.js → banner-B4vQpMIJ.js} +1 -1
  17. package/dist/{bindings-DFaVVCsf.js → bindings-ChzePa8q.js} +1 -1
  18. package/dist/{browser-cli-Ctn9do4z.js → browser-cli-BTD0NlrA.js} +9 -9
  19. package/dist/build-info.json +3 -3
  20. package/dist/bundled/boot-md/handler.js +6 -6
  21. package/dist/bundled/session-memory/handler.js +6 -6
  22. package/dist/{call-DwpGquzW.js → call-tmHtVCkn.js} +9 -9
  23. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  24. package/dist/{channel-options-BMQlkUDX.js → channel-options-DVf4CJIu.js} +1 -1
  25. package/dist/{channel-options-pAH4A-xX.js → channel-options-DsWGc55A.js} +2 -2
  26. package/dist/{channel-selection-V2xDgw16.js → channel-selection-DaJDux-Q.js} +1 -1
  27. package/dist/{channel-web-Dwuj48T5.js → channel-web-vGC-WJXi.js} +17 -17
  28. package/dist/{channels-cli-rmDzxb0W.js → channels-cli-COayA28A.js} +76 -76
  29. package/dist/{channels-cli-CuExxB0U.js → channels-cli-CSv05N3q.js} +4 -4
  30. package/dist/{channels-status-issues-CJ0Vb_9z.js → channels-status-issues-B_PI3nEE.js} +1 -1
  31. package/dist/{chrome-DU2ZysN3.js → chrome-CSJzpT9Z.js} +2 -2
  32. package/dist/{chrome-BYOhnxTr.js → chrome-CbA-qnhp.js} +7 -7
  33. package/dist/cli/daemon-cli.js +1 -1
  34. package/dist/{cli-Mcq2pPI0.js → cli-B-g79xPe.js} +1 -1
  35. package/dist/{cli-BPGZalMg.js → cli-DJjOxip6.js} +63 -63
  36. package/dist/{client-jI1oE0_k.js → client-Bj_vTpri.js} +1 -1
  37. package/dist/{command-registry-BoEw2RzH.js → command-registry-BvpLfzl7.js} +9 -9
  38. package/dist/{commands-BNLCWX6e.js → commands-CtocZ4Lg.js} +1 -1
  39. package/dist/{commands-registry-BT0-zzs3.js → commands-registry-BZ0ZSQpM.js} +3 -3
  40. package/dist/{completion-cli-CQVZGJPg.js → completion-cli-CfRZ-7QF.js} +2 -2
  41. package/dist/{completion-cli-CE9Xqlyx.js → completion-cli-DtQcXg1N.js} +12 -12
  42. package/dist/{config-cli-mU_ckD4l.js → config-cli-D9Z78raJ.js} +4 -4
  43. package/dist/{config-cli-BucNvr-c.js → config-cli-DL2RdfLM.js} +1 -1
  44. package/dist/{config-guard-CEkSg4hl.js → config-guard-4oRmpR0a.js} +12 -12
  45. package/dist/{config-Dz95lSBW.js → config-tNauHpdq.js} +2 -2
  46. package/dist/{config-validation-HDVDlMSV.js → config-validation-BoDWiwe3.js} +1 -1
  47. package/dist/{configure-CxnBcN95.js → configure-Dq4f8WPa.js} +3 -3
  48. package/dist/{configure-CDOF87Fk.js → configure-jDpF8lmx.js} +15 -15
  49. package/dist/{control-service-BYKXzY4f.js → control-service-BBnhN7aZ.js} +4 -4
  50. package/dist/control-ui/css/style.css +51 -0
  51. package/dist/control-ui/js/app.js +39 -0
  52. package/dist/control-ui/js/gateway.js +2 -0
  53. package/dist/control-ui/js/settings.js +71 -8
  54. package/dist/{control-ui-assets-B7moDVHX.js → control-ui-assets-6n-YayeS.js} +1 -1
  55. package/dist/{cron-cli-DCpsXkrw.js → cron-cli-D165ecaj.js} +10 -10
  56. package/dist/{daemon-cli-DSDcmWOi.js → daemon-cli-BccZzUb0.js} +11 -11
  57. package/dist/{daemon-runtime-mE1b-Q48.js → daemon-runtime-u01h46bE.js} +10 -10
  58. package/dist/{deliver-B4KZ6-oZ.js → deliver-BYdNAEqj.js} +7 -7
  59. package/dist/{deliver-C1HRkzPJ.js → deliver-C7NePF9Z.js} +1 -1
  60. package/dist/{devices-cli-x3jIP4Ih.js → devices-cli-D0N71nqX.js} +6 -6
  61. package/dist/{diagnostics-BRwihzJG.js → diagnostics-BrUo0gqs.js} +5 -5
  62. package/dist/{directory-cli-KgsAVTA0.js → directory-cli-aj7aXIBM.js} +7 -7
  63. package/dist/{dm-policy-shared-DlDAGtZL.js → dm-policy-shared-epgkayyq.js} +2 -2
  64. package/dist/{dns-cli-Cwr92Aiq.js → dns-cli-Dit09wbu.js} +3 -3
  65. package/dist/{dock-BhS32F6E.js → dock-BYiRZSgZ.js} +4 -4
  66. package/dist/{docs-cli-qE-blOLC.js → docs-cli-CyWGMA-e.js} +1 -1
  67. package/dist/{doctor-completion-CoftKlUX.js → doctor-completion-Ccb83Wl5.js} +2 -2
  68. package/dist/{doctor-completion-CHF_TwGQ.js → doctor-completion-oQemZItC.js} +1 -1
  69. package/dist/{doctor-config-flow-iIzSEQxb.js → doctor-config-flow-BXmHd2bb.js} +10 -10
  70. package/dist/entry.js +1 -1
  71. package/dist/{exec-approvals-cli-BSgxsdMt.js → exec-approvals-cli-CZ-iTtNO.js} +13 -13
  72. package/dist/extensionAPI.js +1 -1
  73. package/dist/{fs-safe-CUjO1ca2.js → fs-safe-CTDvb1DF.js} +6 -6
  74. package/dist/{gateway-cli-SNaqDM7f.js → gateway-cli-C1zPKZ7B.js} +137 -121
  75. package/dist/{gateway-cli-G7fiXsQ6.js → gateway-cli-zbVm1MBQ.js} +32 -16
  76. package/dist/{gateway-rpc-5fREQe9Q.js → gateway-rpc-B1Wzoj99.js} +1 -1
  77. package/dist/{glass-ui-ws-CF0__vuO.js → glass-ui-ws-CvUFd4C6.js} +28 -9
  78. package/dist/{glass-ui-ws-he25wGFt.js → glass-ui-ws-D3tAmqKX.js} +104 -85
  79. package/dist/{health-q7706M36.js → health-DQEqLYg1.js} +1 -1
  80. package/dist/{health-en2N_Kqc.js → health-o847FIt1.js} +13 -13
  81. package/dist/{hooks-cli-ChQbBpyb.js → hooks-cli-D_UW9fc8.js} +2 -2
  82. package/dist/{hooks-cli-C4rVaLzZ.js → hooks-cli-sYjbF4I6.js} +77 -77
  83. package/dist/{image-CbyTdMd5.js → image-C3ugMkb5.js} +1 -1
  84. package/dist/{image-BWmcNF8N.js → image-lCS3o9xj.js} +3 -3
  85. package/dist/{image-ops-1OJMSAUX.js → image-ops-DYbDWaIA.js} +10 -10
  86. package/dist/index.js +73 -73
  87. package/dist/{inspect-CvbbCuoa.js → inspect-CNYyHVfH.js} +4 -4
  88. package/dist/{install-safe-path-D3Uz77u7.js → install-safe-path-D3mg1DMG.js} +11 -11
  89. package/dist/{installs-DQcRVF1U.js → installs-CYTVYWH_.js} +10 -10
  90. package/dist/{ir-DZam9q5M.js → ir-Dt4hOzxG.js} +6 -6
  91. package/dist/{lifecycle-core-C4HzGXA1.js → lifecycle-core-DxmxQdhS.js} +5 -5
  92. package/dist/llm-slug-generator.js +6 -6
  93. package/dist/{local-roots-aAFLQGkY.js → local-roots-BBeKX7PX.js} +2 -2
  94. package/dist/{login-DODfJ3Dn.js → login-CnjdNmGD.js} +3 -3
  95. package/dist/{login-qr-CBRxijIg.js → login-qr-DUf6CM0M.js} +5 -5
  96. package/dist/{logs-cli-CfGj-dOg.js → logs-cli-BVd6h2-Q.js} +7 -7
  97. package/dist/{manager-D4LJSRyZ.js → manager-C1CfGzZ2.js} +13 -13
  98. package/dist/{markdown-tables-CEbN0fEm.js → markdown-tables-ZwP14ydw.js} +1 -1
  99. package/dist/{memory-cli-DDumUksr.js → memory-cli-DhkRAIdT.js} +14 -14
  100. package/dist/{model-tWhwnFf8.js → model-CeeOcylL.js} +1 -1
  101. package/dist/{model-catalog-8Son0J4O.js → model-catalog-CvbwxWuC.js} +4 -4
  102. package/dist/{model-picker-CAm2Bftd.js → model-picker-C2MqloOs.js} +3 -3
  103. package/dist/{model-selection-CyFvYcRt.js → model-selection-X1oLh3CE.js} +9 -9
  104. package/dist/{models-DOTpfa7b.js → models-Zol34e73.js} +2 -2
  105. package/dist/{models-cli-MJAY_Wg4.js → models-cli-BzcEA9oa.js} +3 -3
  106. package/dist/{models-cli-CBl45f7R.js → models-cli-DnMUzr15.js} +72 -72
  107. package/dist/{models-config-CFFjJPe7.js → models-config-CEMioDUi.js} +7 -7
  108. package/dist/{node-cli-DnfDOh1d.js → node-cli-BVJid4L_.js} +28 -28
  109. package/dist/{node-service-CD47Qpf1.js → node-service-CXzMs782.js} +1 -1
  110. package/dist/{nodes-cli-Ci3oxw8k.js → nodes-cli-BN2Nslim.js} +10 -10
  111. package/dist/{nodes-screen-8Bq7DiSa.js → nodes-screen-Cd49cSPb.js} +4 -4
  112. package/dist/{npm-registry-spec-C0CPT3vr.js → npm-registry-spec-DchndI6P.js} +9 -9
  113. package/dist/{onboard-DQdGJ1lE.js → onboard-CSseK0Co.js} +13 -13
  114. package/dist/{onboard-Bx02XPb1.js → onboard-CxOT_xD4.js} +2 -2
  115. package/dist/{onboard-channels-Bp89ZT6Q.js → onboard-channels-CUlITipG.js} +5 -5
  116. package/dist/{onboard-channels-Ct2eNYUC.js → onboard-channels-D-lh_Vh1.js} +1 -1
  117. package/dist/{onboard-custom-XiomtQr7.js → onboard-custom-DTcLdtA9.js} +3 -3
  118. package/dist/{onboard-helpers-DFvWPFhU.js → onboard-helpers-CdPNw25E.js} +8 -8
  119. package/dist/{onboard-hooks-C3ok8kqB.js → onboard-hooks-C_2_jpWg.js} +1 -1
  120. package/dist/{onboard-remote-BURDxwoE.js → onboard-remote-v6QMnyJD.js} +1 -1
  121. package/dist/{onboard-skills-CbzgBT1W.js → onboard-skills-CQtkRP20.js} +4 -4
  122. package/dist/{onboarding-Dnn_0VTy.js → onboarding-DktESmTv.js} +3 -3
  123. package/dist/{onboarding-DxUcsrKV.js → onboarding-Dn5agNG_.js} +13 -13
  124. package/dist/{onboarding.finalize-1kzzMLFM.js → onboarding.finalize-Bm-1Kdnh.js} +6 -6
  125. package/dist/{onboarding.finalize-Dwr-jEtL.js → onboarding.finalize-CTIZ1zvV.js} +75 -75
  126. package/dist/{onboarding.gateway-config-DKwJ5bWd.js → onboarding.gateway-config-CwnQkyO0.js} +14 -14
  127. package/dist/{openai-model-default-WqcGxyFM.js → openai-model-default-4kBA1_78.js} +2 -2
  128. package/dist/{outbound-wnv03tb3.js → outbound-_Ir3M05f.js} +4 -4
  129. package/dist/{outbound-attachment-Bw-c5Cdp.js → outbound-attachment-Qfh5dlsg.js} +2 -2
  130. package/dist/{pairing-cli-DSM82gJG.js → pairing-cli-C8UXBJ_A.js} +8 -8
  131. package/dist/{pairing-labels-DyXoD1DS.js → pairing-labels-Dxb898X5.js} +1 -1
  132. package/dist/{pairing-store-CK726Dzq.js → pairing-store-B8ktu-6j.js} +2 -2
  133. package/dist/{pairing-token-CX3NN_qj.js → pairing-token-AV-MMfVE.js} +7 -7
  134. package/dist/{paths-BBm9fwuG.js → paths-CT6jsi4E.js} +1 -1
  135. package/dist/{pi-auth-json-zHckislA.js → pi-auth-json-FpfHyEcu.js} +5 -5
  136. package/dist/{pi-embedded-BfEg6Wwb.js → pi-embedded-CYDMb5q0.js} +79 -3
  137. package/dist/{pi-embedded-helpers-GaCyI2oH.js → pi-embedded-helpers-BgRcgoC9.js} +4 -4
  138. package/dist/{pi-embedded-helpers-BgdB5kvy.js → pi-embedded-helpers-Bs4eMaNo.js} +6 -6
  139. package/dist/{pi-tools.policy-DRWb_Cax.js → pi-tools.policy-BBxnqCay.js} +4 -4
  140. package/dist/{plugin-auto-enable-CP0nONRL.js → plugin-auto-enable-DwIrzVOA.js} +2 -2
  141. package/dist/{plugin-registry-BMFEJ4FA.js → plugin-registry-CJGPW1-k.js} +1 -1
  142. package/dist/{plugin-registry-wAQeBSeD.js → plugin-registry-d0oZLl6y.js} +3 -3
  143. package/dist/plugin-sdk/agents/pi-embedded-runner/long-task-prompt.d.ts +5 -0
  144. package/dist/plugin-sdk/{channel-web-Ba27v-Om.js → channel-web-Dm-CzA1O.js} +1 -1
  145. package/dist/plugin-sdk/index.js +2 -2
  146. package/dist/plugin-sdk/{reply-Bok_WQGW.js → reply-4HEU7aDS.js} +79 -3
  147. package/dist/plugin-sdk/{web-BoOAa0Xn.js → web-Cclb7FTq.js} +2 -2
  148. package/dist/{plugins-DKDeQZF0.js → plugins-BAyxWQSz.js} +2 -2
  149. package/dist/{plugins-cli-B36YKKla.js → plugins-cli-BWgjIJQL.js} +72 -72
  150. package/dist/{plugins-cli-DoJbbST7.js → plugins-cli-CL0tzkMo.js} +2 -2
  151. package/dist/{ports-BOmtxoTv.js → ports-OZQlocB7.js} +2 -2
  152. package/dist/{ports-DtW62rqS.js → ports-u9lWy2Jt.js} +1 -1
  153. package/dist/{program-4f7W2RMs.js → program-BHjH97Q_.js} +7 -7
  154. package/dist/{program-context-Y4KnAKNT.js → program-context-CXZHSZ4D.js} +39 -39
  155. package/dist/{prompt-select-styled-D0sLJ4TD.js → prompt-select-styled-BUFEoSlM.js} +38 -38
  156. package/dist/{prompt-select-styled-Dql_0SI0.js → prompt-select-styled-D8LXSUR7.js} +4 -4
  157. package/dist/{provider-auth-helpers-GSv3namf.js → provider-auth-helpers-BFHctF2f.js} +1 -1
  158. package/dist/{provider-auth-helpers-CJbHC_mv.js → provider-auth-helpers-CeAbh3lv.js} +5 -5
  159. package/dist/{push-apns-giplY7u-.js → push-apns-BylbQyP9.js} +1 -1
  160. package/dist/{push-apns-sxB8QxSj.js → push-apns-DqFdzIkc.js} +4 -4
  161. package/dist/{pw-ai-pQoxTh-a.js → pw-ai--LDjnyuN.js} +1 -1
  162. package/dist/{pw-ai-DQohWnzT.js → pw-ai-CfrnAHwA.js} +7 -7
  163. package/dist/{qmd-manager-CCUK1xoc.js → qmd-manager-DUNbG4Qr.js} +18 -18
  164. package/dist/{qr-cli-CejYwqsj.js → qr-cli-BZYa2gvF.js} +3 -3
  165. package/dist/{register.agent-_2tVQLMK.js → register.agent-DxAqRAt3.js} +6 -6
  166. package/dist/{register.agent-vd2BSsyE.js → register.agent-bzSGKS-l.js} +82 -82
  167. package/dist/register.configure-Boyfir72.js +148 -0
  168. package/dist/{register.configure-BVKwTrz8.js → register.configure-WS1nlSp8.js} +6 -6
  169. package/dist/{register.maintenance-XySU31jf.js → register.maintenance-B1QcUr38.js} +85 -85
  170. package/dist/{register.maintenance-BqYR2fop.js → register.maintenance-D_qMTrgD.js} +8 -8
  171. package/dist/{register.message-CCfWNWs3.js → register.message-CJF8gLAN.js} +64 -64
  172. package/dist/{register.message-DOyREWdG.js → register.message-zu3HGGff.js} +2 -2
  173. package/dist/{register.onboard-Dy_D_uMj.js → register.onboard-9dwNqCe6.js} +4 -4
  174. package/dist/{register.onboard-zmF-euog.js → register.onboard-CswoaT7q.js} +75 -75
  175. package/dist/{register.setup-DiGPa1Fw.js → register.setup-CvomtGGu.js} +78 -78
  176. package/dist/{register.setup-cE7gPp2m.js → register.setup-TcjUu6HC.js} +4 -4
  177. package/dist/{register.status-health-sessions-ksv1WnIs.js → register.status-health-sessions-CM1SX81r.js} +3 -3
  178. package/dist/{register.status-health-sessions-DWKL1rkz.js → register.status-health-sessions-CQMvbwr6.js} +76 -76
  179. package/dist/{register.subclis-Crt_IYK0.js → register.subclis-CVQASXaL.js} +9 -9
  180. package/dist/{replies-BMqtgBhh.js → replies-Dy92jzrz.js} +1 -1
  181. package/dist/{reply-CjYJHt_H.js → reply-CpNWtuU4.js} +216 -140
  182. package/dist/{reply-prefix-CE2YmmsD.js → reply-prefix-BLOOs1aW.js} +1 -1
  183. package/dist/{resolve-route-BMoTaVAH.js → resolve-route-BcnaXYvh.js} +2 -2
  184. package/dist/{routes-BAZTZNuQ.js → routes-CVwRcA9D.js} +8 -8
  185. package/dist/{rpc-Co5PQ3IJ.js → rpc-CZFfee1J.js} +1 -1
  186. package/dist/{run-main-bOlPbL7t.js → run-main-Dq6tfDry.js} +14 -14
  187. package/dist/{runner-DRv0uCK_.js → runner-BAVs-p6Z.js} +20 -20
  188. package/dist/{runner-B0AbN8wV.js → runner-cJ3m-bxK.js} +1 -1
  189. package/dist/{sandbox-B6N8cV4d.js → sandbox-HZ_uilsn.js} +18 -18
  190. package/dist/{sandbox-cli-DwzaNjIJ.js → sandbox-cli-wZtiyo8g.js} +20 -20
  191. package/dist/{security-cli-D5BWzqEJ.js → security-cli-BESmRIrl.js} +36 -36
  192. package/dist/{send-CQVnyJyF.js → send-BVBCh27_.js} +13 -13
  193. package/dist/{send-DVm0du0_.js → send-CXFTeD_J.js} +4 -4
  194. package/dist/{send-B3RdXvjC.js → send-DT-5buW5.js} +6 -6
  195. package/dist/{send-9SapUCg7.js → send-DsSI8z3F.js} +6 -6
  196. package/dist/{send-Bm4ULEzh.js → send-JWV62VbW.js} +6 -6
  197. package/dist/{server-context-CCBZN8a0.js → server-context-VlF1_hYj.js} +5 -5
  198. package/dist/{server-methods-VimYvcpY.js → server-methods-B0pdetGJ.js} +130 -64
  199. package/dist/{server-methods-CiwWwj6K.js → server-methods-IBEaQXPX.js} +177 -111
  200. package/dist/{server-node-events-DYC45lKC.js → server-node-events-BACmfyjo.js} +64 -64
  201. package/dist/{server-node-events-CHmLiFNV.js → server-node-events-CyDj7Txd.js} +2 -2
  202. package/dist/{service-osK70kTZ.js → service-D80PyJxB.js} +15 -15
  203. package/dist/{session-DsJGtM7g.js → session-6Qyc4cBQ.js} +2 -2
  204. package/dist/{session-dirs-Dgz7kkUM.js → session-dirs-DPzjjra2.js} +2 -2
  205. package/dist/{sessions-Cpgnq0pA.js → sessions-jTAGYjWl.js} +13 -13
  206. package/dist/{shared-DnmJ0ABB.js → shared-BV7WhIkY.js} +1 -1
  207. package/dist/{shared-73T9fyuK.js → shared-BfhtOZAz.js} +3 -3
  208. package/dist/{skill-commands-Cxw-jNxU.js → skill-commands-ZXbEITKi.js} +5 -5
  209. package/dist/{skill-scanner-hMtQbWPV.js → skill-scanner-w3DJvw1Q.js} +5 -5
  210. package/dist/{skills-6jdJQ5ZL.js → skills-DqQUtOph.js} +4 -4
  211. package/dist/{skills-cli-DXkx4vNV.js → skills-cli-D3lePXkf.js} +7 -7
  212. package/dist/{skills-install-CWVdJkLn.js → skills-install-HGYidhrv.js} +3 -3
  213. package/dist/{skills-status-C3ptXwnh.js → skills-status-Cjsh8we0.js} +1 -1
  214. package/dist/{sqlite-Dx3J_aSE.js → sqlite-BV5ILFtC.js} +12 -12
  215. package/dist/{status-DxhtJtzE.js → status-BJtbD-cG.js} +2 -2
  216. package/dist/{status-Dt_MXoNa.js → status-DUeTrQSz.js} +1 -1
  217. package/dist/{status-CA5wJHMj.js → status-DzHL-eVu.js} +3 -3
  218. package/dist/{status-DEpM69Pd.js → status-nzJEZmNT.js} +25 -25
  219. package/dist/{status.update-CG0ciGaf.js → status.update-TlYwuzTa.js} +3 -3
  220. package/dist/{store-r1DJSDq-.js → store-DvtcmOKj.js} +5 -5
  221. package/dist/{subagent-registry-BPwn3Qm7.js → subagent-registry-CzS4CfnV.js} +79 -3
  222. package/dist/{symi-root-CrGJbkzf.js → symi-root-MF6_6SCS.js} +2 -2
  223. package/dist/{system-cli-DFZNGx0i.js → system-cli-C2yhGP4C.js} +7 -7
  224. package/dist/{systemd-DT6SbCim.js → systemd-CevHlgD4.js} +5 -5
  225. package/dist/{systemd-hints-xYZbFny_.js → systemd-hints-DmgRnw1L.js} +6 -6
  226. package/dist/{systemd-linger-DCskIKcx.js → systemd-linger-ScxQ1_H4.js} +1 -1
  227. package/dist/{tables-BEzT0Da4.js → tables-C38rzF6E.js} +1 -1
  228. package/dist/{target-errors-7AvoVa10.js → target-errors-CCz79CmV.js} +4 -4
  229. package/dist/{tool-images-DvUBlqjX.js → tool-images-B-pqX3nX.js} +1 -1
  230. package/dist/{tui-DjPsMdL6.js → tui-D2MOx3Kx.js} +7 -7
  231. package/dist/{tui-cli-pWD_NrUR.js → tui-cli-B2ii7u23.js} +28 -28
  232. package/dist/{unified-runner-CVkyzT1I.js → unified-runner-BtO3UQSd.js} +93 -17
  233. package/dist/{update-Ya0e-JnM.js → update-Don6XTH9.js} +3 -3
  234. package/dist/{update-check-7EzEjSzb.js → update-check-DCo5RtKp.js} +5 -5
  235. package/dist/{update-cli-Dh_dfprI.js → update-cli-DRODEMSI.js} +8 -8
  236. package/dist/{update-cli-Dv4c5Gup.js → update-cli-gKtjyXlD.js} +95 -95
  237. package/dist/{update-runner-MMFI1UZ0.js → update-runner-AsKAxe31.js} +15 -15
  238. package/dist/{update-runner-CG_kbbGR.js → update-runner-JcdOHr71.js} +1 -1
  239. package/dist/{web-DCBOD-Vj.js → web-BIzWZFiN.js} +1 -1
  240. package/dist/{web-BUc-ts5b.js → web-DGo16lWn.js} +6 -6
  241. package/dist/{web-CJk-lv93.js → web-DKwOxo8E.js} +1 -1
  242. package/dist/web-sefqR11J.js +110 -0
  243. package/dist/{webhooks-cli-BRxe4uCg.js → webhooks-cli-DbnQ2BVE.js} +4 -4
  244. package/dist/{whatsapp-actions-ChO_shrk.js → whatsapp-actions-CqXxtCoj.js} +15 -15
  245. package/dist/{with-timeout-CtVdu_1U.js → with-timeout-Cm5EhxG_.js} +1 -1
  246. package/dist/{workspace-dirs-GpkFi6Kw.js → workspace-dirs-DKu48umx.js} +1 -1
  247. package/dist/{wsl-q8spwrME.js → wsl-xNOi_Ch8.js} +2 -2
  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-antigravity-auth/package.json +1 -1
  254. package/extensions/google-gemini-cli-auth/package.json +1 -1
  255. package/extensions/googlechat/package.json +1 -1
  256. package/extensions/imessage/package.json +1 -1
  257. package/extensions/irc/package.json +1 -1
  258. package/extensions/learning-loop/package.json +1 -1
  259. package/extensions/line/package.json +1 -1
  260. package/extensions/llm-task/package.json +1 -1
  261. package/extensions/matrix/CHANGELOG.md +12 -0
  262. package/extensions/matrix/package.json +1 -1
  263. package/extensions/mattermost/package.json +1 -1
  264. package/extensions/memory-core/package.json +1 -1
  265. package/extensions/memory-lancedb/package.json +1 -1
  266. package/extensions/minimax-portal-auth/package.json +1 -1
  267. package/extensions/msteams/CHANGELOG.md +12 -0
  268. package/extensions/msteams/package.json +1 -1
  269. package/extensions/nextcloud-talk/package.json +1 -1
  270. package/extensions/nostr/CHANGELOG.md +12 -0
  271. package/extensions/nostr/package.json +1 -1
  272. package/extensions/open-prose/package.json +1 -1
  273. package/extensions/outlook/package.json +1 -1
  274. package/extensions/pipeline/package.json +1 -1
  275. package/extensions/signal/package.json +1 -1
  276. package/extensions/slack/package.json +1 -1
  277. package/extensions/telegram/package.json +1 -1
  278. package/extensions/tlon/package.json +1 -1
  279. package/extensions/twitch/CHANGELOG.md +12 -0
  280. package/extensions/twitch/package.json +1 -1
  281. package/extensions/voice-call/CHANGELOG.md +12 -0
  282. package/extensions/voice-call/package.json +1 -1
  283. package/extensions/whatsapp/package.json +1 -1
  284. package/extensions/zalo/CHANGELOG.md +12 -0
  285. package/extensions/zalo/package.json +1 -1
  286. package/extensions/zalouser/CHANGELOG.md +12 -0
  287. package/extensions/zalouser/package.json +1 -1
  288. package/package.json +1 -1
  289. package/skills/long-task/SKILL.md +57 -0
  290. package/skills/long-task/scripts/detach-task.sh +135 -0
  291. package/dist/register.configure-D-XV6_Nb.js +0 -148
  292. package/dist/web-CfVd3Mhp.js +0 -110
@@ -4,51 +4,51 @@ import "./thinking-EAliFiVK.js";
4
4
  import "./registry-Cja8eT7G.js";
5
5
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
6
6
  import "./exec-CWkblSrI.js";
7
- import "./agent-scope-CgUHAtCo.js";
8
- import "./model-selection-CyFvYcRt.js";
7
+ import "./agent-scope-BRwEc2pG.js";
8
+ import "./model-selection-X1oLh3CE.js";
9
9
  import "./github-copilot-token-DAu1a6BX.js";
10
10
  import "./boolean-BsqeuxE6.js";
11
11
  import "./env-DPCHYPeH.js";
12
12
  import "./message-channel-aT-I_DTX.js";
13
- import "./config-Dz95lSBW.js";
13
+ import "./config-tNauHpdq.js";
14
14
  import "./manifest-registry-C4BxOMWX.js";
15
- import "./pi-embedded-helpers-BgdB5kvy.js";
16
- import "./sandbox-B6N8cV4d.js";
17
- import "./chrome-DU2ZysN3.js";
15
+ import "./pi-embedded-helpers-Bs4eMaNo.js";
16
+ import "./sandbox-HZ_uilsn.js";
17
+ import "./chrome-CSJzpT9Z.js";
18
18
  import "./tailscale-D5dKabOc.js";
19
19
  import "./auth-B741uFtk.js";
20
- import "./server-context-CCBZN8a0.js";
20
+ import "./server-context-VlF1_hYj.js";
21
21
  import "./frontmatter-DWQhtOo7.js";
22
- import "./skills-6jdJQ5ZL.js";
23
- import "./routes-BAZTZNuQ.js";
22
+ import "./skills-DqQUtOph.js";
23
+ import "./routes-CVwRcA9D.js";
24
24
  import "./redact-f-Q-hFt_.js";
25
25
  import "./errors-BF3TeRH2.js";
26
- import "./fs-safe-CUjO1ca2.js";
27
- import "./paths-BBm9fwuG.js";
26
+ import "./fs-safe-CTDvb1DF.js";
27
+ import "./paths-CT6jsi4E.js";
28
28
  import "./ssrf-BCYMnxkM.js";
29
- import "./image-ops-1OJMSAUX.js";
30
- import "./store-r1DJSDq-.js";
31
- import "./ports-BOmtxoTv.js";
29
+ import "./image-ops-DYbDWaIA.js";
30
+ import "./store-DvtcmOKj.js";
31
+ import "./ports-OZQlocB7.js";
32
32
  import "./trash-DcMh1i4B.js";
33
- import "./sessions-Cpgnq0pA.js";
34
- import "./dock-BhS32F6E.js";
35
- import "./plugins-DKDeQZF0.js";
36
- import "./accounts-DDuIpcln.js";
37
- import "./accounts-bK-Yqdwx.js";
38
- import "./accounts-DyJN4_vR.js";
39
- import "./bindings-DFaVVCsf.js";
33
+ import "./sessions-jTAGYjWl.js";
34
+ import "./dock-BYiRZSgZ.js";
35
+ import "./plugins-BAyxWQSz.js";
36
+ import "./accounts-Cd816n6l.js";
37
+ import "./accounts-CokRskCl.js";
38
+ import "./accounts-mN_EcgxC.js";
39
+ import "./bindings-ChzePa8q.js";
40
40
  import "./logging-w5jq5901.js";
41
41
  import "./paths-CyhzMxFA.js";
42
- import "./tool-images-DvUBlqjX.js";
42
+ import "./tool-images-B-pqX3nX.js";
43
43
  import "./tool-display-D8N3rsYt.js";
44
- import "./commands-BNLCWX6e.js";
45
- import "./commands-registry-BT0-zzs3.js";
46
- import "./client-jI1oE0_k.js";
47
- import "./call-DwpGquzW.js";
48
- import "./pairing-token-CX3NN_qj.js";
44
+ import "./commands-CtocZ4Lg.js";
45
+ import "./commands-registry-BZ0ZSQpM.js";
46
+ import "./client-Bj_vTpri.js";
47
+ import "./call-tmHtVCkn.js";
48
+ import "./pairing-token-AV-MMfVE.js";
49
49
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
50
50
  import { t as parseTimeoutMs } from "./parse-timeout-2S5vp0-9.js";
51
- import { t as runTui } from "./tui-DjPsMdL6.js";
51
+ import { t as runTui } from "./tui-D2MOx3Kx.js";
52
52
 
53
53
  //#region src/cli/tui-cli.ts
54
54
  function registerTuiCli(program) {
@@ -10,10 +10,10 @@ import { $ as resolveAuthProfileDisplayLabel, B as resolveApiKeyForProvider, C a
10
10
  import { n as formatCliCommand, r as resolveCliName, t as isTruthyEnvValue } from "./env-BDXYbTKj.js";
11
11
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-cCYzSU9h.js";
12
12
  import { t as parseBooleanValue$1 } from "./boolean-CE7i9tBR.js";
13
- import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-GaCyI2oH.js";
13
+ import { $ as normalizeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, G as updateLastRoute, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as isCacheEnabled, Jt as ensureSessionHeader, K as updateSessionStore, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as mergeDeliveryContext, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as deliveryContextFromSession, Xt as resolveBootstrapTotalMaxChars, Y as resolveCacheTtlMs$1, Yt as resolveBootstrapMaxChars, Z as deliveryContextKey, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as resolveFreshSessionTotalTokens, a as isMessagingToolDuplicateNormalized, at as extractToolCallNames, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as hasInterSessionUserProvenance, d as isAntigravityClaude, dt as evaluateSessionFreshness, et as normalizeSessionDeliveryFields, f as isGoogleModelApi, ft as resolveChannelResetConfig, g as formatBillingErrorMessage, gt as DEFAULT_RESET_TRIGGERS, h as formatAssistantErrorText, ht as resolveThreadFlag, it as countToolResults, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as normalizeInputProvenance, m as classifyFailoverReason, mt as resolveSessionResetType, n as validateGeminiTurns, nt as archiveSessionTranscripts, o as normalizeTextForComparison, ot as INPUT_PROVENANCE_KIND_VALUES, p as BILLING_ERROR_USER_MESSAGE, pt as resolveSessionResetPolicy, q as updateSessionStoreEntry, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as capArrayByJsonBytes, s as sanitizeSessionMessagesImages, st as applyInputProvenanceToUserMessage, t as validateAnthropicTurns, tt as normalizeAccountId$3, u as downgradeOpenAIReasoningBlocks, ut as resolveSessionKey, v as getApiErrorPayloadFingerprint, vt as canonicalizeMainSessionAlias, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-BgRcgoC9.js";
14
14
  import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-B6OxYMgn.js";
15
15
  import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-yb7sAlu4.js";
16
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-BYOhnxTr.js";
16
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-CbA-qnhp.js";
17
17
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-Bs0AW1g3.js";
18
18
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-XIsvXeC-.js";
19
19
  import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-C7CauEK8.js";
@@ -31,10 +31,10 @@ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i
31
31
  import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-BNnv8GtF.js";
32
32
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-BBh3Gsrx.js";
33
33
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-SqqWIT22.js";
34
- import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-C1HRkzPJ.js";
34
+ import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-C7NePF9Z.js";
35
35
  import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-CQiU0O8b.js";
36
36
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Zw87xFym.js";
37
- import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-CbyTdMd5.js";
37
+ import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-C3ugMkb5.js";
38
38
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-CCaxCywz.js";
39
39
  import { a as isSilentReplyText, i as isSilentReplyPrefixText, n as SILENT_REPLY_TOKEN, r as SYMIPULSE_TOKEN, t as HEARTBEAT_TOKEN } from "./tokens-W0JzCJJM.js";
40
40
  import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normalizeAllowFromWithStore$1, C as buildTelegramGroupFrom, D as buildTypingThreadParams, E as buildTelegramThreadParams, F as resolveTelegramMediaPlaceholder, G as formatLocationText, H as firstDefined$1, I as resolveTelegramReplyId, J as readChannelAllowFromStore, K as toLocationContext, L as resolveTelegramStreamMode, M as normalizeForwardedContext, N as resolveTelegramForumThreadId, O as describeReplyTarget, P as resolveTelegramGroupAllowFromContext, Q as listPairingChannels, R as resolveTelegramThreadSpec, S as buildSenderName, T as buildTelegramParentPeer, U as isSenderIdAllowed, V as resolveSenderAllowMatch, W as mergeAllowFromSources, X as upsertChannelPairingRequest, Y as removeChannelAllowFromStoreEntry, Z as getPairingAdapter, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildGroupLabel, c as sendStickerTelegram, d as wasSentByBot, et as parseTelegramTarget, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as hasBotMention, k as expandTextLinks, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as addChannelAllowFromStoreEntry, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, tt as resolveTelegramTargetChatType, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramGroupPeerId, x as buildSenderLabel, y as withTelegramApiErrorLogging, z as isSenderAllowed$1 } from "./send-DaBsat3L.js";
@@ -50,7 +50,7 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-Cj6k
50
50
  import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-Se92wAN5.js";
51
51
  import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-JAy_3A3B.js";
52
52
  import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-BSvi46KZ.js";
53
- import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-B0AbN8wV.js";
53
+ import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-cJ3m-bxK.js";
54
54
  import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-BiPrghRt.js";
55
55
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-Dvqh1Tgb.js";
56
56
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-Dnti0cFs.js";
@@ -81,7 +81,7 @@ import AjvPkg from "ajv";
81
81
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
82
82
  import { createServer } from "node:http";
83
83
  import { ProxyAgent, fetch as fetch$1 } from "undici";
84
- import WebSocket$1, { WebSocket } from "ws";
84
+ import WebSocket, { WebSocket as WebSocket$1 } from "ws";
85
85
  import { Buffer as Buffer$1 } from "node:buffer";
86
86
  import { EdgeTTS } from "node-edge-tts";
87
87
  import { createJiti } from "jiti";
@@ -8782,7 +8782,7 @@ var GatewayClient = class {
8782
8782
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
8783
8783
  });
8784
8784
  }
8785
- this.ws = new WebSocket(url, wsOptions);
8785
+ this.ws = new WebSocket$1(url, wsOptions);
8786
8786
  this.ws.on("open", () => {
8787
8787
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
8788
8788
  const tlsError = this.validateTlsFingerprint();
@@ -9001,7 +9001,7 @@ var GatewayClient = class {
9001
9001
  return null;
9002
9002
  }
9003
9003
  async request(method, params, opts) {
9004
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
9004
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
9005
9005
  const id = randomUUID();
9006
9006
  const frame = {
9007
9007
  type: "req",
@@ -10267,7 +10267,7 @@ async function routeReply(params) {
10267
10267
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
10268
10268
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
10269
10269
  try {
10270
- const { deliverOutboundPayloads } = await import("./deliver-C1HRkzPJ.js").then((n) => n.n);
10270
+ const { deliverOutboundPayloads } = await import("./deliver-C7NePF9Z.js").then((n) => n.n);
10271
10271
  return {
10272
10272
  ok: true,
10273
10273
  messageId: (await deliverOutboundPayloads({
@@ -43708,7 +43708,7 @@ async function deliverSessionMaintenanceWarning(params) {
43708
43708
  return;
43709
43709
  }
43710
43710
  try {
43711
- const { deliverOutboundPayloads } = await import("./deliver-C1HRkzPJ.js").then((n) => n.n);
43711
+ const { deliverOutboundPayloads } = await import("./deliver-C7NePF9Z.js").then((n) => n.n);
43712
43712
  await deliverOutboundPayloads({
43713
43713
  cfg: params.cfg,
43714
43714
  channel,
@@ -47154,7 +47154,7 @@ async function describeStickerImage(params) {
47154
47154
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
47155
47155
  try {
47156
47156
  const buffer = await fs$1.readFile(imagePath);
47157
- const { describeImageWithModel } = await import("./image-CbyTdMd5.js").then((n) => n.n);
47157
+ const { describeImageWithModel } = await import("./image-C3ugMkb5.js").then((n) => n.n);
47158
47158
  return (await describeImageWithModel({
47159
47159
  buffer,
47160
47160
  fileName: "sticker.webp",
@@ -49816,7 +49816,7 @@ async function preflightDiscordMessage(params) {
49816
49816
  let preflightTranscript;
49817
49817
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
49818
49818
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
49819
- const { transcribeFirstAudio } = await import("./audio-preflight-K-s65jbB.js");
49819
+ const { transcribeFirstAudio } = await import("./audio-preflight-COaFw917.js");
49820
49820
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
49821
49821
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
49822
49822
  ctx: {
@@ -53822,7 +53822,7 @@ function isVoiceChannelType(type) {
53822
53822
  function createDefaultDeps() {
53823
53823
  return {
53824
53824
  sendMessageWhatsApp: async (...args) => {
53825
- const { sendMessageWhatsApp } = await import("./web-BUc-ts5b.js");
53825
+ const { sendMessageWhatsApp } = await import("./web-DGo16lWn.js");
53826
53826
  return await sendMessageWhatsApp(...args);
53827
53827
  },
53828
53828
  sendMessageTelegram: async (...args) => {
@@ -56727,7 +56727,7 @@ function createDiscordGatewayPlugin(params) {
56727
56727
  super(options);
56728
56728
  }
56729
56729
  createWebSocket(url) {
56730
- return new WebSocket$1(url, { agent });
56730
+ return new WebSocket(url, { agent });
56731
56731
  }
56732
56732
  }
56733
56733
  return new ProxyGatewayPlugin();
@@ -66945,7 +66945,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
66945
66945
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
66946
66946
  let preflightTranscript;
66947
66947
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
66948
- const { transcribeFirstAudio } = await import("./audio-preflight-K-s65jbB.js");
66948
+ const { transcribeFirstAudio } = await import("./audio-preflight-COaFw917.js");
66949
66949
  preflightTranscript = await transcribeFirstAudio({
66950
66950
  ctx: {
66951
66951
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -69102,7 +69102,7 @@ function loadWebLoginQr() {
69102
69102
  return webLoginQrPromise;
69103
69103
  }
69104
69104
  function loadWebChannel() {
69105
- webChannelPromise ??= import("./web-BUc-ts5b.js");
69105
+ webChannelPromise ??= import("./web-DGo16lWn.js");
69106
69106
  return webChannelPromise;
69107
69107
  }
69108
69108
  function loadWhatsAppActions() {
@@ -76301,6 +76301,77 @@ function isRunnerAbortError(err) {
76301
76301
  return ("message" in err && typeof err.message === "string" ? err.message.toLowerCase() : "").includes("aborted");
76302
76302
  }
76303
76303
 
76304
+ //#endregion
76305
+ //#region src/agents/pi-embedded-runner/long-task-prompt.ts
76306
+ const SCRIPT_REL_PATH = "skills/long-task/scripts/detach-task.sh";
76307
+ let cachedScriptPath;
76308
+ function isExecutable(candidatePath) {
76309
+ try {
76310
+ fs.accessSync(candidatePath, fs.constants.X_OK);
76311
+ return true;
76312
+ } catch {
76313
+ return false;
76314
+ }
76315
+ }
76316
+ /**
76317
+ * Ensure the script is present AND has the exec bit. npm usually preserves
76318
+ * mode 100755 on pack/install, but a subset of filesystems (FAT32, some
76319
+ * container mounts) silently drop it. If the bit is missing, we try to set
76320
+ * it; on failure we return null rather than emit a prompt that would break
76321
+ * when the model tries to exec the script.
76322
+ */
76323
+ async function resolveDetachScriptPath(params) {
76324
+ if (cachedScriptPath !== void 0) return cachedScriptPath;
76325
+ const packageRoot = await resolveSymiPackageRoot({
76326
+ cwd: params.cwd,
76327
+ argv1: params.argv1,
76328
+ moduleUrl: params.moduleUrl
76329
+ });
76330
+ if (!packageRoot) {
76331
+ cachedScriptPath = null;
76332
+ return null;
76333
+ }
76334
+ const candidate = path.join(packageRoot, SCRIPT_REL_PATH);
76335
+ if (!fs.existsSync(candidate)) {
76336
+ cachedScriptPath = null;
76337
+ return null;
76338
+ }
76339
+ if (!isExecutable(candidate)) try {
76340
+ fs.chmodSync(candidate, 493);
76341
+ } catch {
76342
+ cachedScriptPath = null;
76343
+ return null;
76344
+ }
76345
+ cachedScriptPath = candidate;
76346
+ return cachedScriptPath;
76347
+ }
76348
+ async function buildLongTaskPromptSuffix(params) {
76349
+ const scriptPath = await resolveDetachScriptPath(params);
76350
+ if (!scriptPath) return "";
76351
+ return "\n\n" + [
76352
+ "LONG-RUNNING TASK PATTERN:",
76353
+ "- 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.",
76354
+ "- 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.",
76355
+ `- Detach pattern: exec \`${scriptPath} <task-id> <workdir> <command...>\`.`,
76356
+ " • task-id: alphanumeric + dot/dash/underscore, 1–60 chars, must not start with '.' or '-'.",
76357
+ " • workdir: absolute path you own (e.g. the agent workspace).",
76358
+ " • Script spawns under setsid+nohup+disown, writes task-<id>.{pid,cmd,started,log,status} files.",
76359
+ "- 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.",
76360
+ "- Register a cron monitor using the `cron` tool with action=add. Required fields:",
76361
+ " • schedule: { kind: \"interval\", ms: 180000 } (every 3 minutes; minimum 60000)",
76362
+ " • payload: { kind: \"agent\", sessionTarget: \"isolated\", text: <job prompt> }",
76363
+ " 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.",
76364
+ "- Safe status read (inside the monitor turn):",
76365
+ " `status=$(cat \"<workdir>/task-<id>.status\" 2>/dev/null || echo missing)`",
76366
+ " 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.",
76367
+ "- Monitor responsibilities each tick:",
76368
+ " • If status begins with `running`: tail -n 20 <log>, post a one-sentence progress line.",
76369
+ " • If status begins with `complete`: post a final summary with rc and tail, then call cron action=remove on this job id.",
76370
+ " • If status begins with `aborted`: post a failure summary with signal and tail, then call cron action=remove.",
76371
+ " • Never leave stale monitors running after the task finishes."
76372
+ ].join("\n");
76373
+ }
76374
+
76304
76375
  //#endregion
76305
76376
  //#region src/agents/pi-embedded-runner/session-manager-init.ts
76306
76377
  /**
@@ -77107,7 +77178,12 @@ async function runEmbeddedAttempt(params) {
77107
77178
  const profileModelKey = params.modelId ?? "";
77108
77179
  const modelProfile = resolveModelProfile(profileModelKey, params.config?.models?.profiles);
77109
77180
  log$9.debug(`[profile] resolved: modelId=${profileModelKey} → profile=${modelProfile.label} validateToolArgs=${modelProfile.filters?.validateToolArgs ?? false}`);
77110
- const systemPromptText = createSystemPromptOverride(appendPrompt + (modelProfile.promptAdditions.length > 0 ? "\n\n" + modelProfile.promptAdditions.join("\n") : ""))();
77181
+ const profilePromptSuffix = modelProfile.promptAdditions.length > 0 ? "\n\n" + modelProfile.promptAdditions.join("\n") : "";
77182
+ const systemPromptText = createSystemPromptOverride(appendPrompt + await buildLongTaskPromptSuffix({
77183
+ argv1: process.argv[1],
77184
+ cwd: process.cwd(),
77185
+ moduleUrl: import.meta.url
77186
+ }) + profilePromptSuffix)();
77111
77187
  const sessionLock = await acquireSessionWriteLock({
77112
77188
  sessionFile: params.sessionFile,
77113
77189
  maxHoldMs: resolveSessionLockMaxHoldFromTimeout({ timeoutMs: params.timeoutMs })
@@ -1,12 +1,12 @@
1
1
  import { y as resolveUserPath } from "./utils-B-0b9bGM.js";
2
2
  import { o as loadPluginManifest, r as discoverSymiPlugins } from "./manifest-registry-C4BxOMWX.js";
3
- import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-DQcRVF1U.js";
4
- import fs from "node:fs/promises";
3
+ import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, t as recordPluginInstall } from "./installs-CYTVYWH_.js";
4
+ import fsPromises from "node:fs/promises";
5
5
 
6
6
  //#region src/plugins/update.ts
7
7
  async function readInstalledPackageVersion(dir) {
8
8
  try {
9
- const raw = await fs.readFile(`${dir}/package.json`, "utf-8");
9
+ const raw = await fsPromises.readFile(`${dir}/package.json`, "utf-8");
10
10
  const parsed = JSON.parse(raw);
11
11
  return typeof parsed.version === "string" ? parsed.version : void 0;
12
12
  } catch {
@@ -2,7 +2,7 @@ import { t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
2
2
  import { n as fetchWithTimeout } from "./fetch-timeout-Db3da8yR.js";
3
3
  import { r as parseSemver } from "./runtime-guard-Dik20CVM.js";
4
4
  import path from "node:path";
5
- import fs from "node:fs/promises";
5
+ import fsPromises from "node:fs/promises";
6
6
 
7
7
  //#region src/infra/update-channels.ts
8
8
  const DEFAULT_PACKAGE_CHANNEL = "stable";
@@ -86,11 +86,11 @@ function resolveUpdateChannelDisplay(params) {
86
86
  //#region src/infra/detect-package-manager.ts
87
87
  async function detectPackageManager$1(root) {
88
88
  try {
89
- const raw = await fs.readFile(path.join(root, "package.json"), "utf-8");
89
+ const raw = await fsPromises.readFile(path.join(root, "package.json"), "utf-8");
90
90
  const pm = JSON.parse(raw)?.packageManager?.split("@")[0]?.trim();
91
91
  if (pm === "pnpm" || pm === "bun" || pm === "npm") return pm;
92
92
  } catch {}
93
- const files = await fs.readdir(root).catch(() => []);
93
+ const files = await fsPromises.readdir(root).catch(() => []);
94
94
  if (files.includes("pnpm-lock.yaml")) return "pnpm";
95
95
  if (files.includes("bun.lockb")) return "bun";
96
96
  if (files.includes("package-lock.json")) return "npm";
@@ -112,7 +112,7 @@ function formatGitInstallLabel(update) {
112
112
  }
113
113
  async function exists(p) {
114
114
  try {
115
- await fs.access(p);
115
+ await fsPromises.access(p);
116
116
  return true;
117
117
  } catch {
118
118
  return false;
@@ -239,7 +239,7 @@ async function checkGitUpdateStatus(params) {
239
239
  }
240
240
  async function statMtimeMs(p) {
241
241
  try {
242
- return (await fs.stat(p)).mtimeMs;
242
+ return (await fsPromises.stat(p)).mtimeMs;
243
243
  } catch {
244
244
  return null;
245
245
  }
@@ -17,7 +17,7 @@ import "./client-T3qcxXru.js";
17
17
  import "./call-DKi-hnaF.js";
18
18
  import "./message-channel-C9dERklz.js";
19
19
  import "./pairing-token-Byh6drgn.js";
20
- import { Ct as trimLogTail } from "./subagent-registry-BPwn3Qm7.js";
20
+ import { Ct as trimLogTail } from "./subagent-registry-CzS4CfnV.js";
21
21
  import "./sessions-Cfa6JEB3.js";
22
22
  import "./tokens-Csntmwwn.js";
23
23
  import "./plugins-CwSlLxM8.js";
@@ -112,10 +112,10 @@ import "./npm-registry-spec-DkaZNHAW.js";
112
112
  import "./skill-scanner-BGWOBqLY.js";
113
113
  import "./installs-CgQpVncj.js";
114
114
  import "./channels-status-issues-c7qZbYG5.js";
115
- import "./register.subclis-Crt_IYK0.js";
116
- import "./command-registry-BoEw2RzH.js";
115
+ import "./register.subclis-CVQASXaL.js";
116
+ import "./command-registry-BvpLfzl7.js";
117
117
  import "./program-context-CqzR_m-7.js";
118
- import { r as installCompletion } from "./completion-cli-CQVZGJPg.js";
118
+ import { r as installCompletion } from "./completion-cli-CfRZ-7QF.js";
119
119
  import "./daemon-runtime-CVFg-ZmT.js";
120
120
  import { r as parseSemver } from "./runtime-guard-D7waq_Ho.js";
121
121
  import "./systemd-DlMdyFDY.js";
@@ -125,19 +125,19 @@ import "./systemd-hints-DT6cDIM2.js";
125
125
  import { i as runDaemonInstall, r as runDaemonRestart } from "./daemon-cli-DhJYEAoL.js";
126
126
  import "./diagnostics-CS1ov_hH.js";
127
127
  import { t as renderTable } from "./table-D01d2GuY.js";
128
- import "./health-q7706M36.js";
128
+ import "./health-DQEqLYg1.js";
129
129
  import "./control-ui-assets-BseSWee1.js";
130
130
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, m as normalizeUpdateChannel, n as compareSemverStrings, r as fetchNpmTagVersion, s as DEFAULT_GIT_CHANNEL, t as checkUpdateStatus, u as channelToNpmTag } from "./update-check-ZdimP1aU.js";
131
131
  import "./dm-policy-shared-DJ-61hCT.js";
132
132
  import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-C2GN8s9C.js";
133
- import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-CG_kbbGR.js";
133
+ import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-JcdOHr71.js";
134
134
  import "./logging-BGewRZy0.js";
135
135
  import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-DEMKx4eC.js";
136
136
  import "./doctor-config-flow-DhAYwhNB.js";
137
137
  import "./systemd-linger-DA_LW52P.js";
138
138
  import "./health-format-CzgUHmmX.js";
139
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-Dql_0SI0.js";
140
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CHF_TwGQ.js";
139
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-D8LXSUR7.js";
140
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-oQemZItC.js";
141
141
  import { spawn, spawnSync } from "node:child_process";
142
142
  import os from "node:os";
143
143
  import path from "node:path";