@askexenow/exe-os 0.9.396 → 0.9.397
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/stack-manifests/v0.9.json +134 -1
- package/dist/.dist-verified.json +3 -3
- package/dist/{active-agent-6CIFLMKA.js → active-agent-GHNUSBYO.js} +4 -4
- package/dist/{active-agent-7OKWCTDR.js → active-agent-GOCTWSHD.js} +4 -4
- package/dist/{agent-defs-generator-PZJGE6PL.js → agent-defs-generator-KKXWCDQR.js} +3 -3
- package/dist/{agentic-ontology-JTPDKIML.js → agentic-ontology-5JFHYHEN.js} +1 -1
- package/dist/{artifact-backup-Q7T3GQFO.js → artifact-backup-FDU7UQ5Z.js} +3 -3
- package/dist/{backfill-metadata-7QLL3FSG.js → backfill-metadata-OIVQN3GF.js} +7 -7
- package/dist/{background-jobs-V3DZRFKU.js → background-jobs-DXZXRPSE.js} +5 -1
- package/dist/{backup-verify-SCFVPBZH.js → backup-verify-ZKTVXYOK.js} +5 -5
- package/dist/{behavior-injection-CHSQWES4.js → behavior-injection-S2NBCHRK.js} +10 -10
- package/dist/{behavior-promotion-TCYWUNKR.js → behavior-promotion-WZIKTD3C.js} +9 -9
- package/dist/{behaviors-5FRO36HG.js → behaviors-T2N3VJS3.js} +8 -8
- package/dist/bin/age-ontology-load.js +1 -1
- package/dist/bin/agentic-ontology-backfill.js +9 -9
- package/dist/bin/agentic-reflection-backfill.js +10 -10
- package/dist/bin/agentic-semantic-label.js +9 -9
- package/dist/bin/backfill-conversations.js +7 -7
- package/dist/bin/backfill-responses.js +7 -7
- package/dist/bin/backfill-vectors.js +8 -8
- package/dist/bin/bulk-sync-postgres.js +17 -17
- package/dist/bin/cc-doctor.js +9 -9
- package/dist/bin/cleanup-stale-review-tasks.js +18 -18
- package/dist/bin/cli.js +28 -28
- package/dist/bin/deferred-daemon-restart.js +101 -100
- package/dist/bin/exe-actions.js +1 -1
- package/dist/bin/exe-agent-config.js +3 -3
- package/dist/bin/exe-agent.js +11 -11
- package/dist/bin/exe-assign.js +8 -8
- package/dist/bin/exe-boot.js +38 -38
- package/dist/bin/exe-call.js +8 -8
- package/dist/bin/exe-cloud.js +18 -18
- package/dist/bin/exe-config-dump.js +3 -3
- package/dist/bin/exe-dispatch.js +19 -19
- package/dist/bin/exe-doctor.js +6 -6
- 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 +9 -9
- package/dist/bin/exe-heartbeat.js +24 -24
- package/dist/bin/exe-kill.js +23 -23
- package/dist/bin/exe-launch-agent.js +31 -31
- package/dist/bin/exe-mcp.js +5 -5
- package/dist/bin/exe-memory-reads.js +7 -7
- package/dist/bin/exe-new-employee.js +11 -11
- package/dist/bin/exe-os-mcp-proxy.js +5 -5
- package/dist/bin/exe-pending-messages.js +19 -19
- package/dist/bin/exe-pending-notifications.js +18 -18
- package/dist/bin/exe-pending-reviews.js +19 -19
- package/dist/bin/exe-rename.js +6 -6
- package/dist/bin/exe-review.js +22 -22
- package/dist/bin/exe-search.js +9 -9
- package/dist/bin/exe-session-cleanup.js +24 -24
- package/dist/bin/exe-settings.js +17 -17
- package/dist/bin/exe-start-codex.js +18 -18
- package/dist/bin/exe-start-opencode.js +16 -16
- package/dist/bin/exe-status.js +20 -20
- package/dist/bin/exe-support.js +4 -4
- package/dist/bin/exe-team.js +5 -5
- package/dist/bin/git-sweep.js +22 -22
- package/dist/bin/graph-backfill.js +9 -9
- 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 +105 -104
- 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 +3 -3
- package/dist/bin/postgres-agentic-semantic-backfill.js +2 -2
- 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 +19 -19
- package/dist/bin/setup.js +2 -2
- package/dist/bin/shard-migrate.js +8 -8
- package/dist/bin/stack-update.js +8 -8
- package/dist/bin/verify-stack.js +1 -1
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{boot-generation-HBXSYBPC.js → boot-generation-SJQ7JNY7.js} +4 -4
- package/dist/{boot-review-sections-66P5JMRV.js → boot-review-sections-G33ATPSN.js} +17 -17
- package/dist/{bug-landed-reconciler-QIOAKAPY.js → bug-landed-reconciler-C4UHLQKA.js} +7 -7
- package/dist/build-manifest.json +943 -938
- package/dist/{capability-cards-6BANN36W.js → capability-cards-KD4UW5DR.js} +3 -3
- package/dist/{capacity-monitor-TIKUMNDU.js → capacity-monitor-RKLRCGOG.js} +19 -19
- package/dist/{catchup-brief-EVJS7D6C.js → catchup-brief-UHPPUIRL.js} +24 -24
- package/dist/{chunk-UALXBUDX.js → chunk-2DDXCN4A.js} +3 -3
- package/dist/{chunk-LVFD2DVI.js → chunk-2QF657OK.js} +3 -3
- package/dist/{chunk-H4QZCG4C.js → chunk-2SDTYPJ5.js} +1 -1
- package/dist/{chunk-SXBLRCQY.js → chunk-2WMPGRZV.js} +4 -4
- package/dist/{chunk-OGJCUMSM.js → chunk-2YESHX5N.js} +1 -1
- package/dist/{chunk-XOPIR34P.js → chunk-36WZEH4Z.js} +1 -1
- package/dist/{chunk-G7BVAQVT.js → chunk-3MK5RGIP.js} +1 -1
- package/dist/{chunk-ZTFNKVOM.js → chunk-3ODUTQG5.js} +2 -2
- package/dist/{chunk-WFKZZSEB.js → chunk-3QYMH77Q.js} +1 -1
- package/dist/{chunk-A7XLR3K7.js → chunk-3R7UDPVR.js} +1 -2
- package/dist/{chunk-Y7BP2MO2.js → chunk-44FX5OK6.js} +1 -1
- package/dist/{chunk-T6C6RT6R.js → chunk-4BC5DUD7.js} +3 -3
- package/dist/{chunk-7UCCSSJO.js → chunk-4MFPPHG4.js} +1 -1
- package/dist/{chunk-K3EU7B72.js → chunk-4Y5EKT3D.js} +5 -5
- package/dist/{chunk-IVGAATAY.js → chunk-5523XPQ5.js} +4 -4
- package/dist/{chunk-PGLASTLI.js → chunk-5BCJKGB3.js} +5 -5
- package/dist/{chunk-5RDMJ325.js → chunk-5DFDHMOD.js} +5 -5
- package/dist/{chunk-U4GMOT4M.js → chunk-5TAJDCZY.js} +49 -12
- package/dist/{chunk-55M4DF76.js → chunk-5UC27XF6.js} +2 -2
- package/dist/{chunk-3OG5LZRK.js → chunk-62MT4SAM.js} +1 -1
- package/dist/{chunk-EHFPSOLD.js → chunk-6G7CTQBF.js} +4 -4
- package/dist/{chunk-L2AUCHHJ.js → chunk-7KMFHVKB.js} +9 -9
- package/dist/{chunk-K6NJ7FAZ.js → chunk-ABDYYZSP.js} +33 -8
- package/dist/{chunk-JKUCAMV4.js → chunk-AFDVI6KB.js} +1 -1
- package/dist/{chunk-MOQBMEMW.js → chunk-AFYSK7BX.js} +4 -4
- package/dist/{chunk-BX336WRX.js → chunk-AMSNTFS4.js} +1 -1
- package/dist/{chunk-YQJC5ETC.js → chunk-AQZ3WYPU.js} +2 -2
- package/dist/{chunk-WUQSEZWR.js → chunk-AUZ4VPKO.js} +1 -1
- package/dist/{chunk-XFF6SPWG.js → chunk-AXGHNNOO.js} +1 -1
- package/dist/{chunk-TFVMRQCZ.js → chunk-AZRKNXMB.js} +4 -4
- package/dist/{chunk-BREDG6EG.js → chunk-BIHUXE5T.js} +9 -5
- package/dist/{chunk-GHCF7J4Q.js → chunk-BLZ2LEZF.js} +3 -3
- package/dist/{chunk-4CGMGUDL.js → chunk-BMGX4GUS.js} +28 -8
- package/dist/{chunk-Q7WMOEKA.js → chunk-BNLXWJLD.js} +39 -21
- package/dist/{chunk-RPOIKNJZ.js → chunk-C44UWID5.js} +1 -1
- package/dist/{chunk-HHNGQIP3.js → chunk-D73NQPRC.js} +6 -6
- package/dist/{chunk-FJPCVXQX.js → chunk-DFIH6ZZF.js} +1 -1
- package/dist/{chunk-VN27TCZE.js → chunk-DFNCYH7G.js} +2 -2
- package/dist/{chunk-RFIAHXTF.js → chunk-DNCEIP3G.js} +1 -1
- package/dist/{chunk-V5KLIBUV.js → chunk-DOMITJOC.js} +1 -1
- package/dist/{chunk-BKKZN3DJ.js → chunk-DQQTUIQJ.js} +7 -7
- package/dist/{chunk-CEKNYT2D.js → chunk-E7IALVOP.js} +12 -12
- package/dist/{chunk-656JZVNV.js → chunk-EK5EYX37.js} +3 -3
- package/dist/{chunk-WEW4TRBL.js → chunk-EPKJANA5.js} +1 -1
- package/dist/{chunk-M7DI6JWD.js → chunk-EZ2JLFDT.js} +169 -169
- package/dist/{chunk-G3KSUXEA.js → chunk-F63FRP7L.js} +1 -1
- package/dist/{chunk-I4DBM5ME.js → chunk-F6OV7JP2.js} +1 -1
- package/dist/{chunk-7WDLUCHN.js → chunk-FQMLNMUZ.js} +3 -3
- package/dist/{chunk-QQJI7JGN.js → chunk-FZPJBU3F.js} +4 -4
- package/dist/{chunk-DXQIIZQC.js → chunk-GAUMGWSQ.js} +12 -12
- package/dist/{chunk-LEA7VKPU.js → chunk-GGSXOKK6.js} +10 -10
- package/dist/{chunk-6VMVQ3G7.js → chunk-GTW56AUB.js} +57 -12
- package/dist/{chunk-X5FCZYWK.js → chunk-GUZOREJ4.js} +2 -2
- package/dist/{chunk-D2ZII4AG.js → chunk-GW67QP3K.js} +6 -6
- package/dist/{chunk-LNCTMU7Y.js → chunk-HNVYH2WE.js} +2 -2
- package/dist/{chunk-4NOGWIBA.js → chunk-HSEBRWE2.js} +3 -3
- package/dist/{chunk-B6CBN6EF.js → chunk-HWP3WCLC.js} +51 -4
- package/dist/{chunk-KBCUHYHP.js → chunk-I3MPYHFM.js} +2 -2
- package/dist/{chunk-Y5ZD4CTB.js → chunk-ITV2CEFW.js} +1 -1
- package/dist/{chunk-BJ3ZQAIL.js → chunk-IV63ZWK6.js} +1 -1
- package/dist/{chunk-6FWHAROQ.js → chunk-JI7TFGJY.js} +3 -3
- package/dist/{chunk-EHDAWQ5P.js → chunk-JO7ZJTFL.js} +1 -1
- package/dist/{chunk-5BUJW46U.js → chunk-K5FSX6H6.js} +104 -10
- package/dist/{chunk-LRAMTS6U.js → chunk-KAY2CDFK.js} +7 -7
- package/dist/{chunk-ZEYBEJBX.js → chunk-KDRYMX6M.js} +11 -11
- package/dist/{chunk-DXIMITSY.js → chunk-KOOURQVV.js} +3 -3
- package/dist/{chunk-5UUHXDX6.js → chunk-KPDKZEVT.js} +2 -2
- package/dist/{chunk-DSZM7OHM.js → chunk-M65DE5CO.js} +1 -1
- package/dist/{chunk-WDLJZKJK.js → chunk-M7P6GCXS.js} +3 -3
- package/dist/{chunk-LGNDHTDP.js → chunk-MB3XK7YW.js} +1 -1
- package/dist/{chunk-MGPEY7I2.js → chunk-MKHUI5UB.js} +1 -1
- package/dist/{chunk-JSOXH5HW.js → chunk-NW6XAQLN.js} +2 -2
- package/dist/{chunk-5AGOX2XD.js → chunk-O22YLZXQ.js} +1 -1
- package/dist/{chunk-WAPCTGGB.js → chunk-O2INE7WD.js} +1 -1
- package/dist/{chunk-6Q3M7KZE.js → chunk-OJ2OGGK2.js} +3 -3
- package/dist/{chunk-UWLWYGJJ.js → chunk-P25NNTN3.js} +1 -1
- package/dist/{chunk-V4JWFJZR.js → chunk-P4C3BX2L.js} +16 -16
- package/dist/{chunk-EG4ZUF4A.js → chunk-PAYDZ6J3.js} +2 -2
- package/dist/{chunk-ONYDMXRV.js → chunk-PSB3QGYL.js} +1 -1
- package/dist/{chunk-4CB4VETH.js → chunk-PTI2NYAM.js} +2 -2
- package/dist/{chunk-2NW4LRDU.js → chunk-QIMM3CSI.js} +92 -12
- package/dist/{chunk-OODTK35C.js → chunk-QKH64COS.js} +5 -5
- package/dist/{chunk-JVK6JYR4.js → chunk-QR7VJ5WB.js} +1 -1
- package/dist/{chunk-KM7M4LKN.js → chunk-QRWGGJAA.js} +3 -3
- package/dist/{chunk-F5VP7K3C.js → chunk-QTVEBBQT.js} +59 -12
- package/dist/{chunk-SUZWRZE5.js → chunk-RAPFF7J7.js} +1 -1
- package/dist/{chunk-TQJMG65I.js → chunk-RC6Q5KSW.js} +2 -2
- package/dist/{chunk-ONMKHJJL.js → chunk-RGPEUXOE.js} +7 -4
- package/dist/{chunk-45R4367S.js → chunk-ROOST7ZU.js} +1 -1
- package/dist/{chunk-GHIMWZN4.js → chunk-ROQ6R3FV.js} +1 -1
- package/dist/{chunk-YG6MHFUP.js → chunk-RWDU3OKM.js} +2 -2
- package/dist/{chunk-TQEW3RJ3.js → chunk-SC3QNY3H.js} +2 -2
- package/dist/{chunk-INLY2LLN.js → chunk-SDYIUXW7.js} +1 -1
- package/dist/{chunk-PAJ7FUTI.js → chunk-SH5IEP2Q.js} +1 -1
- package/dist/{chunk-RPV6CHKA.js → chunk-SKWDDWHT.js} +4 -4
- package/dist/{chunk-W6W6ED2D.js → chunk-T4LKMZKF.js} +1 -1
- package/dist/{chunk-PE7RXZQE.js → chunk-TFKVXWVG.js} +5 -5
- package/dist/{chunk-NTWCFT5X.js → chunk-TM2BQ6PS.js} +3 -3
- package/dist/{chunk-V7NXFHZM.js → chunk-TQDEHRVD.js} +1 -1
- package/dist/{chunk-S2Q2RXYQ.js → chunk-TRBSWP2V.js} +1 -1
- package/dist/{chunk-UW5KXM4D.js → chunk-TTHUPNBU.js} +1 -1
- package/dist/{chunk-VH4IRABX.js → chunk-TWHPVYBU.js} +4 -4
- package/dist/{chunk-JC3LUYW6.js → chunk-U67KLIPZ.js} +1 -1
- package/dist/{chunk-UVEDFARJ.js → chunk-UBFKX2AN.js} +13 -13
- package/dist/{chunk-7INEFMVU.js → chunk-UNFHKOTF.js} +44 -15
- package/dist/{chunk-B2P6OX3V.js → chunk-VESYCD2K.js} +3 -3
- package/dist/{chunk-VV7D7KEX.js → chunk-VRPXCQV6.js} +1 -1
- package/dist/{chunk-X2X3IGZU.js → chunk-W4H2MZAS.js} +17 -5
- package/dist/{chunk-FNVZAK4C.js → chunk-WO6KY2SP.js} +6 -6
- package/dist/{chunk-SLRKZRLC.js → chunk-WOG5XT2P.js} +1 -1
- package/dist/{chunk-4UOEKQF3.js → chunk-XG7OHNPA.js} +6 -6
- package/dist/{chunk-5YAXBLZR.js → chunk-XHSCV3BM.js} +1 -1
- package/dist/{chunk-DDYKAJMS.js → chunk-XJRF26L5.js} +1 -1
- package/dist/{chunk-3CAKKEEY.js → chunk-XWOEPR2Q.js} +2 -2
- package/dist/{chunk-7C4YKCUK.js → chunk-XYB7GHGV.js} +1 -1
- package/dist/{chunk-V4RIHICU.js → chunk-Y2DTTZCV.js} +26 -26
- package/dist/{chunk-GPB6X2OI.js → chunk-YBUSK4GH.js} +1 -1
- package/dist/{chunk-5M4UNU6O.js → chunk-YLY66VLU.js} +3 -3
- package/dist/{chunk-ZSFFCRVI.js → chunk-YPSS2SHD.js} +2 -2
- package/dist/{chunk-SSGIMXA6.js → chunk-YYPHTYOV.js} +3 -3
- package/dist/{chunk-OWPOJ6OG.js → chunk-ZBUUFS5G.js} +1 -1
- package/dist/{chunk-6OQ2TRZK.js → chunk-ZFDQJVKH.js} +8 -2
- package/dist/{cleanup-graph-garbage-AXNCBW5B.js → cleanup-graph-garbage-EPZIDN7L.js} +8 -8
- package/dist/{cli-shutdown-HIZRMWKR.js → cli-shutdown-DM5YVHIP.js} +1 -1
- package/dist/{cloud-sync-command-XYKKRYHG.js → cloud-sync-command-FNOSXKNT.js} +2 -2
- package/dist/{cloud-sync-db-init-GJ322ZNM.js → cloud-sync-db-init-5DIULXS2.js} +1 -1
- package/dist/{cloud-sync-shutdown-K4XBDTDB.js → cloud-sync-shutdown-RTTZ3C53.js} +3 -3
- package/dist/{co-activation-AQXLWFBQ.js → co-activation-7D34HSWC.js} +3 -3
- package/dist/{co-occurrence-O67PD32I.js → co-occurrence-7JJMQ3GI.js} +6 -6
- package/dist/{consent-passphrase-DTOZ7LIP.js → consent-passphrase-ZNB3GYWB.js} +2 -2
- package/dist/{conversation-entity-extractor-VRL2EEZQ.js → conversation-entity-extractor-YSNOVYBN.js} +3 -3
- package/dist/{crdt-sync-RPCGSGIE.js → crdt-sync-MHQ6XSMO.js} +4 -4
- package/dist/{crm-webhook-4QADMY7C.js → crm-webhook-WLFDORDH.js} +2 -2
- package/dist/{cto-delegation-gate-6N2R2VA2.js → cto-delegation-gate-KD5POZYX.js} +17 -17
- package/dist/{daemon-orchestration-ASCAZ63R.js → daemon-orchestration-3LRZCT6E.js} +25 -22
- package/dist/{daemon-restart-circuit-breaker-CD4VMCU7.js → daemon-restart-circuit-breaker-PY2MZL7Z.js} +1 -1
- package/dist/{db-integrity-events-7NKWS5MT.js → db-integrity-events-6363LLDT.js} +1 -1
- package/dist/{db-restore-events-XYL6CGPC.js → db-restore-events-R5S7XTHX.js} +47 -11
- package/dist/{doc-graph-extractor-VVSMYOR3.js → doc-graph-extractor-KNX2SMZH.js} +6 -6
- package/dist/{documents-5WNSGY3Q.js → documents-2QWQETQJ.js} +8 -8
- package/dist/{dreaming-2TPLO3TO.js → dreaming-AQHABHGO.js} +22 -22
- package/dist/{employee-boot-brief-MYXATLSU.js → employee-boot-brief-XJDE3JSJ.js} +26 -26
- package/dist/{entity-boost-BW62CICZ.js → entity-boost-T6WZN7UG.js} +1 -1
- package/dist/{exe-drift-PFFRJJTZ.js → exe-drift-NRQ36UMA.js} +4 -4
- package/dist/{exe-export-LL5SV6P2.js → exe-export-ET4SWQ3K.js} +9 -9
- package/dist/{exe-import-LSQMDFDX.js → exe-import-DSMF6Z6O.js} +9 -9
- package/dist/{exe-key-266A5GJN.js → exe-key-UUMREJEU.js} +101 -100
- package/dist/{exe-org-T5DQXHGZ.js → exe-org-GV72LHO5.js} +36 -36
- package/dist/{exe-snapshot-LMMGFX7O.js → exe-snapshot-EQG3R45R.js} +25 -25
- package/dist/{fast-db-init-6MQDCHEB.js → fast-db-init-YRCNKGFD.js} +1 -1
- package/dist/{founder-context-6Q6OU7Q7.js → founder-context-3X5JFEQQ.js} +3 -3
- package/dist/{founder-monitor-envelope-RBSOSB6K.js → founder-monitor-envelope-OYRYJZBS.js} +4 -4
- package/dist/{fts-integrity-PHCKKOBC.js → fts-integrity-PL7TKYTM.js} +1 -1
- package/dist/gateway/index.js +21 -21
- package/dist/{gateway-client-4GHRSWHK.js → gateway-client-R3XZHUNA.js} +1 -1
- package/dist/{git-staleness-APYCKV4V.js → git-staleness-JWTUU3B7.js} +3 -3
- package/dist/{global-procedures-HYFE2UTQ.js → global-procedures-GUCIJGTG.js} +5 -5
- package/dist/{graph-auto-extract-LFXYAEY5.js → graph-auto-extract-SGRQ37NU.js} +6 -6
- package/dist/{graph-query-4F4D4NDH.js → graph-query-ABAIG6YK.js} +1 -1
- package/dist/{graph-rag-YZNY6Z3H.js → graph-rag-DB5SXSJ6.js} +3 -3
- package/dist/{hook-integrity-KNCDGZUD.js → hook-integrity-AGQSJJGP.js} +1 -1
- package/dist/{hook-prefetch-ZBUCJBJB.js → hook-prefetch-GUBRFD5N.js} +18 -18
- package/dist/hooks/bug-report-worker.js +22 -22
- package/dist/hooks/codex-stop-task-finalizer.js +24 -24
- package/dist/hooks/commit-complete.js +22 -22
- 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 +21 -21
- package/dist/hooks/pre-tool-use.js +2 -2
- package/dist/hooks/prompt-submit.js +39 -39
- package/dist/hooks/session-end.js +26 -26
- package/dist/hooks/session-start.js +18 -18
- package/dist/hooks/stop.js +24 -24
- package/dist/hooks/subagent-stop.js +23 -23
- package/dist/hooks/summary-worker.js +25 -25
- package/dist/index.js +29 -29
- package/dist/{installer-TNTAEKCO.js → installer-IRALYZ4O.js} +7 -7
- package/dist/{installer-MABZRBTF.js → installer-KC5BRKQD.js} +7 -7
- package/dist/{installer-ZWGREGIY.js → installer-W2REG4OT.js} +7 -7
- package/dist/{intercom-queue-UHL4MXLB.js → intercom-queue-WJ52Y7ZM.js} +17 -17
- package/dist/lib/cloud-sync.js +17 -17
- 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 +1 -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 +90 -90
- 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 +3 -3
- package/dist/lib/messaging.js +18 -18
- 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 +19 -19
- package/dist/lib/tmux-routing.js +17 -17
- package/dist/lib/token-spend.js +4 -4
- package/dist/lib/workflow-drift.js +270 -0
- package/dist/lib/ws-client.js +1 -1
- package/dist/{license-gate-PJVMRJFR.js → license-gate-YAA3BFTG.js} +4 -4
- package/dist/{license-recheck-5PXGSCSR.js → license-recheck-WOVNBY54.js} +1 -1
- package/dist/{license-sync-YCV3GMHN.js → license-sync-4GBRQ3NQ.js} +3 -3
- package/dist/mcp/register-tools.js +100 -99
- package/dist/mcp/server.js +100 -99
- 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 +21 -21
- 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 +21 -21
- package/dist/mcp/tools/send-message.js +20 -20
- package/dist/mcp/tools/update-task.js +20 -20
- package/dist/{mcp-http-config-TZLMIQDV.js → mcp-http-config-JJFHT7EU.js} +5 -5
- package/dist/{mcp-session-identity-FQUOB5SF.js → mcp-session-identity-AA24Y7M7.js} +17 -17
- package/dist/{memory-cards-BH53SM42.js → memory-cards-FE7CH766.js} +7 -7
- package/dist/{memory-graph-extractor-I6WXM5IC.js → memory-graph-extractor-XALPE33I.js} +7 -7
- package/dist/{memory-maintenance-CD2PUBDK.js → memory-maintenance-42VRD746.js} +1 -1
- package/dist/{memory-poisoning-defense-CC6RGH6M.js → memory-poisoning-defense-R7T4ZQBO.js} +3 -3
- package/dist/{memory-pressure-watchdog-CDEOMXDR.js → memory-pressure-watchdog-YR7OOVNY.js} +18 -18
- package/dist/{memory-reflection-VXFXG55L.js → memory-reflection-SU57VEBT.js} +7 -7
- package/dist/{memory-write-repository-NLQLH4UL.js → memory-write-repository-AZFMYNFE.js} +1 -1
- package/dist/{monitor-grants-6VWM3J3S.js → monitor-grants-EQOXKY44.js} +3 -3
- package/dist/{monitor-identity-YPFRT4AT.js → monitor-identity-QO7YCJ45.js} +2 -2
- package/dist/{notification-ledger-2GIT6AZ7.js → notification-ledger-BYBU427R.js} +18 -18
- package/dist/{notifications-LHDV4WKP.js → notifications-7EBPEORY.js} +17 -17
- package/dist/{orchestration-events-ABHTWWN4.js → orchestration-events-UWSAFL25.js} +4 -4
- package/dist/{orchestrator-N7FCY6H2.js → orchestrator-T3LSQK7S.js} +19 -19
- package/dist/{org-brief-session-O6YNFSX3.js → org-brief-session-4VXN7UFY.js} +15 -15
- package/dist/{org-consent-policy-FJH3KTAL.js → org-consent-policy-X4ZEAHIR.js} +5 -5
- package/dist/{org-join-55WN6YRL.js → org-join-2GRVJWCW.js} +11 -11
- package/dist/{org-key-admin-FFMICGMY.js → org-key-admin-Q54ZASNY.js} +13 -13
- package/dist/{org-key-epoch-RKOF3H2A.js → org-key-epoch-F3XYALXK.js} +5 -5
- package/dist/{org-key-pin-SMZS3GE3.js → org-key-pin-3ZKOEYQS.js} +3 -3
- package/dist/{org-membership-7VBJJBGO.js → org-membership-3EHM5TDB.js} +4 -4
- package/dist/{org-partner-config-7LOXIBW5.js → org-partner-config-N32CQSIW.js} +8 -8
- package/dist/{org-partner-runtime-CIFSQNOI.js → org-partner-runtime-S7Q4W5I5.js} +15 -15
- package/dist/{org-row-visibility-EBN7EI6C.js → org-row-visibility-IUOZSB56.js} +1 -1
- package/dist/{pipeline-router-VETNF3MF.js → pipeline-router-GCAJZN4H.js} +4 -4
- package/dist/{plan-limits-7NDDDRHR.js → plan-limits-N5TAWTKK.js} +7 -7
- package/dist/{pre-tool-use-impl-GIVQWE6Q.js → pre-tool-use-impl-VCHU3RAP.js} +33 -33
- package/dist/{project-name-5D6ZQNAY.js → project-name-2GN2XXVD.js} +4 -4
- package/dist/{projection-worker-4BB4ZN3S.js → projection-worker-3GKE4WEE.js} +2 -2
- package/dist/{prospective-memory-WUK4ZEVR.js → prospective-memory-TYA3TWQD.js} +3 -3
- package/dist/{push-notifications-UZQLJGEY.js → push-notifications-NKOXRWUY.js} +18 -18
- package/dist/{reproject-worktree-memories-XFUKN3ZC.js → reproject-worktree-memories-OPUWR2K2.js} +17 -17
- package/dist/{reranker-6F6Y7QHA.js → reranker-IYVEMKHW.js} +1 -1
- package/dist/{retrieval-health-SCFZCV7Q.js → retrieval-health-BIGTBGIP.js} +2 -2
- package/dist/{review-polling-CFDLKJE4.js → review-polling-ZLIBMKW4.js} +18 -18
- package/dist/runtime/index.js +21 -21
- package/dist/{seat-benefit-VDQJYJOB.js → seat-benefit-YEUQBNCS.js} +2 -2
- package/dist/{session-events-4SCVQUMA.js → session-events-H5T2UBTK.js} +18 -18
- package/dist/{session-kill-telemetry-OBBCVT3O.js → session-kill-telemetry-AHUOYQEM.js} +18 -18
- package/dist/{session-scope-LDRY5PBO.js → session-scope-KVIRKTX7.js} +17 -17
- package/dist/{setup-wizard-LS6BNHYK.js → setup-wizard-5VRFHYUR.js} +2 -2
- package/dist/{shard-manager-7X42DNFE.js → shard-manager-TPRWCONR.js} +2 -2
- package/dist/{skill-refinement-B4EGDBE2.js → skill-refinement-2IOY2TOP.js} +4 -4
- package/dist/{skill-retrieval-2ZHX6EQZ.js → skill-retrieval-55KMSROF.js} +11 -11
- package/dist/{skill-usage-DO6M6W5E.js → skill-usage-JCSBXOM6.js} +4 -4
- package/dist/{stack-generate-manifest-H2YBCYRW.js → stack-generate-manifest-HDZZ5ZRU.js} +5 -5
- package/dist/{stack-promote-WOATPAGM.js → stack-promote-OLIJI4GI.js} +5 -5
- package/dist/{stack-release-BAD4BTHF.js → stack-release-QBLVY2ZF.js} +6 -11
- package/dist/{stack-update-H3YXPL7Z.js → stack-update-JHPGK6AM.js} +4 -4
- package/dist/{steward-gate-T2XM2NE4.js → steward-gate-2YQ6DOO3.js} +4 -4
- package/dist/{subagent-brief-injection-5B2XWRZI.js → subagent-brief-injection-BKSHRUTQ.js} +28 -28
- package/dist/{support-bug-actions-GQYF373N.js → support-bug-actions-G2I77EPX.js} +4 -4
- package/dist/{support-inbox-WYWKDLFI.js → support-inbox-FP44VIA4.js} +14 -14
- package/dist/{task-enforcement-IIWZPEHF.js → task-enforcement-MJSY7ZZF.js} +18 -18
- package/dist/{task-request-inbox-GYK2XLSB.js → task-request-inbox-AZUGPSW6.js} +5 -5
- package/dist/{task-scope-YHXKRO2Y.js → task-scope-NF7JKUD7.js} +17 -17
- package/dist/{tasks-crud-BHG6IQ5Z.js → tasks-crud-SRP4GIL2.js} +17 -17
- package/dist/{tasks-notify-PX22TSMC.js → tasks-notify-VP3ZRTKA.js} +18 -18
- package/dist/{tasks-review-6BPGUXJB.js → tasks-review-ASOST3JT.js} +17 -17
- package/dist/{telemetry-upload-HCV4KRB6.js → telemetry-upload-KIMFENPR.js} +9 -9
- package/dist/{token-budget-YVIX2L2Y.js → token-budget-47HHAV2D.js} +4 -4
- package/dist/{tool-telemetry-JWI2CHI3.js → tool-telemetry-D6DUOQHB.js} +1 -1
- package/dist/tui/App.js +27 -27
- package/dist/{tui-data-E5EA34WJ.js → tui-data-3Y2DUC57.js} +21 -21
- package/dist/{update-support-JCUIC5J2.js → update-support-5G5P4ZGV.js} +12 -12
- package/dist/{whatsapp-XRTRUPFR.js → whatsapp-KGOFKMVE.js} +2 -2
- package/dist/{wiki-acl-PKJLSR6U.js → wiki-acl-CXFMQHKZ.js} +1 -1
- package/dist/{work-claims-BB6S6QU5.js → work-claims-O2WSV3EK.js} +4 -4
- package/dist/{work-state-heartbeat-O2SS2VWD.js → work-state-heartbeat-EPJZICCW.js} +1 -1
- package/dist/{workflow-engine-XWQS7VBY.js → workflow-engine-MVMZIOEQ.js} +2 -2
- package/dist/{worktree-F3TKPS5Z.js → worktree-DIXUIFXS.js} +5 -5
- package/dist/{worktree-sweep-OF4ST7IR.js → worktree-sweep-ZKPAO5EG.js} +10 -6
- package/package.json +2 -1
- package/release-notes.json +27 -7
- package/stack.release.json +3 -3
- /package/dist/{chunk-PKPJ62VF.js → chunk-3JRVKBF2.js} +0 -0
- /package/dist/{chunk-CEPUA7JC.js → chunk-BTIXHM2F.js} +0 -0
- /package/dist/{chunk-W3DHPCFX.js → chunk-FMCLWB6A.js} +0 -0
- /package/dist/{chunk-XDZWSK3F.js → chunk-GASLH556.js} +0 -0
- /package/dist/{chunk-MQNHXT54.js → chunk-GZL3DOGB.js} +0 -0
- /package/dist/{chunk-4D7SDPAB.js → chunk-MBZXKIG3.js} +0 -0
- /package/dist/{chunk-KY5XPFMA.js → chunk-OJ7SLC5P.js} +0 -0
- /package/dist/{chunk-CULFTILF.js → chunk-ONXR3HDH.js} +0 -0
- /package/dist/{chunk-MFRU5TLH.js → chunk-RICCASG5.js} +0 -0
- /package/dist/{chunk-I3F7MGSI.js → chunk-RYXW24OR.js} +0 -0
- /package/dist/{chunk-GNFWZ2MA.js → chunk-TXMGX6U2.js} +0 -0
- /package/dist/{chunk-NRR6VAG2.js → chunk-X7VWZ4ZI.js} +0 -0
- /package/dist/{chunk-W7S7AEVC.js → chunk-ZZBQO44I.js} +0 -0
- /package/dist/{core-memory-Z4FUMYA6.js → core-memory-LDOO2QBB.js} +0 -0
- /package/dist/{memory-isolation-PDFRPDVY.js → memory-isolation-JVIFSPYK.js} +0 -0
- /package/dist/{oauth-server-TM5XWRX3.js → oauth-server-N22SJWOH.js} +0 -0
- /package/dist/{project-boot-VFW3KDOY.js → project-boot-46E2KI2Y.js} +0 -0
|
@@ -24,6 +24,12 @@ function ensureDirs() {
|
|
|
24
24
|
function now() {
|
|
25
25
|
return (/* @__PURE__ */ new Date()).toISOString();
|
|
26
26
|
}
|
|
27
|
+
function sleepSyncMs(ms) {
|
|
28
|
+
try {
|
|
29
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
30
|
+
} catch {
|
|
31
|
+
}
|
|
32
|
+
}
|
|
27
33
|
function isAlive(pid) {
|
|
28
34
|
if (!pid || pid <= 0) return false;
|
|
29
35
|
try {
|
|
@@ -33,15 +39,32 @@ function isAlive(pid) {
|
|
|
33
39
|
return false;
|
|
34
40
|
}
|
|
35
41
|
}
|
|
42
|
+
var jobsFileReaderForTests = null;
|
|
43
|
+
function __setJobsFileReaderForTests(fn) {
|
|
44
|
+
jobsFileReaderForTests = fn;
|
|
45
|
+
}
|
|
46
|
+
var activeJobHeartbeatsForTests = /* @__PURE__ */ new Map();
|
|
47
|
+
function __triggerHeartbeatForTests(id) {
|
|
48
|
+
return activeJobHeartbeatsForTests.get(id)?.();
|
|
49
|
+
}
|
|
36
50
|
function readJobsRaw() {
|
|
37
51
|
ensureDirs();
|
|
38
52
|
if (!existsSync(JOBS_FILE)) return [];
|
|
53
|
+
let raw;
|
|
39
54
|
try {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
55
|
+
raw = (jobsFileReaderForTests ?? ((p) => readFileSync(p, "utf8")))(JOBS_FILE);
|
|
56
|
+
} catch (err) {
|
|
57
|
+
if (err.code === "ENOENT") return [];
|
|
58
|
+
throw err;
|
|
44
59
|
}
|
|
60
|
+
const parsed = JSON.parse(raw);
|
|
61
|
+
if (!Array.isArray(parsed)) {
|
|
62
|
+
throw new Error(`[background-jobs] ${JOBS_FILE} did not parse to an array of job records`);
|
|
63
|
+
}
|
|
64
|
+
return parsed;
|
|
65
|
+
}
|
|
66
|
+
function unreadableJobsNote(err) {
|
|
67
|
+
return `[background-jobs] ${JOBS_FILE} exists but could not be read (${err instanceof Error ? err.message : String(err)})`;
|
|
45
68
|
}
|
|
46
69
|
function writeJobsRaw(jobs) {
|
|
47
70
|
ensureDirs();
|
|
@@ -126,7 +149,16 @@ function startManagedJob(options) {
|
|
|
126
149
|
lowPriority
|
|
127
150
|
};
|
|
128
151
|
const upsert = (patch) => {
|
|
129
|
-
|
|
152
|
+
let jobs;
|
|
153
|
+
try {
|
|
154
|
+
jobs = readJobsRaw().filter((j) => j.id !== id);
|
|
155
|
+
} catch (err) {
|
|
156
|
+
process.stderr.write(
|
|
157
|
+
`${unreadableJobsNote(err)}; skipping this job-registry update rather than rewriting the file with only this job.
|
|
158
|
+
`
|
|
159
|
+
);
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
130
162
|
Object.assign(record, patch, { updatedAt: now() });
|
|
131
163
|
writeJobsRaw([...jobs, record]);
|
|
132
164
|
const file = lockPath(options.type);
|
|
@@ -134,14 +166,46 @@ function startManagedJob(options) {
|
|
|
134
166
|
writeFileSync(file, JSON.stringify({ pid: process.pid, jobId: id, updatedAt: record.updatedAt }, null, 2) + "\n");
|
|
135
167
|
} catch {
|
|
136
168
|
}
|
|
169
|
+
return true;
|
|
170
|
+
};
|
|
171
|
+
const isTerminalStatus = (s) => s !== "running" && s !== "stale";
|
|
172
|
+
let finalized = false;
|
|
173
|
+
const finalize = () => {
|
|
174
|
+
if (finalized) return;
|
|
175
|
+
finalized = true;
|
|
176
|
+
clearInterval(timer);
|
|
177
|
+
activeJobHeartbeatsForTests.delete(id);
|
|
178
|
+
releaseJobLock(options.type);
|
|
179
|
+
};
|
|
180
|
+
const heartbeatTick = () => {
|
|
181
|
+
const wrote = upsert({ lastHeartbeatAt: now() });
|
|
182
|
+
if (wrote && isTerminalStatus(record.status)) finalize();
|
|
183
|
+
return wrote;
|
|
137
184
|
};
|
|
138
185
|
upsert({});
|
|
139
|
-
const timer = setInterval(() =>
|
|
186
|
+
const timer = setInterval(() => {
|
|
187
|
+
heartbeatTick();
|
|
188
|
+
}, 3e4);
|
|
140
189
|
timer.unref?.();
|
|
190
|
+
activeJobHeartbeatsForTests.set(id, heartbeatTick);
|
|
191
|
+
const TERMINAL_WRITE_MAX_ATTEMPTS = 5;
|
|
192
|
+
const TERMINAL_WRITE_BACKOFF_MS = 30;
|
|
141
193
|
const cleanup = (status, error) => {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
194
|
+
let wrote = false;
|
|
195
|
+
for (let attempt = 0; attempt < TERMINAL_WRITE_MAX_ATTEMPTS && !wrote; attempt++) {
|
|
196
|
+
if (attempt > 0) sleepSyncMs(TERMINAL_WRITE_BACKOFF_MS * attempt);
|
|
197
|
+
wrote = upsert({ status, error, lastHeartbeatAt: now() });
|
|
198
|
+
}
|
|
199
|
+
if (!wrote) {
|
|
200
|
+
record.status = status;
|
|
201
|
+
if (error !== void 0) record.error = error;
|
|
202
|
+
process.stderr.write(
|
|
203
|
+
`[background-jobs] terminal status "${status}" for job ${id} could not be persisted after ${TERMINAL_WRITE_MAX_ATTEMPTS} attempts; leaving the heartbeat running so a later tick retries it.
|
|
204
|
+
`
|
|
205
|
+
);
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
finalize();
|
|
145
209
|
};
|
|
146
210
|
process.once("SIGTERM", () => {
|
|
147
211
|
cleanup("cancelled");
|
|
@@ -151,7 +215,7 @@ function startManagedJob(options) {
|
|
|
151
215
|
cleanup("cancelled");
|
|
152
216
|
process.exit(130);
|
|
153
217
|
});
|
|
154
|
-
process.once("exit",
|
|
218
|
+
process.once("exit", finalize);
|
|
155
219
|
return {
|
|
156
220
|
id,
|
|
157
221
|
update(progress) {
|
|
@@ -248,7 +312,14 @@ function enforceBackgroundJobGuardrails(options = {}) {
|
|
|
248
312
|
const cancelAt = options.cancelCpuPercent ?? 180;
|
|
249
313
|
const cancelAfter = options.cancelAfterStrikes ?? 2;
|
|
250
314
|
const staleAfter = options.heartbeatStaleMs ?? 5 * 6e4;
|
|
251
|
-
|
|
315
|
+
let jobs;
|
|
316
|
+
try {
|
|
317
|
+
jobs = readJobsRaw();
|
|
318
|
+
} catch (err) {
|
|
319
|
+
process.stderr.write(`${unreadableJobsNote(err)}; no guardrail actions taken this pass.
|
|
320
|
+
`);
|
|
321
|
+
return [];
|
|
322
|
+
}
|
|
252
323
|
const actions = [];
|
|
253
324
|
let changed = false;
|
|
254
325
|
const ts = now();
|
|
@@ -306,7 +377,14 @@ async function enforceBackgroundJobGuardrailsAsync(options = {}) {
|
|
|
306
377
|
const cancelAt = options.cancelCpuPercent ?? 180;
|
|
307
378
|
const cancelAfter = options.cancelAfterStrikes ?? 2;
|
|
308
379
|
const staleAfter = options.heartbeatStaleMs ?? 5 * 6e4;
|
|
309
|
-
|
|
380
|
+
let jobs;
|
|
381
|
+
try {
|
|
382
|
+
jobs = readJobsRaw();
|
|
383
|
+
} catch (err) {
|
|
384
|
+
process.stderr.write(`${unreadableJobsNote(err)}; no guardrail actions taken this pass.
|
|
385
|
+
`);
|
|
386
|
+
return [];
|
|
387
|
+
}
|
|
310
388
|
const actions = [];
|
|
311
389
|
let changed = false;
|
|
312
390
|
const ts = now();
|
|
@@ -368,6 +446,8 @@ async function enforceBackgroundJobGuardrailsAsync(options = {}) {
|
|
|
368
446
|
}
|
|
369
447
|
|
|
370
448
|
export {
|
|
449
|
+
__setJobsFileReaderForTests,
|
|
450
|
+
__triggerHeartbeatForTests,
|
|
371
451
|
listBackgroundJobs,
|
|
372
452
|
acquireJobLock,
|
|
373
453
|
releaseJobLock,
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import {
|
|
2
2
|
recordSessionKill
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YLY66VLU.js";
|
|
4
4
|
import {
|
|
5
5
|
sessionScopeFilter,
|
|
6
6
|
verifyPaneAtCapacity,
|
|
7
7
|
writeNotification
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-Y2DTTZCV.js";
|
|
9
9
|
import {
|
|
10
10
|
listSessions
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-DFIH6ZZF.js";
|
|
12
12
|
import {
|
|
13
13
|
getTransport
|
|
14
14
|
} from "./chunk-VI4ATC6I.js";
|
|
15
15
|
import {
|
|
16
16
|
recordOrchestrationEventBestEffort
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-2YESHX5N.js";
|
|
18
18
|
import {
|
|
19
19
|
getClient,
|
|
20
20
|
isCoordinatorName
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-GAUMGWSQ.js";
|
|
22
22
|
|
|
23
23
|
// src/lib/capacity-monitor.ts
|
|
24
24
|
var CAPACITY_PATTERNS = [
|
|
@@ -3,16 +3,16 @@ import {
|
|
|
3
3
|
getClient,
|
|
4
4
|
isInitialized,
|
|
5
5
|
loadEmployees
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-GAUMGWSQ.js";
|
|
7
7
|
import {
|
|
8
8
|
checkLicense,
|
|
9
9
|
isFeatureAllowed,
|
|
10
10
|
readPersonalFreeGrandfatherState,
|
|
11
11
|
resolveClientLimits
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-GTW56AUB.js";
|
|
13
13
|
import {
|
|
14
14
|
PLAN_LIMITS
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-3R7UDPVR.js";
|
|
16
16
|
import {
|
|
17
17
|
EXE_AI_DIR
|
|
18
18
|
} from "./chunk-MMS2HBRT.js";
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
getGitRootAsync,
|
|
5
5
|
isWorktreeDirty,
|
|
6
6
|
isWorktreeDirtyAsync
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-TTHUPNBU.js";
|
|
8
8
|
|
|
9
9
|
// src/lib/worktree-sweep.ts
|
|
10
10
|
import { execFile } from "child_process";
|
|
@@ -193,17 +193,63 @@ async function detectMainBranch(repoRoot) {
|
|
|
193
193
|
}
|
|
194
194
|
return null;
|
|
195
195
|
}
|
|
196
|
-
|
|
196
|
+
var MERGED_PR_BULK_LIMIT = 500;
|
|
197
|
+
async function ghBulkPrLookup(repoRoot, mainBranch) {
|
|
197
198
|
try {
|
|
198
|
-
const { stdout
|
|
199
|
+
const { stdout } = await execFileAsync(
|
|
200
|
+
"gh",
|
|
201
|
+
[
|
|
202
|
+
"pr",
|
|
203
|
+
"list",
|
|
204
|
+
"--state",
|
|
205
|
+
"merged",
|
|
206
|
+
"--base",
|
|
207
|
+
mainBranch,
|
|
208
|
+
"--json",
|
|
209
|
+
"headRefName,headRefOid,mergedAt,baseRefName",
|
|
210
|
+
"--limit",
|
|
211
|
+
String(MERGED_PR_BULK_LIMIT)
|
|
212
|
+
],
|
|
213
|
+
{ cwd: repoRoot, encoding: "utf8", timeout: GIT_TIMEOUT_MS }
|
|
214
|
+
);
|
|
215
|
+
return JSON.parse(stdout);
|
|
216
|
+
} catch {
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
async function buildMergedPrCache(repoRoot, mainBranch, lookup = ghBulkPrLookup) {
|
|
221
|
+
const records = await lookup(repoRoot, mainBranch);
|
|
222
|
+
if (records === null) return null;
|
|
223
|
+
const cache = /* @__PURE__ */ new Map();
|
|
224
|
+
for (const record of records) {
|
|
225
|
+
if (record.baseRefName !== mainBranch) continue;
|
|
226
|
+
const existing = cache.get(record.headRefName);
|
|
227
|
+
if (!existing || (record.mergedAt ?? "") >= (existing.mergedAt ?? "")) {
|
|
228
|
+
cache.set(record.headRefName, record);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return cache;
|
|
232
|
+
}
|
|
233
|
+
async function currentBranchTip(repoRoot, branch) {
|
|
234
|
+
try {
|
|
235
|
+
const { stdout } = await execFileAsync("git", ["rev-parse", "--verify", `refs/heads/${branch}^{commit}`], {
|
|
199
236
|
cwd: repoRoot,
|
|
200
237
|
encoding: "utf8",
|
|
201
238
|
timeout: GIT_TIMEOUT_MS
|
|
202
239
|
});
|
|
203
|
-
return
|
|
240
|
+
return stdout.trim() || null;
|
|
204
241
|
} catch {
|
|
205
|
-
return
|
|
242
|
+
return null;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
async function getBranchLandedState(repoRoot, branch, mainBranch, prCache = null) {
|
|
246
|
+
const record = prCache?.get(branch);
|
|
247
|
+
if (!record || record.baseRefName !== mainBranch) return "unknown";
|
|
248
|
+
const tip = await currentBranchTip(repoRoot, branch);
|
|
249
|
+
if (tip && record.headRefOid === tip) {
|
|
250
|
+
return "merged";
|
|
206
251
|
}
|
|
252
|
+
return "unknown";
|
|
207
253
|
}
|
|
208
254
|
async function hasLiveTmuxSession(agentName) {
|
|
209
255
|
try {
|
|
@@ -370,6 +416,7 @@ Archived by worktree-sweep after ${DIRTY_ORPHAN_MAX_AGE_MS / 864e5}-day dirty or
|
|
|
370
416
|
async function sweepWorktrees(options = {}) {
|
|
371
417
|
const dryRun = options.dryRun ?? false;
|
|
372
418
|
const repoPaths = options.repoPaths ?? discoverRepoPaths();
|
|
419
|
+
const prLookup = options.prLookup;
|
|
373
420
|
const result = {
|
|
374
421
|
reposScanned: 0,
|
|
375
422
|
removed: [],
|
|
@@ -384,6 +431,7 @@ async function sweepWorktrees(options = {}) {
|
|
|
384
431
|
result.reposScanned++;
|
|
385
432
|
const repoName = path.basename(repoRoot);
|
|
386
433
|
const mainBranch = await detectMainBranch(repoRoot);
|
|
434
|
+
const prCache = mainBranch ? await buildMergedPrCache(repoRoot, mainBranch, prLookup) : null;
|
|
387
435
|
if (!dryRun) {
|
|
388
436
|
await pruneWorktreeRegistry(repoRoot);
|
|
389
437
|
}
|
|
@@ -460,14 +508,11 @@ async function sweepWorktrees(options = {}) {
|
|
|
460
508
|
});
|
|
461
509
|
continue;
|
|
462
510
|
}
|
|
463
|
-
const
|
|
511
|
+
const landedState = mainBranch ? await getBranchLandedState(repoRoot, wt.branch, mainBranch, prCache) : "unknown";
|
|
512
|
+
const isMerged = landedState === "merged";
|
|
464
513
|
if (dryRun) {
|
|
465
514
|
result.removed.push({ repo: repoName, worktree: wtName, branch: wt.branch });
|
|
466
|
-
|
|
467
|
-
result.branchesDeleted.push({ repo: repoName, branch: wt.branch, remote: true });
|
|
468
|
-
} else {
|
|
469
|
-
result.branchesDeleted.push({ repo: repoName, branch: wt.branch, remote: false });
|
|
470
|
-
}
|
|
515
|
+
result.branchesDeleted.push({ repo: repoName, branch: wt.branch, remote: isMerged });
|
|
471
516
|
continue;
|
|
472
517
|
}
|
|
473
518
|
const removed = await removeWorktree(repoRoot, wt.path);
|
|
@@ -480,7 +525,7 @@ async function sweepWorktrees(options = {}) {
|
|
|
480
525
|
`);
|
|
481
526
|
const localDeleted = await deleteBranch(repoRoot, wt.branch);
|
|
482
527
|
let remoteDeleted = false;
|
|
483
|
-
if (localDeleted) {
|
|
528
|
+
if (localDeleted && isMerged) {
|
|
484
529
|
remoteDeleted = await deleteRemoteBranch(repoRoot, wt.branch);
|
|
485
530
|
}
|
|
486
531
|
if (localDeleted) {
|
|
@@ -548,6 +593,8 @@ async function getWorktreeBranch(repoRoot, wtPath) {
|
|
|
548
593
|
export {
|
|
549
594
|
discoverRepoPaths,
|
|
550
595
|
discoverRepoPathsAsync,
|
|
596
|
+
buildMergedPrCache,
|
|
597
|
+
getBranchLandedState,
|
|
551
598
|
isWorktreePathOccupiedByCwd,
|
|
552
599
|
sweepWorktrees,
|
|
553
600
|
cleanupAgentWorktree
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
exportRawPublicKey,
|
|
3
3
|
privateKeyFromScalar
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-F6OV7JP2.js";
|
|
5
5
|
import {
|
|
6
6
|
getMasterKey
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-O22YLZXQ.js";
|
|
8
8
|
|
|
9
9
|
// src/lib/partner-seal-identity.ts
|
|
10
10
|
import crypto from "crypto";
|
|
@@ -411,7 +411,7 @@ function assessObservation(raw) {
|
|
|
411
411
|
if (observation.length < MIN_OBSERVATION_CHARS) {
|
|
412
412
|
return deny2(
|
|
413
413
|
"manual_observation_too_thin",
|
|
414
|
-
"verification requires
|
|
414
|
+
"verification requires verification_observation describing the defect's absence"
|
|
415
415
|
);
|
|
416
416
|
}
|
|
417
417
|
if (VERDICT_ONLY_OBSERVATION.test(observation) || HEDGED_OBSERVATION.test(observation)) {
|
|
@@ -530,6 +530,9 @@ function assessVerificationArtifact(raw, context = {}) {
|
|
|
530
530
|
if (!str3(artifact.test_id)) {
|
|
531
531
|
return deny2(
|
|
532
532
|
"test_fix_missing_assertion",
|
|
533
|
+
// Bug 7dc91bf6: already fixed on main (this message names regression_test_id,
|
|
534
|
+
// the MCP tool parameter, instead of the wire artifact's internal `test_id`
|
|
535
|
+
// field) — kept as-is here rather than re-litigated.
|
|
533
536
|
"defect_layer=test_harness requires regression_test_id \u2014 name the test whose behaviour is the evidence"
|
|
534
537
|
);
|
|
535
538
|
}
|
|
@@ -575,7 +578,7 @@ function assessVerificationArtifact(raw, context = {}) {
|
|
|
575
578
|
const verifierResult = assessVerifier(artifact.verifier, context);
|
|
576
579
|
if (!verifierResult.ok) return verifierResult;
|
|
577
580
|
if (!str3(artifact.method)) {
|
|
578
|
-
return deny2("artifact_malformed", "manual verification requires
|
|
581
|
+
return deny2("artifact_malformed", "manual verification requires verification_method");
|
|
579
582
|
}
|
|
580
583
|
const observationResult = assessObservation(artifact.observation);
|
|
581
584
|
if (!observationResult.ok) return observationResult;
|
|
@@ -1018,7 +1021,7 @@ function buildVerificationArtifact(request, context = {}) {
|
|
|
1018
1021
|
);
|
|
1019
1022
|
}
|
|
1020
1023
|
const testId = (request.test_id ?? "").trim();
|
|
1021
|
-
if (!testId) return fail("artifact_malformed", "regression_test requires
|
|
1024
|
+
if (!testId) return fail("artifact_malformed", "regression_test requires regression_test_id (e.g. 'tests/foo.test.ts::rejects empty scope')");
|
|
1022
1025
|
const parentResult = (request.parent_result ?? "").trim();
|
|
1023
1026
|
const fixResult = (request.fix_result ?? "").trim();
|
|
1024
1027
|
if (parentResult !== "fail" && parentResult !== "pass" && parentResult !== "error") {
|
|
@@ -1046,7 +1049,7 @@ function buildVerificationArtifact(request, context = {}) {
|
|
|
1046
1049
|
if (!verifierCheck.ok) return verifierCheck.result;
|
|
1047
1050
|
const verifier = verifierCheck.verifier;
|
|
1048
1051
|
const method = (request.method ?? "").trim();
|
|
1049
|
-
if (!method) return fail("artifact_malformed", "manual verification requires a method someone else could repeat");
|
|
1052
|
+
if (!method) return fail("artifact_malformed", "manual verification requires verification_method \u2014 a method someone else could repeat");
|
|
1050
1053
|
const observation = (request.observation ?? "").replace(/\s+/g, " ").trim();
|
|
1051
1054
|
if (LOW_CONTENT_OBSERVATION.test(observation)) {
|
|
1052
1055
|
return fail(
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
behaviorTruncationNotice
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KOOURQVV.js";
|
|
4
4
|
import {
|
|
5
5
|
countActiveBehaviors,
|
|
6
6
|
listBehaviors
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-HNVYH2WE.js";
|
|
8
8
|
import {
|
|
9
9
|
loadConfigSync
|
|
10
10
|
} from "./chunk-MMS2HBRT.js";
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
} from "./chunk-IZWMWJZT.js";
|
|
4
4
|
import {
|
|
5
5
|
isGhostBehaviorRow
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-HNVYH2WE.js";
|
|
7
7
|
import {
|
|
8
8
|
IdentityConflictError,
|
|
9
9
|
getClient,
|
|
10
10
|
getIdentity,
|
|
11
11
|
listIdentities,
|
|
12
12
|
updateIdentity
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-GAUMGWSQ.js";
|
|
14
14
|
import {
|
|
15
15
|
atomicWriteJsonSync
|
|
16
16
|
} from "./chunk-HSGBZSCA.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
shutdownCli
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MBZXKIG3.js";
|
|
4
4
|
import {
|
|
5
5
|
fastDbInit
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-X7VWZ4ZI.js";
|
|
7
7
|
import {
|
|
8
8
|
sessionScopeFilter
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-Y2DTTZCV.js";
|
|
10
10
|
import {
|
|
11
11
|
formatStatusAll,
|
|
12
12
|
formatStatusDeep,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
getClient,
|
|
18
18
|
isCoordinatorRole,
|
|
19
19
|
loadEmployees
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-GAUMGWSQ.js";
|
|
21
21
|
import {
|
|
22
22
|
isMainModule
|
|
23
23
|
} from "./chunk-6Y4B3QF6.js";
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
import {
|
|
22
22
|
formatDegradations,
|
|
23
23
|
getRetrievalHealth
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-BMGX4GUS.js";
|
|
25
25
|
import {
|
|
26
26
|
resolveAnthropicAuth
|
|
27
27
|
} from "./chunk-VGMACSEV.js";
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
import {
|
|
32
32
|
offloadReadIfMain,
|
|
33
33
|
repairFtsTable
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-GAUMGWSQ.js";
|
|
35
35
|
|
|
36
36
|
// src/bin/exe-doctor.ts
|
|
37
37
|
import os from "os";
|
|
@@ -680,7 +680,7 @@ function auditHookOwnership() {
|
|
|
680
680
|
}
|
|
681
681
|
async function auditShards() {
|
|
682
682
|
try {
|
|
683
|
-
const { auditShardHealth } = await import("./shard-manager-
|
|
683
|
+
const { auditShardHealth } = await import("./shard-manager-TPRWCONR.js");
|
|
684
684
|
const report = await auditShardHealth();
|
|
685
685
|
return {
|
|
686
686
|
total: report.total,
|
|
@@ -1265,7 +1265,7 @@ function shouldFixShards(shards) {
|
|
|
1265
1265
|
return shards.unreadable > 0 || shards.schemaMismatches > 0;
|
|
1266
1266
|
}
|
|
1267
1267
|
async function fixShards(dryRun) {
|
|
1268
|
-
const { auditShardHealth } = await import("./shard-manager-
|
|
1268
|
+
const { auditShardHealth } = await import("./shard-manager-TPRWCONR.js");
|
|
1269
1269
|
const report = await auditShardHealth({ repair: true, dryRun });
|
|
1270
1270
|
return {
|
|
1271
1271
|
total: report.total,
|
|
@@ -1340,7 +1340,7 @@ async function main(argv = process.argv.slice(2)) {
|
|
|
1340
1340
|
console.log(formatRestartReport(restartReport));
|
|
1341
1341
|
return emptyAuditReport();
|
|
1342
1342
|
}
|
|
1343
|
-
const { fastDbInit } = await import("./fast-db-init-
|
|
1343
|
+
const { fastDbInit } = await import("./fast-db-init-YRCNKGFD.js");
|
|
1344
1344
|
const client = await fastDbInit();
|
|
1345
1345
|
const report = await runAudit(client, flags);
|
|
1346
1346
|
console.log(formatReport(report, flags));
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
withScopedReadWindow
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-AQZ3WYPU.js";
|
|
4
4
|
import {
|
|
5
5
|
requireOrgPartnerBinding,
|
|
6
6
|
resolvePartnerIdentities
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4Y5EKT3D.js";
|
|
8
8
|
import {
|
|
9
9
|
allocateOutboundSeq,
|
|
10
10
|
approveBriefManually,
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
sealMailboxEnvelope,
|
|
23
23
|
unrecordedText,
|
|
24
24
|
verifyManifest
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-D73NQPRC.js";
|
|
26
26
|
import {
|
|
27
27
|
queueMailboxDeposit
|
|
28
28
|
} from "./chunk-3FGBBJYM.js";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildSystemStateMemoryTypeExclusion
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-P4C3BX2L.js";
|
|
4
4
|
import {
|
|
5
5
|
sessionScopeFilter
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-Y2DTTZCV.js";
|
|
7
7
|
import {
|
|
8
8
|
getClient,
|
|
9
9
|
getIdentity
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-GAUMGWSQ.js";
|
|
11
11
|
import {
|
|
12
12
|
getEmotionalBaseline
|
|
13
13
|
} from "./chunk-WAAGVFFN.js";
|
|
@@ -646,7 +646,7 @@ var DreamingEngine = class {
|
|
|
646
646
|
}
|
|
647
647
|
let overdueProspective = [];
|
|
648
648
|
try {
|
|
649
|
-
const { getOverdueProspective, completeProspective } = await import("./prospective-memory-
|
|
649
|
+
const { getOverdueProspective, completeProspective } = await import("./prospective-memory-TYA3TWQD.js");
|
|
650
650
|
const overdue = await getOverdueProspective(agentId);
|
|
651
651
|
overdueProspective = overdue.map((o) => ({
|
|
652
652
|
id: o.id,
|