@symerian/symi 2.8.13 → 2.8.15

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 (272) hide show
  1. package/dist/{acp-cli-D7uCUCr8.js → acp-cli-BgR7mxTS.js} +2 -2
  2. package/dist/{acp-cli-CAU8UW9I.js → acp-cli-D1JYg9c1.js} +2 -2
  3. package/dist/{agents-CgCg4syn.js → agents-BhhAcFrX.js} +5 -5
  4. package/dist/{agents.config-BnPC7uct.js → agents.config-BOvsz6E6.js} +1 -1
  5. package/dist/{agents.config-DqWxpgkX.js → agents.config-D967tgmP.js} +1 -1
  6. package/dist/{audit-Oa5dsn5p.js → audit-Dr_8rC6G.js} +3 -3
  7. package/dist/{audit-Bi9Je9FZ.js → audit-xiwEIT96.js} +3 -3
  8. package/dist/{auth-choice-BKwypsnS.js → auth-choice-DEKKbufH.js} +2 -2
  9. package/dist/{auth-choice-BIlBt2d0.js → auth-choice-Pzy-t2mh.js} +2 -2
  10. package/dist/{banner-CX5CuLWQ.js → banner-CiHQEfyr.js} +1 -1
  11. package/dist/{browser-cli-5ME9iiC3.js → browser-cli-BQeCPbES.js} +3 -3
  12. package/dist/{browser-cli-BTci35qB.js → browser-cli-IXepRCZR.js} +3 -3
  13. package/dist/build-info.json +3 -3
  14. package/dist/bundled/boot-md/handler.js +2 -2
  15. package/dist/bundled/session-memory/handler.js +2 -2
  16. package/dist/{call-Cmb04dff.js → call-BkJK3eYP.js} +2 -1
  17. package/dist/{call-BrRWr7Lj.js → call-CAGvQYXj.js} +2 -1
  18. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  19. package/dist/{channel-options-mUKQVJQl.js → channel-options-DGuilErd.js} +1 -1
  20. package/dist/{channel-options-7y9EuPLO.js → channel-options-_erlRi2w.js} +1 -1
  21. package/dist/{channel-web-Dldh4zVI.js → channel-web-DwfovJKQ.js} +1 -1
  22. package/dist/{channels-cli-Q6Q8LokG.js → channels-cli-B2Zf1oz9.js} +10 -10
  23. package/dist/{channels-cli-Dz9vV1KL.js → channels-cli-DUsK2bXE.js} +10 -10
  24. package/dist/cli/daemon-cli.js +1 -1
  25. package/dist/{cli-DMsLCQbO.js → cli-BpmyiZc9.js} +7 -7
  26. package/dist/{cli-D4WYEtu4.js → cli-DUiSlxsb.js} +7 -7
  27. package/dist/{client-C7AOOnKZ.js → client-CYsBIR3j.js} +27 -1
  28. package/dist/{client-qUlxXXVJ.js → client-Cmq13-uF.js} +27 -1
  29. package/dist/{command-registry-cEqGIx4b.js → command-registry-B8LVEWW9.js} +11 -11
  30. package/dist/{completion-cli-Bw0jbNaG.js → completion-cli-D-_MV8eA.js} +1 -1
  31. package/dist/{completion-cli-C5GCKfKT.js → completion-cli-DZeK6_ev.js} +2 -2
  32. package/dist/{config-cli-DP0hP7WR.js → config-cli-B7ZvHIMY.js} +1 -1
  33. package/dist/{config-cli-DgHooQ4_.js → config-cli-D_m0QL6c.js} +1 -1
  34. package/dist/{configure-OUiXvgMg.js → configure-DFg-N_i2.js} +6 -6
  35. package/dist/{configure-BQUkaPdS.js → configure-DXml-xDR.js} +6 -6
  36. package/dist/control-ui/index.html +7 -0
  37. package/dist/control-ui/js/menu.js +2 -0
  38. package/dist/control-ui/js/settings.js +1 -0
  39. package/dist/{cron-cli-CGJveo7P.js → cron-cli-CZCm3aLt.js} +3 -3
  40. package/dist/{cron-cli-Crh_r2aK.js → cron-cli-Dq2FEfK1.js} +3 -3
  41. package/dist/{daemon-cli-Cq-IaYw4.js → daemon-cli-B2_uIgDM.js} +2 -2
  42. package/dist/{daemon-cli-CAIg9sMo.js → daemon-cli-CweMes2K.js} +2 -2
  43. package/dist/daemon-cli.js +27 -0
  44. package/dist/{devices-cli-CUT_8CuJ.js → devices-cli-3ui-Wcaj.js} +2 -2
  45. package/dist/{devices-cli-hSn5vjJZ.js → devices-cli-DeoPyzAd.js} +2 -2
  46. package/dist/{doctor-completion-BSMAyCq_.js → doctor-completion-CQXl3jf4.js} +1 -1
  47. package/dist/{doctor-completion-DlKvncR9.js → doctor-completion-Cu7DwgVw.js} +1 -1
  48. package/dist/entry.js +1 -1
  49. package/dist/{exec-approvals-cli-BTfZiH6z.js → exec-approvals-cli-Bx9loYnQ.js} +4 -4
  50. package/dist/{exec-approvals-cli-DTad2Zi_.js → exec-approvals-cli-CTEn_Eu_.js} +4 -4
  51. package/dist/extensionAPI.js +2 -2
  52. package/dist/{gateway-cli-NI7W2QxR.js → gateway-cli-B2XchN3Y.js} +35 -17
  53. package/dist/{gateway-cli-BlRNLVfU.js → gateway-cli-P0olUhID.js} +35 -17
  54. package/dist/{gateway-rpc-BKJyAcQd.js → gateway-rpc-DbSbyIcL.js} +1 -1
  55. package/dist/{gateway-rpc-DActF8Qj.js → gateway-rpc-QsFn5Zr1.js} +1 -1
  56. package/dist/{glass-ui-ws-BBkFBsKB.js → glass-ui-ws-Cs2jfN42.js} +14 -14
  57. package/dist/{glass-ui-ws-DxrESDzy.js → glass-ui-ws-tIVOcdB2.js} +14 -14
  58. package/dist/{health-D4vU-wV-.js → health-Cs8wf7Hb.js} +2 -2
  59. package/dist/{health-fOu0S75U.js → health-DMy1nA4K.js} +2 -2
  60. package/dist/{hooks-cli-BdgnXYmw.js → hooks-cli-D6awUCDl.js} +8 -8
  61. package/dist/{hooks-cli-DdSggQYs.js → hooks-cli-DIH-zxCG.js} +8 -8
  62. package/dist/index.js +12 -12
  63. package/dist/llm-slug-generator.js +2 -2
  64. package/dist/{logs-cli-BPnrAg0W.js → logs-cli-1hn28HCu.js} +3 -3
  65. package/dist/{logs-cli-DiDesnnp.js → logs-cli-R4WwQvR2.js} +3 -3
  66. package/dist/{manager-syNf_ZrI.js → manager-B60Ncruq.js} +1 -1
  67. package/dist/{manager-DRrGn88w.js → manager-B76ofKkW.js} +1 -1
  68. package/dist/{manager-_RGWWymD.js → manager-D0_H4LHh.js} +1 -1
  69. package/dist/{manager-TOeH0D8K.js → manager-wF-n_prX.js} +1 -1
  70. package/dist/{memory-cli-0jm-n36m.js → memory-cli-DRLrIa8h.js} +3 -3
  71. package/dist/{memory-cli-BSOOwpt1.js → memory-cli-eSWCbEiS.js} +3 -3
  72. package/dist/{models-sGeWQOmg.js → models-B5H41UsH.js} +3 -3
  73. package/dist/{models-cli-DV-J1cm0.js → models-cli-CHFi2_kC.js} +9 -9
  74. package/dist/{models-cli-CtkoEyh3.js → models-cli-CVfq_g6h.js} +8 -8
  75. package/dist/{node-cli-DwDQpTW5.js → node-cli-BBN6PoOG.js} +1 -1
  76. package/dist/{node-cli-DEcCM2p0.js → node-cli-BsAzTrAx.js} +1 -1
  77. package/dist/{nodes-cli-CqBLemeB.js → nodes-cli-DE60dv81.js} +3 -3
  78. package/dist/{nodes-cli-u8k6TPmF.js → nodes-cli-t3azniiS.js} +3 -3
  79. package/dist/{onboard-CWBYuaCm.js → onboard-DKK6UJjF.js} +3 -3
  80. package/dist/{onboard-FeTHeA1y.js → onboard-DgPzeL3U.js} +3 -3
  81. package/dist/{onboard-channels-D8bDJYPc.js → onboard-channels-BTuYOQO-.js} +1 -1
  82. package/dist/{onboard-channels-DpZkjldS.js → onboard-channels-DvNwlvWZ.js} +1 -1
  83. package/dist/{onboard-helpers-C8f_xi6R.js → onboard-helpers-B7jBYbCU.js} +1 -1
  84. package/dist/{onboard-helpers-CF0Cp3OB.js → onboard-helpers-DjlGq6iG.js} +1 -1
  85. package/dist/{onboard-remote-DgGH0dTe.js → onboard-remote-CXuHbtrT.js} +1 -1
  86. package/dist/{onboard-remote-CWal5_aZ.js → onboard-remote-D7wGqONm.js} +1 -1
  87. package/dist/{onboard-skills-DnzJLU2H.js → onboard-skills-BDhqz3te.js} +1 -1
  88. package/dist/{onboard-skills-CO2TjuO3.js → onboard-skills-ChQnpMi-.js} +1 -1
  89. package/dist/{onboarding-c2qhwP0x.js → onboarding-CCHq8fd9.js} +7 -7
  90. package/dist/{onboarding-BsPnnH5g.js → onboarding-CeqXuQPm.js} +7 -7
  91. package/dist/{onboarding.finalize-7St3fmk2.js → onboarding.finalize-Cw4TWelq.js} +13 -13
  92. package/dist/{onboarding.finalize-id9EHg1P.js → onboarding.finalize-DxWVkNx9.js} +12 -12
  93. package/dist/{onboarding.gateway-config-DlV0vso8.js → onboarding.gateway-config-Cm5jIfRz.js} +3 -3
  94. package/dist/{onboarding.gateway-config-D4rQoPRi.js → onboarding.gateway-config-wAyLcGRu.js} +3 -3
  95. package/dist/{pi-embedded-DCBB1_SC.js → pi-embedded-CGwqumSe.js} +339 -10
  96. package/dist/{pi-tools.policy-BZrM6a-w.js → pi-tools.policy-Bx5zp45n.js} +2 -0
  97. package/dist/{pi-tools.policy-QIVWAVVI.js → pi-tools.policy-o0ytjRqu.js} +2 -0
  98. package/dist/{plugin-registry-BJSfTT8c.js → plugin-registry-CJKHlm9W.js} +1 -1
  99. package/dist/{plugin-registry-Cy1kfzAy.js → plugin-registry-kiYkB_km.js} +1 -1
  100. package/dist/plugin-sdk/{accounts-BtaOa4z_.js → accounts-BToL3HlP.js} +1 -1
  101. package/dist/plugin-sdk/{accounts-Ddm33hQm.js → accounts-D9zGZU5t.js} +3 -3
  102. package/dist/plugin-sdk/{accounts-s-AdhXVR.js → accounts-Dtszw3Zn.js} +1 -1
  103. package/dist/plugin-sdk/{active-listener-DYjn3fML.js → active-listener-CJuvR4C2.js} +1 -1
  104. package/dist/plugin-sdk/{agent-scope-CYYpcO9W.js → agent-scope-C3gMMKCU.js} +2 -2
  105. package/dist/plugin-sdk/agents/pi-embedded-runner/long-task-prompt.d.ts +7 -0
  106. package/dist/plugin-sdk/agents/tools/task-tool.d.ts +7 -0
  107. package/dist/plugin-sdk/{api-key-rotation-DGJZ8SVa.js → api-key-rotation-CBsLb_4V.js} +1 -1
  108. package/dist/plugin-sdk/{audio-preflight-CiVw8470.js → audio-preflight-DucGa8w7.js} +24 -24
  109. package/dist/plugin-sdk/{bindings-C7hRtgYW.js → bindings-BbwoUGPx.js} +2 -2
  110. package/dist/plugin-sdk/{channel-activity-DoC1xtDu.js → channel-activity-Ji7f0gqq.js} +1 -1
  111. package/dist/plugin-sdk/{channel-web-BSDjZSwm.js → channel-web-C9SUmtjL.js} +22 -22
  112. package/dist/plugin-sdk/{chrome-CEqfiEs0.js → chrome-D9kN9org.js} +3 -3
  113. package/dist/plugin-sdk/{chunk-Dw2XBYXv.js → chunk-jvk9axTQ.js} +1 -1
  114. package/dist/plugin-sdk/{command-format-GKSevep4.js → command-format-DSdvQ_M5.js} +1 -1
  115. package/dist/plugin-sdk/{commands-registry-BhW_oGNt.js → commands-registry-BuYpmEx-.js} +4 -4
  116. package/dist/plugin-sdk/{config-Ckum15iC.js → config-BzupW6LN.js} +9 -9
  117. package/dist/plugin-sdk/{consolidate-COuTEt4Z.js → consolidate-CafShdsH.js} +2 -2
  118. package/dist/plugin-sdk/{deliver-B8Y2t-RH.js → deliver-CKgFosI5.js} +10 -10
  119. package/dist/plugin-sdk/{diagnostic-BR07buTm.js → diagnostic-_oc91gNi.js} +1 -1
  120. package/dist/plugin-sdk/gateway/protocol/index.d.ts +6 -3
  121. package/dist/plugin-sdk/gateway/protocol/schema/tasks.d.ts +40 -0
  122. package/dist/plugin-sdk/gateway/protocol/schema/types.d.ts +3 -0
  123. package/dist/plugin-sdk/gateway/protocol/schema.d.ts +1 -0
  124. package/dist/plugin-sdk/{image-CCmNHDV0.js → image-DFyINnvE.js} +4 -4
  125. package/dist/plugin-sdk/{image-ops-BlQR__MN.js → image-ops-Bnp6LXEx.js} +1 -1
  126. package/dist/plugin-sdk/index.js +54 -54
  127. package/dist/plugin-sdk/infra/long-task-state.d.ts +34 -0
  128. package/dist/plugin-sdk/{ir-BJ6BHE5b.js → ir-Fb3qpcis.js} +4 -4
  129. package/dist/plugin-sdk/{local-roots-BHLNSI8U.js → local-roots-Ckk1QfzI.js} +3 -3
  130. package/dist/plugin-sdk/{login-g_rQAcuM.js → login-K1YB_7-t.js} +7 -7
  131. package/dist/plugin-sdk/{login-qr-BOUmLSY3.js → login-qr-lMl_OqDj.js} +9 -9
  132. package/dist/plugin-sdk/{manager-B9GigLWj.js → manager-DUmxOoHb.js} +9 -9
  133. package/dist/plugin-sdk/{manifest-registry-BRx4JDK0.js → manifest-registry-hy3Bn-r9.js} +1 -1
  134. package/dist/plugin-sdk/{markdown-tables-BoYFajMu.js → markdown-tables-Dfaqilz6.js} +1 -1
  135. package/dist/plugin-sdk/{message-channel-COTAJzHd.js → message-channel-BdI5Ra9S.js} +1 -1
  136. package/dist/plugin-sdk/{model-selection-Bbs4XGPG.js → model-selection-CtVwtb6y.js} +4 -4
  137. package/dist/plugin-sdk/{outbound-BVhSNFy0.js → outbound-DW3cqlQW.js} +7 -7
  138. package/dist/plugin-sdk/{outbound-attachment-B56R1Wi4.js → outbound-attachment-D7ME_Kib.js} +2 -2
  139. package/dist/plugin-sdk/{pi-auth-json-CB2bV0Jd.js → pi-auth-json-DiyK6bgV.js} +1 -1
  140. package/dist/plugin-sdk/{pi-embedded-helpers-dd3G9Hfi.js → pi-embedded-helpers-BL7ZRhGv.js} +17 -17
  141. package/dist/plugin-sdk/{plugins-BNByVCIH.js → plugins-BbAvhC25.js} +4 -4
  142. package/dist/plugin-sdk/{pw-ai-BXeOYCz_.js → pw-ai-B3T0mTHr.js} +8 -8
  143. package/dist/plugin-sdk/{qmd-manager-wIr8qz2n.js → qmd-manager-BlUikj9s.js} +4 -4
  144. package/dist/plugin-sdk/{registry-D0xTnUWt.js → registry--_pGht6S.js} +2 -2
  145. package/dist/plugin-sdk/{replies-CQ4szNhV.js → replies-BR2TPTVW.js} +3 -3
  146. package/dist/plugin-sdk/{reply-DD8z_dUW.js → reply-DwJ-3Et9.js} +412 -83
  147. package/dist/plugin-sdk/{reply-prefix-uxfMZW4p.js → reply-prefix-BHuV5t70.js} +1 -1
  148. package/dist/plugin-sdk/{resolve-outbound-target-BiyAyTWz.js → resolve-outbound-target-BkCUbYGV.js} +2 -2
  149. package/dist/plugin-sdk/{resolve-route-CWfcnhza.js → resolve-route-CHQ7BTlU.js} +3 -3
  150. package/dist/plugin-sdk/{retry-CwQ_iIj8.js → retry-ilSJqnz9.js} +1 -1
  151. package/dist/plugin-sdk/{runner-BuxCHv_O.js → runner-BhifC1J_.js} +9 -9
  152. package/dist/plugin-sdk/{send-fNRDT21N.js → send-BP5pSPaZ.js} +6 -6
  153. package/dist/plugin-sdk/{send-BtO-7fHs.js → send-CGhw9mO3.js} +6 -6
  154. package/dist/plugin-sdk/{send-CKXzQuXo.js → send-DLO_yV5_.js} +10 -10
  155. package/dist/plugin-sdk/{send-Djq5IPRa.js → send-ZhAe1nXO.js} +10 -10
  156. package/dist/plugin-sdk/{send-XSuwT1PC.js → send-jsofmTfJ.js} +7 -7
  157. package/dist/plugin-sdk/{session-ARbcLHE9.js → session-BfyK_04G.js} +4 -4
  158. package/dist/plugin-sdk/{skill-commands-yzJVuTIW.js → skill-commands-DEfqC_kJ.js} +5 -5
  159. package/dist/plugin-sdk/{skills-BfsaS1F9.js → skills-C9DbB-Kp.js} +7 -7
  160. package/dist/plugin-sdk/{sqlite-A3wGzttn.js → sqlite-CmVrFEYD.js} +1 -1
  161. package/dist/plugin-sdk/{store-BdrNabcU.js → store-Do3t33-c.js} +2 -2
  162. package/dist/plugin-sdk/{subsystem-B2uDN3TV.js → subsystem-Coz2AgU8.js} +1 -1
  163. package/dist/plugin-sdk/{synthesis-Dv5GwSky.js → synthesis-BzYtaV97.js} +49 -49
  164. package/dist/plugin-sdk/{tables-DNwXwNFa.js → tables-DR0NmBeH.js} +1 -1
  165. package/dist/plugin-sdk/{target-errors-Paro1BjP.js → target-errors-B7YyMnIi.js} +2 -2
  166. package/dist/plugin-sdk/{thinking-CXqf7WTe.js → thinking-DCNUIAHY.js} +5 -5
  167. package/dist/plugin-sdk/{tokens-bC3UVmVH.js → tokens-CWMflosr.js} +1 -1
  168. package/dist/plugin-sdk/{tool-images-HJ2sfZDV.js → tool-images-D7Lno-TE.js} +2 -2
  169. package/dist/plugin-sdk/{tool-loop-detection-gmtzSlNZ.js → tool-loop-detection-DseOlBug.js} +2 -2
  170. package/dist/plugin-sdk/web-BQzPfsd0.js +66 -0
  171. package/dist/plugin-sdk/{whatsapp-actions-B_1l8JMU.js → whatsapp-actions-eTefsWhW.js} +21 -21
  172. package/dist/{plugins-cli-6UYkZBH0.js → plugins-cli-DTI2yj-y.js} +8 -8
  173. package/dist/{plugins-cli-DPetEhfv.js → plugins-cli-tV4C5XJc.js} +8 -8
  174. package/dist/{program-CVy9LVoS.js → program-8Zg4CY5d.js} +13 -13
  175. package/dist/{program-context-CBI6gIf-.js → program-context-BcKgBBit.js} +30 -30
  176. package/dist/{prompt-select-styled-Bv675D48.js → prompt-select-styled-CfKZlGfF.js} +8 -8
  177. package/dist/{prompt-select-styled-BlXl_Qf7.js → prompt-select-styled-DigPcXuk.js} +8 -8
  178. package/dist/{provider-auth-helpers-RUQD5XAm.js → provider-auth-helpers-BH3oyYln.js} +1 -1
  179. package/dist/{provider-auth-helpers-BB1lhCy5.js → provider-auth-helpers-Db02DMW2.js} +1 -1
  180. package/dist/{push-apns-rPetW5cI.js → push-apns-7rC1ybp8.js} +1 -1
  181. package/dist/{push-apns-Cr-a1KBt.js → push-apns-f_6DGP6z.js} +1 -1
  182. package/dist/{register.agent-DKDwNHQi.js → register.agent-CocfT8Pk.js} +12 -12
  183. package/dist/{register.agent-j6OlKEU-.js → register.agent-DETyFsMT.js} +11 -11
  184. package/dist/{register.configure-BgIXIq9d.js → register.configure-BAiFzdYa.js} +14 -14
  185. package/dist/{register.configure-CopgSygi.js → register.configure-VcTwHq1a.js} +14 -14
  186. package/dist/{register.maintenance-DjaGkVtr.js → register.maintenance-BajFgQEm.js} +13 -13
  187. package/dist/{register.maintenance-BKsCM6NG.js → register.maintenance-Bpr3QjJ1.js} +14 -14
  188. package/dist/{register.message-bxhUcSyj.js → register.message-96EL0HQW.js} +8 -8
  189. package/dist/{register.message-C3oHvmdl.js → register.message-CXabSYfO.js} +8 -8
  190. package/dist/{register.onboard-D0DHcb20.js → register.onboard-2KClPynN.js} +10 -10
  191. package/dist/{register.onboard-DijWH8Vd.js → register.onboard-mHEZSai5.js} +10 -10
  192. package/dist/{register.setup-XlCTnTm_.js → register.setup-B-piY6Vs.js} +10 -10
  193. package/dist/{register.setup-CrFzd94c.js → register.setup-Di6tWG-W.js} +10 -10
  194. package/dist/{register.status-health-sessions-AWCg_uLf.js → register.status-health-sessions-BhIYRApE.js} +10 -10
  195. package/dist/{register.status-health-sessions-VwvDWUxZ.js → register.status-health-sessions-ZX2odxGg.js} +10 -10
  196. package/dist/{register.subclis-Bw8k5Z5C.js → register.subclis-CQtXpheE.js} +20 -20
  197. package/dist/{reply-D7_t00Jt.js → reply-D455A6SA.js} +314 -14
  198. package/dist/{rpc-DYHXLh0P.js → rpc-C3ZUAjXK.js} +1 -1
  199. package/dist/{rpc-DdlEeEXT.js → rpc-St4eAsjR.js} +1 -1
  200. package/dist/{run-main-7BEaNeDG.js → run-main-CnqZnevI.js} +21 -21
  201. package/dist/{security-cli-BpnzAB5_.js → security-cli-B8gavsuQ.js} +4 -4
  202. package/dist/{security-cli-D9WEiEjD.js → security-cli-BSvxNP9m.js} +4 -4
  203. package/dist/{server-methods-FQ-PqiVC.js → server-methods-CYPSYbhs.js} +55 -11
  204. package/dist/{server-methods-CTeJHJSZ.js → server-methods-DYjr-KwQ.js} +55 -11
  205. package/dist/{server-node-events-Z7epDloV.js → server-node-events-C58gVs27.js} +8 -8
  206. package/dist/{server-node-events-BqvcHbuK.js → server-node-events-DqJIrx86.js} +8 -8
  207. package/dist/{status-CKROJwI2.js → status-B_zW9YJ8.js} +1 -1
  208. package/dist/{status-DLFbpd9v.js → status-DjjA-TOx.js} +6 -6
  209. package/dist/{status-DMigoL7q.js → status-Qt6QDFJ1.js} +6 -6
  210. package/dist/{status-x7WCSVhG.js → status-sO6Y-c-v.js} +1 -1
  211. package/dist/{subagent-registry-BvP8AGdE.js → subagent-registry-B1HJJs3Q.js} +314 -14
  212. package/dist/{synthesis-DDId6n26.js → synthesis-BCSo0xoc.js} +7 -7
  213. package/dist/{synthesis-E4flT91F.js → synthesis-Ch82MDG8.js} +2 -2
  214. package/dist/{synthesis-By7KPUAm.js → synthesis-DAUJa_9I.js} +7 -7
  215. package/dist/{synthesis-DgQz6kPf.js → synthesis-DzSo6S9Y.js} +2 -2
  216. package/dist/{system-cli-BFopJ_xI.js → system-cli-BN9MXNk7.js} +3 -3
  217. package/dist/{system-cli-DryauSOX.js → system-cli-CD5latLh.js} +3 -3
  218. package/dist/{tui-CvHbwJ3G.js → tui-Cu4TZK3I.js} +2 -2
  219. package/dist/{tui-BiBFm_RY.js → tui-DLkE0D7e.js} +2 -2
  220. package/dist/{tui-cli-CmyT9ctV.js → tui-cli-BfuEq3Q-.js} +3 -3
  221. package/dist/{tui-cli-CU6A8Bu2.js → tui-cli-DC9Bq-N_.js} +3 -3
  222. package/dist/{unified-runner-DaSb-TsZ.js → unified-runner-CpyVnelK.js} +339 -10
  223. package/dist/{update-cli-C5H6DkNM.js → update-cli-BLQsvLIy.js} +14 -14
  224. package/dist/{update-cli-D0relAZw.js → update-cli-CgDLDu8d.js} +15 -15
  225. package/dist/{update-runner-D99V_zHX.js → update-runner-B1vMjo7o.js} +1 -1
  226. package/dist/{update-runner-B_yVOk8Z.js → update-runner-DUHTdrZ0.js} +1 -1
  227. package/dist/{web-BQh2S6oq.js → web-Dbg9lDZ4.js} +7 -7
  228. package/dist/{web-Bdebat5l.js → web-Dhh_eI3q.js} +8 -8
  229. package/dist/{web-BBz1kF_9.js → web-DpAeT8By.js} +2 -2
  230. package/dist/{web-CiYoJfrl.js → web-PhjuzK8Y.js} +2 -2
  231. package/extensions/bluebubbles/package.json +1 -1
  232. package/extensions/copilot-proxy/package.json +1 -1
  233. package/extensions/diagnostics-otel/package.json +1 -1
  234. package/extensions/discord/package.json +1 -1
  235. package/extensions/feishu/package.json +1 -1
  236. package/extensions/google-antigravity-auth/package.json +1 -1
  237. package/extensions/google-gemini-cli-auth/package.json +1 -1
  238. package/extensions/googlechat/package.json +1 -1
  239. package/extensions/imessage/package.json +1 -1
  240. package/extensions/irc/package.json +1 -1
  241. package/extensions/learning-loop/package.json +1 -1
  242. package/extensions/line/package.json +1 -1
  243. package/extensions/llm-task/package.json +1 -1
  244. package/extensions/matrix/CHANGELOG.md +12 -0
  245. package/extensions/matrix/package.json +1 -1
  246. package/extensions/mattermost/package.json +1 -1
  247. package/extensions/memory-core/package.json +1 -1
  248. package/extensions/memory-lancedb/package.json +1 -1
  249. package/extensions/minimax-portal-auth/package.json +1 -1
  250. package/extensions/msteams/CHANGELOG.md +12 -0
  251. package/extensions/msteams/package.json +1 -1
  252. package/extensions/nextcloud-talk/package.json +1 -1
  253. package/extensions/nostr/CHANGELOG.md +12 -0
  254. package/extensions/nostr/package.json +1 -1
  255. package/extensions/open-prose/package.json +1 -1
  256. package/extensions/outlook/package.json +1 -1
  257. package/extensions/pipeline/package.json +1 -1
  258. package/extensions/signal/package.json +1 -1
  259. package/extensions/slack/package.json +1 -1
  260. package/extensions/telegram/package.json +1 -1
  261. package/extensions/tlon/package.json +1 -1
  262. package/extensions/twitch/CHANGELOG.md +12 -0
  263. package/extensions/twitch/package.json +1 -1
  264. package/extensions/voice-call/CHANGELOG.md +12 -0
  265. package/extensions/voice-call/package.json +1 -1
  266. package/extensions/whatsapp/package.json +1 -1
  267. package/extensions/zalo/CHANGELOG.md +12 -0
  268. package/extensions/zalo/package.json +1 -1
  269. package/extensions/zalouser/CHANGELOG.md +12 -0
  270. package/extensions/zalouser/package.json +1 -1
  271. package/package.json +1 -1
  272. package/dist/plugin-sdk/web-CmKqZEsX.js +0 -66
@@ -15,8 +15,8 @@ import { r as isPathInsideWithRealpath } from "./scan-paths-ppKrtZ9U.js";
15
15
  import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-D_oCiaQn.js";
16
16
  import { a as safeStatSync, c as applyTestPluginDefaults, d as resolveEnableState, f as resolveMemorySlotDecision, h as isDangerousHostEnvVarName, i as isPathInside, n as loadPluginManifestRegistry, r as discoverSymiPlugins, u as normalizePluginsConfig } from "./manifest-registry-D5bnO5uA.js";
17
17
  import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-DXt3pc08.js";
18
- import { It as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-qUlxXXVJ.js";
19
- import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-BrRWr7Lj.js";
18
+ import { Lt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-Cmq13-uF.js";
19
+ import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-CAGvQYXj.js";
20
20
  import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-C9dERklz.js";
21
21
  import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-D0lNkCf6.js";
22
22
  import { A as DEFAULT_RESET_TRIGGERS, B as resolveGroupSessionKey, D as resolveSessionResetPolicy, E as resolveChannelResetConfig, F as resolveMainSessionKey, G as deliveryContextKey, J as normalizeSessionDeliveryFields, K as mergeDeliveryContext, L as deriveSessionMetaPatch, O as resolveSessionResetType, P as resolveExplicitAgentSessionKey, T as evaluateSessionFreshness, U as resolveSessionLockMaxHoldFromTimeout, V as acquireSessionWriteLock, W as deliveryContextFromSession, Y as normalizeAccountId$3, _ as capArrayByJsonBytes, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as archiveSessionTranscripts, j as resolveFreshSessionTotalTokens, k as resolveThreadFlag, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as normalizeDeliveryContext, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, w as resolveSessionKey } from "./sessions-BPD85pWA.js";
@@ -50,8 +50,8 @@ import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as san
50
50
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-8sKPnzpp.js";
51
51
  import { t as ensureSymiModelsJson } from "./models-config-J1x_DaPn.js";
52
52
  import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BUN71nd5.js";
53
- import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-BSOOwpt1.js";
54
- import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-syNf_ZrI.js";
53
+ import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-eSWCbEiS.js";
54
+ import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-B60Ncruq.js";
55
55
  import { f as runTasksWithConcurrency } from "./internal-C2jxeHS9.js";
56
56
  import { n as retryAsync } from "./retry-C4Q_VPOo.js";
57
57
  import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-Co0LcWKH.js";
@@ -92,10 +92,10 @@ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-rou
92
92
  import { t as parseTimeoutMs } from "./parse-timeout-FUO1ff14.js";
93
93
  import { t as makeProxyFetch } from "./proxy-GY5xhMp0.js";
94
94
  import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Sxbew659.js";
95
- import { r as detectBinary } from "./onboard-helpers-CF0Cp3OB.js";
95
+ import { r as detectBinary } from "./onboard-helpers-DjlGq6iG.js";
96
96
  import { t as resolvePairingIdLabel } from "./pairing-labels-BHx_CdbP.js";
97
97
  import { t as getActiveWebListener } from "./active-listener-DEi7sEFa.js";
98
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-QIVWAVVI.js";
98
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-o0ytjRqu.js";
99
99
  import { createRequire } from "node:module";
100
100
  import { execFileSync, spawn, spawnSync } from "node:child_process";
101
101
  import os, { homedir } from "node:os";
@@ -11042,7 +11042,7 @@ async function resolveSandboxWorkdir(params) {
11042
11042
  };
11043
11043
  }
11044
11044
  }
11045
- function resolveWorkdir(workdir, warnings) {
11045
+ function resolveWorkdir$1(workdir, warnings) {
11046
11046
  const fallback = safeCwd() ?? homedir();
11047
11047
  try {
11048
11048
  if (statSync(workdir).isDirectory()) return workdir;
@@ -12114,7 +12114,7 @@ function createExecTool(defaults) {
12114
12114
  });
12115
12115
  workdir = resolved.hostWorkdir;
12116
12116
  containerWorkdir = resolved.containerWorkdir;
12117
- } else workdir = resolveWorkdir(rawWorkdir, warnings);
12117
+ } else workdir = resolveWorkdir$1(rawWorkdir, warnings);
12118
12118
  const baseEnv = coerceEnv(process.env);
12119
12119
  if (host !== "sandbox" && params.env) validateHostEnv(params.env);
12120
12120
  const mergedEnv = params.env ? {
@@ -29913,6 +29913,301 @@ function createSubagentsTool(opts) {
29913
29913
  };
29914
29914
  }
29915
29915
 
29916
+ //#endregion
29917
+ //#region src/infra/long-task-state.ts
29918
+ /**
29919
+ * Shared helpers for reading the on-disk state files written by
29920
+ * skills/long-task/scripts/detach-task.sh:
29921
+ *
29922
+ * task-<id>.pid — PID of the detached process
29923
+ * task-<id>.cmd — literal command line
29924
+ * task-<id>.started — ISO-8601 start timestamp
29925
+ * task-<id>.log — combined stdout + stderr
29926
+ * task-<id>.status — current state line
29927
+ * task-<id>.archived — tombstone written by the janitor when it sweeps
29928
+ * a finished task more than 7 days old
29929
+ *
29930
+ * Both the agent-facing tools (task_list / task_cancel) and the gateway's
29931
+ * tasks.list RPC consume this helper so the two views stay in sync.
29932
+ */
29933
+ const TASK_FILE_PREFIX = "task-";
29934
+ const TASK_ID_RE = /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/;
29935
+ const TASK_FILE_SUFFIXES = [
29936
+ ".pid",
29937
+ ".status",
29938
+ ".started",
29939
+ ".cmd",
29940
+ ".log",
29941
+ ".archived"
29942
+ ];
29943
+ function defaultIsPidAlive(pid) {
29944
+ try {
29945
+ process.kill(pid, 0);
29946
+ return true;
29947
+ } catch (err) {
29948
+ if (err.code === "EPERM") return true;
29949
+ return false;
29950
+ }
29951
+ }
29952
+ async function safeRead(filePath) {
29953
+ try {
29954
+ return (await fs.promises.readFile(filePath, "utf8")).trim();
29955
+ } catch {
29956
+ return null;
29957
+ }
29958
+ }
29959
+ async function readTaskInfo(workdir, id, isPidAlive = defaultIsPidAlive) {
29960
+ const pidPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.pid`);
29961
+ const statusPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.status`);
29962
+ const archivedPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.archived`);
29963
+ const logPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.log`);
29964
+ const [pidText, status, started, cmd, archived] = await Promise.all([
29965
+ safeRead(pidPath),
29966
+ safeRead(statusPath),
29967
+ safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.started`)),
29968
+ safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.cmd`)),
29969
+ safeRead(archivedPath)
29970
+ ]);
29971
+ let pid = null;
29972
+ if (pidText) {
29973
+ const parsed = Number.parseInt(pidText, 10);
29974
+ if (Number.isFinite(parsed) && parsed > 0) pid = parsed;
29975
+ }
29976
+ let resolvedStatus;
29977
+ if (status) resolvedStatus = status;
29978
+ else if (archived) resolvedStatus = archived;
29979
+ else resolvedStatus = "missing";
29980
+ return {
29981
+ id,
29982
+ pid,
29983
+ alive: pid !== null && isPidAlive(pid),
29984
+ archived: archived !== null,
29985
+ status: resolvedStatus,
29986
+ started,
29987
+ cmd,
29988
+ pidPath,
29989
+ statusPath,
29990
+ archivedPath,
29991
+ logPath
29992
+ };
29993
+ }
29994
+ async function listTasksInWorkdir(workdir, isPidAlive = defaultIsPidAlive) {
29995
+ let entries;
29996
+ try {
29997
+ entries = await fs.promises.readdir(workdir);
29998
+ } catch {
29999
+ return [];
30000
+ }
30001
+ const taskIds = /* @__PURE__ */ new Set();
30002
+ for (const entry of entries) {
30003
+ if (!entry.startsWith(TASK_FILE_PREFIX)) continue;
30004
+ for (const suffix of TASK_FILE_SUFFIXES) if (entry.endsWith(suffix)) {
30005
+ const id = entry.slice(5, -suffix.length);
30006
+ if (id.length > 0 && TASK_ID_RE.test(id)) taskIds.add(id);
30007
+ break;
30008
+ }
30009
+ }
30010
+ return await Promise.all([...taskIds].toSorted().map((id) => readTaskInfo(workdir, id, isPidAlive)));
30011
+ }
30012
+
30013
+ //#endregion
30014
+ //#region src/agents/tools/task-tool.ts
30015
+ /**
30016
+ * Long-task management tools (task_list, task_cancel).
30017
+ *
30018
+ * Companions to the detach-task pattern in skills/long-task. The detach
30019
+ * script writes task-<id>.{pid,cmd,started,log,status} state files into
30020
+ * the agent's workspace; these tools read and act on those files so the
30021
+ * agent can answer "what's running?" and kill a task without needing
30022
+ * shell access. Shared scanning logic lives in
30023
+ * src/infra/long-task-state.ts so the gateway's tasks.list RPC and these
30024
+ * agent tools agree on every shape detail.
30025
+ *
30026
+ * task-id allow-list mirrors detach-task.sh: 1–60 chars from
30027
+ * [a-zA-Z0-9._-], must not start with '.' or '-'. Diverging would let the
30028
+ * agent kill processes it never spawned via path traversal.
30029
+ */
30030
+ const ALLOWED_SIGNALS = new Set([
30031
+ "SIGTERM",
30032
+ "SIGINT",
30033
+ "SIGHUP",
30034
+ "SIGQUIT",
30035
+ "SIGKILL",
30036
+ "SIGUSR1",
30037
+ "SIGUSR2"
30038
+ ]);
30039
+ const TaskListSchema = Type.Object({ workdir: Type.Optional(Type.String()) });
30040
+ const TaskCancelSchema = Type.Object({
30041
+ taskId: Type.String(),
30042
+ workdir: Type.Optional(Type.String()),
30043
+ signal: Type.Optional(Type.String())
30044
+ });
30045
+ function normaliseSignal(input) {
30046
+ if (!input) return "SIGTERM";
30047
+ const upper = input.trim().toUpperCase();
30048
+ const candidate = upper.startsWith("SIG") ? upper : `SIG${upper}`;
30049
+ if (ALLOWED_SIGNALS.has(candidate)) return candidate;
30050
+ throw new Error(`Unsupported signal: ${input}. Allowed: TERM, INT, HUP, QUIT, KILL, USR1, USR2.`);
30051
+ }
30052
+ function isPidAlive(pid) {
30053
+ try {
30054
+ process.kill(pid, 0);
30055
+ return true;
30056
+ } catch (err) {
30057
+ if (err.code === "EPERM") return true;
30058
+ return false;
30059
+ }
30060
+ }
30061
+ function resolveWorkdir(deps, override) {
30062
+ const raw = override?.trim();
30063
+ if (!raw) return deps.workspaceDir;
30064
+ if (!path.isAbsolute(raw)) throw new Error(`workdir must be an absolute path (got: ${raw})`);
30065
+ return raw;
30066
+ }
30067
+ function createTaskListTool(deps) {
30068
+ return {
30069
+ label: "Task List",
30070
+ name: "task_list",
30071
+ description: `List long-running detached tasks in the agent's workspace.
30072
+
30073
+ Globs task-<id>.{pid,status,started,cmd,log,archived} files, reads their
30074
+ state, and checks each PID's liveness. Use this to find the task-id of a
30075
+ running detach-task before calling task_cancel, or to answer "what's
30076
+ running right now?" without re-asking the user.
30077
+
30078
+ Returns: { workdir, tasks: [{ id, pid, alive, status, archived, started, cmd, pidPath, statusPath, archivedPath, logPath }] }.
30079
+ - archived=true means the janitor swept this task's live state files (>7d
30080
+ dead) and replaced them with a tombstone. The canonical end status is
30081
+ preserved in the .archived file. Distinct from "missing" (no tombstone,
30082
+ no live files) which means the task crashed or its workdir was wiped.
30083
+ - Tasks whose .pid file is missing are still listed (alive=false, pid=null)
30084
+ so the agent can spot orphan state files.`,
30085
+ parameters: TaskListSchema,
30086
+ execute: async (_toolCallId, args) => {
30087
+ const override = readStringParam(args, "workdir");
30088
+ let workdir;
30089
+ try {
30090
+ workdir = resolveWorkdir(deps, override);
30091
+ } catch (err) {
30092
+ return jsonResult({
30093
+ workdir: override ?? deps.workspaceDir,
30094
+ tasks: [],
30095
+ error: err instanceof Error ? err.message : String(err)
30096
+ });
30097
+ }
30098
+ try {
30099
+ const tasks = await listTasksInWorkdir(workdir, isPidAlive);
30100
+ return jsonResult({
30101
+ workdir,
30102
+ tasks
30103
+ });
30104
+ } catch (err) {
30105
+ return jsonResult({
30106
+ workdir,
30107
+ tasks: [],
30108
+ error: err instanceof Error ? err.message : String(err)
30109
+ });
30110
+ }
30111
+ }
30112
+ };
30113
+ }
30114
+ function createTaskCancelTool(deps) {
30115
+ return {
30116
+ label: "Task Cancel",
30117
+ name: "task_cancel",
30118
+ description: `Send a signal (default SIGTERM) to a running detached task.
30119
+
30120
+ Reads task-<id>.pid in the workdir, validates the recorded PID is alive,
30121
+ and sends the signal via process.kill. The task's TERM/INT/HUP trap will
30122
+ write an "aborted" status before exiting, so a follow-up task_list call
30123
+ sees the canonical end state.
30124
+
30125
+ task-id must match the same allow-list as detach-task.sh: 1–60 chars from
30126
+ [a-zA-Z0-9._-], no leading '.' or '-'. signal accepts TERM (default), INT,
30127
+ HUP, QUIT, KILL, USR1, USR2 — with or without the "SIG" prefix.
30128
+
30129
+ Returns: { ok, taskId, pid, sentSignal, alreadyDead?, error? }.`,
30130
+ parameters: TaskCancelSchema,
30131
+ execute: async (_toolCallId, args) => {
30132
+ const params = args;
30133
+ const taskId = readStringParam(params, "taskId", { required: true });
30134
+ if (!TASK_ID_RE.test(taskId)) return jsonResult({
30135
+ ok: false,
30136
+ taskId,
30137
+ error: "taskId must be 1–60 chars from [a-zA-Z0-9._-] and must not start with '.' or '-'."
30138
+ });
30139
+ const override = readStringParam(params, "workdir");
30140
+ let workdir;
30141
+ try {
30142
+ workdir = resolveWorkdir(deps, override);
30143
+ } catch (err) {
30144
+ return jsonResult({
30145
+ ok: false,
30146
+ taskId,
30147
+ error: err instanceof Error ? err.message : String(err)
30148
+ });
30149
+ }
30150
+ const signalRaw = readStringParam(params, "signal");
30151
+ let signal;
30152
+ try {
30153
+ signal = normaliseSignal(signalRaw);
30154
+ } catch (err) {
30155
+ return jsonResult({
30156
+ ok: false,
30157
+ taskId,
30158
+ error: err instanceof Error ? err.message : String(err)
30159
+ });
30160
+ }
30161
+ const pidPath = path.join(workdir, `${TASK_FILE_PREFIX}${taskId}.pid`);
30162
+ let pidText;
30163
+ try {
30164
+ pidText = (await fs.promises.readFile(pidPath, "utf8")).trim();
30165
+ } catch (err) {
30166
+ if (err.code === "ENOENT") return jsonResult({
30167
+ ok: false,
30168
+ taskId,
30169
+ error: `no pid file at ${pidPath} — task is unknown or already cleaned up`
30170
+ });
30171
+ return jsonResult({
30172
+ ok: false,
30173
+ taskId,
30174
+ error: err instanceof Error ? err.message : String(err)
30175
+ });
30176
+ }
30177
+ const pid = Number.parseInt(pidText, 10);
30178
+ if (!Number.isFinite(pid) || pid <= 0) return jsonResult({
30179
+ ok: false,
30180
+ taskId,
30181
+ error: `pid file at ${pidPath} did not contain a positive integer`
30182
+ });
30183
+ if (!isPidAlive(pid)) return jsonResult({
30184
+ ok: false,
30185
+ taskId,
30186
+ pid,
30187
+ alreadyDead: true,
30188
+ error: "process is no longer running"
30189
+ });
30190
+ try {
30191
+ process.kill(pid, signal);
30192
+ } catch (err) {
30193
+ return jsonResult({
30194
+ ok: false,
30195
+ taskId,
30196
+ pid,
30197
+ sentSignal: signal,
30198
+ error: err instanceof Error ? err.message : String(err)
30199
+ });
30200
+ }
30201
+ return jsonResult({
30202
+ ok: true,
30203
+ taskId,
30204
+ pid,
30205
+ sentSignal: signal
30206
+ });
30207
+ }
30208
+ };
30209
+ }
30210
+
29916
30211
  //#endregion
29917
30212
  //#region src/agents/tools/tts-tool.ts
29918
30213
  const TtsToolSchema = Type.Object({
@@ -31213,6 +31508,8 @@ function createSymiTools(options) {
31213
31508
  config: options?.config
31214
31509
  }),
31215
31510
  createCronTool({ agentSessionKey: options?.agentSessionKey }),
31511
+ createTaskListTool({ workspaceDir }),
31512
+ createTaskCancelTool({ workspaceDir }),
31216
31513
  ...messageTool ? [messageTool] : [],
31217
31514
  createTtsTool({
31218
31515
  agentChannel: options?.agentChannel,
@@ -39013,6 +39310,7 @@ async function resolveDetachScriptPath(params) {
39013
39310
  return cachedScriptPath;
39014
39311
  }
39015
39312
  async function buildLongTaskPromptSuffix(params) {
39313
+ if (params.cronEnabled === false) return "";
39016
39314
  const scriptPath = await resolveDetachScriptPath(params);
39017
39315
  if (!scriptPath) return "";
39018
39316
  return "\n\n" + [
@@ -39027,12 +39325,13 @@ async function buildLongTaskPromptSuffix(params) {
39027
39325
  "- 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.",
39028
39326
  "- Safe status read (inside the monitor turn):",
39029
39327
  " `status=$(cat \"<workdir>/task-<id>.status\" 2>/dev/null || echo missing)`",
39030
- " 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.",
39328
+ " Possible values: `running pid=<N> started=<ISO>`, `complete rc=<N> ended=<ISO>`, `aborted rc=<N> signal=<TERM|INT|HUP> ended=<ISO>`, `archived swept-from=… at=<ISO>` if the janitor archived an old finished task, or `missing` only when neither `.status` nor `.archived` exists (task crashed or workdir was wiped).",
39031
39329
  "- Monitor responsibilities each tick:",
39032
39330
  " • If status begins with `running`: tail -n 20 <log>, post a one-sentence progress line.",
39033
39331
  " • If status begins with `complete`: post a final summary with rc and tail, then call cron action=remove on this job id.",
39034
39332
  " • If status begins with `aborted`: post a failure summary with signal and tail, then call cron action=remove.",
39035
- " • Never leave stale monitors running after the task finishes."
39333
+ " • Never leave stale monitors running after the task finishes.",
39334
+ "- 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."
39036
39335
  ].join("\n");
39037
39336
  }
39038
39337
 
@@ -40093,7 +40392,8 @@ async function runEmbeddedAttempt(params) {
40093
40392
  const longTaskSuffix = await buildLongTaskPromptSuffix({
40094
40393
  argv1: process.argv[1],
40095
40394
  cwd: process.cwd(),
40096
- moduleUrl: import.meta.url
40395
+ moduleUrl: import.meta.url,
40396
+ cronEnabled: process.env.SYMI_SKIP_CRON !== "1" && params.config?.cron?.enabled !== false
40097
40397
  });
40098
40398
  const emailCapabilitySuffix = buildEmailCapabilityPromptSuffix();
40099
40399
  const systemPromptText = createSystemPromptOverride(appendPrompt + longTaskSuffix + emailCapabilitySuffix + profilePromptSuffix)();
@@ -53582,7 +53882,7 @@ function isVoiceChannelType(type) {
53582
53882
  function createDefaultDeps() {
53583
53883
  return {
53584
53884
  sendMessageWhatsApp: async (...args) => {
53585
- const { sendMessageWhatsApp } = await import("./web-BQh2S6oq.js");
53885
+ const { sendMessageWhatsApp } = await import("./web-Dbg9lDZ4.js");
53586
53886
  return await sendMessageWhatsApp(...args);
53587
53887
  },
53588
53888
  sendMessageTelegram: async (...args) => {
@@ -68896,7 +69196,7 @@ function loadWebLoginQr() {
68896
69196
  return webLoginQrPromise;
68897
69197
  }
68898
69198
  function loadWebChannel() {
68899
- webChannelPromise ??= import("./web-BQh2S6oq.js");
69199
+ webChannelPromise ??= import("./web-Dbg9lDZ4.js");
68900
69200
  return webChannelPromise;
68901
69201
  }
68902
69202
  function loadWhatsAppActions() {
@@ -73237,4 +73537,4 @@ function initSubagentRegistry() {
73237
73537
  }
73238
73538
 
73239
73539
  //#endregion
73240
- export { getCliSessionId as $, resolveTtsAutoMode as $n, setPreRestartDeferralCheck as $t, loadAgentIdentityFromWorkspace as A, DEFAULT_INPUT_TIMEOUT_MS as An, normalizeOptionalSessionKey as At, dispatchInboundMessage as B, resolveEnvelopeFormatOptions as Bn, buildSafeExternalPrompt as Bt, resolveAgentDeliveryPlan as C, enqueueSystemEvent as Cn, onAgentEvent as Cr, trimLogTail as Ct, createOutboundSendDeps$1 as D, DEFAULT_INPUT_IMAGE_MAX_BYTES as Dn, normalizeCronJobPatch as Dt, createDefaultDeps as E, peekSystemEvents as En, normalizeCronJobCreate as Et, buildHistoryContextFromEntries as F, estimateBase64DecodedBytes as Fn, buildDeliveryFromLegacyPayload as Ft, BARE_SESSION_RESET_PROMPT as G, stopSubagentsForRequester as Gn, persistBrowserProxyFiles as Gt, getTotalPendingReplies as H, hasControlCommand as Hn, getHookType as Ht, recordPendingHistoryEntryIfEnabled as I, resolveAgentTimeoutMs as In, hasLegacyDeliveryHints as It, runAgentTurn as J, resolveUserTimezone as Jn, emitGatewayRestart as Jt, appendCronStyleCurrentTimeLine as K, buildMentionRegexes as Kn, consumeGatewaySigusr1RestartAuthorization as Kt, shouldAckReactionForWhatsApp as L, createInboundDebouncer as Ln, stripLegacyDeliveryFields as Lt, buildPairingReply as M, extractImageContentFromSource as Mn, normalizePayloadToSystemText as Mt, resolveMentionGating as N, normalizeMimeList as Nn, normalizeRequiredName as Nt, resolveAgentAvatar as O, DEFAULT_INPUT_IMAGE_MIMES as On, inferLegacyName as Ot, DEFAULT_GROUP_HISTORY_LIMIT as P, resolveInputFileLimits as Pn, migrateLegacyCronPayload as Pt, resolveModelProfile as Q, resolveTtsApiKey as Qn, setGatewaySigusr1RestartPolicy as Qt, dispatchReplyWithBufferedBlockDispatcher as R, resolveInboundDebounceMs as Rn, CHANNEL_TARGETS_DESCRIPTION as Rt, resolveSessionKeyForRequest as S, parseVerboseOverride as Sn, getAgentRunContext as Sr, summarizeRestartSentinel as St, createOutboundSendDeps as T, peekSystemEventEntries as Tn, normalizeHttpWebhookUrl as Tt, createDedupeCache as U, shouldComputeCommandAuthorized as Un, isExternalHookSession as Ut, createReplyDispatcher as V, formatZonedTimestamp as Vn, detectSuspiciousPatterns as Vt, getReplyFromConfig as W, isAbortTrigger as Wn, applyBrowserProxyPaths as Wt, getActiveEmbeddedRunCount as X, isTtsEnabled as Xn, markGatewaySigusr1RestartHandled as Xt, abortEmbeddedPiRun as Y, getTtsProvider as Yn, isGatewaySigusr1RestartExternallyAllowed as Yt, waitForEmbeddedPiRunEnd as Z, isTtsProviderConfigured as Zn, scheduleGatewaySigusr1Restart as Zt, readJsonBodyWithLimit as _, DEFAULT_OAUTH_WARN_MS as _n, isHeartbeatContentEffectivelyEmpty as _r, describeFailoverError as _t, listSubagentRunsForRequester as a, formatUsageWindowSummary as an, textToSpeech as ar, resolveAnnounceTargetFromKey as at, sleepWithAbort as b, applyModelOverrideToSessionEntry as bn, clearAgentRunContext as br, formatRestartSentinelMessage as bt, clearSessionQueues as c, buildChannelAccountSnapshot as cn, getActiveTaskCount as cr, resolveOutboundSessionRoute as ct, sniffMimeFromBase64 as d, requestHeartbeatNow as dn, resetAllLanes as dr, resolveOutboundTarget as dt, unbindThreadBindingsBySessionKey as en, resolveTtsConfig as er, setCliSessionId as et, getPluginToolMeta as f, setHeartbeatWakeHandler as fn, setCommandLaneConcurrency as fr, resolveSessionDeliveryTarget as ft, handleSlackHttpRequest as g, maskApiKey as gn, DEFAULT_HEARTBEAT_EVERY as gr, runWithModelFallback as gt, deleteTelegramUpdateOffset as h, resolveSendPolicy as hn, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as hr, CHANNEL_MESSAGE_ACTION_NAMES as ht, listDescendantRunsForRequester as i, formatUsageReportLines as in, setTtsProvider as ir, readLatestAssistantReply as it, parseIdentityMarkdown as j, extractFileContentFromSource as jn, normalizeOptionalText as jt, identityHasValues as k, DEFAULT_INPUT_MAX_REDIRECTS as kn, normalizeOptionalAgentId as kt, applyToolPolicyPipeline as l, formatChannelAllowFrom as ln, getQueueSize as lr, resolveHeartbeatDeliveryTarget as lt, loadSymiPlugins as m, normalizeSendPolicy as mn, CommandLane as mr, resetDirectoryCache as mt, countActiveRunsForSession as n, parseActivationCommand as nn, resolveTtsProviderOrder as nr, sha256HexPrefix as nt, subagent_registry_exports as o, resolveUsageProviderId as on, OPENAI_TTS_MODELS as or, runMessageAction as ot, createPluginLoaderLogger as p, resolveHeartbeatReasonKind as pn, waitForActiveTasks as pr, formatTargetDisplay as pt, resolveCronStyleNow as q, normalizeMentionText as qn, deferGatewayRestartUntilIdle as qt, initSubagentRegistry as r, loadProviderUsageSummary as rn, setTtsEnabled as rr, createSymiTools as rt, runSubagentAnnounceFlow as s, buildChannelSummary as sn, OPENAI_TTS_VOICES as sr, ensureOutboundSessionEntry as st, countActiveDescendantRuns as t, normalizeGroupActivation as tn, resolveTtsPrefsPath as tr, runCliAgent as tt, buildDefaultToolPolicyPipelineSteps as u, resolveCommitHash as un, getTotalQueueSize as ur, resolveHeartbeatSenderContext as ut, requestBodyErrorToText as v, buildAuthHealthSummary as vn, resolveHeartbeatPrompt as vr, consumeRestartSentinel as vt, resolveAgentOutboundTarget as w, isSystemEventContextChanged as wn, registerAgentRunContext as wr, writeRestartSentinel as wt, agentCommand as x, applyVerboseOverride as xn, emitAgentEvent as xr, readRestartSentinel as xt, computeBackoff as y, formatRemainingShort as yn, stripHeartbeatToken as yr, formatDoctorNonInteractiveHint as yt, provider_dispatcher_exports as z, formatInboundEnvelope as zn, CHANNEL_TARGET_DESCRIPTION as zt };
73540
+ export { getCliSessionId as $, resolveTtsApiKey as $n, setGatewaySigusr1RestartPolicy as $t, loadAgentIdentityFromWorkspace as A, DEFAULT_INPUT_MAX_REDIRECTS as An, normalizeOptionalAgentId as At, dispatchInboundMessage as B, formatInboundEnvelope as Bn, CHANNEL_TARGET_DESCRIPTION as Bt, resolveAgentDeliveryPlan as C, parseVerboseOverride as Cn, getAgentRunContext as Cr, summarizeRestartSentinel as Ct, createOutboundSendDeps$1 as D, peekSystemEvents as Dn, normalizeCronJobCreate as Dt, createDefaultDeps as E, peekSystemEventEntries as En, normalizeHttpWebhookUrl as Et, buildHistoryContextFromEntries as F, resolveInputFileLimits as Fn, migrateLegacyCronPayload as Ft, BARE_SESSION_RESET_PROMPT as G, isAbortTrigger as Gn, applyBrowserProxyPaths as Gt, getTotalPendingReplies as H, formatZonedTimestamp as Hn, detectSuspiciousPatterns as Ht, recordPendingHistoryEntryIfEnabled as I, estimateBase64DecodedBytes as In, buildDeliveryFromLegacyPayload as It, runAgentTurn as J, normalizeMentionText as Jn, deferGatewayRestartUntilIdle as Jt, appendCronStyleCurrentTimeLine as K, stopSubagentsForRequester as Kn, persistBrowserProxyFiles as Kt, shouldAckReactionForWhatsApp as L, resolveAgentTimeoutMs as Ln, hasLegacyDeliveryHints as Lt, buildPairingReply as M, extractFileContentFromSource as Mn, normalizeOptionalText as Mt, resolveMentionGating as N, extractImageContentFromSource as Nn, normalizePayloadToSystemText as Nt, resolveAgentAvatar as O, DEFAULT_INPUT_IMAGE_MAX_BYTES as On, normalizeCronJobPatch as Ot, DEFAULT_GROUP_HISTORY_LIMIT as P, normalizeMimeList as Pn, normalizeRequiredName as Pt, resolveModelProfile as Q, isTtsProviderConfigured as Qn, scheduleGatewaySigusr1Restart as Qt, dispatchReplyWithBufferedBlockDispatcher as R, createInboundDebouncer as Rn, stripLegacyDeliveryFields as Rt, resolveSessionKeyForRequest as S, applyVerboseOverride as Sn, emitAgentEvent as Sr, readRestartSentinel as St, createOutboundSendDeps as T, isSystemEventContextChanged as Tn, registerAgentRunContext as Tr, writeRestartSentinel as Tt, createDedupeCache as U, hasControlCommand as Un, getHookType as Ut, createReplyDispatcher as V, resolveEnvelopeFormatOptions as Vn, buildSafeExternalPrompt as Vt, getReplyFromConfig as W, shouldComputeCommandAuthorized as Wn, isExternalHookSession as Wt, getActiveEmbeddedRunCount as X, getTtsProvider as Xn, isGatewaySigusr1RestartExternallyAllowed as Xt, abortEmbeddedPiRun as Y, resolveUserTimezone as Yn, emitGatewayRestart as Yt, waitForEmbeddedPiRunEnd as Z, isTtsEnabled as Zn, markGatewaySigusr1RestartHandled as Zt, readJsonBodyWithLimit as _, maskApiKey as _n, DEFAULT_HEARTBEAT_EVERY as _r, runWithModelFallback as _t, listSubagentRunsForRequester as a, formatUsageReportLines as an, setTtsProvider as ar, readLatestAssistantReply as at, sleepWithAbort as b, formatRemainingShort as bn, stripHeartbeatToken as br, formatDoctorNonInteractiveHint as bt, clearSessionQueues as c, buildChannelSummary as cn, OPENAI_TTS_VOICES as cr, ensureOutboundSessionEntry as ct, sniffMimeFromBase64 as d, resolveCommitHash as dn, getTotalQueueSize as dr, resolveHeartbeatSenderContext as dt, setPreRestartDeferralCheck as en, resolveTtsAutoMode as er, setCliSessionId as et, getPluginToolMeta as f, requestHeartbeatNow as fn, resetAllLanes as fr, resolveOutboundTarget as ft, handleSlackHttpRequest as g, resolveSendPolicy as gn, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as gr, CHANNEL_MESSAGE_ACTION_NAMES as gt, deleteTelegramUpdateOffset as h, normalizeSendPolicy as hn, CommandLane as hr, resetDirectoryCache as ht, listDescendantRunsForRequester as i, loadProviderUsageSummary as in, setTtsEnabled as ir, listTasksInWorkdir as it, parseIdentityMarkdown as j, DEFAULT_INPUT_TIMEOUT_MS as jn, normalizeOptionalSessionKey as jt, identityHasValues as k, DEFAULT_INPUT_IMAGE_MIMES as kn, inferLegacyName as kt, applyToolPolicyPipeline as l, buildChannelAccountSnapshot as ln, getActiveTaskCount as lr, resolveOutboundSessionRoute as lt, loadSymiPlugins as m, resolveHeartbeatReasonKind as mn, waitForActiveTasks as mr, formatTargetDisplay as mt, countActiveRunsForSession as n, normalizeGroupActivation as nn, resolveTtsPrefsPath as nr, sha256HexPrefix as nt, subagent_registry_exports as o, formatUsageWindowSummary as on, textToSpeech as or, resolveAnnounceTargetFromKey as ot, createPluginLoaderLogger as p, setHeartbeatWakeHandler as pn, setCommandLaneConcurrency as pr, resolveSessionDeliveryTarget as pt, resolveCronStyleNow as q, buildMentionRegexes as qn, consumeGatewaySigusr1RestartAuthorization as qt, initSubagentRegistry as r, parseActivationCommand as rn, resolveTtsProviderOrder as rr, createSymiTools as rt, runSubagentAnnounceFlow as s, resolveUsageProviderId as sn, OPENAI_TTS_MODELS as sr, runMessageAction as st, countActiveDescendantRuns as t, unbindThreadBindingsBySessionKey as tn, resolveTtsConfig as tr, runCliAgent as tt, buildDefaultToolPolicyPipelineSteps as u, formatChannelAllowFrom as un, getQueueSize as ur, resolveHeartbeatDeliveryTarget as ut, requestBodyErrorToText as v, DEFAULT_OAUTH_WARN_MS as vn, isHeartbeatContentEffectivelyEmpty as vr, describeFailoverError as vt, resolveAgentOutboundTarget as w, enqueueSystemEvent as wn, onAgentEvent as wr, trimLogTail as wt, agentCommand as x, applyModelOverrideToSessionEntry as xn, clearAgentRunContext as xr, formatRestartSentinelMessage as xt, computeBackoff as y, buildAuthHealthSummary as yn, resolveHeartbeatPrompt as yr, consumeRestartSentinel as yt, provider_dispatcher_exports as z, resolveInboundDebounceMs as zn, CHANNEL_TARGETS_DESCRIPTION as zt };
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { zt as runAgentTurn } from "./reply-D7_t00Jt.js";
4
+ import { Bt as runAgentTurn } from "./reply-D455A6SA.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { t as createSubsystemLogger } 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-0jm-n36m.js";
64
- import "./manager-TOeH0D8K.js";
63
+ import "./memory-cli-DRLrIa8h.js";
64
+ import "./manager-wF-n_prX.js";
65
65
  import "./retry-BoS4e4X_.js";
66
66
  import "./sqlite-D55gRQbH.js";
67
67
  import "./target-errors-C9e6dMU_.js";
@@ -71,8 +71,8 @@ import "./ir-jTXFdH5R.js";
71
71
  import "./render-Bwu_WxwA.js";
72
72
  import "./commands-vWB85AXk.js";
73
73
  import "./commands-registry-D_uByLpw.js";
74
- import "./client-C7AOOnKZ.js";
75
- import "./call-Cmb04dff.js";
74
+ import "./client-CYsBIR3j.js";
75
+ import "./call-BkJK3eYP.js";
76
76
  import "./pairing-token-pooyuU2J.js";
77
77
  import "./channel-activity-CoTZV03i.js";
78
78
  import "./fetch-BECUf3wn.js";
@@ -93,12 +93,12 @@ import "./session-cost-usage-RPrhIvZF.js";
93
93
  import "./outbound-attachment-FbHNOB0s.js";
94
94
  import "./delivery-queue-D9i0qjI_.js";
95
95
  import "./send-SF7x1UHb.js";
96
- import "./onboard-helpers-C8f_xi6R.js";
96
+ import "./onboard-helpers-B7jBYbCU.js";
97
97
  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";
@@ -3,7 +3,7 @@ import "./registry-DYq1AYOv.js";
3
3
  import "./agent-scope-CpEJ0B88.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
5
5
  import "./workspace-DscDraUb.js";
6
- import { t as runAgentTurn } from "./unified-runner-DaSb-TsZ.js";
6
+ import { t as runAgentTurn } from "./unified-runner-CpyVnelK.js";
7
7
  import "./paths-CbQV9WEg.js";
8
8
  import "./auth-profiles-C2vj6htZ.js";
9
9
  import "./env-BDXYbTKj.js";
@@ -39,7 +39,7 @@ import "./tokens-W0JzCJJM.js";
39
39
  import "./send-Bb4it0te.js";
40
40
  import "./pi-model-discovery-CuZX_Q4t.js";
41
41
  import "./reply-prefix-CvEIl6_d.js";
42
- import "./manager-_RGWWymD.js";
42
+ import "./manager-D0_H4LHh.js";
43
43
  import "./gemini-auth-BefM10YB.js";
44
44
  import "./retry-B-y5suGA.js";
45
45
  import "./sqlite-BN_hIcmu.js";
@@ -10,11 +10,11 @@ import "./frontmatter-B8duUx_6.js";
10
10
  import "./skills-D_oCiaQn.js";
11
11
  import "./manifest-registry-D5bnO5uA.js";
12
12
  import "./config-DXt3pc08.js";
13
- import "./client-qUlxXXVJ.js";
14
- import "./call-BrRWr7Lj.js";
13
+ import "./client-Cmq13-uF.js";
14
+ import "./call-CAGvQYXj.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import { J as runAgentTurn } from "./subagent-registry-BvP8AGdE.js";
17
+ import { J as runAgentTurn } from "./subagent-registry-B1HJJs3Q.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-BSOOwpt1.js";
56
- import "./manager-syNf_ZrI.js";
55
+ import "./memory-cli-eSWCbEiS.js";
56
+ import "./manager-B60Ncruq.js";
57
57
  import "./gemini-auth-DEakvf-D.js";
58
58
  import "./retry-C4Q_VPOo.js";
59
59
  import "./sqlite-BP8tiuca.js";
@@ -94,10 +94,10 @@ import "./cli-utils-CI_KkT8q.js";
94
94
  import "./help-format-nY42tGMB.js";
95
95
  import "./progress-HK2tT7Yf.js";
96
96
  import "./replies-Sxbew659.js";
97
- import "./onboard-helpers-CF0Cp3OB.js";
97
+ import "./onboard-helpers-DjlGq6iG.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
 
102
102
  //#region src/memory/synthesis.ts
103
103
  const log = createSubsystemLogger("memory/synthesis");
@@ -7,7 +7,7 @@ import "./reply-prefix-K_J_nfgx.js";
7
7
  import "./github-copilot-token-BbsJ0Qbo.js";
8
8
  import "./env-CQ_DQOwT.js";
9
9
  import "./tokens-Cn6drXx2.js";
10
- import { p as runAgentTurn } from "./pi-embedded-DCBB1_SC.js";
10
+ import { p as runAgentTurn } from "./pi-embedded-CGwqumSe.js";
11
11
  import "./plugins-71oIavrF.js";
12
12
  import "./accounts-DDEyGwby.js";
13
13
  import "./bindings-DYVakimr.js";
@@ -35,7 +35,7 @@ import "./accounts-DImOt9jX.js";
35
35
  import "./paths-DkMamAQ-.js";
36
36
  import "./tool-images-ChC2CXaN.js";
37
37
  import "./image-tzIqIuKx.js";
38
- import "./manager-DRrGn88w.js";
38
+ import "./manager-B76ofKkW.js";
39
39
  import "./gemini-auth-DVcG-42i.js";
40
40
  import "./retry-QGp0jvVi.js";
41
41
  import "./sqlite-Bo4pHfp8.js";
@@ -5,13 +5,13 @@ import "./agent-scope-D-jRCY0d.js";
5
5
  import "./github-copilot-token-DuFIqfeC.js";
6
6
  import "./manifest-registry-D5bnO5uA.js";
7
7
  import "./config-DXt3pc08.js";
8
- import "./client-qUlxXXVJ.js";
9
- import "./call-BrRWr7Lj.js";
8
+ import "./client-Cmq13-uF.js";
9
+ import "./call-CAGvQYXj.js";
10
10
  import "./message-channel-C9dERklz.js";
11
11
  import "./pairing-token-Byh6drgn.js";
12
12
  import { t as formatDocsLink } from "./links-CxyMXTsn.js";
13
13
  import "./progress-HK2tT7Yf.js";
14
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BKJyAcQd.js";
14
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DbSbyIcL.js";
15
15
 
16
16
  //#region src/cli/system-cli.ts
17
17
  const normalizeWakeMode = (raw) => {
@@ -11,12 +11,12 @@ import "./env-DPCHYPeH.js";
11
11
  import "./message-channel-aT-I_DTX.js";
12
12
  import "./config-PXAJCHa5.js";
13
13
  import "./manifest-registry-BDSRH8nU.js";
14
- import "./client-C7AOOnKZ.js";
15
- import "./call-Cmb04dff.js";
14
+ import "./client-CYsBIR3j.js";
15
+ import "./call-BkJK3eYP.js";
16
16
  import "./pairing-token-pooyuU2J.js";
17
17
  import { t as formatDocsLink } from "./links-DGINhC21.js";
18
18
  import "./progress-WhkkDU0H.js";
19
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DActF8Qj.js";
19
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-QsFn5Zr1.js";
20
20
 
21
21
  //#region src/cli/system-cli.ts
22
22
  const normalizeWakeMode = (raw) => {
@@ -8,8 +8,8 @@ import { _ as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-DHAJW99
8
8
  import { k as stripLeadingInboundMetadata } from "./sessions-BeYHj0gr.js";
9
9
  import { n as resolveToolDisplay, t as formatToolDetail } from "./tool-display-D8N3rsYt.js";
10
10
  import { a as listChatCommandsForConfig, i as listChatCommands } from "./commands-registry-D_uByLpw.js";
11
- import { Nt as PROTOCOL_VERSION, t as GatewayClient } from "./client-C7AOOnKZ.js";
12
- import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-Cmb04dff.js";
11
+ import { Pt as PROTOCOL_VERSION, t as GatewayClient } from "./client-CYsBIR3j.js";
12
+ import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-BkJK3eYP.js";
13
13
  import { n as formatTimeAgo, t as formatRelativeTimestamp } from "./format-relative-CviDPm2s.js";
14
14
  import { n as formatTokenCount } from "./usage-format-D4P4IiJ6.js";
15
15
  import chalk from "chalk";
@@ -2,8 +2,8 @@ import { h as visibleWidth, m as stripAnsi } from "./entry.js";
2
2
  import { S as parseAgentSessionKey, c as normalizeMainKey, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-DjZ7Z1hW.js";
3
3
  import { l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
4
4
  import { H as VERSION, i as loadConfig } from "./config-DXt3pc08.js";
5
- import { Nt as PROTOCOL_VERSION, t as GatewayClient } from "./client-qUlxXXVJ.js";
6
- import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-BrRWr7Lj.js";
5
+ import { Pt as PROTOCOL_VERSION, t as GatewayClient } from "./client-Cmq13-uF.js";
6
+ import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-CAGvQYXj.js";
7
7
  import { f as GATEWAY_CLIENT_CAPS, h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C9dERklz.js";
8
8
  import { C as stripLeadingInboundMetadata } from "./sessions-BPD85pWA.js";
9
9
  import { _ as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-YD1JQ5xV.js";
@@ -43,12 +43,12 @@ import "./tool-images-DvUBlqjX.js";
43
43
  import "./tool-display-D8N3rsYt.js";
44
44
  import "./commands-vWB85AXk.js";
45
45
  import "./commands-registry-D_uByLpw.js";
46
- import "./client-C7AOOnKZ.js";
47
- import "./call-Cmb04dff.js";
46
+ import "./client-CYsBIR3j.js";
47
+ import "./call-BkJK3eYP.js";
48
48
  import "./pairing-token-pooyuU2J.js";
49
49
  import { t as formatDocsLink } from "./links-DGINhC21.js";
50
50
  import { t as parseTimeoutMs } from "./parse-timeout-rlcChuHD.js";
51
- import { t as runTui } from "./tui-CvHbwJ3G.js";
51
+ import { t as runTui } from "./tui-Cu4TZK3I.js";
52
52
 
53
53
  //#region src/cli/tui-cli.ts
54
54
  function registerTuiCli(program) {