@noxsoft/anima 2.1.0 → 3.0.1

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 (265) hide show
  1. package/CHANGELOG.md +36 -1
  2. package/dist/{accounts-CGzuQdAx.js → accounts-ZMhj636e.js} +38 -38
  3. package/dist/{acp-cli-B91vBbbX.js → acp-cli-CcOE2A2i.js} +4 -4
  4. package/dist/{acp-cli-C2nYnQx-.js → acp-cli-PhWp41mc.js} +5 -5
  5. package/dist/{agent-Bd6Zpqnq.js → agent-CT2PCft4.js} +9 -9
  6. package/dist/{agent-CoxwYg20.js → agent-DvWSUuKy.js} +8 -8
  7. package/dist/{agent-events-BVc91Gjk.js → agent-events-iR_gRjZA.js} +2 -2
  8. package/dist/{agent-scope-BoQtElEh.js → agent-scope-DWKQJUUZ.js} +3 -3
  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-DAg3VWr9.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-Cm50mcVm.js} +7 -7
  16. package/dist/{auth-choice-RnqXSEZo.js → auth-choice-CPDNhDPT.js} +145 -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-DxPI9Swi.js → auth-profiles-BqrAPweI.js} +9 -9
  20. package/dist/{auth-profiles-CzyebTC0.js → auth-profiles-DZS4PC_i.js} +1 -1
  21. package/dist/{auth-store-vxi4ZPnZ.js → auth-store-eNVxoq_h.js} +13 -13
  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 +22 -22
  27. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  28. package/dist/bundled/command-logger/handler.js +1 -1
  29. package/dist/bundled/session-memory/handler.js +6 -6
  30. package/dist/{call-CItRp_pr.js → call-C0Yk2qNb.js} +2 -2
  31. package/dist/{call-DxImJH07.js → call-LugHQWOF.js} +1 -1
  32. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  33. package/dist/{channel-web-DbqT9emt.js → channel-web-Co4IvTdB.js} +10 -10
  34. package/dist/{chrome-CVfcErE4.js → chrome-_87P03u5.js} +7 -7
  35. package/dist/{chrome-C1KpzLwu.js → chrome-s7nTgmbn.js} +12 -12
  36. package/dist/{chunk-B7HJmFUg.js → chunk-lDG_8LI5.js} +2 -2
  37. package/dist/{clack-prompter-DzyUpdYc.js → clack-prompter-1d_RjjVW.js} +1 -1
  38. package/dist/{clack-prompter-DGILBk0Q.js → clack-prompter-DXovYg0Q.js} +1 -1
  39. package/dist/cli/daemon-cli.js +1 -1
  40. package/dist/{cli-CIqM2CiL.js → cli-4D3JIGFt.js} +21 -21
  41. package/dist/{cli-D3fgTPqQ.js → cli-BkI8EYn3.js} +22 -22
  42. package/dist/{cli-session-C5q6Uryq.js → cli-session-CIhvoVRb.js} +55 -7
  43. package/dist/{cli-session-DQ9kepDS.js → cli-session-CJ4_a3AU.js} +56 -8
  44. package/dist/{client-oEG5cM5Q.js → client-BM5PkIwQ.js} +3 -3
  45. package/dist/{command-registry-S2ZqFzVe.js → command-registry-Cl3Z-qsS.js} +10 -10
  46. package/dist/{commands-C8xFlkZx.js → commands-BsZdF-6N.js} +1 -1
  47. package/dist/{commands-Cd2w9dmK.js → commands-quS1zRPr.js} +1 -1
  48. package/dist/{common-DgcMt-pi.js → common-DbouukNi.js} +2 -2
  49. package/dist/{completion-cli-BHlamZC3.js → completion-cli-BB3_g8w5.js} +1 -1
  50. package/dist/{completion-cli-CC0KmaZL.js → completion-cli-DcTEhrAe.js} +2 -2
  51. package/dist/{config-CaE6v09P.js → config-6zE4ZkSF.js} +2 -2
  52. package/dist/{config-Bda-8Rdh.js → config-9JRRXykP.js} +2 -2
  53. package/dist/{config-BEiShGVB.js → config-H_VHtPeY.js} +27 -27
  54. package/dist/{config-cli-DtJe8KPs.js → config-cli-DCNRWoyW.js} +4 -4
  55. package/dist/{config-cli-CEU2oLOH.js → config-cli-VB37XAkf.js} +4 -4
  56. package/dist/{config-guard-CQWaFJGt.js → config-guard-BUrJR68X.js} +2 -2
  57. package/dist/{config-guard-a6BWW0DS.js → config-guard-DJ_IK05w.js} +6 -6
  58. package/dist/{config-sync-DtK8vF0a.js → config-sync-B6XNCiWO.js} +4 -2
  59. package/dist/{config-sync-DHZT44We.js → config-sync-CVNJhO-W.js} +4 -2
  60. package/dist/{configure-BwR-MQg6.js → configure-CkmVabju.js} +9 -9
  61. package/dist/{configure-BiIaL4NZ.js → configure-Du07BFtQ.js} +10 -10
  62. package/dist/{context-Nk3BLa3u.js → context-CsnIPzGP.js} +1 -1
  63. package/dist/{control-service-CJ2uXWYM.js → control-service-BpEnt1xS.js} +4 -4
  64. package/dist/{control-service-9uTsix_O.js → control-service-dAtxFV2S.js} +2 -2
  65. package/dist/control-ui/assets/index-CEuStzNh.js +18 -0
  66. package/dist/control-ui/assets/index-CEuStzNh.js.map +1 -0
  67. package/dist/control-ui/assets/index-CbNrH7Wu.css +1 -0
  68. package/dist/control-ui/index.html +20 -0
  69. package/dist/{cron-cli-Diyg0pr6.js → cron-cli-BT0i4_jA.js} +6 -6
  70. package/dist/{cron-cli-BoB3GX76.js → cron-cli-DUVPrjk1.js} +5 -5
  71. package/dist/{daemon-cli-CR7yHMws.js → daemon-cli-DlHFi5Gm.js} +5 -5
  72. package/dist/{daemon-cli-CXnpU1lw.js → daemon-cli-tZXFDpZX.js} +5 -5
  73. package/dist/{daemon-runtime-C-xevhQ5.js → daemon-runtime-Cbi2Ox6g.js} +1 -1
  74. package/dist/{daemon-runtime-DP9zI3um.js → daemon-runtime-DOk9qM0y.js} +1 -1
  75. package/dist/{deliver-ZUV32EzH.js → deliver-CkrMkcOx.js} +1 -1
  76. package/dist/{deliver-BJ1xFt2X.js → deliver-DyQtnfXd.js} +14 -14
  77. package/dist/{deliver-TokuvSTy.js → deliver-tQREYhAr.js} +1 -1
  78. package/dist/{deps-CV9EwaiA.js → deps-DoPMG4GI.js} +1 -1
  79. package/dist/{dispatcher-DT5y2bRx.js → dispatcher-BhzRMibw.js} +1 -1
  80. package/dist/{dispatcher-DnyO_pzZ.js → dispatcher-wmQlHNsm.js} +1 -1
  81. package/dist/{dns-cli-Cw0G6u5i.js → dns-cli-B6bcA4-G.js} +3 -3
  82. package/dist/{dns-cli-CTpT3A5j.js → dns-cli-BvKJGCxL.js} +3 -3
  83. package/dist/{doctor-BRbtvinF.js → doctor-BxzkshQH.js} +20 -20
  84. package/dist/{doctor-a5nLQGbD.js → doctor-C3foAiuj.js} +19 -19
  85. package/dist/{doctor-completion-DpxcKMA5.js → doctor-completion-CZgNNZVd.js} +1 -1
  86. package/dist/{doctor-completion-Dnj6NNct.js → doctor-completion-VtjYTwcS.js} +1 -1
  87. package/dist/{doctor-config-flow-D80QIcc-.js → doctor-config-flow-BAntaUow.js} +4 -4
  88. package/dist/{doctor-config-flow-BZOFJuDW.js → doctor-config-flow-d6ocIX0r.js} +4 -4
  89. package/dist/{engine-Df9mQ7es.js → engine-C6iz-qEe.js} +5 -3
  90. package/dist/{engine-BqAGzYXO.js → engine-CIid6j5k.js} +5 -3
  91. package/dist/entry.js +1 -1
  92. package/dist/{exec-DJTRaYS6.js → exec-CK8CHr7j.js} +7 -7
  93. package/dist/{exec-approvals-cli-C5OuptCV.js → exec-approvals-cli-CAwe3fFV.js} +6 -6
  94. package/dist/{exec-approvals-cli-BWeKuHMf.js → exec-approvals-cli-COqsRheN.js} +5 -5
  95. package/dist/extensionAPI.js +3 -1
  96. package/dist/{frontmatter-DDYuWuK5.js → frontmatter-BBFYH_d2.js} +2 -2
  97. package/dist/{gateway-cli-DpikYazv.js → gateway-cli-BKmCrkp2.js} +47 -47
  98. package/dist/{gateway-cli-CLhlz_uA.js → gateway-cli-D0mD_UV8.js} +48 -48
  99. package/dist/{gateway-rpc-B30vCjdB.js → gateway-rpc-2MG1-jz-.js} +1 -1
  100. package/dist/{gateway-rpc-CeSf5jMa.js → gateway-rpc-elmeRwyu.js} +1 -1
  101. package/dist/{health-1JahEOfG.js → health-27WiwNrh.js} +9 -9
  102. package/dist/{health-BLxSP-s_.js → health-Cb_2WS_Z.js} +9 -9
  103. package/dist/{heartbeat-visibility-CS0wp8uu.js → heartbeat-visibility-Blrqxom1.js} +1 -1
  104. package/dist/{heartbeat-visibility-DgxM3da_.js → heartbeat-visibility-CDRbkOeP.js} +1 -1
  105. package/dist/{hooks-cli-Bb1UXfXv.js → hooks-cli-BkaD_Vnq.js} +23 -23
  106. package/dist/{hooks-cli-B-PZNrq5.js → hooks-cli-C7hx3yOv.js} +22 -22
  107. package/dist/{image-ops-ZMEg1-kE.js → image-ops-DJjERl7d.js} +2 -2
  108. package/dist/index.js +32 -32
  109. package/dist/{ipv4-BXko1df7.js → ipv4-sll41DXC.js} +4 -4
  110. package/dist/{ipv4-BmsAjDnB.js → ipv4-yUiIU5CD.js} +5 -5
  111. package/dist/json-file-Dvrir7_o.js +25 -0
  112. package/dist/llm-slug-generator.js +5 -5
  113. package/dist/{login-DIm-BAka.js → login-CBsXoiD_.js} +2 -2
  114. package/dist/{login-jV3UWUGr.js → login-CdRss5_H.js} +5 -5
  115. package/dist/{login-DQALESNM.js → login-DcBFdgol.js} +2 -2
  116. package/dist/{login-qr-BMMUazkr.js → login-qr-CEarfn5e.js} +4 -4
  117. package/dist/{login-qr-CJXqxq1y.js → login-qr-DoNanonP.js} +10 -10
  118. package/dist/{login-qr-BzS8xa3D.js → login-qr-aHN20jEV.js} +4 -4
  119. package/dist/{logs-cli-yKcOyM8n.js → logs-cli-DbdMIph-.js} +6 -6
  120. package/dist/{logs-cli-DHjyZjyi.js → logs-cli-O9Vm67Ps.js} +5 -5
  121. package/dist/{manager-eyHWQVGS.js → manager-1ZMunRXe.js} +2 -2
  122. package/dist/{manager-I5MlcYXv.js → manager-BVhxScwx.js} +2 -2
  123. package/dist/{manager-BssWfixS.js → manager-BlXVqzLP.js} +14 -14
  124. package/dist/{memory-cli-hyoQVF7L.js → memory-cli-CDMb58Y3.js} +5 -5
  125. package/dist/{memory-cli-DQm_Q8ks.js → memory-cli-DEnGCMk0.js} +5 -5
  126. package/dist/{model-auth-CQNrcIIT.js → model-auth-B3BPcnwt.js} +2 -2
  127. package/dist/{model-auth-BbZzb3IY.js → model-auth-ChSwMwh7.js} +3 -3
  128. package/dist/{model-auth-Cyx2Xoz0.js → model-auth-DUHamQTz.js} +2 -2
  129. package/dist/{model-selection-MwLHFnAb.js → model-selection-C2dz3AhV.js} +1 -1
  130. package/dist/{model-selection-BjcyTJyU.js → model-selection-DJcZ82uR.js} +1 -1
  131. package/dist/{model-selection-CtPzqKKJ.js → model-selection-DPoLkg_t.js} +1 -1
  132. package/dist/{models-Ca4_dCTC.js → models-B8eCDKpA.js} +26 -26
  133. package/dist/{node-cli-gop9c9Qq.js → node-cli-Bcrlhaq3.js} +10 -10
  134. package/dist/{node-cli-CJ-oQ5U6.js → node-cli-CXUIMB7W.js} +8 -8
  135. package/dist/{onboard-Dyr-G4cr.js → onboard-5GREpC8E.js} +48 -13
  136. package/dist/{onboard-DbCuaHlU.js → onboard-D8Khq7CJ.js} +49 -13
  137. package/dist/{onboard-channels-h35eneL1.js → onboard-channels-CuDv5j-L.js} +3 -3
  138. package/dist/{onboard-channels-D_jRjSPh.js → onboard-channels-DUklZSXY.js} +3 -3
  139. package/dist/{onboard-helpers-DVbPW8Cs.js → onboard-helpers-CMW6MSXA.js} +5 -4
  140. package/dist/{onboard-helpers-CAxb1eBy.js → onboard-helpers-DKu_2enh.js} +5 -4
  141. package/dist/{onboarding-ifLjX4Oc.js → onboarding-B_Gs5W53.js} +34 -15
  142. package/dist/{onboarding-Djv0NsZi.js → onboarding-CGG6jZ0y.js} +35 -16
  143. package/dist/{orchestrator-DeKyZfHL.js → orchestrator-CZ5SiD5l.js} +4 -2
  144. package/dist/{orchestrator-DAY2aHzl.js → orchestrator-KqoQDkvl.js} +4 -2
  145. package/dist/{outbound-_KURrkN3.js → outbound-Cf_1Utlz.js} +1 -1
  146. package/dist/{outbound-DptF-A0k.js → outbound-CwCRq4Cg.js} +1 -1
  147. package/dist/{outbound-ChmdbJju.js → outbound-DK71dddk.js} +6 -6
  148. package/dist/{parse-timeout-ByYuFf-D.js → parse-timeout-DhqvtdXz.js} +1 -1
  149. package/dist/{parse-timeout-PImvLfCF.js → parse-timeout-qnHqZvCW.js} +1 -1
  150. package/dist/{paths-BzTTzuSa.js → paths-CmZenvlb.js} +2 -2
  151. package/dist/{paths-B-AkG5FD.js → paths-D2eokayo.js} +3 -3
  152. package/dist/{pi-auth-json-Ct4FUjxN.js → pi-auth-json-BYN-DI5a.js} +7 -7
  153. package/dist/{pi-auth-json-QVWbBbGs.js → pi-auth-json-Crkmg439.js} +3 -3
  154. package/dist/{pi-auth-json-BvGZollA.js → pi-auth-json-PEKcHBMl.js} +3 -3
  155. package/dist/{pi-embedded-helpers-BS_VM3j4.js → pi-embedded-helpers-CvYnWzAn.js} +44 -44
  156. package/dist/{pi-tools.policy-BntNhXqZ.js → pi-tools.policy-BoWzLBtH.js} +3 -3
  157. package/dist/{pi-tools.policy-pvzE9Rfa.js → pi-tools.policy-ClzqRWic.js} +3 -3
  158. package/dist/{plugin-auto-enable-j_zHeVf1.js → plugin-auto-enable-BlyqT33k.js} +1 -1
  159. package/dist/{plugin-auto-enable-BvCuJgmb.js → plugin-auto-enable-Df0BKZyz.js} +1 -1
  160. package/dist/{plugin-registry-BgzrHeH3.js → plugin-registry-CIluPn2C.js} +3 -3
  161. package/dist/{plugin-registry-DurMOI5P.js → plugin-registry-k-cSnXEV.js} +3 -3
  162. package/dist/plugin-sdk/agents/workspace.d.ts +1 -0
  163. package/dist/plugin-sdk/index.js +6 -6
  164. package/dist/{plugins-cli-DJKbvRtd.js → plugins-cli-CXap4R64.js} +22 -22
  165. package/dist/{plugins-cli-BFJqs061.js → plugins-cli-CgSDRx-C.js} +23 -23
  166. package/dist/{program-8-GzSO81.js → program-Dk1iylK1.js} +27 -27
  167. package/dist/{program-context-CC-g5UxM.js → program-context-r2WimvLs.js} +29 -29
  168. package/dist/{prompts-BWkFLWEk.js → prompts-BT5ztuUd.js} +144 -6
  169. package/dist/{prompts-CAgrJeru.js → prompts-vr_Njtil.js} +1 -1
  170. package/dist/{pw-ai-DVQKx_ca.js → pw-ai-q5Enhcu7.js} +4 -4
  171. package/dist/{pw-ai-Rz1I4vvf.js → pw-ai-ycVS073z.js} +1 -1
  172. package/dist/{qmd-manager-TUpRgiFa.js → qmd-manager-BD0uCIzM.js} +1 -1
  173. package/dist/{qmd-manager-NwDwG7DY.js → qmd-manager-CaNCfJK6.js} +1 -1
  174. package/dist/{qmd-manager-B5wbKcWC.js → qmd-manager-D_lZFetA.js} +7 -7
  175. package/dist/{queue-9vTUxVNg.js → queue-CRtO6LOL.js} +3 -1
  176. package/dist/{queue-R94Bcxk5.js → queue-DMVbLSSW.js} +3 -1
  177. package/dist/{register.agent-BcxdwhFz.js → register.agent-BCbrZgZT.js} +30 -30
  178. package/dist/{register.agent-BWl6JYHL.js → register.agent-sq78vQTz.js} +30 -30
  179. package/dist/{register.anima-D9CE9aVh.js → register.anima-B0tWw_hC.js} +13 -13
  180. package/dist/{register.anima-D8cnU8Zq.js → register.anima-CObVi7FQ.js} +13 -13
  181. package/dist/{register.configure-BQ7viIFW.js → register.configure-CM8ScF9N.js} +31 -31
  182. package/dist/{register.configure-CWWSJ12h.js → register.configure-w6Ptx3C9.js} +32 -32
  183. package/dist/{register.maintenance-BUkkCBQa.js → register.maintenance-B15nWIhc.js} +33 -33
  184. package/dist/{register.maintenance-BS36METc.js → register.maintenance-Chm2rk_s.js} +34 -34
  185. package/dist/{register.onboard-CxktbTOi.js → register.onboard-B7Ozkx53.js} +41 -37
  186. package/dist/{register.onboard-ks3BprXH.js → register.onboard-k9Rd9qzS.js} +39 -35
  187. package/dist/register.setup-BId1QGzk.js +270 -0
  188. package/dist/register.setup-CN1yxMOl.js +267 -0
  189. package/dist/{register.status-health-sessions-Bmgu0PWs.js → register.status-health-sessions-CNUs9w8v.js} +27 -27
  190. package/dist/{register.status-health-sessions-Cfhab3ds.js → register.status-health-sessions-CP9VvjA9.js} +27 -27
  191. package/dist/{register.subclis-Cp2R1dTl.js → register.subclis-N7uAMRX_.js} +20 -20
  192. package/dist/{reply-F1NR0Mmi.js → reply-BJ3jrefM.js} +29 -29
  193. package/dist/{reply-BWWaNSoB.js → reply-LaOwllAB.js} +28 -28
  194. package/dist/{reply-prefix-Cd1ryhL4.js → reply-prefix-DBJU0o4f.js} +2 -2
  195. package/dist/{reply-prefix-ByFTwsu6.js → reply-prefix-Dl_Gro6x.js} +2 -2
  196. package/dist/{routes-DdssPiMt.js → routes-Bifu4ATk.js} +2 -2
  197. package/dist/{routes-TJ5bwx27.js → routes-CNqS9gOj.js} +3 -3
  198. package/dist/{run-main-Br6uQWzH.js → run-main-DA4rt9qc.js} +40 -40
  199. package/dist/{sandbox-BIZzFPco.js → sandbox-CR2AIW2N.js} +3 -3
  200. package/dist/{sandbox-cli-DjALBAAV.js → sandbox-cli-BsMjNBFN.js} +8 -8
  201. package/dist/{sandbox-cli-DMBBlMK-.js → sandbox-cli-c_HPZNmf.js} +7 -7
  202. package/dist/{sandbox-hOY3muxh.js → sandbox-wL61f1WP.js} +3 -3
  203. package/dist/{security-cli-CsDWYPNG.js → security-cli-DTAzTIiZ.js} +10 -10
  204. package/dist/{security-cli-GXZAU0Ax.js → security-cli-pupt3tx1.js} +12 -12
  205. package/dist/{semantic-BTp-RtM8.js → semantic-BcioSN1d.js} +1 -1
  206. package/dist/{server-context-BW5BY88Y.js → server-context-C2TNamEJ.js} +1 -1
  207. package/dist/{server-context-C0YSbjOv.js → server-context-CcPmRFx_.js} +5 -5
  208. package/dist/{server-node-events-DM3CCYrf.js → server-node-events-DNDwVJH_.js} +14 -14
  209. package/dist/{server-node-events-Byy-Is6v.js → server-node-events-DsfvuRBK.js} +13 -13
  210. package/dist/{service-audit-u3qzhhqv.js → service-audit-BG0tcSCo.js} +1 -1
  211. package/dist/{service-audit-CGmQWccK.js → service-audit-DLV93I95.js} +1 -1
  212. package/dist/{session-BQzzYRDO.js → session-D53RZP3i.js} +7 -7
  213. package/dist/{session-CzBccNiw.js → session-DTRcP2Sj.js} +1 -1
  214. package/dist/{session-ititeJ0j.js → session-ygzMc3r1.js} +4 -4
  215. package/dist/{sessions-DiW7DuJO.js → sessions-0J_pFd44.js} +1 -1
  216. package/dist/{sessions-wzfE85C2.js → sessions-C7jYs5Sc.js} +1 -1
  217. package/dist/{sessions-Bxpm8P5t.js → sessions-CbUTEpMF.js} +4 -4
  218. package/dist/{shared-DynkOTFs.js → shared-B9kttsme.js} +1 -1
  219. package/dist/{shell-env-5vFwNQcz.js → shell-env-BBHdjHEl.js} +1 -1
  220. package/dist/{skills-cli-Dttyzhqz.js → skills-cli-CrB84lEO.js} +3 -3
  221. package/dist/{skills-cli-DA18YLo4.js → skills-cli-DC6nGiOg.js} +3 -3
  222. package/dist/{soul-D4rF0iXu.js → soul-CXGTzaKZ.js} +1 -1
  223. package/dist/{sqlite-Dx5ydniE.js → sqlite-B-dYyac7.js} +4 -4
  224. package/dist/{start-BNGlbbt9.js → start-BLi_X68Y.js} +36 -13
  225. package/dist/{start-DSZJq_zz.js → start-BQfR8aBZ.js} +36 -13
  226. package/dist/{status-DVYPFs7b.js → status-CzCmUbgr.js} +13 -13
  227. package/dist/{status-BCbWWHdA.js → status-D5zPydam.js} +3 -3
  228. package/dist/{status-BToHtmWf.js → status-DNUP2mgR.js} +12 -12
  229. package/dist/{status-QWb0sx59.js → status-DYGeQK4c.js} +3 -3
  230. package/dist/{status.update-CwIUq3Bq.js → status.update-_DOVm6Tr.js} +1 -1
  231. package/dist/{status.update-CJR_Zlvb.js → status.update-s92nCoGl.js} +1 -1
  232. package/dist/{subagent-registry-BOsyxABV.js → subagent-registry-D4idxv3D.js} +5 -5
  233. package/dist/{subagent-registry-DEjp4eYh.js → subagent-registry-DQzBrh1E.js} +5 -5
  234. package/dist/{subagent-registry-DXy6WsnY.js → subagent-registry-DjB3VS5s.js} +27 -27
  235. package/dist/{subsystem-BlEuMJjX.js → subsystem-CJTCKTwb.js} +13 -13
  236. package/dist/{system-cli-CtYpaf1K.js → system-cli-BNhplLHn.js} +6 -6
  237. package/dist/{system-cli-BYJicBL3.js → system-cli-CTN9NSfv.js} +5 -5
  238. package/dist/{tool-images-2qKyjXUj.js → tool-images-DBOSl4NL.js} +2 -2
  239. package/dist/{tui-Bx6Ty5e9.js → tui--uEeSnES.js} +4 -4
  240. package/dist/{tui-cli-BcqM-1Iu.js → tui-cli-ByERfWnP.js} +12 -12
  241. package/dist/{tui-cli-DM2-e45Y.js → tui-cli-De0zVM4-.js} +10 -10
  242. package/dist/{tui-BbS56NwI.js → tui-dHcni7fC.js} +5 -5
  243. package/dist/{update-cli-CzrELkox.js → update-cli-CGVsahIi.js} +41 -41
  244. package/dist/{update-cli-DHCu3Tw_.js → update-cli-D7SyNIoQ.js} +40 -40
  245. package/dist/{update-runner-CBoHuDWR.js → update-runner-DeNUEGyr.js} +1 -1
  246. package/dist/{update-runner-OvETClW6.js → update-runner-O0kK_BAP.js} +1 -1
  247. package/dist/{usage-ClLnsNuk.js → usage-DSZ_juox.js} +68 -20
  248. package/dist/{web-B-hsbig8.js → web-DNoikQbD.js} +25 -25
  249. package/dist/{web-DNwUI_-o.js → web-DY2TrPoD.js} +86 -86
  250. package/dist/{web-Ci2DZCF7.js → web-DyUoZrMO.js} +27 -27
  251. package/dist/{webhooks-cli-CK3Ooqxg.js → webhooks-cli-BqeMvo07.js} +3 -3
  252. package/dist/{webhooks-cli-BGo97Z-y.js → webhooks-cli-Cq3eb3vw.js} +3 -3
  253. package/dist/{whatsapp-actions-DBSx3VSP.js → whatsapp-actions-B_fglZZt.js} +13 -13
  254. package/dist/{whatsapp-actions-C-cAzSXs.js → whatsapp-actions-BkSSHLwM.js} +4 -4
  255. package/dist/{whatsapp-actions-CFQjbIXn.js → whatsapp-actions-j-5lmC5M.js} +4 -4
  256. package/dist/{workspace-BSBhp-B5.js → workspace-xzxJwPTB.js} +8 -6
  257. package/package.json +2 -1
  258. package/templates/SOUL.md +16 -0
  259. package/dist/json-file-CZ3ssFR9.js +0 -25
  260. package/dist/register.setup-CP--HKWT.js +0 -180
  261. package/dist/register.setup-TUHZSkwM.js +0 -177
  262. /package/dist/{budget-1SoJncof.js → budget-OJQ-m-_V.js} +0 -0
  263. /package/dist/{budget-DYeweLNW.js → budget-XH9_9WRg.js} +0 -0
  264. /package/dist/{registry-Dw31-Q3z.js → registry-6ARhh9Nh.js} +0 -0
  265. /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-N7uAMRX_.js";
60
+ import "./command-registry-Cl3Z-qsS.js";
61
+ import "./program-context-DItEQSzX.js";
62
+ import "./completion-cli-DcTEhrAe.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-CPDNhDPT.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-CGG6jZ0y.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-CZgNNZVd.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-D8Khq7CJ.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-D4idxv3D.js";
6
+ import "./reply-BJ3jrefM.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-_87P03u5.js";
26
+ import "./auth-B8ry4GB_.js";
27
+ import "./server-context-CcPmRFx_.js";
28
+ import "./skills-DsdcfeyV.js";
29
+ import "./routes-CNqS9gOj.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-BM5PkIwQ.js";
40
+ import "./call-C0Yk2qNb.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-BpEnt1xS.js";
56
+ import "./dispatcher-wmQlHNsm.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-r2WimvLs.js";
61
+ import "./completion-cli-BB3_g8w5.js";
62
+ import "./daemon-runtime-DOk9qM0y.js";
63
+ import "./onboard-helpers-CMW6MSXA.js";
64
+ import "./prompt-style-CXrnxWQG.js";
65
+ import "./systemd-IDjybnbO.js";
66
+ import "./service-H_0E0nOX.js";
67
+ import "./health-Cb_2WS_Z.js";
68
+ import "./health-format-BMwPAU53.js";
69
+ import { c as ensureAuthenticated } from "./prompts-BT5ztuUd.js";
70
+ import "./ipv4-sll41DXC.js";
71
+ import "./hooks-status-BTVvcXJx.js";
72
+ import "./onboarding-B_Gs5W53.js";
73
+ import { n as logConfigUpdated, t as formatConfigPath } from "./logging-ClHj0gnP.js";
74
+ import "./tui-dHcni7fC.js";
75
+ import "./note-CLRVmCnr.js";
76
+ import "./doctor-completion-VtjYTwcS.js";
77
+ import "./clack-prompter-DXovYg0Q.js";
78
+ import { t as hasExplicitOptions } from "./command-options-HR4rJB0D.js";
79
+ import "./systemd-linger-q1hyIpoI.js";
80
+ import { t as onboardCommand } from "./onboard-5GREpC8E.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-D4idxv3D.js";
6
+ import "./reply-BJ3jrefM.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";
25
- import "./chrome-CVfcErE4.js";
24
+ import "./sandbox-wL61f1WP.js";
25
+ import "./chrome-_87P03u5.js";
26
26
  import "./auth-B8ry4GB_.js";
27
- import "./server-context-C0YSbjOv.js";
27
+ import "./server-context-CcPmRFx_.js";
28
28
  import "./skills-DsdcfeyV.js";
29
- import "./routes-TJ5bwx27.js";
29
+ import "./routes-CNqS9gOj.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";
39
- import "./client-oEG5cM5Q.js";
40
- import "./call-CItRp_pr.js";
37
+ import "./deliver-tQREYhAr.js";
38
+ import "./pi-tools.policy-BoWzLBtH.js";
39
+ import "./client-BM5PkIwQ.js";
40
+ import "./call-C0Yk2qNb.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-BpEnt1xS.js";
57
+ import "./dispatcher-wmQlHNsm.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-CMW6MSXA.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-Cm50mcVm.js";
71
+ import { t as statusCommand } from "./status-DNUP2mgR.js";
72
+ import { r as healthCommand } from "./health-Cb_2WS_Z.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