@symerian/symi 2.8.12 → 2.8.14

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 (229) hide show
  1. package/dist/{accounts-BuZxOb3B.js → accounts-Bsg6r6H7.js} +1 -1
  2. package/dist/{accounts-BRw8yhIW.js → accounts-BsgY6sda.js} +21 -21
  3. package/dist/{accounts-3dCrO3oZ.js → accounts-wWWkC0JH.js} +1 -1
  4. package/dist/{active-listener-BVZOh2T1.js → active-listener-AVNn5_U9.js} +1 -1
  5. package/dist/{agent-scope-CpEJ0B88.js → agent-scope-Cpm7a9ss.js} +3 -3
  6. package/dist/{agents-OAonMxYV.js → agents-DlAvDWxz.js} +4 -4
  7. package/dist/{agents.config-BIhaDwT2.js → agents.config-BKKMbeeE.js} +1 -1
  8. package/dist/{agents.config-DGu_K5xz.js → agents.config-Dd-11klq.js} +1 -1
  9. package/dist/{audio-preflight-Cb-T0r6e.js → audio-preflight-rrz8KyHd.js} +29 -29
  10. package/dist/{audit-Bi9Je9FZ.js → audit-BhCJV2l6.js} +1 -1
  11. package/dist/{audit-Oa5dsn5p.js → audit-CB97BqHJ.js} +1 -1
  12. package/dist/{auth-choice-BvPX7B4c.js → auth-choice-C6woT6k2.js} +1 -1
  13. package/dist/{auth-choice-DDzWns1k.js → auth-choice-CRQRPwQt.js} +1 -1
  14. package/dist/{auth-profiles-C2vj6htZ.js → auth-profiles-BzB_Exeq.js} +17 -17
  15. package/dist/{banner-BFdiq-O5.js → banner-DrNha2_N.js} +1 -1
  16. package/dist/{bindings-BsHoBLIE.js → bindings-xcRox9xM.js} +2 -2
  17. package/dist/build-info.json +3 -3
  18. package/dist/bundled/boot-md/handler.js +54 -54
  19. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  20. package/dist/bundled/command-logger/handler.js +1 -1
  21. package/dist/bundled/session-memory/handler.js +54 -54
  22. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  23. package/dist/{channel-activity-D8QD7GoV.js → channel-activity-CzHaIUAp.js} +1 -1
  24. package/dist/{channel-options-DTqUB0OP.js → channel-options-D8q9En4T.js} +1 -1
  25. package/dist/{channel-options-tfnOGSNF.js → channel-options-DYy2sCfN.js} +1 -1
  26. package/dist/{channel-web-CcUXobcu.js → channel-web-CRBU4eZk.js} +1 -1
  27. package/dist/{channels-cli-CmShA-wJ.js → channels-cli-BUk43hHR.js} +7 -7
  28. package/dist/{channels-cli-BcE5tHIr.js → channels-cli-Dk3kUw9A.js} +7 -7
  29. package/dist/{chrome-ROtrXlNs.js → chrome-DwXnykXR.js} +14 -14
  30. package/dist/{chunk-BRe1o4Af.js → chunk-BcxcL1U3.js} +1 -1
  31. package/dist/{cli-BxoD2wzk.js → cli-5gWsnsB7.js} +4 -4
  32. package/dist/{cli-CKG2iAr3.js → cli-DjZzJy3t.js} +4 -4
  33. package/dist/{command-registry-D1Le-Fmh.js → command-registry-LjFltTU9.js} +10 -10
  34. package/dist/{commands-registry-DxbSTLNQ.js → commands-registry-ByGkL6hs.js} +4 -4
  35. package/dist/{completion-cli-DgiFjSGS.js → completion-cli-BVTGy8th.js} +1 -1
  36. package/dist/{completion-cli-D9pC-ttw.js → completion-cli-Cf6fYZWL.js} +2 -2
  37. package/dist/{config-BkZ9HOKT.js → config-C4WnAd-c.js} +17 -17
  38. package/dist/{config-cli-C_uZQsTl.js → config-cli-C7DIbGxx.js} +1 -1
  39. package/dist/{config-cli-5mFA0UDP.js → config-cli-EgWrCemi.js} +1 -1
  40. package/dist/{configure-BJcy7wXm.js → configure-B67uIawm.js} +3 -3
  41. package/dist/{configure-DuRTFCuW.js → configure-Bk-snuxh.js} +3 -3
  42. package/dist/{consolidate-07QMweFF.js → consolidate-DRtVvG2U.js} +4 -4
  43. package/dist/{deliver-B0OUq6RP.js → deliver-SLYAWE19.js} +20 -20
  44. package/dist/{diagnostic-BUcR3Meg.js → diagnostic-DTkZsRNM.js} +1 -1
  45. package/dist/{doctor-completion-sQVhKKei.js → doctor-completion-By066O3p.js} +1 -1
  46. package/dist/{doctor-completion-DCRTHpiY.js → doctor-completion-lE_33xaY.js} +1 -1
  47. package/dist/entry.js +1 -1
  48. package/dist/{env-BDXYbTKj.js → env-CB65jmJQ.js} +1 -1
  49. package/dist/extensionAPI.js +2 -2
  50. package/dist/{frontmatter-CTR5f_Ez.js → frontmatter-CT1M0pRK.js} +4 -4
  51. package/dist/{gateway-cli-C3ujhxO0.js → gateway-cli-C6uT2x34.js} +182 -13
  52. package/dist/{gateway-cli-C_MT4JFm.js → gateway-cli-DqEgqVKC.js} +182 -13
  53. package/dist/{gemini-auth-BefM10YB.js → gemini-auth-D80BsXr2.js} +1 -1
  54. package/dist/{github-copilot-token-cCYzSU9h.js → github-copilot-token-B8B2pmph.js} +7 -7
  55. package/dist/{glass-ui-ws-ColAiWUr.js → glass-ui-ws-77TY57IO.js} +11 -11
  56. package/dist/{glass-ui-ws-B7zRY2BL.js → glass-ui-ws-CLAUHeZR.js} +11 -11
  57. package/dist/{health-C12hy3Ao.js → health-2jkjZxY8.js} +1 -1
  58. package/dist/{health-vKJZ7iJR.js → health-CvMHgR-L.js} +1 -1
  59. package/dist/{hooks-cli-CdUQvj8s.js → hooks-cli-CRZySOiz.js} +5 -5
  60. package/dist/{hooks-cli-fCPl5hur.js → hooks-cli-DSaezFsD.js} +5 -5
  61. package/dist/{image-BuVL0jHI.js → image-BHF_fnIp.js} +4 -4
  62. package/dist/{image-ops-C7CauEK8.js → image-ops-CY7v6vvp.js} +16 -16
  63. package/dist/index.js +9 -9
  64. package/dist/{internal-DjnxpF_K.js → internal-FNqguZSK.js} +11 -11
  65. package/dist/{ir-7tMVY7D_.js → ir-D6MiJpAy.js} +4 -4
  66. package/dist/llm-slug-generator.js +54 -54
  67. package/dist/{local-roots-ClipCZ9s.js → local-roots-tcdaIEhh.js} +5 -5
  68. package/dist/{login-D4rZWBXe.js → login-D4ZkmSrY.js} +7 -7
  69. package/dist/{login-qr-DdAVHOEC.js → login-qr-C9ftIq3n.js} +12 -12
  70. package/dist/{manager-DHRBy5oR.js → manager-BtWtmpxN.js} +1 -1
  71. package/dist/{manager-CLrJn9l-.js → manager-DDELj5o9.js} +1 -1
  72. package/dist/{manager-BJvYQ7xP.js → manager-DrmlegR2.js} +1 -1
  73. package/dist/{manager-Df_ZdrNG.js → manager-DxCmjSfP.js} +24 -24
  74. package/dist/{manifest-registry-CBCGTsIb.js → manifest-registry-BvGv6lp9.js} +19 -19
  75. package/dist/{markdown-tables-x2Xe2UXh.js → markdown-tables-CE-qSMGB.js} +1 -1
  76. package/dist/{memory-cli-T-a5-lqZ.js → memory-cli-ENCASZJk.js} +3 -3
  77. package/dist/{memory-cli-BgJciaHC.js → memory-cli-Qgbcxvuf.js} +3 -3
  78. package/dist/{message-channel-OlFBYAw8.js → message-channel-lwVT8QjK.js} +1 -1
  79. package/dist/{models-BXXV_sZU.js → models-COhUz7M9.js} +2 -2
  80. package/dist/{models-cli-BI-DyItH.js → models-cli-CCxYcF4R.js} +5 -5
  81. package/dist/{models-cli-Bs6JAGq-.js → models-cli-CYvXBvmZ.js} +6 -6
  82. package/dist/{onboard-Czi_FRdi.js → onboard-CQNUYBIp.js} +2 -2
  83. package/dist/{onboard-channels-sTuhQBVu.js → onboard-channels-9erx07qe.js} +1 -1
  84. package/dist/{onboard-channels-BUCYZF02.js → onboard-channels-CWw8G-6n.js} +1 -1
  85. package/dist/{onboard-DKDCWveE.js → onboard-fVpLVnwg.js} +2 -2
  86. package/dist/{onboarding-Bgx0qZhA.js → onboarding-CtEiH9WG.js} +3 -3
  87. package/dist/{onboarding-CokRRVEi.js → onboarding-D-OIkDwZ.js} +3 -3
  88. package/dist/{onboarding.finalize-BCv5jB0d.js → onboarding.finalize-BY3HNjX4.js} +9 -9
  89. package/dist/{onboarding.finalize-BzEKyraI.js → onboarding.finalize-DTbpLV-T.js} +8 -8
  90. package/dist/{outbound-Zmd7UyQH.js → outbound-C6Gm22UF.js} +7 -7
  91. package/dist/{outbound-attachment-DeCnZT-8.js → outbound-attachment-BWyKV1Gy.js} +2 -2
  92. package/dist/paths-CYmyCDsE.js +212 -0
  93. package/dist/{paths-CbQV9WEg.js → paths-DEuVuViW.js} +1 -1
  94. package/dist/{pi-auth-json-RXOlh8ar.js → pi-auth-json-Bv1NzJdR.js} +1 -1
  95. package/dist/{pi-embedded-DXY7TLac.js → pi-embedded-CdOdQw2i.js} +265 -13
  96. package/dist/{pi-embedded-helpers-D1_Sab0M.js → pi-embedded-helpers-DwQ9wJeT.js} +73 -73
  97. package/dist/{pi-tools.policy-BZrM6a-w.js → pi-tools.policy-Bx5zp45n.js} +2 -0
  98. package/dist/{pi-tools.policy-QIVWAVVI.js → pi-tools.policy-o0ytjRqu.js} +2 -0
  99. package/dist/{plugin-registry-CyrsJDyE.js → plugin-registry-BrJ0-qlu.js} +1 -1
  100. package/dist/{plugin-registry-B2cpTmJz.js → plugin-registry-Cuc8ORuR.js} +1 -1
  101. package/dist/plugin-sdk/agents/pi-embedded-runner/long-task-prompt.d.ts +7 -0
  102. package/dist/plugin-sdk/agents/tools/task-tool.d.ts +7 -0
  103. package/dist/plugin-sdk/{channel-web-t6enTxNE.js → channel-web-t8UOP6Zu.js} +1 -1
  104. package/dist/plugin-sdk/index.js +3 -3
  105. package/dist/plugin-sdk/{manager-LRE7zEk2.js → manager-BPm5oefC.js} +1 -1
  106. package/dist/plugin-sdk/{reply-JypoGhql.js → reply-BKAHTugL.js} +265 -13
  107. package/dist/plugin-sdk/{synthesis-_WpVyZKx.js → synthesis-CVF7Fwhd.js} +2 -2
  108. package/dist/plugin-sdk/{web-BTVj4kiQ.js → web-D0DsmFvw.js} +3 -3
  109. package/dist/{plugins-cli-B-zoQyqU.js → plugins-cli-BDalhI46.js} +5 -5
  110. package/dist/{plugins-cli-DJwRd3EZ.js → plugins-cli-DFmriy-c.js} +5 -5
  111. package/dist/{plugins-BzmbgY7s.js → plugins-v8k1XVOy.js} +9 -9
  112. package/dist/{program-H7h6Iqrq.js → program-DKh41c2a.js} +10 -10
  113. package/dist/{program-context-BgecQAHU.js → program-context-Cq7pqOrw.js} +19 -19
  114. package/dist/{prompt-select-styled-BglmD29e.js → prompt-select-styled-BFCAZLwK.js} +6 -6
  115. package/dist/{prompt-select-styled-BDN2o35i.js → prompt-select-styled-DvvSE_ni.js} +6 -6
  116. package/dist/{provider-auth-helpers-BGIgr7xM.js → provider-auth-helpers-B-LkDxxi.js} +1 -1
  117. package/dist/{provider-auth-helpers-MfKmTeLY.js → provider-auth-helpers-DXppgV1l.js} +1 -1
  118. package/dist/{push-apns-b6bH1EBC.js → push-apns-DCA47WA5.js} +1 -1
  119. package/dist/{push-apns-IcfSTzfr.js → push-apns-DvudhEAb.js} +1 -1
  120. package/dist/{pw-ai-DWkC5eGA.js → pw-ai-XGqnSWju.js} +11 -11
  121. package/dist/{qmd-manager-BXkbA8Y9.js → qmd-manager-CbRJhonG.js} +8 -8
  122. package/dist/{register.agent-ChwMSIC4.js → register.agent-_BV5KyFb.js} +9 -9
  123. package/dist/{register.agent-BgyETrrj.js → register.agent-aFj_SMi3.js} +8 -8
  124. package/dist/{register.configure-DH3L2tqW.js → register.configure-CvOoD5gE.js} +9 -9
  125. package/dist/{register.configure-Bm4CvoLF.js → register.configure-Dx0Uhmlz.js} +9 -9
  126. package/dist/{register.maintenance-BbOBw1eI.js → register.maintenance-BuZpoSik.js} +10 -10
  127. package/dist/{register.maintenance-CAyHUEzP.js → register.maintenance-CMeJR7DG.js} +11 -11
  128. package/dist/{register.message-DheqsiR0.js → register.message-qysZPg3G.js} +5 -5
  129. package/dist/{register.message-DQ3MOWFE.js → register.message-xxGePuRC.js} +5 -5
  130. package/dist/{register.onboard-DOJkUhoY.js → register.onboard-1MP2I0q4.js} +7 -7
  131. package/dist/{register.onboard-CxqR4S1C.js → register.onboard-D4Aow7Gc.js} +7 -7
  132. package/dist/{register.setup-zdrIJA2P.js → register.setup-BT74aXzA.js} +7 -7
  133. package/dist/{register.setup-48YBHzMZ.js → register.setup-DzliKkWh.js} +7 -7
  134. package/dist/{register.status-health-sessions-CeT5pVXb.js → register.status-health-sessions-B3K2gZ72.js} +7 -7
  135. package/dist/{register.status-health-sessions-CimrhScH.js → register.status-health-sessions-D7VYZlrU.js} +7 -7
  136. package/dist/{register.subclis-B-zh940S.js → register.subclis-BCy0IDRv.js} +10 -10
  137. package/dist/{registry-DYq1AYOv.js → registry-X6fUE0K7.js} +19 -19
  138. package/dist/{replies-CUWXgyx2.js → replies-86F3PldM.js} +3 -3
  139. package/dist/{reply-CUR4xpYM.js → reply-Dg1ZU3DZ.js} +263 -13
  140. package/dist/{reply-prefix-CvEIl6_d.js → reply-prefix-CI_IdwqH.js} +1 -1
  141. package/dist/{resolve-route-Jy5dFY67.js → resolve-route-BgSuN9c6.js} +4 -4
  142. package/dist/{retry-B-y5suGA.js → retry-4oEAHckB.js} +1 -1
  143. package/dist/{run-main-CW_kj5Lj.js → run-main-OS2aFAJ2.js} +18 -18
  144. package/dist/{runner-ecX1WzDt.js → runner-B5oNTtgf.js} +22 -22
  145. package/dist/{security-cli-BpnzAB5_.js → security-cli-BadXDWTh.js} +2 -2
  146. package/dist/{security-cli-D9WEiEjD.js → security-cli-D5y28-RH.js} +2 -2
  147. package/dist/{send-DFtnbzqy.js → send-ASDB3AzC.js} +7 -7
  148. package/dist/{send-Bb4it0te.js → send-BTfqlrYd.js} +18 -18
  149. package/dist/{send-C0QjmPaf.js → send-CSydU49L.js} +10 -10
  150. package/dist/{send-Cpk3Ti6-.js → send-Du-IfSne.js} +6 -6
  151. package/dist/{send-BKo1T3HF.js → send-cCTQjuOZ.js} +6 -6
  152. package/dist/{server-methods-C1h0A5n0.js → server-methods-BszFAkbJ.js} +8 -8
  153. package/dist/{server-methods-C4id-H_X.js → server-methods-D_iKJ-sj.js} +8 -8
  154. package/dist/{server-node-events-CD2yDaEj.js → server-node-events-CENHuAVz.js} +5 -5
  155. package/dist/{server-node-events-BPZEGV_N.js → server-node-events-uBu3XOjd.js} +5 -5
  156. package/dist/{session-BTeY6Gn2.js → session-D8qLj_xN.js} +8 -8
  157. package/dist/{skill-commands-DG2lcozb.js → skill-commands-BcOduw6G.js} +16 -16
  158. package/dist/{skills-CXxrn_e2.js → skills-BrYDT4Jr.js} +24 -24
  159. package/dist/{sqlite-BN_hIcmu.js → sqlite-P-gMg7fi.js} +3 -3
  160. package/dist/{status-_xBnHTlx.js → status-BvbJavmh.js} +1 -1
  161. package/dist/{status-DCeW2a07.js → status-CA0mUJld.js} +4 -4
  162. package/dist/{status-Cb932Vl4.js → status-CBnCPUMG.js} +4 -4
  163. package/dist/{status-DvHD1cnq.js → status-DJAeKN4G.js} +1 -1
  164. package/dist/{store-01F_JM7O.js → store-Ceagbc4L.js} +6 -6
  165. package/dist/{subagent-registry-BKuL9PdW.js → subagent-registry-C1OyZl-M.js} +263 -13
  166. package/dist/{subsystem-BjyjJF-d.js → subsystem-CzXhCdeY.js} +1 -1
  167. package/dist/{synthesis-DOiTUsXQ.js → synthesis-DNTyB7JY.js} +2 -2
  168. package/dist/{synthesis-BUqDGjlc.js → synthesis-DuqSkHEr.js} +54 -54
  169. package/dist/{synthesis-C9RputIi.js → synthesis-brHrnNF2.js} +4 -4
  170. package/dist/{synthesis-Ia9egx87.js → synthesis-z5B41p_r.js} +4 -4
  171. package/dist/{tables-DoG-pFrf.js → tables-qbCoZrYA.js} +1 -1
  172. package/dist/{target-errors-DeJTztcq.js → target-errors-uNitqCCT.js} +2 -2
  173. package/dist/{thinking-BprCy23Z.js → thinking-BV7SCNJP.js} +5 -5
  174. package/dist/{tokens-W0JzCJJM.js → tokens-Bl5R3wPD.js} +1 -1
  175. package/dist/{tool-images-SqqWIT22.js → tool-images-JxNglLSr.js} +2 -2
  176. package/dist/{tool-loop-detection-Dj9h1ogr.js → tool-loop-detection-dfE771kg.js} +3 -3
  177. package/dist/{unified-runner-CVItnwwP.js → unified-runner-Czg3pdBc.js} +489 -237
  178. package/dist/{update-cli-ChEABesZ.js → update-cli-0lyGyl31.js} +11 -11
  179. package/dist/{update-cli-D6ax3jSX.js → update-cli-CIzkVfmj.js} +10 -10
  180. package/dist/{update-runner-B2EY9BWM.js → update-runner-D7-LDziQ.js} +1 -1
  181. package/dist/{update-runner-CWG6GxKs.js → update-runner-aYPcKYAN.js} +1 -1
  182. package/dist/{web-z-yQ8riS.js → web-B90A99YU.js} +58 -58
  183. package/dist/{web-CpSE67Jp.js → web-BJ5dUZso.js} +5 -5
  184. package/dist/{web-D6PPeyG7.js → web-CN7wnU7w.js} +4 -4
  185. package/dist/{web-DMdb2p-h.js → web-Wk1ay1eQ.js} +2 -2
  186. package/dist/{whatsapp-actions-DmVpLXmh.js → whatsapp-actions-llk0IUn2.js} +23 -23
  187. package/dist/{workspace-DscDraUb.js → workspace-CywO4ayZ.js} +27 -27
  188. package/extensions/bluebubbles/package.json +1 -1
  189. package/extensions/copilot-proxy/package.json +1 -1
  190. package/extensions/diagnostics-otel/package.json +1 -1
  191. package/extensions/discord/package.json +1 -1
  192. package/extensions/feishu/package.json +1 -1
  193. package/extensions/google-antigravity-auth/package.json +1 -1
  194. package/extensions/google-gemini-cli-auth/package.json +1 -1
  195. package/extensions/googlechat/package.json +1 -1
  196. package/extensions/imessage/package.json +1 -1
  197. package/extensions/irc/package.json +1 -1
  198. package/extensions/learning-loop/package.json +1 -1
  199. package/extensions/line/package.json +1 -1
  200. package/extensions/llm-task/package.json +1 -1
  201. package/extensions/matrix/CHANGELOG.md +12 -0
  202. package/extensions/matrix/package.json +1 -1
  203. package/extensions/mattermost/package.json +1 -1
  204. package/extensions/memory-core/package.json +1 -1
  205. package/extensions/memory-lancedb/package.json +1 -1
  206. package/extensions/minimax-portal-auth/package.json +1 -1
  207. package/extensions/msteams/CHANGELOG.md +12 -0
  208. package/extensions/msteams/package.json +1 -1
  209. package/extensions/nextcloud-talk/package.json +1 -1
  210. package/extensions/nostr/CHANGELOG.md +12 -0
  211. package/extensions/nostr/package.json +1 -1
  212. package/extensions/open-prose/package.json +1 -1
  213. package/extensions/outlook/package.json +1 -1
  214. package/extensions/pipeline/package.json +1 -1
  215. package/extensions/signal/package.json +1 -1
  216. package/extensions/slack/package.json +1 -1
  217. package/extensions/telegram/package.json +1 -1
  218. package/extensions/tlon/package.json +1 -1
  219. package/extensions/twitch/CHANGELOG.md +12 -0
  220. package/extensions/twitch/package.json +1 -1
  221. package/extensions/voice-call/CHANGELOG.md +12 -0
  222. package/extensions/voice-call/package.json +1 -1
  223. package/extensions/whatsapp/package.json +1 -1
  224. package/extensions/zalo/CHANGELOG.md +12 -0
  225. package/extensions/zalo/package.json +1 -1
  226. package/extensions/zalouser/CHANGELOG.md +12 -0
  227. package/extensions/zalouser/package.json +1 -1
  228. package/package.json +1 -1
  229. package/skills/long-task/scripts/detach-task.sh +57 -5
@@ -53,7 +53,7 @@ import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decod
53
53
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-LbcEa65a.js";
54
54
  import { c as normalizeExtraMemoryPaths, m as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-Qi-tyvHh.js";
55
55
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Wd5tNeQG.js";
56
- import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-LRE7zEk2.js";
56
+ import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-BPm5oefC.js";
57
57
  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-BuYpmEx-.js";
58
58
  import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-CGhw9mO3.js";
59
59
  import { t as makeProxyFetch } from "./proxy-D27OUbrW.js";
@@ -11575,7 +11575,7 @@ async function getMemorySearchManager(params) {
11575
11575
  const wrapper = new FallbackMemoryManager({
11576
11576
  primary,
11577
11577
  fallbackFactory: async () => {
11578
- const { MemoryIndexManager } = await import("./manager-LRE7zEk2.js").then((n) => n.n);
11578
+ const { MemoryIndexManager } = await import("./manager-BPm5oefC.js").then((n) => n.n);
11579
11579
  return await MemoryIndexManager.get(params);
11580
11580
  }
11581
11581
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -11588,7 +11588,7 @@ async function getMemorySearchManager(params) {
11588
11588
  }
11589
11589
  }
11590
11590
  try {
11591
- const { MemoryIndexManager } = await import("./manager-LRE7zEk2.js").then((n) => n.n);
11591
+ const { MemoryIndexManager } = await import("./manager-BPm5oefC.js").then((n) => n.n);
11592
11592
  return { manager: await MemoryIndexManager.get(params) };
11593
11593
  } catch (err) {
11594
11594
  return {
@@ -33902,6 +33902,7 @@ async function resolveDetachScriptPath(params) {
33902
33902
  return cachedScriptPath;
33903
33903
  }
33904
33904
  async function buildLongTaskPromptSuffix(params) {
33905
+ if (params.cronEnabled === false) return "";
33905
33906
  const scriptPath = await resolveDetachScriptPath(params);
33906
33907
  if (!scriptPath) return "";
33907
33908
  return "\n\n" + [
@@ -33913,10 +33914,7 @@ async function buildLongTaskPromptSuffix(params) {
33913
33914
  " • workdir: absolute path you own (e.g. the agent workspace).",
33914
33915
  " • Script spawns under setsid+nohup+disown, writes task-<id>.{pid,cmd,started,log,status} files.",
33915
33916
  "- 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.",
33916
- "- Register a cron monitor using the `cron` tool with action=add. Required fields:",
33917
- " • schedule: { kind: \"interval\", ms: 180000 } (every 3 minutes; minimum 60000)",
33918
- " • payload: { kind: \"agent\", sessionTarget: \"isolated\", text: <job prompt> }",
33919
- " 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.",
33917
+ "- Register a cron monitor via the `cron` tool's `add` action. Use the schema documented in that tool's own description for the exact field names — do NOT guess. The monitor should fire roughly every 3 minutes as an isolated agentTurn job, and its message must literally contain the task-id, PID, log path, and status path so the future turn has enough context without re-deriving them.",
33920
33918
  "- Safe status read (inside the monitor turn):",
33921
33919
  " `status=$(cat \"<workdir>/task-<id>.status\" 2>/dev/null || echo missing)`",
33922
33920
  " 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.",
@@ -33924,7 +33922,8 @@ async function buildLongTaskPromptSuffix(params) {
33924
33922
  " • If status begins with `running`: tail -n 20 <log>, post a one-sentence progress line.",
33925
33923
  " • If status begins with `complete`: post a final summary with rc and tail, then call cron action=remove on this job id.",
33926
33924
  " • If status begins with `aborted`: post a failure summary with signal and tail, then call cron action=remove.",
33927
- " • Never leave stale monitors running after the task finishes."
33925
+ " • Never leave stale monitors running after the task finishes.",
33926
+ "- Inspecting and killing tasks: use `task_list` to enumerate detached tasks in the workspace (returns id/pid/alive/status/started for each), and `task_cancel` with `taskId` (and optional `signal`, default SIGTERM) to terminate a running task. Prefer these over raw `kill`/`ps` exec calls — they share the detach script's task-id allow-list and report alreadyDead cleanly."
33928
33927
  ].join("\n");
33929
33928
  }
33930
33929
 
@@ -34994,7 +34993,8 @@ async function runEmbeddedAttempt(params) {
34994
34993
  const longTaskSuffix = await buildLongTaskPromptSuffix({
34995
34994
  argv1: process.argv[1],
34996
34995
  cwd: process.cwd(),
34997
- moduleUrl: import.meta.url
34996
+ moduleUrl: import.meta.url,
34997
+ cronEnabled: process.env.SYMI_SKIP_CRON !== "1" && params.config?.cron?.enabled !== false
34998
34998
  });
34999
34999
  const emailCapabilitySuffix = buildEmailCapabilityPromptSuffix();
35000
35000
  const systemPromptText = createSystemPromptOverride(appendPrompt + longTaskSuffix + emailCapabilitySuffix + profilePromptSuffix)();
@@ -36838,7 +36838,7 @@ async function runAgentTurn(params) {
36838
36838
  function createDefaultDeps() {
36839
36839
  return {
36840
36840
  sendMessageWhatsApp: async (...args) => {
36841
- const { sendMessageWhatsApp } = await import("./web-BTVj4kiQ.js");
36841
+ const { sendMessageWhatsApp } = await import("./web-D0DsmFvw.js");
36842
36842
  return await sendMessageWhatsApp(...args);
36843
36843
  },
36844
36844
  sendMessageTelegram: async (...args) => {
@@ -54276,7 +54276,7 @@ function loadWebLoginQr() {
54276
54276
  return webLoginQrPromise;
54277
54277
  }
54278
54278
  function loadWebChannel() {
54279
- webChannelPromise ??= import("./web-BTVj4kiQ.js");
54279
+ webChannelPromise ??= import("./web-D0DsmFvw.js");
54280
54280
  return webChannelPromise;
54281
54281
  }
54282
54282
  function loadWhatsAppActions() {
@@ -57543,7 +57543,7 @@ async function resolveSandboxWorkdir(params) {
57543
57543
  };
57544
57544
  }
57545
57545
  }
57546
- function resolveWorkdir(workdir, warnings) {
57546
+ function resolveWorkdir$1(workdir, warnings) {
57547
57547
  const fallback = safeCwd() ?? homedir();
57548
57548
  try {
57549
57549
  if (statSync(workdir).isDirectory()) return workdir;
@@ -58685,7 +58685,7 @@ function createExecTool(defaults) {
58685
58685
  });
58686
58686
  workdir = resolved.hostWorkdir;
58687
58687
  containerWorkdir = resolved.containerWorkdir;
58688
- } else workdir = resolveWorkdir(rawWorkdir, warnings);
58688
+ } else workdir = resolveWorkdir$1(rawWorkdir, warnings);
58689
58689
  const baseEnv = coerceEnv(process.env);
58690
58690
  if (host !== "sandbox" && params.env) validateHostEnv(params.env);
58691
58691
  const mergedEnv = params.env ? {
@@ -59599,6 +59599,8 @@ const SUBAGENT_TOOL_DENY_ALWAYS = [
59599
59599
  "whatsapp_login",
59600
59600
  "session_status",
59601
59601
  "cron",
59602
+ "task_list",
59603
+ "task_cancel",
59602
59604
  "memory_search",
59603
59605
  "memory_get",
59604
59606
  "memory_pin",
@@ -68668,6 +68670,254 @@ function createSubagentsTool(opts) {
68668
68670
  };
68669
68671
  }
68670
68672
 
68673
+ //#endregion
68674
+ //#region src/agents/tools/task-tool.ts
68675
+ /**
68676
+ * Long-task management tools (task_list, task_cancel).
68677
+ *
68678
+ * Companions to the detach-task pattern in skills/long-task. The detach
68679
+ * script writes task-<id>.{pid,cmd,started,log,status} state files into
68680
+ * the agent's workspace; these tools read and act on those files so the
68681
+ * agent can answer "what's running?" and kill a task without needing
68682
+ * shell access.
68683
+ *
68684
+ * task-id allow-list mirrors detach-task.sh: 1–60 chars from
68685
+ * [a-zA-Z0-9._-], must not start with '.' or '-'. Diverging would let the
68686
+ * agent kill processes it never spawned via path traversal.
68687
+ */
68688
+ const TASK_FILE_PREFIX = "task-";
68689
+ const TASK_ID_RE = /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/;
68690
+ const TASK_FILE_SUFFIXES = [
68691
+ ".pid",
68692
+ ".status",
68693
+ ".started",
68694
+ ".cmd",
68695
+ ".log"
68696
+ ];
68697
+ const ALLOWED_SIGNALS = new Set([
68698
+ "SIGTERM",
68699
+ "SIGINT",
68700
+ "SIGHUP",
68701
+ "SIGQUIT",
68702
+ "SIGKILL",
68703
+ "SIGUSR1",
68704
+ "SIGUSR2"
68705
+ ]);
68706
+ const TaskListSchema = Type.Object({ workdir: Type.Optional(Type.String()) });
68707
+ const TaskCancelSchema = Type.Object({
68708
+ taskId: Type.String(),
68709
+ workdir: Type.Optional(Type.String()),
68710
+ signal: Type.Optional(Type.String())
68711
+ });
68712
+ function normaliseSignal(input) {
68713
+ if (!input) return "SIGTERM";
68714
+ const upper = input.trim().toUpperCase();
68715
+ const candidate = upper.startsWith("SIG") ? upper : `SIG${upper}`;
68716
+ if (ALLOWED_SIGNALS.has(candidate)) return candidate;
68717
+ throw new Error(`Unsupported signal: ${input}. Allowed: TERM, INT, HUP, QUIT, KILL, USR1, USR2.`);
68718
+ }
68719
+ function isPidAlive(pid) {
68720
+ try {
68721
+ process.kill(pid, 0);
68722
+ return true;
68723
+ } catch (err) {
68724
+ if (err.code === "EPERM") return true;
68725
+ return false;
68726
+ }
68727
+ }
68728
+ async function safeRead(filePath) {
68729
+ try {
68730
+ return (await fs.promises.readFile(filePath, "utf8")).trim();
68731
+ } catch {
68732
+ return null;
68733
+ }
68734
+ }
68735
+ function resolveWorkdir(deps, override) {
68736
+ const raw = override?.trim();
68737
+ if (!raw) return deps.workspaceDir;
68738
+ if (!path.isAbsolute(raw)) throw new Error(`workdir must be an absolute path (got: ${raw})`);
68739
+ return raw;
68740
+ }
68741
+ async function readTaskInfo(workdir, id) {
68742
+ const pidPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.pid`);
68743
+ const [pidText, status, started, cmd] = await Promise.all([
68744
+ safeRead(pidPath),
68745
+ safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.status`)),
68746
+ safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.started`)),
68747
+ safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.cmd`))
68748
+ ]);
68749
+ let pid = null;
68750
+ if (pidText) {
68751
+ const parsed = Number.parseInt(pidText, 10);
68752
+ if (Number.isFinite(parsed) && parsed > 0) pid = parsed;
68753
+ }
68754
+ return {
68755
+ id,
68756
+ pid,
68757
+ alive: pid !== null && isPidAlive(pid),
68758
+ status: status ?? "missing",
68759
+ started,
68760
+ cmd,
68761
+ pidPath,
68762
+ statusPath: path.join(workdir, `${TASK_FILE_PREFIX}${id}.status`),
68763
+ logPath: path.join(workdir, `${TASK_FILE_PREFIX}${id}.log`)
68764
+ };
68765
+ }
68766
+ function createTaskListTool(deps) {
68767
+ return {
68768
+ label: "Task List",
68769
+ name: "task_list",
68770
+ description: `List long-running detached tasks in the agent's workspace.
68771
+
68772
+ Globs task-<id>.{pid,status,started,cmd,log} files, reads their state, and
68773
+ checks each PID's liveness. Use this to find the task-id of a running
68774
+ detach-task before calling task_cancel, or to answer "what's running right
68775
+ now?" without re-asking the user.
68776
+
68777
+ Returns: { workdir, tasks: [{ id, pid, alive, status, started, cmd, pidPath, statusPath, logPath }] }.
68778
+ Tasks whose .pid file is missing are still listed (alive=false, pid=null) so
68779
+ the agent can spot orphan state files.`,
68780
+ parameters: TaskListSchema,
68781
+ execute: async (_toolCallId, args) => {
68782
+ const override = readStringParam(args, "workdir");
68783
+ let workdir;
68784
+ try {
68785
+ workdir = resolveWorkdir(deps, override);
68786
+ } catch (err) {
68787
+ return jsonResult({
68788
+ workdir: override ?? deps.workspaceDir,
68789
+ tasks: [],
68790
+ error: err instanceof Error ? err.message : String(err)
68791
+ });
68792
+ }
68793
+ let entries;
68794
+ try {
68795
+ entries = await fs.promises.readdir(workdir);
68796
+ } catch (err) {
68797
+ if (err.code === "ENOENT") return jsonResult({
68798
+ workdir,
68799
+ tasks: []
68800
+ });
68801
+ return jsonResult({
68802
+ workdir,
68803
+ tasks: [],
68804
+ error: err instanceof Error ? err.message : String(err)
68805
+ });
68806
+ }
68807
+ const taskIds = /* @__PURE__ */ new Set();
68808
+ for (const entry of entries) {
68809
+ if (!entry.startsWith(TASK_FILE_PREFIX)) continue;
68810
+ for (const suffix of TASK_FILE_SUFFIXES) if (entry.endsWith(suffix)) {
68811
+ const id = entry.slice(5, -suffix.length);
68812
+ if (id.length > 0 && TASK_ID_RE.test(id)) taskIds.add(id);
68813
+ break;
68814
+ }
68815
+ }
68816
+ const tasks = await Promise.all([...taskIds].toSorted().map((id) => readTaskInfo(workdir, id)));
68817
+ return jsonResult({
68818
+ workdir,
68819
+ tasks
68820
+ });
68821
+ }
68822
+ };
68823
+ }
68824
+ function createTaskCancelTool(deps) {
68825
+ return {
68826
+ label: "Task Cancel",
68827
+ name: "task_cancel",
68828
+ description: `Send a signal (default SIGTERM) to a running detached task.
68829
+
68830
+ Reads task-<id>.pid in the workdir, validates the recorded PID is alive,
68831
+ and sends the signal via process.kill. The task's TERM/INT/HUP trap will
68832
+ write an "aborted" status before exiting, so a follow-up task_list call
68833
+ sees the canonical end state.
68834
+
68835
+ task-id must match the same allow-list as detach-task.sh: 1–60 chars from
68836
+ [a-zA-Z0-9._-], no leading '.' or '-'. signal accepts TERM (default), INT,
68837
+ HUP, QUIT, KILL, USR1, USR2 — with or without the "SIG" prefix.
68838
+
68839
+ Returns: { ok, taskId, pid, sentSignal, alreadyDead?, error? }.`,
68840
+ parameters: TaskCancelSchema,
68841
+ execute: async (_toolCallId, args) => {
68842
+ const params = args;
68843
+ const taskId = readStringParam(params, "taskId", { required: true });
68844
+ if (!TASK_ID_RE.test(taskId)) return jsonResult({
68845
+ ok: false,
68846
+ taskId,
68847
+ error: "taskId must be 1–60 chars from [a-zA-Z0-9._-] and must not start with '.' or '-'."
68848
+ });
68849
+ const override = readStringParam(params, "workdir");
68850
+ let workdir;
68851
+ try {
68852
+ workdir = resolveWorkdir(deps, override);
68853
+ } catch (err) {
68854
+ return jsonResult({
68855
+ ok: false,
68856
+ taskId,
68857
+ error: err instanceof Error ? err.message : String(err)
68858
+ });
68859
+ }
68860
+ const signalRaw = readStringParam(params, "signal");
68861
+ let signal;
68862
+ try {
68863
+ signal = normaliseSignal(signalRaw);
68864
+ } catch (err) {
68865
+ return jsonResult({
68866
+ ok: false,
68867
+ taskId,
68868
+ error: err instanceof Error ? err.message : String(err)
68869
+ });
68870
+ }
68871
+ const pidPath = path.join(workdir, `${TASK_FILE_PREFIX}${taskId}.pid`);
68872
+ let pidText;
68873
+ try {
68874
+ pidText = (await fs.promises.readFile(pidPath, "utf8")).trim();
68875
+ } catch (err) {
68876
+ if (err.code === "ENOENT") return jsonResult({
68877
+ ok: false,
68878
+ taskId,
68879
+ error: `no pid file at ${pidPath} — task is unknown or already cleaned up`
68880
+ });
68881
+ return jsonResult({
68882
+ ok: false,
68883
+ taskId,
68884
+ error: err instanceof Error ? err.message : String(err)
68885
+ });
68886
+ }
68887
+ const pid = Number.parseInt(pidText, 10);
68888
+ if (!Number.isFinite(pid) || pid <= 0) return jsonResult({
68889
+ ok: false,
68890
+ taskId,
68891
+ error: `pid file at ${pidPath} did not contain a positive integer`
68892
+ });
68893
+ if (!isPidAlive(pid)) return jsonResult({
68894
+ ok: false,
68895
+ taskId,
68896
+ pid,
68897
+ alreadyDead: true,
68898
+ error: "process is no longer running"
68899
+ });
68900
+ try {
68901
+ process.kill(pid, signal);
68902
+ } catch (err) {
68903
+ return jsonResult({
68904
+ ok: false,
68905
+ taskId,
68906
+ pid,
68907
+ sentSignal: signal,
68908
+ error: err instanceof Error ? err.message : String(err)
68909
+ });
68910
+ }
68911
+ return jsonResult({
68912
+ ok: true,
68913
+ taskId,
68914
+ pid,
68915
+ sentSignal: signal
68916
+ });
68917
+ }
68918
+ };
68919
+ }
68920
+
68671
68921
  //#endregion
68672
68922
  //#region src/agents/tools/tts-tool.ts
68673
68923
  const TtsToolSchema = Type.Object({
@@ -69968,6 +70218,8 @@ function createSymiTools(options) {
69968
70218
  config: options?.config
69969
70219
  }),
69970
70220
  createCronTool({ agentSessionKey: options?.agentSessionKey }),
70221
+ createTaskListTool({ workspaceDir }),
70222
+ createTaskCancelTool({ workspaceDir }),
69971
70223
  ...messageTool ? [messageTool] : [],
69972
70224
  createTtsTool({
69973
70225
  agentChannel: options?.agentChannel,
@@ -1,5 +1,5 @@
1
1
  import "./accounts-D9zGZU5t.js";
2
- import { u as runAgentTurn } from "./reply-JypoGhql.js";
2
+ import { u as runAgentTurn } from "./reply-BKAHTugL.js";
3
3
  import "./paths-DR2yt_mP.js";
4
4
  import "./github-copilot-token-D9X2phUj.js";
5
5
  import "./plugins-BbAvhC25.js";
@@ -49,7 +49,7 @@ import "./image-DFyINnvE.js";
49
49
  import "./pi-model-discovery-LbcEa65a.js";
50
50
  import "./api-key-rotation-CBsLb_4V.js";
51
51
  import "./diagnostic-session-state-Wd5tNeQG.js";
52
- import "./manager-LRE7zEk2.js";
52
+ import "./manager-BPm5oefC.js";
53
53
  import "./sqlite-CmVrFEYD.js";
54
54
  import "./commands-registry-BuYpmEx-.js";
55
55
  import "./send-CGhw9mO3.js";
@@ -1,5 +1,5 @@
1
1
  import { a as WA_WEB_AUTH_DIR, g as webAuthExists, s as logWebSelfId, u as pickWebChannel } from "./accounts-D9zGZU5t.js";
2
- import "./reply-JypoGhql.js";
2
+ import "./reply-BKAHTugL.js";
3
3
  import "./paths-DR2yt_mP.js";
4
4
  import "./github-copilot-token-D9X2phUj.js";
5
5
  import "./plugins-BbAvhC25.js";
@@ -45,12 +45,12 @@ import "./pi-embedded-helpers-BL7ZRhGv.js";
45
45
  import "./paths-A0xdf3yk.js";
46
46
  import "./diagnostic-_oc91gNi.js";
47
47
  import "./store-Do3t33-c.js";
48
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-t6enTxNE.js";
48
+ import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-t8UOP6Zu.js";
49
49
  import "./image-DFyINnvE.js";
50
50
  import "./pi-model-discovery-LbcEa65a.js";
51
51
  import "./api-key-rotation-CBsLb_4V.js";
52
52
  import "./diagnostic-session-state-Wd5tNeQG.js";
53
- import "./manager-LRE7zEk2.js";
53
+ import "./manager-BPm5oefC.js";
54
54
  import "./sqlite-CmVrFEYD.js";
55
55
  import "./commands-registry-BuYpmEx-.js";
56
56
  import "./send-CGhw9mO3.js";
@@ -14,7 +14,7 @@ import "./client-qUlxXXVJ.js";
14
14
  import "./call-BrRWr7Lj.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-BKuL9PdW.js";
17
+ import "./subagent-registry-C1OyZl-M.js";
18
18
  import "./sessions-BPD85pWA.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -52,8 +52,8 @@ import "./tool-images-CVLISeRT.js";
52
52
  import "./thinking-8sKPnzpp.js";
53
53
  import "./models-config-J1x_DaPn.js";
54
54
  import "./reply-prefix-BUN71nd5.js";
55
- import "./memory-cli-BgJciaHC.js";
56
- import "./manager-CLrJn9l-.js";
55
+ import "./memory-cli-Qgbcxvuf.js";
56
+ import "./manager-DDELj5o9.js";
57
57
  import "./gemini-auth-DEakvf-D.js";
58
58
  import "./retry-C4Q_VPOo.js";
59
59
  import "./sqlite-BP8tiuca.js";
@@ -97,13 +97,13 @@ import "./replies-Sxbew659.js";
97
97
  import "./onboard-helpers-CF0Cp3OB.js";
98
98
  import "./prompt-style-BxVdnrLq.js";
99
99
  import "./pairing-labels-BHx_CdbP.js";
100
- import "./pi-tools.policy-QIVWAVVI.js";
100
+ import "./pi-tools.policy-o0ytjRqu.js";
101
101
  import { c as resolveArchiveKind } from "./install-safe-path-C__62m3G.js";
102
102
  import "./npm-registry-spec-PuS2I1Em.js";
103
103
  import "./skill-scanner-BV3QHmsf.js";
104
104
  import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-B4sNNRaW.js";
105
105
  import { t as renderTable } from "./table-Bka4fasy.js";
106
- import { t as buildPluginStatusReport } from "./status-DvHD1cnq.js";
106
+ import { t as buildPluginStatusReport } from "./status-DJAeKN4G.js";
107
107
  import { n as updateNpmInstalledPlugins } from "./update-DticqU4-.js";
108
108
  import os from "node:os";
109
109
  import path from "node:path";
@@ -1,7 +1,7 @@
1
1
  import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, S as shortenHomePath, g as resolveConfigDir, x as shortenHomeInString, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-CUR4xpYM.js";
4
+ import "./reply-Dg1ZU3DZ.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -60,8 +60,8 @@ import "./diagnostic-session-state-CUslJyKP.js";
60
60
  import "./send-DpMnSIi5.js";
61
61
  import "./model-ECsJuJew.js";
62
62
  import "./reply-prefix-CE2YmmsD.js";
63
- import "./memory-cli-T-a5-lqZ.js";
64
- import "./manager-BJvYQ7xP.js";
63
+ import "./memory-cli-ENCASZJk.js";
64
+ import "./manager-DrmlegR2.js";
65
65
  import "./retry-BoS4e4X_.js";
66
66
  import "./sqlite-D55gRQbH.js";
67
67
  import "./target-errors-C9e6dMU_.js";
@@ -98,7 +98,7 @@ import "./prompt-style-Y2J72w6p.js";
98
98
  import "./pairing-labels-CTL1gXZb.js";
99
99
  import "./exec-approvals-DEigTi7M.js";
100
100
  import "./nodes-screen-BZS89z6C.js";
101
- import "./pi-tools.policy-BZrM6a-w.js";
101
+ import "./pi-tools.policy-Bx5zp45n.js";
102
102
  import "./control-service-C0pRqIFv.js";
103
103
  import "./stagger-CZ1Rrj7O.js";
104
104
  import "./channel-selection-9fIQGtZy.js";
@@ -107,7 +107,7 @@ import "./npm-registry-spec-B98RgVZF.js";
107
107
  import "./skill-scanner-BTgjeQBf.js";
108
108
  import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-BPZKRjsO.js";
109
109
  import { t as renderTable } from "./table-BWuvjnmY.js";
110
- import { t as buildPluginStatusReport } from "./status-_xBnHTlx.js";
110
+ import { t as buildPluginStatusReport } from "./status-BvbJavmh.js";
111
111
  import { n as updateNpmInstalledPlugins } from "./update-D4uLu0dv.js";
112
112
  import fs from "node:fs";
113
113
  import os from "node:os";
@@ -1,10 +1,10 @@
1
1
  import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId } from "./session-key-BCzIW1Y2.js";
2
- import { M as normalizeE164, a as normalizeAnyChannelId, l as requireActivePluginRegistry, n as CHAT_CHANNEL_ORDER } from "./registry-DYq1AYOv.js";
3
- import { t as isTruthyEnvValue } from "./env-BDXYbTKj.js";
2
+ import { M as normalizeE164, a as normalizeAnyChannelId, l as requireActivePluginRegistry, n as CHAT_CHANNEL_ORDER } from "./registry-X6fUE0K7.js";
3
+ import { t as isTruthyEnvValue } from "./env-CB65jmJQ.js";
4
4
  import { t as normalizeChatType } from "./chat-type-3FRbbjbq.js";
5
- import { m as createAccountListHelpers } from "./accounts-BRw8yhIW.js";
6
- import { n as listBoundAccountIds, r as resolveDefaultAgentBoundAccountId } from "./bindings-BsHoBLIE.js";
7
- import fs from "node:fs";
5
+ import { m as createAccountListHelpers } from "./accounts-BsgY6sda.js";
6
+ import { n as listBoundAccountIds, r as resolveDefaultAgentBoundAccountId } from "./bindings-xcRox9xM.js";
7
+ import fsSync from "node:fs";
8
8
 
9
9
  //#region src/channels/plugins/account-action-gate.ts
10
10
  function createAccountActionGate(params) {
@@ -186,7 +186,7 @@ function resolveTelegramToken(cfg, opts = {}) {
186
186
  const accountCfg = resolveAccountCfg(accountId !== DEFAULT_ACCOUNT_ID ? accountId : DEFAULT_ACCOUNT_ID);
187
187
  const accountTokenFile = accountCfg?.tokenFile?.trim();
188
188
  if (accountTokenFile) {
189
- if (!fs.existsSync(accountTokenFile)) {
189
+ if (!fsSync.existsSync(accountTokenFile)) {
190
190
  opts.logMissingFile?.(`channels.telegram.accounts.${accountId}.tokenFile not found: ${accountTokenFile}`);
191
191
  return {
192
192
  token: "",
@@ -194,7 +194,7 @@ function resolveTelegramToken(cfg, opts = {}) {
194
194
  };
195
195
  }
196
196
  try {
197
- const token = fs.readFileSync(accountTokenFile, "utf-8").trim();
197
+ const token = fsSync.readFileSync(accountTokenFile, "utf-8").trim();
198
198
  if (token) return {
199
199
  token,
200
200
  source: "tokenFile"
@@ -219,7 +219,7 @@ function resolveTelegramToken(cfg, opts = {}) {
219
219
  const allowEnv = accountId === DEFAULT_ACCOUNT_ID;
220
220
  const tokenFile = telegramCfg?.tokenFile?.trim();
221
221
  if (tokenFile && allowEnv) {
222
- if (!fs.existsSync(tokenFile)) {
222
+ if (!fsSync.existsSync(tokenFile)) {
223
223
  opts.logMissingFile?.(`channels.telegram.tokenFile not found: ${tokenFile}`);
224
224
  return {
225
225
  token: "",
@@ -227,7 +227,7 @@ function resolveTelegramToken(cfg, opts = {}) {
227
227
  };
228
228
  }
229
229
  try {
230
- const token = fs.readFileSync(tokenFile, "utf-8").trim();
230
+ const token = fsSync.readFileSync(tokenFile, "utf-8").trim();
231
231
  if (token) return {
232
232
  token,
233
233
  source: "tokenFile"
@@ -15,7 +15,7 @@ import "./client-qUlxXXVJ.js";
15
15
  import "./call-BrRWr7Lj.js";
16
16
  import "./message-channel-C9dERklz.js";
17
17
  import "./pairing-token-Byh6drgn.js";
18
- import "./subagent-registry-BKuL9PdW.js";
18
+ import "./subagent-registry-C1OyZl-M.js";
19
19
  import "./sessions-BPD85pWA.js";
20
20
  import "./tokens-Csntmwwn.js";
21
21
  import "./plugins-CwSlLxM8.js";
@@ -53,8 +53,8 @@ import "./tool-images-CVLISeRT.js";
53
53
  import "./thinking-8sKPnzpp.js";
54
54
  import "./models-config-J1x_DaPn.js";
55
55
  import "./reply-prefix-BUN71nd5.js";
56
- import "./memory-cli-BgJciaHC.js";
57
- import "./manager-CLrJn9l-.js";
56
+ import "./memory-cli-Qgbcxvuf.js";
57
+ import "./manager-DDELj5o9.js";
58
58
  import "./gemini-auth-DEakvf-D.js";
59
59
  import "./retry-C4Q_VPOo.js";
60
60
  import "./sqlite-BP8tiuca.js";
@@ -98,15 +98,15 @@ import "./replies-Sxbew659.js";
98
98
  import "./onboard-helpers-CF0Cp3OB.js";
99
99
  import "./prompt-style-BxVdnrLq.js";
100
100
  import "./pairing-labels-BHx_CdbP.js";
101
- import "./pi-tools.policy-QIVWAVVI.js";
101
+ import "./pi-tools.policy-o0ytjRqu.js";
102
102
  import "./catalog-KcLvtTfa.js";
103
- import "./plugin-registry-B2cpTmJz.js";
104
- import { n as resolveCliChannelOptions } from "./channel-options-tfnOGSNF.js";
105
- import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-B-zh940S.js";
106
- import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-D1Le-Fmh.js";
103
+ import "./plugin-registry-Cuc8ORuR.js";
104
+ import { n as resolveCliChannelOptions } from "./channel-options-DYy2sCfN.js";
105
+ import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-BCy0IDRv.js";
106
+ import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-LjFltTU9.js";
107
107
  import { r as setProgramContext } from "./program-context-DeZ44oQ9.js";
108
108
  import { t as forceFreePort } from "./ports-DQg7kV5s.js";
109
- import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-BFdiq-O5.js";
109
+ import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-DrNha2_N.js";
110
110
  import { Command } from "commander";
111
111
 
112
112
  //#region src/cli/program/context.ts
@@ -214,7 +214,7 @@ function registerPreActionHooks(program, programVersion) {
214
214
  commandPath
215
215
  });
216
216
  if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
217
- const { ensurePluginRegistryLoaded } = await import("./plugin-registry-B2cpTmJz.js").then((n) => n.n);
217
+ const { ensurePluginRegistryLoaded } = await import("./plugin-registry-Cuc8ORuR.js").then((n) => n.n);
218
218
  ensurePluginRegistryLoaded();
219
219
  }
220
220
  });