@askexenow/exe-os 0.9.374 → 0.9.376
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 +16 -1
- package/deploy/compose/.env.example +16 -1
- package/deploy/compose/docker-compose.yml +80 -18
- package/deploy/compose/gateway-watchdog.sh +17 -0
- package/deploy/compose/generate-env.ts +41 -1
- package/deploy/compose/sso-edge/default.conf.template +59 -63
- package/deploy/compose/sso-edge/error-pages/404.html +129 -0
- package/deploy/compose/sso-edge/error-pages/500.html +129 -0
- package/deploy/compose/sso-edge/error-pages/503.html +118 -0
- package/deploy/compose/sso-edge/sso-redirect.conf +115 -92
- package/dist/.dist-verified.json +3 -3
- package/dist/{active-agent-ONPPEWQV.js → active-agent-BOBBUJ74.js} +6 -6
- package/dist/{active-agent-UJKMG7LJ.js → active-agent-GFGEGK2U.js} +6 -6
- package/dist/{agent-defs-generator-ZWI6DXOE.js → agent-defs-generator-OX6UFPRX.js} +5 -5
- package/dist/{agent-loop-OYHJKNYH.js → agent-loop-7ZRH56EX.js} +1 -1
- package/dist/{agentic-ontology-WHFJ3QFS.js → agentic-ontology-DT3VOXBT.js} +1 -1
- package/dist/{backfill-metadata-3OUSQD5V.js → backfill-metadata-VRP6PTPP.js} +9 -9
- package/dist/{backup-verify-ZKTUYLTA.js → backup-verify-LWHKGOOV.js} +1 -1
- package/dist/behavior-injection-GMZKZ3BT.js +83 -0
- package/dist/behavior-promotion-QPC4AQ24.js +62 -0
- package/dist/{behaviors-ZJ45TFBJ.js → behaviors-GPI4BLTC.js} +16 -14
- package/dist/bin/agentic-ontology-backfill.js +10 -10
- package/dist/bin/agentic-reflection-backfill.js +11 -11
- package/dist/bin/agentic-semantic-label.js +10 -10
- package/dist/bin/backfill-conversations.js +14 -12
- package/dist/bin/backfill-responses.js +14 -12
- package/dist/bin/backfill-vectors.js +16 -14
- package/dist/bin/bulk-sync-postgres.js +21 -19
- package/dist/bin/cc-doctor.js +19 -11
- package/dist/bin/cleanup-stale-review-tasks.js +27 -26
- package/dist/bin/cli.js +83 -109
- package/dist/bin/daemon-restart-handoff.js +2 -1
- package/dist/bin/deferred-daemon-restart.js +118 -110
- package/dist/bin/exe-actions.js +176 -0
- package/dist/bin/exe-agent-config.js +5 -5
- package/dist/bin/exe-agent.js +23 -23
- package/dist/bin/exe-assign.js +16 -14
- package/dist/bin/exe-boot.js +91 -71
- package/dist/bin/exe-call.js +8 -8
- package/dist/bin/exe-cicd.js +1210 -0
- package/dist/bin/exe-cloud.js +70 -37
- package/dist/bin/exe-config-dump.js +5 -5
- package/dist/bin/exe-dispatch.js +28 -27
- package/dist/bin/exe-doctor.js +12 -11
- package/dist/bin/exe-export-behaviors.js +20 -18
- package/dist/bin/exe-forget.js +11 -11
- package/dist/bin/exe-gateway.js +10 -10
- package/dist/bin/exe-healthcheck.js +22 -10
- package/dist/bin/exe-heartbeat.js +33 -32
- package/dist/bin/exe-kill.js +32 -31
- package/dist/bin/exe-launch-agent.js +76 -54
- package/dist/bin/exe-mcp.js +10 -6
- package/dist/bin/exe-memory-reads.js +9 -9
- package/dist/bin/exe-model-supervisor.js +138 -0
- package/dist/bin/exe-new-employee.js +14 -14
- package/dist/bin/exe-os-mcp-proxy.js +10 -6
- package/dist/bin/exe-pending-messages.js +28 -27
- package/dist/bin/exe-pending-notifications.js +27 -26
- package/dist/bin/exe-pending-reviews.js +28 -27
- package/dist/bin/exe-rename.js +9 -9
- package/dist/bin/exe-repo-truth.js +1 -1
- package/dist/bin/exe-review.js +31 -30
- package/dist/bin/exe-search.js +10 -10
- package/dist/bin/exe-session-cleanup.js +32 -31
- package/dist/bin/exe-settings.js +21 -19
- package/dist/bin/exe-start-codex.js +31 -25
- package/dist/bin/exe-start-opencode.js +24 -22
- package/dist/bin/exe-start.sh +11 -2
- package/dist/bin/exe-status.js +29 -28
- package/dist/bin/exe-support.js +3 -3
- package/dist/bin/exe-team.js +7 -7
- package/dist/bin/exe-timers.js +2 -1
- package/dist/bin/exe-watchdog.js +170 -16
- package/dist/bin/generate-hook-manifest.js +8 -41
- package/dist/bin/git-sweep.js +28 -27
- package/dist/bin/graph-backfill.js +11 -11
- package/dist/bin/graph-export.js +10 -10
- package/dist/bin/hooks-cli.js +289 -0
- package/dist/bin/import-history.js +14 -14
- package/dist/bin/install.js +130 -116
- package/dist/bin/intercom-check.js +5 -5
- package/dist/bin/mcp-sessions.js +2 -2
- package/dist/bin/orchestration-metrics.js +7 -7
- package/dist/bin/postgres-agentic-reflection-backfill.js +4 -4
- package/dist/bin/postgres-agentic-semantic-backfill.js +4 -4
- package/dist/bin/pre-publish.js +1 -1
- package/dist/bin/reconcile-backlog.js +2 -2
- package/dist/bin/registry-proxy.js +2 -2
- package/dist/bin/scan-tasks.js +52 -38
- package/dist/bin/setup.js +1 -1
- package/dist/bin/shard-migrate.js +9 -9
- package/dist/bin/stack-update.js +10 -5
- package/dist/bin/verify-stack.js +3 -1
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{boot-generation-JKVZ4ZAT.js → boot-generation-BN6GKASY.js} +6 -6
- package/dist/{boot-review-sections-2M6BTG73.js → boot-review-sections-OQ5JGSOD.js} +26 -25
- package/dist/{branch-hygiene-U5GFRSTP.js → branch-hygiene-QLD77IMJ.js} +1 -1
- package/dist/build-manifest.json +1186 -1106
- package/dist/{capability-cards-5IMJT6J7.js → capability-cards-EDZ62HKG.js} +5 -5
- package/dist/{capacity-monitor-SAXCQK7O.js → capacity-monitor-6GMTVILS.js} +28 -27
- package/dist/{catchup-brief-U2TXBLHD.js → catchup-brief-SGGBMDUP.js} +32 -31
- package/dist/{cc-binary-detect-6TNIY5JX.js → cc-binary-detect-ZR6WNOUU.js} +1 -3
- package/dist/{chunk-NKETJCB5.js → chunk-2ODXCCMR.js} +18 -3
- package/dist/{hook-integrity-KGAV6ZC2.js → chunk-3L72UBUH.js} +28 -15
- package/dist/chunk-3OX5S7KZ.js +273 -0
- package/dist/{chunk-W75GTHR3.js → chunk-3SRZNJKD.js} +1 -1
- package/dist/{chunk-I4DNJFDR.js → chunk-42IFYZUN.js} +4 -4
- package/dist/{chunk-JHI5WMK5.js → chunk-473JUDCT.js} +5 -5
- package/dist/{chunk-ANLFH23R.js → chunk-4F5CNI65.js} +1 -1
- package/dist/{chunk-AWWKRZMB.js → chunk-4KVSCQND.js} +87 -14
- package/dist/{chunk-ZCERWHY2.js → chunk-4M6RXJEY.js} +33 -23
- package/dist/{chunk-YTSXPJUQ.js → chunk-4YJEEOYT.js} +3 -3
- package/dist/{chunk-6RKKVPYF.js → chunk-4YUGB637.js} +1 -1
- package/dist/{chunk-XXOPG4BW.js → chunk-4ZSOKEDY.js} +3 -3
- package/dist/{chunk-55BEFF4V.js → chunk-5DF4Y6EC.js} +1 -1
- package/dist/{chunk-4QCFFW2H.js → chunk-5QCIWWFA.js} +46 -0
- package/dist/{chunk-3UUX5OY4.js → chunk-5QKLWJ4Z.js} +1 -1
- package/dist/{chunk-YSLGFPWX.js → chunk-5UBWBXLF.js} +3 -3
- package/dist/chunk-5WA4DG2A.js +117 -0
- package/dist/{chunk-4EN3IZ3Q.js → chunk-64ODONK2.js} +67 -1
- package/dist/{chunk-TAMDAOCU.js → chunk-66CGXQUA.js} +239 -39
- package/dist/{chunk-QHJR7IMX.js → chunk-6F3FQCAQ.js} +3 -3
- package/dist/{chunk-WMEYJT4R.js → chunk-6FG34V6D.js} +15 -14
- package/dist/{chunk-NMH5ZQPU.js → chunk-6KQ6WMTI.js} +1 -1
- package/dist/{chunk-IRVOXUSK.js → chunk-6WKBTZVL.js} +10 -4
- package/dist/{chunk-NOKJCF27.js → chunk-7INEFMVU.js} +9 -3
- package/dist/{chunk-GSJLB6JI.js → chunk-7THUQU44.js} +34 -8
- package/dist/{chunk-HDLAB7W3.js → chunk-7UH2JWBF.js} +1 -1
- package/dist/{chunk-KTCXJWJG.js → chunk-7UNMSF5O.js} +1 -1
- package/dist/{chunk-JTVIANUB.js → chunk-AEUGIJDO.js} +3 -1
- package/dist/{chunk-DSJI76XL.js → chunk-AHNVFBVB.js} +113 -16
- package/dist/{chunk-IBS2FAI4.js → chunk-AUKRBHHZ.js} +4 -1
- package/dist/{chunk-AKLJ4JH3.js → chunk-BBK2TSK3.js} +1 -1
- package/dist/{chunk-ZL4AGWAH.js → chunk-BNWWVYRN.js} +6 -5
- package/dist/{chunk-PY3FOMRN.js → chunk-BQEZPRUC.js} +4 -4
- package/dist/{chunk-DIXXEE3S.js → chunk-BQXYXJYC.js} +721 -309
- package/dist/{chunk-ORM7ZFKC.js → chunk-BZ546I4Q.js} +32 -0
- package/dist/{chunk-3KDCORDO.js → chunk-C2UN464N.js} +1 -1
- package/dist/{chunk-75H4R62K.js → chunk-CBPNZFSU.js} +0 -2
- package/dist/{chunk-YLXTKI6M.js → chunk-CHO5SNWR.js} +1 -1
- package/dist/{chunk-MXPNVSXI.js → chunk-CIEVY5TD.js} +11 -11
- package/dist/{chunk-UBK7HK3J.js → chunk-CKLJT2DH.js} +2 -2
- package/dist/{chunk-MOGA4Q7F.js → chunk-CKOJP7JI.js} +1 -1
- package/dist/{chunk-V3W3SATA.js → chunk-CL4J4757.js} +1 -1
- package/dist/{chunk-XNNECNDL.js → chunk-CQFWTWC6.js} +13 -13
- package/dist/{chunk-PDVXWXTL.js → chunk-CROVXJ4S.js} +3 -3
- package/dist/{chunk-WJG344NC.js → chunk-CWSLTSL6.js} +8 -8
- package/dist/{chunk-VMTZ4RUW.js → chunk-DDMGQ5Q3.js} +60 -26
- package/dist/{chunk-YKC7QDZH.js → chunk-DN24VTS5.js} +31 -6
- package/dist/{chunk-IN6CAM4F.js → chunk-EHAN752X.js} +7 -7
- package/dist/{chunk-EXTZSNWL.js → chunk-EPHSISMT.js} +2 -2
- package/dist/{chunk-6EZQUNE6.js → chunk-FCMQVEVL.js} +36 -3
- package/dist/{chunk-3L2QU5ZF.js → chunk-FS7XF7SE.js} +1 -1
- package/dist/{chunk-LGS2V2XD.js → chunk-FUKVP54K.js} +66 -19
- package/dist/{chunk-44TLJZJ5.js → chunk-FX2QRSRT.js} +1 -1
- package/dist/{chunk-PWRC5XZO.js → chunk-FXZ6VGFW.js} +16 -8
- package/dist/{chunk-NT7W4RXD.js → chunk-GKDAQL45.js} +1 -1
- package/dist/{chunk-EKE37MO4.js → chunk-GOT5ZHPX.js} +3 -3
- package/dist/{chunk-SLLLOOEI.js → chunk-GPJIBLP4.js} +1 -0
- package/dist/{chunk-EKYYMIVT.js → chunk-GPUOUUHA.js} +10 -1
- package/dist/{chunk-PB5S7YOF.js → chunk-GXNBPTPJ.js} +1 -1
- package/dist/{chunk-4SJ4LK4V.js → chunk-HE34XVD5.js} +5 -5
- package/dist/{chunk-6VHOQ3IM.js → chunk-HHAKXIKX.js} +12 -9
- package/dist/{chunk-TFKCERAK.js → chunk-HHT527PV.js} +38 -41
- package/dist/{chunk-ZSODLMFV.js → chunk-HIVOLPLD.js} +1 -40
- package/dist/{chunk-UCFC2AEI.js → chunk-I3LDTSWU.js} +1 -1
- package/dist/{chunk-Q3AXXKDF.js → chunk-IKXH4BFC.js} +5 -5
- package/dist/chunk-IMYGYIAI.js +23 -0
- package/dist/{chunk-GS7LIT34.js → chunk-IPHLUZ37.js} +1 -1
- package/dist/{chunk-M4IRPXSZ.js → chunk-IZA7XW2Q.js} +3 -3
- package/dist/{chunk-SEQIPGLU.js → chunk-IZLML47J.js} +1 -1
- package/dist/{chunk-4HKTO2SV.js → chunk-JRMHGO5B.js} +1 -1
- package/dist/{chunk-U73AC5AN.js → chunk-JSTTPYL3.js} +16 -16
- package/dist/{chunk-6SCGLHJ7.js → chunk-JVWLHBAV.js} +4 -4
- package/dist/{chunk-OVEQE6YS.js → chunk-K7UNIEB4.js} +254 -48
- package/dist/{chunk-HNWS7YHN.js → chunk-KBR5LIWD.js} +1 -1
- package/dist/{chunk-AKLQSC6W.js → chunk-KI7O64XV.js} +328 -98
- package/dist/{chunk-XXFKSJYA.js → chunk-KK3MIY5C.js} +5 -5
- package/dist/{chunk-U6SUKSZR.js → chunk-KO3OHI6V.js} +3 -3
- package/dist/{chunk-NJFJWQNN.js → chunk-L5CGXEZC.js} +27 -22
- package/dist/{chunk-NBXDXKLC.js → chunk-LK3XQDBP.js} +1 -1
- package/dist/{chunk-T3QUKNLI.js → chunk-LM443ORV.js} +1 -1
- package/dist/{chunk-BBSIEYF5.js → chunk-LNAFLXL7.js} +12 -4
- package/dist/{chunk-32YV32VA.js → chunk-LTUA5EYI.js} +122 -11
- package/dist/{chunk-23MVDXLY.js → chunk-MAXD5JQL.js} +11 -10
- package/dist/{chunk-GNUAL43X.js → chunk-MFASHRJ6.js} +5 -5
- package/dist/chunk-MFYMDGE7.js +37 -0
- package/dist/{chunk-VKJGHAZT.js → chunk-MGVILAYU.js} +57 -13
- package/dist/{chunk-DB55JZHU.js → chunk-MSLWRWTI.js} +1 -1
- package/dist/{chunk-C2L622QJ.js → chunk-NB5IRTC4.js} +52 -44
- package/dist/{chunk-2ZOEC4KC.js → chunk-ND75TGPR.js} +2 -2
- package/dist/{chunk-VRTCVZND.js → chunk-NE34MWVL.js} +142 -16
- package/dist/{chunk-S2WBS6BG.js → chunk-NMOFLWDY.js} +1 -1
- package/dist/{chunk-CRCB5S7I.js → chunk-NPXKGBVZ.js} +140 -23
- package/dist/{chunk-JSMDRKPJ.js → chunk-NRBGUIPE.js} +1 -1
- package/dist/{chunk-4LWBC7CM.js → chunk-NY6SBR4O.js} +1 -1
- package/dist/{chunk-UCUOGVDX.js → chunk-O3K2C22L.js} +13 -1
- package/dist/{chunk-R522MWAR.js → chunk-OATET4BV.js} +2 -2
- package/dist/chunk-OOZU5H3T.js +86 -0
- package/dist/{chunk-XFTEX77S.js → chunk-OQ4FNDRG.js} +28 -6
- package/dist/{chunk-VYQ7B7DI.js → chunk-OWVX52XF.js} +4 -4
- package/dist/{chunk-AETLDRZB.js → chunk-PEAAX6UA.js} +1 -1
- package/dist/{chunk-UM3N6VND.js → chunk-PFAVHC5N.js} +5 -5
- package/dist/chunk-PMVVUIHH.js +85 -0
- package/dist/chunk-PPMGQFLJ.js +2317 -0
- package/dist/{chunk-7TSBV3SD.js → chunk-PTY2N23C.js} +310 -2
- package/dist/{chunk-UKLN57Q5.js → chunk-PZ5SKYK6.js} +4 -4
- package/dist/{chunk-636LKCKE.js → chunk-Q6ZLQMP2.js} +1 -1
- package/dist/{chunk-N7VEP5B3.js → chunk-QFR5EKZG.js} +29 -7
- package/dist/{chunk-YMP2QSOP.js → chunk-QN56VQ6Z.js} +1 -1
- package/dist/{chunk-6YVUR3OU.js → chunk-QR3BUMOS.js} +2 -2
- package/dist/{chunk-XZ65ST2I.js → chunk-QV5CQLQH.js} +2 -2
- package/dist/{chunk-DJOIMFKV.js → chunk-REZIGNA6.js} +2 -2
- package/dist/{chunk-UQGSBM3U.js → chunk-RFPMXR6B.js} +11 -0
- package/dist/{chunk-DN4YVV4Z.js → chunk-RSABKW6B.js} +1 -1
- package/dist/{chunk-LP4GB656.js → chunk-RZNP35SI.js} +2 -2
- package/dist/{chunk-NUTZJZKW.js → chunk-SKTAZGFI.js} +10 -42
- package/dist/{chunk-TQAZTRQ3.js → chunk-SVXUT2DN.js} +4 -4
- package/dist/{chunk-DJ7YXOTU.js → chunk-T7EF5CQO.js} +3 -3
- package/dist/{chunk-QAEWWYHL.js → chunk-TDF2XKLK.js} +5 -1
- package/dist/{chunk-ZGYNKA3O.js → chunk-TT5BBVLX.js} +29 -31
- package/dist/{chunk-5H47VHB7.js → chunk-UWX6MMCX.js} +1 -1
- package/dist/{chunk-XL5MFGMR.js → chunk-V4YNN7PA.js} +10 -3
- package/dist/{chunk-SL6KQYDU.js → chunk-V5DDXXMP.js} +7 -7
- package/dist/{chunk-DZKPOSFD.js → chunk-VH6SPPNA.js} +1 -1
- package/dist/{chunk-LDNYSMPZ.js → chunk-VJUUI2VT.js} +1 -1
- package/dist/{chunk-CBCGDEJA.js → chunk-VN5WOOAQ.js} +42 -6
- package/dist/{chunk-EXDW3E2R.js → chunk-VPHJ2LUI.js} +165 -15
- package/dist/{chunk-GOMQ7PVQ.js → chunk-WJC6AAJN.js} +1 -1
- package/dist/{chunk-GJI77VDO.js → chunk-WVBVUVZB.js} +6 -5
- package/dist/{chunk-A6PDF4BO.js → chunk-XTQ7R2PA.js} +2 -2
- package/dist/{chunk-L6RXG36J.js → chunk-Y2HD2YB7.js} +1 -1
- package/dist/{chunk-KTU3EAWK.js → chunk-YAACLBZ7.js} +5 -5
- package/dist/{chunk-7GE2EQ23.js → chunk-YGVAKKGJ.js} +11 -6
- package/dist/chunk-YLHACCCB.js +166 -0
- package/dist/{chunk-PLZSZOZN.js → chunk-YP6UGVEY.js} +3 -3
- package/dist/{chunk-ULIBLJ6W.js → chunk-YYC553FO.js} +5 -5
- package/dist/{chunk-T35RCQFE.js → chunk-YZPEQW7H.js} +9 -8
- package/dist/{chunk-KI5PFRG6.js → chunk-ZKGWHT56.js} +60 -2
- package/dist/{chunk-NUK7EEN5.js → chunk-ZKJ5S23O.js} +33 -13
- package/dist/chunk-ZLPS3GR7.js +146 -0
- package/dist/{chunk-XH7YL7JM.js → chunk-ZMX22HSS.js} +50 -6
- package/dist/{chunk-JY5GAZYC.js → chunk-ZQEJ4IX2.js} +4 -0
- package/dist/{chunk-R4CBHKZ2.js → chunk-ZS5JO6QV.js} +7 -6
- package/dist/{cleanup-graph-garbage-DPJGO52H.js → cleanup-graph-garbage-LAPIZGFX.js} +12 -12
- package/dist/{cloud-sync-command-JPNTT4OQ.js → cloud-sync-command-QAZ2NWRA.js} +11 -2
- package/dist/{cloud-sync-db-init-V2LWIUQU.js → cloud-sync-db-init-HAGVF32Y.js} +1 -1
- package/dist/{cloud-sync-shutdown-BNALPWGX.js → cloud-sync-shutdown-DAEPCFVK.js} +5 -5
- package/dist/{co-activation-CMNSWS6B.js → co-activation-523TKQPZ.js} +5 -5
- package/dist/{co-occurrence-WRI2NAN6.js → co-occurrence-PQUCTENN.js} +36 -17
- package/dist/{code-context-index-NOJSHLPN.js → code-context-index-LIDOFKOR.js} +6 -4
- package/dist/{code-context-watcher-VZNZU3BO.js → code-context-watcher-4F7K2N3U.js} +6 -4
- package/dist/{content-extractor-NXYNEF5K.js → content-extractor-DJM5EUDA.js} +2 -2
- package/dist/{conversation-entity-extractor-74252CAO.js → conversation-entity-extractor-THGKQ5RD.js} +5 -5
- package/dist/{crdt-sync-B3JN6AIV.js → crdt-sync-32B55NOJ.js} +1 -1
- package/dist/{crm-webhook-GYWQRFET.js → crm-webhook-FHRISFYQ.js} +2 -2
- package/dist/{cto-delegation-gate-LQHVLEMW.js → cto-delegation-gate-O6XPGECP.js} +27 -26
- package/dist/{daemon-auth-QZHEO7IQ.js → daemon-auth-PNKHERLV.js} +6 -1
- package/dist/daemon-drift-N2GKUBAO.js +15 -0
- package/dist/{daemon-orchestration-5HIQALZH.js → daemon-orchestration-BWLSJG2X.js} +33 -30
- package/dist/{daemon-ready-P2BR2XP5.js → daemon-ready-BN6EZLTQ.js} +1 -1
- package/dist/{daemon-ready-signal-CKXPUMJ2.js → daemon-ready-signal-PNDMVKPJ.js} +3 -1
- package/dist/{daemon-restart-circuit-breaker-SMTWFX27.js → daemon-restart-circuit-breaker-CD4VMCU7.js} +1 -1
- package/dist/daemon-restart-report-FIO5HZTJ.js +15 -0
- package/dist/{daemon-timer-report-TNJH5SFY.js → daemon-timer-report-6UK5PSDP.js} +2 -1
- package/dist/{db-integrity-events-2DTFO37N.js → db-integrity-events-GYGANKZV.js} +1 -1
- package/dist/{destructive-data-guard-BVFWPPIS.js → destructive-data-guard-HHWUBIGS.js} +1 -1
- package/dist/{doc-graph-extractor-PQHDHQPQ.js → doc-graph-extractor-HOKOV7BE.js} +10 -10
- package/dist/{documents-C4SSPJMC.js → documents-HWEJMONR.js} +16 -14
- package/dist/{dreaming-XAO3FCBV.js → dreaming-FMNDODG2.js} +31 -30
- package/dist/{employee-boot-brief-W4OHUMRQ.js → employee-boot-brief-DBFROOQJ.js} +35 -34
- package/dist/{entity-boost-3UWGXG5O.js → entity-boost-5V4W6NFA.js} +1 -1
- package/dist/{exe-drift-AG2KMKD5.js → exe-drift-V55UAYRT.js} +6 -6
- package/dist/{exe-export-IC5BT335.js → exe-export-LHN42ZUS.js} +18 -16
- package/dist/{exe-import-A35ZLDPG.js → exe-import-M536BEZC.js} +18 -16
- package/dist/{exe-key-TCMJNYLA.js → exe-key-37XIR22X.js} +111 -107
- package/dist/{exe-org-JXCR3JYZ.js → exe-org-7TDIRNTE.js} +14 -14
- package/dist/{exe-snapshot-SV6SRIG6.js → exe-snapshot-EOUBCIQK.js} +34 -33
- package/dist/{fast-db-init-L2RGKJWH.js → fast-db-init-GWUZ746B.js} +1 -1
- package/dist/{founder-context-D4HFIESJ.js → founder-context-6LQKET4A.js} +2 -2
- package/dist/{fts-integrity-4YB34KWX.js → fts-integrity-PLAL6NMG.js} +1 -1
- package/dist/gateway/index.js +17 -17
- package/dist/{git-main-guard-VTW4N3CM.js → git-main-guard-BGICS25C.js} +1 -1
- package/dist/{git-staleness-TN7CYGFG.js → git-staleness-QNNXJK3W.js} +5 -5
- package/dist/{global-procedures-YFDEIOG7.js → global-procedures-NMQGF54V.js} +7 -7
- package/dist/{gotrue-session-ODZ2ERJX.js → gotrue-session-U4H3UGHL.js} +1 -3
- package/dist/{graph-auto-extract-3YR3TYRW.js → graph-auto-extract-7POGAKHM.js} +10 -10
- package/dist/{graph-query-AP5R6ZHO.js → graph-query-ZEDO4BDF.js} +1 -1
- package/dist/{graph-rag-Z2KCJTPK.js → graph-rag-JA7XN7NO.js} +5 -5
- package/dist/hook-integrity-6NLSNTXD.js +15 -0
- package/dist/{hook-prefetch-K5DN3TOQ.js → hook-prefetch-4KH3D4YU.js} +28 -26
- package/dist/hook-tamper-log-Z4PWC7N4.js +90 -0
- package/dist/hooks/bug-report-worker.js +31 -30
- package/dist/hooks/codex-stop-task-finalizer.js +33 -32
- package/dist/hooks/commit-complete.js +30 -29
- package/dist/hooks/error-recall.js +12 -12
- package/dist/hooks/exe-heartbeat-hook.js +7 -7
- package/dist/hooks/ingest-worker.js +17 -15
- package/dist/hooks/ingest.js +20 -20
- package/dist/hooks/instructions-loaded.js +9 -9
- package/dist/hooks/manifest.json +20 -20
- package/dist/hooks/notification.js +8 -8
- package/dist/hooks/post-compact.js +7 -7
- package/dist/hooks/post-tool-combined.js +14 -14
- package/dist/hooks/pre-compact.js +30 -29
- package/dist/hooks/pre-tool-use.js +303 -489
- package/dist/hooks/prompt-submit.js +61 -54
- package/dist/hooks/session-end.js +35 -34
- package/dist/hooks/session-start.js +18 -18
- package/dist/hooks/stop.js +36 -35
- package/dist/hooks/subagent-stop.js +32 -31
- package/dist/hooks/summary-worker.js +36 -35
- package/dist/index.js +39 -38
- package/dist/{installer-LK35OX6R.js → installer-M34Q7LAS.js} +25 -10
- package/dist/{installer-54HTN5RE.js → installer-POV6TDQ5.js} +12 -8
- package/dist/{installer-LLWKZI2S.js → installer-S624ZOMB.js} +12 -8
- package/dist/{intercom-queue-5NOT2RKI.js → intercom-queue-MKDWAEUV.js} +26 -25
- package/dist/lib/cloud-sync.js +27 -19
- package/dist/lib/consolidation.js +12 -12
- package/dist/lib/database.js +5 -5
- package/dist/lib/db-backup.js +7 -1
- package/dist/lib/db-daemon-client.js +8 -6
- package/dist/lib/db-write-worker.js +4 -4
- package/dist/lib/db.js +5 -5
- package/dist/lib/device-registry.js +1 -1
- package/dist/lib/embedder.js +6 -4
- package/dist/lib/employee-templates.js +8 -8
- package/dist/lib/employees.js +5 -5
- package/dist/lib/exe-daemon-client.js +5 -3
- package/dist/lib/exe-daemon.js +333 -262
- package/dist/lib/hybrid-search.js +10 -10
- package/dist/lib/identity-templates.js +1 -1
- package/dist/lib/identity.js +17 -7
- package/dist/lib/license.js +2 -2
- package/dist/lib/messaging.js +27 -26
- package/dist/lib/post-tool-memory.js +9 -9
- package/dist/lib/registry-proxy.js +3 -1
- package/dist/lib/reminders.js +6 -6
- package/dist/lib/schedules.js +11 -11
- package/dist/lib/session-registry.js +11 -7
- package/dist/lib/session-wrappers.js +1 -1
- package/dist/lib/skill-learning.js +17 -15
- package/dist/lib/status-brief.js +2 -1
- package/dist/lib/store.js +9 -9
- package/dist/lib/task-router.js +6 -6
- package/dist/lib/tasks.js +28 -27
- package/dist/lib/tmux-routing.js +26 -25
- package/dist/lib/tmux-status.js +5 -1
- package/dist/lib/token-spend.js +6 -6
- package/dist/{license-gate-JVMB6OFD.js → license-gate-2QNMBAZU.js} +3 -3
- package/dist/{license-sync-5VYS2F2W.js → license-sync-FEDKH5MD.js} +2 -2
- package/dist/{mailbox-inbox-4MEUOL3J.js → mailbox-inbox-XE72D3AX.js} +2 -2
- package/dist/{mailbox-outbox-J6WIF3UY.js → mailbox-outbox-DNDDP2HW.js} +1 -1
- package/dist/mcp/register-tools.js +110 -106
- package/dist/mcp/server.js +113 -109
- package/dist/mcp/tools/complete-reminder.js +7 -7
- package/dist/mcp/tools/create-reminder.js +7 -7
- package/dist/mcp/tools/create-task.js +30 -29
- package/dist/mcp/tools/deactivate-behavior.js +18 -16
- package/dist/mcp/tools/list-reminders.js +7 -7
- package/dist/mcp/tools/list-tasks.js +30 -29
- package/dist/mcp/tools/send-message.js +33 -30
- package/dist/mcp/tools/update-task.js +29 -28
- package/dist/{mcp-child-registry-OTG4MWO7.js → mcp-child-registry-DVHYAHPW.js} +2 -2
- package/dist/{mcp-health-HNVSWKFA.js → mcp-health-B5EKRCZG.js} +2 -2
- package/dist/{mcp-http-config-DQWL7U2Z.js → mcp-http-config-ZJ7XHWT7.js} +10 -6
- package/dist/{mcp-session-identity-277GASTQ.js → mcp-session-identity-PEVM7VIP.js} +26 -25
- package/dist/{memory-cards-3S2ZQPR7.js → memory-cards-VN5DEWPD.js} +9 -9
- package/dist/{memory-graph-extractor-A6DFEFIN.js → memory-graph-extractor-TMEB6WLA.js} +11 -11
- package/dist/{memory-poisoning-defense-ZVP4H6DY.js → memory-poisoning-defense-DYHARQ2G.js} +5 -5
- package/dist/{memory-pressure-watchdog-6W5F6R7H.js → memory-pressure-watchdog-J6Q3SIBL.js} +27 -26
- package/dist/{memory-queue-client-ADSDP6OX.js → memory-queue-client-QC2OTMJB.js} +6 -4
- package/dist/{memory-reflection-BKB2YOE6.js → memory-reflection-ZYJUOSFX.js} +9 -9
- package/dist/{message-queue-client-XQN7QABL.js → message-queue-client-OEQCGSWC.js} +1 -25
- package/dist/{notification-ledger-CLGM7ODF.js → notification-ledger-TG6EFYBP.js} +29 -28
- package/dist/{notifications-MACUZPYP.js → notifications-LGYY22W5.js} +26 -25
- package/dist/{orchestration-events-N7LYMUGA.js → orchestration-events-JPHB6NPY.js} +6 -6
- package/dist/{orchestrator-4X24EWHV.js → orchestrator-IC4WGP6L.js} +28 -27
- package/dist/{org-brief-session-FZOFMO5U.js → org-brief-session-DEPHWCQR.js} +9 -9
- package/dist/{org-consent-policy-O5E6HXBL.js → org-consent-policy-T27AO5OJ.js} +2 -2
- package/dist/{org-join-POWUG25F.js → org-join-A3YXC5RB.js} +2 -2
- package/dist/{org-key-admin-E7EMDOZZ.js → org-key-admin-SQFHCVP2.js} +3 -3
- package/dist/{org-partner-runtime-FODONVTM.js → org-partner-runtime-L7L2WWGN.js} +10 -10
- package/dist/{org-row-visibility-VX4AVV5Q.js → org-row-visibility-M54Z6ZH3.js} +1 -1
- package/dist/{pipeline-router-6GGT2ZW3.js → pipeline-router-NKYAUR3Y.js} +6 -6
- package/dist/{plan-limits-FUN76LYY.js → plan-limits-ISRRGF23.js} +8 -8
- package/dist/{platform-procedures-7YSCLF4Z.js → platform-procedures-Z7ZGBJWN.js} +1 -1
- package/dist/{project-boot-3Q65LCIP.js → project-boot-BLYGVUJH.js} +4 -1
- package/dist/{project-name-LJVFMYTQ.js → project-name-WKSNNKXK.js} +6 -6
- package/dist/{projection-worker-4OANGP5K.js → projection-worker-RNYPE46G.js} +2 -2
- package/dist/{prospective-memory-KR3P4T6N.js → prospective-memory-GEO6E3UL.js} +5 -5
- package/dist/{push-notifications-NCZLH6DI.js → push-notifications-EY6BXZUY.js} +27 -26
- package/dist/{reproject-worktree-memories-PWYKPB2U.js → reproject-worktree-memories-DAA5GWMH.js} +28 -27
- package/dist/{reranker-6V3C2AO4.js → reranker-7OADQPMG.js} +1 -1
- package/dist/{retrieval-health-5D7O6VH6.js → retrieval-health-FCEDWN2P.js} +2 -2
- package/dist/{review-polling-QW3LJ4KN.js → review-polling-G52BR4MC.js} +27 -26
- package/dist/runtime/index.js +39 -38
- package/dist/{session-events-T45SSTMF.js → session-events-P6E2373E.js} +27 -26
- package/dist/{session-kill-telemetry-QSPVJGBF.js → session-kill-telemetry-OHNJMIVT.js} +27 -26
- package/dist/{session-mcp-config-SC5BLWZG.js → session-mcp-config-WFZAH6R5.js} +2 -1
- package/dist/{session-scope-KRWE54C4.js → session-scope-DKOHPQPJ.js} +26 -25
- package/dist/{setup-wizard-GP3TBTPF.js → setup-wizard-RNU3RFBE.js} +1 -1
- package/dist/{skill-refinement-C7JTMLJG.js → skill-refinement-AKJTHFXC.js} +6 -6
- package/dist/{stack-generate-manifest-MFMDWRUP.js → stack-generate-manifest-7WJZWSPK.js} +163 -15
- package/dist/{stack-promote-EKSCYY63.js → stack-promote-OP2URGFF.js} +4 -4
- package/dist/{stack-release-2GZAAFO4.js → stack-release-MY6U2QIO.js} +31 -8
- package/dist/{stack-update-J6JXSTAZ.js → stack-update-QSHSLUTZ.js} +3 -3
- package/dist/{steward-gate-BFCCMCSW.js → steward-gate-KMLS5ECC.js} +6 -6
- package/dist/{subagent-brief-injection-ED36PLYY.js → subagent-brief-injection-HCKZQZBF.js} +37 -36
- package/dist/{support-inbox-YW47SYJF.js → support-inbox-UBXU5RKV.js} +11 -11
- package/dist/{support-outbox-HFJWG52M.js → support-outbox-G2NG2U5K.js} +2 -2
- package/dist/{sweep-budget-KMPJ7O5Z.js → sweep-budget-YGLCNXZZ.js} +9 -3
- package/dist/{task-enforcement-CECTQX4U.js → task-enforcement-2GR7HU6V.js} +27 -26
- package/dist/{task-request-inbox-Q5T4N5K7.js → task-request-inbox-ANCVK2VG.js} +2 -2
- package/dist/{task-scope-ERVEUEYU.js → task-scope-QANJJXXB.js} +30 -29
- package/dist/{tasks-crud-ZRQNJXQ2.js → tasks-crud-45WOIMIM.js} +44 -25
- package/dist/{tasks-notify-MIZH4C2O.js → tasks-notify-ZJS4MA3S.js} +29 -26
- package/dist/{tasks-review-Z7J2P6DG.js → tasks-review-ZVPKY47Z.js} +26 -25
- package/dist/{telemetry-upload-LVQUQYFP.js → telemetry-upload-VY3UWAEL.js} +10 -10
- package/dist/{token-budget-BU4NOVZF.js → token-budget-XHX6XFEC.js} +6 -6
- package/dist/{tool-capability-index-7F42MOJT.js → tool-capability-index-6HLZU437.js} +1 -1
- package/dist/{tool-telemetry-O27EVMBR.js → tool-telemetry-GBDI4AXR.js} +1 -1
- package/dist/tui/App.js +36 -35
- package/dist/{tui-data-TPWWBIUQ.js → tui-data-IQFE3UW3.js} +30 -29
- package/dist/{typed-messages-RCMPEKJN.js → typed-messages-P2HLLA62.js} +1 -1
- package/dist/{update-support-F2F5537B.js → update-support-BDN5AK4R.js} +25 -22
- package/dist/{work-claims-B73X5NE7.js → work-claims-PDQNLE5K.js} +7 -7
- package/dist/{work-state-heartbeat-P4YX6E2R.js → work-state-heartbeat-CH6BLQKV.js} +1 -1
- package/dist/{worker-gate-BEEIIVWA.js → worker-gate-NUUSQMBT.js} +1 -3
- package/dist/{workflow-engine-5X46PFCW.js → workflow-engine-RZ7QEI3Z.js} +2 -2
- package/dist/{worktree-W47CIMJ6.js → worktree-Q25PZST6.js} +11 -7
- package/dist/worktree-ownership-guard-4LKMW6PW.js +421 -0
- package/dist/{worktree-sweep-BNBD4RFX.js → worktree-sweep-EV5YQ2OB.js} +8 -8
- package/package.json +15 -3
- package/release-notes.json +5 -5
- package/src/commands/exe.md +16 -16
- package/stack.release.json +9 -8
- package/dist/behavior-injection-M6UYZCMW.js +0 -63
- package/dist/chunk-BJ7AVSY6.js +0 -50
- package/dist/daemon-restart-report-EIVD6WDJ.js +0 -10
- package/dist/worktree-ownership-guard-OUWJROW2.js +0 -88
- /package/dist/{chunk-GQOEWNVM.js → chunk-4EG4DT4F.js} +0 -0
- /package/dist/{chunk-AISULNGL.js → chunk-BRAIWGMF.js} +0 -0
- /package/dist/{chunk-NRG7KZIP.js → chunk-HQEAZDAC.js} +0 -0
- /package/dist/{chunk-VZAFWPAY.js → chunk-IK4344V5.js} +0 -0
- /package/dist/{chunk-GM7TLYOK.js → chunk-K3VDF6II.js} +0 -0
- /package/dist/{chunk-2AJGV5UL.js → chunk-KM7DAG5J.js} +0 -0
- /package/dist/{chunk-YO4BO2CL.js → chunk-QIEYJ4KZ.js} +0 -0
- /package/dist/{chunk-WSQASFLP.js → chunk-VCTK5HRA.js} +0 -0
- /package/dist/{chunk-KQ6RJWRW.js → chunk-VPT6VMBG.js} +0 -0
- /package/dist/{chunk-6WIFPD2P.js → chunk-YZ4AEMR7.js} +0 -0
- /package/dist/{core-memory-7I7RE2SJ.js → core-memory-UIZKCY4L.js} +0 -0
- /package/dist/{memory-isolation-2TUZ7Z4K.js → memory-isolation-3GJ6WLYX.js} +0 -0
- /package/dist/{oauth-server-AYM37SQ4.js → oauth-server-ZRHXIRXQ.js} +0 -0
- /package/dist/{wiki-acl-IBQLLBTS.js → wiki-acl-MFOYK5F4.js} +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
writeSignedStackManifest
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-5QKLWJ4Z.js";
|
|
5
|
+
import "./chunk-TT5BBVLX.js";
|
|
6
6
|
import "./chunk-GHR4ZPJ7.js";
|
|
7
7
|
import "./chunk-C5HUMAA7.js";
|
|
8
8
|
import "./chunk-L25OAFOU.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-Y2HD2YB7.js";
|
|
10
10
|
import "./chunk-A7XLR3K7.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-4EG4DT4F.js";
|
|
12
12
|
import "./chunk-ZIG7VPJV.js";
|
|
13
13
|
import "./chunk-HSGBZSCA.js";
|
|
14
14
|
import "./chunk-RH4AH3YB.js";
|
|
@@ -305,10 +305,11 @@ function evaluateService(spec, facts = {}, options = {}) {
|
|
|
305
305
|
if (facts.deployed?.ref) {
|
|
306
306
|
const deployedTag = tagOf(facts.deployed.ref);
|
|
307
307
|
const deployedVersion = facts.deployed.versionLabel?.trim();
|
|
308
|
-
|
|
308
|
+
const identifiable = Boolean(deployedTag) || isDigestPinned(facts.deployed.ref);
|
|
309
|
+
if (!identifiable || !deployedVersion) {
|
|
309
310
|
const missing = [
|
|
310
311
|
!deployedVersion ? "no org.opencontainers.image.version label" : null,
|
|
311
|
-
!
|
|
312
|
+
!identifiable ? "is neither tag- nor digest-referenced (unattributable)" : null
|
|
312
313
|
].filter(Boolean).join(" and ");
|
|
313
314
|
return refuse(
|
|
314
315
|
`deployed image ${facts.deployed.ref} has ${missing}; provenance unresolved. Trace the running image and cut a real release before ${spec.key} can be manifest-governed. Re-pinning it to a tag we cannot prove it came from would be a change of unknown scope.`
|
|
@@ -357,6 +358,31 @@ function evaluateService(spec, facts = {}, options = {}) {
|
|
|
357
358
|
`could not resolve ${spec.ghRepo}@${facts.latestTag} to a commit. Provenance is anchored to the COMMIT a tag names, never to the tag string, so an unresolvable tag cannot be pinned.`
|
|
358
359
|
);
|
|
359
360
|
}
|
|
361
|
+
if (facts.deployed?.ref) {
|
|
362
|
+
const deployedRef = facts.deployed.ref;
|
|
363
|
+
const deployedTag = tagOf(deployedRef);
|
|
364
|
+
if (deployedTag && facts.deployedTagExistsInGit !== true) {
|
|
365
|
+
return refuse(
|
|
366
|
+
facts.deployedTagExistsInGit !== false ? `could not verify that ${deployedTag} is an AskExe release tag in ${spec.ghRepo}, so the image production is running cannot be attributed to a release. An unverifiable tag is not a verified tag \u2014 fail closed.` : facts.deployedTagIsNotARelease ? `FLOATING DEPLOYMENT: production runs ${deployedRef}, whose tag "${deployedTag}" is not a release tag at all \u2014 it is a moving reference. Its bytes change under it without the manifest, the stack version, or anyone's review changing, so there is no version this deployment can be said to BE. A version label on the image does not fix that: the label records what the build called itself, not what was released. Deploy a released \`:vX.Y.Z\` tag before ${spec.key} can be manifest-governed.` : facts.deployedTagUpstreamOwned ? `UPSTREAM TAG, NOT OURS: production runs ${deployedRef}, and ${deployedTag} does exist in ${spec.ghRepo} \u2014 but it was created by an UPSTREAM identity, not by AskExe. ${spec.ghRepo} is a hard fork that inherited upstream's tag namespace, so a tag being present there is no evidence that WE released these bytes. Do not "fix" this by trusting the tag; cut a real AskExe release at a version upstream has not used.` : `UNTAGGED RELEASE: production runs ${deployedRef}, but ${deployedTag} does not exist as a git tag in ${spec.ghRepo}. The image wears a release name that was never released \u2014 no reviewed commit corresponds to the bytes that are serving traffic, so this pin cannot be traced back to source. Push the real tag (which builds the image through the tag-triggered release workflow) instead of publishing a version-tagged image beside it.`
|
|
367
|
+
);
|
|
368
|
+
}
|
|
369
|
+
const deployedRevision = facts.deployed.revisionLabel?.trim();
|
|
370
|
+
if (!deployedRevision) {
|
|
371
|
+
return refuse(
|
|
372
|
+
`deployed image ${deployedRef} carries no org.opencontainers.image.revision label, so there is nothing to check against ${spec.ghRepo}'s history. An image that cannot name its own source commit is an unreproducible build.`
|
|
373
|
+
);
|
|
374
|
+
}
|
|
375
|
+
if (facts.deployedRevisionReleaseTag !== void 0 && facts.deployedRevisionReleaseTag === null) {
|
|
376
|
+
return refuse(
|
|
377
|
+
`UNRELEASED CODE IN PRODUCTION: ${deployedRef} says it was built from commit ${deployedRevision}, but no release tag in ${spec.ghRepo} contains that commit \u2014 it is not in any released history. Production is running code that was built, pushed and deployed without ever being tagged.`
|
|
378
|
+
);
|
|
379
|
+
}
|
|
380
|
+
if (facts.deployedRevisionReleaseTag === void 0) {
|
|
381
|
+
return refuse(
|
|
382
|
+
`could not determine whether any release tag in ${spec.ghRepo} contains commit ${deployedRevision} (the revision ${deployedRef} claims). Unverifiable provenance fails closed.`
|
|
383
|
+
);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
360
386
|
const resolvedDigest = facts.digestByCommit ?? facts.digestByTag;
|
|
361
387
|
if (!resolvedDigest || !/^sha256:[0-9a-f]{64}$/i.test(resolvedDigest)) {
|
|
362
388
|
return refuse(
|
|
@@ -615,6 +641,55 @@ async function resolveTagCommit(ghRepo, tag) {
|
|
|
615
641
|
const deref = await run("gh", ["api", `repos/${ghRepo}/git/tags/${sha}`, "--jq", ".object.sha"]);
|
|
616
642
|
return deref.ok && deref.stdout.trim() !== "" ? deref.stdout.trim() : void 0;
|
|
617
643
|
}
|
|
644
|
+
async function fetchReleaseTags(ghRepo) {
|
|
645
|
+
const { inReleaseNamespace } = await import("./ref-provenance-gate-M4AQO4OT.js");
|
|
646
|
+
const res = await run("gh", [
|
|
647
|
+
"api",
|
|
648
|
+
`repos/${ghRepo}/git/refs/tags`,
|
|
649
|
+
"--paginate",
|
|
650
|
+
"--jq",
|
|
651
|
+
".[].ref"
|
|
652
|
+
]);
|
|
653
|
+
if (!res.ok) return void 0;
|
|
654
|
+
return res.stdout.split("\n").map((r) => r.trim().replace(/^refs\/tags\//, "")).filter((t) => t !== "" && inReleaseNamespace(t) && !t.startsWith("stack-v")).sort((a, b) => compareVersionTags(a, b) ?? 0).reverse();
|
|
655
|
+
}
|
|
656
|
+
async function isOurAskExeTag(ghRepo, tag) {
|
|
657
|
+
const { isOurIdentity } = await import("./ref-provenance-gate-M4AQO4OT.js");
|
|
658
|
+
return isOurIdentity(await tagCreatorEmail(ghRepo, tag));
|
|
659
|
+
}
|
|
660
|
+
async function deployedTagIsOurRelease(ghRepo, deployedTag, releaseTags) {
|
|
661
|
+
if (!releaseTags) return void 0;
|
|
662
|
+
if (!releaseTags.includes(deployedTag)) return false;
|
|
663
|
+
return isOurAskExeTag(ghRepo, deployedTag);
|
|
664
|
+
}
|
|
665
|
+
var MAX_CONTAINMENT_PROBES = 25;
|
|
666
|
+
var MAX_IDENTITY_SCAN = 120;
|
|
667
|
+
async function releaseTagContaining(ghRepo, commit, tags, knownOurTag) {
|
|
668
|
+
const from = knownOurTag ? tags.indexOf(knownOurTag) : -1;
|
|
669
|
+
const candidates = from >= 0 ? tags.slice(from) : tags;
|
|
670
|
+
const probes = [];
|
|
671
|
+
let scanned = 0;
|
|
672
|
+
for (const tag of candidates) {
|
|
673
|
+
if (probes.length >= MAX_CONTAINMENT_PROBES || scanned >= MAX_IDENTITY_SCAN) break;
|
|
674
|
+
scanned++;
|
|
675
|
+
if (await isOurAskExeTag(ghRepo, tag)) probes.push(tag);
|
|
676
|
+
}
|
|
677
|
+
if (probes.length === 0) return void 0;
|
|
678
|
+
let anyAnswered = false;
|
|
679
|
+
for (const tag of probes) {
|
|
680
|
+
const contains = await commitIsAncestorOfTag(ghRepo, commit, tag);
|
|
681
|
+
if (contains === true) return tag;
|
|
682
|
+
if (contains === false) anyAnswered = true;
|
|
683
|
+
}
|
|
684
|
+
if (!anyAnswered) return void 0;
|
|
685
|
+
if (candidates.length > scanned) {
|
|
686
|
+
process.stderr.write(
|
|
687
|
+
`[stack-generate-manifest] probed the ${probes.length} newest ASKEXE release tag(s) of ${ghRepo}; none contains ${commit} (${candidates.length - scanned} older candidate tag(s) not scanned \u2014 non-linear release history?)
|
|
688
|
+
`
|
|
689
|
+
);
|
|
690
|
+
}
|
|
691
|
+
return null;
|
|
692
|
+
}
|
|
618
693
|
async function commitIsAncestorOfTag(ghRepo, commit, tag) {
|
|
619
694
|
const res = await run("gh", [
|
|
620
695
|
"api",
|
|
@@ -649,10 +724,21 @@ function loadDeployedState(filePath) {
|
|
|
649
724
|
}
|
|
650
725
|
return JSON.parse(readFileSync(filePath, "utf8"));
|
|
651
726
|
}
|
|
727
|
+
function unsampledPinnedServices(specs, deployed) {
|
|
728
|
+
return specs.filter((spec) => spec.origin !== "upstream-pinned" && spec.ghRepo && spec.releaseLane !== "none").filter((spec) => {
|
|
729
|
+
const entry = deployed[spec.key];
|
|
730
|
+
if (entry?.ref) return false;
|
|
731
|
+
if (entry?.absent) return false;
|
|
732
|
+
return true;
|
|
733
|
+
}).map((spec) => spec.key);
|
|
734
|
+
}
|
|
652
735
|
async function gatherFacts(spec, previous, deployed) {
|
|
653
736
|
const facts = {
|
|
654
737
|
previousImageRef: previous[spec.key],
|
|
655
|
-
|
|
738
|
+
// An `{ absent: true }` marker records that the host is NOT running this
|
|
739
|
+
// service. It is an answer to the coverage question, not an image, so it
|
|
740
|
+
// must not flow into the deployed-provenance guards as one.
|
|
741
|
+
deployed: deployed[spec.key]?.ref ? deployed[spec.key] : void 0
|
|
656
742
|
};
|
|
657
743
|
if (spec.origin === "upstream-pinned" || !spec.ghRepo || spec.releaseLane === "none") return facts;
|
|
658
744
|
facts.latestTag = await fetchLatestTag(spec.ghRepo);
|
|
@@ -669,11 +755,25 @@ async function gatherFacts(spec, previous, deployed) {
|
|
|
669
755
|
`${facts.digestByCommit ? commitSource : source}@${resolved}`
|
|
670
756
|
);
|
|
671
757
|
facts.imageCommit = facts.labels["org.exe.git_sha"] ?? facts.labels["org.opencontainers.image.revision"];
|
|
672
|
-
facts.commitIsAncestorOfTag = await commitIsAncestorOfTag(
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
facts.
|
|
676
|
-
|
|
758
|
+
facts.commitIsAncestorOfTag = facts.imageCommit ? await commitIsAncestorOfTag(spec.ghRepo, facts.imageCommit, facts.latestTag) : void 0;
|
|
759
|
+
if (facts.deployed?.ref) {
|
|
760
|
+
const releaseTags = await fetchReleaseTags(spec.ghRepo);
|
|
761
|
+
const deployedTag = tagOf(facts.deployed.ref);
|
|
762
|
+
const { inReleaseNamespace } = await import("./ref-provenance-gate-M4AQO4OT.js");
|
|
763
|
+
if (deployedTag && inReleaseNamespace(deployedTag)) {
|
|
764
|
+
facts.deployedTagExistsInGit = await deployedTagIsOurRelease(
|
|
765
|
+
spec.ghRepo,
|
|
766
|
+
deployedTag,
|
|
767
|
+
releaseTags
|
|
768
|
+
);
|
|
769
|
+
facts.deployedTagUpstreamOwned = facts.deployedTagExistsInGit === false && (releaseTags?.includes(deployedTag) ?? false);
|
|
770
|
+
} else {
|
|
771
|
+
facts.deployedTagExistsInGit = false;
|
|
772
|
+
facts.deployedTagIsNotARelease = true;
|
|
773
|
+
}
|
|
774
|
+
const revision = facts.deployed.revisionLabel?.trim();
|
|
775
|
+
facts.deployedRevisionReleaseTag = revision && releaseTags ? await releaseTagContaining(spec.ghRepo, revision, releaseTags, facts.latestTag) : void 0;
|
|
776
|
+
}
|
|
677
777
|
return facts;
|
|
678
778
|
}
|
|
679
779
|
function printUsage() {
|
|
@@ -688,8 +788,9 @@ Options:
|
|
|
688
788
|
--manifest <path> Manifest to update (default deploy/stack-manifests/v0.9.json)
|
|
689
789
|
--compose <path> Compose file whose deployed surface must be fully covered
|
|
690
790
|
--stack-version <x.y.z> Version for the new entry (default: patch-bump of latest)
|
|
691
|
-
--deployed-state <path> JSON snapshot of what production runs
|
|
692
|
-
|
|
791
|
+
--deployed-state <path> JSON snapshot of what production runs. REQUIRED to
|
|
792
|
+
write; produce it with
|
|
793
|
+
scripts/capture-deployed-state.mjs > deployed.json
|
|
693
794
|
--allow-downgrade <svc> Explicitly permit ONE named service to move backwards.
|
|
694
795
|
Repeatable. The only override \u2014 it cannot manufacture
|
|
695
796
|
provenance for a missing repo, label, or digest.
|
|
@@ -702,6 +803,13 @@ FAIL-CLOSED: the run REFUSES (and writes nothing) when a repo has no published
|
|
|
702
803
|
release, a release has no published image, a digest cannot be resolved, an image
|
|
703
804
|
lacks org.opencontainers.image.version/.revision, a candidate is LOWER than the
|
|
704
805
|
current pin, or compose deploys a service the roster does not govern.
|
|
806
|
+
|
|
807
|
+
It also refuses when the image PRODUCTION IS RUNNING cannot be traced to source:
|
|
808
|
+
its release tag does not exist as a git tag in that service's repo, or no release
|
|
809
|
+
tag contains the commit the image says it was built from (bug 2c9bf186 \u2014
|
|
810
|
+
ghcr.io/askexe/exe-erp:v0.3.4 was serving traffic while git held only v0.3.1).
|
|
811
|
+
Those checks read the --deployed-state snapshot, which is why writing requires
|
|
812
|
+
one; unverifiable is treated as failing, never as passing.
|
|
705
813
|
`);
|
|
706
814
|
}
|
|
707
815
|
async function runStackGenerateManifestCli(argv) {
|
|
@@ -725,6 +833,18 @@ async function runStackGenerateManifestCli(argv) {
|
|
|
725
833
|
} else {
|
|
726
834
|
console.warn(`[stack-generate-manifest] compose file not found (${opts.composePath}) \u2014 coverage NOT verified.`);
|
|
727
835
|
}
|
|
836
|
+
if (!opts.dryRun && !opts.deployedStatePath) {
|
|
837
|
+
console.error(
|
|
838
|
+
`[stack-generate-manifest] REFUSED: --deployed-state is required to write a manifest.
|
|
839
|
+
Without a snapshot of what production runs, the deployed-provenance guards cannot run \u2014
|
|
840
|
+
and those are the guards that catch an image wearing a release tag that exists in no git
|
|
841
|
+
history (bug 2c9bf186: ghcr.io/askexe/exe-erp:v0.3.4 was live while git had only v0.3.1).
|
|
842
|
+
Capture one from the host:
|
|
843
|
+
EXE_STACK_SSH_HOST=<host> node scripts/capture-deployed-state.mjs > deployed.json
|
|
844
|
+
then re-run with --deployed-state deployed.json. Use --dry-run to resolve without writing.`
|
|
845
|
+
);
|
|
846
|
+
return 1;
|
|
847
|
+
}
|
|
728
848
|
const previous = previousImageRefs(manifest);
|
|
729
849
|
let deployed;
|
|
730
850
|
try {
|
|
@@ -734,6 +854,29 @@ async function runStackGenerateManifestCli(argv) {
|
|
|
734
854
|
return 1;
|
|
735
855
|
}
|
|
736
856
|
const specs = stackServiceSpecs(STACK_SERVICE_SPECS);
|
|
857
|
+
if (!opts.dryRun && Object.keys(deployed).length === 0) {
|
|
858
|
+
console.error(
|
|
859
|
+
`[stack-generate-manifest] REFUSED: the --deployed-state snapshot ${opts.deployedStatePath} describes no services.
|
|
860
|
+
An empty snapshot passes the flag check and then silently skips every deployed-provenance
|
|
861
|
+
guard \u2014 production would go unexamined and the manifest would be signed anyway.
|
|
862
|
+
Re-capture it against the real host:
|
|
863
|
+
EXE_STACK_SSH_HOST=<host> node scripts/capture-deployed-state.mjs > deployed.json`
|
|
864
|
+
);
|
|
865
|
+
return 1;
|
|
866
|
+
}
|
|
867
|
+
const unsampled = unsampledPinnedServices(specs, deployed);
|
|
868
|
+
if (!opts.dryRun && unsampled.length > 0) {
|
|
869
|
+
console.error(
|
|
870
|
+
`[stack-generate-manifest] REFUSED: the --deployed-state snapshot says nothing about: ${unsampled.join(", ")}.
|
|
871
|
+
Their deployed-provenance guards would silently not run, and the manifest would be signed
|
|
872
|
+
as if production had been checked. A real capture records every service it covers \u2014
|
|
873
|
+
one the host is not running appears as {"absent": true}, which is an answer. An entry that
|
|
874
|
+
is missing or empty is not.
|
|
875
|
+
Re-capture against the host (do not hand-edit the file):
|
|
876
|
+
EXE_STACK_SSH_HOST=<host> node scripts/capture-deployed-state.mjs > deployed.json`
|
|
877
|
+
);
|
|
878
|
+
return 1;
|
|
879
|
+
}
|
|
737
880
|
const factsByKey = {};
|
|
738
881
|
for (const spec of specs) {
|
|
739
882
|
process.stderr.write(`[stack-generate-manifest] resolving ${spec.key}\u2026
|
|
@@ -799,12 +942,17 @@ if (isMainModule(import.meta.url) && process.argv[1]?.includes("stack-generate-m
|
|
|
799
942
|
}
|
|
800
943
|
export {
|
|
801
944
|
commitIsAncestorOfTag,
|
|
945
|
+
deployedTagIsOurRelease,
|
|
802
946
|
fetchLatestTag,
|
|
947
|
+
fetchReleaseTags,
|
|
803
948
|
gatherFacts,
|
|
949
|
+
isOurAskExeTag,
|
|
804
950
|
loadDeployedState,
|
|
805
951
|
parseGenerateArgs,
|
|
806
952
|
readProvenanceLabels,
|
|
953
|
+
releaseTagContaining,
|
|
807
954
|
resolveImageDigest,
|
|
808
955
|
resolveTagCommit,
|
|
809
|
-
runStackGenerateManifestCli
|
|
956
|
+
runStackGenerateManifestCli,
|
|
957
|
+
unsampledPinnedServices
|
|
810
958
|
};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
writeSignedStackManifest
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-5QKLWJ4Z.js";
|
|
5
|
+
import "./chunk-TT5BBVLX.js";
|
|
6
6
|
import "./chunk-GHR4ZPJ7.js";
|
|
7
7
|
import "./chunk-C5HUMAA7.js";
|
|
8
8
|
import "./chunk-L25OAFOU.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-Y2HD2YB7.js";
|
|
10
10
|
import "./chunk-A7XLR3K7.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-4EG4DT4F.js";
|
|
12
12
|
import "./chunk-ZIG7VPJV.js";
|
|
13
13
|
import "./chunk-HSGBZSCA.js";
|
|
14
14
|
import "./chunk-RH4AH3YB.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
writeSignedStackManifest
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-5QKLWJ4Z.js";
|
|
5
|
+
import "./chunk-TT5BBVLX.js";
|
|
6
6
|
import "./chunk-GHR4ZPJ7.js";
|
|
7
7
|
import {
|
|
8
8
|
assertPreflightGate,
|
|
@@ -10,9 +10,9 @@ import {
|
|
|
10
10
|
} from "./chunk-LLZNPOGB.js";
|
|
11
11
|
import "./chunk-C5HUMAA7.js";
|
|
12
12
|
import "./chunk-L25OAFOU.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-Y2HD2YB7.js";
|
|
14
14
|
import "./chunk-A7XLR3K7.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-4EG4DT4F.js";
|
|
16
16
|
import "./chunk-ZIG7VPJV.js";
|
|
17
17
|
import "./chunk-HSGBZSCA.js";
|
|
18
18
|
import "./chunk-RH4AH3YB.js";
|
|
@@ -328,7 +328,9 @@ function parseReleaseArgs(argv) {
|
|
|
328
328
|
return flags;
|
|
329
329
|
}
|
|
330
330
|
async function git(repoPath, ...args) {
|
|
331
|
-
const { stdout } = await execFile("git", ["-C", repoPath, ...args]
|
|
331
|
+
const { stdout } = await execFile("git", ["-C", repoPath, ...args], {
|
|
332
|
+
env: { ...process.env, GIT_TERMINAL_PROMPT: "0" }
|
|
333
|
+
});
|
|
332
334
|
return stdout.trim();
|
|
333
335
|
}
|
|
334
336
|
async function assertCleanWorkingTree(opts) {
|
|
@@ -471,7 +473,9 @@ function isCloneTargetSafe(targetPath, parentDir) {
|
|
|
471
473
|
return resolvedTarget === resolvedParent || resolvedTarget.startsWith(resolvedParent + path2.sep);
|
|
472
474
|
}
|
|
473
475
|
var defaultCloneRunner = async (url, targetPath) => {
|
|
474
|
-
await execFile("git", ["clone", url, targetPath]
|
|
476
|
+
await execFile("git", ["clone", url, targetPath], {
|
|
477
|
+
env: { ...process.env, GIT_TERMINAL_PROMPT: "0" }
|
|
478
|
+
});
|
|
475
479
|
};
|
|
476
480
|
async function ensureRepoCloned(repo, parentDir = PARENT_DIR, runClone = defaultCloneRunner) {
|
|
477
481
|
if (hasPackageJson(repo)) return false;
|
|
@@ -538,6 +542,19 @@ function rebaseImageTag(image, newVersion) {
|
|
|
538
542
|
}
|
|
539
543
|
return `${image}:v${newVersion}`;
|
|
540
544
|
}
|
|
545
|
+
function imageRepoPath(image) {
|
|
546
|
+
const withoutDigest = image.split("@")[0] ?? image;
|
|
547
|
+
const lastColon = withoutDigest.lastIndexOf(":");
|
|
548
|
+
const lastSlash = withoutDigest.lastIndexOf("/");
|
|
549
|
+
return lastColon > lastSlash ? withoutDigest.slice(0, lastColon) : withoutDigest;
|
|
550
|
+
}
|
|
551
|
+
function mayRebaseComponent(component, componentImage, ownImage) {
|
|
552
|
+
if (component && typeof component === "object" && component.versionLockstep === true) {
|
|
553
|
+
return true;
|
|
554
|
+
}
|
|
555
|
+
if (typeof ownImage !== "string" || ownImage.length === 0) return false;
|
|
556
|
+
return imageRepoPath(componentImage) === imageRepoPath(ownImage);
|
|
557
|
+
}
|
|
541
558
|
async function bumpVersions(changes, mode, dryRun) {
|
|
542
559
|
for (const change of changes) {
|
|
543
560
|
const newVersion = bumpVersion(change.currentVersion, mode);
|
|
@@ -558,15 +575,18 @@ async function bumpVersions(changes, mode, dryRun) {
|
|
|
558
575
|
if (typeof srf.image === "string") {
|
|
559
576
|
srf.image = rebaseImageTag(srf.image, newVersion);
|
|
560
577
|
}
|
|
578
|
+
const ownImage = typeof srf.image === "string" ? srf.image : void 0;
|
|
561
579
|
if (srf.components && typeof srf.components === "object") {
|
|
562
580
|
const components = srf.components;
|
|
563
581
|
for (const key of Object.keys(components)) {
|
|
564
582
|
const val = components[key];
|
|
565
583
|
if (typeof val === "string") {
|
|
566
|
-
|
|
584
|
+
if (mayRebaseComponent(val, val, ownImage)) {
|
|
585
|
+
components[key] = rebaseImageTag(val, newVersion);
|
|
586
|
+
}
|
|
567
587
|
} else if (val && typeof val === "object" && "image" in val) {
|
|
568
588
|
const obj = val;
|
|
569
|
-
if (typeof obj.image === "string") {
|
|
589
|
+
if (typeof obj.image === "string" && mayRebaseComponent(obj, obj.image, ownImage)) {
|
|
570
590
|
obj.image = rebaseImageTag(obj.image, newVersion);
|
|
571
591
|
}
|
|
572
592
|
}
|
|
@@ -1466,8 +1486,11 @@ export {
|
|
|
1466
1486
|
findPullRequestForHeadSha,
|
|
1467
1487
|
findWorkflowRunForHeadSha,
|
|
1468
1488
|
forceBuildRejection,
|
|
1489
|
+
imageRepoPath,
|
|
1469
1490
|
isCloneTargetSafe,
|
|
1491
|
+
mayRebaseComponent,
|
|
1470
1492
|
parseReleaseArgs,
|
|
1471
1493
|
printOpenPrGate,
|
|
1494
|
+
rebaseImageTag,
|
|
1472
1495
|
runStackRelease
|
|
1473
1496
|
};
|
|
@@ -105,13 +105,13 @@ import {
|
|
|
105
105
|
verifyStackManifestSignature,
|
|
106
106
|
waitForHttpOk,
|
|
107
107
|
warnUnmanagedManifestServices
|
|
108
|
-
} from "./chunk-
|
|
108
|
+
} from "./chunk-TT5BBVLX.js";
|
|
109
109
|
import "./chunk-GHR4ZPJ7.js";
|
|
110
110
|
import "./chunk-C5HUMAA7.js";
|
|
111
111
|
import "./chunk-L25OAFOU.js";
|
|
112
|
-
import "./chunk-
|
|
112
|
+
import "./chunk-Y2HD2YB7.js";
|
|
113
113
|
import "./chunk-A7XLR3K7.js";
|
|
114
|
-
import "./chunk-
|
|
114
|
+
import "./chunk-4EG4DT4F.js";
|
|
115
115
|
import "./chunk-ZIG7VPJV.js";
|
|
116
116
|
import "./chunk-HSGBZSCA.js";
|
|
117
117
|
import "./chunk-RH4AH3YB.js";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
StewardGate
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-IZLML47J.js";
|
|
4
|
+
import "./chunk-66CGXQUA.js";
|
|
5
5
|
import "./chunk-BBMTVAE3.js";
|
|
6
6
|
import "./chunk-TKDITWDN.js";
|
|
7
7
|
import "./chunk-5YEUPUV4.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-AHNVFBVB.js";
|
|
9
9
|
import "./chunk-YYB5PMTK.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-L5CGXEZC.js";
|
|
11
|
+
import "./chunk-CL4J4757.js";
|
|
12
|
+
import "./chunk-ZQEJ4IX2.js";
|
|
13
13
|
import "./chunk-FXU7JOXK.js";
|
|
14
14
|
import "./chunk-ZIG7VPJV.js";
|
|
15
15
|
import "./chunk-HSGBZSCA.js";
|
|
@@ -1,76 +1,77 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildEmployeeBootBrief
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HHAKXIKX.js";
|
|
4
4
|
import "./chunk-HSFBNCNC.js";
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-LTUA5EYI.js";
|
|
6
|
+
import "./chunk-6FG34V6D.js";
|
|
7
|
+
import "./chunk-QV5CQLQH.js";
|
|
8
8
|
import "./chunk-QGGH7LOU.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-HHT527PV.js";
|
|
10
10
|
import "./chunk-VMHZSZQJ.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-CIEVY5TD.js";
|
|
12
|
+
import "./chunk-IK4344V5.js";
|
|
13
13
|
import "./chunk-CHCA3ZM2.js";
|
|
14
14
|
import "./chunk-OTVEIJUQ.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-RSABKW6B.js";
|
|
16
16
|
import {
|
|
17
17
|
resolveAgentAttribution
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-5DF4Y6EC.js";
|
|
19
19
|
import {
|
|
20
20
|
tryMarkSubagentBriefInjected
|
|
21
21
|
} from "./chunk-K4ESASPL.js";
|
|
22
22
|
import "./chunk-5MOYSU5A.js";
|
|
23
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-5QCIWWFA.js";
|
|
24
24
|
import "./chunk-76CJBM36.js";
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-3KDCORDO.js";
|
|
25
|
+
import "./chunk-KI7O64XV.js";
|
|
26
|
+
import "./chunk-4YUGB637.js";
|
|
27
|
+
import "./chunk-64ODONK2.js";
|
|
28
|
+
import "./chunk-C2UN464N.js";
|
|
29
|
+
import "./chunk-ZKGWHT56.js";
|
|
31
30
|
import "./chunk-WT4RI36X.js";
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-QAEWWYHL.js";
|
|
31
|
+
import "./chunk-TDF2XKLK.js";
|
|
34
32
|
import "./chunk-EIKATSE4.js";
|
|
35
33
|
import "./chunk-MJCSEIFI.js";
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-E23LNUWJ.js";
|
|
35
|
+
import "./chunk-ZMX22HSS.js";
|
|
38
36
|
import "./chunk-VI4ATC6I.js";
|
|
39
37
|
import "./chunk-A27Q27CT.js";
|
|
40
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-BZ546I4Q.js";
|
|
39
|
+
import "./chunk-3SRZNJKD.js";
|
|
41
40
|
import "./chunk-AJIXH5JF.js";
|
|
42
|
-
import "./chunk-
|
|
41
|
+
import "./chunk-YGVAKKGJ.js";
|
|
43
42
|
import "./chunk-GZOG2MAX.js";
|
|
44
43
|
import "./chunk-AM7S2TY6.js";
|
|
45
|
-
import "./chunk-
|
|
44
|
+
import "./chunk-QR3BUMOS.js";
|
|
46
45
|
import "./chunk-CVYC6DUW.js";
|
|
47
|
-
import "./chunk-
|
|
46
|
+
import "./chunk-WJC6AAJN.js";
|
|
48
47
|
import "./chunk-4IK2K3B3.js";
|
|
49
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-ZKJ5S23O.js";
|
|
49
|
+
import "./chunk-GPUOUUHA.js";
|
|
50
|
+
import "./chunk-BTSWFMEH.js";
|
|
50
51
|
import "./chunk-ZG62LIK3.js";
|
|
51
|
-
import "./chunk-
|
|
52
|
+
import "./chunk-IMYGYIAI.js";
|
|
52
53
|
import "./chunk-NLEW62VC.js";
|
|
53
|
-
import "./chunk-
|
|
54
|
+
import "./chunk-GPJIBLP4.js";
|
|
54
55
|
import "./chunk-V3WLC5TJ.js";
|
|
55
|
-
import "./chunk-
|
|
56
|
+
import "./chunk-AEUGIJDO.js";
|
|
56
57
|
import "./chunk-HYZV25LY.js";
|
|
57
58
|
import "./chunk-GJV3WDWM.js";
|
|
58
59
|
import "./chunk-MP2AFCGL.js";
|
|
59
|
-
import "./chunk-
|
|
60
|
+
import "./chunk-66CGXQUA.js";
|
|
60
61
|
import "./chunk-BBMTVAE3.js";
|
|
61
62
|
import "./chunk-TKDITWDN.js";
|
|
62
63
|
import "./chunk-5YEUPUV4.js";
|
|
63
|
-
import "./chunk-
|
|
64
|
+
import "./chunk-AHNVFBVB.js";
|
|
64
65
|
import "./chunk-YYB5PMTK.js";
|
|
65
|
-
import "./chunk-
|
|
66
|
-
import "./chunk-
|
|
67
|
-
import "./chunk-
|
|
66
|
+
import "./chunk-L5CGXEZC.js";
|
|
67
|
+
import "./chunk-CL4J4757.js";
|
|
68
|
+
import "./chunk-ZQEJ4IX2.js";
|
|
68
69
|
import "./chunk-FXU7JOXK.js";
|
|
69
70
|
import "./chunk-WNBZJSQT.js";
|
|
70
71
|
import "./chunk-HPXFKUGU.js";
|
|
71
|
-
import "./chunk-
|
|
72
|
+
import "./chunk-Y2HD2YB7.js";
|
|
72
73
|
import "./chunk-A7XLR3K7.js";
|
|
73
|
-
import "./chunk-
|
|
74
|
+
import "./chunk-4EG4DT4F.js";
|
|
74
75
|
import "./chunk-A7JYF4RG.js";
|
|
75
76
|
import "./chunk-ARX6TAGN.js";
|
|
76
77
|
import "./chunk-ZIG7VPJV.js";
|
|
@@ -89,7 +90,7 @@ async function buildSubagentBootstrapContext(payload, options = {}) {
|
|
|
89
90
|
return "";
|
|
90
91
|
}
|
|
91
92
|
try {
|
|
92
|
-
const { fastDbInit } = await import("./fast-db-init-
|
|
93
|
+
const { fastDbInit } = await import("./fast-db-init-GWUZ746B.js");
|
|
93
94
|
await fastDbInit({ caller: "hook" });
|
|
94
95
|
} catch {
|
|
95
96
|
}
|
|
@@ -10,27 +10,27 @@ import {
|
|
|
10
10
|
registerTriageBugReport,
|
|
11
11
|
registerTriageFeatureRequest,
|
|
12
12
|
registerTriageReview
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-BNWWVYRN.js";
|
|
14
|
+
import "./chunk-UWX6MMCX.js";
|
|
15
15
|
import "./chunk-4YNA3CM6.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-5DF4Y6EC.js";
|
|
17
17
|
import "./chunk-K4ESASPL.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-5QCIWWFA.js";
|
|
19
19
|
import "./chunk-CVYC6DUW.js";
|
|
20
20
|
import "./chunk-GJV3WDWM.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-66CGXQUA.js";
|
|
22
22
|
import "./chunk-BBMTVAE3.js";
|
|
23
23
|
import "./chunk-TKDITWDN.js";
|
|
24
24
|
import "./chunk-5YEUPUV4.js";
|
|
25
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-AHNVFBVB.js";
|
|
26
26
|
import "./chunk-YYB5PMTK.js";
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-L5CGXEZC.js";
|
|
28
|
+
import "./chunk-CL4J4757.js";
|
|
29
|
+
import "./chunk-ZQEJ4IX2.js";
|
|
30
30
|
import "./chunk-FXU7JOXK.js";
|
|
31
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-Y2HD2YB7.js";
|
|
32
32
|
import "./chunk-A7XLR3K7.js";
|
|
33
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-4EG4DT4F.js";
|
|
34
34
|
import "./chunk-ZIG7VPJV.js";
|
|
35
35
|
import "./chunk-HSGBZSCA.js";
|
|
36
36
|
import "./chunk-RH4AH3YB.js";
|
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
getOutboxStatus,
|
|
4
4
|
queueSupportStatusUpdateSync,
|
|
5
5
|
reconcileUpstreamStatus
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-7THUQU44.js";
|
|
7
7
|
import "./chunk-MMRUBN3I.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-5QCIWWFA.js";
|
|
9
9
|
import "./chunk-MLKGABMK.js";
|
|
10
10
|
export {
|
|
11
11
|
flushSupportOutbox as flushBugReportOutbox,
|
|
@@ -2,20 +2,26 @@ import {
|
|
|
2
2
|
DEFAULT_SWEEP_BUDGET_MS,
|
|
3
3
|
DEFAULT_SWEEP_RESCHEDULE_DELAY_MS,
|
|
4
4
|
createTimerPauseAccounting,
|
|
5
|
+
currentPauseStartMs,
|
|
6
|
+
isTimerPausedNow,
|
|
5
7
|
recordTimerPauseMs,
|
|
6
8
|
runBudgetedSweep,
|
|
7
9
|
runWithTimerPauseAccounting,
|
|
8
10
|
sweepPauseTotalMs,
|
|
9
|
-
sweepTickBudgetMs
|
|
10
|
-
|
|
11
|
+
sweepTickBudgetMs,
|
|
12
|
+
timerPauseIntervalsSince
|
|
13
|
+
} from "./chunk-ZKGWHT56.js";
|
|
11
14
|
import "./chunk-MLKGABMK.js";
|
|
12
15
|
export {
|
|
13
16
|
DEFAULT_SWEEP_BUDGET_MS,
|
|
14
17
|
DEFAULT_SWEEP_RESCHEDULE_DELAY_MS,
|
|
15
18
|
createTimerPauseAccounting,
|
|
19
|
+
currentPauseStartMs,
|
|
20
|
+
isTimerPausedNow,
|
|
16
21
|
recordTimerPauseMs,
|
|
17
22
|
runBudgetedSweep,
|
|
18
23
|
runWithTimerPauseAccounting,
|
|
19
24
|
sweepPauseTotalMs,
|
|
20
|
-
sweepTickBudgetMs
|
|
25
|
+
sweepTickBudgetMs,
|
|
26
|
+
timerPauseIntervalsSince
|
|
21
27
|
};
|