@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,7 +4,7 @@ import { s as resolveSessionTranscriptsDirForAgent } from "./paths-CyhzMxFA.js";
4
4
  import { createRequire } from "node:module";
5
5
  import fs from "node:fs";
6
6
  import path from "node:path";
7
- import fs$1 from "node:fs/promises";
7
+ import fsPromises from "node:fs/promises";
8
8
  import crypto from "node:crypto";
9
9
 
10
10
  //#region src/utils/run-with-concurrency.ts
@@ -55,7 +55,7 @@ function isFileMissingError(err) {
55
55
  async function statRegularFile(absPath) {
56
56
  let stat;
57
57
  try {
58
- stat = await fs$1.lstat(absPath);
58
+ stat = await fsPromises.lstat(absPath);
59
59
  } catch (err) {
60
60
  if (isFileMissingError(err)) return { missing: true };
61
61
  throw err;
@@ -90,7 +90,7 @@ function isMemoryPath(relPath) {
90
90
  return normalized.startsWith("memory/");
91
91
  }
92
92
  async function walkDir(dir, files) {
93
- const entries = await fs$1.readdir(dir, { withFileTypes: true });
93
+ const entries = await fsPromises.readdir(dir, { withFileTypes: true });
94
94
  for (const entry of entries) {
95
95
  const full = path.join(dir, entry.name);
96
96
  if (entry.isSymbolicLink()) continue;
@@ -110,7 +110,7 @@ async function listMemoryFiles(workspaceDir, extraPaths) {
110
110
  const memoryDir = path.join(workspaceDir, "memory");
111
111
  const addMarkdownFile = async (absPath) => {
112
112
  try {
113
- const stat = await fs$1.lstat(absPath);
113
+ const stat = await fsPromises.lstat(absPath);
114
114
  if (stat.isSymbolicLink() || !stat.isFile()) return;
115
115
  if (!absPath.endsWith(".md")) return;
116
116
  result.push(absPath);
@@ -119,12 +119,12 @@ async function listMemoryFiles(workspaceDir, extraPaths) {
119
119
  await addMarkdownFile(memoryFile);
120
120
  await addMarkdownFile(altMemoryFile);
121
121
  try {
122
- const dirStat = await fs$1.lstat(memoryDir);
122
+ const dirStat = await fsPromises.lstat(memoryDir);
123
123
  if (!dirStat.isSymbolicLink() && dirStat.isDirectory()) await walkDir(memoryDir, result);
124
124
  } catch {}
125
125
  const normalizedExtraPaths = normalizeExtraMemoryPaths(workspaceDir, extraPaths);
126
126
  if (normalizedExtraPaths.length > 0) for (const inputPath of normalizedExtraPaths) try {
127
- const stat = await fs$1.lstat(inputPath);
127
+ const stat = await fsPromises.lstat(inputPath);
128
128
  if (stat.isSymbolicLink()) continue;
129
129
  if (stat.isDirectory()) {
130
130
  await walkDir(inputPath, result);
@@ -138,7 +138,7 @@ async function listMemoryFiles(workspaceDir, extraPaths) {
138
138
  for (const entry of result) {
139
139
  let key = entry;
140
140
  try {
141
- key = await fs$1.realpath(entry);
141
+ key = await fsPromises.realpath(entry);
142
142
  } catch {}
143
143
  if (seen.has(key)) continue;
144
144
  seen.add(key);
@@ -152,14 +152,14 @@ function hashText(value) {
152
152
  async function buildFileEntry(absPath, workspaceDir) {
153
153
  let stat;
154
154
  try {
155
- stat = await fs$1.stat(absPath);
155
+ stat = await fsPromises.stat(absPath);
156
156
  } catch (err) {
157
157
  if (isFileMissingError(err)) return null;
158
158
  throw err;
159
159
  }
160
160
  let content;
161
161
  try {
162
- content = await fs$1.readFile(absPath, "utf-8");
162
+ content = await fsPromises.readFile(absPath, "utf-8");
163
163
  } catch (err) {
164
164
  if (isFileMissingError(err)) return null;
165
165
  throw err;
@@ -293,7 +293,7 @@ const log = createSubsystemLogger("memory");
293
293
  async function listSessionFilesForAgent(agentId) {
294
294
  const dir = resolveSessionTranscriptsDirForAgent(agentId);
295
295
  try {
296
- return (await fs$1.readdir(dir, { withFileTypes: true })).filter((entry) => entry.isFile()).map((entry) => entry.name).filter((name) => name.endsWith(".jsonl")).map((name) => path.join(dir, name));
296
+ return (await fsPromises.readdir(dir, { withFileTypes: true })).filter((entry) => entry.isFile()).map((entry) => entry.name).filter((name) => name.endsWith(".jsonl")).map((name) => path.join(dir, name));
297
297
  } catch {
298
298
  return [];
299
299
  }
@@ -323,8 +323,8 @@ function extractSessionText(content) {
323
323
  }
324
324
  async function buildSessionEntry(absPath) {
325
325
  try {
326
- const stat = await fs$1.stat(absPath);
327
- const lines = (await fs$1.readFile(absPath, "utf-8")).split("\n");
326
+ const stat = await fsPromises.stat(absPath);
327
+ const lines = (await fsPromises.readFile(absPath, "utf-8")).split("\n");
328
328
  const collected = [];
329
329
  const lineMap = [];
330
330
  for (let jsonlIdx = 0; jsonlIdx < lines.length; jsonlIdx++) {
@@ -9,7 +9,7 @@ import { c as resolveAgentWorkspaceDir } from "./agent-scope-D-jRCY0d.js";
9
9
  import { t as buildWorkspaceSkillStatus } from "./skills-status-DKXJ-tbi.js";
10
10
  import { H as VERSION, i as loadConfig, o as readConfigFileSnapshot } from "./config-BNTB6qj8.js";
11
11
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-DKi-hnaF.js";
12
- import { En as peekSystemEvents, St as summarizeRestartSentinel, cn as buildChannelAccountSnapshot, in as formatUsageReportLines, ln as formatChannelAllowFrom, nt as sha256HexPrefix, rn as loadProviderUsageSummary, sn as buildChannelSummary, xt as readRestartSentinel } from "./subagent-registry-BPwn3Qm7.js";
12
+ import { En as peekSystemEvents, St as summarizeRestartSentinel, cn as buildChannelAccountSnapshot, in as formatUsageReportLines, ln as formatChannelAllowFrom, nt as sha256HexPrefix, rn as loadProviderUsageSummary, sn as buildChannelSummary, xt as readRestartSentinel } from "./subagent-registry-CzS4CfnV.js";
13
13
  import { F as resolveMainSessionKey, j as resolveFreshSessionTotalTokens, o as loadSessionStore } from "./sessions-Cfa6JEB3.js";
14
14
  import { n as listChannelPlugins } from "./plugins-CwSlLxM8.js";
15
15
  import { o as getTailnetHostname, s as readTailscaleStatusJson } from "./tailscale-CbbvYNVw.js";
@@ -29,7 +29,7 @@ import { t as formatRuntimeStatusWithDetails } from "./runtime-status-hFVEC3wO.j
29
29
  import { t as readLastGatewayErrorLine } from "./diagnostics-CS1ov_hH.js";
30
30
  import { t as renderTable } from "./table-D01d2GuY.js";
31
31
  import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-BjI_Yyr5.js";
32
- import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-q7706M36.js";
32
+ import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-DQEqLYg1.js";
33
33
  import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-ZdimP1aU.js";
34
34
  import { t as resolveNodeService } from "./node-service-fcZExd22.js";
35
35
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-DVLB9DNB.js";
@@ -1,7 +1,7 @@
1
1
  import { o as createSubsystemLogger } from "./entry.js";
2
2
  import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
3
3
  import { i as loadConfig } from "./config-BNTB6qj8.js";
4
- import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-BPwn3Qm7.js";
4
+ import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-CzS4CfnV.js";
5
5
 
6
6
  //#region src/plugins/status.ts
7
7
  const log = createSubsystemLogger("plugins");
@@ -1,7 +1,7 @@
1
- import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-CjYJHt_H.js";
1
+ import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-CpNWtuU4.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
3
- import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
4
- import { i as loadConfig } from "./config-Dz95lSBW.js";
3
+ import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-BRwEc2pG.js";
4
+ import { i as loadConfig } from "./config-tNauHpdq.js";
5
5
 
6
6
  //#region src/plugins/status.ts
7
7
  const log = createSubsystemLogger("plugins");
@@ -1,42 +1,42 @@
1
1
  import { u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, k as info, z as isRich } from "./utils-B-0b9bGM.js";
3
- import { B as summarizeRestartSentinel, Jt as sha256HexPrefix, _t as formatUsageReportLines, a as buildChannelSummary, gt as loadProviderUsageSummary, h as listAgentsForGateway, m as classifySessionKey, o as buildChannelAccountSnapshot, pr as lookupContextTokens, s as formatChannelAllowFrom, wr as peekSystemEvents, x as resolveSessionModelRef, z as readRestartSentinel } from "./reply-CjYJHt_H.js";
3
+ import { B as summarizeRestartSentinel, Jt as sha256HexPrefix, _t as formatUsageReportLines, a as buildChannelSummary, gt as loadProviderUsageSummary, h as listAgentsForGateway, m as classifySessionKey, o as buildChannelAccountSnapshot, pr as lookupContextTokens, s as formatChannelAllowFrom, wr as peekSystemEvents, x as resolveSessionModelRef, z as readRestartSentinel } from "./reply-CpNWtuU4.js";
4
4
  import { S as parseAgentSessionKey } from "./session-key-DCt45XZa.js";
5
- import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
5
+ import { t as resolveSymiPackageRoot } from "./symi-root-MF6_6SCS.js";
6
6
  import { n as runExec } from "./exec-CWkblSrI.js";
7
- import { c as resolveAgentWorkspaceDir } from "./agent-scope-CgUHAtCo.js";
8
- import { Gt as DEFAULT_MODEL, Kt as DEFAULT_PROVIDER, Wt as DEFAULT_CONTEXT_TOKENS, p as resolveConfiguredModelRef } from "./model-selection-CyFvYcRt.js";
7
+ import { c as resolveAgentWorkspaceDir } from "./agent-scope-BRwEc2pG.js";
8
+ import { Gt as DEFAULT_MODEL, Kt as DEFAULT_PROVIDER, Wt as DEFAULT_CONTEXT_TOKENS, p as resolveConfiguredModelRef } from "./model-selection-X1oLh3CE.js";
9
9
  import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
10
- import { H as VERSION, i as loadConfig, o as readConfigFileSnapshot } from "./config-Dz95lSBW.js";
10
+ import { H as VERSION, i as loadConfig, o as readConfigFileSnapshot } from "./config-tNauHpdq.js";
11
11
  import { o as getTailnetHostname, s as readTailscaleStatusJson } from "./tailscale-D5dKabOc.js";
12
- import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-BOmtxoTv.js";
13
- import { H as resolveMainSessionKey, R as resolveFreshSessionTotalTokens, o as loadSessionStore } from "./sessions-Cpgnq0pA.js";
14
- import { n as listChannelPlugins } from "./plugins-DKDeQZF0.js";
12
+ import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-OZQlocB7.js";
13
+ import { H as resolveMainSessionKey, R as resolveFreshSessionTotalTokens, o as loadSessionStore } from "./sessions-jTAGYjWl.js";
14
+ import { n as listChannelPlugins } from "./plugins-BAyxWQSz.js";
15
15
  import { c as resolveStorePath } from "./paths-CyhzMxFA.js";
16
- import { r as getMemorySearchManager } from "./memory-cli-DDumUksr.js";
17
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-DwpGquzW.js";
16
+ import { r as getMemorySearchManager } from "./memory-cli-DhkRAIdT.js";
17
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-tmHtVCkn.js";
18
18
  import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
19
19
  import { n as withProgress } from "./progress-jIePzvGA.js";
20
20
  import { r as formatDurationPrecise } from "./format-duration-D0B0Uo-I.js";
21
- import { o as getRemoteSkillEligibility } from "./skill-commands-Cxw-jNxU.js";
22
- import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-DFvWPFhU.js";
23
- import { t as buildWorkspaceSkillStatus } from "./skills-status-C3ptXwnh.js";
21
+ import { o as getRemoteSkillEligibility } from "./skill-commands-ZXbEITKi.js";
22
+ import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-CdPNw25E.js";
23
+ import { t as buildWorkspaceSkillStatus } from "./skills-status-Cjsh8we0.js";
24
24
  import { t as resolveChannelDefaultAccountId } from "./helpers-DnjQ73f_.js";
25
- import { t as collectChannelStatusIssues } from "./channels-status-issues-CJ0Vb_9z.js";
26
- import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-osK70kTZ.js";
25
+ import { t as collectChannelStatusIssues } from "./channels-status-issues-B_PI3nEE.js";
26
+ import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-D80PyJxB.js";
27
27
  import { t as formatRuntimeStatusWithDetails } from "./runtime-status-D6c3G7my.js";
28
- import { t as readLastGatewayErrorLine } from "./diagnostics-BRwihzJG.js";
28
+ import { t as readLastGatewayErrorLine } from "./diagnostics-BrUo0gqs.js";
29
29
  import { t as renderTable } from "./table-BKlH0YlA.js";
30
- import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-DB9YkTVX.js";
31
- import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-en2N_Kqc.js";
32
- import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-7EzEjSzb.js";
33
- import { t as resolveNodeService } from "./node-service-CD47Qpf1.js";
30
+ import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-Djfdh06o.js";
31
+ import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-o847FIt1.js";
32
+ import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-DCo5RtKp.js";
33
+ import { t as resolveNodeService } from "./node-service-CXzMs782.js";
34
34
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-B0yJsjEo.js";
35
- import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, r as getUpdateCheckResult, t as formatUpdateAvailableHint } from "./status.update-CG0ciGaf.js";
35
+ import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, r as getUpdateCheckResult, t as formatUpdateAvailableHint } from "./status.update-TlYwuzTa.js";
36
36
  import fs from "node:fs";
37
37
  import os from "node:os";
38
38
  import path from "node:path";
39
- import fs$1 from "node:fs/promises";
39
+ import fsPromises from "node:fs/promises";
40
40
  import { spawnSync } from "node:child_process";
41
41
 
42
42
  //#region src/commands/gateway-presence.ts
@@ -125,7 +125,7 @@ function resolveOsSummary() {
125
125
  //#region src/commands/status-all/agents.ts
126
126
  async function fileExists$1(p) {
127
127
  try {
128
- await fs$1.access(p);
128
+ await fsPromises.access(p);
129
129
  return true;
130
130
  } catch {
131
131
  return false;
@@ -490,7 +490,7 @@ async function buildChannelsTable(cfg, opts) {
490
490
  //#endregion
491
491
  //#region src/commands/status-all/gateway.ts
492
492
  async function readFileTailLines(filePath, maxLines) {
493
- const raw = await fs$1.readFile(filePath, "utf8").catch(() => "");
493
+ const raw = await fsPromises.readFile(filePath, "utf8").catch(() => "");
494
494
  if (!raw.trim()) return [];
495
495
  const lines = raw.replace(/\r/g, "").split("\n");
496
496
  return lines.slice(Math.max(0, lines.length - maxLines)).map((line) => line.trimEnd()).filter((line) => line.trim().length > 0);
@@ -1256,7 +1256,7 @@ function resolveGatewayProbeAuth(cfg) {
1256
1256
  //#region src/commands/status.agent-local.ts
1257
1257
  async function fileExists(p) {
1258
1258
  try {
1259
- await fs$1.access(p);
1259
+ await fsPromises.access(p);
1260
1260
  return true;
1261
1261
  } catch {
1262
1262
  return false;
@@ -1,7 +1,7 @@
1
- import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
1
+ import { t as resolveSymiPackageRoot } from "./symi-root-MF6_6SCS.js";
2
2
  import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
3
- import { H as VERSION } from "./config-Dz95lSBW.js";
4
- import { n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-7EzEjSzb.js";
3
+ import { H as VERSION } from "./config-tNauHpdq.js";
4
+ import { n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-DCo5RtKp.js";
5
5
 
6
6
  //#region src/commands/status.update.ts
7
7
  async function getUpdateCheckResult(params) {
@@ -1,8 +1,8 @@
1
1
  import { g as resolveConfigDir } from "./utils-B-0b9bGM.js";
2
- import { c as detectMime, l as extensionForMime } from "./image-ops-1OJMSAUX.js";
2
+ import { c as detectMime, l as extensionForMime } from "./image-ops-DYbDWaIA.js";
3
3
  import { createWriteStream } from "node:fs";
4
4
  import path from "node:path";
5
- import fs$1 from "node:fs/promises";
5
+ import fsPromises from "node:fs/promises";
6
6
  import crypto from "node:crypto";
7
7
  import { pipeline } from "node:stream/promises";
8
8
 
@@ -26,7 +26,7 @@ function getMediaDir() {
26
26
  }
27
27
  async function ensureMediaDir() {
28
28
  const mediaDir = resolveMediaDir();
29
- await fs$1.mkdir(mediaDir, {
29
+ await fsPromises.mkdir(mediaDir, {
30
30
  recursive: true,
31
31
  mode: 448
32
32
  });
@@ -35,7 +35,7 @@ async function ensureMediaDir() {
35
35
  async function saveMediaBuffer(buffer, contentType, subdir = "inbound", maxBytes = MAX_BYTES, originalFilename) {
36
36
  if (buffer.byteLength > maxBytes) throw new Error(`Media exceeds ${(maxBytes / (1024 * 1024)).toFixed(0)}MB limit`);
37
37
  const dir = path.join(resolveMediaDir(), subdir);
38
- await fs$1.mkdir(dir, {
38
+ await fsPromises.mkdir(dir, {
39
39
  recursive: true,
40
40
  mode: 448
41
41
  });
@@ -53,7 +53,7 @@ async function saveMediaBuffer(buffer, contentType, subdir = "inbound", maxBytes
53
53
  id = sanitized ? `${sanitized}---${uuid}${ext}` : `${uuid}${ext}`;
54
54
  } else id = ext ? `${uuid}${ext}` : uuid;
55
55
  const dest = path.join(dir, id);
56
- await fs$1.writeFile(dest, buffer, { mode: 384 });
56
+ await fsPromises.writeFile(dest, buffer, { mode: 384 });
57
57
  return {
58
58
  id,
59
59
  path: dest,
@@ -38847,6 +38847,77 @@ function getHistoryLimitFromSessionKey(sessionKey, config) {
38847
38847
  */
38848
38848
  const getDmHistoryLimitFromSessionKey = getHistoryLimitFromSessionKey;
38849
38849
 
38850
+ //#endregion
38851
+ //#region src/agents/pi-embedded-runner/long-task-prompt.ts
38852
+ const SCRIPT_REL_PATH = "skills/long-task/scripts/detach-task.sh";
38853
+ let cachedScriptPath;
38854
+ function isExecutable(candidatePath) {
38855
+ try {
38856
+ fs.accessSync(candidatePath, fs.constants.X_OK);
38857
+ return true;
38858
+ } catch {
38859
+ return false;
38860
+ }
38861
+ }
38862
+ /**
38863
+ * Ensure the script is present AND has the exec bit. npm usually preserves
38864
+ * mode 100755 on pack/install, but a subset of filesystems (FAT32, some
38865
+ * container mounts) silently drop it. If the bit is missing, we try to set
38866
+ * it; on failure we return null rather than emit a prompt that would break
38867
+ * when the model tries to exec the script.
38868
+ */
38869
+ async function resolveDetachScriptPath(params) {
38870
+ if (cachedScriptPath !== void 0) return cachedScriptPath;
38871
+ const packageRoot = await resolveSymiPackageRoot({
38872
+ cwd: params.cwd,
38873
+ argv1: params.argv1,
38874
+ moduleUrl: params.moduleUrl
38875
+ });
38876
+ if (!packageRoot) {
38877
+ cachedScriptPath = null;
38878
+ return null;
38879
+ }
38880
+ const candidate = path.join(packageRoot, SCRIPT_REL_PATH);
38881
+ if (!fs.existsSync(candidate)) {
38882
+ cachedScriptPath = null;
38883
+ return null;
38884
+ }
38885
+ if (!isExecutable(candidate)) try {
38886
+ fs.chmodSync(candidate, 493);
38887
+ } catch {
38888
+ cachedScriptPath = null;
38889
+ return null;
38890
+ }
38891
+ cachedScriptPath = candidate;
38892
+ return cachedScriptPath;
38893
+ }
38894
+ async function buildLongTaskPromptSuffix(params) {
38895
+ const scriptPath = await resolveDetachScriptPath(params);
38896
+ if (!scriptPath) return "";
38897
+ return "\n\n" + [
38898
+ "LONG-RUNNING TASK PATTERN:",
38899
+ "- 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.",
38900
+ "- 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.",
38901
+ `- Detach pattern: exec \`${scriptPath} <task-id> <workdir> <command...>\`.`,
38902
+ " • task-id: alphanumeric + dot/dash/underscore, 1–60 chars, must not start with '.' or '-'.",
38903
+ " • workdir: absolute path you own (e.g. the agent workspace).",
38904
+ " • Script spawns under setsid+nohup+disown, writes task-<id>.{pid,cmd,started,log,status} files.",
38905
+ "- 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.",
38906
+ "- Register a cron monitor using the `cron` tool with action=add. Required fields:",
38907
+ " • schedule: { kind: \"interval\", ms: 180000 } (every 3 minutes; minimum 60000)",
38908
+ " • payload: { kind: \"agent\", sessionTarget: \"isolated\", text: <job prompt> }",
38909
+ " 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.",
38910
+ "- Safe status read (inside the monitor turn):",
38911
+ " `status=$(cat \"<workdir>/task-<id>.status\" 2>/dev/null || echo missing)`",
38912
+ " 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.",
38913
+ "- Monitor responsibilities each tick:",
38914
+ " • If status begins with `running`: tail -n 20 <log>, post a one-sentence progress line.",
38915
+ " • If status begins with `complete`: post a final summary with rc and tail, then call cron action=remove on this job id.",
38916
+ " • If status begins with `aborted`: post a failure summary with signal and tail, then call cron action=remove.",
38917
+ " • Never leave stale monitors running after the task finishes."
38918
+ ].join("\n");
38919
+ }
38920
+
38850
38921
  //#endregion
38851
38922
  //#region src/agents/pi-embedded-runner/runs.ts
38852
38923
  const ACTIVE_EMBEDDED_RUNS = /* @__PURE__ */ new Map();
@@ -39900,7 +39971,12 @@ async function runEmbeddedAttempt(params) {
39900
39971
  const profileModelKey = params.modelId ?? "";
39901
39972
  const modelProfile = resolveModelProfile(profileModelKey, params.config?.models?.profiles);
39902
39973
  log$5.debug(`[profile] resolved: modelId=${profileModelKey} → profile=${modelProfile.label} validateToolArgs=${modelProfile.filters?.validateToolArgs ?? false}`);
39903
- const systemPromptText = createSystemPromptOverride(appendPrompt + (modelProfile.promptAdditions.length > 0 ? "\n\n" + modelProfile.promptAdditions.join("\n") : ""))();
39974
+ const profilePromptSuffix = modelProfile.promptAdditions.length > 0 ? "\n\n" + modelProfile.promptAdditions.join("\n") : "";
39975
+ const systemPromptText = createSystemPromptOverride(appendPrompt + await buildLongTaskPromptSuffix({
39976
+ argv1: process.argv[1],
39977
+ cwd: process.cwd(),
39978
+ moduleUrl: import.meta.url
39979
+ }) + profilePromptSuffix)();
39904
39980
  const sessionLock = await acquireSessionWriteLock({
39905
39981
  sessionFile: params.sessionFile,
39906
39982
  maxHoldMs: resolveSessionLockMaxHoldFromTimeout({ timeoutMs: params.timeoutMs })
@@ -53331,7 +53407,7 @@ function isVoiceChannelType(type) {
53331
53407
  function createDefaultDeps() {
53332
53408
  return {
53333
53409
  sendMessageWhatsApp: async (...args) => {
53334
- const { sendMessageWhatsApp } = await import("./web-DCBOD-Vj.js");
53410
+ const { sendMessageWhatsApp } = await import("./web-BIzWZFiN.js");
53335
53411
  return await sendMessageWhatsApp(...args);
53336
53412
  },
53337
53413
  sendMessageTelegram: async (...args) => {
@@ -68645,7 +68721,7 @@ function loadWebLoginQr() {
68645
68721
  return webLoginQrPromise;
68646
68722
  }
68647
68723
  function loadWebChannel() {
68648
- webChannelPromise ??= import("./web-DCBOD-Vj.js");
68724
+ webChannelPromise ??= import("./web-BIzWZFiN.js");
68649
68725
  return webChannelPromise;
68650
68726
  }
68651
68727
  function loadWhatsAppActions() {
@@ -1,7 +1,7 @@
1
1
  import { fileURLToPath } from "node:url";
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
- import fs$1 from "node:fs/promises";
4
+ import fsPromises from "node:fs/promises";
5
5
 
6
6
  //#region src/agents/skills/filter.ts
7
7
  function normalizeSkillFilter(skillFilter) {
@@ -26,7 +26,7 @@ function matchesSkillFilter(cached, next) {
26
26
  const CORE_PACKAGE_NAMES = new Set(["symi", "@symerian/symi"]);
27
27
  async function readPackageName(dir) {
28
28
  try {
29
- const raw = await fs$1.readFile(path.join(dir, "package.json"), "utf-8");
29
+ const raw = await fsPromises.readFile(path.join(dir, "package.json"), "utf-8");
30
30
  const parsed = JSON.parse(raw);
31
31
  return typeof parsed.name === "string" ? parsed.name : null;
32
32
  } catch {
@@ -3,20 +3,20 @@ import { B as theme, O as danger } from "./utils-B-0b9bGM.js";
3
3
  import "./registry-Cja8eT7G.js";
4
4
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
5
5
  import "./exec-CWkblSrI.js";
6
- import "./agent-scope-CgUHAtCo.js";
7
- import "./model-selection-CyFvYcRt.js";
6
+ import "./agent-scope-BRwEc2pG.js";
7
+ import "./model-selection-X1oLh3CE.js";
8
8
  import "./github-copilot-token-DAu1a6BX.js";
9
9
  import "./boolean-BsqeuxE6.js";
10
10
  import "./env-DPCHYPeH.js";
11
11
  import "./message-channel-aT-I_DTX.js";
12
- import "./config-Dz95lSBW.js";
12
+ import "./config-tNauHpdq.js";
13
13
  import "./manifest-registry-C4BxOMWX.js";
14
- import "./client-jI1oE0_k.js";
15
- import "./call-DwpGquzW.js";
16
- import "./pairing-token-CX3NN_qj.js";
14
+ import "./client-Bj_vTpri.js";
15
+ import "./call-tmHtVCkn.js";
16
+ import "./pairing-token-AV-MMfVE.js";
17
17
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
18
18
  import "./progress-jIePzvGA.js";
19
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-5fREQe9Q.js";
19
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-B1Wzoj99.js";
20
20
 
21
21
  //#region src/cli/system-cli.ts
22
22
  const normalizeWakeMode = (raw) => {
@@ -3,7 +3,7 @@ import { n as runExec, t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
3
3
  import { d as resolveGatewaySystemdServiceName, l as resolveGatewayProfileSuffix, u as resolveGatewayServiceDescription } from "./constants-CafH8-8D.js";
4
4
  import os from "node:os";
5
5
  import path from "node:path";
6
- import fs from "node:fs/promises";
6
+ import fsPromises from "node:fs/promises";
7
7
  import { execFile } from "node:child_process";
8
8
 
9
9
  //#region src/daemon/exec-file.ts
@@ -289,7 +289,7 @@ function resolveSystemdUserUnitPath(env) {
289
289
  async function readSystemdServiceExecStart(env) {
290
290
  const unitPath = resolveSystemdUnitPath(env);
291
291
  try {
292
- const content = await fs.readFile(unitPath, "utf8");
292
+ const content = await fsPromises.readFile(unitPath, "utf8");
293
293
  let execStart = "";
294
294
  let workingDirectory = "";
295
295
  const environment = {};
@@ -360,7 +360,7 @@ async function assertSystemdAvailable() {
360
360
  async function installSystemdService({ env, stdout, programArguments, workingDirectory, environment, description }) {
361
361
  await assertSystemdAvailable();
362
362
  const unitPath = resolveSystemdUnitPath(env);
363
- await fs.mkdir(path.dirname(unitPath), { recursive: true });
363
+ await fsPromises.mkdir(path.dirname(unitPath), { recursive: true });
364
364
  const unit = buildSystemdUnit({
365
365
  description: resolveGatewayServiceDescription({
366
366
  env,
@@ -371,7 +371,7 @@ async function installSystemdService({ env, stdout, programArguments, workingDir
371
371
  workingDirectory,
372
372
  environment
373
373
  });
374
- await fs.writeFile(unitPath, unit, "utf8");
374
+ await fsPromises.writeFile(unitPath, unit, "utf8");
375
375
  const unitName = `${resolveGatewaySystemdServiceName(env.SYMI_PROFILE)}.service`;
376
376
  const reload = await execSystemctl(["--user", "daemon-reload"]);
377
377
  if (reload.code !== 0) throw new Error(`systemctl daemon-reload failed: ${reload.stderr || reload.stdout}`.trim());
@@ -403,7 +403,7 @@ async function uninstallSystemdService({ env, stdout }) {
403
403
  ]);
404
404
  const unitPath = resolveSystemdUnitPath(env);
405
405
  try {
406
- await fs.unlink(unitPath);
406
+ await fsPromises.unlink(unitPath);
407
407
  stdout.write(`${formatLine("Removed systemd service", unitPath)}\n`);
408
408
  } catch {
409
409
  stdout.write(`Systemd service not found at ${unitPath}\n`);
@@ -1,10 +1,10 @@
1
1
  import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
2
- import { d as isVersionManagedNodePath, h as resolveSystemNodePath, l as getMinimalServicePathPartsFromEnv, u as isSystemNodePath } from "./daemon-runtime-mE1b-Q48.js";
3
- import { o as resolveSystemdUserUnitPath } from "./systemd-DT6SbCim.js";
4
- import { c as resolveLaunchAgentPlistPath } from "./service-osK70kTZ.js";
2
+ import { d as isVersionManagedNodePath, h as resolveSystemNodePath, l as getMinimalServicePathPartsFromEnv, u as isSystemNodePath } from "./daemon-runtime-u01h46bE.js";
3
+ import { o as resolveSystemdUserUnitPath } from "./systemd-CevHlgD4.js";
4
+ import { c as resolveLaunchAgentPlistPath } from "./service-D80PyJxB.js";
5
5
  import { t as formatRuntimeStatusWithDetails } from "./runtime-status-D6c3G7my.js";
6
6
  import path from "node:path";
7
- import fs from "node:fs/promises";
7
+ import fsPromises from "node:fs/promises";
8
8
 
9
9
  //#region src/daemon/runtime-format.ts
10
10
  function formatRuntimeStatus(runtime) {
@@ -85,7 +85,7 @@ async function auditSystemdUnit(env, issues) {
85
85
  const unitPath = resolveSystemdUserUnitPath(env);
86
86
  let content = "";
87
87
  try {
88
- content = await fs.readFile(unitPath, "utf8");
88
+ content = await fsPromises.readFile(unitPath, "utf8");
89
89
  } catch {
90
90
  return;
91
91
  }
@@ -113,7 +113,7 @@ async function auditLaunchdPlist(env, issues) {
113
113
  const plistPath = resolveLaunchAgentPlistPath(env);
114
114
  let content = "";
115
115
  try {
116
- content = await fs.readFile(plistPath, "utf8");
116
+ content = await fsPromises.readFile(plistPath, "utf8");
117
117
  } catch {
118
118
  return;
119
119
  }
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { t as note } from "./note-DQ9BvHF2.js";
3
- import { d as readSystemdUserLingerStatus, r as isSystemdUserServiceAvailable, u as enableSystemdUserLinger } from "./systemd-DT6SbCim.js";
3
+ import { d as readSystemdUserLingerStatus, r as isSystemdUserServiceAvailable, u as enableSystemdUserLinger } from "./systemd-CevHlgD4.js";
4
4
 
5
5
  //#region src/commands/systemd-linger.ts
6
6
  var systemd_linger_exports = /* @__PURE__ */ __exportAll({
@@ -1,4 +1,4 @@
1
- import { r as markdownToIRWithMeta } from "./ir-DZam9q5M.js";
1
+ import { r as markdownToIRWithMeta } from "./ir-Dt4hOzxG.js";
2
2
  import { t as renderMarkdownWithMarkers } from "./render-CXDO_kgw.js";
3
3
 
4
4
  //#region src/markdown/tables.ts
@@ -1,6 +1,6 @@
1
- import { c as detectMime } from "./image-ops-1OJMSAUX.js";
2
- import { r as sanitizeToolResultImages } from "./tool-images-DvUBlqjX.js";
3
- import fs from "node:fs/promises";
1
+ import { c as detectMime } from "./image-ops-DYbDWaIA.js";
2
+ import { r as sanitizeToolResultImages } from "./tool-images-B-pqX3nX.js";
3
+ import fsPromises from "node:fs/promises";
4
4
 
5
5
  //#region src/agents/tools/common.ts
6
6
  var ToolInputError = class extends Error {
@@ -128,7 +128,7 @@ async function imageResult(params) {
128
128
  }, params.label, params.imageSanitization);
129
129
  }
130
130
  async function imageResultFromFile(params) {
131
- const buf = await fs.readFile(params.path);
131
+ const buf = await fsPromises.readFile(params.path);
132
132
  const mimeType = await detectMime({ buffer: buf.slice(0, 256) }) ?? "image/png";
133
133
  return await imageResult({
134
134
  label: params.label,
@@ -1,5 +1,5 @@
1
1
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
2
- import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-1OJMSAUX.js";
2
+ import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-DYbDWaIA.js";
3
3
 
4
4
  //#region src/agents/image-sanitization.ts
5
5
  const DEFAULT_IMAGE_MAX_DIMENSION_PX = 1200;
@@ -1,15 +1,15 @@
1
1
  import { c as normalizeUsageDisplay, r as listThinkingLevelLabels, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-EAliFiVK.js";
2
2
  import { S as parseAgentSessionKey, c as normalizeMainKey, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-DCt45XZa.js";
3
3
  import { l as stripAnsi, u as visibleWidth } from "./subsystem-D9vIQve0.js";
4
- import { l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
4
+ import { l as resolveDefaultAgentId } from "./agent-scope-BRwEc2pG.js";
5
5
  import { f as GATEWAY_CLIENT_CAPS, h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-aT-I_DTX.js";
6
- import { H as VERSION, i as loadConfig } from "./config-Dz95lSBW.js";
7
- import { _ as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-BgdB5kvy.js";
8
- import { k as stripLeadingInboundMetadata } from "./sessions-Cpgnq0pA.js";
6
+ import { H as VERSION, i as loadConfig } from "./config-tNauHpdq.js";
7
+ import { _ as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-Bs4eMaNo.js";
8
+ import { k as stripLeadingInboundMetadata } from "./sessions-jTAGYjWl.js";
9
9
  import { n as resolveToolDisplay, t as formatToolDetail } from "./tool-display-D8N3rsYt.js";
10
- import { a as listChatCommandsForConfig, i as listChatCommands } from "./commands-registry-BT0-zzs3.js";
11
- import { At as PROTOCOL_VERSION, t as GatewayClient } from "./client-jI1oE0_k.js";
12
- import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-DwpGquzW.js";
10
+ import { a as listChatCommandsForConfig, i as listChatCommands } from "./commands-registry-BZ0ZSQpM.js";
11
+ import { At as PROTOCOL_VERSION, t as GatewayClient } from "./client-Bj_vTpri.js";
12
+ import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-tmHtVCkn.js";
13
13
  import { n as formatTimeAgo, t as formatRelativeTimestamp } from "./format-relative-BXoxEQVN.js";
14
14
  import { n as formatTokenCount } from "./usage-format-BgUx3Bm4.js";
15
15
  import chalk from "chalk";