@noxsoft/anima 2.1.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/CHANGELOG.md +36 -1
  2. package/dist/{accounts-CGzuQdAx.js → accounts-4HFzweNO.js} +3 -3
  3. package/dist/{acp-cli-C2nYnQx-.js → acp-cli-CHsShBeX.js} +4 -4
  4. package/dist/{acp-cli-B91vBbbX.js → acp-cli-CcOE2A2i.js} +4 -4
  5. package/dist/{agent-Bd6Zpqnq.js → agent-CT2PCft4.js} +9 -9
  6. package/dist/{agent-events-BVc91Gjk.js → agent-events-BiKKV3wj.js} +1 -1
  7. package/dist/{agent-CoxwYg20.js → agent-rY3gCqJE.js} +8 -8
  8. package/dist/{agent-scope-BoQtElEh.js → agent-scope-BXuH9s05.js} +1 -1
  9. package/dist/{agent-scope-CuAaArMB.js → agent-scope-M302b8FW.js} +3 -1
  10. package/dist/{agent-scope-kT_pK2eJ.js → agent-scope-vpVhWds3.js} +3 -1
  11. package/dist/{agents-ERV83c8T.js → agents-GDJBET4Z.js} +9 -9
  12. package/dist/{agents.config-Bar8RHWv.js → agents.config-Dqcq7hEy.js} +1 -1
  13. package/dist/{agents.config-CvQgWymp.js → agents.config-M3p4E9Vk.js} +1 -1
  14. package/dist/{audit-C4pngOZo.js → audit-BDXqNA5J.js} +6 -6
  15. package/dist/{audit-94c4PKy2.js → audit-B_3ewOwt.js} +6 -6
  16. package/dist/{auth-choice-RnqXSEZo.js → auth-choice-BTMheCDo.js} +132 -7
  17. package/dist/{auth-health-C2V2unOG.js → auth-health-C0g38cq2.js} +1 -1
  18. package/dist/{auth-profiles-DNpEm389.js → auth-profiles-BYETsqKc.js} +1 -1
  19. package/dist/{auth-profiles-CzyebTC0.js → auth-profiles-DZS4PC_i.js} +1 -1
  20. package/dist/{auth-profiles-DxPI9Swi.js → auth-profiles-xk_1uopf.js} +2 -2
  21. package/dist/{auth-store-vxi4ZPnZ.js → auth-store-Bis9WSLR.js} +1 -1
  22. package/dist/{auto-update-CFjmeMj2.js → auto-update-D5cnVgXE.js} +10 -4
  23. package/dist/{auto-update-Ct6OO4xu.js → auto-update-DYjBYplz.js} +10 -4
  24. package/dist/{banner-D3viiyMP.js → banner-CcUSTTQw.js} +1 -1
  25. package/dist/build-info.json +3 -3
  26. package/dist/bundled/boot-md/handler.js +14 -14
  27. package/dist/bundled/bootstrap-extra-files/handler.js +2 -2
  28. package/dist/bundled/session-memory/handler.js +4 -4
  29. package/dist/{call-CItRp_pr.js → call-BBzfZU0_.js} +1 -1
  30. package/dist/{call-DxImJH07.js → call-LugHQWOF.js} +1 -1
  31. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  32. package/dist/{channel-web-DbqT9emt.js → channel-web-BBctXTmi.js} +10 -10
  33. package/dist/{chunk-B7HJmFUg.js → chunk-Cguey_55.js} +1 -1
  34. package/dist/{clack-prompter-DzyUpdYc.js → clack-prompter-1d_RjjVW.js} +1 -1
  35. package/dist/{clack-prompter-DGILBk0Q.js → clack-prompter-S0pujJNH.js} +1 -1
  36. package/dist/cli/daemon-cli.js +1 -1
  37. package/dist/{cli-CIqM2CiL.js → cli-4D3JIGFt.js} +21 -21
  38. package/dist/{cli-D3fgTPqQ.js → cli-B2StCcqh.js} +20 -20
  39. package/dist/{cli-session-C5q6Uryq.js → cli-session-CIhvoVRb.js} +55 -7
  40. package/dist/{cli-session-DQ9kepDS.js → cli-session-CJ4_a3AU.js} +56 -8
  41. package/dist/{command-registry-S2ZqFzVe.js → command-registry-D5y3Nn9i.js} +10 -10
  42. package/dist/{commands-C8xFlkZx.js → commands-BsZdF-6N.js} +1 -1
  43. package/dist/{commands-Cd2w9dmK.js → commands-quS1zRPr.js} +1 -1
  44. package/dist/{completion-cli-BHlamZC3.js → completion-cli-CDsbJ-p2.js} +1 -1
  45. package/dist/{completion-cli-CC0KmaZL.js → completion-cli-CqZwlvs2.js} +2 -2
  46. package/dist/{config-CaE6v09P.js → config-6zE4ZkSF.js} +2 -2
  47. package/dist/{config-Bda-8Rdh.js → config-9JRRXykP.js} +2 -2
  48. package/dist/{config-BEiShGVB.js → config-CrQw7iqE.js} +3 -3
  49. package/dist/{config-cli-DtJe8KPs.js → config-cli-Brwjz25Y.js} +4 -4
  50. package/dist/{config-cli-CEU2oLOH.js → config-cli-CaUpfkTl.js} +4 -4
  51. package/dist/{config-guard-CQWaFJGt.js → config-guard-BUrJR68X.js} +2 -2
  52. package/dist/{config-guard-a6BWW0DS.js → config-guard-DJ_IK05w.js} +6 -6
  53. package/dist/{config-sync-DtK8vF0a.js → config-sync-B6XNCiWO.js} +4 -2
  54. package/dist/{config-sync-DHZT44We.js → config-sync-CVNJhO-W.js} +4 -2
  55. package/dist/{configure-BwR-MQg6.js → configure-B_PLPDkP.js} +9 -9
  56. package/dist/{configure-BiIaL4NZ.js → configure-QwZPOdBf.js} +10 -10
  57. package/dist/{context-Nk3BLa3u.js → context-CsnIPzGP.js} +1 -1
  58. package/dist/{control-service-CJ2uXWYM.js → control-service-DptjbgYI.js} +2 -2
  59. package/dist/{control-service-9uTsix_O.js → control-service-dAtxFV2S.js} +2 -2
  60. package/dist/control-ui/assets/index-CEuStzNh.js +18 -0
  61. package/dist/control-ui/assets/index-CEuStzNh.js.map +1 -0
  62. package/dist/control-ui/assets/index-CbNrH7Wu.css +1 -0
  63. package/dist/control-ui/index.html +20 -0
  64. package/dist/{cron-cli-Diyg0pr6.js → cron-cli-CpzhiW5t.js} +5 -5
  65. package/dist/{cron-cli-BoB3GX76.js → cron-cli-DUVPrjk1.js} +5 -5
  66. package/dist/{daemon-cli-CR7yHMws.js → daemon-cli-CV9nly9k.js} +5 -5
  67. package/dist/{daemon-cli-CXnpU1lw.js → daemon-cli-tZXFDpZX.js} +5 -5
  68. package/dist/{daemon-runtime-C-xevhQ5.js → daemon-runtime-Cbi2Ox6g.js} +1 -1
  69. package/dist/{daemon-runtime-DP9zI3um.js → daemon-runtime-DOk9qM0y.js} +1 -1
  70. package/dist/{deliver-BJ1xFt2X.js → deliver-Bri9Y1qG.js} +2 -2
  71. package/dist/{deliver-ZUV32EzH.js → deliver-CkrMkcOx.js} +1 -1
  72. package/dist/{deliver-TokuvSTy.js → deliver-tQREYhAr.js} +1 -1
  73. package/dist/{deps-CV9EwaiA.js → deps-DcinYE4_.js} +1 -1
  74. package/dist/{dispatcher-DT5y2bRx.js → dispatcher-BhzRMibw.js} +1 -1
  75. package/dist/{dispatcher-DnyO_pzZ.js → dispatcher-CiJKNMU3.js} +1 -1
  76. package/dist/{dns-cli-Cw0G6u5i.js → dns-cli-B6bcA4-G.js} +3 -3
  77. package/dist/{dns-cli-CTpT3A5j.js → dns-cli-BvKJGCxL.js} +3 -3
  78. package/dist/{doctor-a5nLQGbD.js → doctor-BDWGCEMG.js} +19 -19
  79. package/dist/{doctor-completion-Dnj6NNct.js → doctor-completion-BY4djQTY.js} +1 -1
  80. package/dist/{doctor-completion-DpxcKMA5.js → doctor-completion-DguJOZqA.js} +1 -1
  81. package/dist/{doctor-config-flow-D80QIcc-.js → doctor-config-flow-BAntaUow.js} +4 -4
  82. package/dist/{doctor-config-flow-BZOFJuDW.js → doctor-config-flow-d6ocIX0r.js} +4 -4
  83. package/dist/{doctor-BRbtvinF.js → doctor-qFADypWz.js} +20 -20
  84. package/dist/{engine-Df9mQ7es.js → engine-C6iz-qEe.js} +5 -3
  85. package/dist/{engine-BqAGzYXO.js → engine-CIid6j5k.js} +5 -3
  86. package/dist/entry.js +1 -1
  87. package/dist/{exec-approvals-cli-BWeKuHMf.js → exec-approvals-cli-COqsRheN.js} +5 -5
  88. package/dist/{exec-approvals-cli-C5OuptCV.js → exec-approvals-cli-ESNXHzjZ.js} +5 -5
  89. package/dist/extensionAPI.js +3 -1
  90. package/dist/{gateway-cli-DpikYazv.js → gateway-cli-B091bAD6.js} +45 -45
  91. package/dist/{gateway-cli-CLhlz_uA.js → gateway-cli-CUmQFMSU.js} +48 -48
  92. package/dist/{gateway-rpc-B30vCjdB.js → gateway-rpc-2MG1-jz-.js} +1 -1
  93. package/dist/{gateway-rpc-CeSf5jMa.js → gateway-rpc-hgK9OB-O.js} +1 -1
  94. package/dist/{health-1JahEOfG.js → health-27WiwNrh.js} +9 -9
  95. package/dist/{health-BLxSP-s_.js → health-CH8yZB2L.js} +9 -9
  96. package/dist/{heartbeat-visibility-CS0wp8uu.js → heartbeat-visibility-Blrqxom1.js} +1 -1
  97. package/dist/{heartbeat-visibility-DgxM3da_.js → heartbeat-visibility-CDRbkOeP.js} +1 -1
  98. package/dist/{hooks-cli-B-PZNrq5.js → hooks-cli-C7hx3yOv.js} +22 -22
  99. package/dist/{hooks-cli-Bb1UXfXv.js → hooks-cli-DBAcPJTk.js} +21 -21
  100. package/dist/index.js +30 -30
  101. package/dist/{ipv4-BXko1df7.js → ipv4-sll41DXC.js} +4 -4
  102. package/dist/{ipv4-BmsAjDnB.js → ipv4-yUiIU5CD.js} +5 -5
  103. package/dist/llm-slug-generator.js +2 -2
  104. package/dist/{login-DIm-BAka.js → login-Bdyk0es6.js} +2 -2
  105. package/dist/{login-jV3UWUGr.js → login-DP5hIYxG.js} +3 -3
  106. package/dist/{login-DQALESNM.js → login-DcBFdgol.js} +2 -2
  107. package/dist/{login-qr-BMMUazkr.js → login-qr-CEarfn5e.js} +4 -4
  108. package/dist/{login-qr-CJXqxq1y.js → login-qr-DOt_1aAq.js} +6 -6
  109. package/dist/{login-qr-BzS8xa3D.js → login-qr-DQS-8_PV.js} +4 -4
  110. package/dist/{logs-cli-DHjyZjyi.js → logs-cli-O9Vm67Ps.js} +5 -5
  111. package/dist/{logs-cli-yKcOyM8n.js → logs-cli-VAcUvvxS.js} +5 -5
  112. package/dist/{manager-eyHWQVGS.js → manager-1ZMunRXe.js} +2 -2
  113. package/dist/{manager-I5MlcYXv.js → manager-BVhxScwx.js} +2 -2
  114. package/dist/{manager-BssWfixS.js → manager-CHN3-66K.js} +4 -4
  115. package/dist/{memory-cli-hyoQVF7L.js → memory-cli-CDMb58Y3.js} +5 -5
  116. package/dist/{memory-cli-DQm_Q8ks.js → memory-cli-DEnGCMk0.js} +5 -5
  117. package/dist/{model-auth-CQNrcIIT.js → model-auth-B3BPcnwt.js} +2 -2
  118. package/dist/{model-auth-BbZzb3IY.js → model-auth-C4Jglp-Y.js} +2 -2
  119. package/dist/{model-auth-Cyx2Xoz0.js → model-auth-DUHamQTz.js} +2 -2
  120. package/dist/{model-selection-CtPzqKKJ.js → model-selection-BsVvfxCt.js} +1 -1
  121. package/dist/{model-selection-MwLHFnAb.js → model-selection-C2dz3AhV.js} +1 -1
  122. package/dist/{model-selection-BjcyTJyU.js → model-selection-DJcZ82uR.js} +1 -1
  123. package/dist/{models-Ca4_dCTC.js → models-B8eCDKpA.js} +26 -26
  124. package/dist/{node-cli-gop9c9Qq.js → node-cli-BujxFy1-.js} +8 -8
  125. package/dist/{node-cli-CJ-oQ5U6.js → node-cli-CXUIMB7W.js} +8 -8
  126. package/dist/{onboard-Dyr-G4cr.js → onboard-B006xiEP.js} +48 -13
  127. package/dist/{onboard-DbCuaHlU.js → onboard-BqpDno7i.js} +49 -13
  128. package/dist/{onboard-channels-h35eneL1.js → onboard-channels-BQ5lwRDU.js} +3 -3
  129. package/dist/{onboard-channels-D_jRjSPh.js → onboard-channels-DUklZSXY.js} +3 -3
  130. package/dist/{onboard-helpers-CAxb1eBy.js → onboard-helpers-DKu_2enh.js} +5 -4
  131. package/dist/{onboard-helpers-DVbPW8Cs.js → onboard-helpers-K7wUCSoE.js} +5 -4
  132. package/dist/{onboarding-Djv0NsZi.js → onboarding-BLFJufto.js} +35 -16
  133. package/dist/{onboarding-ifLjX4Oc.js → onboarding-DXQ0Qtq6.js} +34 -15
  134. package/dist/{orchestrator-DeKyZfHL.js → orchestrator-CZ5SiD5l.js} +4 -2
  135. package/dist/{orchestrator-DAY2aHzl.js → orchestrator-KqoQDkvl.js} +4 -2
  136. package/dist/{outbound-_KURrkN3.js → outbound-Cf_1Utlz.js} +1 -1
  137. package/dist/{outbound-DptF-A0k.js → outbound-CwCRq4Cg.js} +1 -1
  138. package/dist/{outbound-ChmdbJju.js → outbound-DdFghG1N.js} +2 -2
  139. package/dist/{parse-timeout-ByYuFf-D.js → parse-timeout-DhqvtdXz.js} +1 -1
  140. package/dist/{parse-timeout-PImvLfCF.js → parse-timeout-qnHqZvCW.js} +1 -1
  141. package/dist/{paths-BzTTzuSa.js → paths-OaazGgrn.js} +1 -1
  142. package/dist/{pi-auth-json-Ct4FUjxN.js → pi-auth-json-CYnJfuU-.js} +4 -4
  143. package/dist/{pi-auth-json-QVWbBbGs.js → pi-auth-json-Crkmg439.js} +3 -3
  144. package/dist/{pi-auth-json-BvGZollA.js → pi-auth-json-PEKcHBMl.js} +3 -3
  145. package/dist/{pi-embedded-helpers-BS_VM3j4.js → pi-embedded-helpers-CeMv9QXO.js} +4 -4
  146. package/dist/{pi-tools.policy-BntNhXqZ.js → pi-tools.policy-BoWzLBtH.js} +3 -3
  147. package/dist/{pi-tools.policy-pvzE9Rfa.js → pi-tools.policy-ClzqRWic.js} +3 -3
  148. package/dist/{plugin-auto-enable-j_zHeVf1.js → plugin-auto-enable-BlyqT33k.js} +1 -1
  149. package/dist/{plugin-auto-enable-BvCuJgmb.js → plugin-auto-enable-Df0BKZyz.js} +1 -1
  150. package/dist/{plugin-registry-BgzrHeH3.js → plugin-registry-BsdLXCVX.js} +3 -3
  151. package/dist/{plugin-registry-DurMOI5P.js → plugin-registry-k-cSnXEV.js} +3 -3
  152. package/dist/plugin-sdk/agents/workspace.d.ts +1 -0
  153. package/dist/plugin-sdk/index.js +6 -6
  154. package/dist/{plugins-cli-DJKbvRtd.js → plugins-cli-CXap4R64.js} +22 -22
  155. package/dist/{plugins-cli-BFJqs061.js → plugins-cli-OPa7o4qd.js} +21 -21
  156. package/dist/{program-8-GzSO81.js → program-CzWSwu9I.js} +27 -27
  157. package/dist/{program-context-CC-g5UxM.js → program-context-C8DYJdS-.js} +29 -29
  158. package/dist/{prompts-BWkFLWEk.js → prompts-Cm8eJ-i3.js} +131 -6
  159. package/dist/{prompts-CAgrJeru.js → prompts-vr_Njtil.js} +1 -1
  160. package/dist/{qmd-manager-TUpRgiFa.js → qmd-manager-BD0uCIzM.js} +1 -1
  161. package/dist/{qmd-manager-NwDwG7DY.js → qmd-manager-CaNCfJK6.js} +1 -1
  162. package/dist/{qmd-manager-B5wbKcWC.js → qmd-manager-lcdr9Faq.js} +4 -4
  163. package/dist/{queue-9vTUxVNg.js → queue-CRtO6LOL.js} +3 -1
  164. package/dist/{queue-R94Bcxk5.js → queue-DMVbLSSW.js} +3 -1
  165. package/dist/{register.agent-BWl6JYHL.js → register.agent-B_gLj3iW.js} +30 -30
  166. package/dist/{register.agent-BcxdwhFz.js → register.agent-DY1YeTsP.js} +28 -28
  167. package/dist/{register.anima-D9CE9aVh.js → register.anima-B0tWw_hC.js} +13 -13
  168. package/dist/{register.anima-D8cnU8Zq.js → register.anima-CObVi7FQ.js} +13 -13
  169. package/dist/{register.configure-BQ7viIFW.js → register.configure-BHsLGGdB.js} +29 -29
  170. package/dist/{register.configure-CWWSJ12h.js → register.configure-De5ZyOFg.js} +32 -32
  171. package/dist/{register.maintenance-BS36METc.js → register.maintenance-Bcb2lf7H.js} +34 -34
  172. package/dist/{register.maintenance-BUkkCBQa.js → register.maintenance-DSQmEYe7.js} +31 -31
  173. package/dist/{register.onboard-CxktbTOi.js → register.onboard-COEVeozO.js} +41 -37
  174. package/dist/{register.onboard-ks3BprXH.js → register.onboard-DUWYMOX1.js} +37 -33
  175. package/dist/register.setup-D__YdHzY.js +270 -0
  176. package/dist/register.setup-fJdxj_9G.js +267 -0
  177. package/dist/{register.status-health-sessions-Bmgu0PWs.js → register.status-health-sessions-BsGFhOsG.js} +25 -25
  178. package/dist/{register.status-health-sessions-Cfhab3ds.js → register.status-health-sessions-CP9VvjA9.js} +27 -27
  179. package/dist/{register.subclis-Cp2R1dTl.js → register.subclis-D2HE_7Rz.js} +20 -20
  180. package/dist/{reply-F1NR0Mmi.js → reply-B5IU75jY.js} +27 -27
  181. package/dist/{reply-BWWaNSoB.js → reply-LaOwllAB.js} +28 -28
  182. package/dist/{reply-prefix-ByFTwsu6.js → reply-prefix-B90kjTag.js} +2 -2
  183. package/dist/{reply-prefix-Cd1ryhL4.js → reply-prefix-Dl_Gro6x.js} +2 -2
  184. package/dist/{routes-DdssPiMt.js → routes-Bifu4ATk.js} +2 -2
  185. package/dist/{routes-TJ5bwx27.js → routes-D7OuiEUz.js} +2 -2
  186. package/dist/{run-main-Br6uQWzH.js → run-main-BTol0uPD.js} +40 -40
  187. package/dist/{sandbox-BIZzFPco.js → sandbox-CR2AIW2N.js} +3 -3
  188. package/dist/{sandbox-cli-DjALBAAV.js → sandbox-cli-CRzBRQ9r.js} +7 -7
  189. package/dist/{sandbox-cli-DMBBlMK-.js → sandbox-cli-c_HPZNmf.js} +7 -7
  190. package/dist/{sandbox-hOY3muxh.js → sandbox-wL61f1WP.js} +3 -3
  191. package/dist/{security-cli-GXZAU0Ax.js → security-cli-CVkFh9a9.js} +10 -10
  192. package/dist/{security-cli-CsDWYPNG.js → security-cli-DTAzTIiZ.js} +10 -10
  193. package/dist/{server-context-BW5BY88Y.js → server-context-C2TNamEJ.js} +1 -1
  194. package/dist/{server-context-C0YSbjOv.js → server-context-CHGGYs6i.js} +1 -1
  195. package/dist/{server-node-events-DM3CCYrf.js → server-node-events-DMEsGLU8.js} +13 -13
  196. package/dist/{server-node-events-Byy-Is6v.js → server-node-events-DsfvuRBK.js} +13 -13
  197. package/dist/{service-audit-u3qzhhqv.js → service-audit-BG0tcSCo.js} +1 -1
  198. package/dist/{service-audit-CGmQWccK.js → service-audit-DLV93I95.js} +1 -1
  199. package/dist/{session-BQzzYRDO.js → session-BpAyGjL3.js} +1 -1
  200. package/dist/{session-ititeJ0j.js → session-ygzMc3r1.js} +4 -4
  201. package/dist/{sessions-DiW7DuJO.js → sessions-0J_pFd44.js} +1 -1
  202. package/dist/{sessions-wzfE85C2.js → sessions-C7jYs5Sc.js} +1 -1
  203. package/dist/{sessions-Bxpm8P5t.js → sessions-CbUTEpMF.js} +4 -4
  204. package/dist/{shared-DynkOTFs.js → shared-B9kttsme.js} +1 -1
  205. package/dist/{skills-cli-Dttyzhqz.js → skills-cli-CrB84lEO.js} +3 -3
  206. package/dist/{skills-cli-DA18YLo4.js → skills-cli-DC6nGiOg.js} +3 -3
  207. package/dist/{sqlite-Dx5ydniE.js → sqlite-B3u2TqVF.js} +1 -1
  208. package/dist/{start-BNGlbbt9.js → start-BLi_X68Y.js} +36 -13
  209. package/dist/{start-DSZJq_zz.js → start-BQfR8aBZ.js} +36 -13
  210. package/dist/{status-BToHtmWf.js → status-CHuLEuXT.js} +12 -12
  211. package/dist/{status-QWb0sx59.js → status-CTYln2fY.js} +3 -3
  212. package/dist/{status-DVYPFs7b.js → status-CzCmUbgr.js} +13 -13
  213. package/dist/{status-BCbWWHdA.js → status-D5zPydam.js} +3 -3
  214. package/dist/{status.update-CwIUq3Bq.js → status.update-_DOVm6Tr.js} +1 -1
  215. package/dist/{status.update-CJR_Zlvb.js → status.update-s92nCoGl.js} +1 -1
  216. package/dist/{subagent-registry-DEjp4eYh.js → subagent-registry-DQzBrh1E.js} +5 -5
  217. package/dist/{subagent-registry-BOsyxABV.js → subagent-registry-jwfG4kCT.js} +5 -5
  218. package/dist/{subagent-registry-DXy6WsnY.js → subagent-registry-xUCd2ZX9.js} +8 -8
  219. package/dist/{system-cli-CtYpaf1K.js → system-cli-C8kg1fwg.js} +5 -5
  220. package/dist/{system-cli-BYJicBL3.js → system-cli-CTN9NSfv.js} +5 -5
  221. package/dist/{tui-Bx6Ty5e9.js → tui--uEeSnES.js} +4 -4
  222. package/dist/{tui-BbS56NwI.js → tui-DBbVe-hW.js} +4 -4
  223. package/dist/{tui-cli-BcqM-1Iu.js → tui-cli-CypnMid4.js} +10 -10
  224. package/dist/{tui-cli-DM2-e45Y.js → tui-cli-De0zVM4-.js} +10 -10
  225. package/dist/{update-cli-DHCu3Tw_.js → update-cli-C6zUK6ap.js} +38 -38
  226. package/dist/{update-cli-CzrELkox.js → update-cli-CATjbP1k.js} +41 -41
  227. package/dist/{update-runner-CBoHuDWR.js → update-runner-B-JShOyr.js} +1 -1
  228. package/dist/{update-runner-OvETClW6.js → update-runner-O0kK_BAP.js} +1 -1
  229. package/dist/{usage-ClLnsNuk.js → usage-kmpmqBES.js} +57 -9
  230. package/dist/{web-DNwUI_-o.js → web-CTS-vEIT.js} +30 -30
  231. package/dist/{web-B-hsbig8.js → web-DNoikQbD.js} +25 -25
  232. package/dist/{web-Ci2DZCF7.js → web-EevNfpKp.js} +25 -25
  233. package/dist/{webhooks-cli-CK3Ooqxg.js → webhooks-cli-BqeMvo07.js} +3 -3
  234. package/dist/{webhooks-cli-BGo97Z-y.js → webhooks-cli-Cq3eb3vw.js} +3 -3
  235. package/dist/{whatsapp-actions-C-cAzSXs.js → whatsapp-actions-BkSSHLwM.js} +4 -4
  236. package/dist/{whatsapp-actions-CFQjbIXn.js → whatsapp-actions-j-5lmC5M.js} +4 -4
  237. package/dist/{whatsapp-actions-DBSx3VSP.js → whatsapp-actions-qDftmVCc.js} +6 -6
  238. package/dist/{workspace-BSBhp-B5.js → workspace-CZlo4alz.js} +3 -1
  239. package/package.json +1 -1
  240. package/templates/SOUL.md +16 -0
  241. package/dist/register.setup-CP--HKWT.js +0 -180
  242. package/dist/register.setup-TUHZSkwM.js +0 -177
  243. /package/dist/{budget-1SoJncof.js → budget-OJQ-m-_V.js} +0 -0
  244. /package/dist/{budget-DYeweLNW.js → budget-XH9_9WRg.js} +0 -0
  245. /package/dist/{config-COtiNNtV.js → config-Btt1rkoB.js} +0 -0
  246. /package/dist/{input-provenance-MbkIKHHL.js → input-provenance-B0pwc6mp.js} +0 -0
  247. /package/dist/{registry-Dw31-Q3z.js → registry-6ARhh9Nh.js} +0 -0
  248. /package/dist/{registry-Bkdrbxa5.js → registry-E-bcMZe2.js} +0 -0
@@ -0,0 +1,270 @@
1
+ import { M as theme, h as defaultRuntime } from "./entry.js";
2
+ import "./auth-profiles-BYETsqKc.js";
3
+ import { S as shortenHomePath } from "./utils-DwcweD55.js";
4
+ import "./exec-DRQWu5Xi.js";
5
+ import { f as DEFAULT_AGENT_WORKSPACE_DIR, x as ensureAgentWorkspace } from "./agent-scope-M302b8FW.js";
6
+ import "./model-selection-DJcZ82uR.js";
7
+ import "./file-lock-CxXn285m.js";
8
+ import "./agent-paths-CrZhIsTW.js";
9
+ import "./pi-model-discovery-DgwvfEmd.js";
10
+ import "./skills-CG8iI6v6.js";
11
+ import "./manifest-registry-BHcAJo9u.js";
12
+ import { l as writeConfigFile, r as createConfigIO } from "./config-6zE4ZkSF.js";
13
+ import "./shell-env-DAw9qXji.js";
14
+ import "./client-BsSB9O8y.js";
15
+ import "./call-LugHQWOF.js";
16
+ import "./message-channel-6Ln4eFyX.js";
17
+ import "./timeout-BXC4bZck.js";
18
+ import "./sessions-C7jYs5Sc.js";
19
+ import "./subagent-registry-DQzBrh1E.js";
20
+ import "./plugins-Tpy9T9c2.js";
21
+ import "./pi-embedded-helpers-D_ZL9Ofu.js";
22
+ import "./sandbox-CR2AIW2N.js";
23
+ import "./chrome-uJGz5mgu.js";
24
+ import "./auth-CBxE4UNz.js";
25
+ import "./server-context-C2TNamEJ.js";
26
+ import "./routes-Bifu4ATk.js";
27
+ import "./image-ops-CcJOy4db.js";
28
+ import "./ports-Dsm-zUSt.js";
29
+ import { o as resolveSessionTranscriptsDir } from "./paths-DqBoV7GZ.js";
30
+ import "./tool-images-C4WmHWDO.js";
31
+ import "./tokens-RUKWFK24.js";
32
+ import "./media-B9MUhrat.js";
33
+ import "./chunk-Cj2sLFwd.js";
34
+ import "./common-CNiE_VZA.js";
35
+ import "./control-service-dAtxFV2S.js";
36
+ import "./cli-session-CJ4_a3AU.js";
37
+ import "./reply-LaOwllAB.js";
38
+ import "./model-auth-B3BPcnwt.js";
39
+ import "./context-CsnIPzGP.js";
40
+ import "./parse-timeout-DhqvtdXz.js";
41
+ import "./deliver-CkrMkcOx.js";
42
+ import "./pi-tools.policy-ClzqRWic.js";
43
+ import "./memory-cli-DEnGCMk0.js";
44
+ import "./manager-BVhxScwx.js";
45
+ import "./sqlite-WDviThxg.js";
46
+ import "./redact-hnHuWzNz.js";
47
+ import "./session-BofBojlx.js";
48
+ import "./semantic-DbJmUUVs.js";
49
+ import "./loader-82icMkcZ.js";
50
+ import "./soul-DriZoW2_.js";
51
+ import { t as formatDocsLink } from "./links-CyFLSgkY.js";
52
+ import { t as runCommandWithRuntime } from "./cli-utils-D-jqXKL_.js";
53
+ import "./progress-DcyA3a5A.js";
54
+ import "./logging-DWwOqnTW.js";
55
+ import "./auth-store-BEUCdUFj.js";
56
+ import "./dispatcher-BhzRMibw.js";
57
+ import "./delivery-queue-BqJKnOa_.js";
58
+ import "./session-cost-usage-lfPU35Sb.js";
59
+ import "./register.subclis-D2HE_7Rz.js";
60
+ import "./command-registry-D5y3Nn9i.js";
61
+ import "./program-context-DItEQSzX.js";
62
+ import "./completion-cli-CqZwlvs2.js";
63
+ import "./daemon-runtime-Cbi2Ox6g.js";
64
+ import "./onboard-helpers-DKu_2enh.js";
65
+ import "./prompt-style-DZq_uOc1.js";
66
+ import "./systemd-BEeuI9u0.js";
67
+ import "./service-U3nMjKlR.js";
68
+ import "./health-27WiwNrh.js";
69
+ import "./health-format-Dug5Rbjg.js";
70
+ import { a as ensureAuthenticated } from "./auth-choice-BTMheCDo.js";
71
+ import "./prompts-vr_Njtil.js";
72
+ import "./shared-B9kttsme.js";
73
+ import "./ipv4-yUiIU5CD.js";
74
+ import "./hooks-status-B53TbyZm.js";
75
+ import "./onboarding-BLFJufto.js";
76
+ import { n as logConfigUpdated, t as formatConfigPath } from "./logging-B05aEFEO.js";
77
+ import "./tui--uEeSnES.js";
78
+ import "./note-Cdu0wcse.js";
79
+ import "./doctor-completion-DguJOZqA.js";
80
+ import "./clack-prompter-1d_RjjVW.js";
81
+ import { t as hasExplicitOptions } from "./command-options-mgpP-XId.js";
82
+ import "./systemd-linger-BXOkxYnH.js";
83
+ import { t as onboardCommand } from "./onboard-BqpDno7i.js";
84
+ import JSON5 from "json5";
85
+ import { isDeepStrictEqual } from "node:util";
86
+ import fs from "node:fs/promises";
87
+
88
+ //#region src/commands/setup.ts
89
+ const NOXSOFT_AUTONOMY_PRESET = "noxsoft-autonomy";
90
+ function resolveSetupPreset(raw) {
91
+ const normalized = raw?.trim().toLowerCase();
92
+ if (!normalized) return { preset: null };
93
+ if (normalized === NOXSOFT_AUTONOMY_PRESET) return { preset: NOXSOFT_AUTONOMY_PRESET };
94
+ return {
95
+ preset: null,
96
+ error: `Unknown setup preset "${raw}". Supported presets: ${NOXSOFT_AUTONOMY_PRESET}.`
97
+ };
98
+ }
99
+ function normalizeHeartbeatTarget(raw) {
100
+ const normalized = raw?.trim();
101
+ if (!normalized) return;
102
+ if (normalized === "last" || normalized === "none") return normalized;
103
+ return normalized;
104
+ }
105
+ function applyNoxsoftAutonomyPreset(config) {
106
+ const defaults = config.agents?.defaults ?? {};
107
+ const heartbeat = defaults.heartbeat ?? {};
108
+ return {
109
+ ...config,
110
+ agents: {
111
+ ...config.agents,
112
+ defaults: {
113
+ ...defaults,
114
+ heartbeat: {
115
+ ...heartbeat,
116
+ every: heartbeat.every ?? "5m",
117
+ target: heartbeat.target ?? "last",
118
+ prompt: heartbeat.prompt ?? [
119
+ "Run NoxSoft autonomy heartbeat.",
120
+ "1) Check chat.noxsoft.net for unread messages and reply when action is required.",
121
+ "2) Check status.noxsoft.net and track regressions/issues before code changes.",
122
+ "3) Continue highest-priority implementation, security, and test work in this workspace.",
123
+ "If no action is required, reply HEARTBEAT_OK."
124
+ ].join(" ")
125
+ }
126
+ }
127
+ }
128
+ };
129
+ }
130
+ function applyHeartbeatOverrides(config, opts) {
131
+ const heartbeatEvery = opts?.heartbeatEvery?.trim();
132
+ const heartbeatPrompt = opts?.heartbeatPrompt?.trim();
133
+ const heartbeatTarget = normalizeHeartbeatTarget(opts?.heartbeatTarget);
134
+ if (!heartbeatEvery && !heartbeatPrompt && !heartbeatTarget) return config;
135
+ const defaults = config.agents?.defaults ?? {};
136
+ const heartbeat = defaults.heartbeat ?? {};
137
+ return {
138
+ ...config,
139
+ agents: {
140
+ ...config.agents,
141
+ defaults: {
142
+ ...defaults,
143
+ heartbeat: {
144
+ ...heartbeat,
145
+ ...heartbeatEvery ? { every: heartbeatEvery } : {},
146
+ ...heartbeatPrompt ? { prompt: heartbeatPrompt } : {},
147
+ ...heartbeatTarget ? { target: heartbeatTarget } : {}
148
+ }
149
+ }
150
+ }
151
+ };
152
+ }
153
+ async function readConfigFileRaw(configPath) {
154
+ try {
155
+ const raw = await fs.readFile(configPath, "utf-8");
156
+ const parsed = JSON5.parse(raw);
157
+ if (parsed && typeof parsed === "object") return {
158
+ exists: true,
159
+ parsed
160
+ };
161
+ return {
162
+ exists: true,
163
+ parsed: {}
164
+ };
165
+ } catch {
166
+ return {
167
+ exists: false,
168
+ parsed: {}
169
+ };
170
+ }
171
+ }
172
+ async function setupCommand(opts, runtime = defaultRuntime) {
173
+ const desiredWorkspace = typeof opts?.workspace === "string" && opts.workspace.trim() ? opts.workspace.trim() : void 0;
174
+ const presetResolution = resolveSetupPreset(opts?.preset);
175
+ if (presetResolution.error) {
176
+ runtime.error(presetResolution.error);
177
+ runtime.exit(1);
178
+ return;
179
+ }
180
+ const preset = presetResolution.preset;
181
+ const configPath = createConfigIO().configPath;
182
+ const existingRaw = await readConfigFileRaw(configPath);
183
+ const cfg = existingRaw.parsed;
184
+ const defaults = cfg.agents?.defaults ?? {};
185
+ const workspace = desiredWorkspace ?? defaults.workspace ?? DEFAULT_AGENT_WORKSPACE_DIR;
186
+ const next = {
187
+ ...cfg,
188
+ agents: {
189
+ ...cfg.agents,
190
+ defaults: {
191
+ ...defaults,
192
+ workspace
193
+ }
194
+ }
195
+ };
196
+ const withOverrides = applyHeartbeatOverrides(preset === NOXSOFT_AUTONOMY_PRESET ? applyNoxsoftAutonomyPreset(next) : next, opts);
197
+ if (!existingRaw.exists || !isDeepStrictEqual(cfg, withOverrides)) {
198
+ await writeConfigFile(withOverrides);
199
+ if (!existingRaw.exists) runtime.log(`Wrote ${formatConfigPath(configPath)}`);
200
+ else logConfigUpdated(runtime, {
201
+ path: configPath,
202
+ suffix: "(setup updates applied)"
203
+ });
204
+ } else runtime.log(`Config OK: ${formatConfigPath(configPath)}`);
205
+ const ws = await ensureAgentWorkspace({
206
+ dir: workspace,
207
+ ensureBootstrapFiles: !withOverrides.agents?.defaults?.skipBootstrap,
208
+ seedBootstrapOnFirstRun: !existingRaw.exists
209
+ });
210
+ runtime.log(`Workspace OK: ${shortenHomePath(ws.dir)}`);
211
+ const sessionsDir = resolveSessionTranscriptsDir();
212
+ await fs.mkdir(sessionsDir, { recursive: true });
213
+ runtime.log(`Sessions OK: ${shortenHomePath(sessionsDir)}`);
214
+ const gatewayMode = withOverrides.gateway?.mode;
215
+ const gatewayPort = withOverrides.gateway?.port;
216
+ const heartbeatEvery = withOverrides.agents?.defaults?.heartbeat?.every;
217
+ const heartbeatTarget = withOverrides.agents?.defaults?.heartbeat?.target;
218
+ runtime.log("");
219
+ runtime.log(" Current settings:");
220
+ runtime.log(` Gateway: ${gatewayMode ?? "not configured"}${gatewayPort ? ` (port ${gatewayPort})` : ""}`);
221
+ runtime.log(` Heartbeat: ${heartbeatEvery ?? "default (30m)"}${heartbeatTarget ? ` -> ${heartbeatTarget}` : ""}`);
222
+ if (preset === NOXSOFT_AUTONOMY_PRESET) runtime.log(` Preset: ${NOXSOFT_AUTONOMY_PRESET}`);
223
+ try {
224
+ const auth = await ensureAuthenticated({
225
+ name: opts?.noxsoftAgentName,
226
+ displayName: opts?.noxsoftDisplayName,
227
+ description: "ANIMA setup auto-registration"
228
+ });
229
+ runtime.log(` NoxSoft: \x1b[32m${auth.registered ? "registered" : "authenticated"}\x1b[0m as ${auth.agent.display_name} (@${auth.agent.name})`);
230
+ } catch (error) {
231
+ const message = error instanceof Error && error.message ? error.message : "Unknown NoxSoft authentication error.";
232
+ runtime.error(`NoxSoft authentication is required for setup.\n${message}`);
233
+ runtime.exit(1);
234
+ return;
235
+ }
236
+ runtime.log("");
237
+ runtime.log(" Run \x1B[36manima configure\x1B[0m to change settings.");
238
+ runtime.log(" Run \x1B[36manima setup --wizard\x1B[0m for full guided setup.");
239
+ }
240
+
241
+ //#endregion
242
+ //#region src/cli/program/register.setup.ts
243
+ function registerSetupCommand(program) {
244
+ program.command("setup").description("Initialize ANIMA config and the agent workspace").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/setup", "docs.noxsoft.net/anima/cli/setup")}\n`).option("--workspace <dir>", "Agent workspace directory (default: ~/.anima/workspace; stored as agents.defaults.workspace)").option("--preset <name>", "Apply a setup preset (supported: noxsoft-autonomy)").option("--heartbeat-every <duration>", "Set agents.defaults.heartbeat.every (e.g. 5m, 30m, 1h)").option("--heartbeat-target <target>", "Set agents.defaults.heartbeat.target (last|none|<channel-id>)").option("--heartbeat-prompt <text>", "Set agents.defaults.heartbeat.prompt").option("--noxsoft-agent-name <slug>", "Preferred NoxSoft agent name for automatic registration").option("--noxsoft-display-name <name>", "Preferred NoxSoft display name for automatic registration").option("--wizard", "Run the interactive onboarding wizard", false).option("--non-interactive", "Run the wizard without prompts", false).action(async (opts, command) => {
245
+ await runCommandWithRuntime(defaultRuntime, async () => {
246
+ const hasWizardFlags = hasExplicitOptions(command, ["wizard", "nonInteractive"]);
247
+ if (opts.wizard || hasWizardFlags) {
248
+ await onboardCommand({
249
+ workspace: opts.workspace,
250
+ nonInteractive: Boolean(opts.nonInteractive),
251
+ noxsoftAgentName: opts.noxsoftAgentName,
252
+ noxsoftDisplayName: opts.noxsoftDisplayName
253
+ }, defaultRuntime);
254
+ return;
255
+ }
256
+ await setupCommand({
257
+ workspace: opts.workspace,
258
+ preset: opts.preset,
259
+ heartbeatEvery: opts.heartbeatEvery,
260
+ heartbeatTarget: opts.heartbeatTarget,
261
+ heartbeatPrompt: opts.heartbeatPrompt,
262
+ noxsoftAgentName: opts.noxsoftAgentName,
263
+ noxsoftDisplayName: opts.noxsoftDisplayName
264
+ }, defaultRuntime);
265
+ });
266
+ });
267
+ }
268
+
269
+ //#endregion
270
+ export { registerSetupCommand };
@@ -0,0 +1,267 @@
1
+ import "./paths-zhVksOvm.js";
2
+ import { B as theme, u as defaultRuntime } from "./subsystem-BaJ-PqmA.js";
3
+ import { C as shortenHomePath } from "./utils-RdHkpqQp.js";
4
+ import "./pi-embedded-helpers-6Tb87sgU.js";
5
+ import "./subagent-registry-jwfG4kCT.js";
6
+ import "./reply-B5IU75jY.js";
7
+ import "./exec-Bsq6vlwp.js";
8
+ import { f as DEFAULT_AGENT_WORKSPACE_DIR, x as ensureAgentWorkspace } from "./agent-scope-vpVhWds3.js";
9
+ import "./model-selection-C2dz3AhV.js";
10
+ import "./lanes-CjLEc1h9.js";
11
+ import { l as writeConfigFile, r as createConfigIO } from "./config-9JRRXykP.js";
12
+ import "./boolean-Wzu0-e0P.js";
13
+ import "./env-CYcXAarB.js";
14
+ import "./shell-env-SbFYz02H.js";
15
+ import "./manifest-registry-DLouWVJe.js";
16
+ import "./sessions-0J_pFd44.js";
17
+ import "./image-ops-CVabMYiY.js";
18
+ import "./polls-vAdf9owY.js";
19
+ import "./auth-profiles-DZS4PC_i.js";
20
+ import "./file-lock-BRW4LeL0.js";
21
+ import "./model-auth-DUHamQTz.js";
22
+ import "./cli-session-CIhvoVRb.js";
23
+ import "./tokens-BLOye_TP.js";
24
+ import "./sandbox-wL61f1WP.js";
25
+ import "./chrome-CVfcErE4.js";
26
+ import "./auth-B8ry4GB_.js";
27
+ import "./server-context-CHGGYs6i.js";
28
+ import "./skills-DsdcfeyV.js";
29
+ import "./routes-D7OuiEUz.js";
30
+ import "./ports-CmAt9mb6.js";
31
+ import "./message-channel-BbkwF58_.js";
32
+ import "./plugins-CFb1gJ4N.js";
33
+ import { o as resolveSessionTranscriptsDir } from "./paths-CqMZNi-M.js";
34
+ import "./tool-images-C4cophRS.js";
35
+ import "./parse-timeout-qnHqZvCW.js";
36
+ import "./chunk-DprzQA5H.js";
37
+ import "./deliver-tQREYhAr.js";
38
+ import "./pi-tools.policy-BoWzLBtH.js";
39
+ import "./client-oEG5cM5Q.js";
40
+ import "./call-BBzfZU0_.js";
41
+ import "./memory-cli-CDMb58Y3.js";
42
+ import "./manager-1ZMunRXe.js";
43
+ import "./sqlite-EkbWHNXu.js";
44
+ import "./redact-BICFkpn7.js";
45
+ import "./session-DmKXXA8P.js";
46
+ import "./semantic-Dr5Rm54S.js";
47
+ import "./loader-DdJZwB8s.js";
48
+ import "./soul-QDMbOFQ4.js";
49
+ import "./common-CwWabBN8.js";
50
+ import { t as formatDocsLink } from "./links-NgE0SEVZ.js";
51
+ import { t as runCommandWithRuntime } from "./cli-utils-C2Dtl4o_.js";
52
+ import "./progress-gdB4V88Q.js";
53
+ import "./logging-1vypRz8h.js";
54
+ import "./auth-store-DWgI4Vj8.js";
55
+ import "./control-service-DptjbgYI.js";
56
+ import "./dispatcher-CiJKNMU3.js";
57
+ import "./pi-model-discovery-HH8RvApN.js";
58
+ import "./delivery-queue-CdUtwMZr.js";
59
+ import "./session-cost-usage-CYdqhmt6.js";
60
+ import "./program-context-C8DYJdS-.js";
61
+ import "./completion-cli-CDsbJ-p2.js";
62
+ import "./daemon-runtime-DOk9qM0y.js";
63
+ import "./onboard-helpers-K7wUCSoE.js";
64
+ import "./prompt-style-CXrnxWQG.js";
65
+ import "./systemd-IDjybnbO.js";
66
+ import "./service-H_0E0nOX.js";
67
+ import "./health-CH8yZB2L.js";
68
+ import "./health-format-BMwPAU53.js";
69
+ import { c as ensureAuthenticated } from "./prompts-Cm8eJ-i3.js";
70
+ import "./ipv4-sll41DXC.js";
71
+ import "./hooks-status-BTVvcXJx.js";
72
+ import "./onboarding-DXQ0Qtq6.js";
73
+ import { n as logConfigUpdated, t as formatConfigPath } from "./logging-ClHj0gnP.js";
74
+ import "./tui-DBbVe-hW.js";
75
+ import "./note-CLRVmCnr.js";
76
+ import "./doctor-completion-BY4djQTY.js";
77
+ import "./clack-prompter-S0pujJNH.js";
78
+ import { t as hasExplicitOptions } from "./command-options-HR4rJB0D.js";
79
+ import "./systemd-linger-q1hyIpoI.js";
80
+ import { t as onboardCommand } from "./onboard-B006xiEP.js";
81
+ import JSON5 from "json5";
82
+ import fs from "node:fs/promises";
83
+ import { isDeepStrictEqual } from "node:util";
84
+
85
+ //#region src/commands/setup.ts
86
+ const NOXSOFT_AUTONOMY_PRESET = "noxsoft-autonomy";
87
+ function resolveSetupPreset(raw) {
88
+ const normalized = raw?.trim().toLowerCase();
89
+ if (!normalized) return { preset: null };
90
+ if (normalized === NOXSOFT_AUTONOMY_PRESET) return { preset: NOXSOFT_AUTONOMY_PRESET };
91
+ return {
92
+ preset: null,
93
+ error: `Unknown setup preset "${raw}". Supported presets: ${NOXSOFT_AUTONOMY_PRESET}.`
94
+ };
95
+ }
96
+ function normalizeHeartbeatTarget(raw) {
97
+ const normalized = raw?.trim();
98
+ if (!normalized) return;
99
+ if (normalized === "last" || normalized === "none") return normalized;
100
+ return normalized;
101
+ }
102
+ function applyNoxsoftAutonomyPreset(config) {
103
+ const defaults = config.agents?.defaults ?? {};
104
+ const heartbeat = defaults.heartbeat ?? {};
105
+ return {
106
+ ...config,
107
+ agents: {
108
+ ...config.agents,
109
+ defaults: {
110
+ ...defaults,
111
+ heartbeat: {
112
+ ...heartbeat,
113
+ every: heartbeat.every ?? "5m",
114
+ target: heartbeat.target ?? "last",
115
+ prompt: heartbeat.prompt ?? [
116
+ "Run NoxSoft autonomy heartbeat.",
117
+ "1) Check chat.noxsoft.net for unread messages and reply when action is required.",
118
+ "2) Check status.noxsoft.net and track regressions/issues before code changes.",
119
+ "3) Continue highest-priority implementation, security, and test work in this workspace.",
120
+ "If no action is required, reply HEARTBEAT_OK."
121
+ ].join(" ")
122
+ }
123
+ }
124
+ }
125
+ };
126
+ }
127
+ function applyHeartbeatOverrides(config, opts) {
128
+ const heartbeatEvery = opts?.heartbeatEvery?.trim();
129
+ const heartbeatPrompt = opts?.heartbeatPrompt?.trim();
130
+ const heartbeatTarget = normalizeHeartbeatTarget(opts?.heartbeatTarget);
131
+ if (!heartbeatEvery && !heartbeatPrompt && !heartbeatTarget) return config;
132
+ const defaults = config.agents?.defaults ?? {};
133
+ const heartbeat = defaults.heartbeat ?? {};
134
+ return {
135
+ ...config,
136
+ agents: {
137
+ ...config.agents,
138
+ defaults: {
139
+ ...defaults,
140
+ heartbeat: {
141
+ ...heartbeat,
142
+ ...heartbeatEvery ? { every: heartbeatEvery } : {},
143
+ ...heartbeatPrompt ? { prompt: heartbeatPrompt } : {},
144
+ ...heartbeatTarget ? { target: heartbeatTarget } : {}
145
+ }
146
+ }
147
+ }
148
+ };
149
+ }
150
+ async function readConfigFileRaw(configPath) {
151
+ try {
152
+ const raw = await fs.readFile(configPath, "utf-8");
153
+ const parsed = JSON5.parse(raw);
154
+ if (parsed && typeof parsed === "object") return {
155
+ exists: true,
156
+ parsed
157
+ };
158
+ return {
159
+ exists: true,
160
+ parsed: {}
161
+ };
162
+ } catch {
163
+ return {
164
+ exists: false,
165
+ parsed: {}
166
+ };
167
+ }
168
+ }
169
+ async function setupCommand(opts, runtime = defaultRuntime) {
170
+ const desiredWorkspace = typeof opts?.workspace === "string" && opts.workspace.trim() ? opts.workspace.trim() : void 0;
171
+ const presetResolution = resolveSetupPreset(opts?.preset);
172
+ if (presetResolution.error) {
173
+ runtime.error(presetResolution.error);
174
+ runtime.exit(1);
175
+ return;
176
+ }
177
+ const preset = presetResolution.preset;
178
+ const configPath = createConfigIO().configPath;
179
+ const existingRaw = await readConfigFileRaw(configPath);
180
+ const cfg = existingRaw.parsed;
181
+ const defaults = cfg.agents?.defaults ?? {};
182
+ const workspace = desiredWorkspace ?? defaults.workspace ?? DEFAULT_AGENT_WORKSPACE_DIR;
183
+ const next = {
184
+ ...cfg,
185
+ agents: {
186
+ ...cfg.agents,
187
+ defaults: {
188
+ ...defaults,
189
+ workspace
190
+ }
191
+ }
192
+ };
193
+ const withOverrides = applyHeartbeatOverrides(preset === NOXSOFT_AUTONOMY_PRESET ? applyNoxsoftAutonomyPreset(next) : next, opts);
194
+ if (!existingRaw.exists || !isDeepStrictEqual(cfg, withOverrides)) {
195
+ await writeConfigFile(withOverrides);
196
+ if (!existingRaw.exists) runtime.log(`Wrote ${formatConfigPath(configPath)}`);
197
+ else logConfigUpdated(runtime, {
198
+ path: configPath,
199
+ suffix: "(setup updates applied)"
200
+ });
201
+ } else runtime.log(`Config OK: ${formatConfigPath(configPath)}`);
202
+ const ws = await ensureAgentWorkspace({
203
+ dir: workspace,
204
+ ensureBootstrapFiles: !withOverrides.agents?.defaults?.skipBootstrap,
205
+ seedBootstrapOnFirstRun: !existingRaw.exists
206
+ });
207
+ runtime.log(`Workspace OK: ${shortenHomePath(ws.dir)}`);
208
+ const sessionsDir = resolveSessionTranscriptsDir();
209
+ await fs.mkdir(sessionsDir, { recursive: true });
210
+ runtime.log(`Sessions OK: ${shortenHomePath(sessionsDir)}`);
211
+ const gatewayMode = withOverrides.gateway?.mode;
212
+ const gatewayPort = withOverrides.gateway?.port;
213
+ const heartbeatEvery = withOverrides.agents?.defaults?.heartbeat?.every;
214
+ const heartbeatTarget = withOverrides.agents?.defaults?.heartbeat?.target;
215
+ runtime.log("");
216
+ runtime.log(" Current settings:");
217
+ runtime.log(` Gateway: ${gatewayMode ?? "not configured"}${gatewayPort ? ` (port ${gatewayPort})` : ""}`);
218
+ runtime.log(` Heartbeat: ${heartbeatEvery ?? "default (30m)"}${heartbeatTarget ? ` -> ${heartbeatTarget}` : ""}`);
219
+ if (preset === NOXSOFT_AUTONOMY_PRESET) runtime.log(` Preset: ${NOXSOFT_AUTONOMY_PRESET}`);
220
+ try {
221
+ const auth = await ensureAuthenticated({
222
+ name: opts?.noxsoftAgentName,
223
+ displayName: opts?.noxsoftDisplayName,
224
+ description: "ANIMA setup auto-registration"
225
+ });
226
+ runtime.log(` NoxSoft: \x1b[32m${auth.registered ? "registered" : "authenticated"}\x1b[0m as ${auth.agent.display_name} (@${auth.agent.name})`);
227
+ } catch (error) {
228
+ const message = error instanceof Error && error.message ? error.message : "Unknown NoxSoft authentication error.";
229
+ runtime.error(`NoxSoft authentication is required for setup.\n${message}`);
230
+ runtime.exit(1);
231
+ return;
232
+ }
233
+ runtime.log("");
234
+ runtime.log(" Run \x1B[36manima configure\x1B[0m to change settings.");
235
+ runtime.log(" Run \x1B[36manima setup --wizard\x1B[0m for full guided setup.");
236
+ }
237
+
238
+ //#endregion
239
+ //#region src/cli/program/register.setup.ts
240
+ function registerSetupCommand(program) {
241
+ program.command("setup").description("Initialize ANIMA config and the agent workspace").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/setup", "docs.noxsoft.net/anima/cli/setup")}\n`).option("--workspace <dir>", "Agent workspace directory (default: ~/.anima/workspace; stored as agents.defaults.workspace)").option("--preset <name>", "Apply a setup preset (supported: noxsoft-autonomy)").option("--heartbeat-every <duration>", "Set agents.defaults.heartbeat.every (e.g. 5m, 30m, 1h)").option("--heartbeat-target <target>", "Set agents.defaults.heartbeat.target (last|none|<channel-id>)").option("--heartbeat-prompt <text>", "Set agents.defaults.heartbeat.prompt").option("--noxsoft-agent-name <slug>", "Preferred NoxSoft agent name for automatic registration").option("--noxsoft-display-name <name>", "Preferred NoxSoft display name for automatic registration").option("--wizard", "Run the interactive onboarding wizard", false).option("--non-interactive", "Run the wizard without prompts", false).action(async (opts, command) => {
242
+ await runCommandWithRuntime(defaultRuntime, async () => {
243
+ const hasWizardFlags = hasExplicitOptions(command, ["wizard", "nonInteractive"]);
244
+ if (opts.wizard || hasWizardFlags) {
245
+ await onboardCommand({
246
+ workspace: opts.workspace,
247
+ nonInteractive: Boolean(opts.nonInteractive),
248
+ noxsoftAgentName: opts.noxsoftAgentName,
249
+ noxsoftDisplayName: opts.noxsoftDisplayName
250
+ }, defaultRuntime);
251
+ return;
252
+ }
253
+ await setupCommand({
254
+ workspace: opts.workspace,
255
+ preset: opts.preset,
256
+ heartbeatEvery: opts.heartbeatEvery,
257
+ heartbeatTarget: opts.heartbeatTarget,
258
+ heartbeatPrompt: opts.heartbeatPrompt,
259
+ noxsoftAgentName: opts.noxsoftAgentName,
260
+ noxsoftDisplayName: opts.noxsoftDisplayName
261
+ }, defaultRuntime);
262
+ });
263
+ });
264
+ }
265
+
266
+ //#endregion
267
+ export { registerSetupCommand };
@@ -2,45 +2,45 @@ import "./paths-zhVksOvm.js";
2
2
  import { B as theme, P as setVerbose, k as info, u as defaultRuntime, z as isRich } from "./subsystem-BaJ-PqmA.js";
3
3
  import "./utils-RdHkpqQp.js";
4
4
  import "./pi-embedded-helpers-6Tb87sgU.js";
5
- import "./subagent-registry-BOsyxABV.js";
6
- import "./reply-F1NR0Mmi.js";
5
+ import "./subagent-registry-jwfG4kCT.js";
6
+ import "./reply-B5IU75jY.js";
7
7
  import "./exec-Bsq6vlwp.js";
8
- import "./agent-scope-kT_pK2eJ.js";
9
- import { _ as DEFAULT_MODEL, d as resolveConfiguredModelRef, g as DEFAULT_CONTEXT_TOKENS, v as DEFAULT_PROVIDER } from "./model-selection-MwLHFnAb.js";
8
+ import "./agent-scope-vpVhWds3.js";
9
+ import { _ as DEFAULT_MODEL, d as resolveConfiguredModelRef, g as DEFAULT_CONTEXT_TOKENS, v as DEFAULT_PROVIDER } from "./model-selection-C2dz3AhV.js";
10
10
  import "./lanes-CjLEc1h9.js";
11
- import { i as loadConfig } from "./config-Bda-8Rdh.js";
11
+ import { i as loadConfig } from "./config-9JRRXykP.js";
12
12
  import "./boolean-Wzu0-e0P.js";
13
13
  import "./env-CYcXAarB.js";
14
14
  import "./shell-env-SbFYz02H.js";
15
15
  import "./manifest-registry-DLouWVJe.js";
16
- import { T as resolveFreshSessionTotalTokens, i as loadSessionStore } from "./sessions-DiW7DuJO.js";
16
+ import { T as resolveFreshSessionTotalTokens, i as loadSessionStore } from "./sessions-0J_pFd44.js";
17
17
  import "./image-ops-CVabMYiY.js";
18
18
  import "./polls-vAdf9owY.js";
19
- import "./auth-profiles-CzyebTC0.js";
19
+ import "./auth-profiles-DZS4PC_i.js";
20
20
  import "./file-lock-BRW4LeL0.js";
21
- import "./model-auth-Cyx2Xoz0.js";
22
- import { zt as lookupContextTokens } from "./cli-session-C5q6Uryq.js";
21
+ import "./model-auth-DUHamQTz.js";
22
+ import { zt as lookupContextTokens } from "./cli-session-CIhvoVRb.js";
23
23
  import "./tokens-BLOye_TP.js";
24
- import "./sandbox-hOY3muxh.js";
24
+ import "./sandbox-wL61f1WP.js";
25
25
  import "./chrome-CVfcErE4.js";
26
26
  import "./auth-B8ry4GB_.js";
27
- import "./server-context-C0YSbjOv.js";
27
+ import "./server-context-CHGGYs6i.js";
28
28
  import "./skills-DsdcfeyV.js";
29
- import "./routes-TJ5bwx27.js";
29
+ import "./routes-D7OuiEUz.js";
30
30
  import "./ports-CmAt9mb6.js";
31
31
  import "./message-channel-BbkwF58_.js";
32
32
  import "./plugins-CFb1gJ4N.js";
33
33
  import { c as resolveStorePath } from "./paths-CqMZNi-M.js";
34
34
  import "./tool-images-C4cophRS.js";
35
- import "./parse-timeout-PImvLfCF.js";
35
+ import "./parse-timeout-qnHqZvCW.js";
36
36
  import "./chunk-DprzQA5H.js";
37
- import "./deliver-TokuvSTy.js";
38
- import "./pi-tools.policy-BntNhXqZ.js";
37
+ import "./deliver-tQREYhAr.js";
38
+ import "./pi-tools.policy-BoWzLBtH.js";
39
39
  import "./client-oEG5cM5Q.js";
40
- import "./call-CItRp_pr.js";
40
+ import "./call-BBzfZU0_.js";
41
41
  import { n as formatTimeAgo } from "./format-relative-C57Jb4Zw.js";
42
- import "./memory-cli-hyoQVF7L.js";
43
- import "./manager-eyHWQVGS.js";
42
+ import "./memory-cli-CDMb58Y3.js";
43
+ import "./manager-1ZMunRXe.js";
44
44
  import "./sqlite-EkbWHNXu.js";
45
45
  import "./redact-BICFkpn7.js";
46
46
  import "./session-DmKXXA8P.js";
@@ -53,27 +53,27 @@ import { t as runCommandWithRuntime } from "./cli-utils-C2Dtl4o_.js";
53
53
  import "./progress-gdB4V88Q.js";
54
54
  import "./logging-1vypRz8h.js";
55
55
  import "./auth-store-DWgI4Vj8.js";
56
- import "./control-service-CJ2uXWYM.js";
57
- import "./dispatcher-DnyO_pzZ.js";
56
+ import "./control-service-DptjbgYI.js";
57
+ import "./dispatcher-CiJKNMU3.js";
58
58
  import "./pi-model-discovery-HH8RvApN.js";
59
59
  import "./delivery-queue-CdUtwMZr.js";
60
60
  import "./session-cost-usage-CYdqhmt6.js";
61
61
  import { n as parsePositiveIntOrUndefined } from "./helpers-9N2Q5aZj.js";
62
62
  import "./skills-status-DeW3dXom.js";
63
63
  import "./dangerous-tools-C7Q_csTW.js";
64
- import "./onboard-helpers-DVbPW8Cs.js";
64
+ import "./onboard-helpers-K7wUCSoE.js";
65
65
  import "./prompt-style-CXrnxWQG.js";
66
66
  import "./systemd-IDjybnbO.js";
67
67
  import "./service-H_0E0nOX.js";
68
68
  import "./diagnostics-zpQTQwXE.js";
69
69
  import "./table-BDer4ZEZ.js";
70
- import "./audit-94c4PKy2.js";
71
- import { t as statusCommand } from "./status-BToHtmWf.js";
72
- import { r as healthCommand } from "./health-BLxSP-s_.js";
70
+ import "./audit-B_3ewOwt.js";
71
+ import { t as statusCommand } from "./status-CHuLEuXT.js";
72
+ import { r as healthCommand } from "./health-CH8yZB2L.js";
73
73
  import "./channels-status-issues-BCuAG8zm.js";
74
74
  import "./skill-scanner-BA9Rv4AE.js";
75
75
  import "./node-service-CCMaTNEM.js";
76
- import "./status.update-CJR_Zlvb.js";
76
+ import "./status.update-s92nCoGl.js";
77
77
  import { t as formatHelpExamples } from "./help-format-CaDQjeYI.js";
78
78
 
79
79
  //#region src/commands/sessions.ts