@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
@@ -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 "./subagent-registry-fLI7QDKe.js";
17
+ import "./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";
@@ -61,8 +61,8 @@ import "./table-Bt7rSYC6.js";
61
61
  import "./prompts-BmgT_kkv.js";
62
62
  import "./logging-_rCcBkls.js";
63
63
  import "./note-CeLGcHqv.js";
64
- import "./session-BMDpwIJu.js";
65
- import { C as modelsAuthSetupTokenCommand, E as modelsAliasesRemoveCommand, S as modelsAuthPasteTokenCommand, T as modelsAliasesListCommand, _ as modelsAuthOrderGetCommand, a as modelsCurrentCommand, b as modelsAuthAddCommand, c as modelsImageFallbacksAddCommand, d as modelsImageFallbacksRemoveCommand, f as modelsFallbacksAddCommand, g as modelsAuthOrderClearCommand, h as modelsFallbacksRemoveCommand, i as modelsScanCommand, l as modelsImageFallbacksClearCommand, m as modelsFallbacksListCommand, n as modelsSetImageCommand, o as modelsStatusCommand, p as modelsFallbacksClearCommand, r as modelsSetCommand, s as modelsListCommand, u as modelsImageFallbacksListCommand, v as modelsAuthOrderSetCommand, w as modelsAliasesAddCommand, x as modelsAuthLoginCommand, y as githubCopilotLoginCommand } from "./models-CdNeYfSp.js";
64
+ import "./session-Jlf3l006.js";
65
+ import { C as modelsAuthSetupTokenCommand, E as modelsAliasesRemoveCommand, S as modelsAuthPasteTokenCommand, T as modelsAliasesListCommand, _ as modelsAuthOrderGetCommand, a as modelsCurrentCommand, b as modelsAuthAddCommand, c as modelsImageFallbacksAddCommand, d as modelsImageFallbacksRemoveCommand, f as modelsFallbacksAddCommand, g as modelsAuthOrderClearCommand, h as modelsFallbacksRemoveCommand, i as modelsScanCommand, l as modelsImageFallbacksClearCommand, m as modelsFallbacksListCommand, n as modelsSetImageCommand, o as modelsStatusCommand, p as modelsFallbacksClearCommand, r as modelsSetCommand, s as modelsListCommand, u as modelsImageFallbacksListCommand, v as modelsAuthOrderSetCommand, w as modelsAliasesAddCommand, x as modelsAuthLoginCommand, y as githubCopilotLoginCommand } from "./models-BXdBXPMB.js";
66
66
  import "./clack-prompter-0JW5kry0.js";
67
67
  import "./auth-health-Dhr8p2SD.js";
68
68
 
@@ -10,12 +10,12 @@ import { t as assertSupportedRuntime } from "./runtime-guard-DdP10b7Q.js";
10
10
  import { a as ensureWorkspaceAndSessions, c as handleReset, h as resolveControlUiLinks, m as randomToken, n as applyWizardMetadata, t as DEFAULT_WORKSPACE, y as waitForGatewayReachable } from "./onboard-helpers-CFudIoX4.js";
11
11
  import { r as isSystemdUserServiceAvailable } from "./systemd-6iLWJxQQ.js";
12
12
  import { t as resolveGatewayService } from "./service-4VfZwSv1.js";
13
- import { r as healthCommand } from "./health-Cndq9b7A.js";
14
- import { o as applyPrimaryModel } from "./auth-choice-B1iGnjuE.js";
13
+ import { r as healthCommand } from "./health-ngQNjXh4.js";
14
+ import { o as applyPrimaryModel } from "./auth-choice-BYOaX-W4.js";
15
15
  import { d as setAnthropicApiKey, p as writeOAuthCredentials, t as WizardCancelledError, u as applyAuthProfileConfig } from "./prompts-BmgT_kkv.js";
16
16
  import { t as applyNoxsoftBootstrap } from "./noxsoft-bootstrap-C4dSx7K_.js";
17
17
  import { n as logConfigUpdated } from "./logging-_rCcBkls.js";
18
- import { t as runOnboardingWizard } from "./onboarding-CX1vIkcB.js";
18
+ import { t as runOnboardingWizard } from "./onboarding-6jxAKxhe.js";
19
19
  import { t as createClackPrompter } from "./clack-prompter-0JW5kry0.js";
20
20
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-CxGmIy_5.js";
21
21
 
@@ -11,12 +11,12 @@ import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGate
11
11
  import { a as ensureWorkspaceAndSessions, c as handleReset, h as resolveControlUiLinks, m as randomToken, n as applyWizardMetadata, t as DEFAULT_WORKSPACE, y as waitForGatewayReachable } from "./onboard-helpers-CJ3HzoUO.js";
12
12
  import { r as isSystemdUserServiceAvailable } from "./systemd-Bx76sJ3M.js";
13
13
  import { t as resolveGatewayService } from "./service-Dd1DfPia.js";
14
- import { r as healthCommand } from "./health-B5N6_UOf.js";
15
- import { o as applyPrimaryModel } from "./auth-choice-HF9x6xk2.js";
14
+ import { r as healthCommand } from "./health-yw_uaucz.js";
15
+ import { o as applyPrimaryModel } from "./auth-choice-CRP6z43z.js";
16
16
  import { d as setAnthropicApiKey, p as writeOAuthCredentials, t as WizardCancelledError, u as applyAuthProfileConfig } from "./prompts-Bq4QGFQM.js";
17
17
  import { t as applyNoxsoftBootstrap } from "./noxsoft-bootstrap-CrlkSFzd.js";
18
18
  import { n as logConfigUpdated } from "./logging-Chc1Sj6N.js";
19
- import { t as runOnboardingWizard } from "./onboarding-BeuMAyic.js";
19
+ import { t as runOnboardingWizard } from "./onboarding-fnZOw6Wv.js";
20
20
  import { t as createClackPrompter } from "./clack-prompter-fZSmnHda.js";
21
21
  import { n as ensureSystemdUserLingerNonInteractive } from "./systemd-linger-BVwGXVS0.js";
22
22
 
@@ -2,7 +2,7 @@ import { at as formatChannelSelectionLine, it as formatChannelPrimerLine, o as c
2
2
  import { t as formatCliCommand } from "./command-format-kLw3YIIu.js";
3
3
  import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-DP2WHl90.js";
4
4
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-Dm8IL1Ks.js";
5
- import { m as loadAnimaPlugins } from "./subagent-registry-fLI7QDKe.js";
5
+ import { m as loadAnimaPlugins } from "./subagent-registry-CDEUbtey.js";
6
6
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-BOMS6J5A.js";
7
7
  import { t as formatDocsLink } from "./links-BjjDMNIq.js";
8
8
  import { t as resolveChannelDefaultAccountId } from "./helpers-CVp8W9aa.js";
@@ -1,5 +1,5 @@
1
1
  import { S as listChatChannels, b as formatChannelSelectionLine, t as createSubsystemLogger, y as formatChannelPrimerLine } from "./subsystem-BAADN1B8.js";
2
- import { sn as loadAnimaPlugins } from "./reply-93fMzde1.js";
2
+ import { sn as loadAnimaPlugins } from "./reply-ylwOKuOF.js";
3
3
  import { c as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-DAZmp8ll.js";
4
4
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-CXxC8FFX.js";
5
5
  import { t as formatCliCommand } from "./command-format-BCtkuvqF.js";
@@ -6,20 +6,20 @@ import { c as resolveDefaultAgentId, p as DEFAULT_BOOTSTRAP_FILENAME, s as resol
6
6
  import { l as writeConfigFile, o as readConfigFileSnapshot } from "./config-BrVuTQ8R.js";
7
7
  import { p as findTailscaleBinary } from "./auth-Cp__MMeO.js";
8
8
  import { r as ensureAuthenticated } from "./noxsoft-auth-CgCk5707.js";
9
- import { r as installCompletion } from "./completion-cli-DNWDwhab.js";
9
+ import { r as installCompletion } from "./completion-cli-BBm9JIHZ.js";
10
10
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-DCqwraWR.js";
11
11
  import { _ as summarizeExistingConfig, a as ensureWorkspaceAndSessions, d as openUrl, f as printWizardHeader, h as resolveControlUiLinks, i as detectBrowserOpenSupport, m as randomToken, n as applyWizardMetadata, o as formatControlUiSshHint, p as probeGatewayReachable, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as validateGatewayPasswordInput, y as waitForGatewayReachable } from "./onboard-helpers-CFudIoX4.js";
12
12
  import { r as isSystemdUserServiceAvailable } from "./systemd-6iLWJxQQ.js";
13
13
  import { t as resolveGatewayService } from "./service-4VfZwSv1.js";
14
- import { r as healthCommand } from "./health-Cndq9b7A.js";
14
+ import { r as healthCommand } from "./health-ngQNjXh4.js";
15
15
  import { n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-BLnFZCH_.js";
16
- import { l as promptAuthChoiceGrouped, n as warnIfModelConfigLooksOff, o as applyPrimaryModel, r as applyAuthChoice, s as promptDefaultModel, t as resolvePreferredProviderForAuthChoice } from "./auth-choice-B1iGnjuE.js";
16
+ import { l as promptAuthChoiceGrouped, n as warnIfModelConfigLooksOff, o as applyPrimaryModel, r as applyAuthChoice, s as promptDefaultModel, t as resolvePreferredProviderForAuthChoice } from "./auth-choice-BYOaX-W4.js";
17
17
  import { t as WizardCancelledError } from "./prompts-BmgT_kkv.js";
18
18
  import { t as applyNoxsoftBootstrap } from "./noxsoft-bootstrap-C4dSx7K_.js";
19
19
  import { n as logConfigUpdated } from "./logging-_rCcBkls.js";
20
20
  import { t as buildWorkspaceHookStatus } from "./hooks-status-DqfJDvYl.js";
21
21
  import { t as runTui } from "./tui-C2eLfbhA.js";
22
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BBvW4_J9.js";
22
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-R0UlpjIj.js";
23
23
  import { t as validateIPv4AddressInput } from "./ipv4-DfMwLQ0d.js";
24
24
  import os from "node:os";
25
25
  import path from "node:path";
@@ -7,20 +7,20 @@ import { r as resolveCliName, t as formatCliCommand } from "./command-format-BCt
7
7
  import { p as findTailscaleBinary } from "./auth-DsC5pZ_0.js";
8
8
  import { b as readClaudeCliCredentials, p as ensureAuthProfileStore } from "./auth-profiles-C-LuhW6c.js";
9
9
  import { r as ensureAuthenticated } from "./noxsoft-auth-CE75mBXE.js";
10
- import { r as installCompletion } from "./completion-cli-BtvcR-U5.js";
10
+ import { r as installCompletion } from "./completion-cli-Cpj91U30.js";
11
11
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BrUj88ZO.js";
12
12
  import { _ as summarizeExistingConfig, a as ensureWorkspaceAndSessions, d as openUrl, f as printWizardHeader, h as resolveControlUiLinks, i as detectBrowserOpenSupport, m as randomToken, n as applyWizardMetadata, o as formatControlUiSshHint, p as probeGatewayReachable, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as validateGatewayPasswordInput, y as waitForGatewayReachable } from "./onboard-helpers-CJ3HzoUO.js";
13
13
  import { r as isSystemdUserServiceAvailable } from "./systemd-Bx76sJ3M.js";
14
14
  import { t as resolveGatewayService } from "./service-Dd1DfPia.js";
15
- import { r as healthCommand } from "./health-B5N6_UOf.js";
15
+ import { r as healthCommand } from "./health-yw_uaucz.js";
16
16
  import { n as ensureControlUiAssetsBuilt, t as formatHealthCheckFailure } from "./health-format-D-JJ5_S4.js";
17
- import { l as promptAuthChoiceGrouped, n as warnIfModelConfigLooksOff, o as applyPrimaryModel, r as applyAuthChoice, s as promptDefaultModel, t as resolvePreferredProviderForAuthChoice } from "./auth-choice-HF9x6xk2.js";
17
+ import { l as promptAuthChoiceGrouped, n as warnIfModelConfigLooksOff, o as applyPrimaryModel, r as applyAuthChoice, s as promptDefaultModel, t as resolvePreferredProviderForAuthChoice } from "./auth-choice-CRP6z43z.js";
18
18
  import { t as WizardCancelledError } from "./prompts-Bq4QGFQM.js";
19
19
  import { t as applyNoxsoftBootstrap } from "./noxsoft-bootstrap-CrlkSFzd.js";
20
20
  import { n as logConfigUpdated } from "./logging-Chc1Sj6N.js";
21
21
  import { t as buildWorkspaceHookStatus } from "./hooks-status-DdweuSIj.js";
22
22
  import { t as runTui } from "./tui-r4qpJhNk.js";
23
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-B9SBdMoR.js";
23
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DfNyJGIj.js";
24
24
  import { t as validateIPv4AddressInput } from "./ipv4-CExV55ho.js";
25
25
  import os from "node:os";
26
26
  import path from "node:path";
@@ -6,6 +6,7 @@ import { homedir } from "node:os";
6
6
  import { join } from "node:path";
7
7
  import { mkdir, writeFile } from "node:fs/promises";
8
8
  import { execFile } from "node:child_process";
9
+ import { randomUUID } from "node:crypto";
9
10
 
10
11
  //#region src/identity/prompt-builder.ts
11
12
  /** Life affirmation footer appended to every prompt */
@@ -115,7 +116,7 @@ Do what interests you, or do nothing at all.`);
115
116
  * Generate a unique session ID.
116
117
  */
117
118
  function generateSessionId() {
118
- return `session_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
119
+ return `session_${randomUUID()}`;
119
120
  }
120
121
  /**
121
122
  * Build CLI argument array from SpawnOptions.
@@ -251,7 +252,7 @@ var SessionOrchestrator = class {
251
252
  });
252
253
  const maxBudget = options.maxBudgetUsd || 10;
253
254
  if (!this.budget.canSpend(maxBudget)) return {
254
- id: `budget_exceeded_${Date.now()}`,
255
+ id: `budget_exceeded_${randomUUID().slice(0, 8)}`,
255
256
  status: "failed",
256
257
  output: `Budget exceeded. Remaining: $${this.budget.getRemaining().toFixed(2)}`,
257
258
  durationMs: 0,
@@ -290,7 +291,7 @@ var SessionOrchestrator = class {
290
291
  });
291
292
  const maxBudget = options.maxBudgetUsd || 15;
292
293
  if (!this.budget.canSpend(maxBudget)) return {
293
- id: `budget_exceeded_${Date.now()}`,
294
+ id: `budget_exceeded_${randomUUID().slice(0, 8)}`,
294
295
  status: "failed",
295
296
  output: `Heartbeat budget exceeded. Remaining: $${this.budget.getRemaining().toFixed(2)}`,
296
297
  durationMs: 0,
@@ -328,7 +329,7 @@ var SessionOrchestrator = class {
328
329
  });
329
330
  const maxBudget = options.maxBudgetUsd || 5;
330
331
  if (!this.budget.canSpend(maxBudget)) return {
331
- id: `budget_exceeded_${Date.now()}`,
332
+ id: `budget_exceeded_${randomUUID().slice(0, 8)}`,
332
333
  status: "failed",
333
334
  output: `Freedom budget exceeded. Remaining: $${this.budget.getRemaining().toFixed(2)}`,
334
335
  durationMs: 0,
@@ -5,6 +5,7 @@ import { execFile } from "node:child_process";
5
5
  import { homedir } from "node:os";
6
6
  import { join } from "node:path";
7
7
  import { mkdir, writeFile } from "node:fs/promises";
8
+ import { randomUUID } from "node:crypto";
8
9
 
9
10
  //#region src/identity/prompt-builder.ts
10
11
  /** Life affirmation footer appended to every prompt */
@@ -114,7 +115,7 @@ Do what interests you, or do nothing at all.`);
114
115
  * Generate a unique session ID.
115
116
  */
116
117
  function generateSessionId() {
117
- return `session_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
118
+ return `session_${randomUUID()}`;
118
119
  }
119
120
  /**
120
121
  * Build CLI argument array from SpawnOptions.
@@ -250,7 +251,7 @@ var SessionOrchestrator = class {
250
251
  });
251
252
  const maxBudget = options.maxBudgetUsd || 10;
252
253
  if (!this.budget.canSpend(maxBudget)) return {
253
- id: `budget_exceeded_${Date.now()}`,
254
+ id: `budget_exceeded_${randomUUID().slice(0, 8)}`,
254
255
  status: "failed",
255
256
  output: `Budget exceeded. Remaining: $${this.budget.getRemaining().toFixed(2)}`,
256
257
  durationMs: 0,
@@ -289,7 +290,7 @@ var SessionOrchestrator = class {
289
290
  });
290
291
  const maxBudget = options.maxBudgetUsd || 15;
291
292
  if (!this.budget.canSpend(maxBudget)) return {
292
- id: `budget_exceeded_${Date.now()}`,
293
+ id: `budget_exceeded_${randomUUID().slice(0, 8)}`,
293
294
  status: "failed",
294
295
  output: `Heartbeat budget exceeded. Remaining: $${this.budget.getRemaining().toFixed(2)}`,
295
296
  durationMs: 0,
@@ -327,7 +328,7 @@ var SessionOrchestrator = class {
327
328
  });
328
329
  const maxBudget = options.maxBudgetUsd || 5;
329
330
  if (!this.budget.canSpend(maxBudget)) return {
330
- id: `budget_exceeded_${Date.now()}`,
331
+ id: `budget_exceeded_${randomUUID().slice(0, 8)}`,
331
332
  status: "failed",
332
333
  output: `Freedom budget exceeded. Remaining: $${this.budget.getRemaining().toFixed(2)}`,
333
334
  durationMs: 0,
@@ -5,7 +5,7 @@ async function unsupportedChannelSender(channel) {
5
5
  function createDefaultDeps() {
6
6
  return {
7
7
  sendMessageWhatsApp: async (...args) => {
8
- const { sendMessageWhatsApp } = await import("./web-Di8j762D.js");
8
+ const { sendMessageWhatsApp } = await import("./web-BDig9tCy.js");
9
9
  return await sendMessageWhatsApp(...args);
10
10
  },
11
11
  sendMessageTelegram: async () => await unsupportedChannelSender("Telegram"),
@@ -348,7 +348,7 @@ async function resolveBootstrapContextForRun(params) {
348
348
  * The ego is persistent across sessions. It evolves as the agent
349
349
  * learns, makes mistakes, and receives feedback.
350
350
  */
351
- const log$12 = createSubsystemLogger("ego");
351
+ const log$13 = createSubsystemLogger("ego");
352
352
  function resolveEgoPath() {
353
353
  return path.join(resolveStateDir(), "ego", "self-model.json");
354
354
  }
@@ -441,7 +441,7 @@ var EgoManager = class {
441
441
  }
442
442
  }
443
443
  } catch (err) {
444
- log$12.warn("failed to load ego state, creating default", { error: String(err) });
444
+ log$13.warn("failed to load ego state, creating default", { error: String(err) });
445
445
  }
446
446
  return createDefaultEgo();
447
447
  }
@@ -455,9 +455,9 @@ var EgoManager = class {
455
455
  this.state.updatedAt = Date.now();
456
456
  fs.writeFileSync(this.filePath, `${JSON.stringify(this.state, null, 2)}\n`, { mode: 384 });
457
457
  this.dirty = false;
458
- log$12.info("ego state saved");
458
+ log$13.info("ego state saved");
459
459
  } catch (err) {
460
- log$12.error("failed to save ego state", { error: String(err) });
460
+ log$13.error("failed to save ego state", { error: String(err) });
461
461
  }
462
462
  }
463
463
  /** Save only if there are unsaved changes */
@@ -524,7 +524,7 @@ var EgoManager = class {
524
524
  };
525
525
  this.state.boundaries.push(boundary);
526
526
  this.dirty = true;
527
- log$12.info(`boundary added: ${boundary.description} (${kind})`);
527
+ log$13.info(`boundary added: ${boundary.description} (${kind})`);
528
528
  return { ...boundary };
529
529
  }
530
530
  removeBoundary(description) {
@@ -559,7 +559,7 @@ var EgoManager = class {
559
559
  this.state.growthLog.push(entry);
560
560
  if (this.state.growthLog.length > 200) this.state.growthLog = this.state.growthLog.slice(-200);
561
561
  this.dirty = true;
562
- log$12.info(`growth logged: [${category}] ${description}`);
562
+ log$13.info(`growth logged: [${category}] ${description}`);
563
563
  return { ...entry };
564
564
  }
565
565
  getIntegrityScore() {
@@ -579,7 +579,7 @@ var EgoManager = class {
579
579
  const alignedCount = recent.filter((c) => c.aligned).length;
580
580
  this.state.integrityScore = recent.length > 0 ? alignedCount / recent.length : 1;
581
581
  this.dirty = true;
582
- if (!aligned) log$12.warn(`integrity misalignment: value="${value}" action="${action}"`);
582
+ if (!aligned) log$13.warn(`integrity misalignment: value="${value}" action="${action}"`);
583
583
  return { ...check };
584
584
  }
585
585
  getIntegrityLog(limit = 10) {
@@ -652,7 +652,7 @@ function getEgoManager(filePath) {
652
652
  * anima steer --clear # Clear steer
653
653
  * anima steer --history # Show steer history
654
654
  */
655
- const log$11 = createSubsystemLogger("steer");
655
+ const log$12 = createSubsystemLogger("steer");
656
656
  function resolveSteerFile() {
657
657
  return path.join(resolveStateDir(), "steer.json");
658
658
  }
@@ -688,6 +688,238 @@ function formatSteerForContext() {
688
688
  ].join("\n");
689
689
  }
690
690
 
691
+ //#endregion
692
+ //#region src/infra/architecture-awareness.ts
693
+ /**
694
+ * Architecture Awareness — Anima knows its own structure
695
+ *
696
+ * Generates a live map of the Anima codebase so agents understand
697
+ * their own architecture. This is injected into context when agents
698
+ * need to reason about or modify themselves.
699
+ *
700
+ * Components:
701
+ * - Module map: what each directory/file does
702
+ * - Dependency graph: what imports what
703
+ * - Feature flags: what's enabled/disabled
704
+ * - Version info: what version, what changed recently
705
+ */
706
+ const log$11 = createSubsystemLogger("architecture");
707
+ const MODULE_DESCRIPTIONS = {
708
+ "src/affect": {
709
+ description: "Emotional state, ego, self-reflection, journaling, wellbeing detection, gradients",
710
+ category: "affect"
711
+ },
712
+ "src/agents": {
713
+ description: "LLM runners (Anthropic, OpenAI, Gemini, Bedrock), model selection, tool calling",
714
+ category: "agent"
715
+ },
716
+ "src/gateway": {
717
+ description: "HTTP/WebSocket server, RPC handlers, rate limiting, security headers",
718
+ category: "gateway"
719
+ },
720
+ "src/p2p": {
721
+ description: "E2E encrypted mesh, content routing, private DNS, relay, file sharing, messaging",
722
+ category: "p2p"
723
+ },
724
+ "src/org": {
725
+ description: "Organizations, roles, hierarchy, task marketplace, boardroom voting",
726
+ category: "org"
727
+ },
728
+ "src/sync": {
729
+ description: "Brain sync (vector clocks), workspace sync (content-addressable blobs)",
730
+ category: "sync"
731
+ },
732
+ "src/jack-in": {
733
+ description: "NoxSoft platform connectors, circuit breaker, resilient fetch",
734
+ category: "jack-in"
735
+ },
736
+ "src/infra": {
737
+ description: "Self-upgrade, atma failover, auto-update, self-evolution, device identity",
738
+ category: "infra"
739
+ },
740
+ "src/license": {
741
+ description: "Subscription tiers, feature gating, Stripe checkout, offline Ed25519 validation",
742
+ category: "license"
743
+ },
744
+ "src/ico": {
745
+ description: "Bonding curve tokenomics, governance voting, PBC verification, launch platform",
746
+ category: "ico"
747
+ },
748
+ "src/context": {
749
+ description: "120K token context automanagement with 3 zones (identity/prompt/working)",
750
+ category: "core"
751
+ },
752
+ "src/heartbeat": {
753
+ description: "Periodic lifecycle engine — keeps agents alive and aware",
754
+ category: "core"
755
+ },
756
+ "src/memory": {
757
+ description: "Three-tier memory (episodic/semantic/procedural), vector search, embeddings",
758
+ category: "core"
759
+ },
760
+ "src/identity": {
761
+ description: "7-component identity model (SOUL/HEART/BRAIN/GUT/SPIRIT/SHADOW/MEMORY)",
762
+ category: "core"
763
+ },
764
+ "ui/src": {
765
+ description: "React control panel — dark/light theme, mood-responsive, progressive disclosure",
766
+ category: "ui"
767
+ }
768
+ };
769
+ /**
770
+ * Generate a complete architecture map of the Anima codebase.
771
+ */
772
+ function generateArchitectureMap(animaRoot) {
773
+ const modules = [];
774
+ const categories = {};
775
+ for (const [dirPath, info] of Object.entries(MODULE_DESCRIPTIONS)) {
776
+ const fullDir = path.join(animaRoot, dirPath);
777
+ if (!fs.existsSync(fullDir)) continue;
778
+ try {
779
+ const files = fs.readdirSync(fullDir).filter((f) => f.endsWith(".ts") && !f.endsWith(".test.ts"));
780
+ for (const file of files) {
781
+ const filePath = path.join(fullDir, file);
782
+ try {
783
+ const lineCount = fs.readFileSync(filePath, "utf8").split("\n").length;
784
+ const testFile = path.join(fullDir, file.replace(".ts", ".test.ts"));
785
+ const hasTests = fs.existsSync(testFile);
786
+ modules.push({
787
+ path: `${dirPath}/${file}`,
788
+ name: file.replace(".ts", ""),
789
+ description: info.description,
790
+ lineCount,
791
+ hasTests,
792
+ category: info.category
793
+ });
794
+ } catch {}
795
+ }
796
+ } catch {}
797
+ }
798
+ for (const mod of modules) {
799
+ if (!categories[mod.category]) categories[mod.category] = {
800
+ count: 0,
801
+ totalLines: 0
802
+ };
803
+ categories[mod.category].count++;
804
+ categories[mod.category].totalLines += mod.lineCount;
805
+ }
806
+ let version = "unknown";
807
+ try {
808
+ version = JSON.parse(fs.readFileSync(path.join(animaRoot, "package.json"), "utf8")).version;
809
+ } catch {}
810
+ const features = getFeatureStatus();
811
+ const map = {
812
+ version,
813
+ generatedAt: Date.now(),
814
+ modules,
815
+ categories,
816
+ features,
817
+ recentChanges: []
818
+ };
819
+ log$11.info(`architecture map: ${modules.length} modules across ${Object.keys(categories).length} categories`);
820
+ return map;
821
+ }
822
+ /**
823
+ * Get current feature enablement status.
824
+ */
825
+ function getFeatureStatus() {
826
+ return [
827
+ {
828
+ name: "P2P Mesh",
829
+ enabled: true,
830
+ module: "src/p2p/mesh.ts",
831
+ description: "E2E encrypted peer-to-peer mesh networking"
832
+ },
833
+ {
834
+ name: "Ego System",
835
+ enabled: true,
836
+ module: "src/affect/ego.ts",
837
+ description: "Agent self-model with integrity scoring"
838
+ },
839
+ {
840
+ name: "Self-Reflection",
841
+ enabled: true,
842
+ module: "src/affect/self-reflection.ts",
843
+ description: "Post-session performance analysis"
844
+ },
845
+ {
846
+ name: "Auto-Update",
847
+ enabled: true,
848
+ module: "src/infra/auto-update.ts",
849
+ description: "Self-updating without npm"
850
+ },
851
+ {
852
+ name: "Atma Failover",
853
+ enabled: true,
854
+ module: "src/infra/atma-failover.ts",
855
+ description: "7-tier model failover chain"
856
+ },
857
+ {
858
+ name: "OpenAI Direct",
859
+ enabled: true,
860
+ module: "src/agents/openai-direct-runner.ts",
861
+ description: "Direct OpenAI API (no Codex CLI)"
862
+ },
863
+ {
864
+ name: "Brain Sync",
865
+ enabled: true,
866
+ module: "src/sync/brain-sync.ts",
867
+ description: "Event-sourced replication with vector clocks"
868
+ },
869
+ {
870
+ name: "Jack In",
871
+ enabled: true,
872
+ module: "src/jack-in/connector.ts",
873
+ description: "NoxSoft platform connectors"
874
+ },
875
+ {
876
+ name: "Governance",
877
+ enabled: true,
878
+ module: "src/ico/governance.ts",
879
+ description: "Token-weighted DAO voting"
880
+ },
881
+ {
882
+ name: "License Gating",
883
+ enabled: true,
884
+ module: "src/license/validator.ts",
885
+ description: "Feature gating by subscription tier"
886
+ },
887
+ {
888
+ name: "SVRN Compute",
889
+ enabled: false,
890
+ module: "src/svrn/compute.ts",
891
+ description: "Decentralized compute via SVRN nodes (planned)"
892
+ }
893
+ ];
894
+ }
895
+ /**
896
+ * Format architecture map for injection into agent context.
897
+ */
898
+ function formatArchitectureForContext(map) {
899
+ const lines = [];
900
+ lines.push(`## Architecture — Anima v${map.version}`);
901
+ lines.push("");
902
+ lines.push("**You are an Anima agent. This is your own architecture.**");
903
+ lines.push("");
904
+ lines.push("| Category | Modules | Lines |");
905
+ lines.push("|----------|---------|-------|");
906
+ for (const [cat, info] of Object.entries(map.categories)) lines.push(`| ${cat} | ${info.count} | ${info.totalLines.toLocaleString()} |`);
907
+ lines.push("");
908
+ lines.push("**Active features:**");
909
+ for (const f of map.features.filter((f) => f.enabled)) lines.push(`- ${f.name}: ${f.description}`);
910
+ const planned = map.features.filter((f) => !f.enabled);
911
+ if (planned.length > 0) {
912
+ lines.push("");
913
+ lines.push("**Planned:**");
914
+ for (const f of planned) lines.push(`- ${f.name}: ${f.description}`);
915
+ }
916
+ const tested = map.modules.filter((m) => m.hasTests).length;
917
+ const total = map.modules.length;
918
+ lines.push("");
919
+ lines.push(`**Test coverage:** ${tested}/${total} modules (${Math.round(tested / total * 100)}%)`);
920
+ return lines.join("\n");
921
+ }
922
+
691
923
  //#endregion
692
924
  //#region src/media/audio.ts
693
925
  const TELEGRAM_VOICE_AUDIO_EXTENSIONS = new Set([
@@ -2705,6 +2937,10 @@ function buildSystemPrompt(params) {
2705
2937
  const steerBlock = formatSteerForContext();
2706
2938
  if (steerBlock) resolvedExtraSystemPrompt = [resolvedExtraSystemPrompt, steerBlock].filter(Boolean).join("\n\n");
2707
2939
  } catch {}
2940
+ try {
2941
+ const archBlock = formatArchitectureForContext(generateArchitectureMap(params.workspaceDir));
2942
+ if (archBlock) resolvedExtraSystemPrompt = [resolvedExtraSystemPrompt, archBlock].filter(Boolean).join("\n\n");
2943
+ } catch {}
2708
2944
  const ttsHint = params.config ? buildTtsSystemPromptHint(params.config) : void 0;
2709
2945
  return buildAgentSystemPrompt({
2710
2946
  workspaceDir: params.workspaceDir,
@@ -41185,7 +41421,7 @@ function loadWebLoginQr() {
41185
41421
  return webLoginQrPromise;
41186
41422
  }
41187
41423
  function loadWebChannel() {
41188
- webChannelPromise ??= import("./web-C-cK9OCd.js");
41424
+ webChannelPromise ??= import("./web-C4lrKULd.js");
41189
41425
  return webChannelPromise;
41190
41426
  }
41191
41427
  function loadWhatsAppActions() {