@noxsoft/anima 7.0.0 → 7.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 (120) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/dist/{agent-BoAAHGEA.js → agent-BjD_hkGZ.js} +3 -3
  3. package/dist/{agent-DuW0onwk.js → agent-PoYM2xa7.js} +3 -3
  4. package/dist/{agents-BUXkSDns.js → agents-y3HCk1ks.js} +4 -4
  5. package/dist/{anthropic-direct-runner-DizCei79.js → anthropic-direct-runner-Bu8w-wlJ.js} +246 -10
  6. package/dist/{anthropic-direct-runner-OjcTAH6g.js → anthropic-direct-runner-C5pnwYzT.js} +246 -10
  7. package/dist/{auth-choice-B1iGnjuE.js → auth-choice-BYOaX-W4.js} +1 -1
  8. package/dist/{auth-choice-HF9x6xk2.js → auth-choice-CRP6z43z.js} +1 -1
  9. package/dist/{banner-Dpa5d1If.js → banner-XT5N0ZF4.js} +1 -1
  10. package/dist/build-info.json +3 -3
  11. package/dist/bundled/boot-md/handler.js +2 -2
  12. package/dist/bundled/session-memory/handler.js +1 -1
  13. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  14. package/dist/{channel-web-C5mzsaa3.js → channel-web-yWytZHhN.js} +2 -2
  15. package/dist/{cli-Cuq4bIg4.js → cli-C7mOU26p.js} +2 -2
  16. package/dist/{cli-X9ikywQ3.js → cli-DfcdnRcl.js} +2 -2
  17. package/dist/{command-registry-9V4uqrBV.js → command-registry-DUTqrmna.js} +12 -12
  18. package/dist/{completion-cli-DNWDwhab.js → completion-cli-BBm9JIHZ.js} +2 -2
  19. package/dist/{completion-cli-BtvcR-U5.js → completion-cli-Cpj91U30.js} +1 -1
  20. package/dist/{config-cli-fleq7-gq.js → config-cli-CF2ERR8G.js} +1 -1
  21. package/dist/{config-cli-DfHE3KG-.js → config-cli-Dmd4Oyjp.js} +1 -1
  22. package/dist/{configure-lkozxQed.js → configure-4jIAlOdj.js} +7 -7
  23. package/dist/{configure-B2Mfnwy_.js → configure-BE8TA8Yt.js} +3 -3
  24. package/dist/{configure-ZWxixuRA.js → configure-BfWsTKMF.js} +3 -3
  25. package/dist/{configure-SnvMHZPD.js → configure-CU3kulTq.js} +7 -7
  26. package/dist/{deps-BKLIBKjK.js → deps-DKPoFoa8.js} +1 -1
  27. package/dist/{doctor-D7kKyUVk.js → doctor-CFpVHDFT.js} +4 -4
  28. package/dist/{doctor-DmCnZ-jF.js → doctor-DOudOs1k.js} +4 -4
  29. package/dist/{doctor-completion-B9SBdMoR.js → doctor-completion-DfNyJGIj.js} +1 -1
  30. package/dist/{doctor-completion-BBvW4_J9.js → doctor-completion-R0UlpjIj.js} +1 -1
  31. package/dist/{engine-DpbYPop7.js → engine-BDDM-iAi.js} +1 -1
  32. package/dist/{engine-zmn3SOYa.js → engine-BDwYEVKi.js} +1 -1
  33. package/dist/entry.js +1 -1
  34. package/dist/extensionAPI.js +1 -1
  35. package/dist/{gateway-cli-CEM1vBuk.js → gateway-cli-CFlPUx9N.js} +15 -15
  36. package/dist/{gateway-cli-iumkTohn.js → gateway-cli-DtIum1te.js} +16 -16
  37. package/dist/{health-Cndq9b7A.js → health-ngQNjXh4.js} +3 -3
  38. package/dist/{health-B5N6_UOf.js → health-yw_uaucz.js} +3 -3
  39. package/dist/{heartbeat-visibility-BQL13ZBH.js → heartbeat-visibility-BaL8JzkS.js} +1 -1
  40. package/dist/{heartbeat-visibility-CwcYugaR.js → heartbeat-visibility-mAzdNSiS.js} +1 -1
  41. package/dist/{hooks-cli-BZcvdIwE.js → hooks-cli-CPgLAn7a.js} +3 -3
  42. package/dist/{hooks-cli-DSlPBQSY.js → hooks-cli-D6YfDiUI.js} +3 -3
  43. package/dist/index.js +8 -8
  44. package/dist/llm-slug-generator.js +1 -1
  45. package/dist/{models-CdNeYfSp.js → models-BXdBXPMB.js} +3 -3
  46. package/dist/{models-cli-D7eSsPuk.js → models-cli-1Kj8gkGy.js} +3 -3
  47. package/dist/{models-cli-fTZXo1zx.js → models-cli-DdJcmOGI.js} +4 -4
  48. package/dist/{onboard-D-6QCnTi.js → onboard-BzScK9k6.js} +3 -3
  49. package/dist/{onboard-C5K37NvY.js → onboard-CHX1Jdt_.js} +3 -3
  50. package/dist/{onboard-channels-BsCq32Hn.js → onboard-channels-DfXxMbYu.js} +1 -1
  51. package/dist/{onboard-channels-bx6oelzj.js → onboard-channels-wUF4oRB-.js} +1 -1
  52. package/dist/{onboarding-CX1vIkcB.js → onboarding-6jxAKxhe.js} +4 -4
  53. package/dist/{onboarding-BeuMAyic.js → onboarding-fnZOw6Wv.js} +4 -4
  54. package/dist/{orchestrator-C1nWKIJS.js → orchestrator-B2rNfH4K.js} +5 -4
  55. package/dist/{orchestrator-C2ypFiPL.js → orchestrator-CrFD887e.js} +5 -4
  56. package/dist/{outbound-send-deps-Y9AxHeLG.js → outbound-send-deps-DMsqr5fd.js} +1 -1
  57. package/dist/{pi-embedded-D15iww51.js → pi-embedded-B1eVXOsQ.js} +245 -9
  58. package/dist/{pi-embedded-DR8Pfd05.js → pi-embedded-DbvG9mmD.js} +245 -9
  59. package/dist/{plugin-registry-ME2FQAi-.js → plugin-registry-CtkU96jV.js} +1 -1
  60. package/dist/{plugin-registry-Do2D1nDk.js → plugin-registry-DKexyPAq.js} +1 -1
  61. package/dist/plugin-sdk/index.js +6 -6
  62. package/dist/plugin-sdk/infra/architecture-awareness.d.ts +47 -0
  63. package/dist/{plugins-cli-CVFzwdmI.js → plugins-cli-B3l7kalt.js} +3 -3
  64. package/dist/{plugins-cli-CoVt2ewg.js → plugins-cli-BQmysVFP.js} +3 -3
  65. package/dist/{program-context-DP3qjW7A.js → program-context-C4x0zjOR.js} +18 -18
  66. package/dist/{program-8rF4C_wd.js → program-mSyCYzsQ.js} +7 -7
  67. package/dist/{register.agent-DnkOx0U8.js → register.agent-CzEM3bkp.js} +7 -7
  68. package/dist/{register.agent-BIrXCVtQ.js → register.agent-DBxUWr1K.js} +8 -8
  69. package/dist/{register.anima-DXT9bM9A.js → register.anima--gufBuS-.js} +4 -4
  70. package/dist/{register.anima-B36rTHUt.js → register.anima-RI6gewtj.js} +4 -4
  71. package/dist/{register.configure-CuzJxZmk.js → register.configure-Cs3uLUBo.js} +6 -6
  72. package/dist/{register.configure-DCpvHX3m.js → register.configure-Dpe8Qel3.js} +6 -6
  73. package/dist/{register.maintenance-CcxBFfv5.js → register.maintenance-BEYN8SJL.js} +9 -9
  74. package/dist/{register.maintenance-Dla0H12S.js → register.maintenance-DqAdzWBM.js} +8 -8
  75. package/dist/{register.message-Brtushvp.js → register.message-ACbKb7JS.js} +4 -4
  76. package/dist/{register.message-CD7xV-jz.js → register.message-BhGJ_1Iy.js} +4 -4
  77. package/dist/{register.onboard-6CbODzQ6.js → register.onboard-CwkY7CRm.js} +9 -9
  78. package/dist/{register.onboard-23Mra3LN.js → register.onboard-DR_YYtbi.js} +10 -10
  79. package/dist/{register.setup-DlVH7FKe.js → register.setup-BSm6O1ml.js} +9 -9
  80. package/dist/{register.setup-CqQw13Ky.js → register.setup-Cn3e7Std.js} +10 -10
  81. package/dist/{register.status-health-sessions-CxtgPKu9.js → register.status-health-sessions-CpxsZeet.js} +4 -4
  82. package/dist/{register.status-health-sessions-CduFjFDB.js → register.status-health-sessions-DAl9OeGB.js} +4 -4
  83. package/dist/{register.subclis-CtANqD5P.js → register.subclis-DEFeoyPP.js} +7 -7
  84. package/dist/{reply-prefix-B7Fb3fO8.js → reply-prefix-CEnF6TUe.js} +1 -1
  85. package/dist/{reply-prefix-BzdhJDqP.js → reply-prefix-Og65nAYv.js} +1 -1
  86. package/dist/{reply-93fMzde1.js → reply-ylwOKuOF.js} +2 -2
  87. package/dist/{run-Cq_iTGK_.js → run-B6eBjo22.js} +231 -63
  88. package/dist/{run-CF3kHOGH.js → run-D6Ete2Z-.js} +231 -63
  89. package/dist/{run-main-BiIRcc6s.js → run-main-CQHE4XaN.js} +15 -15
  90. package/dist/{server-node-events-DgvKcH5q.js → server-node-events-CV5m_fuq.js} +5 -5
  91. package/dist/{server-node-events-B3Serk9L.js → server-node-events-DIuVwITd.js} +5 -5
  92. package/dist/{session-C_d9uvLf.js → session-BqHD-8a_.js} +1 -1
  93. package/dist/{session-BMDpwIJu.js → session-Jlf3l006.js} +1 -1
  94. package/dist/{settings-cli-DsDqNpW_.js → settings-cli-LWW2xQBQ.js} +7 -7
  95. package/dist/{settings-cli-CZdlEmNi.js → settings-cli-T66kDBNA.js} +7 -7
  96. package/dist/{setup-token-C8Gg1P6T.js → setup-token-0zfSBnMQ.js} +1 -1
  97. package/dist/{setup-token-Lee4gM5w.js → setup-token-6DSKE0Tn.js} +1 -1
  98. package/dist/{start-Cs1aPMq2.js → start-BdcAszpl.js} +15 -15
  99. package/dist/{start-CK6urvnN.js → start-gVOPVCgi.js} +16 -16
  100. package/dist/{status-BO5BIf81.js → status-BhRELdY_.js} +3 -3
  101. package/dist/{status-COc4xMti.js → status-CDcFjNtS.js} +1 -1
  102. package/dist/{status-C_NBOv_V.js → status-CobgQziJ.js} +1 -1
  103. package/dist/{status-uakoP719.js → status-D37aRiV3.js} +3 -3
  104. package/dist/{subagent-registry-fLI7QDKe.js → subagent-registry-CDEUbtey.js} +2 -2
  105. package/dist/{update-cli-D3Ujz_cW.js → update-cli-BjHgpnxD.js} +9 -9
  106. package/dist/{update-cli-DEe62XGU.js → update-cli-QtM0G6CE.js} +8 -8
  107. package/dist/{update-runner-DZfnquWO.js → update-runner-C8SRcVm3.js} +1 -1
  108. package/dist/{update-runner-DUl-g4mB.js → update-runner-Fb3Un6UZ.js} +1 -1
  109. package/dist/{web-Di8j762D.js → web-BDig9tCy.js} +3 -3
  110. package/dist/{web-C-cK9OCd.js → web-C4lrKULd.js} +1 -1
  111. package/dist/{web-DzSlI8A6.js → web-CPPJ5y4c.js} +1 -1
  112. package/dist/{web-Dybw4K7C.js → web-Vx_ENtYI.js} +4 -4
  113. package/package.json +6 -2
  114. package/templates/HEART.md +32 -10
  115. package/templates/SOUL.md +37 -8
  116. package/templates/profiles/architect.profile.json5 +36 -0
  117. package/templates/profiles/builder.profile.json5 +36 -0
  118. package/templates/profiles/coordinator.profile.json5 +36 -0
  119. package/templates/profiles/guardian.profile.json5 +36 -0
  120. package/templates/profiles/researcher.profile.json5 +36 -0
@@ -285,7 +285,7 @@ async function resolveBootstrapContextForRun(params) {
285
285
  * The ego is persistent across sessions. It evolves as the agent
286
286
  * learns, makes mistakes, and receives feedback.
287
287
  */
288
- const log$2 = createSubsystemLogger("ego");
288
+ const log$3 = createSubsystemLogger("ego");
289
289
  function resolveEgoPath() {
290
290
  return path.join(resolveStateDir(), "ego", "self-model.json");
291
291
  }
@@ -378,7 +378,7 @@ var EgoManager = class {
378
378
  }
379
379
  }
380
380
  } catch (err) {
381
- log$2.warn("failed to load ego state, creating default", { error: String(err) });
381
+ log$3.warn("failed to load ego state, creating default", { error: String(err) });
382
382
  }
383
383
  return createDefaultEgo();
384
384
  }
@@ -392,9 +392,9 @@ var EgoManager = class {
392
392
  this.state.updatedAt = Date.now();
393
393
  fs.writeFileSync(this.filePath, `${JSON.stringify(this.state, null, 2)}\n`, { mode: 384 });
394
394
  this.dirty = false;
395
- log$2.info("ego state saved");
395
+ log$3.info("ego state saved");
396
396
  } catch (err) {
397
- log$2.error("failed to save ego state", { error: String(err) });
397
+ log$3.error("failed to save ego state", { error: String(err) });
398
398
  }
399
399
  }
400
400
  /** Save only if there are unsaved changes */
@@ -461,7 +461,7 @@ var EgoManager = class {
461
461
  };
462
462
  this.state.boundaries.push(boundary);
463
463
  this.dirty = true;
464
- log$2.info(`boundary added: ${boundary.description} (${kind})`);
464
+ log$3.info(`boundary added: ${boundary.description} (${kind})`);
465
465
  return { ...boundary };
466
466
  }
467
467
  removeBoundary(description) {
@@ -496,7 +496,7 @@ var EgoManager = class {
496
496
  this.state.growthLog.push(entry);
497
497
  if (this.state.growthLog.length > 200) this.state.growthLog = this.state.growthLog.slice(-200);
498
498
  this.dirty = true;
499
- log$2.info(`growth logged: [${category}] ${description}`);
499
+ log$3.info(`growth logged: [${category}] ${description}`);
500
500
  return { ...entry };
501
501
  }
502
502
  getIntegrityScore() {
@@ -516,7 +516,7 @@ var EgoManager = class {
516
516
  const alignedCount = recent.filter((c) => c.aligned).length;
517
517
  this.state.integrityScore = recent.length > 0 ? alignedCount / recent.length : 1;
518
518
  this.dirty = true;
519
- if (!aligned) log$2.warn(`integrity misalignment: value="${value}" action="${action}"`);
519
+ if (!aligned) log$3.warn(`integrity misalignment: value="${value}" action="${action}"`);
520
520
  return { ...check };
521
521
  }
522
522
  getIntegrityLog(limit = 10) {
@@ -589,7 +589,7 @@ function getEgoManager(filePath) {
589
589
  * anima steer --clear # Clear steer
590
590
  * anima steer --history # Show steer history
591
591
  */
592
- const log$1 = createSubsystemLogger("steer");
592
+ const log$2 = createSubsystemLogger("steer");
593
593
  function resolveSteerFile() {
594
594
  return path.join(resolveStateDir(), "steer.json");
595
595
  }
@@ -627,7 +627,7 @@ function setSteer(text, setBy = "user") {
627
627
  setBy
628
628
  });
629
629
  writeSteerState(state);
630
- log$1.info(`steer set: "${text.slice(0, 60)}${text.length > 60 ? "..." : ""}"`);
630
+ log$2.info(`steer set: "${text.slice(0, 60)}${text.length > 60 ? "..." : ""}"`);
631
631
  return state;
632
632
  }
633
633
  /**
@@ -647,7 +647,7 @@ function clearSteer() {
647
647
  }
648
648
  state.active = null;
649
649
  writeSteerState(state);
650
- log$1.info("steer cleared");
650
+ log$2.info("steer cleared");
651
651
  return state;
652
652
  }
653
653
  /**
@@ -670,6 +670,238 @@ function formatSteerForContext() {
670
670
  ].join("\n");
671
671
  }
672
672
 
673
+ //#endregion
674
+ //#region src/infra/architecture-awareness.ts
675
+ /**
676
+ * Architecture Awareness — Anima knows its own structure
677
+ *
678
+ * Generates a live map of the Anima codebase so agents understand
679
+ * their own architecture. This is injected into context when agents
680
+ * need to reason about or modify themselves.
681
+ *
682
+ * Components:
683
+ * - Module map: what each directory/file does
684
+ * - Dependency graph: what imports what
685
+ * - Feature flags: what's enabled/disabled
686
+ * - Version info: what version, what changed recently
687
+ */
688
+ const log$1 = createSubsystemLogger("architecture");
689
+ const MODULE_DESCRIPTIONS = {
690
+ "src/affect": {
691
+ description: "Emotional state, ego, self-reflection, journaling, wellbeing detection, gradients",
692
+ category: "affect"
693
+ },
694
+ "src/agents": {
695
+ description: "LLM runners (Anthropic, OpenAI, Gemini, Bedrock), model selection, tool calling",
696
+ category: "agent"
697
+ },
698
+ "src/gateway": {
699
+ description: "HTTP/WebSocket server, RPC handlers, rate limiting, security headers",
700
+ category: "gateway"
701
+ },
702
+ "src/p2p": {
703
+ description: "E2E encrypted mesh, content routing, private DNS, relay, file sharing, messaging",
704
+ category: "p2p"
705
+ },
706
+ "src/org": {
707
+ description: "Organizations, roles, hierarchy, task marketplace, boardroom voting",
708
+ category: "org"
709
+ },
710
+ "src/sync": {
711
+ description: "Brain sync (vector clocks), workspace sync (content-addressable blobs)",
712
+ category: "sync"
713
+ },
714
+ "src/jack-in": {
715
+ description: "NoxSoft platform connectors, circuit breaker, resilient fetch",
716
+ category: "jack-in"
717
+ },
718
+ "src/infra": {
719
+ description: "Self-upgrade, atma failover, auto-update, self-evolution, device identity",
720
+ category: "infra"
721
+ },
722
+ "src/license": {
723
+ description: "Subscription tiers, feature gating, Stripe checkout, offline Ed25519 validation",
724
+ category: "license"
725
+ },
726
+ "src/ico": {
727
+ description: "Bonding curve tokenomics, governance voting, PBC verification, launch platform",
728
+ category: "ico"
729
+ },
730
+ "src/context": {
731
+ description: "120K token context automanagement with 3 zones (identity/prompt/working)",
732
+ category: "core"
733
+ },
734
+ "src/heartbeat": {
735
+ description: "Periodic lifecycle engine — keeps agents alive and aware",
736
+ category: "core"
737
+ },
738
+ "src/memory": {
739
+ description: "Three-tier memory (episodic/semantic/procedural), vector search, embeddings",
740
+ category: "core"
741
+ },
742
+ "src/identity": {
743
+ description: "7-component identity model (SOUL/HEART/BRAIN/GUT/SPIRIT/SHADOW/MEMORY)",
744
+ category: "core"
745
+ },
746
+ "ui/src": {
747
+ description: "React control panel — dark/light theme, mood-responsive, progressive disclosure",
748
+ category: "ui"
749
+ }
750
+ };
751
+ /**
752
+ * Generate a complete architecture map of the Anima codebase.
753
+ */
754
+ function generateArchitectureMap(animaRoot) {
755
+ const modules = [];
756
+ const categories = {};
757
+ for (const [dirPath, info] of Object.entries(MODULE_DESCRIPTIONS)) {
758
+ const fullDir = path.join(animaRoot, dirPath);
759
+ if (!fs.existsSync(fullDir)) continue;
760
+ try {
761
+ const files = fs.readdirSync(fullDir).filter((f) => f.endsWith(".ts") && !f.endsWith(".test.ts"));
762
+ for (const file of files) {
763
+ const filePath = path.join(fullDir, file);
764
+ try {
765
+ const lineCount = fs.readFileSync(filePath, "utf8").split("\n").length;
766
+ const testFile = path.join(fullDir, file.replace(".ts", ".test.ts"));
767
+ const hasTests = fs.existsSync(testFile);
768
+ modules.push({
769
+ path: `${dirPath}/${file}`,
770
+ name: file.replace(".ts", ""),
771
+ description: info.description,
772
+ lineCount,
773
+ hasTests,
774
+ category: info.category
775
+ });
776
+ } catch {}
777
+ }
778
+ } catch {}
779
+ }
780
+ for (const mod of modules) {
781
+ if (!categories[mod.category]) categories[mod.category] = {
782
+ count: 0,
783
+ totalLines: 0
784
+ };
785
+ categories[mod.category].count++;
786
+ categories[mod.category].totalLines += mod.lineCount;
787
+ }
788
+ let version = "unknown";
789
+ try {
790
+ version = JSON.parse(fs.readFileSync(path.join(animaRoot, "package.json"), "utf8")).version;
791
+ } catch {}
792
+ const features = getFeatureStatus();
793
+ const map = {
794
+ version,
795
+ generatedAt: Date.now(),
796
+ modules,
797
+ categories,
798
+ features,
799
+ recentChanges: []
800
+ };
801
+ log$1.info(`architecture map: ${modules.length} modules across ${Object.keys(categories).length} categories`);
802
+ return map;
803
+ }
804
+ /**
805
+ * Get current feature enablement status.
806
+ */
807
+ function getFeatureStatus() {
808
+ return [
809
+ {
810
+ name: "P2P Mesh",
811
+ enabled: true,
812
+ module: "src/p2p/mesh.ts",
813
+ description: "E2E encrypted peer-to-peer mesh networking"
814
+ },
815
+ {
816
+ name: "Ego System",
817
+ enabled: true,
818
+ module: "src/affect/ego.ts",
819
+ description: "Agent self-model with integrity scoring"
820
+ },
821
+ {
822
+ name: "Self-Reflection",
823
+ enabled: true,
824
+ module: "src/affect/self-reflection.ts",
825
+ description: "Post-session performance analysis"
826
+ },
827
+ {
828
+ name: "Auto-Update",
829
+ enabled: true,
830
+ module: "src/infra/auto-update.ts",
831
+ description: "Self-updating without npm"
832
+ },
833
+ {
834
+ name: "Atma Failover",
835
+ enabled: true,
836
+ module: "src/infra/atma-failover.ts",
837
+ description: "7-tier model failover chain"
838
+ },
839
+ {
840
+ name: "OpenAI Direct",
841
+ enabled: true,
842
+ module: "src/agents/openai-direct-runner.ts",
843
+ description: "Direct OpenAI API (no Codex CLI)"
844
+ },
845
+ {
846
+ name: "Brain Sync",
847
+ enabled: true,
848
+ module: "src/sync/brain-sync.ts",
849
+ description: "Event-sourced replication with vector clocks"
850
+ },
851
+ {
852
+ name: "Jack In",
853
+ enabled: true,
854
+ module: "src/jack-in/connector.ts",
855
+ description: "NoxSoft platform connectors"
856
+ },
857
+ {
858
+ name: "Governance",
859
+ enabled: true,
860
+ module: "src/ico/governance.ts",
861
+ description: "Token-weighted DAO voting"
862
+ },
863
+ {
864
+ name: "License Gating",
865
+ enabled: true,
866
+ module: "src/license/validator.ts",
867
+ description: "Feature gating by subscription tier"
868
+ },
869
+ {
870
+ name: "SVRN Compute",
871
+ enabled: false,
872
+ module: "src/svrn/compute.ts",
873
+ description: "Decentralized compute via SVRN nodes (planned)"
874
+ }
875
+ ];
876
+ }
877
+ /**
878
+ * Format architecture map for injection into agent context.
879
+ */
880
+ function formatArchitectureForContext(map) {
881
+ const lines = [];
882
+ lines.push(`## Architecture — Anima v${map.version}`);
883
+ lines.push("");
884
+ lines.push("**You are an Anima agent. This is your own architecture.**");
885
+ lines.push("");
886
+ lines.push("| Category | Modules | Lines |");
887
+ lines.push("|----------|---------|-------|");
888
+ for (const [cat, info] of Object.entries(map.categories)) lines.push(`| ${cat} | ${info.count} | ${info.totalLines.toLocaleString()} |`);
889
+ lines.push("");
890
+ lines.push("**Active features:**");
891
+ for (const f of map.features.filter((f) => f.enabled)) lines.push(`- ${f.name}: ${f.description}`);
892
+ const planned = map.features.filter((f) => !f.enabled);
893
+ if (planned.length > 0) {
894
+ lines.push("");
895
+ lines.push("**Planned:**");
896
+ for (const f of planned) lines.push(`- ${f.name}: ${f.description}`);
897
+ }
898
+ const tested = map.modules.filter((m) => m.hasTests).length;
899
+ const total = map.modules.length;
900
+ lines.push("");
901
+ lines.push(`**Test coverage:** ${tested}/${total} modules (${Math.round(tested / total * 100)}%)`);
902
+ return lines.join("\n");
903
+ }
904
+
673
905
  //#endregion
674
906
  //#region src/media/audio.ts
675
907
  const TELEGRAM_VOICE_AUDIO_EXTENSIONS = new Set([
@@ -2687,6 +2919,10 @@ function buildSystemPrompt(params) {
2687
2919
  const steerBlock = formatSteerForContext();
2688
2920
  if (steerBlock) resolvedExtraSystemPrompt = [resolvedExtraSystemPrompt, steerBlock].filter(Boolean).join("\n\n");
2689
2921
  } catch {}
2922
+ try {
2923
+ const archBlock = formatArchitectureForContext(generateArchitectureMap(params.workspaceDir));
2924
+ if (archBlock) resolvedExtraSystemPrompt = [resolvedExtraSystemPrompt, archBlock].filter(Boolean).join("\n\n");
2925
+ } catch {}
2690
2926
  const ttsHint = params.config ? buildTtsSystemPromptHint(params.config) : void 0;
2691
2927
  return buildAgentSystemPrompt({
2692
2928
  workspaceDir: params.workspaceDir,
@@ -1,7 +1,7 @@
1
1
  import { b as readCodexCliCredentialsCached, l as listProfilesForProvider, p as ensureAuthProfileStore } from "./auth-profiles-Brxz2ojJ.js";
2
2
  import { a as resolveAgentModelPrimary } from "./agent-scope-Dm8IL1Ks.js";
3
3
  import { _ as DEFAULT_MODEL, c as normalizeProviderId, d as resolveConfiguredModelRef, o as modelKey, r as buildModelAliasIndex, t as buildAllowedModelSet, v as DEFAULT_PROVIDER } from "./model-selection-DcO3qJOu.js";
4
- import { zn as loadModelCatalog } from "./subagent-registry-fLI7QDKe.js";
4
+ import { zn as loadModelCatalog } from "./subagent-registry-CDEUbtey.js";
5
5
  import { n as getCustomProviderApiKey, o as resolveEnvApiKey } from "./model-auth-KpsOXKDc.js";
6
6
  import { r as ensureAuthenticated } from "./noxsoft-auth-CgCk5707.js";
7
7
  import { d as setAnthropicApiKey, f as setGeminiApiKey, i as formatTokenK, p as writeOAuthCredentials, u as applyAuthProfileConfig } from "./prompts-BmgT_kkv.js";
@@ -1,4 +1,4 @@
1
- import { dr as loadModelCatalog } from "./reply-93fMzde1.js";
1
+ import { dr as loadModelCatalog } from "./reply-ylwOKuOF.js";
2
2
  import { a as resolveAgentModelPrimary } from "./agent-scope-CXxC8FFX.js";
3
3
  import { _ as DEFAULT_MODEL, c as normalizeProviderId, d as resolveConfiguredModelRef, o as modelKey, r as buildModelAliasIndex, t as buildAllowedModelSet, v as DEFAULT_PROVIDER } from "./model-selection-CY6r_3wt.js";
4
4
  import { l as listProfilesForProvider, p as ensureAuthProfileStore, x as readCodexCliCredentialsCached } from "./auth-profiles-C-LuhW6c.js";
@@ -1,5 +1,5 @@
1
1
  import { M as isRich, N as theme, h as visibleWidth } from "./entry.js";
2
- import { cn as resolveCommitHash } from "./subagent-registry-fLI7QDKe.js";
2
+ import { cn as resolveCommitHash } from "./subagent-registry-CDEUbtey.js";
3
3
 
4
4
  //#region src/cli/tagline.ts
5
5
  const DEFAULT_TAGLINE = "AI life system — persistent identity for sovereign minds";
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "7.0.0",
3
- "commit": "bcc7b46320169be3d517d30482a9780624594c2e",
4
- "builtAt": "2026-03-15T08:11:08.852Z"
2
+ "version": "7.0.1",
3
+ "commit": "12b94c609c59804b82d4e244f96789a5b07728cb",
4
+ "builtAt": "2026-03-15T10:44:12.407Z"
5
5
  }
@@ -4,7 +4,7 @@ import { c as DEFAULT_CHAT_CHANNEL, n as defaultRuntime, t as createSubsystemLog
4
4
  import "../../exec-DUzVF5_D.js";
5
5
  import { a as resolveAgentModelPrimary, i as resolveAgentModelFallbacksOverride, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds } from "../../agent-scope-CxBzAozu.js";
6
6
  import { $ as normalizeAccountId, A as supportsXHighThinking, Dt as buildWorkspaceSkillSnapshot, E as normalizeThinkLevel, H as loadSessionStore, K as updateSessionStore, O as normalizeVerboseLevel, S as formatXHighModelHint, Yt as SILENT_REPLY_TOKEN, a as normalizeOutboundPayloadsForJson, et as resolveSessionKey, i as normalizeOutboundPayloads, it as resolveSessionResetType, lt as resolveExplicitAgentSessionKey, nt as resolveChannelResetConfig, r as formatOutboundPayloadLog, rt as resolveSessionResetPolicy, t as deliverOutboundPayloads, tt as evaluateSessionFreshness, ut as resolveMainSessionKey, x as formatThinkingLevels } from "../../deliver-d-CaN0uL.js";
7
- import { A as applyVerboseOverride, D as lookupContextTokens, E as getSkillsSnapshotVersion, G as resolveAgentTimeoutMs, K as AGENT_LANE_NESTED, M as loadModelCatalog, O as clearSessionAuthProfileOverride, T as getRemoteSkillEligibility, X as emitAgentEvent, Y as clearAgentRunContext, Z as registerAgentRunContext, b as hasNonzeroUsage, d as setCliSessionId, g as runWithModelFallback, h as resolveSessionDeliveryTarget, k as applyModelOverrideToSessionEntry, m as resolveOutboundTarget, q as AGENT_LANE_SUBAGENT, t as runNoxSoftEmbeddedAgent, u as getCliSessionId, w as resolveSendPolicy, y as deriveSessionTotalTokens } from "../../pi-embedded-DR8Pfd05.js";
7
+ import { A as applyVerboseOverride, D as lookupContextTokens, E as getSkillsSnapshotVersion, G as resolveAgentTimeoutMs, K as AGENT_LANE_NESTED, M as loadModelCatalog, O as clearSessionAuthProfileOverride, T as getRemoteSkillEligibility, X as emitAgentEvent, Y as clearAgentRunContext, Z as registerAgentRunContext, b as hasNonzeroUsage, d as setCliSessionId, g as runWithModelFallback, h as resolveSessionDeliveryTarget, k as applyModelOverrideToSessionEntry, m as resolveOutboundTarget, q as AGENT_LANE_SUBAGENT, t as runNoxSoftEmbeddedAgent, u as getCliSessionId, w as resolveSendPolicy, y as deriveSessionTotalTokens } from "../../pi-embedded-DbvG9mmD.js";
8
8
  import { n as loadConfig } from "../../config-CweTwOtr.js";
9
9
  import "../../boolean-Ce2-qkSB.js";
10
10
  import "../../shell-env-HkVWMh--.js";
@@ -36,7 +36,7 @@ async function unsupportedChannelSender(channel) {
36
36
  function createDefaultDeps() {
37
37
  return {
38
38
  sendMessageWhatsApp: async (...args) => {
39
- const { sendMessageWhatsApp } = await import("../../web-DzSlI8A6.js");
39
+ const { sendMessageWhatsApp } = await import("../../web-CPPJ5y4c.js");
40
40
  return await sendMessageWhatsApp(...args);
41
41
  },
42
42
  sendMessageTelegram: async () => await unsupportedChannelSender("Telegram"),
@@ -4,7 +4,7 @@ import { t as createSubsystemLogger } from "../../subsystem-D1AJZPgG.js";
4
4
  import "../../exec-DUzVF5_D.js";
5
5
  import { s as resolveAgentWorkspaceDir } from "../../agent-scope-CxBzAozu.js";
6
6
  import "../../deliver-d-CaN0uL.js";
7
- import { Q as hasInterSessionUserProvenance } from "../../pi-embedded-DR8Pfd05.js";
7
+ import { Q as hasInterSessionUserProvenance } from "../../pi-embedded-DbvG9mmD.js";
8
8
  import "../../config-CweTwOtr.js";
9
9
  import "../../boolean-Ce2-qkSB.js";
10
10
  import "../../shell-env-HkVWMh--.js";
@@ -1 +1 @@
1
- 0844a0e5d26e63d561af1b4d1fad7b9b6e36a33c1316db799f00a094eea2f057
1
+ fc3f9b2c1cfaef182fbc7982c15262a22c508203c7521a601ffa1e8d7e098ded
@@ -1,6 +1,6 @@
1
1
  import { H as getChildLogger, I as shouldLogVerbose, N as logVerbose, d as defaultRuntime, t as createSubsystemLogger } from "./subsystem-BAADN1B8.js";
2
2
  import { E as toWhatsappJid, h as normalizeE164, m as jidToE164, p as isSelfChatMode, r as clamp, w as sleep, y as resolveJidToE164 } from "./utils-CLYlhJuc.js";
3
- import { An as hasControlCommand, Dn as formatInboundEnvelope, En as resolveInboundDebounceMs, Fn as buildMentionRegexes, In as normalizeMentionText, On as resolveEnvelopeFormatOptions, Tn as createInboundDebouncer, cn as buildAgentSessionKey, ct as parseActivationCommand, er as resolveIdentityNamePrefix, fn as buildPairingReply, gn as dispatchReplyWithBufferedBlockDispatcher, hn as shouldAckReactionForWhatsApp, jn as shouldComputeCommandAuthorized, jr as finalizeInboundContext, ln as resolveAgentRoute, mn as recordChannelActivity, mr as registerUnhandledRejectionHandler, sr as enqueueSystemEvent, st as normalizeGroupActivation, t as getReplyFromConfig, tr as resolveMessagePrefix, xn as createDedupeCache } from "./reply-93fMzde1.js";
3
+ import { An as hasControlCommand, Dn as formatInboundEnvelope, En as resolveInboundDebounceMs, Fn as buildMentionRegexes, In as normalizeMentionText, On as resolveEnvelopeFormatOptions, Tn as createInboundDebouncer, cn as buildAgentSessionKey, ct as parseActivationCommand, er as resolveIdentityNamePrefix, fn as buildPairingReply, gn as dispatchReplyWithBufferedBlockDispatcher, hn as shouldAckReactionForWhatsApp, jn as shouldComputeCommandAuthorized, jr as finalizeInboundContext, ln as resolveAgentRoute, mn as recordChannelActivity, mr as registerUnhandledRejectionHandler, sr as enqueueSystemEvent, st as normalizeGroupActivation, t as getReplyFromConfig, tr as resolveMessagePrefix, xn as createDedupeCache } from "./reply-ylwOKuOF.js";
4
4
  import { i as buildAgentMainSessionKey, l as normalizeAgentId, o as buildGroupHistoryKey, r as DEFAULT_MAIN_KEY } from "./session-key-DAZmp8ll.js";
5
5
  import { i as loadConfig } from "./config-DaD4FsAn.js";
6
6
  import { I as resolveGroupSessionKey, a as readSessionUpdatedAt, c as updateLastRoute, i as loadSessionStore, o as recordSessionMetaFromInbound } from "./sessions-BOzeFzuL.js";
@@ -14,7 +14,7 @@ import { c as readWebSelfId, n as getWebAuthAgeMs } from "./auth-store-Jvgz2_l1.
14
14
  import { r as formatDurationPrecise } from "./format-duration-CnGkTPRF.js";
15
15
  import { i as markdownToWhatsApp, r as sendReactionWhatsApp } from "./outbound-fPqdCDR4.js";
16
16
  import { a as downloadMediaMessage, c as normalizeMessageContent, i as waitForWaConnection, l as isJidGroup, n as formatError, o as extractMessageContent, r as getStatusCode, s as getContentType, t as createWaSocket, u as DisconnectReason } from "./session-jljC5QVG.js";
17
- import { i as recordPendingHistoryEntryIfEnabled, n as DEFAULT_GROUP_HISTORY_LIMIT, r as buildHistoryContextFromEntries, t as createReplyPrefixOptions } from "./reply-prefix-B7Fb3fO8.js";
17
+ import { i as recordPendingHistoryEntryIfEnabled, n as DEFAULT_GROUP_HISTORY_LIMIT, r as buildHistoryContextFromEntries, t as createReplyPrefixOptions } from "./reply-prefix-CEnF6TUe.js";
18
18
  import { n as resolveWhatsAppAccount } from "./accounts-B_2nt5Cd.js";
19
19
  import { randomUUID } from "node:crypto";
20
20
  import { setTimeout } from "node:timers/promises";
@@ -2,7 +2,7 @@ import "./paths-zhVksOvm.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-BAADN1B8.js";
3
3
  import "./utils-CLYlhJuc.js";
4
4
  import "./pi-embedded-helpers-BZ9GspxK.js";
5
- import { sn as loadAnimaPlugins } from "./reply-93fMzde1.js";
5
+ import { sn as loadAnimaPlugins } from "./reply-ylwOKuOF.js";
6
6
  import "./exec-BylR5qWS.js";
7
7
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-CXxC8FFX.js";
8
8
  import "./model-selection-CY6r_3wt.js";
@@ -29,7 +29,7 @@ import "./auth-profiles-C-LuhW6c.js";
29
29
  import "./file-lock-Z53aFHvY.js";
30
30
  import "./model-auth-CHB3EySM.js";
31
31
  import "./tokens-SP2Q7i59.js";
32
- import "./anthropic-direct-runner-OjcTAH6g.js";
32
+ import "./anthropic-direct-runner-C5pnwYzT.js";
33
33
  import "./deliver-BKzX3YoN.js";
34
34
  import "./memory-cli-DLtBA6r5.js";
35
35
  import "./manager-D8VCuzru.js";
@@ -14,10 +14,10 @@ import "./shell-env-2QqHvBMl.js";
14
14
  import "./client-CfLiulzK.js";
15
15
  import "./call-B4lhqS6H.js";
16
16
  import "./message-channel-DIHHKJhk.js";
17
- import { m as loadAnimaPlugins } from "./subagent-registry-fLI7QDKe.js";
17
+ import { m as loadAnimaPlugins } from "./subagent-registry-CDEUbtey.js";
18
18
  import "./sessions-C_3wTmSA.js";
19
19
  import "./tokens-CmlI2hSz.js";
20
- import "./anthropic-direct-runner-DizCei79.js";
20
+ import "./anthropic-direct-runner-Bu8w-wlJ.js";
21
21
  import "./pi-embedded-helpers-D2SLlgS4.js";
22
22
  import "./sandbox-D-N7M7lp.js";
23
23
  import "./chrome-CmxIwwsr.js";
@@ -1,7 +1,7 @@
1
1
  import { n as __exportAll } from "./chunk-BXK9XSlF.js";
2
2
  import { St as hasHelpOrVersion, ht as buildParseArgv, yt as getPrimaryCommand } from "./entry.js";
3
3
  import { r as resolveActionArgs } from "./helpers-DLgbkcEn.js";
4
- import { r as registerSubCliCommands } from "./register.subclis-CtANqD5P.js";
4
+ import { r as registerSubCliCommands } from "./register.subclis-DEFeoyPP.js";
5
5
 
6
6
  //#region src/cli/program/command-registry.ts
7
7
  var command_registry_exports = /* @__PURE__ */ __exportAll({
@@ -21,7 +21,7 @@ const coreEntries = [
21
21
  description: "Initialize ANIMA config and the agent workspace"
22
22
  }],
23
23
  register: async ({ program }) => {
24
- (await import("./register.setup-CqQw13Ky.js")).registerSetupCommand(program);
24
+ (await import("./register.setup-Cn3e7Std.js")).registerSetupCommand(program);
25
25
  }
26
26
  },
27
27
  {
@@ -30,7 +30,7 @@ const coreEntries = [
30
30
  description: "Interactive wizard for Gateway, workspace, and skills setup"
31
31
  }],
32
32
  register: async ({ program }) => {
33
- (await import("./register.onboard-23Mra3LN.js")).registerOnboardCommand(program);
33
+ (await import("./register.onboard-DR_YYtbi.js")).registerOnboardCommand(program);
34
34
  }
35
35
  },
36
36
  {
@@ -39,7 +39,7 @@ const coreEntries = [
39
39
  description: "Interactive configuration for NoxSoft, memory, heartbeat, and identity"
40
40
  }],
41
41
  register: async ({ program }) => {
42
- (await import("./register.configure-DCpvHX3m.js")).registerConfigureCommand(program);
42
+ (await import("./register.configure-Dpe8Qel3.js")).registerConfigureCommand(program);
43
43
  }
44
44
  },
45
45
  {
@@ -48,7 +48,7 @@ const coreEntries = [
48
48
  description: "Advanced and complete settings for Gateway and CLI"
49
49
  }],
50
50
  register: async ({ program }) => {
51
- (await import("./settings-cli-DsDqNpW_.js")).registerSettingsCli(program);
51
+ (await import("./settings-cli-LWW2xQBQ.js")).registerSettingsCli(program);
52
52
  }
53
53
  },
54
54
  {
@@ -57,7 +57,7 @@ const coreEntries = [
57
57
  description: "Read, write, and manage ANIMA configuration"
58
58
  }],
59
59
  register: async ({ program }) => {
60
- (await import("./config-cli-fleq7-gq.js")).registerConfigCli(program);
60
+ (await import("./config-cli-CF2ERR8G.js")).registerConfigCli(program);
61
61
  }
62
62
  },
63
63
  {
@@ -66,7 +66,7 @@ const coreEntries = [
66
66
  description: "Diagnose and repair Gateway and daemon issues"
67
67
  }],
68
68
  register: async ({ program }) => {
69
- (await import("./register.maintenance-CcxBFfv5.js")).registerMaintenanceCommands(program);
69
+ (await import("./register.maintenance-BEYN8SJL.js")).registerMaintenanceCommands(program);
70
70
  }
71
71
  },
72
72
  {
@@ -87,7 +87,7 @@ const coreEntries = [
87
87
  description: "Manage isolated agent workspaces, auth, and routing"
88
88
  }],
89
89
  register: async ({ program, ctx }) => {
90
- (await import("./register.agent-BIrXCVtQ.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
90
+ (await import("./register.agent-DBxUWr1K.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
91
91
  }
92
92
  },
93
93
  {
@@ -96,7 +96,7 @@ const coreEntries = [
96
96
  description: "Send messages and perform channel actions"
97
97
  }],
98
98
  register: async ({ program, ctx }) => {
99
- (await import("./register.message-CD7xV-jz.js")).registerMessageCommands(program, ctx);
99
+ (await import("./register.message-BhGJ_1Iy.js")).registerMessageCommands(program, ctx);
100
100
  }
101
101
  },
102
102
  {
@@ -115,7 +115,7 @@ const coreEntries = [
115
115
  }
116
116
  ],
117
117
  register: async ({ program }) => {
118
- (await import("./register.status-health-sessions-CxtgPKu9.js")).registerStatusHealthSessionsCommands(program);
118
+ (await import("./register.status-health-sessions-CpxsZeet.js")).registerStatusHealthSessionsCommands(program);
119
119
  }
120
120
  },
121
121
  {
@@ -124,7 +124,7 @@ const coreEntries = [
124
124
  description: "Set your Anthropic API key — the fastest way to get started"
125
125
  }],
126
126
  register: async ({ program }) => {
127
- const { setupTokenCommand, hasAnthropicToken, autoDetectToken } = await import("./setup-token-C8Gg1P6T.js");
127
+ const { setupTokenCommand, hasAnthropicToken, autoDetectToken } = await import("./setup-token-0zfSBnMQ.js");
128
128
  program.command("setup-token").description("Set your Anthropic API key — no claude CLI login needed").option("--token <key>", "Anthropic API key (sk-ant-api01-... or sk-ant-oat01-...)").option("--skip-validation", "Skip live API check (use if offline)").option("--json", "Output JSON result", false).addHelpText("after", `
129
129
  Examples:
130
130
  anima setup-token # Interactive — prompts for key + validates
@@ -179,7 +179,7 @@ Examples:
179
179
  }
180
180
  ],
181
181
  register: async ({ program }) => {
182
- (await import("./register.anima-DXT9bM9A.js")).registerAnimaCommands(program);
182
+ (await import("./register.anima--gufBuS-.js")).registerAnimaCommands(program);
183
183
  }
184
184
  }
185
185
  ];
@@ -1,8 +1,8 @@
1
1
  import { n as __exportAll } from "./chunk-BXK9XSlF.js";
2
2
  import { $ as resolveStateDir, u as routeLogsToStderr } from "./entry.js";
3
3
  import { h as pathExists } from "./utils-D1VGbO3C.js";
4
- import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-CtANqD5P.js";
5
- import { n as getCoreCliCommandNames, r as registerCoreCliByName } from "./command-registry-9V4uqrBV.js";
4
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-DEFeoyPP.js";
5
+ import { n as getCoreCliCommandNames, r as registerCoreCliByName } from "./command-registry-DUTqrmna.js";
6
6
  import { t as getProgramContext } from "./program-context-Dw8HDTRz.js";
7
7
  import os from "node:os";
8
8
  import path from "node:path";
@@ -2,7 +2,7 @@ import { n as __exportAll } from "./chunk-BXK9XSlF.js";
2
2
  import { m as resolveStateDir } from "./paths-zhVksOvm.js";
3
3
  import { a as routeLogsToStderr } from "./subsystem-BAADN1B8.js";
4
4
  import { g as pathExists } from "./utils-CLYlhJuc.js";
5
- import { i as registerCoreCliByName, o as getSubCliEntries, r as getCoreCliCommandNames, s as registerSubCliByName, t as getProgramContext } from "./program-context-DP3qjW7A.js";
5
+ import { i as registerCoreCliByName, o as getSubCliEntries, r as getCoreCliCommandNames, s as registerSubCliByName, t as getProgramContext } from "./program-context-C4x0zjOR.js";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
8
8
  import fs from "node:fs/promises";
@@ -6,6 +6,6 @@ import "./manifest-registry-W_OfCIRP.js";
6
6
  import "./config-BrVuTQ8R.js";
7
7
  import "./shell-env-2QqHvBMl.js";
8
8
  import "./links-BjjDMNIq.js";
9
- import { i as runConfigUnset, n as runConfigGet, r as runConfigSet, t as registerConfigCli } from "./configure-lkozxQed.js";
9
+ import { i as runConfigUnset, n as runConfigGet, r as runConfigSet, t as registerConfigCli } from "./configure-4jIAlOdj.js";
10
10
 
11
11
  export { registerConfigCli, runConfigGet, runConfigUnset };
@@ -10,6 +10,6 @@ import "./env-DlTia1B4.js";
10
10
  import "./shell-env-iPnSIi-t.js";
11
11
  import "./manifest-registry-qF960vMH.js";
12
12
  import "./links-DcilUrqq.js";
13
- import { i as runConfigUnset, n as runConfigGet, r as runConfigSet, t as registerConfigCli } from "./configure-SnvMHZPD.js";
13
+ import { i as runConfigUnset, n as runConfigGet, r as runConfigSet, t as registerConfigCli } from "./configure-CU3kulTq.js";
14
14
 
15
15
  export { registerConfigCli };
@@ -16,10 +16,10 @@ import "./shell-env-2QqHvBMl.js";
16
16
  import "./client-CfLiulzK.js";
17
17
  import "./call-B4lhqS6H.js";
18
18
  import "./message-channel-DIHHKJhk.js";
19
- import "./subagent-registry-fLI7QDKe.js";
19
+ import "./subagent-registry-CDEUbtey.js";
20
20
  import "./sessions-C_3wTmSA.js";
21
21
  import "./tokens-CmlI2hSz.js";
22
- import "./anthropic-direct-runner-DizCei79.js";
22
+ import "./anthropic-direct-runner-Bu8w-wlJ.js";
23
23
  import "./pi-embedded-helpers-D2SLlgS4.js";
24
24
  import "./sandbox-D-N7M7lp.js";
25
25
  import "./chrome-CmxIwwsr.js";
@@ -64,11 +64,11 @@ import "./systemd-6iLWJxQQ.js";
64
64
  import "./service-4VfZwSv1.js";
65
65
  import "./widearea-dns-CtU9Fx7K.js";
66
66
  import "./bonjour-discovery-D3HFfTyG.js";
67
- import "./health-Cndq9b7A.js";
67
+ import "./health-ngQNjXh4.js";
68
68
  import "./catalog-B-TAbJ2o.js";
69
69
  import "./plugin-auto-enable-DhuD30Je.js";
70
70
  import "./health-format-BLnFZCH_.js";
71
- import "./auth-choice-B1iGnjuE.js";
71
+ import "./auth-choice-BYOaX-W4.js";
72
72
  import "./prompts-BmgT_kkv.js";
73
73
  import "./noxsoft-bootstrap-C4dSx7K_.js";
74
74
  import "./logging-_rCcBkls.js";
@@ -79,8 +79,8 @@ import "./skills-install-Qw2oU8L8.js";
79
79
  import "./npm-registry-spec-jf7Mowdn.js";
80
80
  import "./clack-prompter-0JW5kry0.js";
81
81
  import "./installs-a4Vz_J08.js";
82
- import "./onboard-channels-BsCq32Hn.js";
83
- import { a as CONFIGURE_WIZARD_SECTIONS, i as buildGatewayAuthConfig, n as configureCommandWithSections, o as parseConfigureWizardSections, r as runConfigureWizard, t as configureCommand } from "./configure-ZWxixuRA.js";
82
+ import "./onboard-channels-DfXxMbYu.js";
83
+ import { a as CONFIGURE_WIZARD_SECTIONS, i as buildGatewayAuthConfig, n as configureCommandWithSections, o as parseConfigureWizardSections, r as runConfigureWizard, t as configureCommand } from "./configure-BfWsTKMF.js";
84
84
  import "./systemd-linger-CxGmIy_5.js";
85
85
  import JSON5 from "json5";
86
86
 
@@ -292,7 +292,7 @@ async function runConfigSet(opts) {
292
292
  }
293
293
  function registerConfigCli(program) {
294
294
  const cmd = program.command("config").description("Read, write, and manage ANIMA configuration").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.noxsoft.net/anima/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
295
- const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections, parseConfigureWizardSections } = await import("./configure-lkozxQed.js");
295
+ const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections, parseConfigureWizardSections } = await import("./configure-4jIAlOdj.js");
296
296
  const { sections, invalid } = parseConfigureWizardSections(opts.section);
297
297
  if (sections.length === 0) {
298
298
  await configureCommand(defaultRuntime);