@askexenow/exe-os 0.9.400 → 0.9.402
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/dist/.dist-verified.json +3 -3
- package/dist/{active-agent-JRLTCGVP.js → active-agent-3FVEAPPT.js} +4 -4
- package/dist/{active-agent-COSDFDOA.js → active-agent-TZKOM7HN.js} +4 -4
- package/dist/{agent-defs-generator-IQXS2XAQ.js → agent-defs-generator-BZMIVL5B.js} +3 -3
- package/dist/{agentic-ontology-RDAEBWBG.js → agentic-ontology-6FF6O2DE.js} +1 -1
- package/dist/{artifact-backup-JLYSQRNJ.js → artifact-backup-AICTE3YO.js} +3 -3
- package/dist/{backfill-metadata-INUCVGJP.js → backfill-metadata-EVY37KID.js} +7 -7
- package/dist/{backup-verify-PUJ2CEO5.js → backup-verify-XZ6PDZLI.js} +23 -1
- package/dist/{behavior-injection-AWJZHIUK.js → behavior-injection-LGVKVC22.js} +10 -10
- package/dist/{behavior-promotion-ETSNUSZF.js → behavior-promotion-REITTBUM.js} +9 -9
- package/dist/{behaviors-IVDHEG66.js → behaviors-WQVKDSJ2.js} +8 -8
- package/dist/bin/agentic-ontology-backfill.js +8 -8
- package/dist/bin/agentic-reflection-backfill.js +9 -9
- package/dist/bin/agentic-semantic-label.js +8 -8
- package/dist/bin/backfill-conversations.js +7 -7
- package/dist/bin/backfill-responses.js +7 -7
- package/dist/bin/backfill-vectors.js +7 -7
- package/dist/bin/bulk-sync-postgres.js +16 -16
- package/dist/bin/cc-doctor.js +8 -8
- package/dist/bin/cleanup-stale-review-tasks.js +15 -15
- package/dist/bin/cli.js +24 -24
- package/dist/bin/deferred-daemon-restart.js +93 -93
- package/dist/bin/exe-agent-config.js +3 -3
- package/dist/bin/exe-agent.js +8 -8
- package/dist/bin/exe-assign.js +8 -8
- package/dist/bin/exe-boot.js +35 -35
- package/dist/bin/exe-call.js +8 -8
- package/dist/bin/exe-cloud.js +17 -17
- package/dist/bin/exe-config-dump.js +3 -3
- package/dist/bin/exe-dispatch.js +16 -16
- package/dist/bin/exe-doctor.js +5 -5
- package/dist/bin/exe-export-behaviors.js +12 -12
- package/dist/bin/exe-forget.js +10 -10
- package/dist/bin/exe-gateway.js +9 -9
- package/dist/bin/exe-grant.js +6 -6
- package/dist/bin/exe-healthcheck.js +8 -8
- package/dist/bin/exe-heartbeat.js +21 -21
- package/dist/bin/exe-kill.js +20 -20
- package/dist/bin/exe-launch-agent.js +28 -28
- package/dist/bin/exe-mcp.js +5 -5
- package/dist/bin/exe-memory-reads.js +7 -7
- package/dist/bin/exe-new-employee.js +10 -10
- package/dist/bin/exe-os-mcp-proxy.js +5 -5
- package/dist/bin/exe-pending-messages.js +16 -16
- package/dist/bin/exe-pending-notifications.js +15 -15
- package/dist/bin/exe-pending-reviews.js +16 -16
- package/dist/bin/exe-rename.js +6 -6
- package/dist/bin/exe-review.js +19 -19
- package/dist/bin/exe-search.js +9 -9
- package/dist/bin/exe-session-cleanup.js +20 -20
- package/dist/bin/exe-settings.js +16 -16
- package/dist/bin/exe-start-codex.js +18 -18
- package/dist/bin/exe-start-opencode.js +16 -16
- package/dist/bin/exe-status.js +17 -17
- package/dist/bin/exe-support.js +3 -3
- package/dist/bin/exe-team.js +5 -5
- package/dist/bin/git-sweep.js +16 -16
- package/dist/bin/graph-backfill.js +8 -8
- package/dist/bin/graph-export.js +8 -8
- package/dist/bin/hooks-cli.js +1 -1
- package/dist/bin/import-history.js +11 -11
- package/dist/bin/install.js +95 -95
- package/dist/bin/intercom-check.js +5 -5
- package/dist/bin/mcp-sessions.js +2 -2
- package/dist/bin/orchestration-metrics.js +5 -5
- package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
- package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
- package/dist/bin/reconcile-backlog.js +2 -2
- package/dist/bin/registry-proxy.js +1 -1
- package/dist/bin/repair-document-chunks.js +7 -7
- package/dist/bin/scan-tasks.js +16 -16
- package/dist/bin/setup.js +2 -2
- package/dist/bin/shard-migrate.js +8 -8
- package/dist/bin/stack-update.js +15 -5
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{boot-generation-6JYN5WKI.js → boot-generation-FUMLDSED.js} +4 -4
- package/dist/{boot-review-sections-YJIWBD3I.js → boot-review-sections-XKZKVVTD.js} +14 -14
- package/dist/{bug-landed-reconciler-BMFYNM3C.js → bug-landed-reconciler-ZRMGVFRY.js} +6 -6
- package/dist/build-manifest.json +881 -881
- package/dist/{capability-cards-IPJDK5TB.js → capability-cards-HLO4TWSY.js} +3 -3
- package/dist/{capacity-monitor-HP25R7Q7.js → capacity-monitor-5QCHYFOA.js} +16 -16
- package/dist/{catchup-brief-FCWGYAQ6.js → catchup-brief-FFNWUTUW.js} +21 -21
- package/dist/{chunk-3BL3SJTP.js → chunk-2LQE52MI.js} +1 -1
- package/dist/{chunk-7KYL2RF4.js → chunk-3AZN5V24.js} +1 -1
- package/dist/{chunk-32T3ZMGV.js → chunk-4FAJBCUY.js} +1 -1
- package/dist/{chunk-TJMYWOLH.js → chunk-4MUU33NJ.js} +2 -2
- package/dist/{chunk-T3CVFB3J.js → chunk-4OZXJX3M.js} +4 -4
- package/dist/{chunk-JGW4SMZX.js → chunk-4VT6HZV6.js} +1 -1
- package/dist/{chunk-OXEL5YS7.js → chunk-4WKMKLQZ.js} +52 -22
- package/dist/{chunk-OSI5BWST.js → chunk-4WY6BKDT.js} +2 -2
- package/dist/{chunk-O2HIMMKW.js → chunk-4XRQEQNK.js} +1 -1
- package/dist/{chunk-DXFGK4CO.js → chunk-55LSHCXP.js} +1 -1
- package/dist/{chunk-LPUIUJPF.js → chunk-5INWFQCO.js} +1 -1
- package/dist/{chunk-H5H2ECWE.js → chunk-5KFKW57A.js} +1 -1
- package/dist/{chunk-QXZJ2JWA.js → chunk-65VSE3A4.js} +1 -1
- package/dist/{chunk-K46WKWBX.js → chunk-6MRXSQIY.js} +5 -5
- package/dist/{chunk-JPBTKOWE.js → chunk-6QGA7QZF.js} +6 -6
- package/dist/{chunk-ZP2EYJ2G.js → chunk-7IZL2RMP.js} +4 -4
- package/dist/{chunk-DNJBY2OP.js → chunk-A2HLPB6M.js} +1 -1
- package/dist/{chunk-FHBFNDIR.js → chunk-ABYV3K3Y.js} +10 -10
- package/dist/{chunk-PUQKRKQQ.js → chunk-AMRJS3UF.js} +1 -1
- package/dist/{chunk-GJ4XERZA.js → chunk-AR2K7SUC.js} +230 -12
- package/dist/{chunk-QWROXB2K.js → chunk-ATI6PPTU.js} +1 -1
- package/dist/{chunk-LJGWR76V.js → chunk-B2U5UPDC.js} +3 -3
- package/dist/{chunk-BTQVKT7H.js → chunk-BPMY52GP.js} +3 -3
- package/dist/{chunk-HOZM5RL2.js → chunk-BPRV4W4F.js} +3 -3
- package/dist/{chunk-BQQLAUN7.js → chunk-BPTTQRMJ.js} +1 -1
- package/dist/{chunk-JQVM4YIU.js → chunk-C57T744G.js} +1 -1
- package/dist/{chunk-OTY62DK2.js → chunk-CBOD7BPX.js} +1 -1
- package/dist/{chunk-JOMPRQPW.js → chunk-CMXGHLDK.js} +1 -1
- package/dist/{chunk-E5KBHWDR.js → chunk-D37B4WEF.js} +1 -1
- package/dist/{chunk-CPYHFFGE.js → chunk-D53HVC4X.js} +1 -1
- package/dist/{chunk-4ZI4FXNC.js → chunk-D6I4RTPF.js} +1 -1
- package/dist/{chunk-FJ7MZAF7.js → chunk-DCKRZG4B.js} +2 -2
- package/dist/{chunk-CAPWUB4N.js → chunk-DLU6DGSY.js} +2 -2
- package/dist/{chunk-2PSEY7AN.js → chunk-DOUHD6KC.js} +1 -1
- package/dist/{chunk-YGX3WNA7.js → chunk-E7XHIM62.js} +5 -5
- package/dist/{chunk-J6TWKRCB.js → chunk-ELP6YAUW.js} +1 -1
- package/dist/{chunk-ELBQHL5A.js → chunk-EMKSTLBG.js} +5 -5
- package/dist/{chunk-L52BKAE6.js → chunk-ESEYXNZM.js} +4 -4
- package/dist/{chunk-DJDGMGWE.js → chunk-EW7WZSI5.js} +1 -1
- package/dist/{chunk-ERFSLWFP.js → chunk-EXNHDTOQ.js} +1 -1
- package/dist/{chunk-6IXKFDMC.js → chunk-FL2QIDNZ.js} +2 -2
- package/dist/{chunk-ICOLPUT3.js → chunk-G3K3P5FR.js} +1 -1
- package/dist/{chunk-OMYOBYF3.js → chunk-G6LFTQI2.js} +7 -7
- package/dist/{chunk-J426E4AK.js → chunk-GFMFT5JJ.js} +1 -1
- package/dist/{chunk-K2MYR3EE.js → chunk-GFQVXPUN.js} +1 -1
- package/dist/{chunk-4ZAS2F3K.js → chunk-GI44KWJA.js} +2 -2
- package/dist/{chunk-35GQRTAN.js → chunk-GVZPT5GJ.js} +1 -1
- package/dist/{chunk-6OBBLH4A.js → chunk-HOK4C7TA.js} +5 -5
- package/dist/{chunk-DZX46OBH.js → chunk-HQKW27AO.js} +6 -6
- package/dist/{chunk-WHUFGDLB.js → chunk-HU2BKZ3Q.js} +1 -1
- package/dist/{chunk-4QWPMICI.js → chunk-I6HLTDQP.js} +4 -4
- package/dist/{chunk-KMNRXMPV.js → chunk-IALTVJEW.js} +1 -1
- package/dist/{chunk-MVRPI3LS.js → chunk-J6VWBA3X.js} +147 -147
- package/dist/{chunk-LX4ZOGCH.js → chunk-J6XRARYK.js} +2 -2
- package/dist/{chunk-KFIHF5RO.js → chunk-J77FASSK.js} +6 -6
- package/dist/{chunk-PKY4Y3TM.js → chunk-JBN3HVKP.js} +5 -5
- package/dist/{chunk-D3HDOPVZ.js → chunk-JJRYW36J.js} +3 -3
- package/dist/{chunk-V7XFNFXV.js → chunk-JRSY7B7A.js} +4 -4
- package/dist/{chunk-TODOUGTQ.js → chunk-KD7OHAZM.js} +1 -1
- package/dist/{chunk-JOAFBGO6.js → chunk-KETFSLRH.js} +138 -97
- package/dist/{chunk-6D4ZNDXU.js → chunk-KZB2B7RM.js} +11 -11
- package/dist/{chunk-4JILJXGZ.js → chunk-LHPRG2LZ.js} +2 -2
- package/dist/{chunk-AA3GPWSI.js → chunk-LLHTGV6Y.js} +1 -1
- package/dist/{chunk-O6DR27UL.js → chunk-LSH2UDUX.js} +1 -1
- package/dist/{chunk-IW3USRIY.js → chunk-M4QI633W.js} +1 -1
- package/dist/{chunk-3BOP7BUQ.js → chunk-M5Z7VTOF.js} +3 -3
- package/dist/{chunk-BQEKC3G7.js → chunk-ME7BEI2S.js} +2 -2
- package/dist/{chunk-LOHJADBX.js → chunk-NIRXFG3I.js} +9 -9
- package/dist/{chunk-5P6R6GH2.js → chunk-NQCUSXX6.js} +3 -3
- package/dist/{chunk-WOLE4F3K.js → chunk-NSUK3QHD.js} +2 -2
- package/dist/{chunk-VPFTQZWB.js → chunk-NVPDTGR7.js} +16 -16
- package/dist/{chunk-WB7TP6IW.js → chunk-O5ORPJJX.js} +1 -1
- package/dist/{chunk-M2RVBCVL.js → chunk-OAOEW2SZ.js} +1 -1
- package/dist/{chunk-2LFEU7UU.js → chunk-ONTGO4YY.js} +3 -3
- package/dist/{chunk-O3GOBKWS.js → chunk-OX2UG7XA.js} +4 -4
- package/dist/{chunk-6IWF7EIO.js → chunk-P3JGDPQL.js} +3 -3
- package/dist/{chunk-YOB55CI7.js → chunk-PD7GVARG.js} +1 -1
- package/dist/{chunk-V2Z23CEF.js → chunk-PDKMK2GJ.js} +1 -1
- package/dist/{chunk-XMPRHRDY.js → chunk-PDOJBSJR.js} +1 -1
- package/dist/{chunk-EPYZUWOE.js → chunk-PMM3KU7N.js} +3 -3
- package/dist/{chunk-QVGZAKDF.js → chunk-PRLDZOQT.js} +1 -1
- package/dist/{chunk-26YPVXOH.js → chunk-Q4LLPKVS.js} +2 -2
- package/dist/{chunk-PJE4M5XR.js → chunk-QIWAMVMK.js} +3 -3
- package/dist/{chunk-RSUTLQMW.js → chunk-QVYAIPDE.js} +1 -1
- package/dist/{chunk-4Q7JAIEW.js → chunk-QYOWGMHR.js} +2 -2
- package/dist/{chunk-MF6AI66P.js → chunk-R4QSZSTJ.js} +2 -2
- package/dist/{chunk-ZGZ7QN3S.js → chunk-RDAFJUM4.js} +1 -1
- package/dist/{chunk-QQFJELUE.js → chunk-RKQ4YSSV.js} +3 -3
- package/dist/{chunk-RJAVO45X.js → chunk-RMP4VFC6.js} +2 -2
- package/dist/{chunk-2HJOCTAM.js → chunk-ROGZRDCU.js} +94 -21
- package/dist/{chunk-WMOHI53L.js → chunk-S3ZLLZAT.js} +3 -3
- package/dist/{chunk-ZUAHKWDR.js → chunk-SO6PSF3W.js} +1 -1
- package/dist/{chunk-QIOU2PXK.js → chunk-SWQRQB4M.js} +2 -2
- package/dist/{chunk-CBWF4NG2.js → chunk-UFDUCPZT.js} +1 -1
- package/dist/{chunk-KVFHRZZ4.js → chunk-ULHAUEUK.js} +4 -4
- package/dist/{chunk-THIFYSJY.js → chunk-UPMRTB66.js} +4 -4
- package/dist/{chunk-HY3E4VPO.js → chunk-UR3DB6QM.js} +1 -1
- package/dist/{chunk-H6FPXML4.js → chunk-V5DXD4TU.js} +1 -1
- package/dist/{chunk-3YJMGYLP.js → chunk-VIPGA47U.js} +3 -3
- package/dist/{chunk-5CJ6CCGV.js → chunk-VRAMCDZD.js} +1 -1
- package/dist/{chunk-EKAGECRQ.js → chunk-WNQXCO3B.js} +3 -3
- package/dist/{chunk-SBITXZRY.js → chunk-X2OOOADC.js} +1 -1
- package/dist/{chunk-ZAP3MPE7.js → chunk-XDCQV6V7.js} +3 -3
- package/dist/{chunk-RN7FGCJF.js → chunk-XHBJSK2A.js} +4 -4
- package/dist/{chunk-T5JXV2SE.js → chunk-XJMJ3NH2.js} +1 -1
- package/dist/{chunk-SASZ4GG6.js → chunk-XROAVRQE.js} +1 -1
- package/dist/{chunk-IAGIZWBI.js → chunk-YGU3C5LK.js} +3 -3
- package/dist/{chunk-RK34OSZK.js → chunk-YSAYRUWJ.js} +2 -2
- package/dist/{chunk-VFKYNMS6.js → chunk-YUNPMSIB.js} +12 -12
- package/dist/{chunk-7XSBDGUP.js → chunk-YYZEDAKC.js} +4 -4
- package/dist/{chunk-HCXXUTG5.js → chunk-Z6VDOIW3.js} +3 -3
- package/dist/{chunk-CQNW5GB7.js → chunk-ZVCB6N52.js} +2 -2
- package/dist/{chunk-YQG2JDWX.js → chunk-ZVOCK5HZ.js} +1 -1
- package/dist/{chunk-37FY7ZOZ.js → chunk-ZY7N4RM3.js} +2 -2
- package/dist/{cleanup-graph-garbage-547CYZWA.js → cleanup-graph-garbage-JWUWOVRB.js} +8 -8
- package/dist/{cli-shutdown-QKHAH4O5.js → cli-shutdown-Z7NWWAK6.js} +1 -1
- package/dist/{cloud-sync-command-EXZMJPSK.js → cloud-sync-command-NIAFLQUR.js} +2 -2
- package/dist/{cloud-sync-db-init-G6NLO5YP.js → cloud-sync-db-init-CO5GSXUE.js} +1 -1
- package/dist/{cloud-sync-shutdown-TMI42NPZ.js → cloud-sync-shutdown-Z3ITGI4K.js} +3 -3
- package/dist/{co-activation-7EE63ZH4.js → co-activation-5MZDEUXV.js} +3 -3
- package/dist/{co-occurrence-5WZMOKZY.js → co-occurrence-IZSNRYOZ.js} +6 -6
- package/dist/{consent-passphrase-5OVKNZHU.js → consent-passphrase-AE4OIZZD.js} +2 -2
- package/dist/{conversation-entity-extractor-NKDNKGTR.js → conversation-entity-extractor-2F2JP7F7.js} +3 -3
- package/dist/{crdt-sync-ZV7UD2MD.js → crdt-sync-H74HCZSY.js} +4 -4
- package/dist/{crm-webhook-26O47D5D.js → crm-webhook-MVTGXAUH.js} +2 -2
- package/dist/{cto-delegation-gate-RFHAGYTR.js → cto-delegation-gate-5SHWIUP5.js} +14 -14
- package/dist/{daemon-orchestration-DRBFJEDK.js → daemon-orchestration-VV6VSSXY.js} +20 -20
- package/dist/{doc-graph-extractor-KKSXP3UR.js → doc-graph-extractor-QAXJPOLI.js} +6 -6
- package/dist/{documents-6XQTYHTC.js → documents-WNEMVVDN.js} +8 -8
- package/dist/{dreaming-EFUZQ5RJ.js → dreaming-WXVCP3OH.js} +19 -19
- package/dist/{employee-boot-brief-6C2MC247.js → employee-boot-brief-BCZGZDUQ.js} +23 -23
- package/dist/{entity-boost-5YQENFGZ.js → entity-boost-K6UENCYQ.js} +1 -1
- package/dist/{exe-drift-7YHLZOLV.js → exe-drift-Q5LW34CT.js} +4 -4
- package/dist/{exe-export-KLNIX5VR.js → exe-export-IM3NTK2U.js} +9 -9
- package/dist/{exe-import-2QVHV7HL.js → exe-import-D4F32735.js} +9 -9
- package/dist/{exe-key-2SLOCUX3.js → exe-key-X7ZLYMH4.js} +93 -93
- package/dist/{exe-org-NFP2DJJY.js → exe-org-QG7TQR5A.js} +32 -32
- package/dist/{exe-snapshot-FCABLS2M.js → exe-snapshot-2Z6UBI23.js} +22 -22
- package/dist/{fast-db-init-WHUKFVKZ.js → fast-db-init-TGDD5WNI.js} +1 -1
- package/dist/{founder-context-ZY2DYGW6.js → founder-context-X3EJQ2CX.js} +2 -2
- package/dist/{founder-monitor-envelope-5OKQH6E4.js → founder-monitor-envelope-WLOWBTTD.js} +4 -4
- package/dist/gateway/index.js +11 -11
- package/dist/{gateway-client-VZ73YGBI.js → gateway-client-L3CUTHEJ.js} +1 -1
- package/dist/{git-staleness-4IA6MCNW.js → git-staleness-6VJJL3Z7.js} +3 -3
- package/dist/{global-procedures-3ZRFJAKU.js → global-procedures-CK2S4OJ5.js} +5 -5
- package/dist/{graph-auto-extract-AZC7OL6F.js → graph-auto-extract-KFVRRZA2.js} +6 -6
- package/dist/{graph-query-VERIL4XL.js → graph-query-YGCK7MOA.js} +1 -1
- package/dist/{graph-rag-OPYXLYKM.js → graph-rag-MYJ3XXMV.js} +3 -3
- package/dist/{hook-integrity-DVK4L24S.js → hook-integrity-NUEQESD4.js} +1 -1
- package/dist/{hook-prefetch-F44EONHV.js → hook-prefetch-DTOR5TC5.js} +15 -15
- package/dist/hooks/bug-report-worker.js +19 -19
- package/dist/hooks/codex-stop-task-finalizer.js +21 -21
- package/dist/hooks/commit-complete.js +18 -18
- package/dist/hooks/error-recall.js +11 -11
- package/dist/hooks/exe-heartbeat-hook.js +5 -5
- package/dist/hooks/ingest-worker.js +7 -7
- package/dist/hooks/ingest.js +13 -13
- package/dist/hooks/instructions-loaded.js +7 -7
- package/dist/hooks/manifest.json +20 -20
- package/dist/hooks/notification.js +6 -6
- package/dist/hooks/post-compact.js +5 -5
- package/dist/hooks/post-tool-combined.js +13 -13
- package/dist/hooks/pre-compact.js +18 -18
- package/dist/hooks/pre-tool-use.js +2 -2
- package/dist/hooks/prompt-submit.js +36 -36
- package/dist/hooks/session-end.js +23 -23
- package/dist/hooks/session-start.js +18 -18
- package/dist/hooks/stop.js +21 -21
- package/dist/hooks/subagent-stop.js +20 -20
- package/dist/hooks/summary-worker.js +22 -22
- package/dist/index.js +26 -26
- package/dist/{installer-G2OFNPAC.js → installer-37SIWOV4.js} +7 -7
- package/dist/{installer-KBRK53CB.js → installer-KQJDEE7B.js} +7 -7
- package/dist/{installer-ZEJPYCID.js → installer-UMXNRHLJ.js} +7 -7
- package/dist/{intercom-queue-TOM4ZNU6.js → intercom-queue-CDDFKPEJ.js} +14 -14
- package/dist/lib/cloud-sync.js +16 -16
- package/dist/lib/consolidation.js +9 -9
- package/dist/lib/crypto.js +3 -3
- package/dist/lib/database.js +3 -3
- package/dist/lib/db-backup.js +3 -1
- package/dist/lib/db-write-worker.js +3 -3
- package/dist/lib/db.js +3 -3
- package/dist/lib/device-registry.js +1 -1
- package/dist/lib/employee-templates.js +6 -6
- package/dist/lib/employees.js +3 -3
- package/dist/lib/exe-daemon.js +85 -85
- package/dist/lib/hybrid-search.js +9 -9
- package/dist/lib/identity.js +3 -3
- package/dist/lib/keychain.js +1 -1
- package/dist/lib/license.js +2 -2
- package/dist/lib/messaging.js +15 -15
- package/dist/lib/post-tool-memory.js +5 -5
- package/dist/lib/registry-proxy.js +1 -1
- package/dist/lib/reminders.js +4 -4
- package/dist/lib/schedules.js +8 -8
- package/dist/lib/session-registry.js +5 -5
- package/dist/lib/skill-learning.js +9 -9
- package/dist/lib/store.js +7 -7
- package/dist/lib/task-router.js +4 -4
- package/dist/lib/tasks.js +16 -16
- package/dist/lib/tmux-routing.js +14 -14
- package/dist/lib/token-spend.js +4 -4
- package/dist/lib/ws-client.js +1 -1
- package/dist/{license-gate-S64ZXNJP.js → license-gate-3RY6PHVV.js} +3 -3
- package/dist/{license-recheck-THF42I5H.js → license-recheck-JUOCYY4O.js} +1 -1
- package/dist/{license-sync-6IQWVOWO.js → license-sync-FK4A36MC.js} +2 -2
- package/dist/mcp/register-tools.js +92 -92
- package/dist/mcp/server.js +92 -92
- package/dist/mcp/tools/complete-reminder.js +5 -5
- package/dist/mcp/tools/create-reminder.js +5 -5
- package/dist/mcp/tools/create-task.js +18 -18
- package/dist/mcp/tools/deactivate-behavior.js +10 -10
- package/dist/mcp/tools/list-reminders.js +5 -5
- package/dist/mcp/tools/list-tasks.js +18 -18
- package/dist/mcp/tools/send-message.js +17 -17
- package/dist/mcp/tools/update-task.js +17 -17
- package/dist/{mcp-http-config-HYC6PGN7.js → mcp-http-config-A5HJ5AFM.js} +5 -5
- package/dist/{mcp-session-identity-XILWZAQ3.js → mcp-session-identity-JJXOYI4B.js} +14 -14
- package/dist/{memory-cards-YXLJNJPD.js → memory-cards-R3P6S2SY.js} +7 -7
- package/dist/{memory-graph-extractor-KO4HTOSQ.js → memory-graph-extractor-HR247CPK.js} +7 -7
- package/dist/{memory-maintenance-65DVM3F4.js → memory-maintenance-R65ADRK4.js} +1 -1
- package/dist/{memory-poisoning-defense-PPTXVD7B.js → memory-poisoning-defense-BF2CPNT5.js} +3 -3
- package/dist/{memory-pressure-watchdog-G4HRVSFS.js → memory-pressure-watchdog-YEM7A7WF.js} +15 -15
- package/dist/{memory-reflection-FRHRN6DB.js → memory-reflection-RGI7UCQU.js} +7 -7
- package/dist/{memory-write-repository-LLDBAJAW.js → memory-write-repository-DE6YHSL7.js} +1 -1
- package/dist/{monitor-grants-U7435QSS.js → monitor-grants-FMUIG3LI.js} +3 -3
- package/dist/{monitor-identity-TYG4KCJS.js → monitor-identity-AID64LBN.js} +2 -2
- package/dist/{notification-ledger-UWATPNMM.js → notification-ledger-MDYFG7PR.js} +15 -15
- package/dist/{notifications-CBBWB6CI.js → notifications-TQEE62U3.js} +14 -14
- package/dist/{orchestration-events-OBH4XY2J.js → orchestration-events-7JWQRUVB.js} +4 -4
- package/dist/{orchestrator-T4XLGJRJ.js → orchestrator-HIICR4TY.js} +16 -16
- package/dist/{org-brief-session-ILGWGC5X.js → org-brief-session-WP24RIRM.js} +15 -15
- package/dist/{org-consent-policy-YKN7LOG3.js → org-consent-policy-76XNIB7A.js} +5 -5
- package/dist/{org-join-XQL2X5AO.js → org-join-5NLZ4ZT4.js} +9 -9
- package/dist/{org-key-admin-ETFX33EW.js → org-key-admin-TTJPJHWE.js} +11 -11
- package/dist/{org-key-epoch-TRQQBFQ2.js → org-key-epoch-LIYGA7HR.js} +5 -5
- package/dist/{org-key-pin-ZON5NGP5.js → org-key-pin-NHHPBPIO.js} +3 -3
- package/dist/{org-membership-IW4ZDMKZ.js → org-membership-VMXEZZYF.js} +4 -4
- package/dist/{org-partner-config-GG4YMEA3.js → org-partner-config-4ZIVK7VP.js} +8 -8
- package/dist/{org-partner-runtime-4T4YUBGL.js → org-partner-runtime-EMVKQMA2.js} +15 -15
- package/dist/{org-row-visibility-F4PTFDFW.js → org-row-visibility-WEXJNGMO.js} +1 -1
- package/dist/{pipeline-router-2SC44FMX.js → pipeline-router-M6ADV2GK.js} +4 -4
- package/dist/{plan-limits-JDFGTUXU.js → plan-limits-WSKTUJB7.js} +6 -6
- package/dist/{pre-tool-use-impl-D3CJ2RCE.js → pre-tool-use-impl-T54FWS5F.js} +29 -29
- package/dist/{project-name-ISGI3PY5.js → project-name-JNUX5KNJ.js} +4 -4
- package/dist/{projection-worker-5TNY3OA2.js → projection-worker-4R44UDTC.js} +2 -2
- package/dist/{prospective-memory-TQ7Z6UK4.js → prospective-memory-JU52ZU4P.js} +3 -3
- package/dist/{push-notifications-VY2WM6OW.js → push-notifications-KAV2I7BT.js} +15 -15
- package/dist/{reproject-worktree-memories-J7X3EBNB.js → reproject-worktree-memories-UOTGJHHZ.js} +14 -14
- package/dist/{reranker-AZWLDKTF.js → reranker-EV4BDEEM.js} +1 -1
- package/dist/{retrieval-health-BIOHGTFR.js → retrieval-health-7QFZQ3VL.js} +1 -1
- package/dist/{review-polling-U5EYTXFU.js → review-polling-6646GRW6.js} +15 -15
- package/dist/runtime/index.js +18 -18
- package/dist/{session-events-4IDRYFVA.js → session-events-ID2UU6YB.js} +15 -15
- package/dist/{session-kill-telemetry-I2IXSAQ3.js → session-kill-telemetry-YR7HNHZI.js} +15 -15
- package/dist/{session-scope-S7DUMN4Q.js → session-scope-FNGMMG7K.js} +14 -14
- package/dist/{setup-wizard-TG3EPPCC.js → setup-wizard-GEXWKX3J.js} +2 -2
- package/dist/{shard-manager-7DKNYDIV.js → shard-manager-6U634WL5.js} +2 -2
- package/dist/{skill-refinement-4HAGXWWD.js → skill-refinement-M7U3IH3B.js} +4 -4
- package/dist/{skill-retrieval-IHM2AQIW.js → skill-retrieval-QWRHBTM7.js} +11 -11
- package/dist/{skill-usage-PEYGHVF5.js → skill-usage-7FNE6C73.js} +4 -4
- package/dist/{stack-generate-manifest-WA6W54R4.js → stack-generate-manifest-53OIWKJJ.js} +4 -4
- package/dist/{stack-promote-5BVRO7DO.js → stack-promote-43W7XU5A.js} +4 -4
- package/dist/{stack-release-HB5UM2IG.js → stack-release-TWEFH7RF.js} +5 -5
- package/dist/{stack-update-EQDLX2EG.js → stack-update-SPZKBTHQ.js} +13 -3
- package/dist/{steward-gate-D3Q4PVQU.js → steward-gate-S5NPASQ6.js} +4 -4
- package/dist/{subagent-brief-injection-UVG7FTPS.js → subagent-brief-injection-WAPOJNEW.js} +25 -25
- package/dist/{support-bug-actions-XHGVFN5K.js → support-bug-actions-LRRPCO2X.js} +3 -3
- package/dist/{support-inbox-YNJXXOJG.js → support-inbox-L353AXIP.js} +12 -12
- package/dist/{task-enforcement-P2CEI3FT.js → task-enforcement-X55T4MA2.js} +15 -15
- package/dist/{task-request-inbox-56VQUXKG.js → task-request-inbox-JFPPW6JF.js} +5 -5
- package/dist/{task-scope-JZNO6OO4.js → task-scope-KB35QGJ2.js} +14 -14
- package/dist/{tasks-crud-LEDUFYKV.js → tasks-crud-XSCWP2ZQ.js} +16 -14
- package/dist/{tasks-notify-X4LK22K3.js → tasks-notify-A2GQS3AW.js} +15 -15
- package/dist/{tasks-review-EFVDIP7G.js → tasks-review-YIRJPO2P.js} +14 -14
- package/dist/{telemetry-upload-LOXHJ5I4.js → telemetry-upload-2B567ZWI.js} +8 -8
- package/dist/{token-budget-PBTAKWEG.js → token-budget-3T7TRE23.js} +4 -4
- package/dist/{tool-telemetry-FCVFNWUI.js → tool-telemetry-CU65NUCU.js} +1 -1
- package/dist/tui/App.js +24 -24
- package/dist/{tui-data-FEYZXOCX.js → tui-data-32EDQQNA.js} +18 -18
- package/dist/{update-support-GHWZB4SH.js → update-support-JAP2PFNY.js} +11 -11
- package/dist/{whatsapp-O4VRU6J4.js → whatsapp-FN6PRHX6.js} +2 -2
- package/dist/{wiki-acl-QSIOZBTL.js → wiki-acl-V6ZFV44C.js} +1 -1
- package/dist/{work-claims-SASEE66I.js → work-claims-5D7OBZVP.js} +4 -4
- package/dist/{work-state-heartbeat-TDYKTZUV.js → work-state-heartbeat-ET3ISGCF.js} +1 -1
- package/dist/{workflow-engine-TVSSUPLY.js → workflow-engine-WBCMRPKF.js} +2 -2
- package/dist/{worktree-EAXBOKTG.js → worktree-NPWJ4RJ3.js} +5 -5
- package/dist/{worktree-sweep-LPEUM44A.js → worktree-sweep-QA26BFO7.js} +6 -6
- package/package.json +3 -1
- package/release-notes.json +7 -18
- package/stack.release.json +3 -3
- /package/dist/{chunk-CZLB2RJ7.js → chunk-364OWA4G.js} +0 -0
- /package/dist/{chunk-62EETXIE.js → chunk-DHWZHM6J.js} +0 -0
- /package/dist/{chunk-GGKJHUBC.js → chunk-FIIVUFRF.js} +0 -0
- /package/dist/{chunk-NECWNYQG.js → chunk-HC5Z72HE.js} +0 -0
- /package/dist/{chunk-USV4EKTB.js → chunk-IBRBBKNG.js} +0 -0
- /package/dist/{chunk-NYL3M7GZ.js → chunk-K25XOKDF.js} +0 -0
- /package/dist/{chunk-DCI45I24.js → chunk-LKCC4MRH.js} +0 -0
- /package/dist/{chunk-VVOUVCIG.js → chunk-LYNJO72I.js} +0 -0
- /package/dist/{chunk-6J7P73XI.js → chunk-MPFDIV2O.js} +0 -0
- /package/dist/{chunk-P35TTOHJ.js → chunk-SLRJ4XSO.js} +0 -0
- /package/dist/{chunk-Q2FACDN6.js → chunk-TYKG62HG.js} +0 -0
- /package/dist/{chunk-MRCMAOZU.js → chunk-XWVJVGIV.js} +0 -0
- /package/dist/{chunk-JJJNBTMP.js → chunk-Z4HL4WPV.js} +0 -0
- /package/dist/{core-memory-BEVUZHYN.js → core-memory-2CH552K3.js} +0 -0
- /package/dist/{memory-isolation-TFUBKU3C.js → memory-isolation-RWXYBFXJ.js} +0 -0
- /package/dist/{oauth-server-TO3U7RGZ.js → oauth-server-IDBV3VAJ.js} +0 -0
- /package/dist/{project-boot-OCBNKGQM.js → project-boot-O6CJGZIF.js} +0 -0
|
@@ -4,18 +4,18 @@ import {
|
|
|
4
4
|
} from "./chunk-NEHOQ3P2.js";
|
|
5
5
|
import {
|
|
6
6
|
isCrdtSyncEnabled
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-PDKMK2GJ.js";
|
|
8
8
|
import {
|
|
9
9
|
orgMembershipsPath,
|
|
10
10
|
orgModeActive
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-OAOEW2SZ.js";
|
|
12
12
|
import {
|
|
13
13
|
activeRecipientPubKeys,
|
|
14
14
|
grantsPath,
|
|
15
15
|
isGrantsMacPrimed,
|
|
16
16
|
primeGrantsMacKey,
|
|
17
17
|
warnActiveMonitoringOnce
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-V5DXD4TU.js";
|
|
19
19
|
import {
|
|
20
20
|
assertGateAndGrantsColocated
|
|
21
21
|
} from "./chunk-NPXIS2RY.js";
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
import {
|
|
26
26
|
GHOST_BEHAVIOR_SQL,
|
|
27
27
|
isGhostBehaviorRow
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-SWQRQB4M.js";
|
|
29
29
|
import {
|
|
30
30
|
isTransientDaemonTransportError,
|
|
31
31
|
retryOnDaemonTransportError
|
|
@@ -36,17 +36,17 @@ import {
|
|
|
36
36
|
encryptSyncBlob,
|
|
37
37
|
initSyncCrypto,
|
|
38
38
|
isSyncCryptoInitialized
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-O5ORPJJX.js";
|
|
40
40
|
import {
|
|
41
41
|
getClient,
|
|
42
42
|
isGenuineCorruptionError,
|
|
43
43
|
loadEmployees,
|
|
44
44
|
registerBinSymlinks,
|
|
45
45
|
saveEmployees
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-4OZXJX3M.js";
|
|
47
47
|
import {
|
|
48
48
|
loadDeviceId
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-DOUHD6KC.js";
|
|
50
50
|
import {
|
|
51
51
|
EXE_AI_DIR
|
|
52
52
|
} from "./chunk-MMS2HBRT.js";
|
|
@@ -72,7 +72,7 @@ var _lastSealOrgMode = null;
|
|
|
72
72
|
async function getSyncCipher() {
|
|
73
73
|
if (_resolved) return _resolved;
|
|
74
74
|
if (!orgModeActive()) {
|
|
75
|
-
const mod = await import("./founder-monitor-envelope-
|
|
75
|
+
const mod = await import("./founder-monitor-envelope-WLOWBTTD.js");
|
|
76
76
|
_monitoredWriter = mod.encryptMonitoredSyncBlob;
|
|
77
77
|
_founderModuleLinked = true;
|
|
78
78
|
}
|
|
@@ -1283,7 +1283,7 @@ async function cloudSync(config, options) {
|
|
|
1283
1283
|
})
|
|
1284
1284
|
};
|
|
1285
1285
|
if (shouldUseCrdtMergeForCloudSync()) {
|
|
1286
|
-
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-
|
|
1286
|
+
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-H74HCZSY.js");
|
|
1287
1287
|
initCrdtDoc();
|
|
1288
1288
|
importExistingMemories(
|
|
1289
1289
|
pullResult.records.map((rec) => ({
|
|
@@ -1844,7 +1844,7 @@ async function cloudSync(config, options) {
|
|
|
1844
1844
|
const artifactResult = { pushed: 0, frozen: false, remaining: 0 };
|
|
1845
1845
|
if (!shouldSkip("artifacts")) {
|
|
1846
1846
|
try {
|
|
1847
|
-
const { flushArtifactBackups } = await import("./artifact-backup-
|
|
1847
|
+
const { flushArtifactBackups } = await import("./artifact-backup-AICTE3YO.js");
|
|
1848
1848
|
const flushed = await flushArtifactBackups(cloudArtifactTransport(config));
|
|
1849
1849
|
artifactResult.pushed = flushed.pushed;
|
|
1850
1850
|
artifactResult.frozen = flushed.frozen;
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
} from "./chunk-RT57D7C4.js";
|
|
20
20
|
import {
|
|
21
21
|
loadLicense
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-DOUHD6KC.js";
|
|
23
23
|
|
|
24
24
|
// src/lib/stack-update.ts
|
|
25
25
|
import { execFileSync, spawnSync as spawnSync2 } from "child_process";
|
|
@@ -32,6 +32,73 @@ import path from "path";
|
|
|
32
32
|
import { fileURLToPath } from "url";
|
|
33
33
|
import { parseDocument as parseYamlDocument } from "yaml";
|
|
34
34
|
|
|
35
|
+
// src/lib/erp-asset-smoke.ts
|
|
36
|
+
var REQUIRED_DESK_BUNDLES = {
|
|
37
|
+
"desk.bundle.js": "javascript",
|
|
38
|
+
"desk.bundle.css": "css"
|
|
39
|
+
};
|
|
40
|
+
var ASSET_PATH_PATTERN = /^\/assets\/[A-Za-z0-9_-]+\/dist\/(?:css|js)\/[^"' >]+$/;
|
|
41
|
+
var CONTENT_TYPE_PATTERN = {
|
|
42
|
+
javascript: /javascript/i,
|
|
43
|
+
css: /(?:^|\/)css/i
|
|
44
|
+
};
|
|
45
|
+
async function verifyErpAssets(port, siteName, fetchPage = fetch) {
|
|
46
|
+
if (!Number.isInteger(port) || port < 1 || port > 65535) {
|
|
47
|
+
throw new Error("ERP asset smoke refused an invalid loopback port");
|
|
48
|
+
}
|
|
49
|
+
if (!/^[A-Za-z0-9][A-Za-z0-9.-]{0,252}$/.test(siteName)) {
|
|
50
|
+
throw new Error("ERP asset smoke refused an invalid site name");
|
|
51
|
+
}
|
|
52
|
+
const origin = `http://127.0.0.1:${port}`;
|
|
53
|
+
const signal = AbortSignal.timeout(6e4);
|
|
54
|
+
const get = async (path2) => {
|
|
55
|
+
let url = new URL(path2, origin);
|
|
56
|
+
for (let redirects = 0; redirects < 5; redirects++) {
|
|
57
|
+
if (url.origin !== origin) throw new Error("ERP asset smoke refused an external redirect");
|
|
58
|
+
const response = await fetchPage(url, { redirect: "manual", signal, headers: { Host: siteName } });
|
|
59
|
+
if (![301, 302, 303, 307, 308].includes(response.status)) return response;
|
|
60
|
+
const location = response.headers.get("location");
|
|
61
|
+
await response.body?.cancel();
|
|
62
|
+
if (!location) throw new Error("ERP asset smoke encountered a redirect without a location");
|
|
63
|
+
url = new URL(location, url);
|
|
64
|
+
}
|
|
65
|
+
throw new Error("ERP asset smoke exceeded its redirect limit");
|
|
66
|
+
};
|
|
67
|
+
const manifestResponse = await get("/assets/assets.json");
|
|
68
|
+
if (manifestResponse.status !== 200) {
|
|
69
|
+
await manifestResponse.body?.cancel();
|
|
70
|
+
throw new Error(`ERP asset smoke: assets.json manifest returned HTTP ${manifestResponse.status}`);
|
|
71
|
+
}
|
|
72
|
+
let manifest;
|
|
73
|
+
try {
|
|
74
|
+
manifest = JSON.parse(await manifestResponse.text());
|
|
75
|
+
} catch {
|
|
76
|
+
throw new Error("ERP asset smoke: assets.json manifest was not valid JSON");
|
|
77
|
+
}
|
|
78
|
+
if (typeof manifest !== "object" || manifest === null || Array.isArray(manifest)) {
|
|
79
|
+
throw new Error("ERP asset smoke: assets.json manifest was not a JSON object");
|
|
80
|
+
}
|
|
81
|
+
const assetPaths = /* @__PURE__ */ new Map();
|
|
82
|
+
for (const [key, kind] of Object.entries(REQUIRED_DESK_BUNDLES)) {
|
|
83
|
+
const value = manifest[key];
|
|
84
|
+
if (typeof value !== "string" || !ASSET_PATH_PATTERN.test(value)) {
|
|
85
|
+
throw new Error(`ERP asset smoke: assets.json manifest is missing the desk ${kind} bundle ("${key}")`);
|
|
86
|
+
}
|
|
87
|
+
assetPaths.set(value, kind);
|
|
88
|
+
}
|
|
89
|
+
for (const [asset, kind] of assetPaths) {
|
|
90
|
+
const response = await get(asset);
|
|
91
|
+
await response.body?.cancel();
|
|
92
|
+
if (response.status !== 200) {
|
|
93
|
+
throw new Error(`ERP asset smoke: ${asset} returned HTTP ${response.status}`);
|
|
94
|
+
}
|
|
95
|
+
const contentType = response.headers.get("content-type") ?? "";
|
|
96
|
+
if (!CONTENT_TYPE_PATTERN[kind].test(contentType)) {
|
|
97
|
+
throw new Error(`ERP asset smoke: ${asset} did not return a ${kind} content type (got "${contentType}")`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
35
102
|
// src/lib/service-env-contract.ts
|
|
36
103
|
import { parse as parseYaml } from "yaml";
|
|
37
104
|
var SERVICE_ENV_CONTRACT = [
|
|
@@ -1211,8 +1278,9 @@ async function rollbackStackUpdate(options) {
|
|
|
1211
1278
|
throw new Error("--retain-compose rollback refused an unscoped restart; restore the selected service from backup manually");
|
|
1212
1279
|
}
|
|
1213
1280
|
if (scopedServiceNames.length > 0 && lockData?.services) {
|
|
1214
|
-
const scopedComposeServices =
|
|
1215
|
-
scopedServiceNames.map((serviceName) => lockData.services[serviceName]?.composeService ?? serviceName)
|
|
1281
|
+
const scopedComposeServices = scopedComposeImageServices(
|
|
1282
|
+
scopedServiceNames.map((serviceName) => lockData.services[serviceName]?.composeService ?? serviceName),
|
|
1283
|
+
options.retainCompose
|
|
1216
1284
|
);
|
|
1217
1285
|
for (const composeServiceName of scopedComposeServices) {
|
|
1218
1286
|
exec("docker", [...composeArgs, "up", "-d", ...options.retainCompose ? [] : ["--remove-orphans"], "--no-deps", composeServiceName]);
|
|
@@ -1246,7 +1314,10 @@ async function rollbackStackUpdate(options) {
|
|
|
1246
1314
|
);
|
|
1247
1315
|
}
|
|
1248
1316
|
}
|
|
1249
|
-
const rolledBackComposeServices = scopedServiceNames.length > 0 && lockData?.services ? [...new Set(
|
|
1317
|
+
const rolledBackComposeServices = scopedServiceNames.length > 0 && lockData?.services ? [...new Set(scopedComposeImageServices(scopedServiceNames.map((name) => lockData.services[name]?.composeService ?? name), options.retainCompose))] : [...new Set(Object.entries(lockData?.services ?? {}).map(([name, svc]) => svc.composeService ?? name))];
|
|
1318
|
+
if (options.retainCompose && rolledBackComposeServices.includes("exe-erp")) {
|
|
1319
|
+
rolledBackComposeServices.push(ERP_RETAINED_OBSERVER);
|
|
1320
|
+
}
|
|
1250
1321
|
try {
|
|
1251
1322
|
await verifyComposeServicesRunning(
|
|
1252
1323
|
composeArgs,
|
|
@@ -1370,6 +1441,14 @@ function expandComposeServicesWithSidecars(primaryComposeServices) {
|
|
|
1370
1441
|
}
|
|
1371
1442
|
return expanded;
|
|
1372
1443
|
}
|
|
1444
|
+
var ERP_RETAINED_IMAGE_SERVICES = ["exe-erp", "exe-erp-websocket", "exe-erp-queue", "exe-erp-scheduler"];
|
|
1445
|
+
var ERP_RETAINED_OBSERVER = "exe-erp-nginx";
|
|
1446
|
+
function retainedComposeImageServices(primaryComposeServices) {
|
|
1447
|
+
return primaryComposeServices.length === 1 && primaryComposeServices[0] === "exe-erp" ? [...ERP_RETAINED_IMAGE_SERVICES] : expandComposeServicesWithSidecars(primaryComposeServices);
|
|
1448
|
+
}
|
|
1449
|
+
function scopedComposeImageServices(primaryComposeServices, retainCompose) {
|
|
1450
|
+
return retainCompose ? retainedComposeImageServices(primaryComposeServices) : expandComposeServicesWithSidecars(primaryComposeServices);
|
|
1451
|
+
}
|
|
1373
1452
|
function resolveOwningManifestService(composeService, services) {
|
|
1374
1453
|
const direct = Object.entries(services).find(
|
|
1375
1454
|
([name, svc]) => name === composeService || (svc.composeService ?? name) === composeService
|
|
@@ -1618,6 +1697,26 @@ function parseEnv(raw) {
|
|
|
1618
1697
|
}
|
|
1619
1698
|
return env;
|
|
1620
1699
|
}
|
|
1700
|
+
function unquoteComposeEnvValue(raw) {
|
|
1701
|
+
const trimmed = raw.trim();
|
|
1702
|
+
if (trimmed.length >= 2) {
|
|
1703
|
+
const first = trimmed[0];
|
|
1704
|
+
const last = trimmed[trimmed.length - 1];
|
|
1705
|
+
if (first === '"' && last === '"') {
|
|
1706
|
+
return trimmed.slice(1, -1).replace(/\\(["\\])/g, "$1");
|
|
1707
|
+
}
|
|
1708
|
+
if (first === "'" && last === "'") {
|
|
1709
|
+
return trimmed.slice(1, -1);
|
|
1710
|
+
}
|
|
1711
|
+
}
|
|
1712
|
+
return trimmed;
|
|
1713
|
+
}
|
|
1714
|
+
function resolveComposeEnvValue(env, key, fallback) {
|
|
1715
|
+
const raw = env.get(key);
|
|
1716
|
+
if (raw === void 0) return fallback;
|
|
1717
|
+
const value = unquoteComposeEnvValue(raw);
|
|
1718
|
+
return value !== "" ? value : fallback;
|
|
1719
|
+
}
|
|
1621
1720
|
function patchEnv(raw, updates) {
|
|
1622
1721
|
const seen = /* @__PURE__ */ new Set();
|
|
1623
1722
|
const lines = raw.replace(/\n$/, "").split(/\r?\n/);
|
|
@@ -2511,8 +2610,11 @@ function assertRetainedComposePlan(input, plan, liveComposeRaw, envRaw, processE
|
|
|
2511
2610
|
if (service.migrations || plan.release.migrations) {
|
|
2512
2611
|
throw new Error("--retain-compose cannot run service or release migrations");
|
|
2513
2612
|
}
|
|
2514
|
-
const
|
|
2515
|
-
|
|
2613
|
+
const allComposeServices = expandComposeServicesWithSidecars([service.composeService ?? name]);
|
|
2614
|
+
const composeServices = retainedComposeImageServices([service.composeService ?? name]);
|
|
2615
|
+
const isCrmGroup = name === "crm" && composeServices.length === 2 && composeServices[0] === "exe-crm" && composeServices[1] === "exe-crm-worker";
|
|
2616
|
+
const isErpGroup = name === "erp" && allComposeServices.length === 5 && allComposeServices.every((target, index) => target === ["exe-erp", ERP_RETAINED_OBSERVER, ...ERP_RETAINED_IMAGE_SERVICES.slice(1)][index]) && composeServices.length === ERP_RETAINED_IMAGE_SERVICES.length;
|
|
2617
|
+
if (allComposeServices.length > 1 && !isCrmGroup && !isErpGroup) {
|
|
2516
2618
|
throw new Error("--retain-compose requires a service with no unsupported companion sidecars");
|
|
2517
2619
|
}
|
|
2518
2620
|
if (!service.env || plan.changes.length !== 1 || plan.changes[0].service !== name || plan.changes[0].key !== service.env) {
|
|
@@ -2546,6 +2648,9 @@ function assertRetainedComposePlan(input, plan, liveComposeRaw, envRaw, processE
|
|
|
2546
2648
|
throw new Error(`--retain-compose refused: rendered selected service ${composeService} image differs from signed image pin`);
|
|
2547
2649
|
}
|
|
2548
2650
|
}
|
|
2651
|
+
if (isErpGroup) {
|
|
2652
|
+
retainedErpNginxImageRef(liveComposeRaw, liveOverrideRaw);
|
|
2653
|
+
}
|
|
2549
2654
|
const env = parseEnv(envRaw);
|
|
2550
2655
|
const monitorKey = env.get("EXE_MONITOR_KEY") ?? "";
|
|
2551
2656
|
if (!monitorKey.trim() || /CHANGEME/.test(monitorKey)) {
|
|
@@ -3926,6 +4031,7 @@ async function runStackUpdateUnlocked(options) {
|
|
|
3926
4031
|
removeService: options.removeService,
|
|
3927
4032
|
rollback: options.rollback
|
|
3928
4033
|
}, plan, composeRaw, envRaw, process.env, retainedComposeFiles?.override ?? null);
|
|
4034
|
+
const erpNginxRef = options.retainCompose && Object.keys(plan.release.services).length === 1 && plan.release.services.erp ? retainedErpNginxImageRef(composeRaw, retainedComposeFiles?.override ?? null) : null;
|
|
3929
4035
|
const retainedOverrideHash = retainedComposeFiles ? retainedComposeFiles.override === null ? null : createHash("sha256").update(retainedComposeFiles.override).digest("hex") : void 0;
|
|
3930
4036
|
const stagedCompose = readStagedComposeTemplate(options, composeRaw);
|
|
3931
4037
|
const targetRelease = manifest.stacks[plan.targetVersion];
|
|
@@ -3984,7 +4090,7 @@ ${lines.join("\n")}`
|
|
|
3984
4090
|
if (options.retainCompose) {
|
|
3985
4091
|
const [name, service] = Object.entries(plan.release.services)[0];
|
|
3986
4092
|
const composeArgs2 = composeArgsForStack(options.composeFile, options.envFile);
|
|
3987
|
-
for (const target of
|
|
4093
|
+
for (const target of retainedComposeImageServices([service.composeService ?? name])) {
|
|
3988
4094
|
assertRetainedComposeRunningService(
|
|
3989
4095
|
composeArgs2,
|
|
3990
4096
|
target,
|
|
@@ -3998,6 +4104,25 @@ ${lines.join("\n")}`
|
|
|
3998
4104
|
options.composeConfigCapture ?? defaultComposeConfigCapture
|
|
3999
4105
|
);
|
|
4000
4106
|
}
|
|
4107
|
+
if (erpNginxRef) {
|
|
4108
|
+
assertRetainedComposeRunningService(
|
|
4109
|
+
composeArgs2,
|
|
4110
|
+
ERP_RETAINED_OBSERVER,
|
|
4111
|
+
options.composePsCapture ?? defaultComposePsCapture
|
|
4112
|
+
);
|
|
4113
|
+
assertRetainedComposeRenderedFixedImage(
|
|
4114
|
+
composeArgs2,
|
|
4115
|
+
ERP_RETAINED_OBSERVER,
|
|
4116
|
+
erpNginxRef,
|
|
4117
|
+
options.composeConfigCapture ?? defaultComposeConfigCapture
|
|
4118
|
+
);
|
|
4119
|
+
assertRetainedComposeImageWitness(
|
|
4120
|
+
composeArgs2,
|
|
4121
|
+
ERP_RETAINED_OBSERVER,
|
|
4122
|
+
erpNginxRef,
|
|
4123
|
+
options.retainedImageIds ?? captureRetainedComposeImageIds
|
|
4124
|
+
);
|
|
4125
|
+
}
|
|
4001
4126
|
}
|
|
4002
4127
|
const hostState = listHostComposeServices(
|
|
4003
4128
|
composeArgsForStack(options.composeFile, options.envFile),
|
|
@@ -4375,8 +4500,9 @@ Push the missing image(s) to the registry, or re-run with --break-glass <reason>
|
|
|
4375
4500
|
);
|
|
4376
4501
|
}
|
|
4377
4502
|
}
|
|
4378
|
-
const composePullTargets =
|
|
4379
|
-
Object.entries(plan.release.services).map(([name, svc]) => svc.composeService ?? name)
|
|
4503
|
+
const composePullTargets = scopedComposeImageServices(
|
|
4504
|
+
Object.entries(plan.release.services).map(([name, svc]) => svc.composeService ?? name),
|
|
4505
|
+
options.retainCompose
|
|
4380
4506
|
);
|
|
4381
4507
|
try {
|
|
4382
4508
|
if (composePullTargets.length > 0) {
|
|
@@ -4490,7 +4616,7 @@ Push the missing image(s) to the registry, or re-run with --break-glass <reason>
|
|
|
4490
4616
|
// tunnel — restarted last so services are healthy before it connects
|
|
4491
4617
|
];
|
|
4492
4618
|
const primaryComposeServices = Object.entries(plan.release.services).map(([serviceName, service]) => service.composeService ?? serviceName);
|
|
4493
|
-
const scopedComposeServices =
|
|
4619
|
+
const scopedComposeServices = scopedComposeImageServices(primaryComposeServices, options.retainCompose);
|
|
4494
4620
|
const restartOrder = [
|
|
4495
4621
|
...RESTART_ORDER.filter((service) => scopedComposeServices.includes(service)),
|
|
4496
4622
|
...scopedComposeServices.filter((service) => !RESTART_ORDER.includes(service))
|
|
@@ -4534,6 +4660,40 @@ Push the missing image(s) to the registry, or re-run with --break-glass <reason>
|
|
|
4534
4660
|
plan.changes[0].after,
|
|
4535
4661
|
options.composeConfigCapture ?? defaultComposeConfigCapture
|
|
4536
4662
|
);
|
|
4663
|
+
if (erpNginxRef) {
|
|
4664
|
+
const beforeWait = parseRetainedContainerHealth(
|
|
4665
|
+
(options.composePsCapture ?? defaultComposePsCapture)(composeArgs)
|
|
4666
|
+
).get(ERP_RETAINED_OBSERVER);
|
|
4667
|
+
if (!beforeWait?.id || beforeWait.id !== retainedHealthBaseline?.containers.get(ERP_RETAINED_OBSERVER)?.id) {
|
|
4668
|
+
throw new Error("--retain-compose refused: ERP nginx observer changed before restart");
|
|
4669
|
+
}
|
|
4670
|
+
await verifyComposeServicesRunning(
|
|
4671
|
+
composeArgs,
|
|
4672
|
+
[ERP_RETAINED_OBSERVER],
|
|
4673
|
+
90,
|
|
4674
|
+
options.composePsCapture,
|
|
4675
|
+
void 0,
|
|
4676
|
+
true
|
|
4677
|
+
);
|
|
4678
|
+
const currentNginx = parseRetainedContainerHealth(
|
|
4679
|
+
(options.composePsCapture ?? defaultComposePsCapture)(composeArgs)
|
|
4680
|
+
).get(ERP_RETAINED_OBSERVER);
|
|
4681
|
+
if (currentNginx?.id !== beforeWait.id || !retainedContainerIsHealthy(currentNginx)) {
|
|
4682
|
+
throw new Error("--retain-compose refused: ERP nginx observer changed before restart");
|
|
4683
|
+
}
|
|
4684
|
+
assertRetainedComposeRenderedFixedImage(
|
|
4685
|
+
composeArgs,
|
|
4686
|
+
ERP_RETAINED_OBSERVER,
|
|
4687
|
+
erpNginxRef,
|
|
4688
|
+
options.composeConfigCapture ?? defaultComposeConfigCapture
|
|
4689
|
+
);
|
|
4690
|
+
assertRetainedComposeImageWitness(
|
|
4691
|
+
composeArgs,
|
|
4692
|
+
ERP_RETAINED_OBSERVER,
|
|
4693
|
+
erpNginxRef,
|
|
4694
|
+
options.retainedImageIds ?? captureRetainedComposeImageIds
|
|
4695
|
+
);
|
|
4696
|
+
}
|
|
4537
4697
|
}
|
|
4538
4698
|
progress.logServiceStep(restartIndex, service, "Restarting");
|
|
4539
4699
|
if (service === "exe-wiki") {
|
|
@@ -4642,6 +4802,16 @@ Push the missing image(s) to the registry, or re-run with --break-glass <reason>
|
|
|
4642
4802
|
}
|
|
4643
4803
|
}
|
|
4644
4804
|
if (retainedHealthBaseline) {
|
|
4805
|
+
if (erpNginxRef) {
|
|
4806
|
+
await verifyComposeServicesRunning(
|
|
4807
|
+
composeArgs,
|
|
4808
|
+
[ERP_RETAINED_OBSERVER],
|
|
4809
|
+
90,
|
|
4810
|
+
options.composePsCapture,
|
|
4811
|
+
void 0,
|
|
4812
|
+
true
|
|
4813
|
+
);
|
|
4814
|
+
}
|
|
4645
4815
|
const capture = (timeoutMs) => parseRetainedContainerHealth(
|
|
4646
4816
|
(options.composePsCapture ?? defaultComposePsCapture)(composeArgs, timeoutMs)
|
|
4647
4817
|
);
|
|
@@ -4651,6 +4821,29 @@ Push the missing image(s) to the registry, or re-run with --break-glass <reason>
|
|
|
4651
4821
|
if (regressions.length > 0) {
|
|
4652
4822
|
throw new Error(`--retain-compose health regression after update: ${regressions.join(", ")}`);
|
|
4653
4823
|
}
|
|
4824
|
+
if (erpNginxRef) {
|
|
4825
|
+
const beforeNginx = retainedHealthBaseline.containers.get(ERP_RETAINED_OBSERVER);
|
|
4826
|
+
const afterNginx = after.get(ERP_RETAINED_OBSERVER);
|
|
4827
|
+
if (!beforeNginx?.id || afterNginx?.id !== beforeNginx.id) {
|
|
4828
|
+
throw new Error("--retain-compose ERP nginx observer changed container identity");
|
|
4829
|
+
}
|
|
4830
|
+
assertRetainedComposeRenderedFixedImage(
|
|
4831
|
+
composeArgs,
|
|
4832
|
+
ERP_RETAINED_OBSERVER,
|
|
4833
|
+
erpNginxRef,
|
|
4834
|
+
options.composeConfigCapture ?? defaultComposeConfigCapture
|
|
4835
|
+
);
|
|
4836
|
+
assertRetainedComposeImageWitness(
|
|
4837
|
+
composeArgs,
|
|
4838
|
+
ERP_RETAINED_OBSERVER,
|
|
4839
|
+
erpNginxRef,
|
|
4840
|
+
options.retainedImageIds ?? captureRetainedComposeImageIds
|
|
4841
|
+
);
|
|
4842
|
+
const smokeEnv = parseEnv(readFileSync(options.envFile, "utf8"));
|
|
4843
|
+
const portRaw = resolveComposeEnvValue(smokeEnv, "ERP_API_PORT", "8069");
|
|
4844
|
+
const siteName = resolveComposeEnvValue(smokeEnv, "ERP_SITE_NAME", "erp.askexe.com");
|
|
4845
|
+
await (options.verifyErpAssets ?? verifyErpAssets)(Number(portRaw), siteName);
|
|
4846
|
+
}
|
|
4654
4847
|
}
|
|
4655
4848
|
{
|
|
4656
4849
|
const cfIngressConfigPath = path.join(path.dirname(options.composeFile), "cloudflared", "config.yml");
|
|
@@ -4791,7 +4984,7 @@ Push the missing image(s) to the registry, or re-run with --break-glass <reason>
|
|
|
4791
4984
|
// pre-existing companion on an older digest as this service's failed
|
|
4792
4985
|
// delivery. Retained health and image witnesses still cover the selected
|
|
4793
4986
|
// service and its required dependencies before and after the update.
|
|
4794
|
-
artifactComposeServices: options.retainCompose ? Object.entries(plan.release.services).flatMap(([name, service]) =>
|
|
4987
|
+
artifactComposeServices: options.retainCompose ? Object.entries(plan.release.services).flatMap(([name, service]) => scopedComposeImageServices([service.composeService ?? name], options.retainCompose)) : void 0
|
|
4795
4988
|
});
|
|
4796
4989
|
const securityFailures = [];
|
|
4797
4990
|
for (const r of verifyReport.results) {
|
|
@@ -4905,7 +5098,7 @@ Fix these before the stack is safe to operate.`);
|
|
|
4905
5098
|
const composeService = service.composeService ?? name;
|
|
4906
5099
|
try {
|
|
4907
5100
|
syncImagePinsWithProcessEnv(envRaw, [service.env]);
|
|
4908
|
-
const restored =
|
|
5101
|
+
const restored = scopedComposeImageServices([composeService], options.retainCompose);
|
|
4909
5102
|
for (const target of restored) {
|
|
4910
5103
|
exec("docker", [...composeArgs, "up", "-d", "--no-deps", target]);
|
|
4911
5104
|
}
|
|
@@ -5195,6 +5388,26 @@ function assertRetainedComposeRenderedImage(composeArgs, service, imageEnvKey, e
|
|
|
5195
5388
|
throw new Error(`--retain-compose refused: effective Compose image for ${service} differs from signed image pin or could not be observed`);
|
|
5196
5389
|
}
|
|
5197
5390
|
}
|
|
5391
|
+
function retainedErpNginxImageRef(baseRaw, overrideRaw) {
|
|
5392
|
+
const base = parseComposeServiceImages(baseRaw);
|
|
5393
|
+
const override = overrideRaw === null ? /* @__PURE__ */ new Map() : parseComposeServiceImages(overrideRaw);
|
|
5394
|
+
const expression = override.get(ERP_RETAINED_OBSERVER) ?? base.get(ERP_RETAINED_OBSERVER);
|
|
5395
|
+
if (!expression || envRefsInImageExpression(expression).length || !/@sha256:[a-f0-9]{64}$/i.test(expression)) {
|
|
5396
|
+
throw new Error("--retain-compose refused: ERP nginx observer must use a fixed digest-pinned image");
|
|
5397
|
+
}
|
|
5398
|
+
return expression;
|
|
5399
|
+
}
|
|
5400
|
+
function assertRetainedComposeRenderedFixedImage(composeArgs, service, expectedRef, capture = defaultComposeConfigCapture) {
|
|
5401
|
+
let rendered;
|
|
5402
|
+
try {
|
|
5403
|
+
const raw = capture(composeArgs, process.env);
|
|
5404
|
+
rendered = raw ? JSON.parse(raw).services?.[service]?.image : void 0;
|
|
5405
|
+
} catch {
|
|
5406
|
+
}
|
|
5407
|
+
if (rendered !== expectedRef) {
|
|
5408
|
+
throw new Error(`--retain-compose refused: effective Compose image for ${service} differs from signed fixed image`);
|
|
5409
|
+
}
|
|
5410
|
+
}
|
|
5198
5411
|
function captureRetainedComposeImageIds(composeArgs, service, expectedRef) {
|
|
5199
5412
|
const capture = (args) => {
|
|
5200
5413
|
const result = spawnSync2("docker", args, { encoding: "utf8", timeout: 2e4 });
|
|
@@ -5758,6 +5971,7 @@ export {
|
|
|
5758
5971
|
runReleaseMigrations,
|
|
5759
5972
|
isExecFormMigration,
|
|
5760
5973
|
expandComposeServicesWithSidecars,
|
|
5974
|
+
retainedComposeImageServices,
|
|
5761
5975
|
resolveOwningManifestService,
|
|
5762
5976
|
reconcileStackLockFromContainers,
|
|
5763
5977
|
readRetainedComposeFiles,
|
|
@@ -5768,6 +5982,8 @@ export {
|
|
|
5768
5982
|
loadStackManifestWithFallback,
|
|
5769
5983
|
reportStackManifestSource,
|
|
5770
5984
|
parseEnv,
|
|
5985
|
+
unquoteComposeEnvValue,
|
|
5986
|
+
resolveComposeEnvValue,
|
|
5771
5987
|
patchEnv,
|
|
5772
5988
|
removeEnvKeys,
|
|
5773
5989
|
expandComposeExpression,
|
|
@@ -5839,6 +6055,8 @@ export {
|
|
|
5839
6055
|
composePsYieldsRecords,
|
|
5840
6056
|
assertRetainedComposeRunningService,
|
|
5841
6057
|
assertRetainedComposeRenderedImage,
|
|
6058
|
+
retainedErpNginxImageRef,
|
|
6059
|
+
assertRetainedComposeRenderedFixedImage,
|
|
5842
6060
|
assertRetainedComposeImageWitness,
|
|
5843
6061
|
verifyComposeServicesRunning,
|
|
5844
6062
|
isComposeNetworkHost,
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
extractIdentifiers,
|
|
5
5
|
isGarbageEntity,
|
|
6
6
|
normalizeEntityName
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4MUU33NJ.js";
|
|
8
8
|
import {
|
|
9
9
|
getClient
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-4OZXJX3M.js";
|
|
11
11
|
|
|
12
12
|
// src/lib/memory-graph-extractor.ts
|
|
13
13
|
function relationshipId(sourceId, targetId, relType) {
|
|
@@ -432,7 +432,7 @@ async function upsertMemoryGraph(result, memoryId, opts) {
|
|
|
432
432
|
});
|
|
433
433
|
}
|
|
434
434
|
try {
|
|
435
|
-
const { createCoOccurrenceEdges } = await import("./co-occurrence-
|
|
435
|
+
const { createCoOccurrenceEdges } = await import("./co-occurrence-IZSNRYOZ.js");
|
|
436
436
|
await createCoOccurrenceEdges(result.entities, memoryId, { linkOnly });
|
|
437
437
|
} catch {
|
|
438
438
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isExeSession
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ROGZRDCU.js";
|
|
4
4
|
import {
|
|
5
5
|
recordOrchestrationEventBestEffort
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-GVZPT5GJ.js";
|
|
7
7
|
import {
|
|
8
8
|
getClient,
|
|
9
9
|
isCoordinatorName
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-4OZXJX3M.js";
|
|
11
11
|
import {
|
|
12
12
|
isDaemonAlive
|
|
13
13
|
} from "./chunk-QH5ZQ5SJ.js";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
registerDaemonScopedQueryChokepoint
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-GI44KWJA.js";
|
|
4
4
|
import {
|
|
5
5
|
orgPartnerModeActive,
|
|
6
6
|
requireOrgPartnerBinding,
|
|
7
7
|
resolveOrgPartnerBindings,
|
|
8
8
|
resolvePartnerIdentities,
|
|
9
9
|
rosterKeyLookupFor
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-EMKSTLBG.js";
|
|
11
11
|
import {
|
|
12
12
|
createMailboxInboxPoller,
|
|
13
13
|
getMailboxInboxState
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
isConsentMacPrimed,
|
|
21
21
|
primeTaskOriginMarkerKey,
|
|
22
22
|
scopedQueryChokepointStatus
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-J77FASSK.js";
|
|
24
24
|
import {
|
|
25
25
|
flushMailboxOutbox
|
|
26
26
|
} from "./chunk-3FGBBJYM.js";
|
|
@@ -22,7 +22,7 @@ var OrgOriginProvenanceError = class extends Error {
|
|
|
22
22
|
async function mintOrgOriginStamp(input) {
|
|
23
23
|
if (!input.orgId) throw new OrgOriginProvenanceError("An org-origin stamp requires a non-empty org_id (\xA71.5)");
|
|
24
24
|
if (!input.requestId) throw new OrgOriginProvenanceError("An org-origin stamp requires a request id");
|
|
25
|
-
const { getTaskRequest } = await import("./task-request-inbox-
|
|
25
|
+
const { getTaskRequest } = await import("./task-request-inbox-JFPPW6JF.js");
|
|
26
26
|
const req = getTaskRequest(input.orgId, input.requestId);
|
|
27
27
|
if (!req) {
|
|
28
28
|
throw new OrgOriginProvenanceError(
|
|
@@ -132,7 +132,7 @@ async function verifyOrBlock(hookPath) {
|
|
|
132
132
|
process.stderr.write(`[SECURITY] Hook tamper detected: ${filename} \u2014 ${result.reason}
|
|
133
133
|
`);
|
|
134
134
|
try {
|
|
135
|
-
const { pushNotifyAsync } = await import("./push-notifications-
|
|
135
|
+
const { pushNotifyAsync } = await import("./push-notifications-KAV2I7BT.js");
|
|
136
136
|
pushNotifyAsync({
|
|
137
137
|
event: "security_alert",
|
|
138
138
|
title: "Hook tamper detected",
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from "./chunk-RGPEUXOE.js";
|
|
6
6
|
import {
|
|
7
7
|
sessionScopeFilter
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ROGZRDCU.js";
|
|
9
9
|
import {
|
|
10
10
|
isWithin
|
|
11
11
|
} from "./chunk-YRUZK2QA.js";
|
|
@@ -297,7 +297,7 @@ async function sweepTasks(projectName, options = {}) {
|
|
|
297
297
|
}
|
|
298
298
|
if (!dryRun) {
|
|
299
299
|
try {
|
|
300
|
-
const { updateTaskStatus } = await import("./tasks-crud-
|
|
300
|
+
const { updateTaskStatus } = await import("./tasks-crud-XSCWP2ZQ.js");
|
|
301
301
|
await updateTaskStatus({
|
|
302
302
|
taskId: task.id,
|
|
303
303
|
status: "needs_review",
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from "./chunk-BTSWFMEH.js";
|
|
11
11
|
import {
|
|
12
12
|
getClient
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-4OZXJX3M.js";
|
|
14
14
|
|
|
15
15
|
// src/lib/work-claims.ts
|
|
16
16
|
var CLAIM_TTL_MINUTES = 90;
|
|
@@ -306,7 +306,7 @@ async function heartbeatClaims(holderSession, ttlMinutes = CLAIM_TTL_MINUTES) {
|
|
|
306
306
|
}
|
|
307
307
|
async function recordClaimEvent(eventType, sessionScope, agentId, payload, severity) {
|
|
308
308
|
try {
|
|
309
|
-
const { recordOrchestrationEventBestEffort } = await import("./orchestration-events-
|
|
309
|
+
const { recordOrchestrationEventBestEffort } = await import("./orchestration-events-7JWQRUVB.js");
|
|
310
310
|
recordOrchestrationEventBestEffort({
|
|
311
311
|
eventType,
|
|
312
312
|
source: "work-claims",
|