@askexenow/exe-os 0.9.362 → 0.9.365
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/.env.customer.example +46 -2
- package/deploy/compose/.env.example +49 -2
- package/deploy/compose/cloudflared/config.yml.example +15 -8
- package/deploy/compose/docker-compose.yml +240 -34
- package/deploy/compose/generate-env.ts +88 -2
- package/deploy/compose/status.sh +30 -0
- package/deploy/compose/uptime-check.sh +39 -2
- package/deploy/compose/wiki-schema-guard.sh +302 -0
- package/deploy/stack-manifests/v0.9.json +232 -2
- package/dist/.dist-verified.json +3 -3
- package/dist/{active-agent-BPNEBKHI.js → active-agent-C6DPH43L.js} +10 -5
- package/dist/{active-agent-3FV5V7SS.js → active-agent-MGF7J3HB.js} +10 -5
- package/dist/agent-defs-generator-X7TVMPVB.js +240 -0
- package/dist/{agentic-ontology-RCVCJ6WB.js → agentic-ontology-CARDCG37.js} +1 -1
- package/dist/artifact-backup-767STHSW.js +209 -0
- package/dist/artifact-provenance-C7HQ267L.js +13 -0
- package/dist/{backfill-gate-LRX77SUD.js → backfill-gate-VX2RZTQV.js} +2 -2
- package/dist/{backfill-metadata-Y3DGVCK5.js → backfill-metadata-ANCJA6LA.js} +7 -7
- package/dist/{background-jobs-Z6KHCWES.js → background-jobs-LTPWCMA3.js} +2 -2
- package/dist/{backup-verify-TZPPUCLU.js → backup-verify-F7BHVEF7.js} +27 -14
- package/dist/{behavior-injection-JMGGWCWG.js → behavior-injection-XQ4B7DCF.js} +13 -12
- package/dist/{behaviors-TT6CMEKC.js → behaviors-R2IE3PEN.js} +12 -11
- package/dist/bin/age-ontology-load.js +2 -2
- package/dist/bin/agentic-ontology-backfill.js +9 -9
- package/dist/bin/agentic-reflection-backfill.js +10 -10
- package/dist/bin/agentic-semantic-label.js +9 -9
- package/dist/bin/backfill-conversations.js +10 -9
- package/dist/bin/backfill-responses.js +10 -9
- package/dist/bin/backfill-vectors.js +14 -13
- package/dist/bin/bulk-sync-postgres.js +23 -19
- package/dist/bin/cc-doctor.js +11 -8
- package/dist/bin/cleanup-stale-review-tasks.js +26 -24
- package/dist/bin/cli.js +29 -102
- package/dist/bin/customer-readiness.js +3 -1
- package/dist/bin/deferred-daemon-restart.js +115 -103
- package/dist/bin/exe-agent-config.js +5 -5
- package/dist/bin/exe-agent.js +14 -14
- package/dist/bin/exe-assign.js +12 -11
- package/dist/bin/exe-boot.js +60 -51
- package/dist/bin/exe-call.js +7 -7
- package/dist/bin/exe-cloud.js +26 -22
- package/dist/bin/exe-config-dump.js +5 -5
- package/dist/bin/exe-dispatch.js +30 -24
- package/dist/bin/exe-doctor.js +10 -9
- package/dist/bin/exe-export-behaviors.js +14 -13
- package/dist/bin/exe-forget.js +9 -9
- package/dist/bin/exe-gateway.js +9 -9
- package/dist/bin/exe-grant.js +5 -5
- package/dist/bin/exe-healthcheck.js +13 -8
- package/dist/bin/exe-heartbeat.js +36 -29
- package/dist/bin/exe-kill.js +30 -28
- package/dist/bin/exe-launch-agent.js +41 -37
- package/dist/bin/exe-mcp.js +5 -5
- package/dist/bin/exe-memory-reads.js +7 -7
- package/dist/bin/exe-new-employee.js +12 -11
- package/dist/bin/exe-os-mcp-proxy.js +5 -5
- package/dist/bin/exe-pending-messages.js +27 -25
- package/dist/bin/exe-pending-notifications.js +26 -24
- package/dist/bin/exe-pending-reviews.js +27 -25
- package/dist/bin/exe-rename.js +7 -7
- package/dist/bin/exe-review.js +29 -27
- package/dist/bin/exe-search.js +8 -8
- package/dist/bin/exe-session-cleanup.js +31 -29
- package/dist/bin/exe-settings.js +24 -20
- package/dist/bin/exe-start-codex.js +36 -21
- package/dist/bin/exe-start-opencode.js +15 -14
- package/dist/bin/exe-status.js +28 -25
- package/dist/bin/exe-support.js +5 -4
- package/dist/bin/exe-team.js +12 -6
- package/dist/bin/exe-verify-running-images.js +145 -0
- package/dist/bin/exe-watchdog.js +16 -6
- package/dist/bin/git-sweep.js +27 -25
- package/dist/bin/graph-backfill.js +10 -9
- package/dist/bin/graph-export.js +8 -8
- package/dist/bin/import-history.js +13 -11
- package/dist/bin/install.js +119 -107
- package/dist/bin/intercom-check.js +5 -5
- package/dist/bin/mcp-sessions.js +2 -2
- package/dist/bin/orchestration-metrics.js +6 -6
- package/dist/bin/postgres-agentic-reflection-backfill.js +4 -4
- package/dist/bin/postgres-agentic-semantic-backfill.js +3 -3
- package/dist/bin/pre-publish.js +1 -1
- package/dist/bin/reconcile-backlog.js +2 -2
- package/dist/bin/registry-proxy.js +1 -1
- package/dist/bin/scan-tasks.js +26 -24
- package/dist/bin/setup.js +4 -3
- package/dist/bin/shard-migrate.js +8 -8
- package/dist/bin/stack-update.js +87 -38
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{boot-generation-XABYKF5P.js → boot-generation-X45BSVZY.js} +5 -5
- package/dist/{boot-review-sections-2X5TFIGU.js → boot-review-sections-OBVRXXSF.js} +25 -23
- package/dist/{branch-hygiene-Z4IBWAOX.js → branch-hygiene-HFJ3HA62.js} +17 -10
- package/dist/{branding-7MZDHTKN.js → branding-GH43W3PU.js} +2 -2
- package/dist/build-manifest.json +1189 -1049
- package/dist/{capability-cards-O5UXDOOA.js → capability-cards-57FURUMR.js} +4 -4
- package/dist/{capacity-monitor-IPXM726A.js → capacity-monitor-QEL62JDO.js} +27 -25
- package/dist/{catchup-brief-EBIGDXOK.js → catchup-brief-PMXTCASA.js} +30 -28
- package/dist/{chunk-UO5QJ2RX.js → chunk-22YQBVMO.js} +4 -4
- package/dist/chunk-2ADYTOHQ.js +189 -0
- package/dist/{chunk-NO5KHKKB.js → chunk-2CWS374F.js} +1 -1
- package/dist/{chunk-NAHCSQWT.js → chunk-2ESB5SDP.js} +19 -7
- package/dist/{chunk-CY5NVDTH.js → chunk-2FYIMTQE.js} +9 -5
- package/dist/{chunk-SC6WDF3Q.js → chunk-2RQT7TED.js} +2 -2
- package/dist/{chunk-UWEFIIEG.js → chunk-3CIMDFXG.js} +1 -1
- package/dist/{chunk-E7PL3T2U.js → chunk-3JNVB5LG.js} +1 -1
- package/dist/{chunk-7SY2NOMQ.js → chunk-3THNS2T7.js} +1 -1
- package/dist/{chunk-XJIRUTGJ.js → chunk-45EQTS7B.js} +1 -1
- package/dist/{chunk-YZUHSV24.js → chunk-4LWBC7CM.js} +1 -1
- package/dist/{chunk-DKRDU2AX.js → chunk-4QKKLK3C.js} +14 -14
- package/dist/{chunk-WP2TGH5R.js → chunk-52TIQJEQ.js} +2 -2
- package/dist/{chunk-LG37UBBE.js → chunk-5CBGH6RA.js} +5 -5
- package/dist/{chunk-W3LKIQJ2.js → chunk-6GQYPJPG.js} +22 -16
- package/dist/{chunk-I3SF6QGV.js → chunk-6Q263OZE.js} +1 -1
- package/dist/{chunk-XSYQ5EPE.js → chunk-7C4FUNVO.js} +11 -11
- package/dist/{chunk-P7CV4SHQ.js → chunk-7Y6AQWVT.js} +21 -10
- package/dist/{chunk-NGDXBN3M.js → chunk-A6PDF4BO.js} +2 -2
- package/dist/chunk-A7XLR3K7.js +45 -0
- package/dist/{chunk-7H3AZNQ7.js → chunk-AGQAGOQN.js} +9 -9
- package/dist/{chunk-VDMFVUSY.js → chunk-ANPE3TT3.js} +3 -3
- package/dist/{chunk-NE4QI2GX.js → chunk-BATQKSLI.js} +2 -2
- package/dist/{chunk-AOMFYUPT.js → chunk-BEHLIRRJ.js} +2 -2
- package/dist/{chunk-6EM6USV7.js → chunk-BNHAZ65R.js} +42 -50
- package/dist/{chunk-HLU52KTO.js → chunk-BRLS5OLZ.js} +257 -36
- package/dist/{chunk-QCJT265O.js → chunk-BY7WWPRM.js} +1 -1
- package/dist/{chunk-Z67DIJKT.js → chunk-C3UAQ3JG.js} +1 -1
- package/dist/{chunk-MZYNW5OY.js → chunk-CDUB5Q6J.js} +1 -1
- package/dist/{chunk-5H3RHWRE.js → chunk-CKG6CVKI.js} +1 -1
- package/dist/{chunk-WH2VVEGD.js → chunk-CMBF5WCL.js} +56 -2
- package/dist/{chunk-JYKZVAS6.js → chunk-CPILYY2K.js} +1 -1
- package/dist/{chunk-XTGR3LMF.js → chunk-CW2UCKHS.js} +2 -2
- package/dist/{chunk-32FEF5BW.js → chunk-CWBFOAGM.js} +2 -2
- package/dist/{chunk-V5I5N7NC.js → chunk-DEFSN2FQ.js} +3 -3
- package/dist/{chunk-HAXCUCJC.js → chunk-DJK45U7B.js} +1 -1
- package/dist/{chunk-MZZN5GFC.js → chunk-DQ5KHWFD.js} +1 -1
- package/dist/{chunk-SLBOKYYQ.js → chunk-DWAQOEXL.js} +2 -2
- package/dist/{chunk-T2RZU7JA.js → chunk-DYWGIPVP.js} +7 -7
- package/dist/{chunk-6DTALXOA.js → chunk-E5HAY3DQ.js} +1 -1
- package/dist/{chunk-D5CY4E7I.js → chunk-EHHMNKOA.js} +1 -1
- package/dist/{chunk-54USDN5Q.js → chunk-EJ4522YM.js} +1 -1
- package/dist/{chunk-URNVIZXU.js → chunk-EKVTRI3N.js} +52 -6
- package/dist/{chunk-KID6T2A4.js → chunk-EMZHB767.js} +44 -35
- package/dist/{chunk-KBI4FVBZ.js → chunk-EPDNWY5P.js} +111 -22
- package/dist/{chunk-AQO3BT3I.js → chunk-EPNWEOOE.js} +13 -13
- package/dist/{chunk-5C6ZIJ7J.js → chunk-ESTR7QUP.js} +1 -1
- package/dist/{chunk-Q2VQNAPU.js → chunk-EVPBYX2Z.js} +2 -2
- package/dist/{chunk-CVYDJ2TW.js → chunk-EWCEUO65.js} +1 -1
- package/dist/{chunk-RNSAVQEU.js → chunk-EWZYFG5Q.js} +8 -3
- package/dist/{chunk-R7F6HKTH.js → chunk-EXDW3E2R.js} +3 -1
- package/dist/{chunk-TY4JLBFO.js → chunk-F2S3M5MB.js} +3 -3
- package/dist/{chunk-BT2PUK3S.js → chunk-FXPAUDCZ.js} +1 -1
- package/dist/{chunk-3C7NE4JE.js → chunk-G2EAYH4U.js} +1 -1
- package/dist/{chunk-WDA2KAV7.js → chunk-GSJLB6JI.js} +1 -1
- package/dist/{chunk-M67ARGXY.js → chunk-H37FSTF2.js} +1 -1
- package/dist/{chunk-ZR4CQBAP.js → chunk-H74466TM.js} +1 -1
- package/dist/{chunk-3BAGFZFN.js → chunk-HHGOCBVQ.js} +9 -9
- package/dist/{working-memory-BACVOAIV.js → chunk-HSFBNCNC.js} +3 -3
- package/dist/{chunk-PF7EQSE5.js → chunk-IIZITKBV.js} +6 -6
- package/dist/{chunk-2FA4PYYX.js → chunk-IM2I7OOS.js} +1 -1
- package/dist/{chunk-DSKEYEL2.js → chunk-IXEFO6HD.js} +3 -3
- package/dist/{chunk-TN2E6ZCM.js → chunk-J4U5Z7VX.js} +214 -58
- package/dist/{chunk-PU7UYQRC.js → chunk-J5EYOBFF.js} +1 -1
- package/dist/{chunk-RWKX2TK5.js → chunk-J6I7X272.js} +1 -1
- package/dist/{chunk-BDLRTLXY.js → chunk-JITNFE4W.js} +6 -2
- package/dist/{chunk-PUMH7JSB.js → chunk-JNVQGLPX.js} +3 -3
- package/dist/{chunk-VAOUB2TK.js → chunk-JTB5V6BV.js} +1 -1
- package/dist/{chunk-QYRI25IP.js → chunk-JUOZLXLH.js} +2 -2
- package/dist/{chunk-RYRNY6IF.js → chunk-JYFYIGYK.js} +2 -2
- package/dist/{chunk-2PRAXZWM.js → chunk-KOYGRP2L.js} +10 -5
- package/dist/{chunk-4AFD4R35.js → chunk-KRUYQFSH.js} +5 -5
- package/dist/chunk-L25OAFOU.js +93 -0
- package/dist/{chunk-FUQ2OSDV.js → chunk-L2VZBPJJ.js} +25 -8
- package/dist/{chunk-LCDW2HUL.js → chunk-LHOKWZKL.js} +1 -1
- package/dist/{chunk-BN26LSME.js → chunk-LKYGSJ2E.js} +13 -2
- package/dist/chunk-LNOS24GV.js +214 -0
- package/dist/{chunk-O32HTNRX.js → chunk-LZKYVMBY.js} +13 -4
- package/dist/{chunk-35FD67ZB.js → chunk-M7EES2KM.js} +3 -3
- package/dist/chunk-MBBFL2SP.js +45 -0
- package/dist/{chunk-4R2WD6T3.js → chunk-MPQXQ5IE.js} +2 -2
- package/dist/{chunk-QQMYD4M7.js → chunk-MXEIZUXG.js} +1 -1
- package/dist/{chunk-6QJXFLNN.js → chunk-MZJBUAC3.js} +5 -5
- package/dist/chunk-NEHOQ3P2.js +19 -0
- package/dist/{chunk-BRZR76TS.js → chunk-NJFJWQNN.js} +49 -14
- package/dist/{chunk-Q7J2SQJ6.js → chunk-NO3M2AFM.js} +100 -32
- package/dist/{gotrue-session-2IT7MDGW.js → chunk-NUTZJZKW.js} +7 -8
- package/dist/{chunk-6UZDGEGQ.js → chunk-NV6A5HDN.js} +71 -1
- package/dist/{chunk-ZI3HA3XW.js → chunk-O2MEBF23.js} +3 -3
- package/dist/{chunk-V6YLIDLK.js → chunk-ODBRU6BF.js} +577 -230
- package/dist/{chunk-6N3HUOV3.js → chunk-OFGFRT5J.js} +2 -2
- package/dist/{chunk-HKQ7UTSE.js → chunk-OPNROU5B.js} +1 -1
- package/dist/{chunk-SQM4ZTL2.js → chunk-ORNCMRIX.js} +60 -33
- package/dist/{chunk-RUUX2ZST.js → chunk-P47MPWNU.js} +1 -1
- package/dist/{org-key-admin-4W6LZ5KZ.js → chunk-P5XTVIEC.js} +62 -17
- package/dist/{chunk-OZNCAMS3.js → chunk-POPRJKAY.js} +122 -20
- package/dist/{chunk-SRFRUN66.js → chunk-PPGPCWRC.js} +5 -5
- package/dist/{chunk-B6PFGUYJ.js → chunk-PVEM537A.js} +46 -5
- package/dist/{chunk-QJBX3MBV.js → chunk-Q7BU5Q6I.js} +3 -3
- package/dist/{chunk-SXKIGBNF.js → chunk-QFIVK3G5.js} +1 -1
- package/dist/{chunk-BRIZ6OZ3.js → chunk-QMSEL5YS.js} +81 -23
- package/dist/{chunk-BJEQBKGH.js → chunk-QYJANQWC.js} +8 -8
- package/dist/{chunk-4U56FZ7B.js → chunk-R7RM766N.js} +3 -3
- package/dist/{chunk-QI25QRUP.js → chunk-RD4E5G3B.js} +2 -2
- package/dist/{chunk-QP53XLC5.js → chunk-RHX6MNWY.js} +1 -1
- package/dist/chunk-RIECV7SR.js +234 -0
- package/dist/{chunk-3YBJ36UX.js → chunk-RLDMUSRM.js} +2 -2
- package/dist/{chunk-CXQ724WH.js → chunk-RVWALVDT.js} +2 -2
- package/dist/{chunk-VWTUKKUF.js → chunk-RZIKSE6N.js} +10 -4
- package/dist/chunk-SBAU735L.js +328 -0
- package/dist/{chunk-XRCX6R5S.js → chunk-SBJV2PCU.js} +1 -1
- package/dist/chunk-SO7KTH3Q.js +27 -0
- package/dist/{chunk-327Q53AS.js → chunk-SP37DONS.js} +17 -6
- package/dist/{chunk-KA4WVDLX.js → chunk-T6S45OLV.js} +4 -4
- package/dist/chunk-TCTED52S.js +120 -0
- package/dist/{chunk-HLQ4MS42.js → chunk-TO6TB75E.js} +4 -4
- package/dist/{chunk-465RCKVI.js → chunk-U373MEF5.js} +6 -6
- package/dist/{chunk-AL4HXKDJ.js → chunk-VGE6IHZB.js} +10 -10
- package/dist/{chunk-WBG7XYVR.js → chunk-VHJVD3MZ.js} +8 -0
- package/dist/{chunk-ZZEKOI2M.js → chunk-VMJ2UH4S.js} +1 -1
- package/dist/{chunk-3ICF4IAZ.js → chunk-VS4LPG66.js} +1 -1
- package/dist/{chunk-E3YI6FVJ.js → chunk-VV5EZZNT.js} +1 -1
- package/dist/{chunk-OPU3NYOO.js → chunk-W2IRQJ6R.js} +12 -0
- package/dist/{chunk-PV5BIXT6.js → chunk-WR75WUEP.js} +1 -1
- package/dist/{chunk-XUB4GFPN.js → chunk-WYLFDSIE.js} +144 -99
- package/dist/{chunk-4L33OFU4.js → chunk-X2P43TB2.js} +6 -3
- package/dist/chunk-X2X3IGZU.js +215 -0
- package/dist/{chunk-KIKB6FY3.js → chunk-X6A2VWVJ.js} +2 -2
- package/dist/chunk-XMVSLLED.js +38 -0
- package/dist/{chunk-KDMVVHZH.js → chunk-XTWHNLGD.js} +95 -23
- package/dist/{chunk-QY3TM2T3.js → chunk-YMJOLEPE.js} +4 -4
- package/dist/{chunk-RFKRCVGW.js → chunk-YYA5LXCT.js} +1 -1
- package/dist/{chunk-HSKABJE6.js → chunk-ZDUO6QBH.js} +5 -10
- package/dist/{chunk-PDJWHL63.js → chunk-ZEKCHV43.js} +4 -4
- package/dist/{chunk-23KWUA7Z.js → chunk-ZNEBZCZR.js} +53 -2
- package/dist/chunk-ZNUJFX7L.js +135 -0
- package/dist/{chunk-TP7RXGMP.js → chunk-ZRKEUCUZ.js} +315 -67
- package/dist/{chunk-6Y3KUO7Q.js → chunk-ZSZPMUNX.js} +244 -21
- package/dist/{chunk-4P2BFNSB.js → chunk-ZVTKWWLV.js} +2 -2
- package/dist/{chunk-RCOIKTHM.js → chunk-ZZXMB5F2.js} +1 -1
- package/dist/{cleanup-graph-garbage-6F22Y5SD.js → cleanup-graph-garbage-CAA625RJ.js} +10 -9
- package/dist/cloud-sync-command-DBB7WRHL.js +96 -0
- package/dist/cloud-sync-db-init-V7IB23W5.js +46 -0
- package/dist/{cloud-sync-shutdown-FWERMZB5.js → cloud-sync-shutdown-2D3B73CJ.js} +10 -4
- package/dist/{cloud-sync-state-DJRZORFI.js → cloud-sync-state-5DFKLWNB.js} +1 -1
- package/dist/{co-activation-UEEDCM5U.js → co-activation-JVN7EBS6.js} +4 -4
- package/dist/{co-occurrence-W6OPFRSY.js → co-occurrence-526PTFGT.js} +8 -7
- package/dist/{code-context-index-DWR6HS35.js → code-context-index-XOP6TLPZ.js} +5 -4
- package/dist/{conversation-entity-extractor-LWUIH3UB.js → conversation-entity-extractor-JO56DB2E.js} +9 -4
- package/dist/{conversation-wiki-populator-5EGRW2UZ.js → conversation-wiki-populator-EBUZXYEU.js} +1 -1
- package/dist/{crdt-sync-NHJX3ZJD.js → crdt-sync-LIJLZKFE.js} +2 -2
- package/dist/{crm-webhook-OY467ATC.js → crm-webhook-55F7Y6D2.js} +2 -2
- package/dist/{cto-delegation-gate-XH4YSQVC.js → cto-delegation-gate-QIYV4KFO.js} +41 -24
- package/dist/daemon-auth-SSPY5ODS.js +46 -0
- package/dist/{daemon-orchestration-7425ZVNH.js → daemon-orchestration-Q3GJA2JJ.js} +46 -30
- package/dist/{daemon-ready-VGPSRI3Z.js → daemon-ready-MKBH4QWD.js} +1 -1
- package/dist/{daemon-restart-report-HZU5LWXN.js → daemon-restart-report-EIVD6WDJ.js} +1 -1
- package/dist/db-integrity-events-5DTASXJF.js +22 -0
- package/dist/{db-restore-events-TFCZ4CPM.js → db-restore-events-2FI4ZMKA.js} +1 -1
- package/dist/{doc-graph-extractor-RR2VSO4W.js → doc-graph-extractor-P46R4QME.js} +13 -8
- package/dist/{documents-TRZ4R2ZW.js → documents-7KFEREWO.js} +12 -11
- package/dist/{dreaming-MAMZAPYW.js → dreaming-JMUXBAPU.js} +29 -27
- package/dist/employee-boot-brief-HN63D2BY.js +71 -0
- package/dist/{exe-drift-VBWB5E6S.js → exe-drift-7J7GX7DP.js} +5 -5
- package/dist/{exe-export-XJJTVVT7.js → exe-export-KJ7B2OBU.js} +14 -13
- package/dist/{exe-import-G6O7JFNZ.js → exe-import-HPZDWKGE.js} +14 -13
- package/dist/{exe-key-A2WJLLTM.js → exe-key-2PREP464.js} +117 -105
- package/dist/{exe-org-HXF4XBB3.js → exe-org-VEIISATF.js} +88 -26
- package/dist/{exe-snapshot-TL3TLKLR.js → exe-snapshot-JXQFLUKA.js} +33 -40
- package/dist/{fast-db-init-SO2XUQ7T.js → fast-db-init-SCXJXOYX.js} +1 -1
- package/dist/{founder-context-IOCADC66.js → founder-context-U2SZPLYV.js} +4 -3
- package/dist/{founder-monitor-envelope-SMILO4BT.js → founder-monitor-envelope-5KTKNL5G.js} +4 -4
- package/dist/fts-integrity-LKAZEZJE.js +96 -0
- package/dist/gateway/index.js +19 -19
- package/dist/{git-staleness-I6WT7EXV.js → git-staleness-S4NDR7NX.js} +4 -4
- package/dist/{global-procedures-3RMO6C3C.js → global-procedures-ZOFTOXIR.js} +6 -6
- package/dist/gotrue-session-ODZ2ERJX.js +25 -0
- package/dist/{graph-auto-extract-NKTYPD2I.js → graph-auto-extract-CLVTSUSB.js} +8 -7
- package/dist/{graph-rag-EOGPZOYI.js → graph-rag-LSJLWGXV.js} +4 -3
- package/dist/{hook-integrity-RTBF2BL2.js → hook-integrity-SGTKBL6W.js} +1 -1
- package/dist/{hook-prefetch-V5KCGW2N.js → hook-prefetch-BDSLB6F4.js} +26 -24
- package/dist/hooks/bug-report-worker.js +30 -28
- package/dist/hooks/codex-stop-task-finalizer.js +32 -30
- package/dist/hooks/commit-complete.js +29 -27
- package/dist/hooks/error-recall.js +11 -10
- package/dist/hooks/exe-heartbeat-hook.js +7 -6
- package/dist/hooks/ingest-worker.js +10 -9
- package/dist/hooks/ingest.js +18 -16
- package/dist/hooks/instructions-loaded.js +12 -8
- package/dist/hooks/manifest.json +20 -20
- package/dist/hooks/notification.js +8 -7
- package/dist/hooks/post-compact.js +7 -6
- package/dist/hooks/post-tool-combined.js +33 -14
- package/dist/hooks/pre-compact.js +31 -28
- package/dist/hooks/pre-tool-use.js +61 -34
- package/dist/hooks/prompt-submit.js +45 -42
- package/dist/hooks/session-end.js +40 -35
- package/dist/hooks/session-start.js +29 -71
- package/dist/hooks/stop.js +42 -36
- package/dist/hooks/subagent-stop.js +49 -33
- package/dist/hooks/summary-worker.js +35 -33
- package/dist/index.js +40 -38
- package/dist/{installer-G67M3DME.js → installer-EA7T3PBD.js} +7 -7
- package/dist/{installer-L3ZKMOPU.js → installer-KCEM4RCG.js} +7 -7
- package/dist/{installer-QBWZSYDG.js → installer-RC2JCKSE.js} +9 -7
- package/dist/{intercom-queue-R5LSXD3V.js → intercom-queue-6DZPHHQ2.js} +25 -23
- package/dist/{key-backup-status-3RC6XTUX.js → key-backup-status-6L2ARCXW.js} +1 -1
- package/dist/lib/agent-config.js +2 -2
- package/dist/lib/cloud-sync.js +25 -19
- package/dist/lib/config.js +1 -1
- package/dist/lib/consolidation.js +9 -9
- package/dist/lib/crypto.js +3 -1
- package/dist/lib/database.js +18 -4
- package/dist/lib/db-backup.js +4 -2
- package/dist/lib/db-daemon-client.js +5 -4
- package/dist/lib/db-write-worker.js +3 -3
- package/dist/lib/db.js +18 -4
- package/dist/lib/device-registry.js +2 -2
- package/dist/lib/embed-worker.js +1 -1
- package/dist/lib/embedder.js +5 -4
- package/dist/lib/employee-templates.js +7 -7
- package/dist/lib/employees.js +4 -4
- package/dist/lib/exe-daemon-client.js +4 -3
- package/dist/lib/exe-daemon.js +473 -206
- package/dist/lib/hybrid-search.js +8 -8
- package/dist/lib/identity-templates.js +1 -1
- package/dist/lib/identity.js +4 -4
- package/dist/lib/license.js +6 -4
- package/dist/lib/messaging.js +26 -24
- package/dist/lib/post-tool-memory.js +2 -2
- package/dist/lib/registry-proxy.js +3 -1
- package/dist/lib/reminders.js +5 -5
- package/dist/lib/schedules.js +8 -8
- package/dist/lib/session-registry.js +6 -6
- package/dist/lib/skill-learning.js +14 -12
- package/dist/lib/stack-invariants.js +21 -0
- package/dist/lib/status-brief.js +3 -3
- package/dist/lib/store.js +7 -7
- package/dist/lib/task-router.js +5 -5
- package/dist/lib/tasks.js +27 -25
- package/dist/lib/tmux-routing.js +25 -23
- package/dist/lib/token-spend.js +5 -5
- package/dist/{license-gate-6R3F3NQR.js → license-gate-HMSMUIAU.js} +5 -4
- package/dist/{license-sync-VBJCXBAP.js → license-sync-FBCMPC4J.js} +4 -3
- package/dist/{mailbox-inbox-CP2VRBXZ.js → mailbox-inbox-4MEUOL3J.js} +2 -2
- package/dist/{mailbox-outbox-HXI7DYNC.js → mailbox-outbox-J6WIF3UY.js} +1 -1
- package/dist/mcp/register-tools.js +114 -102
- package/dist/mcp/server.js +120 -108
- package/dist/mcp/tools/complete-reminder.js +6 -6
- package/dist/mcp/tools/create-reminder.js +6 -6
- package/dist/mcp/tools/create-task.js +30 -27
- package/dist/mcp/tools/deactivate-behavior.js +15 -13
- package/dist/mcp/tools/list-reminders.js +6 -6
- package/dist/mcp/tools/list-tasks.js +30 -27
- package/dist/mcp/tools/send-message.js +29 -26
- package/dist/mcp/tools/update-task.js +28 -26
- package/dist/{mcp-http-config-BWX7AMAZ.js → mcp-http-config-YKJN52HG.js} +5 -5
- package/dist/{mcp-session-identity-GOBGICLI.js → mcp-session-identity-QLUVYWPR.js} +25 -23
- package/dist/{memory-cards-4EXX3BQS.js → memory-cards-K2OSX4AW.js} +7 -7
- package/dist/{memory-graph-extractor-OYVZIJ3R.js → memory-graph-extractor-YLTSKLSY.js} +9 -8
- package/dist/{memory-poisoning-defense-AHOD2EBX.js → memory-poisoning-defense-IPO4ADRL.js} +4 -4
- package/dist/{memory-pressure-watchdog-COJC3OYS.js → memory-pressure-watchdog-ZI3TH2OF.js} +26 -24
- package/dist/{memory-queue-4VN3DTOE.js → memory-queue-QJNWKWKG.js} +2 -2
- package/dist/{memory-queue-client-OI4LDT4W.js → memory-queue-client-HIHCA3W4.js} +6 -5
- package/dist/{memory-reflection-V2SNAUIB.js → memory-reflection-ZKVRU3NT.js} +4 -4
- package/dist/{monitor-grants-W3ISOLMC.js → monitor-grants-BW2WL4IU.js} +3 -3
- package/dist/{notification-ledger-J6Q2GAYU.js → notification-ledger-4REL6M3T.js} +27 -25
- package/dist/{notifications-56TP36IK.js → notifications-UXJUAP3C.js} +25 -23
- package/dist/{orchestration-events-CKQ756NA.js → orchestration-events-GMRGGBMN.js} +5 -5
- package/dist/{orchestration-phase-ZJ4XVNFO.js → orchestration-phase-UDS24CVQ.js} +2 -2
- package/dist/{orchestrator-ERSQ3KNT.js → orchestrator-5TV75HDJ.js} +27 -25
- package/dist/{org-brief-session-FSZ3QJDN.js → org-brief-session-7AZZEO3F.js} +13 -13
- package/dist/{org-consent-policy-BN7MKCZ2.js → org-consent-policy-XT6UZENB.js} +2 -2
- package/dist/{org-join-HTQ57JYH.js → org-join-BMBQDMVF.js} +10 -7
- package/dist/org-key-admin-SCCVVE2H.js +38 -0
- package/dist/{org-key-pin-OTOKAELD.js → org-key-pin-5WUSPGVN.js} +3 -3
- package/dist/{org-membership-SML6GCHP.js → org-membership-ESALTLLN.js} +4 -4
- package/dist/{org-partner-config-XQGOB7EJ.js → org-partner-config-YKHPDPZR.js} +6 -6
- package/dist/{org-partner-runtime-RNNUL5IN.js → org-partner-runtime-WLZAZJIY.js} +14 -14
- package/dist/{org-row-visibility-JZFJ3YRJ.js → org-row-visibility-A5XM4MVO.js} +1 -1
- package/dist/{pipeline-router-IUENNTAY.js → pipeline-router-UEVXDUHR.js} +5 -5
- package/dist/{plan-limits-ZUII366B.js → plan-limits-QEP32X4W.js} +8 -7
- package/dist/{platform-procedures-2VQGBJU7.js → platform-procedures-44NDFTB6.js} +1 -1
- package/dist/{postinstall-failure-A7WTAXD6.js → postinstall-failure-B2JHNFPM.js} +2 -2
- package/dist/{project-boot-3DFY5F35.js → project-boot-LEZSK3W7.js} +9 -1
- package/dist/project-name-ILJTETUE.js +14 -0
- package/dist/{projection-worker-MBWUPB5O.js → projection-worker-GMRC6SBH.js} +4 -4
- package/dist/{prospective-memory-GHE5ORN4.js → prospective-memory-QLHSAPSG.js} +4 -4
- package/dist/{push-notifications-PTQ5DHCD.js → push-notifications-GKRPXOGI.js} +26 -24
- package/dist/reproject-worktree-memories-IXYGHTGA.js +224 -0
- package/dist/{reranker-NUIGAPA3.js → reranker-GB4VEMUV.js} +2 -2
- package/dist/{retrieval-health-XHCERQPG.js → retrieval-health-QIBPBGN6.js} +5 -1
- package/dist/{review-polling-CYBCBHZA.js → review-polling-MU47NQ2N.js} +26 -24
- package/dist/runtime/index.js +37 -35
- package/dist/seat-benefit-VDQJYJOB.js +17 -0
- package/dist/{session-events-X33W4JNA.js → session-events-YMQ3VGBJ.js} +26 -24
- package/dist/{session-kill-telemetry-I2F5PUIW.js → session-kill-telemetry-VGPKE57M.js} +26 -24
- package/dist/{session-mcp-config-YKNXG5DW.js → session-mcp-config-F7KATWOF.js} +10 -1
- package/dist/{session-scope-WXP4F7OF.js → session-scope-P46KAHXQ.js} +26 -24
- package/dist/{setup-wizard-2CTVITIX.js → setup-wizard-BRNHSJ4U.js} +4 -3
- package/dist/{shard-manager-YEOHEOHL.js → shard-manager-UROHZE46.js} +2 -2
- package/dist/{skill-refinement-VDR5OT4V.js → skill-refinement-NLYDSFEH.js} +5 -5
- package/dist/{stack-promote-XVC7FRJW.js → stack-promote-NHFTNIM2.js} +7 -5
- package/dist/{stack-release-6PWAACRM.js → stack-release-AQVKZUS7.js} +7 -5
- package/dist/{stack-update-24VRBQ3U.js → stack-update-LLX5KT7G.js} +38 -6
- package/dist/{steward-gate-2ZNYDVFO.js → steward-gate-JKHYFAHA.js} +5 -5
- package/dist/subagent-brief-injection-VDVOHDOU.js +97 -0
- package/dist/subagent-spawn-ledger-USYZXU3M.js +22 -0
- package/dist/{support-inbox-ZHKLDETT.js → support-inbox-S6YO5YZU.js} +5 -4
- package/dist/{support-outbox-DSWU3IXH.js → support-outbox-HFJWG52M.js} +1 -1
- package/dist/{task-enforcement-GQDUTIFY.js → task-enforcement-LXW45H5Z.js} +26 -24
- package/dist/{task-request-inbox-BFXNUU44.js → task-request-inbox-UCSKDC3R.js} +2 -2
- package/dist/{task-scope-ERHPHLUM.js → task-scope-GDLFE26E.js} +25 -23
- package/dist/{tasks-crud-NVNF3NRA.js → tasks-crud-W7VGWRUV.js} +25 -23
- package/dist/{tasks-notify-DXLU5VCT.js → tasks-notify-CT7NWCS4.js} +26 -24
- package/dist/{tasks-review-BST6N34P.js → tasks-review-WCSKOUFW.js} +25 -23
- package/dist/{telemetry-upload-NY3EKOGY.js → telemetry-upload-FK5WKXVB.js} +10 -9
- package/dist/{token-budget-CLB3GUIX.js → token-budget-GBNGSIU3.js} +5 -5
- package/dist/{tool-capability-index-WZWVBI2R.js → tool-capability-index-BT2GGLLI.js} +1 -1
- package/dist/{tool-telemetry-PALAZUXT.js → tool-telemetry-VKMRS6MP.js} +1 -1
- package/dist/tui/App.js +39 -37
- package/dist/{tui-data-CNFSRZP7.js → tui-data-FTPV2XBQ.js} +25 -23
- package/dist/{update-support-ZVB3CNGY.js → update-support-J6UWPUOC.js} +18 -15
- package/dist/{work-state-heartbeat-O7UMB6SE.js → work-state-heartbeat-4LDF6DSM.js} +1 -1
- package/dist/{worker-gate-6DQQWDNB.js → worker-gate-35VZINZG.js} +2 -2
- package/dist/{workflow-engine-5ZULFH7O.js → workflow-engine-4DA6RSHI.js} +2 -2
- package/dist/working-memory-DPFRSKH3.js +18 -0
- package/dist/{worktree-ZWA35PKW.js → worktree-H3YFJ3NU.js} +6 -6
- package/dist/{worktree-sweep-5LCVT46V.js → worktree-sweep-4EDLLQ2E.js} +9 -7
- package/package.json +11 -5
- package/release-notes.json +86 -34
- package/src/commands/exe/call.md +6 -4
- package/src/commands/exe-reference.md +11 -7
- package/src/commands/exe.md +16 -20
- package/dist/chunk-HISFWAAK.js +0 -90
- package/dist/daemon-auth-OCHW2U6B.js +0 -20
- package/dist/project-name-EWG5KAZP.js +0 -10
- package/dist/session-summary-5EYI4XW4.js +0 -128
- /package/dist/{chunk-YAZ5ECEG.js → chunk-3NBWARKC.js} +0 -0
- /package/dist/{chunk-6C4UAKMS.js → chunk-6CAX7YH4.js} +0 -0
- /package/dist/{chunk-FIPUVCKC.js → chunk-7DMCAGSC.js} +0 -0
- /package/dist/{chunk-X7LY3IOB.js → chunk-JRPYLUXH.js} +0 -0
- /package/dist/{chunk-L4LPJMPV.js → chunk-QYECRPGD.js} +0 -0
- /package/dist/{chunk-UELGUVNL.js → chunk-UY6HRDB2.js} +0 -0
- /package/dist/{chunk-YWN3XMPU.js → chunk-YSDIJ3VI.js} +0 -0
- /package/dist/{core-memory-BZFPVS43.js → core-memory-CMPPHJN5.js} +0 -0
- /package/dist/{entity-boost-VXXED26D.js → entity-boost-CDFAXVYL.js} +0 -0
- /package/dist/{memory-isolation-3PIOWLYP.js → memory-isolation-ZB5S5HCO.js} +0 -0
- /package/dist/{message-queue-client-5XW7ZOK2.js → message-queue-client-PL2POQOV.js} +0 -0
- /package/dist/{oauth-server-KW5M437C.js → oauth-server-NP7KGF7N.js} +0 -0
- /package/dist/{webhook-pipe-QJRFZVKA.js → webhook-pipe-UQSEHFPO.js} +0 -0
- /package/dist/{wiki-acl-RXFV5OEU.js → wiki-acl-5DKOWOIH.js} +0 -0
- /package/dist/{wiki-client-57QWZIHQ.js → wiki-client-AXNM5FWY.js} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"latest": "0.9.
|
|
3
|
+
"latest": "0.9.35",
|
|
4
4
|
"stacks": {
|
|
5
5
|
"0.9.0": {
|
|
6
6
|
"version": "0.9.0",
|
|
@@ -2459,11 +2459,241 @@
|
|
|
2459
2459
|
}
|
|
2460
2460
|
},
|
|
2461
2461
|
"rolloutStage": "ga"
|
|
2462
|
+
},
|
|
2463
|
+
"0.9.34": {
|
|
2464
|
+
"version": "0.9.34",
|
|
2465
|
+
"releasedAt": "2026-08-10T07:05:25Z",
|
|
2466
|
+
"notes": "Monitor UID-1001 runtime regression fix (exe-monitor PR #25, squash-merged d6585d22; images built from PR commit 10660eb4, verified live against a 1001-owned volume). Bumps exe-monitor-hub + exe-monitor-agent digests only; gitSha pins the image-label commit 10660eb4 (provenance ancestry break-glass: PR commit squash-merged to main). ERP queue/scheduler healthcheck fix ships compose-only via exe-os #580 (VPS CLI 0.9.362) — erp IMAGE unchanged from 0.9.33. All other pins identical to 0.9.33. Founder-approved GO 2026-08-10.",
|
|
2467
|
+
"npmVersion": "0.9.324",
|
|
2468
|
+
"services": {
|
|
2469
|
+
"exe-db": {
|
|
2470
|
+
"image": "update.askexe.com/askexe/pgvector:0.8.0-pg16@sha256:a132765ec351c65111b5b675928a3a0515a466a40f97277329db8b8209ad8bc9",
|
|
2471
|
+
"env": "EXE_DB_IMAGE",
|
|
2472
|
+
"composeService": "exe-db",
|
|
2473
|
+
"required": true,
|
|
2474
|
+
"category": "core",
|
|
2475
|
+
"description": "Postgres (pgvector) — digest-pinned (bug 32d6e02f; was tag-only in 0.9.25, regressed from 0.9.24)"
|
|
2476
|
+
},
|
|
2477
|
+
"exe-os": {
|
|
2478
|
+
"image": "update.askexe.com/askexe/exe-os:v0.9.324@sha256:3ce6406e0f7f279ff2568bbbb7d55de51a46fdf35c49691f24fd959d6fd2d3fa",
|
|
2479
|
+
"env": "EXE_OS_IMAGE_TAG",
|
|
2480
|
+
"composeService": "exe-os",
|
|
2481
|
+
"healthUrl": "http://127.0.0.1:8765/health",
|
|
2482
|
+
"required": true,
|
|
2483
|
+
"category": "core",
|
|
2484
|
+
"description": "exe-os daemon + MCP server"
|
|
2485
|
+
},
|
|
2486
|
+
"crm": {
|
|
2487
|
+
"image": "update.askexe.com/askexe/exe-crm:v0.9.53@sha256:a586dcc8bbd992538e3caa18c44e772d30f31155dfef0a2b7466ca3fc7c553d8",
|
|
2488
|
+
"env": "CRM_IMAGE_TAG",
|
|
2489
|
+
"composeService": "exe-crm",
|
|
2490
|
+
"healthUrl": "http://127.0.0.1:3000/healthz",
|
|
2491
|
+
"category": "app"
|
|
2492
|
+
},
|
|
2493
|
+
"wiki": {
|
|
2494
|
+
"image": "update.askexe.com/askexe/exe-wiki:v0.9.28@sha256:61856a4c6b97ce62c62ecdc3a377139287be5860eb807d9fbb737115758d7856",
|
|
2495
|
+
"env": "WIKI_IMAGE_TAG",
|
|
2496
|
+
"composeService": "exe-wiki",
|
|
2497
|
+
"healthUrl": "http://127.0.0.1:3001/api/ping",
|
|
2498
|
+
"category": "app"
|
|
2499
|
+
},
|
|
2500
|
+
"gateway": {
|
|
2501
|
+
"image": "update.askexe.com/askexe/exe-gateway:v2026.08.07-c15f093-stamped@sha256:1bc11a2a0ad1f3929d59d2685696f22a72042b9fca9c75e15c02dc7d3c640105",
|
|
2502
|
+
"env": "GATEWAY_IMAGE_TAG",
|
|
2503
|
+
"composeService": "exe-gateway",
|
|
2504
|
+
"healthUrl": "http://127.0.0.1:3100/health",
|
|
2505
|
+
"category": "app",
|
|
2506
|
+
"description": "WhatsApp/messaging gateway — provenance-stamped rebuild of main (outbound message persistence fix); pinned by digest, dated immutable tag.",
|
|
2507
|
+
"gitSha": "c15f093a0f59730bd5c2c73791ff77059dfa7cc1"
|
|
2508
|
+
},
|
|
2509
|
+
"monitorAgent": {
|
|
2510
|
+
"image": "update.askexe.com/askexe/exe-monitor-agent:v2026.08.09-10660eb4-stamped@sha256:29fbd445f79484df04f000603e4ff445e76f0380f86d687a0033e3a0ef7d1b7a",
|
|
2511
|
+
"env": "MONITOR_AGENT_IMAGE_TAG",
|
|
2512
|
+
"composeService": "exe-monitor-agent",
|
|
2513
|
+
"category": "monitoring",
|
|
2514
|
+
"gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
|
|
2515
|
+
},
|
|
2516
|
+
"monitorHub": {
|
|
2517
|
+
"image": "update.askexe.com/askexe/exe-monitor-hub:v2026.08.09-10660eb4-stamped@sha256:c9a9218c2713b8dffea7e1cf8c0702a614657d311a7a4e821c6a543bab29bb97",
|
|
2518
|
+
"env": "MONITOR_HUB_IMAGE_TAG",
|
|
2519
|
+
"composeService": "exe-monitor-hub",
|
|
2520
|
+
"healthUrl": "http://127.0.0.1:8090/api/health",
|
|
2521
|
+
"category": "monitoring",
|
|
2522
|
+
"gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
|
|
2523
|
+
},
|
|
2524
|
+
"auth": {
|
|
2525
|
+
"image": "update.askexe.com/askexe/exe-auth:v0.4.0@sha256:d92b50e812ca3dbd5e3a828be3cdd7a7b73967f00f53640f09288d44a8ea1716",
|
|
2526
|
+
"env": "AUTH_IMAGE_TAG",
|
|
2527
|
+
"composeService": "exe-auth",
|
|
2528
|
+
"healthUrl": "http://127.0.0.1:3300/api/health",
|
|
2529
|
+
"category": "auth",
|
|
2530
|
+
"description": "Corrects the 0.9.29 exe-auth downgrade regression to v0.1.0; pins v0.3.0 (bug 5f5b4795).",
|
|
2531
|
+
"gitSha": "72475df3d19f9614897910bae90550a414604954"
|
|
2532
|
+
},
|
|
2533
|
+
"erp": {
|
|
2534
|
+
"image": "update.askexe.com/askexe/exe-erp:v2026.08.07-d185286-stamped@sha256:1c655f3f7819c797afd13c79561354f0276cf337403f32aee3e406a497e8827b",
|
|
2535
|
+
"env": "ERP_IMAGE_TAG",
|
|
2536
|
+
"composeService": "exe-erp",
|
|
2537
|
+
"healthUrl": "http://127.0.0.1:8069/api/method/ping",
|
|
2538
|
+
"healthHost": "localhost",
|
|
2539
|
+
"required": false,
|
|
2540
|
+
"category": "app",
|
|
2541
|
+
"description": "Enterprise Resource Planning",
|
|
2542
|
+
"gitSha": "d185286873dcfa11e4b3f9672c4e23efea240cc5"
|
|
2543
|
+
},
|
|
2544
|
+
"gotrue": {
|
|
2545
|
+
"image": "update.askexe.com/askexe/gotrue:v2.172.1@sha256:b0dd7aa28dd1f9a8bd31f136c8b912661f701d9b863171e5843cb08f18f49de4",
|
|
2546
|
+
"composeService": "gotrue",
|
|
2547
|
+
"healthUrl": "http://127.0.0.1:9999/health",
|
|
2548
|
+
"category": "infra"
|
|
2549
|
+
},
|
|
2550
|
+
"redis": {
|
|
2551
|
+
"image": "update.askexe.com/askexe/redis:7.4-alpine@sha256:6ab0b6e7381779332f97b8ca76193e45b0756f38d4c0dcda72dbb3c32061ab99",
|
|
2552
|
+
"composeService": "redis",
|
|
2553
|
+
"category": "infra"
|
|
2554
|
+
},
|
|
2555
|
+
"clickhouse": {
|
|
2556
|
+
"image": "update.askexe.com/askexe/clickhouse-server:24.8.4.13-alpine@sha256:88a45f9e328549b2579256c46ee38e5c0e25ae58303d9eb6d9c7ed8d6d2bbf3c",
|
|
2557
|
+
"composeService": "clickhouse",
|
|
2558
|
+
"category": "infra"
|
|
2559
|
+
},
|
|
2560
|
+
"cloudflared": {
|
|
2561
|
+
"image": "update.askexe.com/askexe/cloudflared:2026-07@sha256:ba461b8aa9c042156dbd39c38657fe7431bafa063220eab8d5330a523863da9f",
|
|
2562
|
+
"composeService": "cloudflared",
|
|
2563
|
+
"category": "infra"
|
|
2564
|
+
},
|
|
2565
|
+
"exe-sso-edge": {
|
|
2566
|
+
"image": "update.askexe.com/askexe/nginx:alpine@sha256:20316569d8f81a160065d7d2a5eeffc7ca97d79022462ee255fd23fa103a6b5c",
|
|
2567
|
+
"composeService": "exe-sso-edge",
|
|
2568
|
+
"category": "infra"
|
|
2569
|
+
},
|
|
2570
|
+
"exe-otel-collector": {
|
|
2571
|
+
"image": "update.askexe.com/askexe/otel-collector-contrib:0.114.0@sha256:37fa87091cfaaec7234a27e4e395a40c31c2bfaea97a349a4afef6d9e9681197",
|
|
2572
|
+
"composeService": "exe-otel-collector",
|
|
2573
|
+
"category": "infra"
|
|
2574
|
+
}
|
|
2575
|
+
},
|
|
2576
|
+
"rolloutStage": "ga"
|
|
2577
|
+
},
|
|
2578
|
+
"0.9.35": {
|
|
2579
|
+
"version": "0.9.35",
|
|
2580
|
+
"releasedAt": "2026-08-13T00:16:05Z",
|
|
2581
|
+
"notes": "exe-auth v0.5.0 — the shared SSO login page is now one front door with one identity: the logo reads EXE INTELLIGENCE regardless of which product bounced the visitor here (?product= no longer rebrands it), configurable per-deploy via AUTH_BRAND_NAME. Includes the brand-word escaping fix (every '<' encoded for the JS/HTML context) so a white-label value can never break the login page. Bumps the auth image digest ONLY; every other pin is identical to 0.9.34. Founder-approved GO 2026-08-12.",
|
|
2582
|
+
"npmVersion": "0.9.324",
|
|
2583
|
+
"services": {
|
|
2584
|
+
"exe-db": {
|
|
2585
|
+
"image": "update.askexe.com/askexe/pgvector:0.8.0-pg16@sha256:a132765ec351c65111b5b675928a3a0515a466a40f97277329db8b8209ad8bc9",
|
|
2586
|
+
"env": "EXE_DB_IMAGE",
|
|
2587
|
+
"composeService": "exe-db",
|
|
2588
|
+
"required": true,
|
|
2589
|
+
"category": "core",
|
|
2590
|
+
"description": "Postgres (pgvector) — digest-pinned (bug 32d6e02f; was tag-only in 0.9.25, regressed from 0.9.24)"
|
|
2591
|
+
},
|
|
2592
|
+
"exe-os": {
|
|
2593
|
+
"image": "update.askexe.com/askexe/exe-os:v0.9.324@sha256:3ce6406e0f7f279ff2568bbbb7d55de51a46fdf35c49691f24fd959d6fd2d3fa",
|
|
2594
|
+
"env": "EXE_OS_IMAGE_TAG",
|
|
2595
|
+
"composeService": "exe-os",
|
|
2596
|
+
"healthUrl": "http://127.0.0.1:8765/health",
|
|
2597
|
+
"required": true,
|
|
2598
|
+
"category": "core",
|
|
2599
|
+
"description": "exe-os daemon + MCP server"
|
|
2600
|
+
},
|
|
2601
|
+
"crm": {
|
|
2602
|
+
"image": "update.askexe.com/askexe/exe-crm:v0.9.53@sha256:a586dcc8bbd992538e3caa18c44e772d30f31155dfef0a2b7466ca3fc7c553d8",
|
|
2603
|
+
"env": "CRM_IMAGE_TAG",
|
|
2604
|
+
"composeService": "exe-crm",
|
|
2605
|
+
"healthUrl": "http://127.0.0.1:3000/healthz",
|
|
2606
|
+
"category": "app"
|
|
2607
|
+
},
|
|
2608
|
+
"wiki": {
|
|
2609
|
+
"image": "update.askexe.com/askexe/exe-wiki:v0.9.28@sha256:61856a4c6b97ce62c62ecdc3a377139287be5860eb807d9fbb737115758d7856",
|
|
2610
|
+
"env": "WIKI_IMAGE_TAG",
|
|
2611
|
+
"composeService": "exe-wiki",
|
|
2612
|
+
"healthUrl": "http://127.0.0.1:3001/api/ping",
|
|
2613
|
+
"category": "app"
|
|
2614
|
+
},
|
|
2615
|
+
"gateway": {
|
|
2616
|
+
"image": "update.askexe.com/askexe/exe-gateway:v2026.08.07-c15f093-stamped@sha256:1bc11a2a0ad1f3929d59d2685696f22a72042b9fca9c75e15c02dc7d3c640105",
|
|
2617
|
+
"env": "GATEWAY_IMAGE_TAG",
|
|
2618
|
+
"composeService": "exe-gateway",
|
|
2619
|
+
"healthUrl": "http://127.0.0.1:3100/health",
|
|
2620
|
+
"category": "app",
|
|
2621
|
+
"description": "WhatsApp/messaging gateway — provenance-stamped rebuild of main (outbound message persistence fix); pinned by digest, dated immutable tag.",
|
|
2622
|
+
"gitSha": "c15f093a0f59730bd5c2c73791ff77059dfa7cc1"
|
|
2623
|
+
},
|
|
2624
|
+
"monitorAgent": {
|
|
2625
|
+
"image": "update.askexe.com/askexe/exe-monitor-agent:v2026.08.09-10660eb4-stamped@sha256:29fbd445f79484df04f000603e4ff445e76f0380f86d687a0033e3a0ef7d1b7a",
|
|
2626
|
+
"env": "MONITOR_AGENT_IMAGE_TAG",
|
|
2627
|
+
"composeService": "exe-monitor-agent",
|
|
2628
|
+
"category": "monitoring",
|
|
2629
|
+
"gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
|
|
2630
|
+
},
|
|
2631
|
+
"monitorHub": {
|
|
2632
|
+
"image": "update.askexe.com/askexe/exe-monitor-hub:v2026.08.09-10660eb4-stamped@sha256:c9a9218c2713b8dffea7e1cf8c0702a614657d311a7a4e821c6a543bab29bb97",
|
|
2633
|
+
"env": "MONITOR_HUB_IMAGE_TAG",
|
|
2634
|
+
"composeService": "exe-monitor-hub",
|
|
2635
|
+
"healthUrl": "http://127.0.0.1:8090/api/health",
|
|
2636
|
+
"category": "monitoring",
|
|
2637
|
+
"gitSha": "10660eb4abdeffbcba2aad13549aa58e208ac7a3"
|
|
2638
|
+
},
|
|
2639
|
+
"auth": {
|
|
2640
|
+
"image": "update.askexe.com/askexe/exe-auth:v0.5.0@sha256:ecc57f92b1f2c2d9df4fafe648622fe1fdd87c27012048d950e3f6b82086ccf9",
|
|
2641
|
+
"env": "AUTH_IMAGE_TAG",
|
|
2642
|
+
"composeService": "exe-auth",
|
|
2643
|
+
"healthUrl": "http://127.0.0.1:3300/api/health",
|
|
2644
|
+
"category": "auth",
|
|
2645
|
+
"description": "exe-auth v0.5.0 — one front door, one identity: logo reads EXE INTELLIGENCE (config-driven via AUTH_BRAND_NAME, escaped for the JS/HTML context).",
|
|
2646
|
+
"gitSha": "874941df74041299d829fbc0b37887d64fae6f78"
|
|
2647
|
+
},
|
|
2648
|
+
"erp": {
|
|
2649
|
+
"image": "update.askexe.com/askexe/exe-erp:v2026.08.07-d185286-stamped@sha256:1c655f3f7819c797afd13c79561354f0276cf337403f32aee3e406a497e8827b",
|
|
2650
|
+
"env": "ERP_IMAGE_TAG",
|
|
2651
|
+
"composeService": "exe-erp",
|
|
2652
|
+
"healthUrl": "http://127.0.0.1:8069/api/method/ping",
|
|
2653
|
+
"healthHost": "localhost",
|
|
2654
|
+
"required": false,
|
|
2655
|
+
"category": "app",
|
|
2656
|
+
"description": "Enterprise Resource Planning",
|
|
2657
|
+
"gitSha": "d185286873dcfa11e4b3f9672c4e23efea240cc5"
|
|
2658
|
+
},
|
|
2659
|
+
"gotrue": {
|
|
2660
|
+
"image": "update.askexe.com/askexe/gotrue:v2.172.1@sha256:b0dd7aa28dd1f9a8bd31f136c8b912661f701d9b863171e5843cb08f18f49de4",
|
|
2661
|
+
"composeService": "gotrue",
|
|
2662
|
+
"healthUrl": "http://127.0.0.1:9999/health",
|
|
2663
|
+
"category": "infra"
|
|
2664
|
+
},
|
|
2665
|
+
"redis": {
|
|
2666
|
+
"image": "update.askexe.com/askexe/redis:7.4-alpine@sha256:6ab0b6e7381779332f97b8ca76193e45b0756f38d4c0dcda72dbb3c32061ab99",
|
|
2667
|
+
"composeService": "redis",
|
|
2668
|
+
"category": "infra"
|
|
2669
|
+
},
|
|
2670
|
+
"clickhouse": {
|
|
2671
|
+
"image": "update.askexe.com/askexe/clickhouse-server:24.8.4.13-alpine@sha256:88a45f9e328549b2579256c46ee38e5c0e25ae58303d9eb6d9c7ed8d6d2bbf3c",
|
|
2672
|
+
"composeService": "clickhouse",
|
|
2673
|
+
"category": "infra"
|
|
2674
|
+
},
|
|
2675
|
+
"cloudflared": {
|
|
2676
|
+
"image": "update.askexe.com/askexe/cloudflared:2026-07@sha256:ba461b8aa9c042156dbd39c38657fe7431bafa063220eab8d5330a523863da9f",
|
|
2677
|
+
"composeService": "cloudflared",
|
|
2678
|
+
"category": "infra"
|
|
2679
|
+
},
|
|
2680
|
+
"exe-sso-edge": {
|
|
2681
|
+
"image": "update.askexe.com/askexe/nginx:alpine@sha256:20316569d8f81a160065d7d2a5eeffc7ca97d79022462ee255fd23fa103a6b5c",
|
|
2682
|
+
"composeService": "exe-sso-edge",
|
|
2683
|
+
"category": "infra"
|
|
2684
|
+
},
|
|
2685
|
+
"exe-otel-collector": {
|
|
2686
|
+
"image": "update.askexe.com/askexe/otel-collector-contrib:0.114.0@sha256:37fa87091cfaaec7234a27e4e395a40c31c2bfaea97a349a4afef6d9e9681197",
|
|
2687
|
+
"composeService": "exe-otel-collector",
|
|
2688
|
+
"category": "infra"
|
|
2689
|
+
}
|
|
2690
|
+
},
|
|
2691
|
+
"rolloutStage": "ga"
|
|
2462
2692
|
}
|
|
2463
2693
|
},
|
|
2464
2694
|
"signature": {
|
|
2465
2695
|
"keyId": "exe-stack-1",
|
|
2466
2696
|
"alg": "ed25519",
|
|
2467
|
-
"signature": "
|
|
2697
|
+
"signature": "pm9jH5HQp+Wo+eSqsFKBYekhFmSFUdJp1YYyBMqaufsnbOxj7JXakBGL4ssrzzi8s+xuNRY6SVXgXTT4biIpAg=="
|
|
2468
2698
|
}
|
|
2469
2699
|
}
|
package/dist/.dist-verified.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"verified_at": "2026-08-
|
|
4
|
-
"manifest_sha256": "
|
|
5
|
-
"package_version": "0.9.
|
|
3
|
+
"verified_at": "2026-08-13T09:09:34.865Z",
|
|
4
|
+
"manifest_sha256": "7b888c6c383a6b1593354b24c308b42228573a170b04256dff851cca5050e317",
|
|
5
|
+
"package_version": "0.9.365"
|
|
6
6
|
}
|
|
@@ -4,21 +4,24 @@ import {
|
|
|
4
4
|
getActiveAgent,
|
|
5
5
|
getAllActiveAgents,
|
|
6
6
|
resolveActiveAgentFromTmuxSession,
|
|
7
|
+
resolveAgentAttribution,
|
|
8
|
+
resolveAgentForPayload,
|
|
7
9
|
writeActiveAgent
|
|
8
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-ZNEBZCZR.js";
|
|
11
|
+
import "./chunk-2ADYTOHQ.js";
|
|
9
12
|
import "./chunk-CVYC6DUW.js";
|
|
10
13
|
import "./chunk-GJV3WDWM.js";
|
|
11
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-BRLS5OLZ.js";
|
|
12
15
|
import "./chunk-TKDITWDN.js";
|
|
13
16
|
import "./chunk-BBMTVAE3.js";
|
|
14
17
|
import "./chunk-5YEUPUV4.js";
|
|
15
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-NO3M2AFM.js";
|
|
16
19
|
import "./chunk-YYB5PMTK.js";
|
|
17
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-NJFJWQNN.js";
|
|
18
21
|
import "./chunk-V3W3SATA.js";
|
|
19
22
|
import "./chunk-JY5GAZYC.js";
|
|
20
23
|
import "./chunk-FXU7JOXK.js";
|
|
21
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-QMSEL5YS.js";
|
|
22
25
|
import "./chunk-HSGBZSCA.js";
|
|
23
26
|
import "./chunk-JKKZGDLP.js";
|
|
24
27
|
import "./chunk-MLKGABMK.js";
|
|
@@ -28,5 +31,7 @@ export {
|
|
|
28
31
|
getActiveAgent,
|
|
29
32
|
getAllActiveAgents,
|
|
30
33
|
resolveActiveAgentFromTmuxSession,
|
|
34
|
+
resolveAgentAttribution,
|
|
35
|
+
resolveAgentForPayload,
|
|
31
36
|
writeActiveAgent
|
|
32
37
|
};
|
|
@@ -5,21 +5,24 @@ import {
|
|
|
5
5
|
getActiveAgent,
|
|
6
6
|
getAllActiveAgents,
|
|
7
7
|
resolveActiveAgentFromTmuxSession,
|
|
8
|
+
resolveAgentAttribution,
|
|
9
|
+
resolveAgentForPayload,
|
|
8
10
|
writeActiveAgent
|
|
9
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ZNEBZCZR.js";
|
|
12
|
+
import "./chunk-2ADYTOHQ.js";
|
|
10
13
|
import "./chunk-CVYC6DUW.js";
|
|
11
14
|
import "./chunk-GJV3WDWM.js";
|
|
12
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-BRLS5OLZ.js";
|
|
13
16
|
import "./chunk-TKDITWDN.js";
|
|
14
17
|
import "./chunk-BBMTVAE3.js";
|
|
15
18
|
import "./chunk-5YEUPUV4.js";
|
|
16
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-NO3M2AFM.js";
|
|
17
20
|
import "./chunk-YYB5PMTK.js";
|
|
18
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-NJFJWQNN.js";
|
|
19
22
|
import "./chunk-V3W3SATA.js";
|
|
20
23
|
import "./chunk-JY5GAZYC.js";
|
|
21
24
|
import "./chunk-FXU7JOXK.js";
|
|
22
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-QMSEL5YS.js";
|
|
23
26
|
import "./chunk-HSGBZSCA.js";
|
|
24
27
|
import "./chunk-JKKZGDLP.js";
|
|
25
28
|
import "./chunk-MLKGABMK.js";
|
|
@@ -29,5 +32,7 @@ export {
|
|
|
29
32
|
getActiveAgent,
|
|
30
33
|
getAllActiveAgents,
|
|
31
34
|
resolveActiveAgentFromTmuxSession,
|
|
35
|
+
resolveAgentAttribution,
|
|
36
|
+
resolveAgentForPayload,
|
|
32
37
|
writeActiveAgent
|
|
33
38
|
};
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import {
|
|
2
|
+
loadAgentConfig
|
|
3
|
+
} from "./chunk-XTWHNLGD.js";
|
|
4
|
+
import "./chunk-AM7S2TY6.js";
|
|
5
|
+
import {
|
|
6
|
+
loadEmployeesSync,
|
|
7
|
+
validateEmployeeName
|
|
8
|
+
} from "./chunk-BRLS5OLZ.js";
|
|
9
|
+
import "./chunk-TKDITWDN.js";
|
|
10
|
+
import "./chunk-BBMTVAE3.js";
|
|
11
|
+
import "./chunk-5YEUPUV4.js";
|
|
12
|
+
import "./chunk-NO3M2AFM.js";
|
|
13
|
+
import "./chunk-YYB5PMTK.js";
|
|
14
|
+
import "./chunk-NJFJWQNN.js";
|
|
15
|
+
import "./chunk-V3W3SATA.js";
|
|
16
|
+
import "./chunk-JY5GAZYC.js";
|
|
17
|
+
import "./chunk-FXU7JOXK.js";
|
|
18
|
+
import "./chunk-WNBZJSQT.js";
|
|
19
|
+
import "./chunk-QMSEL5YS.js";
|
|
20
|
+
import "./chunk-HSGBZSCA.js";
|
|
21
|
+
import "./chunk-JKKZGDLP.js";
|
|
22
|
+
import "./chunk-MLKGABMK.js";
|
|
23
|
+
|
|
24
|
+
// src/adapters/claude/agent-defs-generator.ts
|
|
25
|
+
import {
|
|
26
|
+
existsSync,
|
|
27
|
+
lstatSync,
|
|
28
|
+
mkdirSync,
|
|
29
|
+
readFileSync,
|
|
30
|
+
readlinkSync,
|
|
31
|
+
renameSync,
|
|
32
|
+
unlinkSync,
|
|
33
|
+
writeFileSync
|
|
34
|
+
} from "fs";
|
|
35
|
+
import os from "os";
|
|
36
|
+
import path from "path";
|
|
37
|
+
import { randomBytes } from "crypto";
|
|
38
|
+
var AGENT_DEF_MARKER = "<!-- generated-by: exe-os agent-defs-generator -->";
|
|
39
|
+
function parseIdentityFile(raw) {
|
|
40
|
+
const match = raw.match(/^---\n([\s\S]*?)\n---\n?([\s\S]*)$/);
|
|
41
|
+
if (!match) return { fields: {}, body: raw.trim() };
|
|
42
|
+
const fields = {};
|
|
43
|
+
for (const line of match[1].split("\n")) {
|
|
44
|
+
const kv = line.match(/^(\w+):\s*(.+)$/);
|
|
45
|
+
if (kv) fields[kv[1]] = kv[2].trim();
|
|
46
|
+
}
|
|
47
|
+
return { fields, body: (match[2] ?? "").trim() };
|
|
48
|
+
}
|
|
49
|
+
function oneLine(value) {
|
|
50
|
+
return value.replace(/\s+/g, " ").replace(/"/g, "'").trim();
|
|
51
|
+
}
|
|
52
|
+
var CC_MODEL_ALIASES = /* @__PURE__ */ new Set(["opus", "sonnet", "haiku", "fable"]);
|
|
53
|
+
var CC_EFFORT_VALUES = /* @__PURE__ */ new Set(["low", "medium", "high", "xhigh", "max"]);
|
|
54
|
+
function toClaudeCodeFrontmatterModel(model) {
|
|
55
|
+
if (!model) return null;
|
|
56
|
+
const bare = model.trim().toLowerCase().replace(/\x1b\[[0-9;]*m/g, "").replace(/\[(?:0|1)m\]/g, "").replace(/^[a-z0-9.-]+\//, "").trim();
|
|
57
|
+
if (!bare) return null;
|
|
58
|
+
if (CC_MODEL_ALIASES.has(bare)) return bare;
|
|
59
|
+
if (/^claude-(opus|sonnet|haiku|fable)-\d+(?:[.-]\d+)*-\d{8}$/.test(bare)) return bare;
|
|
60
|
+
const family = bare.match(/^claude-(opus|sonnet|haiku|fable)-\d/);
|
|
61
|
+
if (family) return family[1];
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
function toClaudeCodeFrontmatterEffort(effort) {
|
|
65
|
+
if (!effort) return void 0;
|
|
66
|
+
const v = effort.trim().toLowerCase();
|
|
67
|
+
return CC_EFFORT_VALUES.has(v) ? v : void 0;
|
|
68
|
+
}
|
|
69
|
+
function renderAgentDef(input) {
|
|
70
|
+
const lines = ["---", `name: ${input.name}`, `description: ${oneLine(input.description)}`];
|
|
71
|
+
if (input.model) lines.push(`model: ${input.model}`);
|
|
72
|
+
if (input.effort) lines.push(`effort: ${input.effort}`);
|
|
73
|
+
lines.push(
|
|
74
|
+
"---",
|
|
75
|
+
AGENT_DEF_MARKER,
|
|
76
|
+
"",
|
|
77
|
+
'[generated bootstrap] FIRST ACTION: run Bash("true") before any real work so exe-os can deliver your employee memory brief.',
|
|
78
|
+
"",
|
|
79
|
+
input.body,
|
|
80
|
+
""
|
|
81
|
+
);
|
|
82
|
+
return lines.join("\n");
|
|
83
|
+
}
|
|
84
|
+
function isGeneratedAgentDef(raw) {
|
|
85
|
+
if (!raw.startsWith("---\n")) return false;
|
|
86
|
+
const fmEnd = raw.indexOf("\n---\n");
|
|
87
|
+
if (fmEnd < 0) return false;
|
|
88
|
+
const afterFrontmatter = raw.slice(fmEnd + "\n---\n".length);
|
|
89
|
+
const firstLine = afterFrontmatter.split("\n", 1)[0] ?? "";
|
|
90
|
+
return firstLine.trim() === AGENT_DEF_MARKER;
|
|
91
|
+
}
|
|
92
|
+
function isContainedIn(child, dir) {
|
|
93
|
+
return path.resolve(child).startsWith(path.resolve(dir) + path.sep);
|
|
94
|
+
}
|
|
95
|
+
function isOurIdentitySymlink(linkTarget, identityDir, agentId) {
|
|
96
|
+
const expected = path.join(identityDir, `${agentId}.md`);
|
|
97
|
+
return path.resolve(linkTarget) === path.resolve(expected) || linkTarget === expected;
|
|
98
|
+
}
|
|
99
|
+
function generateAgentDefs(options = {}) {
|
|
100
|
+
const homeDir = options.homeDir ?? os.homedir();
|
|
101
|
+
const identityDir = path.join(homeDir, ".exe-os", "identity");
|
|
102
|
+
const rosterPath = path.join(homeDir, ".exe-os", "exe-employees.json");
|
|
103
|
+
const employees = options.employees ?? loadEmployeesSync(rosterPath);
|
|
104
|
+
let agentConfig = {};
|
|
105
|
+
try {
|
|
106
|
+
agentConfig = options.agentConfig ?? loadAgentConfig();
|
|
107
|
+
} catch {
|
|
108
|
+
}
|
|
109
|
+
const agentsDir = path.join(homeDir, ".claude", "agents");
|
|
110
|
+
const results = [];
|
|
111
|
+
for (const emp of employees) {
|
|
112
|
+
const name = String(emp.name ?? "").toLowerCase();
|
|
113
|
+
const validation = validateEmployeeName(name);
|
|
114
|
+
if (!validation.valid) {
|
|
115
|
+
process.stderr.write(
|
|
116
|
+
`[agent-defs] skipping invalid roster name ${JSON.stringify(emp.name)}: ${validation.error}
|
|
117
|
+
`
|
|
118
|
+
);
|
|
119
|
+
results.push({ agentId: name, action: "skipped", path: "", reason: "invalid_name" });
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
const identityPath = path.join(identityDir, `${name}.md`);
|
|
123
|
+
const destPath = path.join(agentsDir, `${name}.md`);
|
|
124
|
+
if (!isContainedIn(identityPath, identityDir) || !isContainedIn(destPath, agentsDir)) {
|
|
125
|
+
process.stderr.write(`[agent-defs] path containment violation for ${JSON.stringify(name)} \u2014 skipping
|
|
126
|
+
`);
|
|
127
|
+
results.push({ agentId: name, action: "skipped", path: destPath, reason: "path_escape" });
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
if (!existsSync(identityPath)) {
|
|
131
|
+
results.push({ agentId: name, action: "skipped", path: destPath, reason: "no_identity" });
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
let identityRaw;
|
|
135
|
+
try {
|
|
136
|
+
identityRaw = readFileSync(identityPath, "utf-8");
|
|
137
|
+
} catch {
|
|
138
|
+
results.push({ agentId: name, action: "skipped", path: destPath, reason: "identity_unreadable" });
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
const { fields, body } = parseIdentityFile(identityRaw);
|
|
142
|
+
const runtime = agentConfig[name];
|
|
143
|
+
const ccModel = runtime?.runtime === "claude" ? toClaudeCodeFrontmatterModel(runtime.model) : null;
|
|
144
|
+
if (runtime?.runtime === "claude" && runtime.model && !ccModel) {
|
|
145
|
+
process.stderr.write(
|
|
146
|
+
`[agent-defs] omitting non-Claude-Code model for ${name}: ${JSON.stringify(runtime.model)}
|
|
147
|
+
`
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
const content = renderAgentDef({
|
|
151
|
+
name,
|
|
152
|
+
description: fields.title && fields.title !== emp.role ? `${fields.title} (${emp.role})` : emp.role,
|
|
153
|
+
model: ccModel ?? void 0,
|
|
154
|
+
// Couple effort to a present model (as before) and only emit CC-valid enum values.
|
|
155
|
+
effort: ccModel ? toClaudeCodeFrontmatterEffort(runtime?.reasoning_effort) : void 0,
|
|
156
|
+
body
|
|
157
|
+
});
|
|
158
|
+
let existing;
|
|
159
|
+
try {
|
|
160
|
+
const stat = lstatSync(destPath);
|
|
161
|
+
if (stat.isSymbolicLink()) {
|
|
162
|
+
let target = "";
|
|
163
|
+
try {
|
|
164
|
+
target = readlinkSync(destPath);
|
|
165
|
+
} catch {
|
|
166
|
+
}
|
|
167
|
+
existing = isOurIdentitySymlink(target, identityDir, name) ? { kind: "our_symlink" } : { kind: "foreign_symlink" };
|
|
168
|
+
} else {
|
|
169
|
+
existing = { kind: "file", raw: readFileSync(destPath, "utf-8") };
|
|
170
|
+
}
|
|
171
|
+
} catch {
|
|
172
|
+
existing = { kind: "absent" };
|
|
173
|
+
}
|
|
174
|
+
if (existing.kind === "foreign_symlink") {
|
|
175
|
+
results.push({ agentId: name, action: "skipped", path: destPath, reason: "foreign_symlink" });
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
if (existing.kind === "file") {
|
|
179
|
+
if (!isGeneratedAgentDef(existing.raw)) {
|
|
180
|
+
results.push({ agentId: name, action: "skipped", path: destPath, reason: "user_file" });
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
if (existing.raw === content) {
|
|
184
|
+
results.push({ agentId: name, action: "unchanged", path: destPath });
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
try {
|
|
189
|
+
mkdirSync(agentsDir, { recursive: true });
|
|
190
|
+
const tempPath = path.join(agentsDir, `.tmp-agent-def-${name}-${process.pid}-${randomBytes(4).toString("hex")}`);
|
|
191
|
+
writeFileSync(tempPath, content, "utf-8");
|
|
192
|
+
try {
|
|
193
|
+
let preStat;
|
|
194
|
+
try {
|
|
195
|
+
preStat = lstatSync(destPath);
|
|
196
|
+
} catch {
|
|
197
|
+
preStat = null;
|
|
198
|
+
}
|
|
199
|
+
if (preStat?.isSymbolicLink()) {
|
|
200
|
+
if (existing.kind !== "our_symlink") {
|
|
201
|
+
unlinkSync(tempPath);
|
|
202
|
+
results.push({ agentId: name, action: "skipped", path: destPath, reason: "symlink_appeared" });
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
unlinkSync(destPath);
|
|
206
|
+
}
|
|
207
|
+
renameSync(tempPath, destPath);
|
|
208
|
+
} catch (err) {
|
|
209
|
+
try {
|
|
210
|
+
unlinkSync(tempPath);
|
|
211
|
+
} catch {
|
|
212
|
+
}
|
|
213
|
+
throw err;
|
|
214
|
+
}
|
|
215
|
+
results.push({
|
|
216
|
+
agentId: name,
|
|
217
|
+
action: existing.kind === "file" ? "updated" : "created",
|
|
218
|
+
path: destPath
|
|
219
|
+
});
|
|
220
|
+
} catch (err) {
|
|
221
|
+
results.push({
|
|
222
|
+
agentId: name,
|
|
223
|
+
action: "skipped",
|
|
224
|
+
path: destPath,
|
|
225
|
+
reason: `write_failed:${err instanceof Error ? err.message : String(err)}`
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return results;
|
|
230
|
+
}
|
|
231
|
+
function summarizeAgentDefResults(results) {
|
|
232
|
+
const count = (action) => results.filter((r) => r.action === action).length;
|
|
233
|
+
return `${count("created")} created, ${count("updated")} updated, ${count("unchanged")} unchanged, ${count("skipped")} skipped`;
|
|
234
|
+
}
|
|
235
|
+
export {
|
|
236
|
+
AGENT_DEF_MARKER,
|
|
237
|
+
generateAgentDefs,
|
|
238
|
+
isGeneratedAgentDef,
|
|
239
|
+
summarizeAgentDefResults
|
|
240
|
+
};
|