@askexenow/exe-os 0.9.359 → 0.9.361
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.
- package/deploy/compose/docker-compose.yml +7 -1
- package/deploy/compose/generate-env.ts +23 -4
- package/deploy/compose/sso-edge/default.conf.template +35 -0
- package/deploy/compose/sso-edge/sso-redirect.conf +23 -2
- package/deploy/stack-manifests/v0.9.json +113 -2
- package/dist/.dist-verified.json +3 -3
- package/dist/{active-agent-Y3DCBD7J.js → active-agent-5RXOXM47.js} +9 -8
- package/dist/{active-agent-DMKNHGSG.js → active-agent-UZAQUW7E.js} +9 -8
- package/dist/{agentic-ontology-3233PNKV.js → agentic-ontology-EHUWSJCG.js} +1 -1
- package/dist/{backfill-gate-DA7UT6UD.js → backfill-gate-LRX77SUD.js} +3 -2
- package/dist/{backfill-metadata-4DS4A5U3.js → backfill-metadata-CTSVPOC6.js} +12 -11
- package/dist/{background-jobs-XGTLESKM.js → background-jobs-Z6KHCWES.js} +3 -2
- package/dist/{backup-verify-JNYKXIU2.js → backup-verify-YJMSP24E.js} +5 -4
- package/dist/{behavior-injection-CGAMI552.js → behavior-injection-DTFGF6DT.js} +21 -13
- package/dist/{behaviors-57AMN5IP.js → behaviors-XW7ZZKHF.js} +20 -12
- package/dist/bin/age-ontology-load.js +3 -2
- package/dist/bin/agentic-ontology-backfill.js +14 -13
- package/dist/bin/agentic-reflection-backfill.js +15 -14
- package/dist/bin/agentic-semantic-label.js +14 -13
- package/dist/bin/backfill-conversations.js +16 -14
- package/dist/bin/backfill-responses.js +16 -14
- package/dist/bin/backfill-vectors.js +20 -18
- package/dist/bin/bulk-sync-postgres.js +27 -24
- package/dist/bin/cc-doctor.js +13 -11
- package/dist/bin/cleanup-stale-review-tasks.js +31 -28
- package/dist/bin/cli.js +131 -45
- package/dist/bin/customer-readiness.js +10 -1
- package/dist/bin/deferred-daemon-restart.js +125 -103
- package/dist/bin/exe-agent-config.js +9 -8
- package/dist/bin/exe-agent.js +13 -12
- package/dist/bin/exe-assign.js +18 -16
- package/dist/bin/exe-boot.js +62 -49
- package/dist/bin/exe-call.js +10 -9
- package/dist/bin/exe-cloud.js +29 -26
- package/dist/bin/exe-config-dump.js +9 -8
- package/dist/bin/exe-dispatch.js +31 -28
- package/dist/bin/exe-doctor.js +11 -10
- package/dist/bin/exe-export-behaviors.js +22 -14
- package/dist/bin/exe-forget.js +14 -13
- package/dist/bin/exe-gateway.js +13 -12
- package/dist/bin/exe-grant.js +6 -6
- package/dist/bin/exe-healthcheck.js +13 -11
- package/dist/bin/exe-heartbeat.js +33 -30
- package/dist/bin/exe-kill.js +36 -33
- package/dist/bin/exe-launch-agent.js +126 -44
- package/dist/bin/exe-mcp.js +165 -1
- package/dist/bin/exe-memory-reads.js +12 -11
- package/dist/bin/exe-new-employee.js +20 -17
- package/dist/bin/exe-os-mcp-proxy.js +9 -8
- package/dist/bin/exe-pending-messages.js +32 -29
- package/dist/bin/exe-pending-notifications.js +31 -28
- package/dist/bin/exe-pending-reviews.js +31 -28
- package/dist/bin/exe-preflight.js +1 -1
- package/dist/bin/exe-rename.js +10 -9
- package/dist/bin/exe-review.js +35 -32
- package/dist/bin/exe-search.js +13 -12
- package/dist/bin/exe-session-cleanup.js +36 -33
- package/dist/bin/exe-settings.js +28 -25
- package/dist/bin/exe-start-codex.js +27 -19
- package/dist/bin/exe-start-opencode.js +23 -15
- package/dist/bin/exe-start.sh +11 -7
- package/dist/bin/exe-status.js +32 -29
- package/dist/bin/exe-support.js +5 -4
- package/dist/bin/exe-team.js +9 -8
- package/dist/bin/exe-watchdog.js +115 -30
- package/dist/bin/git-sweep.js +32 -29
- package/dist/bin/graph-backfill.js +14 -13
- package/dist/bin/graph-export.js +13 -12
- package/dist/bin/import-history.js +16 -15
- package/dist/bin/install.js +314 -184
- package/dist/bin/intercom-check.js +4 -4
- package/dist/bin/mcp-sessions.js +2 -2
- package/dist/bin/orchestration-metrics.js +10 -9
- package/dist/bin/postgres-agentic-reflection-backfill.js +5 -4
- package/dist/bin/postgres-agentic-semantic-backfill.js +4 -3
- package/dist/bin/reconcile-backlog.js +2 -2
- package/dist/bin/registry-proxy.js +1 -1
- package/dist/bin/scan-tasks.js +31 -28
- package/dist/bin/setup.js +7 -4
- package/dist/bin/shard-migrate.js +13 -12
- package/dist/bin/stack-update.js +45 -14
- package/dist/bin/update.js +4 -3
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{boot-generation-4D3CTT7X.js → boot-generation-ALCHPQOK.js} +9 -8
- package/dist/{boot-review-sections-NDFE5443.js → boot-review-sections-E4QOMWZM.js} +30 -27
- package/dist/{branch-hygiene-HNSOUDJE.js → branch-hygiene-Z4IBWAOX.js} +2 -1
- package/dist/{branding-6FHWZQYQ.js → branding-7MZDHTKN.js} +3 -2
- package/dist/build-manifest.json +1247 -1077
- package/dist/{capability-cards-OBB7BMMX.js → capability-cards-IE2DEJKT.js} +8 -7
- package/dist/{capacity-monitor-QLPEL6S5.js → capacity-monitor-3HVLTPQA.js} +32 -29
- package/dist/{catchup-brief-EN7QR6MP.js → catchup-brief-E2QZPNMH.js} +36 -33
- package/dist/{chunk-POZGQQEZ.js → chunk-2PIEDT3G.js} +1 -1
- package/dist/chunk-2PRAXZWM.js +261 -0
- package/dist/{chunk-MBULOZJF.js → chunk-32FEF5BW.js} +2 -2
- package/dist/{chunk-4FQIWAXA.js → chunk-34ABBEHN.js} +10 -10
- package/dist/{chunk-CVTWQZOR.js → chunk-3L2QU5ZF.js} +14 -2
- package/dist/{chunk-R6LNQAUG.js → chunk-3Q2YK6UT.js} +34 -1
- package/dist/{chunk-SNWV44E5.js → chunk-3TWIRKUD.js} +12 -5
- package/dist/{chunk-I5AVZOL2.js → chunk-3YBJ36UX.js} +2 -2
- package/dist/{chunk-OAYTQ4RY.js → chunk-4BI4YKHE.js} +55 -12
- package/dist/{chunk-OSID72CN.js → chunk-4L33OFU4.js} +25 -1
- package/dist/{chunk-A6VIK3SS.js → chunk-4P2BFNSB.js} +2 -2
- package/dist/{chunk-RFUTLZ2U.js → chunk-4UTSVUMY.js} +4 -4
- package/dist/chunk-5OPAUFLP.js +126 -0
- package/dist/{chunk-PDRIIEFV.js → chunk-5TKIVK3L.js} +1 -1
- package/dist/{chunk-6EOLGE7T.js → chunk-5XEKQJE5.js} +1 -1
- package/dist/chunk-63Z76YCI.js +218 -0
- package/dist/{chunk-XVTKJEI2.js → chunk-65WUZISK.js} +3 -3
- package/dist/{chunk-EHM4E62N.js → chunk-6DTALXOA.js} +1 -1
- package/dist/{chunk-DWKH2H7W.js → chunk-6EGNSEEX.js} +1 -1
- package/dist/chunk-6EM6USV7.js +1332 -0
- package/dist/{chunk-STFR72YH.js → chunk-6H44454F.js} +1 -1
- package/dist/{chunk-44WFVMZ5.js → chunk-6KVG6RTP.js} +1 -1
- package/dist/{chunk-SIGAQQHW.js → chunk-6LQGPGOS.js} +2 -2
- package/dist/{chunk-OY2PWHYR.js → chunk-6W5MDNLX.js} +2 -2
- package/dist/{chunk-QROIFRKI.js → chunk-7GPK2ANS.js} +5 -5
- package/dist/{chunk-GSVQBBE5.js → chunk-7N63G4JS.js} +2 -2
- package/dist/{chunk-2EAYZ3BK.js → chunk-A4EPO6F3.js} +9 -9
- package/dist/{chunk-QH2XAUZ5.js → chunk-A5544WYJ.js} +1 -1
- package/dist/{chunk-XV42EAVK.js → chunk-AQF6XMZ7.js} +1 -1
- package/dist/chunk-ARX6TAGN.js +102 -0
- package/dist/{chunk-JE34CB5H.js → chunk-ASQPFNLC.js} +2 -2
- package/dist/{chunk-WRP5AG4D.js → chunk-AUSKITKI.js} +2 -2
- package/dist/{chunk-YBX3G5OP.js → chunk-B3JV3F35.js} +1 -1
- package/dist/chunk-B6PFGUYJ.js +159 -0
- package/dist/{chunk-SHEWTDPC.js → chunk-BGMLECK5.js} +4 -4
- package/dist/{chunk-BCZF3AGJ.js → chunk-BRIZ6OZ3.js} +34 -44
- package/dist/{chunk-OMXJMOBD.js → chunk-BRZR76TS.js} +66 -0
- package/dist/{chunk-RJ67HG2P.js → chunk-BSPBWLUP.js} +4 -4
- package/dist/{chunk-WA2MJGPT.js → chunk-CC4I7337.js} +1 -1
- package/dist/{chunk-VY5VU7SX.js → chunk-CIXA5TXF.js} +2 -2
- package/dist/{chunk-MCNDZU5W.js → chunk-CKOMH7TL.js} +2 -2
- package/dist/{chunk-HLEZ5O5P.js → chunk-CY5RX7QR.js} +17 -15
- package/dist/{chunk-KIXNMTGC.js → chunk-DZLOUB4G.js} +5 -5
- package/dist/{chunk-VXL7PJ56.js → chunk-E3YI6FVJ.js} +5 -24
- package/dist/{chunk-IOEUAQWP.js → chunk-EEZOBN6X.js} +1 -1
- package/dist/{chunk-6SK4MM5B.js → chunk-EIBTRKUF.js} +1 -1
- package/dist/{chunk-EA5FVACM.js → chunk-ESGLOI6Q.js} +21 -17
- package/dist/{chunk-R62ITJDQ.js → chunk-EXAUIWUG.js} +1 -1
- package/dist/{chunk-3ZEVMZ4G.js → chunk-F4GLFLQK.js} +1 -1
- package/dist/{chunk-EX2SSLNU.js → chunk-FK3HX7VO.js} +9 -9
- package/dist/{chunk-HPHF5VTT.js → chunk-FU3CUTIA.js} +4 -4
- package/dist/{chunk-AHMUF6RO.js → chunk-G2M7WQ2M.js} +0 -2
- package/dist/{chunk-SKGMF2SO.js → chunk-GBNB4EWD.js} +22 -1
- package/dist/{chunk-HNPHPGGF.js → chunk-GIFXL4AC.js} +2 -2
- package/dist/{chunk-W5YV2PZE.js → chunk-GWBD5P7E.js} +16 -16
- package/dist/{chunk-VMR6M6GN.js → chunk-HISFWAAK.js} +1 -1
- package/dist/{chunk-LXG37RB2.js → chunk-HNB5IAVK.js} +1 -1
- package/dist/{chunk-QWVXN224.js → chunk-HPXFKUGU.js} +350 -65
- package/dist/{chunk-IQWAYXVF.js → chunk-HU4ZAYGH.js} +3 -3
- package/dist/{chunk-W3XUU36X.js → chunk-I4ILH2R6.js} +5 -5
- package/dist/chunk-IFJ4SVIP.js +197 -0
- package/dist/{chunk-TG7JYSEA.js → chunk-II5TSD4F.js} +5 -2
- package/dist/{chunk-2OVTGZYH.js → chunk-IM7PRQ27.js} +46 -3
- package/dist/{chunk-NE57GONM.js → chunk-INATSOZV.js} +1 -1
- package/dist/{chunk-GD7VXXW6.js → chunk-IXRNZ2Y2.js} +795 -174
- package/dist/chunk-J5KRIGHE.js +61 -0
- package/dist/{chunk-6WHYSLGF.js → chunk-J5QNK5VL.js} +1 -1
- package/dist/chunk-J6KMGEJW.js +238 -0
- package/dist/{chunk-XLEYCOHX.js → chunk-J73I53JO.js} +398 -58
- package/dist/{chunk-NP2Y7P3I.js → chunk-J7S2SOM2.js} +1 -1
- package/dist/{chunk-DQ75MEPU.js → chunk-JCICPQJV.js} +1 -1
- package/dist/chunk-JKKZGDLP.js +182 -0
- package/dist/{chunk-VAY6IXWY.js → chunk-KDMVVHZH.js} +1 -1
- package/dist/{chunk-G37RG543.js → chunk-LEZAPRMW.js} +1 -1
- package/dist/{chunk-3QWOO74G.js → chunk-LLZNPOGB.js} +97 -3
- package/dist/{chunk-SQBNN44X.js → chunk-LYEQZ7TW.js} +49 -15
- package/dist/chunk-M67ARGXY.js +175 -0
- package/dist/chunk-MPVXHYD5.js +85 -0
- package/dist/{chunk-RXL7A7JH.js → chunk-MZYNW5OY.js} +1 -1
- package/dist/{chunk-X2F6Q7TW.js → chunk-NBVSBSMZ.js} +1 -1
- package/dist/{chunk-LRETL4I3.js → chunk-NE5ZMNHN.js} +3 -3
- package/dist/chunk-NGDXBN3M.js +254 -0
- package/dist/{chunk-A5WEEND7.js → chunk-NKP4S2G5.js} +3 -3
- package/dist/{chunk-HDSDXGLV.js → chunk-NO5KHKKB.js} +1 -1
- package/dist/chunk-NOKJCF27.js +437 -0
- package/dist/{chunk-6KREY2Q7.js → chunk-NVRUZOEW.js} +5 -5
- package/dist/chunk-NVWBZXDK.js +257 -0
- package/dist/chunk-NXTQAY7Z.js +2607 -0
- package/dist/{chunk-C5YZMYQH.js → chunk-OLIXPGWN.js} +1 -1
- package/dist/{chunk-4DYJ6NOK.js → chunk-OUUWGAH4.js} +2 -2
- package/dist/{chunk-UPM5JP6G.js → chunk-OZNCAMS3.js} +47 -4
- package/dist/{chunk-UZ5RJYL3.js → chunk-P3ACGGW6.js} +1 -1
- package/dist/{chunk-6LY3QSJA.js → chunk-PE4DEYIW.js} +11 -6
- package/dist/{chunk-HK7SQDKJ.js → chunk-PGXESCSL.js} +2 -2
- package/dist/{chunk-NKDKB2RT.js → chunk-PK5ATL23.js} +6 -6
- package/dist/{chunk-2KLVTRY2.js → chunk-PLLBBNMC.js} +1 -1
- package/dist/{chunk-Z2PAVJJ4.js → chunk-PRJBAIHV.js} +3 -3
- package/dist/{chunk-QX7RWICL.js → chunk-PU7UYQRC.js} +1 -1
- package/dist/{chunk-57GRYGDU.js → chunk-PWNPP727.js} +1 -1
- package/dist/{chunk-PLOEFBFW.js → chunk-Q556G3P2.js} +3 -3
- package/dist/{chunk-4JERP7NT.js → chunk-QAEWWYHL.js} +29 -1
- package/dist/{chunk-2YGAKBRG.js → chunk-QFQWHCOJ.js} +3 -3
- package/dist/chunk-QILQ5FCG.js +198 -0
- package/dist/{chunk-G2KK64UB.js → chunk-QNETW6LZ.js} +101 -19
- package/dist/{chunk-FASR2WLT.js → chunk-R6AJ6VIJ.js} +1 -1
- package/dist/{chunk-6JTKIXLU.js → chunk-RBWLUYTO.js} +1 -1
- package/dist/{chunk-QLFN3MUW.js → chunk-RCOIKTHM.js} +1 -1
- package/dist/{chunk-ITRKRKS7.js → chunk-RFKRCVGW.js} +1 -1
- package/dist/{chunk-APR556TY.js → chunk-RJJZH7Z7.js} +190 -29
- package/dist/{chunk-5UAMBMNR.js → chunk-RO326K57.js} +44 -34
- package/dist/{chunk-JBAMYKBL.js → chunk-SSZIGWIG.js} +1 -1
- package/dist/{chunk-2I23RPSI.js → chunk-TKDITWDN.js} +9 -0
- package/dist/{chunk-VCCZQDCU.js → chunk-U32RDCUB.js} +3 -3
- package/dist/{chunk-OIS5VIAH.js → chunk-UWEFIIEG.js} +6 -2
- package/dist/{chunk-LPKTGK7L.js → chunk-V3ORKXAU.js} +4 -4
- package/dist/{chunk-WCP4OQUL.js → chunk-V6T42AQN.js} +2 -2
- package/dist/chunk-VAOUB2TK.js +23 -0
- package/dist/{chunk-4WSUP4CC.js → chunk-VEGTALBX.js} +11 -11
- package/dist/{chunk-AL7JMA54.js → chunk-VEJKY5I6.js} +2 -2
- package/dist/{chunk-74R44E4S.js → chunk-VGWGXAHT.js} +198 -93
- package/dist/{chunk-YKRNH5LU.js → chunk-VQWRRXBD.js} +1 -1
- package/dist/{chunk-7QRMFYOV.js → chunk-VYFZVIWX.js} +1 -1
- package/dist/{chunk-CAEWPEBA.js → chunk-W6J25BU7.js} +1 -1
- package/dist/{chunk-EUQF3JOH.js → chunk-WBG7XYVR.js} +1 -1
- package/dist/chunk-WT4RI36X.js +23 -0
- package/dist/{chunk-46RPEWTH.js → chunk-WYETVNK4.js} +1 -1
- package/dist/{chunk-DKRSKC5R.js → chunk-XQDF2I4D.js} +1 -1
- package/dist/{chunk-HKK7LLS5.js → chunk-XTGR3LMF.js} +34 -3
- package/dist/{chunk-XWWNRFRF.js → chunk-YJJ7FRX5.js} +11 -11
- package/dist/{chunk-F3QTF4T7.js → chunk-YZLDE3XJ.js} +3 -3
- package/dist/chunk-YZUHSV24.js +277 -0
- package/dist/{chunk-5I3YC7ER.js → chunk-ZGYRQHQ3.js} +2 -2
- package/dist/{chunk-3ODATKWH.js → chunk-ZPW6FAEQ.js} +1 -1
- package/dist/{chunk-YEOIPUFO.js → chunk-ZR4CQBAP.js} +1 -1
- package/dist/{chunk-VNK3MNZE.js → chunk-ZZEKOI2M.js} +1 -1
- package/dist/{cleanup-graph-garbage-XFGY4EEE.js → cleanup-graph-garbage-SJHT3RXT.js} +13 -12
- package/dist/{cloud-sync-shutdown-XCOATIJW.js → cloud-sync-shutdown-43RY4ZBS.js} +8 -7
- package/dist/{co-activation-XNBLOGK3.js → co-activation-5GP2E54J.js} +8 -7
- package/dist/{co-occurrence-HO4PGQC4.js → co-occurrence-OXF6MLM6.js} +11 -10
- package/dist/{code-context-index-5RY66SWZ.js → code-context-index-DWR6HS35.js} +7 -5
- package/dist/consent-passphrase-Z64GFJXK.js +23 -0
- package/dist/{conversation-entity-extractor-5G5DGRJU.js → conversation-entity-extractor-YSXUBOXC.js} +3 -3
- package/dist/{conversation-wiki-populator-RZKG6PK4.js → conversation-wiki-populator-5EGRW2UZ.js} +1 -1
- package/dist/{crdt-sync-6TD7LSZW.js → crdt-sync-FKEQAOQL.js} +5 -4
- package/dist/{crm-webhook-WZAV5776.js → crm-webhook-K4ZOGKOO.js} +2 -2
- package/dist/{cto-delegation-gate-UHMYFM4D.js → cto-delegation-gate-TQIOXGNV.js} +30 -27
- package/dist/{daemon-auth-SXZHLUYS.js → daemon-auth-OCHW2U6B.js} +3 -2
- package/dist/{daemon-orchestration-DT5M2ZAR.js → daemon-orchestration-HSW7IOH4.js} +35 -32
- package/dist/{daemon-ready-56VAPZU6.js → daemon-ready-VGPSRI3Z.js} +1 -1
- package/dist/{daemon-restart-circuit-breaker-5V6B6NLS.js → daemon-restart-circuit-breaker-SMTWFX27.js} +25 -3
- package/dist/db-backend-ODVJ3Q3D.js +7 -0
- package/dist/{db-restore-events-ZLD2HRQV.js → db-restore-events-TFCZ4CPM.js} +2 -1
- package/dist/{doc-graph-extractor-FNCYPFKY.js → doc-graph-extractor-W5KHZUL4.js} +11 -10
- package/dist/{documents-GKDZDUED.js → documents-SLQWZNOW.js} +18 -16
- package/dist/dreaming-E2M2O32J.js +63 -0
- package/dist/{exe-drift-QTKD2FHT.js → exe-drift-NUYEPGFR.js} +9 -8
- package/dist/{exe-export-ESJ6KP6J.js → exe-export-CFX2JAOJ.js} +21 -13
- package/dist/{exe-import-N4X3GEQB.js → exe-import-ZD5QMFN2.js} +21 -13
- package/dist/{exe-key-KZCCHX3W.js → exe-key-O4KHCKZZ.js} +114 -98
- package/dist/exe-org-TV7KW4D6.js +672 -0
- package/dist/{exe-snapshot-SCRPHCPZ.js → exe-snapshot-P4YW62MR.js} +38 -33
- package/dist/{fast-db-init-6H67K76Q.js → fast-db-init-YZNPKBNX.js} +1 -1
- package/dist/{founder-context-C7X7IRDA.js → founder-context-TU5G4AKR.js} +4 -3
- package/dist/{founder-monitor-envelope-DHSUMBWU.js → founder-monitor-envelope-SMILO4BT.js} +7 -5
- package/dist/gateway/index.js +23 -22
- package/dist/{gateway-client-7LMZKHTH.js → gateway-client-JA2BH7QO.js} +1 -1
- package/dist/{git-staleness-JCKVMWPO.js → git-staleness-CKSL73QX.js} +8 -7
- package/dist/{global-procedures-BR7WGSE7.js → global-procedures-X36SK7LZ.js} +9 -8
- package/dist/{graph-auto-extract-EOXWQRBZ.js → graph-auto-extract-OW7YWKRT.js} +11 -10
- package/dist/{graph-rag-5FVC5JXH.js → graph-rag-6GFTXM5O.js} +3 -3
- package/dist/{hook-integrity-TYGDD7OE.js → hook-integrity-AIDFKMTA.js} +1 -1
- package/dist/{hook-prefetch-2CN3MK4H.js → hook-prefetch-THLIXCLE.js} +31 -28
- package/dist/hooks/bug-report-worker.js +35 -32
- package/dist/hooks/codex-stop-task-finalizer.js +36 -33
- package/dist/hooks/commit-complete.js +34 -31
- package/dist/hooks/error-recall.js +16 -15
- package/dist/hooks/exe-heartbeat-hook.js +10 -9
- package/dist/hooks/ingest-worker.js +12 -10
- package/dist/hooks/ingest.js +19 -18
- package/dist/hooks/instructions-loaded.js +11 -10
- package/dist/hooks/manifest.json +20 -20
- package/dist/hooks/notification.js +11 -10
- package/dist/hooks/post-compact.js +11 -115
- package/dist/hooks/post-tool-combined.js +11 -11
- package/dist/hooks/pre-compact.js +38 -64
- package/dist/hooks/pre-tool-use.js +95 -36
- package/dist/hooks/prompt-submit.js +50 -47
- package/dist/hooks/session-end.js +39 -36
- package/dist/hooks/session-start.js +64 -18
- package/dist/hooks/stop.js +40 -37
- package/dist/hooks/subagent-stop.js +35 -32
- package/dist/hooks/summary-worker.js +41 -38
- package/dist/index.js +44 -41
- package/dist/inrun-inbox-DRKVDPLY.js +29 -0
- package/dist/{installer-YDLSXGD2.js → installer-CBHPY3RI.js} +11 -10
- package/dist/{installer-7UV3CNWZ.js → installer-LORTXEPZ.js} +11 -10
- package/dist/{installer-VPNTM3X6.js → installer-R4EKAE7F.js} +11 -10
- package/dist/{intercom-queue-KHKJJYCQ.js → intercom-queue-QGXWXDYJ.js} +30 -27
- package/dist/{key-backup-status-YMS7YGWO.js → key-backup-status-3RC6XTUX.js} +2 -1
- package/dist/lib/agent-config.js +3 -2
- package/dist/lib/cloud-sync.js +27 -24
- package/dist/lib/config.js +6 -1
- package/dist/lib/consolidation.js +14 -13
- package/dist/lib/crypto.js +4 -3
- package/dist/lib/database.js +8 -7
- package/dist/lib/db-backup.js +4 -3
- package/dist/lib/db-checkpoint-worker.js +1 -1
- package/dist/lib/db-daemon-client.js +7 -5
- package/dist/lib/db-read-worker-client.js +1 -1
- package/dist/lib/db-read-worker.js +1 -1
- package/dist/lib/db-write-worker-client.js +2 -2
- package/dist/lib/db-write-worker.js +3 -3
- package/dist/lib/db.js +8 -7
- package/dist/lib/device-registry.js +3 -2
- package/dist/lib/embed-worker.js +2 -1
- package/dist/lib/embedder.js +7 -5
- package/dist/lib/employee-templates.js +10 -9
- package/dist/lib/employees.js +8 -7
- package/dist/lib/error-detector.js +1 -1
- package/dist/lib/exe-daemon-client.js +16 -6
- package/dist/lib/exe-daemon.js +262 -125
- package/dist/lib/hybrid-search.js +13 -12
- package/dist/lib/identity-templates.js +3 -1
- package/dist/lib/identity.js +8 -7
- package/dist/lib/keychain.js +41 -3
- package/dist/lib/license.js +12 -3
- package/dist/lib/messaging.js +31 -28
- package/dist/lib/platform-support.js +25 -0
- package/dist/lib/post-tool-memory.js +6 -4
- package/dist/lib/preflight.js +29 -0
- package/dist/lib/registry-proxy.js +1 -1
- package/dist/lib/reminders.js +9 -8
- package/dist/lib/schedules.js +13 -12
- package/dist/lib/session-registry.js +10 -9
- package/dist/lib/session-wrappers.js +7 -3
- package/dist/lib/skill-learning.js +21 -13
- package/dist/lib/status-brief.js +8 -3
- package/dist/lib/store.js +12 -11
- package/dist/lib/task-router.js +9 -8
- package/dist/lib/tasks.js +32 -29
- package/dist/lib/tmux-routing.js +45 -29
- package/dist/lib/tmux-status.js +7 -3
- package/dist/lib/token-spend.js +9 -8
- package/dist/lib/ws-client.js +1 -1
- package/dist/{license-gate-YXUSNA2I.js → license-gate-NO2WGZPU.js} +5 -4
- package/dist/{license-sync-XFDOXL3Z.js → license-sync-CVEMSX3H.js} +4 -3
- package/dist/linux-systemd-LRW3BYSS.js +38 -0
- package/dist/mailbox-inbox-CP2VRBXZ.js +10 -0
- package/dist/mailbox-outbox-HXI7DYNC.js +19 -0
- package/dist/mcp/register-tools.js +108 -93
- package/dist/mcp/server.js +111 -96
- package/dist/mcp/tools/complete-reminder.js +10 -9
- package/dist/mcp/tools/create-reminder.js +10 -9
- package/dist/mcp/tools/create-task.js +38 -31
- package/dist/mcp/tools/deactivate-behavior.js +22 -14
- package/dist/mcp/tools/list-reminders.js +10 -9
- package/dist/mcp/tools/list-tasks.js +34 -31
- package/dist/mcp/tools/send-message.js +33 -30
- package/dist/mcp/tools/update-task.js +33 -30
- package/dist/{mcp-http-config-HIP5CEDV.js → mcp-http-config-H4B5LHCL.js} +9 -8
- package/dist/{mcp-session-identity-RTNZ2ZLW.js → mcp-session-identity-MCIJPH7T.js} +30 -27
- package/dist/{memory-cards-KG4TPNKK.js → memory-cards-PX3ZU7WC.js} +12 -11
- package/dist/{memory-graph-extractor-6HTBLO2N.js → memory-graph-extractor-M5LHDSFC.js} +12 -11
- package/dist/{memory-poisoning-defense-3ZT57RSJ.js → memory-poisoning-defense-LORMP5QJ.js} +8 -7
- package/dist/{memory-pressure-watchdog-ZOZBIMKC.js → memory-pressure-watchdog-AXJKFOCO.js} +31 -28
- package/dist/{memory-queue-W54BYW7V.js → memory-queue-4VN3DTOE.js} +3 -2
- package/dist/memory-queue-client-OI4LDT4W.js +18 -0
- package/dist/{memory-reflection-EQC4FXSW.js → memory-reflection-XB6CE5MY.js} +8 -7
- package/dist/{monitor-grants-BDLVFVDR.js → monitor-grants-W3ISOLMC.js} +6 -4
- package/dist/{monitor-identity-GLFZSEAH.js → monitor-identity-AN3B5QIN.js} +3 -2
- package/dist/{notification-ledger-NZ4HO3M5.js → notification-ledger-4JVPBNDO.js} +31 -28
- package/dist/{notifications-74YECZ4V.js → notifications-7EJE7FEP.js} +30 -27
- package/dist/{orchestration-events-KRQI4ED5.js → orchestration-events-GCMG4TBV.js} +9 -8
- package/dist/{orchestration-phase-KVF42ZKU.js → orchestration-phase-ZJ4XVNFO.js} +3 -2
- package/dist/orchestrator-W4PANW2L.js +55 -0
- package/dist/org-brief-session-65THKUUQ.js +45 -0
- package/dist/org-consent-policy-QE3TE273.js +68 -0
- package/dist/org-join-HTQ57JYH.js +35 -0
- package/dist/org-key-admin-4W6LZ5KZ.js +242 -0
- package/dist/org-key-pin-OTOKAELD.js +37 -0
- package/dist/{org-membership-B32NS5NI.js → org-membership-SML6GCHP.js} +11 -7
- package/dist/org-partner-config-XQGOB7EJ.js +25 -0
- package/dist/org-partner-runtime-VEQ2OQQM.js +44 -0
- package/dist/org-row-visibility-V2YHQMU7.js +18 -0
- package/dist/{pipeline-router-6ZZV7JMA.js → pipeline-router-HJSXQN2M.js} +9 -8
- package/dist/{plan-limits-B7AZKZ6U.js → plan-limits-GVLMARLS.js} +11 -10
- package/dist/{project-boot-WEQSKDD7.js → project-boot-YMHABZNL.js} +7 -2
- package/dist/{projection-worker-LRFFQ6JB.js → projection-worker-JUNR4VAH.js} +5 -4
- package/dist/{prospective-memory-A4GDTIWG.js → prospective-memory-NOGTSZC4.js} +8 -7
- package/dist/push-notifications-FIVZB27Y.js +60 -0
- package/dist/{reranker-YVTLJCFC.js → reranker-ZZYVYCQW.js} +3 -2
- package/dist/{retrieval-health-PK2ODTXM.js → retrieval-health-B7USNBNW.js} +1 -1
- package/dist/{review-polling-JFWRNQF6.js → review-polling-G7ZCVGXI.js} +31 -28
- package/dist/runtime/index.js +38 -35
- package/dist/{session-events-VMQBCUH3.js → session-events-HIULW2JW.js} +31 -28
- package/dist/{session-kill-telemetry-Z3W256T5.js → session-kill-telemetry-5FLZAMWE.js} +31 -28
- package/dist/session-lineage-AGOHSXIS.js +66 -0
- package/dist/{session-scope-2ADEVY3C.js → session-scope-64QIDBJS.js} +30 -27
- package/dist/setup-wizard-JHR2HYWC.js +35 -0
- package/dist/{shard-manager-DFLCDZT5.js → shard-manager-YEOHEOHL.js} +4 -3
- package/dist/{skill-refinement-APBYOSGX.js → skill-refinement-BYZNTHQJ.js} +9 -8
- package/dist/{stack-promote-SZYIPTFT.js → stack-promote-4WRGX5YI.js} +6 -5
- package/dist/{stack-release-EYRDEGPD.js → stack-release-HRUOH243.js} +93 -80
- package/dist/{stack-update-YWK2YXP6.js → stack-update-X5LCAIMH.js} +9 -4
- package/dist/{steward-gate-CIOBPNX6.js → steward-gate-LWTZRKBJ.js} +9 -8
- package/dist/{support-inbox-OAWGFRKW.js → support-inbox-HA7N3XFN.js} +5 -4
- package/dist/{task-enforcement-YAU6ZGDC.js → task-enforcement-4MFBYFXY.js} +37 -28
- package/dist/task-request-inbox-VSXZKKPQ.js +64 -0
- package/dist/{task-scope-44N7XP5N.js → task-scope-MWBLCI4L.js} +30 -27
- package/dist/{tasks-crud-IWVDREXG.js → tasks-crud-FXGSJNQG.js} +30 -27
- package/dist/tasks-notify-NHACVTKE.js +60 -0
- package/dist/{tasks-review-VDFWFETP.js → tasks-review-L3FTWM6K.js} +30 -27
- package/dist/{telemetry-upload-3X5ESEKM.js → telemetry-upload-OFC56N3C.js} +13 -12
- package/dist/{token-budget-WZGO22ME.js → token-budget-JHZJH2OU.js} +9 -8
- package/dist/{tool-capability-index-IFNZ6QUS.js → tool-capability-index-WZWVBI2R.js} +1 -1
- package/dist/{tool-telemetry-F7RWUNVK.js → tool-telemetry-MX4CODRA.js} +1 -1
- package/dist/tui/App.js +44 -41
- package/dist/{tui-data-KT7YGVQS.js → tui-data-OLCJT3X3.js} +30 -27
- package/dist/{typed-messages-TKDGVPHS.js → typed-messages-RCMPEKJN.js} +1 -1
- package/dist/{update-support-ZVRMECNQ.js → update-support-Q5QYK6TG.js} +21 -19
- package/dist/{work-state-heartbeat-CA4CN7DQ.js → work-state-heartbeat-FOF6RQSC.js} +1 -1
- package/dist/{worker-gate-52MVKYGZ.js → worker-gate-UEBG2QLF.js} +3 -2
- package/dist/{workflow-engine-ZAFBPVUP.js → workflow-engine-E7PG3R34.js} +2 -2
- package/dist/{worktree-NNVXVV6A.js → worktree-VOLK2GOS.js} +10 -9
- package/dist/{worktree-sweep-IM2ZQG6Z.js → worktree-sweep-AATRCA33.js} +11 -10
- package/package.json +8 -20
- package/postinstall.mjs +124 -0
- package/release-notes.json +18 -16
- package/stack.release.schema.json +4 -0
- package/dist/chunk-AFNRE2RV.js +0 -408
- package/dist/chunk-OSKWCKUC.js +0 -6
- package/dist/chunk-S3FIQCSM.js +0 -232
- package/dist/chunk-W6UB2AWP.js +0 -656
- package/dist/dreaming-WPMQJAXW.js +0 -60
- package/dist/exe-org-UK77DUU4.js +0 -73
- package/dist/memory-queue-client-RRNW2IFZ.js +0 -16
- package/dist/orchestrator-WV2YCHTK.js +0 -52
- package/dist/push-notifications-GOFTDDWW.js +0 -15
- package/dist/setup-wizard-26B36FMC.js +0 -14
- package/dist/tasks-notify-WK5HA77D.js +0 -57
- /package/dist/{chunk-BGYCUZYK.js → chunk-3NPMPEAC.js} +0 -0
- /package/dist/{chunk-YL2JH3XV.js → chunk-6C4UAKMS.js} +0 -0
- /package/dist/{chunk-U7RZIY74.js → chunk-7AY76CBP.js} +0 -0
- /package/dist/{chunk-WTH4CSAP.js → chunk-DFQEUZSI.js} +0 -0
- /package/dist/{chunk-YMCIZCNK.js → chunk-J34U3NT2.js} +0 -0
- /package/dist/{chunk-FVWI2AR4.js → chunk-LRSBJCDL.js} +0 -0
- /package/dist/{chunk-COHHVCFA.js → chunk-Q2DLJR3C.js} +0 -0
- /package/dist/{chunk-ZMYXQU4L.js → chunk-STDYMMOX.js} +0 -0
- /package/dist/{chunk-DSGFX3RT.js → chunk-YWN3XMPU.js} +0 -0
- /package/dist/{chunk-YMUZWC33.js → chunk-YYB5PMTK.js} +0 -0
- /package/dist/{core-memory-AATZRQEY.js → core-memory-BA7UCIR6.js} +0 -0
- /package/dist/{entity-boost-HLFG2CH3.js → entity-boost-VXXED26D.js} +0 -0
- /package/dist/{memory-isolation-CF6FYSXD.js → memory-isolation-3HQ6NNX3.js} +0 -0
- /package/dist/{message-queue-client-AX6KQK7T.js → message-queue-client-5XW7ZOK2.js} +0 -0
- /package/dist/{oauth-server-VE5ELXTF.js → oauth-server-H6EJUPEP.js} +0 -0
- /package/dist/{webhook-pipe-A4X4SCMW.js → webhook-pipe-QJRFZVKA.js} +0 -0
- /package/dist/{wiki-acl-GNIXYWHJ.js → wiki-acl-X67M7QT3.js} +0 -0
- /package/dist/{wiki-client-7RRYRSPS.js → wiki-client-57QWZIHQ.js} +0 -0
package/dist/bin/cli.js
CHANGED
|
@@ -25,10 +25,9 @@ Install: https://nodejs.org/
|
|
|
25
25
|
}
|
|
26
26
|
var args = process.argv.slice(2);
|
|
27
27
|
if (process.platform === "win32") {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
);
|
|
31
|
-
process.exit(0);
|
|
28
|
+
const { windowsRefusalText, WINDOWS_UNSUPPORTED_EXIT } = await import("../lib/platform-support.js");
|
|
29
|
+
process.stderr.write(windowsRefusalText());
|
|
30
|
+
process.exit(WINDOWS_UNSUPPORTED_EXIT);
|
|
32
31
|
}
|
|
33
32
|
if (args[0] === "--version" || args[0] === "-v") {
|
|
34
33
|
try {
|
|
@@ -81,7 +80,7 @@ Commands:
|
|
|
81
80
|
channel View/set update channel (stable|canary|pinned)
|
|
82
81
|
cloud Cloud sync setup and device linking
|
|
83
82
|
doctor Diagnose installation health
|
|
84
|
-
daemon Manage daemon lifecycle (status|reset-breaker|install --user|install --system)
|
|
83
|
+
daemon Manage daemon lifecycle (status|restart|stop|reset-breaker|install --user|install --system)
|
|
85
84
|
support test Verify support intake works
|
|
86
85
|
mcp List/enable/disable MCP servers for Claude, Codex, and OpenCode
|
|
87
86
|
reconcile-backlog Detect support records already shipped in code (report-only default)
|
|
@@ -109,7 +108,7 @@ if (args.includes("--global")) {
|
|
|
109
108
|
);
|
|
110
109
|
await runClaudeInstall();
|
|
111
110
|
} else if (args.includes("--commands-only")) {
|
|
112
|
-
const { copySlashCommands, resolvePackageRoot } = await import("../installer-
|
|
111
|
+
const { copySlashCommands, resolvePackageRoot } = await import("../installer-LORTXEPZ.js");
|
|
113
112
|
try {
|
|
114
113
|
const packageRoot = resolvePackageRoot();
|
|
115
114
|
const result = await copySlashCommands(packageRoot);
|
|
@@ -172,7 +171,7 @@ if (args.includes("--global")) {
|
|
|
172
171
|
break;
|
|
173
172
|
}
|
|
174
173
|
} else if (args[0] === "org") {
|
|
175
|
-
const { main: runOrg } = await import("../exe-org-
|
|
174
|
+
const { main: runOrg } = await import("../exe-org-TV7KW4D6.js");
|
|
176
175
|
await runOrg(args.slice(1));
|
|
177
176
|
} else if (args[0] === "mcp") {
|
|
178
177
|
const { main: runMcp } = await import("./exe-mcp.js");
|
|
@@ -180,7 +179,7 @@ if (args.includes("--global")) {
|
|
|
180
179
|
} else if (args[0] === "code-context") {
|
|
181
180
|
await runCodeContext(args.slice(1));
|
|
182
181
|
} else if (args[0] === "jobs") {
|
|
183
|
-
const { cancelBackgroundJob, formatJobs, listBackgroundJobs } = await import("../background-jobs-
|
|
182
|
+
const { cancelBackgroundJob, formatJobs, listBackgroundJobs } = await import("../background-jobs-Z6KHCWES.js");
|
|
184
183
|
const sub = args[1] ?? "status";
|
|
185
184
|
if (sub === "status" || sub === "list") {
|
|
186
185
|
console.log(formatJobs(listBackgroundJobs()));
|
|
@@ -201,7 +200,7 @@ if (args.includes("--global")) {
|
|
|
201
200
|
process.exit(1);
|
|
202
201
|
}
|
|
203
202
|
} else if (args[0] === "key") {
|
|
204
|
-
const { main: runKey } = await import("../exe-key-
|
|
203
|
+
const { main: runKey } = await import("../exe-key-O4KHCKZZ.js");
|
|
205
204
|
await runKey(args.slice(1));
|
|
206
205
|
} else if (args[0] === "grant") {
|
|
207
206
|
const { main: runGrant } = await import("./exe-grant.js");
|
|
@@ -259,7 +258,7 @@ if (args.includes("--global")) {
|
|
|
259
258
|
process.exit(1);
|
|
260
259
|
}
|
|
261
260
|
} else if (args[0] === "backfill-metadata") {
|
|
262
|
-
const { backfillMetadata } = await import("../backfill-metadata-
|
|
261
|
+
const { backfillMetadata } = await import("../backfill-metadata-CTSVPOC6.js");
|
|
263
262
|
let batchSize = 50;
|
|
264
263
|
let limit = 0;
|
|
265
264
|
let dryRun = false;
|
|
@@ -290,10 +289,10 @@ if (args.includes("--global")) {
|
|
|
290
289
|
process.exit(1);
|
|
291
290
|
}
|
|
292
291
|
} else if (args[0] === "export") {
|
|
293
|
-
const { runExeExport } = await import("../exe-export-
|
|
292
|
+
const { runExeExport } = await import("../exe-export-CFX2JAOJ.js");
|
|
294
293
|
await runExeExport(args.slice(1));
|
|
295
294
|
} else if (args[0] === "import") {
|
|
296
|
-
const { runExeImport } = await import("../exe-import-
|
|
295
|
+
const { runExeImport } = await import("../exe-import-ZD5QMFN2.js");
|
|
297
296
|
await runExeImport(args.slice(1));
|
|
298
297
|
} else if (args[0] === "import-history") {
|
|
299
298
|
const { runImportHistory } = await import("./import-history.js");
|
|
@@ -318,7 +317,7 @@ if (args.includes("--global")) {
|
|
|
318
317
|
const { initStore } = await import("../lib/store.js");
|
|
319
318
|
await initStore();
|
|
320
319
|
const { sendMessage } = await import("../lib/messaging.js");
|
|
321
|
-
const { getActiveAgent } = await import("../active-agent-
|
|
320
|
+
const { getActiveAgent } = await import("../active-agent-5RXOXM47.js");
|
|
322
321
|
const { agentId } = getActiveAgent();
|
|
323
322
|
const result = await sendMessage({
|
|
324
323
|
fromAgent: agentId,
|
|
@@ -342,7 +341,7 @@ ID: ${result.id}`);
|
|
|
342
341
|
process.exit(code);
|
|
343
342
|
} else if (args[0] === "doctor") {
|
|
344
343
|
if (args.includes("--drift")) {
|
|
345
|
-
const { runDrift } = await import("../exe-drift-
|
|
344
|
+
const { runDrift } = await import("../exe-drift-NUYEPGFR.js");
|
|
346
345
|
await runDrift(args.slice(1));
|
|
347
346
|
} else {
|
|
348
347
|
const { runCcDoctor } = await import("./cc-doctor.js");
|
|
@@ -352,7 +351,7 @@ ID: ${result.id}`);
|
|
|
352
351
|
const icon = r.pass ? "\x1B[32m\u2713\x1B[0m" : "\x1B[31m\u2717\x1B[0m";
|
|
353
352
|
console.log(` ${icon} ${r.name}: ${r.detail}`);
|
|
354
353
|
}
|
|
355
|
-
const { readBreakerAlert } = await import("../daemon-restart-circuit-breaker-
|
|
354
|
+
const { readBreakerAlert, readSelfHealStormAlert } = await import("../daemon-restart-circuit-breaker-SMTWFX27.js");
|
|
356
355
|
const alert = readBreakerAlert();
|
|
357
356
|
let breakerFailed = 0;
|
|
358
357
|
if (alert) {
|
|
@@ -365,6 +364,14 @@ ID: ${result.id}`);
|
|
|
365
364
|
} else {
|
|
366
365
|
console.log("\n \x1B[32m\u2713 restart circuit breaker: not tripped\x1B[0m");
|
|
367
366
|
}
|
|
367
|
+
const storm = readSelfHealStormAlert();
|
|
368
|
+
if (storm) {
|
|
369
|
+
breakerFailed = 1;
|
|
370
|
+
console.log("\n \x1B[33m\u26A0 daemon restart storm: ACTIVE\x1B[0m");
|
|
371
|
+
console.log(` ${String(storm.reason ?? "daemon is self-healing repeatedly")}`);
|
|
372
|
+
console.log(` self-heal restarts in window: ${String(storm.selfHealRestartsInWindow ?? "?")}`);
|
|
373
|
+
console.log(" inspect: exe-os doctor --restarts");
|
|
374
|
+
}
|
|
368
375
|
const totalFailed = failed + breakerFailed;
|
|
369
376
|
console.log(totalFailed === 0 ? "\n \x1B[32mAll checks passed\x1B[0m\n" : `
|
|
370
377
|
\x1B[31m${totalFailed} issue(s) found\x1B[0m
|
|
@@ -379,38 +386,110 @@ ID: ${result.id}`);
|
|
|
379
386
|
isRestartBreakerTripped,
|
|
380
387
|
restartBreakerStatePath,
|
|
381
388
|
restartBreakerAlertPath,
|
|
382
|
-
daemonLastExitPath
|
|
383
|
-
|
|
389
|
+
daemonLastExitPath,
|
|
390
|
+
readSelfHealStormAlert,
|
|
391
|
+
selfHealStormAlertPath
|
|
392
|
+
} = await import("../daemon-restart-circuit-breaker-SMTWFX27.js");
|
|
384
393
|
const { existsSync: existsSync2, readFileSync: readFileSync2 } = await import("fs");
|
|
385
394
|
if (sub === "install") {
|
|
386
395
|
const mode = args[2];
|
|
396
|
+
if (mode && mode !== "--user" && mode !== "--system") {
|
|
397
|
+
console.error("Usage: exe-os daemon install [--user|--system]");
|
|
398
|
+
process.exit(1);
|
|
399
|
+
}
|
|
400
|
+
if (process.platform === "linux") {
|
|
401
|
+
if (mode === "--system") {
|
|
402
|
+
console.error(" \x1B[31m\u2717\x1B[0m `--system` is macOS-only (LaunchDaemons). exe-os does not install a system-wide systemd unit.");
|
|
403
|
+
console.error(" On Linux use: exe-os daemon install --user (systemd --user, with lingering so it survives logout)");
|
|
404
|
+
process.exit(1);
|
|
405
|
+
}
|
|
406
|
+
const { setupLinuxSupervision } = await import("./install.js");
|
|
407
|
+
const res = setupLinuxSupervision();
|
|
408
|
+
if (!res.ok) {
|
|
409
|
+
console.error(" \x1B[31m\u2717\x1B[0m systemd supervision NOT installed \u2014 the daemon would run unsupervised.");
|
|
410
|
+
if (!res.daemon.ok) console.error(` ${res.daemon.unit}: ${res.daemon.detail}`);
|
|
411
|
+
if (!res.watchdog.ok) console.error(` ${res.watchdog.unit}: ${res.watchdog.detail}`);
|
|
412
|
+
process.exit(1);
|
|
413
|
+
}
|
|
414
|
+
console.log(` \x1B[32m\u2713\x1B[0m systemd user units active: ${res.daemon.unit}, ${res.watchdog.unit}`);
|
|
415
|
+
process.exit(0);
|
|
416
|
+
}
|
|
417
|
+
if (process.platform !== "darwin") {
|
|
418
|
+
console.error(` \x1B[31m\u2717\x1B[0m exe-os daemon install is not supported on ${process.platform} (launchd is macOS, systemd is Linux).`);
|
|
419
|
+
process.exit(1);
|
|
420
|
+
}
|
|
387
421
|
if (mode === "--system") {
|
|
388
422
|
const { installSystemLaunchDaemons } = await import("./install-launchd.js");
|
|
389
423
|
process.exit(installSystemLaunchDaemons());
|
|
390
424
|
}
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
console.
|
|
396
|
-
console.
|
|
397
|
-
|
|
425
|
+
const { setupDaemonKeepalive, setupWatchdog } = await import("./install.js");
|
|
426
|
+
const daemonRes = setupDaemonKeepalive();
|
|
427
|
+
const watchdogRes = setupWatchdog();
|
|
428
|
+
if (!daemonRes.ok || !watchdogRes.ok) {
|
|
429
|
+
console.error(" \x1B[31m\u2717\x1B[0m User LaunchAgents NOT fully registered \u2014 the daemon may be unsupervised.");
|
|
430
|
+
if (!daemonRes.ok) console.error(` com.askexe.exed: ${daemonRes.detail}`);
|
|
431
|
+
if (!watchdogRes.ok) console.error(` com.askexe.watchdog: ${watchdogRes.detail}`);
|
|
432
|
+
process.exit(1);
|
|
398
433
|
}
|
|
399
|
-
console.
|
|
400
|
-
|
|
434
|
+
console.log(" \x1B[32m\u2713\x1B[0m User LaunchAgents refreshed (default login-session domain).");
|
|
435
|
+
console.log(" For headless pre-login start: sudo exe-os daemon install --system");
|
|
436
|
+
process.exit(0);
|
|
437
|
+
} else if (sub === "restart") {
|
|
438
|
+
const { restartDaemonNow } = await import("../lib/exe-daemon-client.js");
|
|
439
|
+
const outcome = await restartDaemonNow("manual");
|
|
440
|
+
if (!outcome.ok) {
|
|
441
|
+
console.error(` \x1B[31m\u2717\x1B[0m Daemon restart declined: ${outcome.detail}`);
|
|
442
|
+
process.exit(1);
|
|
443
|
+
}
|
|
444
|
+
console.log(` \x1B[32m\u2713\x1B[0m ${outcome.detail}`);
|
|
445
|
+
if (!outcome.running) {
|
|
446
|
+
console.log(" Run 'exe-os daemon status' in a few seconds to confirm it came back.");
|
|
447
|
+
}
|
|
448
|
+
process.exit(0);
|
|
449
|
+
} else if (sub === "stop") {
|
|
450
|
+
const { stopDaemonNow } = await import("../lib/exe-daemon-client.js");
|
|
451
|
+
const outcome = await stopDaemonNow();
|
|
452
|
+
if (!outcome.ok) {
|
|
453
|
+
console.error(` \x1B[31m\u2717\x1B[0m ${outcome.detail}`);
|
|
454
|
+
process.exit(1);
|
|
455
|
+
}
|
|
456
|
+
console.log(` \x1B[32m\u2713\x1B[0m ${outcome.detail}`);
|
|
457
|
+
console.log(" Memory, tasks and MCP are DOWN until you run: \x1B[1mexe-os daemon restart\x1B[0m");
|
|
458
|
+
process.exit(0);
|
|
401
459
|
} else if (sub === "reset-breaker") {
|
|
402
460
|
resetRestartBreaker();
|
|
403
461
|
console.log(" \x1B[32m\u2713\x1B[0m Restart circuit breaker reset (crash counter + alert cleared).");
|
|
404
|
-
console.log("
|
|
462
|
+
console.log(" Now run: \x1B[1mexe-os daemon restart\x1B[0m");
|
|
463
|
+
console.log(" (a degraded daemon is still running, so nothing restarts it on its own).");
|
|
405
464
|
process.exit(0);
|
|
406
465
|
} else if (sub === "status" || !sub) {
|
|
407
466
|
const tripped = isRestartBreakerTripped();
|
|
467
|
+
if (process.platform === "linux") {
|
|
468
|
+
const { SYSTEMD_DAEMON_UNIT, SYSTEMD_WATCHDOG_UNIT, runCommand, isActiveOutput } = await import("../linux-systemd-LRW3BYSS.js");
|
|
469
|
+
console.log("");
|
|
470
|
+
for (const unit of [SYSTEMD_DAEMON_UNIT, SYSTEMD_WATCHDOG_UNIT]) {
|
|
471
|
+
const active = runCommand("systemctl", ["--user", "is-active", unit], 3e3);
|
|
472
|
+
const enabled = runCommand("systemctl", ["--user", "is-enabled", unit], 3e3).stdout.trim() || "not-installed";
|
|
473
|
+
const running = isActiveOutput(active.stdout);
|
|
474
|
+
console.log(
|
|
475
|
+
` ${unit}: ${running ? "\x1B[32mactive\x1B[0m" : `\x1B[31m${active.stdout.trim() || "inactive"}\x1B[0m`} (${enabled})` + (running ? "" : " \u2190 supervises nothing in this state; fix with: exe-os daemon install --user")
|
|
476
|
+
);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
408
479
|
console.log(`
|
|
409
480
|
Restart circuit breaker: ${tripped ? "\x1B[31mTRIPPED\x1B[0m" : "\x1B[32mnot tripped\x1B[0m"}`);
|
|
410
481
|
const alert = readBreakerAlert();
|
|
411
482
|
if (alert) console.log(`
|
|
412
483
|
${JSON.stringify(alert, null, 2)}
|
|
413
484
|
`);
|
|
485
|
+
const stormAlert = readSelfHealStormAlert();
|
|
486
|
+
console.log(` Self-heal restart storm: ${stormAlert ? "\x1B[33mACTIVE\x1B[0m" : "\x1B[32mnone\x1B[0m"}`);
|
|
487
|
+
if (stormAlert) {
|
|
488
|
+
console.log(`
|
|
489
|
+
${JSON.stringify(stormAlert, null, 2)}`);
|
|
490
|
+
console.log(` Alert file: ${selfHealStormAlertPath()}`);
|
|
491
|
+
console.log(" Inspect: exe-os doctor --restarts\n");
|
|
492
|
+
}
|
|
414
493
|
for (const [label, p] of [["state", restartBreakerStatePath()], ["last-exit", daemonLastExitPath()]]) {
|
|
415
494
|
if (existsSync2(p)) {
|
|
416
495
|
try {
|
|
@@ -423,7 +502,7 @@ ${JSON.stringify(alert, null, 2)}
|
|
|
423
502
|
if (!alert && !tripped) console.log(` Alert file: ${restartBreakerAlertPath()} (absent \u2014 healthy)`);
|
|
424
503
|
process.exit(tripped ? 1 : 0);
|
|
425
504
|
} else {
|
|
426
|
-
console.error("Usage: exe-os daemon <status|reset-breaker|install [--user|--system]>");
|
|
505
|
+
console.error("Usage: exe-os daemon <status|restart|stop|reset-breaker|install [--user|--system]>");
|
|
427
506
|
process.exit(1);
|
|
428
507
|
}
|
|
429
508
|
} else if (args[0] === "backup") {
|
|
@@ -472,13 +551,13 @@ ${JSON.stringify(alert, null, 2)}
|
|
|
472
551
|
if (result.preRestoreBackup) {
|
|
473
552
|
console.log(`Pre-restore snapshot saved: ${path.basename(result.preRestoreBackup)}`);
|
|
474
553
|
}
|
|
475
|
-
console.log("Restart the daemon
|
|
554
|
+
console.log("Restart the daemon so it stops serving the pre-restore database: exe-os daemon restart");
|
|
476
555
|
} else {
|
|
477
556
|
console.error("No backup available to restore.");
|
|
478
557
|
process.exit(1);
|
|
479
558
|
}
|
|
480
559
|
} else if (sub === "verify") {
|
|
481
|
-
const { verifyBackup } = await import("../backup-verify-
|
|
560
|
+
const { verifyBackup } = await import("../backup-verify-YJMSP24E.js");
|
|
482
561
|
let target;
|
|
483
562
|
const pathIdx = args.indexOf("--path");
|
|
484
563
|
if (pathIdx >= 0 && args[pathIdx + 1]) {
|
|
@@ -508,7 +587,7 @@ ${JSON.stringify(alert, null, 2)}
|
|
|
508
587
|
process.exit(1);
|
|
509
588
|
}
|
|
510
589
|
} else if (args[0] === "setup" || args[0] === "-setup" || args[0] === "--setup") {
|
|
511
|
-
const { runSetupWizard } = await import("../setup-wizard-
|
|
590
|
+
const { runSetupWizard } = await import("../setup-wizard-JHR2HYWC.js");
|
|
512
591
|
await runSetupWizard({
|
|
513
592
|
skipModel: args.includes("--skip-model"),
|
|
514
593
|
nonInteractive: args.includes("--non-interactive") || args.includes("-y") || args.includes("--yes"),
|
|
@@ -528,11 +607,11 @@ ${JSON.stringify(alert, null, 2)}
|
|
|
528
607
|
const { runStackUpdateCli } = await import("./stack-update.js");
|
|
529
608
|
await runStackUpdateCli(args.slice(1));
|
|
530
609
|
} else if (args[0] === "release") {
|
|
531
|
-
const { parseReleaseArgs, runStackRelease } = await import("../stack-release-
|
|
610
|
+
const { parseReleaseArgs, runStackRelease } = await import("../stack-release-HRUOH243.js");
|
|
532
611
|
const releaseFlags = parseReleaseArgs(args.slice(1));
|
|
533
612
|
await runStackRelease(releaseFlags);
|
|
534
613
|
} else if (args[0] === "stack-promote") {
|
|
535
|
-
const { runStackPromoteCli } = await import("../stack-promote-
|
|
614
|
+
const { runStackPromoteCli } = await import("../stack-promote-4WRGX5YI.js");
|
|
536
615
|
await runStackPromoteCli(args.slice(1));
|
|
537
616
|
} else if (args[0] === "preflight") {
|
|
538
617
|
const { runPreflightCli } = await import("./exe-preflight.js");
|
|
@@ -564,16 +643,16 @@ Post-deploy verification \u2014 8 runtime checks after stack-update.
|
|
|
564
643
|
`);
|
|
565
644
|
process.exit(report.failed > 0 ? 1 : 0);
|
|
566
645
|
} else if (args[0] === "snapshot") {
|
|
567
|
-
const { main: runSnapshot } = await import("../exe-snapshot-
|
|
646
|
+
const { main: runSnapshot } = await import("../exe-snapshot-P4YW62MR.js");
|
|
568
647
|
await runSnapshot(args.slice(1));
|
|
569
648
|
} else if (args[0] === "boot") {
|
|
570
|
-
const { projectBoot, parseBootArgs } = await import("../project-boot-
|
|
649
|
+
const { projectBoot, parseBootArgs } = await import("../project-boot-YMHABZNL.js");
|
|
571
650
|
const bootOpts = parseBootArgs(args.slice(1));
|
|
572
651
|
console.log(await projectBoot(bootOpts));
|
|
573
652
|
} else if (args[0] === "brand") {
|
|
574
653
|
const configIdx = args.indexOf("--config");
|
|
575
654
|
if (configIdx === -1 || !args[configIdx + 1]) {
|
|
576
|
-
const { loadBranding, BRANDING_PATH } = await import("../branding-
|
|
655
|
+
const { loadBranding, BRANDING_PATH } = await import("../branding-7MZDHTKN.js");
|
|
577
656
|
const b = loadBranding();
|
|
578
657
|
console.log(`
|
|
579
658
|
Brand: ${b.name}`);
|
|
@@ -592,7 +671,7 @@ Post-deploy verification \u2014 8 runtime checks after stack-update.
|
|
|
592
671
|
}
|
|
593
672
|
try {
|
|
594
673
|
const raw = JSON.parse(rf(configPath, "utf-8"));
|
|
595
|
-
const { validateBranding, saveBranding } = await import("../branding-
|
|
674
|
+
const { validateBranding, saveBranding } = await import("../branding-7MZDHTKN.js");
|
|
596
675
|
const result = validateBranding(raw);
|
|
597
676
|
if (!result.valid) {
|
|
598
677
|
console.error(`
|
|
@@ -681,7 +760,7 @@ cd into a project folder and run \x1B[1m${cooName}1\x1B[0m to boot your COO.
|
|
|
681
760
|
}
|
|
682
761
|
}
|
|
683
762
|
async function runCodeContext(ccArgs) {
|
|
684
|
-
const { buildCodeContextIndex, getCodeContextStats, searchCodeContext } = await import("../code-context-index-
|
|
763
|
+
const { buildCodeContextIndex, getCodeContextStats, searchCodeContext } = await import("../code-context-index-DWR6HS35.js");
|
|
685
764
|
const sub = ccArgs[0] ?? "status";
|
|
686
765
|
const projectRoot = valueAfter(ccArgs, "--project-root");
|
|
687
766
|
if (sub === "init" || sub === "index") {
|
|
@@ -762,7 +841,7 @@ function numberAfter(args2, flag) {
|
|
|
762
841
|
return Number.isFinite(parsed) ? parsed : void 0;
|
|
763
842
|
}
|
|
764
843
|
async function runClaudeInstall() {
|
|
765
|
-
const { runInstaller } = await import("../installer-
|
|
844
|
+
const { runInstaller } = await import("../installer-LORTXEPZ.js");
|
|
766
845
|
try {
|
|
767
846
|
await runInstaller();
|
|
768
847
|
} catch (err) {
|
|
@@ -774,7 +853,7 @@ async function runClaudeInstall() {
|
|
|
774
853
|
}
|
|
775
854
|
}
|
|
776
855
|
async function runOpenCodeInstall() {
|
|
777
|
-
const { runOpenCodeInstaller } = await import("../installer-
|
|
856
|
+
const { runOpenCodeInstaller } = await import("../installer-R4EKAE7F.js");
|
|
778
857
|
try {
|
|
779
858
|
await runOpenCodeInstaller();
|
|
780
859
|
} catch (err) {
|
|
@@ -786,7 +865,7 @@ async function runOpenCodeInstall() {
|
|
|
786
865
|
}
|
|
787
866
|
}
|
|
788
867
|
async function runCodexInstall() {
|
|
789
|
-
const { runCodexInstaller } = await import("../installer-
|
|
868
|
+
const { runCodexInstaller } = await import("../installer-CBHPY3RI.js");
|
|
790
869
|
try {
|
|
791
870
|
await runCodexInstaller();
|
|
792
871
|
} catch (err) {
|
|
@@ -798,7 +877,7 @@ async function runCodexInstall() {
|
|
|
798
877
|
}
|
|
799
878
|
}
|
|
800
879
|
async function runClaudeCheck() {
|
|
801
|
-
const { detectMcpNameCollisions } = await import("../installer-
|
|
880
|
+
const { detectMcpNameCollisions } = await import("../installer-LORTXEPZ.js");
|
|
802
881
|
const claudeDir = path.join(os.homedir(), ".claude");
|
|
803
882
|
const settingsPath = path.join(claudeDir, "settings.json");
|
|
804
883
|
const claudeJsonPath = path.join(os.homedir(), ".claude.json");
|
|
@@ -1299,12 +1378,12 @@ async function runCloudSync() {
|
|
|
1299
1378
|
console.error("Cloud sync is not configured. Run \x1B[36mexe-os cloud\x1B[0m to set up.");
|
|
1300
1379
|
process.exit(1);
|
|
1301
1380
|
}
|
|
1302
|
-
const {
|
|
1381
|
+
const { disposeStore } = await import("../lib/store.js");
|
|
1303
1382
|
const { cloudSync } = await import("../lib/cloud-sync.js");
|
|
1304
1383
|
const { getMasterKey } = await import("../lib/keychain.js");
|
|
1305
1384
|
const { initSyncCrypto } = await import("../lib/crypto.js");
|
|
1306
1385
|
const { assertCloudSyncReachable, withTimeout } = await import("./exe-cloud.js");
|
|
1307
|
-
const { runCloudSyncShutdown } = await import("../cloud-sync-shutdown-
|
|
1386
|
+
const { runCloudSyncShutdown } = await import("../cloud-sync-shutdown-43RY4ZBS.js");
|
|
1308
1387
|
let shuttingDown = false;
|
|
1309
1388
|
const handleShutdown = (signal) => {
|
|
1310
1389
|
if (shuttingDown) return;
|
|
@@ -1320,7 +1399,14 @@ async function runCloudSync() {
|
|
|
1320
1399
|
console.error(`Cloud sync aborted: ${err instanceof Error ? err.message : String(err)}`);
|
|
1321
1400
|
process.exit(1);
|
|
1322
1401
|
}
|
|
1323
|
-
await
|
|
1402
|
+
const { isPostgresBackendEnabled } = await import("../db-backend-ODVJ3Q3D.js");
|
|
1403
|
+
if (isPostgresBackendEnabled()) {
|
|
1404
|
+
const { initPostgresOnlyDatabase } = await import("../lib/database.js");
|
|
1405
|
+
await initPostgresOnlyDatabase();
|
|
1406
|
+
} else {
|
|
1407
|
+
const { fastDbInit } = await import("../fast-db-init-YZNPKBNX.js");
|
|
1408
|
+
await fastDbInit();
|
|
1409
|
+
}
|
|
1324
1410
|
const masterKey = await getMasterKey();
|
|
1325
1411
|
if (masterKey) {
|
|
1326
1412
|
initSyncCrypto(masterKey);
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import "../chunk-MLKGABMK.js";
|
|
2
3
|
|
|
3
4
|
// src/bin/customer-readiness.ts
|
|
4
5
|
import { readFileSync, existsSync, readdirSync, statSync } from "fs";
|
|
5
6
|
import { execSync } from "child_process";
|
|
6
7
|
import path from "path";
|
|
7
8
|
import { fileURLToPath } from "url";
|
|
9
|
+
|
|
10
|
+
// src/lib/scope-evidence.ts
|
|
11
|
+
var SCOPE_CALL = /\b(?:strictSessionScopeFilter|sessionScopeFilter)\s*\(/;
|
|
12
|
+
function hasSessionScopeEvidence(content) {
|
|
13
|
+
return SCOPE_CALL.test(content) || content.includes("session_scope") || content.includes("intentionally unscoped");
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// src/bin/customer-readiness.ts
|
|
8
17
|
var __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
9
18
|
var ROOT = path.resolve(__dirname, "../..");
|
|
10
19
|
var pass = 0;
|
|
@@ -75,7 +84,7 @@ test("Session scoping \u2014 all task query files import scope helper", () => {
|
|
|
75
84
|
const basename = path.basename(f);
|
|
76
85
|
if (exempt.some((e) => basename === e)) continue;
|
|
77
86
|
const content = readFileSync(path.join(ROOT, f), "utf8");
|
|
78
|
-
if (!
|
|
87
|
+
if (!hasSessionScopeEvidence(content)) {
|
|
79
88
|
unscoped.push(f);
|
|
80
89
|
}
|
|
81
90
|
}
|