@askexenow/exe-os 0.9.255 → 0.9.259

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 (272) hide show
  1. package/deploy/compose/.env.customer.example +13 -13
  2. package/deploy/compose/.env.example +8 -8
  3. package/deploy/compose/docker-compose.yml +18 -18
  4. package/deploy/compose/generate-env.ts +22 -18
  5. package/deploy/compose/init-db.sql +221 -20
  6. package/deploy/stack-manifests/v0.9.json +1207 -1136
  7. package/dist/{active-agent-DTZ6VJIR.js → active-agent-IGZXTTV4.js} +3 -3
  8. package/dist/{active-agent-7QNK5CJZ.js → active-agent-OYUXMTHS.js} +3 -3
  9. package/dist/{agentic-ontology-UZK33N6I.js → agentic-ontology-5WT23SLZ.js} +1 -1
  10. package/dist/{backfill-metadata-R7PNZ5TX.js → backfill-metadata-EG52U3GF.js} +4 -4
  11. package/dist/{behaviors-G6QHSQBN.js → behaviors-2TZCFJLU.js} +3 -3
  12. package/dist/bin/age-ontology-load.js +2 -2
  13. package/dist/bin/agentic-ontology-backfill.js +5 -5
  14. package/dist/bin/agentic-reflection-backfill.js +6 -6
  15. package/dist/bin/agentic-semantic-label.js +5 -5
  16. package/dist/bin/backfill-conversations.js +6 -5
  17. package/dist/bin/backfill-responses.js +6 -5
  18. package/dist/bin/backfill-vectors.js +7 -6
  19. package/dist/bin/bulk-sync-postgres.js +6 -6
  20. package/dist/bin/cleanup-stale-review-tasks.js +9 -9
  21. package/dist/bin/cli.js +17 -17
  22. package/dist/bin/deferred-daemon-restart.js +4 -1
  23. package/dist/bin/exe-agent-config.js +2 -2
  24. package/dist/bin/exe-agent.js +4 -4
  25. package/dist/bin/exe-assign.js +8 -7
  26. package/dist/bin/exe-boot.js +16 -16
  27. package/dist/bin/exe-call.js +4 -4
  28. package/dist/bin/exe-cloud.js +4 -4
  29. package/dist/bin/exe-dispatch.js +9 -9
  30. package/dist/bin/exe-doctor.js +1 -1
  31. package/dist/bin/exe-export-behaviors.js +7 -7
  32. package/dist/bin/exe-forget.js +6 -6
  33. package/dist/bin/exe-gateway.js +9 -9
  34. package/dist/bin/exe-heartbeat.js +9 -9
  35. package/dist/bin/exe-kill.js +12 -12
  36. package/dist/bin/exe-launch-agent.js +16 -16
  37. package/dist/bin/exe-new-employee.js +6 -6
  38. package/dist/bin/exe-pending-messages.js +11 -10
  39. package/dist/bin/exe-pending-notifications.js +9 -9
  40. package/dist/bin/exe-pending-reviews.js +11 -9
  41. package/dist/bin/exe-rename.js +4 -4
  42. package/dist/bin/exe-review.js +11 -11
  43. package/dist/bin/exe-search.js +5 -5
  44. package/dist/bin/exe-session-cleanup.js +14 -14
  45. package/dist/bin/exe-settings.js +4 -4
  46. package/dist/bin/exe-start-codex.js +11 -11
  47. package/dist/bin/exe-start-opencode.js +8 -8
  48. package/dist/bin/exe-status.js +10 -10
  49. package/dist/bin/exe-support.js +3 -1
  50. package/dist/bin/exe-team.js +3 -3
  51. package/dist/bin/git-sweep.js +71 -11
  52. package/dist/bin/graph-backfill.js +4 -4
  53. package/dist/bin/graph-export.js +5 -5
  54. package/dist/bin/graph-layer-benchmark.js +7 -7
  55. package/dist/bin/import-history.js +7 -7
  56. package/dist/bin/install.js +12 -9
  57. package/dist/bin/intercom-check.js +4 -4
  58. package/dist/bin/mcp-sessions.js +2 -2
  59. package/dist/bin/orchestration-metrics.js +4 -4
  60. package/dist/bin/postgres-agentic-reflection-backfill.js +7 -7
  61. package/dist/bin/postgres-agentic-semantic-backfill.js +7 -7
  62. package/dist/bin/scan-tasks.js +9 -9
  63. package/dist/bin/setup.js +1 -1
  64. package/dist/bin/shard-migrate.js +4 -4
  65. package/dist/bin/stack-update.js +20 -3
  66. package/dist/bin/vps-health-gate.js +1 -1
  67. package/dist/{capacity-monitor-QMKII67L.js → capacity-monitor-CTFWWTCR.js} +10 -10
  68. package/dist/{catchup-brief-CNISNLV7.js → catchup-brief-UML47LXI.js} +11 -11
  69. package/dist/{chunk-QP4FHME2.js → chunk-235ZCOYB.js} +18 -6
  70. package/dist/{chunk-2NEQQCRC.js → chunk-25JAXHON.js} +1 -1
  71. package/dist/{chunk-MU6ESLYL.js → chunk-2PFNATXD.js} +1 -1
  72. package/dist/chunk-2XZ6X3PJ.js +13 -0
  73. package/dist/chunk-3XX3CDKF.js +9 -0
  74. package/dist/{chunk-ZTB6E2ZL.js → chunk-4FGTT26Q.js} +1 -1
  75. package/dist/{chunk-YYSQAM4W.js → chunk-4TYAHVDI.js} +8 -8
  76. package/dist/{chunk-2QKNXGII.js → chunk-4VECWOUO.js} +2 -2
  77. package/dist/{chunk-YXMXP45V.js → chunk-57C3MZPQ.js} +2 -2
  78. package/dist/{chunk-FTNNNAMH.js → chunk-5JYCTIQD.js} +1 -1
  79. package/dist/{chunk-CS267UMH.js → chunk-5LDTCWYX.js} +79 -19
  80. package/dist/{chunk-FQVITYVF.js → chunk-6D2IZ5MB.js} +2 -2
  81. package/dist/{chunk-ZG3HADWE.js → chunk-7UJRF4WF.js} +1 -1
  82. package/dist/{chunk-JFVITKXI.js → chunk-A2UPDE3J.js} +1 -1
  83. package/dist/{chunk-KOCQAMAM.js → chunk-ANYOAZCZ.js} +238 -5
  84. package/dist/{chunk-PSQNT5DS.js → chunk-AQS2B3HC.js} +8 -8
  85. package/dist/{chunk-ABNALOLM.js → chunk-BGEXTWGR.js} +3 -3
  86. package/dist/{chunk-LPK5JPME.js → chunk-BPZL5YOM.js} +1 -1
  87. package/dist/{chunk-RLDOG7DI.js → chunk-C6SSCNOC.js} +2516 -2289
  88. package/dist/{chunk-JGEGEOVP.js → chunk-COKTAJUZ.js} +1 -1
  89. package/dist/{chunk-MRZE5IOP.js → chunk-CXOX7TRG.js} +1 -1
  90. package/dist/{chunk-6LFFIEDM.js → chunk-DU64OESH.js} +1 -1
  91. package/dist/{chunk-LYIUESG2.js → chunk-DYURFBPS.js} +10 -10
  92. package/dist/{chunk-X3SS45PO.js → chunk-FPXZY3FY.js} +1 -1
  93. package/dist/{chunk-TVTRMINO.js → chunk-FUGZF7VR.js} +1 -1
  94. package/dist/{chunk-O7SFCX5B.js → chunk-GB4FI66P.js} +2 -2
  95. package/dist/{chunk-VGWQBI76.js → chunk-GBR4MAAK.js} +1 -1
  96. package/dist/chunk-GH4LVBQM.js +371 -0
  97. package/dist/{chunk-AIXZ5O7U.js → chunk-GIHMDOSK.js} +1 -1
  98. package/dist/{chunk-RDCE652I.js → chunk-HDWVXSGO.js} +1 -1
  99. package/dist/{chunk-RF54NGPJ.js → chunk-IJ7R3MXE.js} +3 -5
  100. package/dist/{chunk-R7FBOZT5.js → chunk-ISL3NSVX.js} +1 -1
  101. package/dist/{chunk-5B2AEXVA.js → chunk-IVSRRIRG.js} +1 -1
  102. package/dist/{chunk-SD2R3SEA.js → chunk-J3YNCJ4A.js} +1 -1
  103. package/dist/{chunk-5IZYSS3M.js → chunk-JE4C74EE.js} +4 -4
  104. package/dist/{chunk-VRVHIVUE.js → chunk-KSR2PNRW.js} +2 -2
  105. package/dist/{chunk-LL2ARYTZ.js → chunk-L3PY4NFQ.js} +1 -1
  106. package/dist/{chunk-VFATLVRX.js → chunk-L5VPUOB6.js} +1 -1
  107. package/dist/{chunk-3VLFVOM7.js → chunk-LRKJGSNH.js} +2 -2
  108. package/dist/{chunk-4FT3SQAS.js → chunk-LVY74L2J.js} +2 -2
  109. package/dist/{chunk-X4T7LR2X.js → chunk-M7PZFYHE.js} +2 -2
  110. package/dist/{chunk-CIX64N7D.js → chunk-MGTVPIEZ.js} +1 -1
  111. package/dist/{chunk-MXCBORCC.js → chunk-MKTEGZ37.js} +3 -3
  112. package/dist/chunk-MMRUBN3I.js +36 -0
  113. package/dist/{chunk-4MONXPWR.js → chunk-MPXLF7TA.js} +1 -1
  114. package/dist/{chunk-6QMXKKFD.js → chunk-N27CTUFU.js} +1 -1
  115. package/dist/{chunk-YDHPC4PX.js → chunk-N4ES27RI.js} +3 -3
  116. package/dist/{chunk-WIRJ574R.js → chunk-NGQQRGLP.js} +2 -2
  117. package/dist/{chunk-AQOCHSIR.js → chunk-OCJ5GZKV.js} +4 -4
  118. package/dist/{chunk-O477L4LV.js → chunk-OSPS5N2I.js} +1 -1
  119. package/dist/{chunk-5WEH43HH.js → chunk-PQHA6X6Y.js} +1 -1
  120. package/dist/{chunk-DJYIBHN5.js → chunk-PQQTSNXS.js} +3 -3
  121. package/dist/{chunk-LGFB67MY.js → chunk-Q3GLQDZI.js} +1 -1
  122. package/dist/{chunk-7GR7VBBW.js → chunk-QUC27OCW.js} +1 -1
  123. package/dist/{chunk-5NBOFYJG.js → chunk-QYNFWFFH.js} +4 -4
  124. package/dist/{chunk-X7I6NLIA.js → chunk-T2EUNNUX.js} +5 -5
  125. package/dist/{chunk-VRWOLLKN.js → chunk-T4NFOOPB.js} +2 -2
  126. package/dist/{chunk-2YJSDJEH.js → chunk-TZPHTI5Q.js} +1 -1
  127. package/dist/{chunk-CQSFIQGN.js → chunk-UOZ5KUNN.js} +1 -1
  128. package/dist/{chunk-5R4R743Q.js → chunk-V2UVWYHO.js} +17 -15
  129. package/dist/{chunk-VKCZ3OGM.js → chunk-VD676VIC.js} +4 -4
  130. package/dist/{chunk-USLVSLQ5.js → chunk-VDCPKJUQ.js} +1 -1
  131. package/dist/{chunk-Y7NMPQXZ.js → chunk-VLX6AHTD.js} +8 -8
  132. package/dist/{chunk-ITPIBVSG.js → chunk-WMZTSHNX.js} +83 -1
  133. package/dist/{chunk-5U7WB4YG.js → chunk-WVBZ3QBR.js} +2 -2
  134. package/dist/{chunk-3EMZZZNU.js → chunk-X2RKYKTP.js} +1 -1
  135. package/dist/{chunk-XTIHYH64.js → chunk-YY2BCIAP.js} +2 -2
  136. package/dist/{chunk-Z6GHDYQI.js → chunk-Z2AEOVEZ.js} +30 -6
  137. package/dist/{chunk-PHTRZQR4.js → chunk-ZBDAFYDD.js} +4 -4
  138. package/dist/{chunk-E4CCKWZN.js → chunk-ZKFTDL4M.js} +1 -1
  139. package/dist/{co-activation-AIVMI5U2.js → co-activation-UNVL5JCP.js} +2 -2
  140. package/dist/{co-occurrence-L6QOQTJB.js → co-occurrence-ETAVWYVE.js} +2 -2
  141. package/dist/{code-context-index-DYHYVJHX.js → code-context-index-DCQYAYA2.js} +3 -2
  142. package/dist/{crdt-sync-YBMDPFNT.js → crdt-sync-AH7N6QOE.js} +1 -1
  143. package/dist/{crm-webhook-QO3ZESKR.js → crm-webhook-R6546T3Y.js} +2 -2
  144. package/dist/{cto-delegation-gate-UFPVFLIW.js → cto-delegation-gate-VB4TMZ3I.js} +8 -8
  145. package/dist/{daemon-orchestration-6XAISQ7B.js → daemon-orchestration-YAJKIL6Q.js} +12 -12
  146. package/dist/{db-backup-7UMCTS44.js → db-backup-2RG6VHT7.js} +11 -3
  147. package/dist/{dreaming-FJ75QVGZ.js → dreaming-WMBTSXGD.js} +9 -9
  148. package/dist/{exe-drift-OH3WV2ZQ.js → exe-drift-MQZGYHEN.js} +3 -3
  149. package/dist/{exe-export-UYKYNVBU.js → exe-export-E4BDIHOC.js} +5 -5
  150. package/dist/{exe-import-Q4FNSMLJ.js → exe-import-IWAD4HN6.js} +5 -5
  151. package/dist/{exe-key-22LOIIUX.js → exe-key-L2RV7XJX.js} +2 -2
  152. package/dist/{exe-snapshot-J7CL6QEL.js → exe-snapshot-IOGN4ARV.js} +12 -12
  153. package/dist/{fast-db-init-QXGL2PKQ.js → fast-db-init-GCY3F74H.js} +1 -1
  154. package/dist/gateway/index.js +8 -8
  155. package/dist/{git-staleness-YVWDCFIE.js → git-staleness-BQIFNZIU.js} +2 -2
  156. package/dist/{git-task-sweep-RRCOTTIS.js → git-task-sweep-GSKS6WKR.js} +9 -9
  157. package/dist/{global-procedures-FCGWAFES.js → global-procedures-3DJUA5OX.js} +3 -3
  158. package/dist/{graph-auto-extract-RUQC5IIS.js → graph-auto-extract-2I44WRDY.js} +2 -2
  159. package/dist/hooks/bug-report-worker.js +11 -11
  160. package/dist/hooks/codex-stop-task-finalizer.js +11 -11
  161. package/dist/hooks/commit-complete.js +11 -11
  162. package/dist/hooks/error-recall.js +6 -6
  163. package/dist/hooks/exe-heartbeat-hook.js +3 -3
  164. package/dist/hooks/ingest-worker.js +3 -2
  165. package/dist/hooks/ingest.js +6 -6
  166. package/dist/hooks/instructions-loaded.js +4 -4
  167. package/dist/hooks/manifest.json +20 -20
  168. package/dist/hooks/notification.js +4 -4
  169. package/dist/hooks/post-compact.js +10 -10
  170. package/dist/hooks/post-tool-combined.js +6 -6
  171. package/dist/hooks/pre-compact.js +14 -13
  172. package/dist/hooks/pre-tool-use.js +14 -14
  173. package/dist/hooks/prompt-submit.js +22 -22
  174. package/dist/hooks/session-end.js +19 -18
  175. package/dist/hooks/session-start.js +11 -11
  176. package/dist/hooks/stop.js +70 -17
  177. package/dist/hooks/subagent-stop.js +10 -10
  178. package/dist/hooks/summary-worker.js +17 -16
  179. package/dist/index.js +17 -17
  180. package/dist/{installer-7SMJC3SX.js → installer-6MQCAHUG.js} +5 -5
  181. package/dist/{installer-GFZVC43I.js → installer-TCMPFSSP.js} +5 -5
  182. package/dist/{installer-34DCTB5B.js → installer-ZY2BKTEO.js} +5 -5
  183. package/dist/lib/cloud-sync.js +4 -4
  184. package/dist/lib/consolidation.js +5 -5
  185. package/dist/lib/database.js +2 -2
  186. package/dist/lib/db-daemon-client.js +58 -13
  187. package/dist/lib/db.js +2 -2
  188. package/dist/lib/embedder.js +3 -2
  189. package/dist/lib/employee-templates.js +4 -4
  190. package/dist/lib/employees.js +2 -2
  191. package/dist/lib/exe-daemon-client.js +2 -1
  192. package/dist/lib/exe-daemon.js +255 -104
  193. package/dist/lib/hybrid-search.js +5 -5
  194. package/dist/lib/identity.js +2 -2
  195. package/dist/lib/messaging.js +9 -9
  196. package/dist/lib/reminders.js +3 -3
  197. package/dist/lib/schedules.js +5 -5
  198. package/dist/lib/session-registry.js +4 -4
  199. package/dist/lib/skill-learning.js +4 -4
  200. package/dist/lib/store.js +4 -4
  201. package/dist/lib/task-router.js +3 -3
  202. package/dist/lib/tasks.js +10 -10
  203. package/dist/lib/tmux-routing.js +8 -8
  204. package/dist/lib/token-spend.js +3 -3
  205. package/dist/mcp/register-tools.js +59 -56
  206. package/dist/mcp/server.js +60 -57
  207. package/dist/mcp/tools/complete-reminder.js +4 -4
  208. package/dist/mcp/tools/create-reminder.js +4 -4
  209. package/dist/mcp/tools/create-task.js +12 -12
  210. package/dist/mcp/tools/deactivate-behavior.js +5 -5
  211. package/dist/mcp/tools/list-reminders.js +4 -4
  212. package/dist/mcp/tools/list-tasks.js +12 -12
  213. package/dist/mcp/tools/send-message.js +11 -11
  214. package/dist/mcp/tools/update-task.js +11 -11
  215. package/dist/{mcp-http-config-MZMHKMJC.js → mcp-http-config-VUDZ3D5D.js} +3 -3
  216. package/dist/{memory-cards-3SFXU6IP.js → memory-cards-ZOOPC2WF.js} +2 -2
  217. package/dist/{memory-graph-extractor-T57YQQCW.js → memory-graph-extractor-RRQMUBMI.js} +3 -3
  218. package/dist/{memory-poisoning-defense-O53AHMTZ.js → memory-poisoning-defense-UQMNLG6H.js} +2 -2
  219. package/dist/{memory-queue-client-ITWQIFSD.js → memory-queue-client-TPQDAA4D.js} +3 -2
  220. package/dist/{memory-reflection-YPP2JC2S.js → memory-reflection-GSGXAGXV.js} +2 -2
  221. package/dist/{notifications-BETWD6EK.js → notifications-ZKGLZVCU.js} +8 -8
  222. package/dist/{orchestration-events-A5D52NXX.js → orchestration-events-7RMWC5SS.js} +3 -3
  223. package/dist/{orchestrator-X564XCWC.js → orchestrator-A6MX2OHA.js} +10 -10
  224. package/dist/{pipeline-router-RVHLL7UA.js → pipeline-router-6ZBYJD2U.js} +3 -3
  225. package/dist/{plan-limits-ANAVC6PM.js → plan-limits-4XH4A7IA.js} +3 -3
  226. package/dist/{project-boot-ENMCAL7G.js → project-boot-7ZEIDWUG.js} +3 -2
  227. package/dist/{projection-worker-O3HBG5QK.js → projection-worker-YKKBNQZT.js} +130 -51
  228. package/dist/{reranker-SRJL4IWB.js → reranker-DN2A3H6O.js} +1 -1
  229. package/dist/{review-polling-5JTTHHEO.js → review-polling-PK3CY4NI.js} +9 -9
  230. package/dist/runtime/index.js +11 -11
  231. package/dist/{session-events-RCSYHQQ2.js → session-events-IYU6FYHH.js} +9 -9
  232. package/dist/{session-kill-telemetry-AL3H4ELS.js → session-kill-telemetry-G2VV4CAH.js} +3 -3
  233. package/dist/{session-scope-ZB4SR3AX.js → session-scope-DHTVH3D4.js} +8 -8
  234. package/dist/{setup-wizard-HXTADFXI.js → setup-wizard-IA5ISHQ2.js} +1 -1
  235. package/dist/{skill-refinement-TT4VDYYW.js → skill-refinement-6PBAFLWP.js} +2 -2
  236. package/dist/{stack-release-7WDKQOCO.js → stack-release-NW7MV3WV.js} +41 -11
  237. package/dist/{stack-update-F4CQWMGV.js → stack-update-5SM62R3O.js} +3 -1
  238. package/dist/{steward-gate-HSV67KLF.js → steward-gate-EQV6CZKY.js} +3 -3
  239. package/dist/support-outbox-SZVLHHZG.js +295 -0
  240. package/dist/{task-enforcement-A6AZTYAN.js → task-enforcement-2LS5DOXK.js} +8 -8
  241. package/dist/{task-scope-XKNAY5S7.js → task-scope-AKF3CSWO.js} +8 -8
  242. package/dist/{tasks-crud-F732BVOE.js → tasks-crud-KOIA5SAH.js} +8 -8
  243. package/dist/{tasks-notify-LJ65U7DF.js → tasks-notify-7ZTE4ZQM.js} +9 -9
  244. package/dist/{tasks-review-Y5F4HRAR.js → tasks-review-VMMMAK2Y.js} +8 -8
  245. package/dist/{telemetry-upload-HVYO6FL3.js → telemetry-upload-YLW4NAUF.js} +15 -8
  246. package/dist/{token-budget-VODGJYKX.js → token-budget-NA4OLFNP.js} +2 -2
  247. package/dist/{tool-capability-index-PZWWVABO.js → tool-capability-index-C73KVY5O.js} +1 -1
  248. package/dist/{tool-telemetry-5BSTF3P6.js → tool-telemetry-OVI5KL4S.js} +1 -1
  249. package/dist/tui/App.js +16 -16
  250. package/dist/{tui-data-EHJWRNRZ.js → tui-data-5NT24CC5.js} +8 -8
  251. package/dist/{worker-gate-4AS4K7G4.js → worker-gate-AQLJUQ5G.js} +1 -1
  252. package/dist/{workflow-engine-BXGNFNUW.js → workflow-engine-TRGGUNIZ.js} +2 -2
  253. package/dist/{worktree-3N5BPITS.js → worktree-NK7GZNEA.js} +4 -4
  254. package/dist/worktree-sweep-5XVZCH6A.js +18 -0
  255. package/package.json +3 -2
  256. package/release-notes.json +32 -33
  257. package/stack.release.json +48 -48
  258. package/dist/prediction-log-DOEOHDHS.js +0 -120
  259. package/dist/support-outbox-KEJ73I3F.js +0 -206
  260. /package/dist/{chunk-AWVDA2FL.js → chunk-2H3FVAN3.js} +0 -0
  261. /package/dist/{chunk-VPHOOQLR.js → chunk-3GHTBVZO.js} +0 -0
  262. /package/dist/{chunk-CCPCIW4Z.js → chunk-BBPRL2MP.js} +0 -0
  263. /package/dist/{chunk-X2E6W3DB.js → chunk-BRSI3FD6.js} +0 -0
  264. /package/dist/{chunk-Y2FVN7CX.js → chunk-EYLQRPHF.js} +0 -0
  265. /package/dist/{chunk-4S5TEBXD.js → chunk-H6QJT5O5.js} +0 -0
  266. /package/dist/{chunk-FCII2MMI.js → chunk-J5CAYOJU.js} +0 -0
  267. /package/dist/{chunk-LY2DYTDL.js → chunk-RFJESVEL.js} +0 -0
  268. /package/dist/{chunk-GBHQ5TXO.js → chunk-UOOCGJUE.js} +0 -0
  269. /package/dist/{core-memory-WFP2L52F.js → core-memory-VZFTGOFE.js} +0 -0
  270. /package/dist/{entity-boost-RTYXAOWV.js → entity-boost-OAB2PZQP.js} +0 -0
  271. /package/dist/{message-queue-client-2CACBUA4.js → message-queue-client-YTKTHAYO.js} +0 -0
  272. /package/dist/{wiki-acl-MS7QLQCR.js → wiki-acl-UCPOROPR.js} +0 -0
@@ -6,21 +6,24 @@ import {
6
6
  setupGhostty,
7
7
  setupTmux,
8
8
  setupWezterm
9
- } from "../chunk-VRWOLLKN.js";
9
+ } from "../chunk-T4NFOOPB.js";
10
10
  import "../chunk-GNHN5HRQ.js";
11
- import "../chunk-MRZE5IOP.js";
11
+ import "../chunk-CXOX7TRG.js";
12
12
  import {
13
13
  generateSessionWrappers
14
14
  } from "../chunk-GBCZXOWU.js";
15
15
  import "../chunk-L3TB7CC3.js";
16
+ import {
17
+ computeDaemonHeapCapMb
18
+ } from "../chunk-3XX3CDKF.js";
16
19
  import {
17
20
  requestDeployRestart,
18
21
  updateMcpVersionMarker
19
22
  } from "../chunk-PWMMIGVQ.js";
20
- import "../chunk-R7FBOZT5.js";
23
+ import "../chunk-ISL3NSVX.js";
21
24
  import "../chunk-HYZV25LY.js";
22
- import "../chunk-5U7WB4YG.js";
23
- import "../chunk-ITPIBVSG.js";
25
+ import "../chunk-WVBZ3QBR.js";
26
+ import "../chunk-WMZTSHNX.js";
24
27
  import "../chunk-FXU7JOXK.js";
25
28
  import "../chunk-VXIMSRTO.js";
26
29
  import "../chunk-LYH5HE24.js";
@@ -49,7 +52,7 @@ async function spawnDaemonInline(pkgRoot) {
49
52
  stderrFd = openSync(logPath, "a");
50
53
  } catch {
51
54
  }
52
- const heapCapMB = Math.max(2048, Math.round(totalGB * 0.33 * 1024));
55
+ const heapCapMB = computeDaemonHeapCapMb(totalGB);
53
56
  const child = spawn(process.execPath, [`--max-old-space-size=${heapCapMB}`, daemonPath], {
54
57
  detached: true,
55
58
  stdio: ["ignore", "ignore", stderrFd],
@@ -117,7 +120,7 @@ function setupDaemonKeepalive() {
117
120
  const daemonPath = path.join(pkgRoot, "dist", "lib", "exe-daemon.js");
118
121
  const nodePath = process.execPath;
119
122
  const home = os.homedir();
120
- const heapCapMB = totalGB <= 8 ? 256 : totalGB <= 16 ? 2048 : Math.min(Math.round(totalGB * 0.25 * 1024), 6144);
123
+ const heapCapMB = computeDaemonHeapCapMb(totalGB);
121
124
  const plistContent = `<?xml version="1.0" encoding="UTF-8"?>
122
125
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
123
126
  <plist version="1.0">
@@ -243,7 +246,7 @@ function setupLinuxSystemdService() {
243
246
  const nodePath = process.execPath;
244
247
  const home = os.homedir();
245
248
  const totalGB = os.totalmem() / (1024 * 1024 * 1024);
246
- const heapCapMB = totalGB <= 8 ? 256 : totalGB <= 16 ? 2048 : Math.min(Math.round(totalGB * 0.25 * 1024), 6144);
249
+ const heapCapMB = computeDaemonHeapCapMb(totalGB);
247
250
  const serviceDir = path.join(home, ".config", "systemd", "user");
248
251
  const servicePath = path.join(serviceDir, "exe-os.service");
249
252
  const serviceContent = `[Unit]
@@ -393,7 +396,7 @@ if (args.includes("--commands-only")) {
393
396
  }
394
397
  try {
395
398
  execSync("which codex", { encoding: "utf8", timeout: 5e3 });
396
- const { runCodexInstaller } = await import("../installer-GFZVC43I.js");
399
+ const { runCodexInstaller } = await import("../installer-TCMPFSSP.js");
397
400
  await runCodexInstaller();
398
401
  } catch {
399
402
  }
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  fastDbInit
4
- } from "../chunk-LY2DYTDL.js";
4
+ } from "../chunk-RFJESVEL.js";
5
5
  import "../chunk-MLKGABMK.js";
6
6
 
7
7
  // src/bin/intercom-check.ts
@@ -17,7 +17,7 @@ async function main() {
17
17
  }
18
18
  if (isCoordinator) {
19
19
  try {
20
- const { listPendingReviews, cleanupOrphanedReviews, formatAge, isStale } = await import("../tasks-review-Y5F4HRAR.js");
20
+ const { listPendingReviews, cleanupOrphanedReviews, formatAge, isStale } = await import("../tasks-review-VMMMAK2Y.js");
21
21
  const { extractRootExe } = await import("../lib/tmux-routing.js");
22
22
  let sessionScope = process.env.EXE_SESSION ? extractRootExe(process.env.EXE_SESSION) ?? void 0 : void 0;
23
23
  if (!sessionScope) {
@@ -94,7 +94,7 @@ async function main() {
94
94
  }
95
95
  if (!isCoordinator) {
96
96
  try {
97
- const { listBehaviors } = await import("../behaviors-G6QHSQBN.js");
97
+ const { listBehaviors } = await import("../behaviors-2TZCFJLU.js");
98
98
  const sessionStart = process.env.EXE_SESSION_START_ISO ?? "";
99
99
  if (sessionStart) {
100
100
  const behaviors = await listBehaviors(agent);
@@ -113,7 +113,7 @@ async function main() {
113
113
  }
114
114
  }
115
115
  try {
116
- const { readUnreadNotifications, markAsRead } = await import("../notifications-BETWD6EK.js");
116
+ const { readUnreadNotifications, markAsRead } = await import("../notifications-ZKGLZVCU.js");
117
117
  const { resolveExeSession } = await import("../lib/tmux-routing.js");
118
118
  const sessionScope = resolveExeSession();
119
119
  const notifications = await readUnreadNotifications(agent, sessionScope);
@@ -45,10 +45,10 @@ async function collectSessions() {
45
45
  const registryMap = new Map(registry.map((r) => [r.windowName, r]));
46
46
  const taskMap = /* @__PURE__ */ new Map();
47
47
  try {
48
- const { fastDbInit } = await import("../fast-db-init-QXGL2PKQ.js");
48
+ const { fastDbInit } = await import("../fast-db-init-GCY3F74H.js");
49
49
  await fastDbInit();
50
50
  const { getClient } = await import("../lib/database.js");
51
- const { sessionScopeFilter } = await import("../task-scope-XKNAY5S7.js");
51
+ const { sessionScopeFilter } = await import("../task-scope-AKF3CSWO.js");
52
52
  const client = getClient();
53
53
  const scope = sessionScopeFilter();
54
54
  const result = await client.execute({
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  fastDbInit
4
- } from "../chunk-LY2DYTDL.js";
4
+ } from "../chunk-RFJESVEL.js";
5
5
  import {
6
6
  formatOrchestrationMetrics,
7
7
  getOrchestrationMetrics
8
- } from "../chunk-USLVSLQ5.js";
9
- import "../chunk-5U7WB4YG.js";
10
- import "../chunk-ITPIBVSG.js";
8
+ } from "../chunk-VDCPKJUQ.js";
9
+ import "../chunk-WVBZ3QBR.js";
10
+ import "../chunk-WMZTSHNX.js";
11
11
  import "../chunk-FXU7JOXK.js";
12
12
  import "../chunk-VXIMSRTO.js";
13
13
  import "../chunk-LYH5HE24.js";
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  buildReflectionCheckpoint
4
- } from "../chunk-5B2AEXVA.js";
5
- import "../chunk-Y2FVN7CX.js";
4
+ } from "../chunk-IVSRRIRG.js";
5
+ import "../chunk-EYLQRPHF.js";
6
6
  import {
7
7
  pgSslConfig
8
8
  } from "../chunk-EQSQ4HBW.js";
@@ -21,7 +21,7 @@ function arg(name) {
21
21
  return i >= 0 ? process.argv[i + 1] : void 0;
22
22
  }
23
23
  async function ensureSchema(client) {
24
- await client.query(`CREATE TABLE IF NOT EXISTS memory.agent_reflection_checkpoints (
24
+ await client.query(`CREATE TABLE IF NOT EXISTS graph.agent_reflection_checkpoints (
25
25
  id text PRIMARY KEY,
26
26
  project_name text,
27
27
  session_id text,
@@ -39,8 +39,8 @@ async function ensureSchema(client) {
39
39
  confidence double precision NOT NULL DEFAULT 0,
40
40
  created_at timestamp(3) NOT NULL
41
41
  )`);
42
- await client.query(`CREATE INDEX IF NOT EXISTS idx_agent_reflection_project_time ON memory.agent_reflection_checkpoints (project_name, window_end_at)`);
43
- await client.query(`CREATE INDEX IF NOT EXISTS idx_agent_reflection_session_time ON memory.agent_reflection_checkpoints (session_id, window_end_at)`);
42
+ await client.query(`CREATE INDEX IF NOT EXISTS idx_agent_reflection_project_time ON graph.agent_reflection_checkpoints (project_name, window_end_at)`);
43
+ await client.query(`CREATE INDEX IF NOT EXISTS idx_agent_reflection_session_time ON graph.agent_reflection_checkpoints (session_id, window_end_at)`);
44
44
  }
45
45
  async function main() {
46
46
  const job = startManagedJob({ type: "postgres-agentic-reflection-backfill", name: "Postgres reflection checkpoint backfill", lowPriority: true });
@@ -62,7 +62,7 @@ async function main() {
62
62
  const params = project ? [limit, project] : [limit];
63
63
  const result = await client.query(`SELECT id, event_type, occurred_at::text, actor_agent_id, project_name, session_id,
64
64
  intention, outcome, impact, evidence_memory_id, payload::text
65
- FROM memory.agent_events ${where}
65
+ FROM graph.agent_events ${where}
66
66
  ORDER BY project_name, session_id, occurred_at, sequence_index
67
67
  LIMIT $1`, params);
68
68
  const groups = /* @__PURE__ */ new Map();
@@ -79,7 +79,7 @@ async function main() {
79
79
  if (window.length < minEvents) continue;
80
80
  const checkpoint = buildReflectionCheckpoint(window);
81
81
  if (!checkpoint) continue;
82
- await client.query(`INSERT INTO memory.agent_reflection_checkpoints
82
+ await client.query(`INSERT INTO graph.agent_reflection_checkpoints
83
83
  (id, project_name, session_id, window_start_at, window_end_at, event_count, goal_count,
84
84
  success_count, failure_count, risk_count, summary, learnings, next_actions, evidence_event_ids,
85
85
  confidence, created_at)
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  inferSemanticLabel,
4
4
  stableId
5
- } from "../chunk-Y2FVN7CX.js";
5
+ } from "../chunk-EYLQRPHF.js";
6
6
  import {
7
7
  pgSslConfig
8
8
  } from "../chunk-EQSQ4HBW.js";
@@ -21,7 +21,7 @@ function arg(name) {
21
21
  return i >= 0 ? process.argv[i + 1] : void 0;
22
22
  }
23
23
  async function ensureSchema(client) {
24
- await client.query(`CREATE TABLE IF NOT EXISTS memory.agent_semantic_labels (
24
+ await client.query(`CREATE TABLE IF NOT EXISTS graph.agent_semantic_labels (
25
25
  id text PRIMARY KEY,
26
26
  source_memory_id text NOT NULL,
27
27
  event_id text,
@@ -32,8 +32,8 @@ async function ensureSchema(client) {
32
32
  created_at timestamp(3) NOT NULL,
33
33
  updated_at timestamp(3) NOT NULL
34
34
  )`);
35
- await client.query(`CREATE INDEX IF NOT EXISTS idx_agent_semantic_labels_memory ON memory.agent_semantic_labels (source_memory_id, labeler)`);
36
- await client.query(`CREATE INDEX IF NOT EXISTS idx_agent_semantic_labels_event ON memory.agent_semantic_labels (event_id)`);
35
+ await client.query(`CREATE INDEX IF NOT EXISTS idx_agent_semantic_labels_memory ON graph.agent_semantic_labels (source_memory_id, labeler)`);
36
+ await client.query(`CREATE INDEX IF NOT EXISTS idx_agent_semantic_labels_event ON graph.agent_semantic_labels (event_id)`);
37
37
  }
38
38
  function scrubJson(value) {
39
39
  return JSON.stringify(value).replace(/\u0000/g, "").replace(/\\u0000/gi, "").replace(/\\\\u0000/gi, "").replace(/\\u00[0-1][0-9a-f]/gi, " ");
@@ -56,7 +56,7 @@ async function main() {
56
56
  const where = project ? "WHERE project_name = $2" : "";
57
57
  const result = await client.query(`SELECT id, agent_id, agent_role, session_id, timestamp::text, tool_name,
58
58
  project_name, has_error, raw_text, version, task_id, intent, null::text as outcome, domain, null::text as trajectory
59
- FROM memory.memory_records ${where}
59
+ FROM graph.memory_records ${where}
60
60
  ORDER BY timestamp DESC LIMIT $1`, params);
61
61
  let count = 0;
62
62
  for (const row of result.rows) {
@@ -64,7 +64,7 @@ async function main() {
64
64
  const eventId = stableId(`event:${row.id}`);
65
65
  const labelJson = scrubJson(label);
66
66
  try {
67
- await client.query(`INSERT INTO memory.agent_semantic_labels
67
+ await client.query(`INSERT INTO graph.agent_semantic_labels
68
68
  (id, source_memory_id, event_id, labeler, schema_version, confidence, labels, created_at, updated_at)
69
69
  VALUES ($1,$2,$3,$4,$5,$6,to_jsonb($7::text),now(),now())
70
70
  ON CONFLICT (id) DO UPDATE SET confidence = excluded.confidence, labels = excluded.labels,
@@ -90,7 +90,7 @@ async function main() {
90
90
  summary: label.summary,
91
91
  sanitized: true
92
92
  });
93
- await client.query(`INSERT INTO memory.agent_semantic_labels
93
+ await client.query(`INSERT INTO graph.agent_semantic_labels
94
94
  (id, source_memory_id, event_id, labeler, schema_version, confidence, labels, created_at, updated_at)
95
95
  VALUES ($1,$2,$3,$4,$5,$6,$7::jsonb,now(),now())
96
96
  ON CONFLICT (id) DO UPDATE SET confidence = excluded.confidence, labels = excluded.labels,
@@ -1,28 +1,28 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  queryTaskRows
4
- } from "../chunk-CS267UMH.js";
5
- import "../chunk-6LFFIEDM.js";
4
+ } from "../chunk-5LDTCWYX.js";
5
+ import "../chunk-DU64OESH.js";
6
6
  import "../chunk-5CHYEKMH.js";
7
7
  import "../chunk-4JERP7NT.js";
8
- import "../chunk-SD2R3SEA.js";
8
+ import "../chunk-J3YNCJ4A.js";
9
9
  import "../chunk-MVW62NIZ.js";
10
10
  import "../chunk-OYNKIAVW.js";
11
11
  import "../chunk-CX6GL3ZJ.js";
12
- import "../chunk-USLVSLQ5.js";
12
+ import "../chunk-VDCPKJUQ.js";
13
13
  import "../chunk-XJUUWHVN.js";
14
14
  import "../chunk-NGP6LSV2.js";
15
- import "../chunk-VFATLVRX.js";
15
+ import "../chunk-L5VPUOB6.js";
16
16
  import {
17
17
  getSessionRuntime
18
18
  } from "../chunk-CVYC6DUW.js";
19
19
  import "../chunk-OPU3NYOO.js";
20
20
  import "../chunk-GJV3WDWM.js";
21
21
  import "../chunk-MP2AFCGL.js";
22
- import "../chunk-R7FBOZT5.js";
22
+ import "../chunk-ISL3NSVX.js";
23
23
  import "../chunk-HYZV25LY.js";
24
- import "../chunk-5U7WB4YG.js";
25
- import "../chunk-ITPIBVSG.js";
24
+ import "../chunk-WVBZ3QBR.js";
25
+ import "../chunk-WMZTSHNX.js";
26
26
  import "../chunk-FXU7JOXK.js";
27
27
  import "../chunk-MOZ2YQ54.js";
28
28
  import "../chunk-VXIMSRTO.js";
@@ -73,7 +73,7 @@ function checkMcpHealth() {
73
73
  }
74
74
  }
75
75
  async function scanFromDb(agentId, tmuxSession, projectName) {
76
- const { fastDbInit } = await import("../fast-db-init-QXGL2PKQ.js");
76
+ const { fastDbInit } = await import("../fast-db-init-GCY3F74H.js");
77
77
  try {
78
78
  await fastDbInit();
79
79
  } catch (err) {
package/dist/bin/setup.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runSetupWizard
4
- } from "../chunk-GBHQ5TXO.js";
4
+ } from "../chunk-UOOCGJUE.js";
5
5
  import "../chunk-K333WOW4.js";
6
6
  import "../chunk-VXIMSRTO.js";
7
7
  import "../chunk-LYH5HE24.js";
@@ -8,15 +8,15 @@ import {
8
8
  import {
9
9
  disposeStore,
10
10
  initStore
11
- } from "../chunk-PSQNT5DS.js";
11
+ } from "../chunk-AQS2B3HC.js";
12
12
  import "../chunk-CHCA3ZM2.js";
13
- import "../chunk-AWVDA2FL.js";
13
+ import "../chunk-2H3FVAN3.js";
14
14
  import "../chunk-Y25OJWOQ.js";
15
15
  import "../chunk-MP2AFCGL.js";
16
16
  import {
17
17
  getClient
18
- } from "../chunk-5U7WB4YG.js";
19
- import "../chunk-ITPIBVSG.js";
18
+ } from "../chunk-WVBZ3QBR.js";
19
+ import "../chunk-WMZTSHNX.js";
20
20
  import "../chunk-FXU7JOXK.js";
21
21
  import {
22
22
  getMasterKey
@@ -10,7 +10,7 @@ import {
10
10
  loadStackManifest,
11
11
  patchEnv,
12
12
  runStackUpdate
13
- } from "../chunk-KOCQAMAM.js";
13
+ } from "../chunk-ANYOAZCZ.js";
14
14
  import {
15
15
  runVerifyStack
16
16
  } from "../chunk-IRHNV4GY.js";
@@ -20,7 +20,7 @@ import {
20
20
  import {
21
21
  logResult,
22
22
  runHealthGate
23
- } from "../chunk-JFVITKXI.js";
23
+ } from "../chunk-A2UPDE3J.js";
24
24
  import "../chunk-MOZ2YQ54.js";
25
25
  import "../chunk-VXIMSRTO.js";
26
26
  import "../chunk-LYH5HE24.js";
@@ -197,6 +197,19 @@ function checkEnvContract(envContent) {
197
197
  }
198
198
  return { check: "env_contract", status: "pass", message: `All ${REQUIRED_ENV_VARS.length} required env vars present` };
199
199
  }
200
+ function checkGoTrueSecurity(envContent) {
201
+ const env = parseEnvFile(envContent);
202
+ const signupDisabled = env.get("GOTRUE_DISABLE_SIGNUP");
203
+ const autoconfirm = env.get("GOTRUE_MAILER_AUTOCONFIRM");
204
+ if (signupDisabled === "false" && autoconfirm === "true") {
205
+ return {
206
+ check: "gotrue_security",
207
+ status: "fail",
208
+ message: "GOTRUE_DISABLE_SIGNUP=false + GOTRUE_MAILER_AUTOCONFIRM=true \u2014 anyone can create a verified account. Set GOTRUE_DISABLE_SIGNUP=true or GOTRUE_MAILER_AUTOCONFIRM=false."
209
+ };
210
+ }
211
+ return { check: "gotrue_security", status: "pass", message: "GoTrue auth settings are secure" };
212
+ }
200
213
  function checkSmoke(composeFile, envFile) {
201
214
  const ps = spawnSync("docker", [
202
215
  "compose",
@@ -276,6 +289,7 @@ function runPreflight(options) {
276
289
  if (existsSync(options.envFile)) {
277
290
  const envContent = readFileSync(options.envFile, "utf8");
278
291
  results.push(checkEnvContract(envContent));
292
+ results.push(checkGoTrueSecurity(envContent));
279
293
  } else {
280
294
  results.push({ check: "env_contract", status: "fail", message: ".env file not found" });
281
295
  }
@@ -346,7 +360,8 @@ function parseArgs(args) {
346
360
  deploymentPersona: process.env.EXE_STACK_DEPLOYMENT_PERSONA === "askexe-control-plane" ? "askexe-control-plane" : "customer",
347
361
  yes: false,
348
362
  allowedBreakingChangeIds: [],
349
- noBootstrap: false
363
+ noBootstrap: false,
364
+ skipHardening: false
350
365
  };
351
366
  for (let i = 0; i < args.length; i++) {
352
367
  const arg = args[i];
@@ -393,6 +408,7 @@ function parseArgs(args) {
393
408
  else if (arg === "--domain") opts.domain = next();
394
409
  else if (arg.startsWith("--domain=")) opts.domain = arg.split("=").slice(1).join("=");
395
410
  else if (arg === "--no-bootstrap") opts.noBootstrap = true;
411
+ else if (arg === "--skip-hardening") opts.skipHardening = true;
396
412
  else if (arg === "--dry-run") opts.dryRun = true;
397
413
  else if (arg === "--check") opts.check = true;
398
414
  else if (arg === "--yes" || arg === "-y") opts.yes = true;
@@ -447,6 +463,7 @@ Options:
447
463
  --allow-breaking <ids> Confirm breaking changes, comma-separated
448
464
  --health-timeout <secs> Per-service Docker healthcheck wait timeout in seconds (default: 180)
449
465
  Increase for slow-starting services (daemon: 90-120s, CRM: 60-90s)
466
+ --skip-hardening Skip post-deploy host hardening (UFW firewall + SSH config)
450
467
  -y, --yes Non-interactive confirmation
451
468
  `);
452
469
  }
@@ -8,7 +8,7 @@ import {
8
8
  logResult,
9
9
  main,
10
10
  runHealthGate
11
- } from "../chunk-JFVITKXI.js";
11
+ } from "../chunk-A2UPDE3J.js";
12
12
  import "../chunk-MLKGABMK.js";
13
13
  export {
14
14
  checkCRM,
@@ -8,28 +8,28 @@ import {
8
8
  isAtCapacity,
9
9
  isWithinRelaunchCooldown,
10
10
  pollCapacityDead
11
- } from "./chunk-X7I6NLIA.js";
12
- import "./chunk-6QMXKKFD.js";
13
- import "./chunk-CS267UMH.js";
14
- import "./chunk-6LFFIEDM.js";
11
+ } from "./chunk-T2EUNNUX.js";
12
+ import "./chunk-N27CTUFU.js";
13
+ import "./chunk-5LDTCWYX.js";
14
+ import "./chunk-DU64OESH.js";
15
15
  import "./chunk-5CHYEKMH.js";
16
16
  import "./chunk-4JERP7NT.js";
17
- import "./chunk-SD2R3SEA.js";
17
+ import "./chunk-J3YNCJ4A.js";
18
18
  import "./chunk-MVW62NIZ.js";
19
19
  import "./chunk-OYNKIAVW.js";
20
20
  import "./chunk-CX6GL3ZJ.js";
21
- import "./chunk-USLVSLQ5.js";
21
+ import "./chunk-VDCPKJUQ.js";
22
22
  import "./chunk-XJUUWHVN.js";
23
23
  import "./chunk-NGP6LSV2.js";
24
- import "./chunk-VFATLVRX.js";
24
+ import "./chunk-L5VPUOB6.js";
25
25
  import "./chunk-CVYC6DUW.js";
26
26
  import "./chunk-OPU3NYOO.js";
27
27
  import "./chunk-GJV3WDWM.js";
28
28
  import "./chunk-MP2AFCGL.js";
29
- import "./chunk-R7FBOZT5.js";
29
+ import "./chunk-ISL3NSVX.js";
30
30
  import "./chunk-HYZV25LY.js";
31
- import "./chunk-5U7WB4YG.js";
32
- import "./chunk-ITPIBVSG.js";
31
+ import "./chunk-WVBZ3QBR.js";
32
+ import "./chunk-WMZTSHNX.js";
33
33
  import "./chunk-FXU7JOXK.js";
34
34
  import "./chunk-MOZ2YQ54.js";
35
35
  import "./chunk-VXIMSRTO.js";
@@ -1,35 +1,35 @@
1
1
  import {
2
2
  lightweightSearch
3
- } from "./chunk-LYIUESG2.js";
4
- import "./chunk-PSQNT5DS.js";
3
+ } from "./chunk-DYURFBPS.js";
4
+ import "./chunk-AQS2B3HC.js";
5
5
  import "./chunk-CHCA3ZM2.js";
6
- import "./chunk-AWVDA2FL.js";
6
+ import "./chunk-2H3FVAN3.js";
7
7
  import "./chunk-Y25OJWOQ.js";
8
8
  import {
9
9
  sessionScopeFilter,
10
10
  strictSessionScopeFilter
11
- } from "./chunk-CS267UMH.js";
12
- import "./chunk-6LFFIEDM.js";
11
+ } from "./chunk-5LDTCWYX.js";
12
+ import "./chunk-DU64OESH.js";
13
13
  import "./chunk-5CHYEKMH.js";
14
14
  import "./chunk-4JERP7NT.js";
15
- import "./chunk-SD2R3SEA.js";
15
+ import "./chunk-J3YNCJ4A.js";
16
16
  import "./chunk-MVW62NIZ.js";
17
17
  import "./chunk-OYNKIAVW.js";
18
18
  import "./chunk-CX6GL3ZJ.js";
19
- import "./chunk-USLVSLQ5.js";
19
+ import "./chunk-VDCPKJUQ.js";
20
20
  import "./chunk-XJUUWHVN.js";
21
21
  import "./chunk-NGP6LSV2.js";
22
- import "./chunk-VFATLVRX.js";
22
+ import "./chunk-L5VPUOB6.js";
23
23
  import "./chunk-CVYC6DUW.js";
24
24
  import "./chunk-OPU3NYOO.js";
25
25
  import "./chunk-GJV3WDWM.js";
26
26
  import "./chunk-MP2AFCGL.js";
27
- import "./chunk-R7FBOZT5.js";
27
+ import "./chunk-ISL3NSVX.js";
28
28
  import "./chunk-HYZV25LY.js";
29
29
  import {
30
30
  getClient
31
- } from "./chunk-5U7WB4YG.js";
32
- import "./chunk-ITPIBVSG.js";
31
+ } from "./chunk-WVBZ3QBR.js";
32
+ import "./chunk-WMZTSHNX.js";
33
33
  import "./chunk-FXU7JOXK.js";
34
34
  import "./chunk-K333WOW4.js";
35
35
  import "./chunk-MOZ2YQ54.js";
@@ -1,3 +1,10 @@
1
+ import {
2
+ resolveSupportAdminToken,
3
+ supportAdminHeaders
4
+ } from "./chunk-2XZ6X3PJ.js";
5
+ import {
6
+ markSupportReportSentSync
7
+ } from "./chunk-MMRUBN3I.js";
1
8
  import {
2
9
  loadLicense,
3
10
  readCachedLicenseToken
@@ -91,6 +98,7 @@ async function runHealth() {
91
98
  async function runTest(project) {
92
99
  const checks = await runHealth();
93
100
  const endpoints = await resolveEndpoints();
101
+ const config = await loadConfig();
94
102
  const licenseKey = loadLicense();
95
103
  const licenseToken = readCachedLicenseToken();
96
104
  const id = randomUUID();
@@ -124,7 +132,10 @@ async function runTest(project) {
124
132
  markdown: readFileSync(reportPath, "utf8")
125
133
  };
126
134
  try {
127
- const headers = { "content-type": "application/json" };
135
+ const headers = {
136
+ "content-type": "application/json",
137
+ ...supportAdminHeaders(config)
138
+ };
128
139
  if (licenseKey) headers["x-exe-license-key"] = licenseKey;
129
140
  if (licenseToken) headers["x-exe-license-token"] = licenseToken;
130
141
  const res = await fetch(endpoints.bugEndpoint, {
@@ -141,7 +152,8 @@ async function runTest(project) {
141
152
  next: res.ok ? void 0 : nextForPostFailure(res.status)
142
153
  });
143
154
  if (res.ok) {
144
- checks.push(await maybeCloseAdmin(String(data?.id ?? id), endpoints.adminEndpoint, version));
155
+ markSupportReportSentSync(reportPath);
156
+ checks.push(await maybeCloseAdmin(String(data?.id ?? id), endpoints.adminEndpoint, version, config));
145
157
  }
146
158
  } catch (err) {
147
159
  checks.push({
@@ -191,8 +203,8 @@ Synthetic smoke test from \`exe-os support test\`. Safe to close.
191
203
  `, { mode: 384 });
192
204
  return filePath;
193
205
  }
194
- async function maybeCloseAdmin(id, adminEndpoint, version) {
195
- const token = process.env.ASKEXE_SUPPORT_ADMIN_TOKEN ?? process.env.EXE_SUPPORT_ADMIN_TOKEN;
206
+ async function maybeCloseAdmin(id, adminEndpoint, version, config) {
207
+ const token = resolveSupportAdminToken(config);
196
208
  if (!token) {
197
209
  return { check: "askexe_admin_autoclose", level: "warn", detail: "skipped; admin token is AskExe-only" };
198
210
  }
@@ -263,7 +275,7 @@ function nextForPostFailure(status) {
263
275
  return "Run `exe-os support health`; if it passes, send this output to AskExe.";
264
276
  }
265
277
  async function runFlush(json) {
266
- const { flushSupportOutbox } = await import("./support-outbox-KEJ73I3F.js");
278
+ const { flushSupportOutbox } = await import("./support-outbox-SZVLHHZG.js");
267
279
  const result = await flushSupportOutbox({ maxPerFlush: 10 });
268
280
  if (json) {
269
281
  console.log(JSON.stringify(result, null, 2));
@@ -286,7 +298,7 @@ async function runFlush(json) {
286
298
  console.log("");
287
299
  }
288
300
  async function runStatus(json) {
289
- const { getOutboxStatus } = await import("./support-outbox-KEJ73I3F.js");
301
+ const { getOutboxStatus } = await import("./support-outbox-SZVLHHZG.js");
290
302
  const status = await getOutboxStatus();
291
303
  if (json) {
292
304
  console.log(JSON.stringify(status, null, 2));
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getClient
3
- } from "./chunk-5U7WB4YG.js";
3
+ } from "./chunk-WVBZ3QBR.js";
4
4
 
5
5
  // src/lib/behaviors.ts
6
6
  import crypto from "crypto";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  executeAction,
3
3
  substituteTemplate
4
- } from "./chunk-VPHOOQLR.js";
4
+ } from "./chunk-3GHTBVZO.js";
5
5
 
6
6
  // src/automation/workflow-engine.ts
7
7
  import { randomUUID } from "crypto";
@@ -0,0 +1,13 @@
1
+ // src/lib/support-admin-token.ts
2
+ function resolveSupportAdminToken(config) {
3
+ return process.env.ASKEXE_SUPPORT_ADMIN_TOKEN || process.env.EXE_SUPPORT_ADMIN_TOKEN || config?.support?.adminToken || config?.support?.admin_token;
4
+ }
5
+ function supportAdminHeaders(config) {
6
+ const token = resolveSupportAdminToken(config);
7
+ return token ? { "x-askexe-admin-token": token } : {};
8
+ }
9
+
10
+ export {
11
+ resolveSupportAdminToken,
12
+ supportAdminHeaders
13
+ };
@@ -0,0 +1,9 @@
1
+ // src/lib/daemon-heap.ts
2
+ function computeDaemonHeapCapMb(totalGb) {
3
+ if (!Number.isFinite(totalGb) || totalGb <= 0) return 2048;
4
+ return Math.min(Math.max(2048, Math.round(totalGb * 0.25 * 1024)), 6144);
5
+ }
6
+
7
+ export {
8
+ computeDaemonHeapCapMb
9
+ };
@@ -6,7 +6,7 @@ import {
6
6
  getIdentity,
7
7
  listIdentities,
8
8
  updateIdentity
9
- } from "./chunk-5U7WB4YG.js";
9
+ } from "./chunk-WVBZ3QBR.js";
10
10
  import {
11
11
  atomicWriteJsonSync
12
12
  } from "./chunk-LYH5HE24.js";