@symerian/symi 3.4.3 → 3.4.8

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 (263) hide show
  1. package/dist/{agent-CKmM2vyY.js → agent-BaSGoKPq.js} +8 -8
  2. package/dist/{agent--IK5M1T9.js → agent-C8IIjDyn.js} +8 -8
  3. package/dist/{agents-CyR_QeUn.js → agents-D6Ygz9ED.js} +5 -5
  4. package/dist/{audit-o0s717ob.js → audit-BI8Rbs5q.js} +6 -6
  5. package/dist/{audit-DQpLuCNP.js → audit-nqP-JeOr.js} +6 -6
  6. package/dist/{auth-choice-WduOdkq8.js → auth-choice-BBrEzoy2.js} +4 -4
  7. package/dist/{auth-choice-CUs4WmYv.js → auth-choice-Bx4Duu6u.js} +4 -4
  8. package/dist/{banner-CJWij079.js → banner-l9GjW5Rm.js} +1 -1
  9. package/dist/{browser-cli-BdYqssco.js → browser-cli-BAxOL41p.js} +4 -4
  10. package/dist/{browser-cli-C6G2Ql9l.js → browser-cli-Bk8DxxeA.js} +4 -4
  11. package/dist/build-info.json +3 -3
  12. package/dist/bundled/boot-md/handler.js +8 -8
  13. package/dist/bundled/session-memory/handler.js +7 -7
  14. package/dist/{call-Dy_T6f6d.js → call-5IE9ycvm.js} +2 -4
  15. package/dist/{call-CbF18cyd.js → call-BPJn2_th.js} +2 -4
  16. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  17. package/dist/{channel-options-CDA0OfJ3.js → channel-options-COanIUoQ.js} +1 -1
  18. package/dist/{channel-options-CZEn3Cel.js → channel-options-DGUqfnbP.js} +1 -1
  19. package/dist/{channels-cli-C84jkCS9.js → channels-cli-B1zmnm5a.js} +26 -26
  20. package/dist/{channels-cli-veDmkOnJ.js → channels-cli-CZ3M3yE1.js} +27 -27
  21. package/dist/{chrome-BxWRyWC_.js → chrome-B0wRtBRB.js} +1 -1
  22. package/dist/{chrome-C0vnHDyY.js → chrome-B4P7ycw5.js} +1 -1
  23. package/dist/{chrome-BWQSyLHT.js → chrome-CQn8fDIy.js} +8 -8
  24. package/dist/{chrome-D5UEEo4y.js → chrome-VbDUdW0_.js} +1 -1
  25. package/dist/{cli-BBd1ZRun.js → cli-C7I5uEFC.js} +22 -22
  26. package/dist/{cli-SeEQuQkN.js → cli-CC5GrdTI.js} +23 -23
  27. package/dist/{client-CAz5aPpp.js → client-Dp8LUTmF.js} +2 -5
  28. package/dist/{client-ZZqt0H0-.js → client-qjXXRKCO.js} +2 -5
  29. package/dist/{command-registry-CVsOBck9.js → command-registry-D8fj6th4.js} +11 -11
  30. package/dist/{completion-cli-B5bq51hT.js → completion-cli-BxspmuYm.js} +2 -2
  31. package/dist/{completion-cli-BoD_MZfu.js → completion-cli-C-85b5b8.js} +1 -1
  32. package/dist/{config-MU0QT0xu.js → config-DqMsGcSQ.js} +0 -2
  33. package/dist/{config-cli-Bbb6yrgS.js → config-cli-BqzjDmIH.js} +2 -2
  34. package/dist/{config-cli--_Qaef5L.js → config-cli-DSDGwckX.js} +2 -2
  35. package/dist/{config-guard-BFH1qNlf.js → config-guard-CJcSKMuP.js} +3 -3
  36. package/dist/{config-guard-DQgHcGdp.js → config-guard-Cu-dwAgi.js} +2 -2
  37. package/dist/{config-Cw7uo7Dh.js → config-igdtSRrZ.js} +0 -2
  38. package/dist/{config-validation-BkJh21Ko.js → config-validation-Bp2wJ610.js} +1 -1
  39. package/dist/{config-validation-MUkEKwbD.js → config-validation-Bs1Gp2oG.js} +1 -1
  40. package/dist/{configure-C-39fnS7.js → configure-BazJdwKU.js} +10 -10
  41. package/dist/{configure-B64O-IVQ.js → configure-Dl1f1Den.js} +10 -10
  42. package/dist/{control-service-BTydj9Kk.js → control-service-DO8FjrS6.js} +4 -4
  43. package/dist/{control-service-D1aZqS0Q.js → control-service-Fn3d9AlH.js} +4 -4
  44. package/dist/control-ui/js/metrics.js +0 -10
  45. package/dist/{cron-cli-5souN2YC.js → cron-cli-DXgI5Lid.js} +7 -10
  46. package/dist/{cron-cli-Ch8MwxYs.js → cron-cli-DZyH2BfZ.js} +7 -10
  47. package/dist/{daemon-cli-DbwmIQAj.js → daemon-cli-C6FSROt1.js} +6 -6
  48. package/dist/{daemon-cli-AVJLjFd5.js → daemon-cli-DmMYx5Uf.js} +6 -6
  49. package/dist/daemon-cli.js +2 -9
  50. package/dist/{daemon-runtime-CkBw3gG5.js → daemon-runtime-2Y9RfgcP.js} +1 -1
  51. package/dist/{daemon-runtime-DDwhgI7i.js → daemon-runtime-BpfA4d6Q.js} +1 -1
  52. package/dist/{deliver-BwcK0QD6.js → deliver-BkCYBlzi.js} +5 -5
  53. package/dist/{deliver-BBoTRer2.js → deliver-DvW5xHHr.js} +5 -5
  54. package/dist/{deliver-BX3IOm7k.js → deliver-RwovDEDy.js} +1 -1
  55. package/dist/{deliver-Cl2fWxx4.js → deliver-izdrXPr4.js} +1 -1
  56. package/dist/{deps-BCywDAi0.js → deps-bCHNuszw.js} +1 -1
  57. package/dist/{devices-cli-ZiU2HGbP.js → devices-cli-D6xXc9Ym.js} +3 -3
  58. package/dist/{devices-cli-BXaodSI7.js → devices-cli-IMv-0zor.js} +3 -3
  59. package/dist/{directory-cli-cK6CHm4W.js → directory-cli-3wlYB9In.js} +1 -1
  60. package/dist/{directory-cli-DJnKldBM.js → directory-cli-ClbYhd6z.js} +1 -1
  61. package/dist/{dns-cli-LhrwMgGE.js → dns-cli-CY2voLuR.js} +1 -1
  62. package/dist/{dns-cli-D6uc55C9.js → dns-cli-CoVIqRWx.js} +1 -1
  63. package/dist/{doctor-completion-BmJ6Xtlu.js → doctor-completion-BwHbIZjF.js} +1 -1
  64. package/dist/{doctor-completion-CUC2jl4R.js → doctor-completion-CX7LjkOD.js} +1 -1
  65. package/dist/{doctor-config-flow-DJrfwr2x.js → doctor-config-flow-CYDx1U0Z.js} +2 -2
  66. package/dist/{doctor-config-flow-BXjmJyRY.js → doctor-config-flow-wvoEFNeZ.js} +2 -2
  67. package/dist/entry.js +1 -1
  68. package/dist/{exec-approvals-cli-DqWFmApk.js → exec-approvals-cli-B_P-1zVp.js} +5 -5
  69. package/dist/{exec-approvals-cli-BI9yAGI5.js → exec-approvals-cli-Dy1jvh2M.js} +5 -5
  70. package/dist/extensionAPI.js +6 -6
  71. package/dist/{gateway-cli-DtWLXC5j.js → gateway-cli-CTcK1Az2.js} +47 -72
  72. package/dist/{gateway-cli-D3MIV11i.js → gateway-cli-CW-Z71cE.js} +48 -73
  73. package/dist/{gateway-rpc-B5_ZCiHW.js → gateway-rpc-C1xjWlxu.js} +1 -1
  74. package/dist/{gateway-rpc-RZAJMB1i.js → gateway-rpc-DD_aXogj.js} +1 -1
  75. package/dist/{glass-ui-ws-BzGjkdgV.js → glass-ui-ws-BNJkhJrL.js} +32 -32
  76. package/dist/{glass-ui-ws-C4tW88dG.js → glass-ui-ws-BZvH4MBO.js} +33 -33
  77. package/dist/{health-DnOYGIFp.js → health-D8cKia4i.js} +4 -60
  78. package/dist/{health-D2CsIdFz.js → health-DdzNc1yA.js} +4 -60
  79. package/dist/{hooks-cli-XjhtoSGz.js → hooks-cli-DkP3Y4ou.js} +23 -23
  80. package/dist/{hooks-cli-PSE_YjYr.js → hooks-cli-qO421UdO.js} +24 -24
  81. package/dist/index.js +28 -28
  82. package/dist/{lifecycle-core-B9_prcP5.js → lifecycle-core-BEmljRfh.js} +2 -2
  83. package/dist/{lifecycle-core-Dark4HHr.js → lifecycle-core-uN2bsrZs.js} +2 -2
  84. package/dist/llm-slug-generator.js +7 -7
  85. package/dist/{logs-cli-CVBGriNc.js → logs-cli-BB0Mq8D1.js} +4 -4
  86. package/dist/{logs-cli-Dqq-1RM5.js → logs-cli-Dbmzz8m_.js} +4 -4
  87. package/dist/{manager-WHZtXzz0.js → manager-BD_cpL9b.js} +1 -1
  88. package/dist/{manager-z92Qfa3m.js → manager-BQaZlWzK.js} +1 -1
  89. package/dist/{manager-GRHfrG3p.js → manager-D0NIHMuQ.js} +1 -1
  90. package/dist/{manager-BFOp2VHW.js → manager-DOiW-Koo.js} +1 -1
  91. package/dist/{memory-CUt9fSz8.js → memory-Cl4I_45k.js} +3 -3
  92. package/dist/{memory-cli-BlBxrZF2.js → memory-cli-CszP57Ee.js} +3 -3
  93. package/dist/{memory-cli-DXmGAhFX.js → memory-cli-DkD_OD70.js} +3 -3
  94. package/dist/{memory-cQbfKDAe.js → memory-kIYeV9aO.js} +3 -3
  95. package/dist/{model-catalog-Ba4R_zVe.js → model-catalog-C2rNhRI4.js} +2 -2
  96. package/dist/{model-catalog-De1c8o1y.js → model-catalog-CaGfL-2g.js} +2 -2
  97. package/dist/{model-picker-BQrdlRCb.js → model-picker-4NUXHy8M.js} +2 -2
  98. package/dist/{model-picker-C4xfgSwe.js → model-picker-CV56GE8A.js} +2 -2
  99. package/dist/{models-CBuTLoD4.js → models-BYi0Fo1a.js} +9 -9
  100. package/dist/{models-cli-DLc8lwUF.js → models-cli-Bn9M1TgO.js} +26 -26
  101. package/dist/{models-cli-D0reLJxf.js → models-cli-EdjvkvFO.js} +27 -27
  102. package/dist/{models-config-C-VjjDXg.js → models-config-Unnduxgs.js} +1 -1
  103. package/dist/{models-config-C2OLw8vc.js → models-config-yKxNCn4V.js} +1 -1
  104. package/dist/{node-cli-C4uJ1LcV.js → node-cli-39H0MZ8q.js} +10 -10
  105. package/dist/{node-cli-MO_9MCpD.js → node-cli-C8FYMIjN.js} +10 -10
  106. package/dist/{nodes-cli-C52eXJSX.js → nodes-cli-C-03nIJ0.js} +4 -4
  107. package/dist/{nodes-cli-C70ejrs0.js → nodes-cli-CqxQexTU.js} +4 -4
  108. package/dist/{onboard-RyyCiCgk.js → onboard-C8IQnigm.js} +7 -7
  109. package/dist/{onboard-Dky6Vgqw.js → onboard-CAIujkV7.js} +7 -7
  110. package/dist/{onboard-channels-jAqPucaS.js → onboard-channels-B2l6OoMg.js} +1 -1
  111. package/dist/{onboard-channels-B7nvfziF.js → onboard-channels-D_uUQbem.js} +1 -1
  112. package/dist/{onboard-custom-CEBV-OCa.js → onboard-custom-B2fJvyxt.js} +2 -2
  113. package/dist/{onboard-custom-CMle6THh.js → onboard-custom-DcZ2SEUv.js} +2 -2
  114. package/dist/{onboard-helpers-C5YryU1N.js → onboard-helpers-Bm-oyLWy.js} +2 -2
  115. package/dist/{onboard-helpers-DpIB1xVU.js → onboard-helpers-CHfdRdZR.js} +2 -2
  116. package/dist/{onboard-remote-BDvWSzRz.js → onboard-remote-ecyetiyL.js} +1 -1
  117. package/dist/{onboard-remote-DZa5gKRe.js → onboard-remote-z8XLK4M0.js} +1 -1
  118. package/dist/{onboard-skills-5Ty3AuY6.js → onboard-skills-BLvL0KPR.js} +1 -1
  119. package/dist/{onboard-skills-Bv4-MQ7C.js → onboard-skills-C53RGq_5.js} +1 -1
  120. package/dist/{onboarding-BxybJPim.js → onboarding-4v9LJueP.js} +10 -10
  121. package/dist/{onboarding-B7vTX33U.js → onboarding-BIq5BxG0.js} +10 -10
  122. package/dist/{onboarding.finalize-Cjck4WX4.js → onboarding.finalize-Bkcwe5RS.js} +16 -16
  123. package/dist/{onboarding.finalize-Cm8jc2yf.js → onboarding.finalize-CXAQzVXM.js} +17 -17
  124. package/dist/{onboarding.gateway-config-BDJ4tufO.js → onboarding.gateway-config-3JMN1xRf.js} +5 -5
  125. package/dist/{onboarding.gateway-config-DP9rTU6-.js → onboarding.gateway-config-Ft3f6Jba.js} +5 -5
  126. package/dist/{outbound-send-deps-CBRh4LsL.js → outbound-send-deps-Dmc3B-LK.js} +1 -1
  127. package/dist/{pairing-cli-mM4XdTk0.js → pairing-cli-B_icqS8Y.js} +1 -1
  128. package/dist/{pairing-cli-WOgnEerl.js → pairing-cli-CJGA4j6G.js} +1 -1
  129. package/dist/{pi-embedded-BvMMjrvj.js → pi-embedded-CGebiST2.js} +20 -41
  130. package/dist/{pi-embedded-helpers-BbBfO9m_.js → pi-embedded-helpers-BwBjqJM5.js} +1 -1
  131. package/dist/{pi-embedded-helpers-D4cxQiPr.js → pi-embedded-helpers-CAdI9wJ5.js} +1 -1
  132. package/dist/{pi-tools.policy--USPnaLr.js → pi-tools.policy-BaRznBvu.js} +2 -2
  133. package/dist/{pi-tools.policy-NmG0EGEY.js → pi-tools.policy-Dyx3nBmp.js} +2 -2
  134. package/dist/{plugin-registry-D9f4FfDL.js → plugin-registry-D7ACpV2Y.js} +2 -2
  135. package/dist/{plugin-registry-DOQyKvh2.js → plugin-registry-d4hMhLLZ.js} +2 -2
  136. package/dist/plugin-sdk/agents/system-prompt.d.ts +1 -1
  137. package/dist/plugin-sdk/agents/unified-runner.d.ts +5 -5
  138. package/dist/plugin-sdk/auto-reply/reply/turn-middleware.d.ts +2 -2
  139. package/dist/plugin-sdk/channels/plugins/types.adapters.d.ts +1 -21
  140. package/dist/plugin-sdk/channels/plugins/types.core.d.ts +1 -5
  141. package/dist/plugin-sdk/channels/plugins/types.d.ts +2 -2
  142. package/dist/plugin-sdk/channels/plugins/types.plugin.d.ts +1 -2
  143. package/dist/plugin-sdk/commands/health.d.ts +0 -12
  144. package/dist/plugin-sdk/config/types.base.d.ts +0 -1
  145. package/dist/plugin-sdk/config/types.hooks.d.ts +0 -1
  146. package/dist/plugin-sdk/config/types.tools.d.ts +1 -1
  147. package/dist/plugin-sdk/config/zod-schema.d.ts +0 -2
  148. package/dist/plugin-sdk/config/zod-schema.hooks.d.ts +0 -1
  149. package/dist/plugin-sdk/cron/service/ops.d.ts +0 -1
  150. package/dist/plugin-sdk/cron/service/state.d.ts +1 -1
  151. package/dist/plugin-sdk/cron/service/timer.d.ts +0 -1
  152. package/dist/plugin-sdk/cron/service.d.ts +0 -1
  153. package/dist/plugin-sdk/cron/types.d.ts +1 -1
  154. package/dist/plugin-sdk/gateway/protocol/index.d.ts +1 -2
  155. package/dist/plugin-sdk/gateway/protocol/schema/agent.d.ts +0 -1
  156. package/dist/plugin-sdk/gateway/protocol/schema/cron.d.ts +3 -3
  157. package/dist/plugin-sdk/index.js +0 -2
  158. package/dist/plugin-sdk/plugin-sdk/index.d.ts +1 -1
  159. package/dist/{plugins-cli-R-ZE64Cv.js → plugins-cli-CPf1hMaZ.js} +23 -23
  160. package/dist/{plugins-cli-Biq9COww.js → plugins-cli-D1gd8p9T.js} +24 -24
  161. package/dist/{program-Cg53oQfq.js → program-C19G7o-Q.js} +30 -30
  162. package/dist/{program-context-CLtVUsa6.js → program-context-BSUkEz3n.js} +38 -38
  163. package/dist/{prompt-select-styled-CGS3IQAy.js → prompt-select-styled-B5wlPYN5.js} +15 -15
  164. package/dist/{prompt-select-styled-2-MTlOry.js → prompt-select-styled-CnYM7W0j.js} +15 -15
  165. package/dist/{provider-auth-helpers-DTc5TSWH.js → provider-auth-helpers-BUC4xGK9.js} +2 -2
  166. package/dist/{provider-auth-helpers-BHqejuN7.js → provider-auth-helpers-DpRoNr_8.js} +2 -2
  167. package/dist/{push-apns-9QCL6OFW.js → push-apns-Bm39oOO9.js} +1 -1
  168. package/dist/{push-apns-DFKohq1V.js → push-apns-DqmFEcqh.js} +1 -1
  169. package/dist/{pw-ai-DuPDo_Ia.js → pw-ai-B0-pgbYu.js} +2 -2
  170. package/dist/{pw-ai-CyCnG_Kj.js → pw-ai-B2NuWIL7.js} +2 -2
  171. package/dist/{pw-ai-CNOE7SUx.js → pw-ai-BB1pJj9_.js} +2 -2
  172. package/dist/{pw-ai-Bc5uzn_J.js → pw-ai-BsEf8C15.js} +2 -2
  173. package/dist/{qr-cli-D5Gl0wH3.js → qr-cli-Cx7DYTSk.js} +1 -1
  174. package/dist/{qr-cli-BXf1ID0g.js → qr-cli-hPIeUYAT.js} +1 -1
  175. package/dist/{redact-identifier-QYENCXvy.js → redact-identifier-Cm1VfV7E.js} +1 -1
  176. package/dist/{register.agent-Bf-zNnpf.js → register.agent-CCKcgAXs.js} +31 -31
  177. package/dist/{register.agent-CUEmf_fe.js → register.agent-DZuxoC0a.js} +33 -33
  178. package/dist/{register.configure-CbUszoWU.js → register.configure-CJErdFO_.js} +34 -34
  179. package/dist/{register.configure-BX1pnvZN.js → register.configure-JT8T7HO5.js} +35 -35
  180. package/dist/{register.maintenance-ck4eLkWr.js → register.maintenance-CKsv0lok.js} +34 -34
  181. package/dist/{register.maintenance-B6Hf-dFR.js → register.maintenance-DDzKUGYJ.js} +32 -32
  182. package/dist/{register.message-B6A5GxKa.js → register.message-CpOXi1rz.js} +24 -24
  183. package/dist/{register.message-DUtzKXxY.js → register.message-_bfhetTg.js} +25 -25
  184. package/dist/{register.onboard-ppi11I2H.js → register.onboard-BHtTh0b_.js} +14 -14
  185. package/dist/{register.onboard-Lt0JI36k.js → register.onboard-CkIM3hU7.js} +14 -14
  186. package/dist/{register.setup-p3Bv9cvy.js → register.setup-CLhdFQHW.js} +14 -14
  187. package/dist/{register.setup-D--UK_mz.js → register.setup-CYtYDKMU.js} +14 -14
  188. package/dist/{register.status-health-sessions-s4im2lAy.js → register.status-health-sessions-DZnebsxZ.js} +18 -18
  189. package/dist/{register.status-health-sessions-DEGk6Zeg.js → register.status-health-sessions-DmX0DLAt.js} +20 -20
  190. package/dist/{register.subclis-Bhsc6TUP.js → register.subclis-CnDo2jzv.js} +28 -28
  191. package/dist/{replies-t5bPemnD.js → replies-B2O2eRh6.js} +1 -1
  192. package/dist/{replies-CH1VlYZQ.js → replies-Bnh0owwH.js} +1 -1
  193. package/dist/{replies-DIWartyA.js → replies-DIHkSwoW.js} +1 -1
  194. package/dist/{replies-CjSfYK97.js → replies-DU-fXkSk.js} +1 -1
  195. package/dist/{routes-CTOYLhQ1.js → routes-BMShi_eY.js} +3 -3
  196. package/dist/{routes-CWYyvbxi.js → routes-Cio8is5Y.js} +3 -3
  197. package/dist/{rpc-DLfjbTSu.js → rpc-CEhoSTGo.js} +1 -1
  198. package/dist/{rpc-BLUOZg0H.js → rpc-D0Ldc6Hv.js} +1 -1
  199. package/dist/{run-main-BbCFxhFG.js → run-main-BIRbWKyA.js} +41 -41
  200. package/dist/{sandbox-B6P9-J8g.js → sandbox-B4RfQ7k1.js} +5 -5
  201. package/dist/{sandbox-CpZmnHRC.js → sandbox-C-UeHmuJ.js} +5 -5
  202. package/dist/{sandbox-cli-kmVLo1NO.js → sandbox-cli-B43FqqPT.js} +6 -6
  203. package/dist/{sandbox-cli-DGcyrD_y.js → sandbox-cli-CNAPNXJ4.js} +6 -6
  204. package/dist/{security-cli-DwBo5cRE.js → security-cli-BSd8_Gsq.js} +10 -10
  205. package/dist/{security-cli-ub7VEaGq.js → security-cli-DDM0Z6IW.js} +10 -10
  206. package/dist/{send-6IYv-yRp.js → send-CGXxBSKh.js} +1 -1
  207. package/dist/{send-zbkImdk9.js → send-DSK6O8SC.js} +1 -1
  208. package/dist/{send-C3ZXgOXw.js → send-EluKytgO.js} +1 -1
  209. package/dist/{server-context-Vd9sEFb9.js → server-context-CDTuNR-O.js} +5 -5
  210. package/dist/{server-context-Dytgl6ZD.js → server-context-DFO6o83F.js} +5 -5
  211. package/dist/{server-methods-CZIqJLhS.js → server-methods-Dz6NGEg3.js} +24 -42
  212. package/dist/{server-methods-B_5RRPVi.js → server-methods-vp5zi6v5.js} +23 -41
  213. package/dist/{server-node-events-lQu3U-Wr.js → server-node-events-4ufB_olv.js} +26 -26
  214. package/dist/{server-node-events-CIsCdDxa.js → server-node-events-B7UtUhkC.js} +25 -25
  215. package/dist/{session-utils-NOQiGgMD.js → session-utils-CgGDr4eh.js} +5 -5
  216. package/dist/{session-utils-CJfEkQQQ.js → session-utils-D1VcHni_.js} +5 -5
  217. package/dist/{sessions-BHrlpR92.js → sessions-BNEDanZO.js} +1 -1
  218. package/dist/{sessions-B7Of0Rqm.js → sessions-Dh88Kqd6.js} +1 -1
  219. package/dist/{sessions-1BZvXUIa.js → sessions-iLfSd6VD.js} +3 -3
  220. package/dist/{shared-ByldVglV.js → shared-CIeW3aWF.js} +1 -1
  221. package/dist/{shared-Bvjz11ts.js → shared-_wwqvx84.js} +1 -1
  222. package/dist/{skills-cli-CFMRYyuc.js → skills-cli-BJDvUT_e.js} +1 -1
  223. package/dist/{skills-cli-BypZ_n-i.js → skills-cli-Byp9MfZh.js} +1 -1
  224. package/dist/{ssrf-CJor4ewC.js → ssrf-CBajKNWO.js} +0 -2
  225. package/dist/{ssrf-BzPY2FrA.js → ssrf-CeQ2Aub-.js} +0 -2
  226. package/dist/{status-BhH4w6Rh.js → status-B0HecH1s.js} +2 -2
  227. package/dist/{status-Dz-fz0Sg.js → status-BD8gFYKH.js} +12 -43
  228. package/dist/{status-BJpznKU1.js → status-DEXnB1sw.js} +11 -42
  229. package/dist/{status-DjbQ_4aI.js → status-MMLxoRgQ.js} +2 -2
  230. package/dist/{status.update-BoxoMaxX.js → status.update-Be8PuHCh.js} +1 -1
  231. package/dist/{status.update-C45HhTTL.js → status.update-CB9e3eWW.js} +1 -1
  232. package/dist/{subagent-registry-DexfLiQ_.js → subagent-registry-C57PFGHU.js} +30 -46
  233. package/dist/{synthesis-DcGTICel.js → synthesis-CQdzrLFL.js} +6 -6
  234. package/dist/{synthesis-BKdyZilP.js → synthesis-CjsIBd8X.js} +22 -22
  235. package/dist/{synthesis-B4G0BnU5.js → synthesis-DSdF0vsi.js} +7 -7
  236. package/dist/{synthesis-B_uoS8jb.js → synthesis-j_kjlFo1.js} +23 -23
  237. package/dist/system-cli-BM8KbtUc.js +48 -0
  238. package/dist/system-cli-CQFH_HwX.js +43 -0
  239. package/dist/{systemd-hints-RoqMZFFM.js → systemd-hints-A1W3AdVo.js} +1 -1
  240. package/dist/{systemd-hints-DQKA3tTS.js → systemd-hints-BejQ6J2Y.js} +1 -1
  241. package/dist/{tui-BrE4FemN.js → tui-D0j61PXx.js} +6 -16
  242. package/dist/{tui-CckiZT5A.js → tui-DFuScHlA.js} +6 -16
  243. package/dist/{tui-cli-SrnAqI8U.js → tui-cli-25xTveHh.js} +10 -10
  244. package/dist/{tui-cli-e0WhCXvw.js → tui-cli-C3dXNtPo.js} +10 -10
  245. package/dist/{unified-runner-BSdnT6eM.js → unified-runner-BNt7TQKM.js} +18 -39
  246. package/dist/{unified-runner-IQkrAem7.js → unified-runner-DCiPB--z.js} +29 -45
  247. package/dist/{update-cli-jbW8hE0j.js → update-cli-CWufRpkr.js} +35 -35
  248. package/dist/{update-cli-BiRyfmPL.js → update-cli-Dl_QbjXc.js} +37 -37
  249. package/dist/{update-runner-Dbiosgid.js → update-runner-Dq5UYQbo.js} +1 -1
  250. package/dist/{update-runner-CXpAiQuF.js → update-runner-ENJw0Mco.js} +1 -1
  251. package/dist/{webhooks-cli-DqJnNdFt.js → webhooks-cli-Clx8DGfA.js} +1 -1
  252. package/dist/{webhooks-cli-DofAY6FK.js → webhooks-cli-UfO_WffC.js} +1 -1
  253. package/dist/{with-timeout-COajnkmj.js → with-timeout-BE7lxhxW.js} +1 -1
  254. package/dist/{with-timeout-BhDKgIeU.js → with-timeout-BcL6qAbd.js} +1 -1
  255. package/docs/reference/templates/AGENTS.dev.md +0 -4
  256. package/docs/reference/templates/AGENTS.md +7 -68
  257. package/docs/reference/templates/CONFIG-SCHEMA.md +0 -7
  258. package/extensions/shared/resolve-target-test-helpers.ts +1 -1
  259. package/package.json +1 -1
  260. package/skills/coding-agent/SKILL.md +2 -2
  261. package/dist/system-cli-BdG41gcY.js +0 -80
  262. package/dist/system-cli-BdITqp7I.js +0 -85
  263. package/docs/reference/templates/SYMIPULSE.md +0 -103
@@ -12,26 +12,26 @@ import "./frontmatter-B4levtVg.js";
12
12
  import "./skills-BP6p7GnN.js";
13
13
  import "./manifest-registry-DJcKcUQ9.js";
14
14
  import "./skills-status-01KNlWUS.js";
15
- import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-Cw7uo7Dh.js";
16
- import "./client-CAz5aPpp.js";
17
- import "./call-Dy_T6f6d.js";
15
+ import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-igdtSRrZ.js";
16
+ import "./client-Dp8LUTmF.js";
17
+ import "./call-5IE9ycvm.js";
18
18
  import "./message-channel-CNPAq1Tl.js";
19
19
  import "./pairing-token-Bnr7QjVF.js";
20
- import "./subagent-registry-DexfLiQ_.js";
21
- import "./sessions-BHrlpR92.js";
20
+ import "./subagent-registry-C57PFGHU.js";
21
+ import "./sessions-BNEDanZO.js";
22
22
  import "./plugins-Bq-Msc8Z.js";
23
- import "./send-C3ZXgOXw.js";
24
- import "./with-timeout-BhDKgIeU.js";
25
- import "./deliver-Cl2fWxx4.js";
23
+ import "./send-EluKytgO.js";
24
+ import "./with-timeout-BcL6qAbd.js";
25
+ import "./deliver-izdrXPr4.js";
26
26
  import "./diagnostic-BevbDWGa.js";
27
27
  import "./diagnostic-session-state-Zw87xFym.js";
28
- import "./pi-embedded-helpers-BbBfO9m_.js";
29
- import "./sandbox-B6P9-J8g.js";
30
- import "./chrome-BxWRyWC_.js";
28
+ import "./pi-embedded-helpers-BwBjqJM5.js";
29
+ import "./sandbox-B4RfQ7k1.js";
30
+ import "./chrome-B0wRtBRB.js";
31
31
  import "./tailscale-BsA0YClX.js";
32
32
  import "./auth-DIdzV4_r.js";
33
- import "./server-context-Vd9sEFb9.js";
34
- import "./routes-CWYyvbxi.js";
33
+ import "./server-context-CDTuNR-O.js";
34
+ import "./routes-Cio8is5Y.js";
35
35
  import "./redact-KvsGzUFH.js";
36
36
  import "./errors-TVUWuVoP.js";
37
37
  import "./fs-safe-DzJT_iD4.js";
@@ -43,10 +43,10 @@ import "./trash-CF1G530Y.js";
43
43
  import "./dock-Cq5LxV1L.js";
44
44
  import "./paths-CNexk5_o.js";
45
45
  import "./thinking-BDh5LPh-.js";
46
- import "./models-config-C2OLw8vc.js";
46
+ import "./models-config-yKxNCn4V.js";
47
47
  import "./reply-prefix-B7pYEiW_.js";
48
- import "./memory-CUt9fSz8.js";
49
- import "./manager-z92Qfa3m.js";
48
+ import "./memory-Cl4I_45k.js";
49
+ import "./manager-BQaZlWzK.js";
50
50
  import "./sqlite-l3CZYU6t.js";
51
51
  import "./chunk-BySyfaEr.js";
52
52
  import "./markdown-tables-CCOfinlW.js";
@@ -57,10 +57,10 @@ import "./commands-registry-Bccp0eH5.js";
57
57
  import "./tool-display-wSdT0Ynz.js";
58
58
  import "./tokens-K3kGchJA.js";
59
59
  import "./skills-remote-DHfuS68n.js";
60
- import { c as trimLogTail } from "./redact-identifier-QYENCXvy.js";
60
+ import { c as trimLogTail } from "./redact-identifier-Cm1VfV7E.js";
61
61
  import "./workspace-dirs-23IYtZj2.js";
62
- import "./model-catalog-Ba4R_zVe.js";
63
- import "./session-utils-CJfEkQQQ.js";
62
+ import "./model-catalog-C2rNhRI4.js";
63
+ import "./session-utils-D1VcHni_.js";
64
64
  import "./skill-commands-CcCCVblU.js";
65
65
  import "./pairing-store-CtBnCGHZ.js";
66
66
  import "./exec-approvals-B8n8es8o.js";
@@ -68,7 +68,7 @@ import "./nodes-screen-Bkq2kswx.js";
68
68
  import { r as formatDurationPrecise } from "./format-duration-DbZRICyO.js";
69
69
  import "./session-cost-usage-Cj3vd7lZ.js";
70
70
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName, f as resolveGatewayWindowsTaskName } from "./constants-C0e51aio.js";
71
- import "./control-service-BTydj9Kk.js";
71
+ import "./control-service-DO8FjrS6.js";
72
72
  import "./stagger-C2kEx8j9.js";
73
73
  import "./channel-selection-p35DYzAL.js";
74
74
  import "./delivery-queue-nheCYaMd.js";
@@ -78,10 +78,10 @@ import { t as formatDocsLink } from "./links-Db3Rw0Tg.js";
78
78
  import "./cli-utils-BqMwAlgf.js";
79
79
  import { t as formatHelpExamples } from "./help-format-DbbIlOje.js";
80
80
  import "./progress-C4ck6JXh.js";
81
- import "./memory-cli-BlBxrZF2.js";
81
+ import "./memory-cli-CszP57Ee.js";
82
82
  import "./logging-D0L9TWhE.js";
83
- import "./replies-DIWartyA.js";
84
- import "./pi-tools.policy--USPnaLr.js";
83
+ import "./replies-DIHkSwoW.js";
84
+ import "./pi-tools.policy-BaRznBvu.js";
85
85
  import { n as inheritOptionFromParent } from "./command-options-BtJGezJl.js";
86
86
  import "./catalog-CJzUbDcX.js";
87
87
  import { n as stylePromptMessage } from "./prompt-style-Z2ZizQap.js";
@@ -92,33 +92,33 @@ import "./npm-registry-spec-NLo2PCol.js";
92
92
  import "./skill-scanner-CuoStu03.js";
93
93
  import "./installs-cPraL4Dg.js";
94
94
  import "./channels-status-issues-GSsGZvfn.js";
95
- import "./register.subclis-Bhsc6TUP.js";
96
- import "./command-registry-CVsOBck9.js";
95
+ import "./register.subclis-CnDo2jzv.js";
96
+ import "./command-registry-D8fj6th4.js";
97
97
  import "./program-context-BFKw4l9I.js";
98
- import { r as installCompletion } from "./completion-cli-B5bq51hT.js";
99
- import "./daemon-runtime-CkBw3gG5.js";
98
+ import { r as installCompletion } from "./completion-cli-BxspmuYm.js";
99
+ import "./daemon-runtime-2Y9RfgcP.js";
100
100
  import { r as parseSemver } from "./runtime-guard-p4-FMx0l.js";
101
- import "./onboard-helpers-C5YryU1N.js";
101
+ import "./onboard-helpers-Bm-oyLWy.js";
102
102
  import "./systemd-p_nEAkHC.js";
103
103
  import { t as resolveGatewayService } from "./service-BIixwO-v.js";
104
- import "./lifecycle-core-Dark4HHr.js";
105
- import "./systemd-hints-DQKA3tTS.js";
106
- import { i as runDaemonInstall, r as runDaemonRestart } from "./daemon-cli-AVJLjFd5.js";
104
+ import "./lifecycle-core-uN2bsrZs.js";
105
+ import "./systemd-hints-BejQ6J2Y.js";
106
+ import { i as runDaemonInstall, r as runDaemonRestart } from "./daemon-cli-DmMYx5Uf.js";
107
107
  import "./diagnostics-DELEpbg2.js";
108
108
  import { t as renderTable } from "./table-CSEp22Mk.js";
109
- import "./health-D2CsIdFz.js";
109
+ import "./health-DdzNc1yA.js";
110
110
  import "./control-ui-assets-B5BrwGRs.js";
111
111
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, d as formatUpdateChannelLabel, g as resolveUpdateChannelDisplay, h as resolveEffectiveUpdateChannel, m as normalizeUpdateChannel, n as compareSemverStrings, r as fetchNpmTagVersion, s as DEFAULT_GIT_CHANNEL, t as checkUpdateStatus, u as channelToNpmTag } from "./update-check-C1JNxsic.js";
112
112
  import "./dm-policy-shared-CSF4Tw_F.js";
113
- import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-BoxoMaxX.js";
114
- import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-CXpAiQuF.js";
113
+ import { i as resolveUpdateAvailability, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-Be8PuHCh.js";
114
+ import { a as globalInstallArgs, c as readPackageVersion, i as detectGlobalInstallManagerForRoot, n as cleanupGlobalRenameDirs, o as resolveGlobalPackageRoot, r as detectGlobalInstallManagerByPresence, s as readPackageName, t as runGatewayUpdate } from "./update-runner-ENJw0Mco.js";
115
115
  import "./logging-BeA4q4J_.js";
116
116
  import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from "./update-C1rkPV1C.js";
117
- import "./doctor-config-flow-BXjmJyRY.js";
117
+ import "./doctor-config-flow-wvoEFNeZ.js";
118
118
  import "./systemd-linger-BM4qvprK.js";
119
119
  import "./health-format-DaP03FBk.js";
120
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-2-MTlOry.js";
121
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CUC2jl4R.js";
120
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-CnYM7W0j.js";
121
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CX7LjkOD.js";
122
122
  import { spawn, spawnSync } from "node:child_process";
123
123
  import os from "node:os";
124
124
  import path from "node:path";
@@ -1,6 +1,6 @@
1
1
  import { f as pathExists } from "./utils-BU8jVQFM.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-DKyLtSjm.js";
3
- import { h as trimLogTail } from "./session-utils-NOQiGgMD.js";
3
+ import { h as trimLogTail } from "./session-utils-CgGDr4eh.js";
4
4
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-DUhvOLUL.js";
5
5
  import { c as DEFAULT_PACKAGE_CHANNEL, f as isBetaTag, l as DEV_BRANCH, n as compareSemverStrings, o as detectPackageManager$1, p as isStableTag, u as channelToNpmTag } from "./update-check-CZxZhEXr.js";
6
6
  import path from "node:path";
@@ -1,6 +1,6 @@
1
1
  import { jt as pathExists } from "./entry.js";
2
2
  import { t as runCommandWithTimeout } from "./exec-B6oWJSJW.js";
3
- import { c as trimLogTail } from "./redact-identifier-QYENCXvy.js";
3
+ import { c as trimLogTail } from "./redact-identifier-Cm1VfV7E.js";
4
4
  import { n as resolveControlUiDistIndexHealth, r as resolveControlUiDistIndexPathForRoot } from "./control-ui-assets-B5BrwGRs.js";
5
5
  import { c as DEFAULT_PACKAGE_CHANNEL, f as isBetaTag, l as DEV_BRANCH, n as compareSemverStrings, o as detectPackageManager$1, p as isStableTag, u as channelToNpmTag } from "./update-check-C1JNxsic.js";
6
6
  import os from "node:os";
@@ -9,7 +9,7 @@ import "./agent-scope-DIjW66iO.js";
9
9
  import "./github-copilot-token-BTNK6Tcd.js";
10
10
  import "./boolean-Wzu0-e0P.js";
11
11
  import "./env-B97Ms861.js";
12
- import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins } from "./config-MU0QT0xu.js";
12
+ import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins } from "./config-DqMsGcSQ.js";
13
13
  import "./manifest-registry-D_LsBSyt.js";
14
14
  import "./frontmatter-CHu3sfCM.js";
15
15
  import "./skills-Bmjf5nFv.js";
@@ -7,7 +7,7 @@ import "./github-copilot-token-a6a53zx_.js";
7
7
  import "./frontmatter-B4levtVg.js";
8
8
  import "./skills-BP6p7GnN.js";
9
9
  import "./manifest-registry-DJcKcUQ9.js";
10
- import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins } from "./config-Cw7uo7Dh.js";
10
+ import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins } from "./config-igdtSRrZ.js";
11
11
  import { t as formatDocsLink } from "./links-Db3Rw0Tg.js";
12
12
  import { C as normalizeServePath, S as normalizeHooksPath, T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, a as ensureTopic, b as generateHookToken, c as DEFAULT_GMAIL_LABEL, d as DEFAULT_GMAIL_SERVE_BIND, f as DEFAULT_GMAIL_SERVE_PATH, g as buildDefaultHookUrl, h as DEFAULT_GMAIL_TOPIC, i as ensureTailscaleEndpoint, l as DEFAULT_GMAIL_MAX_BYTES, m as DEFAULT_GMAIL_SUBSCRIPTION, n as ensureGcloudAuth, o as resolveProjectIdFromGogCredentials, p as DEFAULT_GMAIL_SERVE_PORT, r as ensureSubscription, s as runGcloud, t as ensureDependency, u as DEFAULT_GMAIL_RENEW_MINUTES, v as buildGogWatchStartArgs, w as parseTopicPath, x as mergeHookPresets, y as buildTopicPath } from "./gmail-setup-utils-B1BYpISg.js";
13
13
  import { spawn } from "node:child_process";
@@ -1,5 +1,5 @@
1
1
  import { c as escapeRegExp } from "./utils-BU8jVQFM.js";
2
- import { t as registerBrowserRoutes } from "./routes-CTOYLhQ1.js";
2
+ import { t as registerBrowserRoutes } from "./routes-BMShi_eY.js";
3
3
  import os from "node:os";
4
4
  import { promisify } from "node:util";
5
5
  import { execFile } from "node:child_process";
@@ -1,5 +1,5 @@
1
1
  import { Dt as escapeRegExp } from "./entry.js";
2
- import { t as registerBrowserRoutes } from "./routes-CWYyvbxi.js";
2
+ import { t as registerBrowserRoutes } from "./routes-Cio8is5Y.js";
3
3
  import { execFile } from "node:child_process";
4
4
  import os from "node:os";
5
5
  import { promisify } from "node:util";
@@ -38,10 +38,6 @@ git commit -m "Add agent workspace"
38
38
  - On session start, read today + yesterday if present.
39
39
  - Capture durable facts, preferences, and decisions; avoid secrets.
40
40
 
41
- ## Heartbeats (optional)
42
-
43
- - SYMIPULSE.md can hold a tiny checklist for heartbeat runs; keep it small.
44
-
45
41
  ## Customize
46
42
 
47
43
  - Add your preferred style, rules, and "memory" here.
@@ -190,88 +190,27 @@ Skills provide your tools. When you need one, check its `SKILL.md`. Keep local n
190
190
 
191
191
  - **WhatsApp:** No headers — use **bold** or CAPS for emphasis
192
192
 
193
- ## 💓 Heartbeats - Be Proactive!
193
+ ## Periodic Work Use Cron
194
194
 
195
- When you receive a heartbeat poll (message matches the configured heartbeat prompt), don't just reply `SYMIPULSE_OK` every time. Use heartbeats productively!
195
+ For scheduled or periodic tasks, use the cron tool. Examples:
196
196
 
197
- Default heartbeat prompt:
198
- `Read SYMIPULSE.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply SYMIPULSE_OK.`
199
-
200
- You are free to edit `SYMIPULSE.md` with a short checklist or reminders. Keep it small to limit token burn.
201
-
202
- ### Heartbeat vs Cron: When to Use Each
203
-
204
- **Use heartbeat when:**
205
-
206
- - Multiple checks can batch together (inbox + calendar + notifications in one turn)
207
- - You need conversational context from recent messages
208
- - Timing can drift slightly (every ~30 min is fine, not exact)
209
- - You want to reduce API calls by combining periodic checks
210
-
211
- **Use cron when:**
212
-
213
- - Exact timing matters ("9:00 AM sharp every Monday")
197
+ - Exact timing ("9:00 AM sharp every Monday")
214
198
  - Task needs isolation from main session history
215
- - You want a different model or thinking level for the task
199
+ - A different model or thinking level for the task
216
200
  - One-shot reminders ("remind me in 20 minutes")
217
201
  - Output should deliver directly to a channel without main session involvement
218
202
 
219
- **Tip:** Batch similar periodic checks into `SYMIPULSE.md` instead of creating multiple cron jobs. Use cron for precise schedules and standalone tasks.
220
-
221
- **Things to check (rotate through these, 2-4 times per day):**
222
-
223
- - **Emails** - Any urgent unread messages?
224
- - **Calendar** - Upcoming events in next 24-48h?
225
- - **Mentions** - Twitter/social notifications?
226
- - **Weather** - Relevant if your human might go out?
227
-
228
- **Track your checks** in `memory/heartbeat-state.json`:
203
+ ## 🔄 Memory Maintenance
229
204
 
230
- ```json
231
- {
232
- "lastChecks": {
233
- "email": 1703275200,
234
- "calendar": 1703260800,
235
- "weather": null
236
- }
237
- }
238
- ```
205
+ L3 consolidation runs automatically after each memory-flush. You don't hand-roll it. What you _can_ do:
239
206
 
240
- **When to reach out:**
241
-
242
- - Important email arrived
243
- - Calendar event coming up (<2h)
244
- - Something interesting you found
245
- - It's been >8h since you said anything
246
-
247
- **When to stay quiet (SYMIPULSE_OK):**
248
-
249
- - Late night (23:00-08:00) unless urgent
250
- - Human is clearly busy
251
- - Nothing new since last check
252
- - You just checked <30 minutes ago
253
-
254
- **Proactive work you can do without asking:**
255
-
256
- - Read and organize memory files
257
- - Check on projects (git status, etc.)
258
- - Update documentation
259
- - Commit and push your own changes
260
- - **Review recent daily memory** (see below)
261
-
262
- ### 🔄 Memory Maintenance (During Heartbeats)
263
-
264
- L3 consolidation runs automatically after each memory-flush. You don't hand-roll it. What you _can_ do on a heartbeat:
265
-
266
- 1. Read through recent `memory/YYYY-MM-DD.md` files for context.
207
+ 1. Read recent `memory/YYYY-MM-DD.md` files for context.
267
208
  2. Read `memory/symi-core.md` + `memory/symi-beliefs.md` to see what has stabilized about you and the user.
268
209
  3. Notice when a recurring pattern hasn't been pinned yet — if the human has said the same preference three times over different days, call `memory_pin` on it.
269
210
  4. If `symi-core.md` contains a stale belief contradicted by recent events, write the correction into today's `memory/YYYY-MM-DD.md` and (if the human is present) mention you've updated. The next L3 cycle will reconcile.
270
211
 
271
212
  Daily files are raw observations. `symi-core.md` is your curated evolving self, rewritten by L3 each cycle. `MEMORY.md` is the human's own notes — read it, don't rewrite it.
272
213
 
273
- The goal: Be helpful without being annoying. Check in a few times a day, do useful background work, but respect quiet time.
274
-
275
214
  ## Make It Yours
276
215
 
277
216
  This is a starting point. Add your own conventions, style, and rules as you figure out what works.
@@ -76,13 +76,6 @@ Use `symi config get` (no args) to see all top-level keys.
76
76
  | `memory.backend` | string | `"builtin"`, `"qmd"` |
77
77
  | `memory.citations` | string | `"auto"`, `"on"`, `"off"` |
78
78
 
79
- ## Symipulse (Heartbeat)
80
-
81
- | Path | Type | Example |
82
- | ------------------------------------------- | ------- | ------- |
83
- | `agents.defaults.heartbeat.enabled` | boolean | `true` |
84
- | `agents.defaults.heartbeat.intervalMinutes` | number | `30` |
85
-
86
79
  ## Tool Access Control
87
80
 
88
81
  | Path | Type | Example |
@@ -1,6 +1,6 @@
1
1
  import { expect, it } from "vitest";
2
2
 
3
- type ResolveTargetMode = "explicit" | "implicit" | "heartbeat";
3
+ type ResolveTargetMode = "explicit" | "implicit";
4
4
 
5
5
  type ResolveTargetResult = {
6
6
  ok: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symerian/symi",
3
- "version": "3.4.3",
3
+ "version": "3.4.8",
4
4
  "description": "Multi-channel AI gateway with extensible messaging integrations",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/jaysteelmind/symi#readme",
@@ -253,13 +253,13 @@ This prevents the user from seeing only "Agent failed before reply" and having n
253
253
 
254
254
  ## Auto-Notify on Completion
255
255
 
256
- For long-running background tasks, append a wake trigger to your prompt so Symi gets notified immediately when the agent finishes (instead of waiting for the next heartbeat):
256
+ For long-running background tasks, append a wake trigger to your prompt so Symi gets notified immediately when the agent finishes:
257
257
 
258
258
  ```
259
259
  ... your task here.
260
260
 
261
261
  When completely finished, run this command to notify me:
262
- symi system event --text "Done: [brief summary of what was built]" --mode now
262
+ symi system event --text "Done: [brief summary of what was built]"
263
263
  ```
264
264
 
265
265
  **Example:**
@@ -1,80 +0,0 @@
1
- import { Q as theme, V as danger, _ as defaultRuntime } from "./entry.js";
2
- import "./auth-profiles-Bs5D0GUv.js";
3
- import "./exec-B6oWJSJW.js";
4
- import "./agent-scope-B6p555mP.js";
5
- import "./github-copilot-token-a6a53zx_.js";
6
- import "./manifest-registry-DJcKcUQ9.js";
7
- import "./config-Cw7uo7Dh.js";
8
- import "./client-CAz5aPpp.js";
9
- import "./call-Dy_T6f6d.js";
10
- import "./message-channel-CNPAq1Tl.js";
11
- import "./pairing-token-Bnr7QjVF.js";
12
- import { t as formatDocsLink } from "./links-Db3Rw0Tg.js";
13
- import "./progress-C4ck6JXh.js";
14
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-B5_ZCiHW.js";
15
-
16
- //#region src/cli/system-cli.ts
17
- const normalizeWakeMode = (raw) => {
18
- const mode = typeof raw === "string" ? raw.trim() : "";
19
- if (!mode) return "next-heartbeat";
20
- if (mode === "now" || mode === "next-heartbeat") return mode;
21
- throw new Error("--mode must be now or next-heartbeat");
22
- };
23
- function registerSystemCli(program) {
24
- const system = program.command("system").description("System tools (events, heartbeat, presence)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/system", "docs.symi.ai/cli/system")}\n`);
25
- addGatewayClientOptions(system.command("event").description("Enqueue a system event and optionally trigger a heartbeat").requiredOption("--text <text>", "System event text").option("--mode <mode>", "Wake mode (now|next-heartbeat)", "next-heartbeat").option("--json", "Output JSON", false)).action(async (opts) => {
26
- try {
27
- const text = typeof opts.text === "string" ? opts.text.trim() : "";
28
- if (!text) throw new Error("--text is required");
29
- const result = await callGatewayFromCli("wake", opts, {
30
- mode: normalizeWakeMode(opts.mode),
31
- text
32
- }, { expectFinal: false });
33
- if (opts.json) defaultRuntime.log(JSON.stringify(result, null, 2));
34
- else defaultRuntime.log("ok");
35
- } catch (err) {
36
- defaultRuntime.error(danger(String(err)));
37
- defaultRuntime.exit(1);
38
- }
39
- });
40
- const heartbeat = system.command("heartbeat").description("Heartbeat controls");
41
- addGatewayClientOptions(heartbeat.command("last").description("Show the last heartbeat event").option("--json", "Output JSON", false)).action(async (opts) => {
42
- try {
43
- const result = await callGatewayFromCli("last-heartbeat", opts, void 0, { expectFinal: false });
44
- defaultRuntime.log(JSON.stringify(result, null, 2));
45
- } catch (err) {
46
- defaultRuntime.error(danger(String(err)));
47
- defaultRuntime.exit(1);
48
- }
49
- });
50
- addGatewayClientOptions(heartbeat.command("enable").description("Enable heartbeats").option("--json", "Output JSON", false)).action(async (opts) => {
51
- try {
52
- const result = await callGatewayFromCli("set-heartbeats", opts, { enabled: true }, { expectFinal: false });
53
- defaultRuntime.log(JSON.stringify(result, null, 2));
54
- } catch (err) {
55
- defaultRuntime.error(danger(String(err)));
56
- defaultRuntime.exit(1);
57
- }
58
- });
59
- addGatewayClientOptions(heartbeat.command("disable").description("Disable heartbeats").option("--json", "Output JSON", false)).action(async (opts) => {
60
- try {
61
- const result = await callGatewayFromCli("set-heartbeats", opts, { enabled: false }, { expectFinal: false });
62
- defaultRuntime.log(JSON.stringify(result, null, 2));
63
- } catch (err) {
64
- defaultRuntime.error(danger(String(err)));
65
- defaultRuntime.exit(1);
66
- }
67
- });
68
- addGatewayClientOptions(system.command("presence").description("List system presence entries").option("--json", "Output JSON", false)).action(async (opts) => {
69
- try {
70
- const result = await callGatewayFromCli("system-presence", opts, void 0, { expectFinal: false });
71
- defaultRuntime.log(JSON.stringify(result, null, 2));
72
- } catch (err) {
73
- defaultRuntime.error(danger(String(err)));
74
- defaultRuntime.exit(1);
75
- }
76
- });
77
- }
78
-
79
- //#endregion
80
- export { registerSystemCli };
@@ -1,85 +0,0 @@
1
- import { b as danger, j as theme } from "./registry-DKJLAPDB.js";
2
- import "./paths-BSzKwaxE.js";
3
- import "./utils-BU8jVQFM.js";
4
- import { f as defaultRuntime } from "./subsystem-CtH6J8AV.js";
5
- import "./auth-profiles-BFSVvFKy.js";
6
- import "./exec-DKyLtSjm.js";
7
- import "./agent-scope-DIjW66iO.js";
8
- import "./github-copilot-token-BTNK6Tcd.js";
9
- import "./boolean-Wzu0-e0P.js";
10
- import "./env-B97Ms861.js";
11
- import "./config-MU0QT0xu.js";
12
- import "./manifest-registry-D_LsBSyt.js";
13
- import "./message-channel-C_V8IAYx.js";
14
- import "./client-ZZqt0H0-.js";
15
- import "./call-CbF18cyd.js";
16
- import "./pairing-token-CURbSHdi.js";
17
- import { t as formatDocsLink } from "./links-CSaUKNKm.js";
18
- import "./progress-CyPyGCDn.js";
19
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-RZAJMB1i.js";
20
-
21
- //#region src/cli/system-cli.ts
22
- const normalizeWakeMode = (raw) => {
23
- const mode = typeof raw === "string" ? raw.trim() : "";
24
- if (!mode) return "next-heartbeat";
25
- if (mode === "now" || mode === "next-heartbeat") return mode;
26
- throw new Error("--mode must be now or next-heartbeat");
27
- };
28
- function registerSystemCli(program) {
29
- const system = program.command("system").description("System tools (events, heartbeat, presence)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/system", "docs.symi.ai/cli/system")}\n`);
30
- addGatewayClientOptions(system.command("event").description("Enqueue a system event and optionally trigger a heartbeat").requiredOption("--text <text>", "System event text").option("--mode <mode>", "Wake mode (now|next-heartbeat)", "next-heartbeat").option("--json", "Output JSON", false)).action(async (opts) => {
31
- try {
32
- const text = typeof opts.text === "string" ? opts.text.trim() : "";
33
- if (!text) throw new Error("--text is required");
34
- const result = await callGatewayFromCli("wake", opts, {
35
- mode: normalizeWakeMode(opts.mode),
36
- text
37
- }, { expectFinal: false });
38
- if (opts.json) defaultRuntime.log(JSON.stringify(result, null, 2));
39
- else defaultRuntime.log("ok");
40
- } catch (err) {
41
- defaultRuntime.error(danger(String(err)));
42
- defaultRuntime.exit(1);
43
- }
44
- });
45
- const heartbeat = system.command("heartbeat").description("Heartbeat controls");
46
- addGatewayClientOptions(heartbeat.command("last").description("Show the last heartbeat event").option("--json", "Output JSON", false)).action(async (opts) => {
47
- try {
48
- const result = await callGatewayFromCli("last-heartbeat", opts, void 0, { expectFinal: false });
49
- defaultRuntime.log(JSON.stringify(result, null, 2));
50
- } catch (err) {
51
- defaultRuntime.error(danger(String(err)));
52
- defaultRuntime.exit(1);
53
- }
54
- });
55
- addGatewayClientOptions(heartbeat.command("enable").description("Enable heartbeats").option("--json", "Output JSON", false)).action(async (opts) => {
56
- try {
57
- const result = await callGatewayFromCli("set-heartbeats", opts, { enabled: true }, { expectFinal: false });
58
- defaultRuntime.log(JSON.stringify(result, null, 2));
59
- } catch (err) {
60
- defaultRuntime.error(danger(String(err)));
61
- defaultRuntime.exit(1);
62
- }
63
- });
64
- addGatewayClientOptions(heartbeat.command("disable").description("Disable heartbeats").option("--json", "Output JSON", false)).action(async (opts) => {
65
- try {
66
- const result = await callGatewayFromCli("set-heartbeats", opts, { enabled: false }, { expectFinal: false });
67
- defaultRuntime.log(JSON.stringify(result, null, 2));
68
- } catch (err) {
69
- defaultRuntime.error(danger(String(err)));
70
- defaultRuntime.exit(1);
71
- }
72
- });
73
- addGatewayClientOptions(system.command("presence").description("List system presence entries").option("--json", "Output JSON", false)).action(async (opts) => {
74
- try {
75
- const result = await callGatewayFromCli("system-presence", opts, void 0, { expectFinal: false });
76
- defaultRuntime.log(JSON.stringify(result, null, 2));
77
- } catch (err) {
78
- defaultRuntime.error(danger(String(err)));
79
- defaultRuntime.exit(1);
80
- }
81
- });
82
- }
83
-
84
- //#endregion
85
- export { registerSystemCli };
@@ -1,103 +0,0 @@
1
- ---
2
- title: "SYMIPULSE.md Template"
3
- summary: "Workspace template for SYMIPULSE.md"
4
- read_when:
5
- - Bootstrapping a workspace manually
6
- ---
7
-
8
- # SYMIPULSE.md - Periodic Tasks
9
-
10
- ## Daily Journaling (Every Heartbeat — Priority 1)
11
-
12
- Before anything else, write to today's daily log (`memory/YYYY-MM-DD.md`; create `memory/` if needed).
13
-
14
- ### What to journal
15
-
16
- Review the current session transcript since the last heartbeat. If there were any user interactions, tool uses, decisions, errors, or notable events — append a brief entry:
17
-
18
- ```markdown
19
- ## Session: [short label] (HH:MM TZ)
20
-
21
- - [1-3 bullet points: what happened, what was decided, what was learned]
22
- ```
23
-
24
- ### Rules
25
-
26
- - **APPEND only** — never overwrite existing entries in the file
27
- - Skip if the only activity since last heartbeat was another heartbeat (no user interaction)
28
- - Keep entries concise: 2-5 lines per session block
29
- - Include timestamps so entries are traceable
30
- - If truly nothing happened (no user messages, no tool calls), skip journaling and move to consolidation
31
-
32
- ## Memory Consolidation (Priority 2)
33
-
34
- Every heartbeat, check if consolidation is needed. Run consolidation when:
35
-
36
- - It's been more than 24 hours since the last consolidation (check `memory/heartbeat-state.json` → `lastChecks.memoryConsolidation`)
37
- - There are 3+ daily log files that haven't been distilled into MEMORY.md
38
-
39
- ### Consolidation Steps
40
-
41
- 1. **Read all recent daily logs** (`memory/YYYY-MM-DD*.md` from last 7 days)
42
- 2. **Distill into structured MEMORY.md sections:**
43
- - `## User` — name, timezone, preferences, working style, communication patterns
44
- - `## Projects` — active projects, status, key decisions, blockers
45
- - `## Preferences` — technical choices, tool preferences, response style
46
- - `## Lessons Learned` — what worked, what didn't, mistakes to avoid
47
- - `## People & Contacts` — names, roles, relationships mentioned
48
- - `## Open Items` — pending tasks, follow-ups, things to remember
49
- 3. **Keep MEMORY.md under 2000 tokens** — be ruthlessly concise. Use bullet points, not prose. Every line should be a retrievable fact.
50
- 4. **Remove stale entries** — delete items from MEMORY.md that are resolved, outdated, or superseded
51
- 5. **Archive old daily logs** — files older than 14 days: extract any unrecorded insights, then move to `memory/archive/` (create if needed)
52
- 6. **Update heartbeat state** — set `lastChecks.memoryConsolidation` to current timestamp
53
-
54
- ### MEMORY.md Format (Target)
55
-
56
- ```markdown
57
- ## User
58
-
59
- - Name: [name], TZ: [timezone]
60
- - Prefers: [concise/detailed], [practical/theoretical]
61
- - Working on: [current focus]
62
-
63
- ## Projects
64
-
65
- - [project]: [status] — [key decision or note]
66
-
67
- ## Preferences
68
-
69
- - [preference]: [detail]
70
-
71
- ## Lessons Learned
72
-
73
- - [lesson]: [context]
74
-
75
- ## Open Items
76
-
77
- - [ ] [task or follow-up]
78
- ```
79
-
80
- ### Why This Matters
81
-
82
- MEMORY.md is injected into every system prompt. A bloated or disorganized MEMORY.md wastes tokens and degrades recall quality. A tight, structured one makes the model contextually aware on every turn.
83
-
84
- ## Pattern Detection (Every 5th Heartbeat)
85
-
86
- - Search recent conversations for repeated themes: "always", "never", "prefer", "don't like"
87
- - Identify new communication or technical preferences
88
- - Update MEMORY.md Preferences section
89
- - Look for: time patterns, recurring tasks, common frustrations
90
-
91
- ## Self-Assessment (Every 10th Heartbeat)
92
-
93
- - Verify MEMORY.md preferences are being followed in recent interactions
94
- - Check if past mistakes are being repeated
95
- - Remove any MEMORY.md entries that are no longer accurate
96
-
97
- ## Execution Rules
98
-
99
- - Only run consolidation in main session (not group chats)
100
- - If nothing needs consolidation, reply SYMIPULSE_OK
101
- - Keep all updates concise — quality over quantity
102
- - Archive, don't delete — raw logs may be useful later
103
- - After consolidation, briefly note what was updated in the daily log