@askexenow/exe-os 0.9.409 → 0.9.411
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 +408 -1
- package/dist/.dist-verified.json +3 -3
- package/dist/{active-agent-5AKPW2N7.js → active-agent-3YCLS7GB.js} +4 -4
- package/dist/{active-agent-2AMJC3SC.js → active-agent-MHWQDMML.js} +4 -4
- package/dist/agent-defs-generator-DNXMO34I.js +32 -0
- package/dist/{agentic-ontology-6RS7A7KP.js → agentic-ontology-RA6CMND6.js} +1 -1
- package/dist/{artifact-backup-6O4FNYPS.js → artifact-backup-EETHNFFP.js} +3 -3
- package/dist/{backfill-metadata-6YX6LGPJ.js → backfill-metadata-WYT257VG.js} +7 -7
- package/dist/backup-verify-AG54CYGR.js +62 -0
- package/dist/{behavior-injection-NRXTNROW.js → behavior-injection-G7GAUHGO.js} +10 -10
- package/dist/{behavior-promotion-MW7OQ72V.js → behavior-promotion-I2DIUFUR.js} +9 -9
- package/dist/{behaviors-7AOK44QK.js → behaviors-SKVKPCRW.js} +8 -8
- package/dist/bin/agentic-ontology-backfill.js +8 -8
- package/dist/bin/agentic-reflection-backfill.js +9 -9
- package/dist/bin/agentic-semantic-label.js +8 -8
- package/dist/bin/backfill-conversations.js +7 -7
- package/dist/bin/backfill-responses.js +7 -7
- package/dist/bin/backfill-vectors.js +7 -7
- package/dist/bin/bulk-sync-postgres.js +16 -16
- package/dist/bin/cc-doctor.js +8 -8
- package/dist/bin/cleanup-stale-review-tasks.js +13 -16
- package/dist/bin/cli.js +24 -24
- package/dist/bin/deferred-daemon-restart.js +97 -97
- package/dist/bin/exe-actions.js +1 -1
- package/dist/bin/exe-agent-config.js +3 -3
- package/dist/bin/exe-agent.js +12 -12
- package/dist/bin/exe-assign.js +8 -8
- package/dist/bin/exe-boot.js +35 -38
- package/dist/bin/exe-call.js +9 -9
- package/dist/bin/exe-cloud.js +26 -22
- package/dist/bin/exe-config-dump.js +3 -3
- package/dist/bin/exe-dispatch.js +14 -17
- package/dist/bin/exe-doctor.js +5 -5
- package/dist/bin/exe-export-behaviors.js +12 -12
- package/dist/bin/exe-forget.js +12 -12
- package/dist/bin/exe-gateway.js +9 -9
- package/dist/bin/exe-grant.js +6 -6
- package/dist/bin/exe-healthcheck.js +8 -8
- package/dist/bin/exe-heartbeat.js +19 -22
- package/dist/bin/exe-kill.js +18 -21
- package/dist/bin/exe-launch-agent.js +264 -110
- 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 +14 -17
- package/dist/bin/exe-pending-notifications.js +13 -16
- package/dist/bin/exe-pending-reviews.js +14 -17
- package/dist/bin/exe-rename.js +7 -7
- package/dist/bin/exe-review.js +17 -20
- package/dist/bin/exe-search.js +11 -11
- package/dist/bin/exe-session-cleanup.js +18 -21
- package/dist/bin/exe-settings.js +16 -16
- package/dist/bin/exe-start-codex.js +37 -19
- package/dist/bin/exe-start-opencode.js +35 -17
- package/dist/bin/exe-status.js +15 -18
- package/dist/bin/exe-support.js +3 -3
- package/dist/bin/exe-team.js +5 -5
- package/dist/bin/git-sweep.js +15 -17
- package/dist/bin/graph-backfill.js +8 -8
- package/dist/bin/graph-export.js +8 -8
- package/dist/bin/hooks-cli.js +1 -1
- package/dist/bin/import-history.js +11 -11
- package/dist/bin/install.js +99 -99
- package/dist/bin/intercom-check.js +5 -5
- package/dist/bin/mcp-sessions.js +2 -2
- package/dist/bin/orchestration-metrics.js +5 -5
- package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
- package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
- package/dist/bin/pre-publish.js +1 -1
- package/dist/bin/reconcile-backlog.js +2 -2
- package/dist/bin/registry-proxy.js +1 -1
- package/dist/bin/repair-document-chunks.js +7 -7
- package/dist/bin/scan-tasks.js +14 -17
- package/dist/bin/setup.js +2 -2
- package/dist/bin/shard-migrate.js +8 -8
- package/dist/bin/stack-update.js +4 -4
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{boot-generation-HG6LLZLY.js → boot-generation-RPJVFAQJ.js} +4 -4
- package/dist/{boot-review-sections-STZ5EAIL.js → boot-review-sections-FOPPZTJI.js} +12 -15
- package/dist/{bug-landed-reconciler-EO72HUI2.js → bug-landed-reconciler-FN5KPBRK.js} +6 -6
- package/dist/build-info.json +3 -3
- package/dist/build-manifest.json +997 -987
- package/dist/{capability-cards-C3SMHB2E.js → capability-cards-YQWBEG7A.js} +3 -3
- package/dist/{capacity-monitor-UI553HRL.js → capacity-monitor-7SMEJHYG.js} +14 -17
- package/dist/{catchup-brief-VE2X4HML.js → catchup-brief-IBQ26LEB.js} +21 -23
- package/dist/{chunk-6ZW6BRI4.js → chunk-27NG2NTG.js} +2 -2
- package/dist/{chunk-EIM7OGTD.js → chunk-2BOLFLAU.js} +4 -2
- package/dist/{chunk-DM4VTXM6.js → chunk-2EYVXUGA.js} +4 -4
- package/dist/{chunk-LMF2YC5C.js → chunk-2YFMBXUU.js} +4 -4
- package/dist/{chunk-C426MZMD.js → chunk-2YGBJHC2.js} +3 -3
- package/dist/{chunk-6EY6OFBC.js → chunk-353XF4LU.js} +2 -2
- package/dist/{chunk-VMHZSZQJ.js → chunk-3ARSKDHC.js} +52 -0
- package/dist/{chunk-ZYOIH5NY.js → chunk-3DXAJVXE.js} +6 -6
- package/dist/{chunk-HFSFWMID.js → chunk-3GGMHSY2.js} +3 -3
- package/dist/{chunk-BM467PZN.js → chunk-3N24FV22.js} +1 -1
- package/dist/{chunk-SY53PYLU.js → chunk-47YGEM4N.js} +1 -1
- package/dist/{chunk-NVM3SKJ4.js → chunk-4CN3EE6U.js} +27 -21
- package/dist/{chunk-KIJRAZWR.js → chunk-4J77TCTX.js} +1 -1
- package/dist/{chunk-NHQWPKX7.js → chunk-54STF27U.js} +2 -2
- package/dist/{chunk-Q4GS5VW7.js → chunk-5BWDUUMH.js} +3 -3
- package/dist/{chunk-VYKXRSHU.js → chunk-5ZMNFSHV.js} +1 -1
- package/dist/{chunk-HNGAM3U4.js → chunk-657I6PUF.js} +3 -3
- package/dist/{chunk-OE7TAEOG.js → chunk-6777GNWI.js} +1 -1
- package/dist/{chunk-HYZV25LY.js → chunk-67IVG6CB.js} +1 -11
- package/dist/{chunk-5N34MMKS.js → chunk-6APOLYIZ.js} +43 -3
- package/dist/{chunk-TBYWOHTE.js → chunk-6BD6JYR2.js} +1 -1
- package/dist/{chunk-JJYAETCO.js → chunk-6DMURUBY.js} +4 -4
- package/dist/{chunk-W5XAB2SW.js → chunk-6HJF7IA3.js} +273 -206
- package/dist/{chunk-HRKN3DQE.js → chunk-6J2J3VJS.js} +11 -11
- package/dist/{chunk-XFGS22VE.js → chunk-6PXFF6IV.js} +1 -1
- package/dist/{chunk-RZ23QQCI.js → chunk-7HLAYQRG.js} +4 -4
- package/dist/{chunk-IUBCS6TA.js → chunk-7KPZQ65I.js} +3 -3
- package/dist/{chunk-SYUJCVJG.js → chunk-7PDZBPGW.js} +1 -1
- package/dist/{chunk-VLAENYCN.js → chunk-7SHU5MOD.js} +1 -1
- package/dist/{chunk-6RRPVE5O.js → chunk-A5I2GYVQ.js} +3 -3
- package/dist/{chunk-X4V5ZLNX.js → chunk-A75TAU2I.js} +628 -4
- package/dist/{chunk-SGR4ZQAV.js → chunk-BE3UETW6.js} +3 -3
- package/dist/{chunk-GG73NHZD.js → chunk-BG6RAOCJ.js} +63 -9
- package/dist/{chunk-DMYJVGQM.js → chunk-BIPTWAEO.js} +1 -1
- package/dist/{chunk-B3ISLIKE.js → chunk-BLTXAUP6.js} +2 -2
- package/dist/{chunk-G2M7WQ2M.js → chunk-CBC3JCIF.js} +1 -1
- package/dist/{chunk-FJKUFMNF.js → chunk-CFFSHBQF.js} +1 -1
- package/dist/{chunk-WYNIWJRN.js → chunk-CJ6CS2IH.js} +5 -5
- package/dist/{chunk-7LTAA55U.js → chunk-CRW63CDI.js} +1 -1
- package/dist/{chunk-BHDDDNC6.js → chunk-CWHTUNJX.js} +2 -2
- package/dist/{chunk-FZT4VQP7.js → chunk-D6NZNUVH.js} +1 -1
- package/dist/{chunk-GKPPLIMJ.js → chunk-DHLJZDWI.js} +4 -4
- package/dist/{chunk-JR3GTBV3.js → chunk-DRHTRVDT.js} +1 -1
- package/dist/{chunk-GTRB6DGI.js → chunk-DWRULKB3.js} +2 -2
- package/dist/{chunk-DIKLSAJE.js → chunk-EOWJXCYC.js} +25 -7
- package/dist/{chunk-4W7Y67B5.js → chunk-EWDBWOCX.js} +1 -1
- package/dist/{chunk-EHILXBVT.js → chunk-FPF2PJFK.js} +3 -3
- package/dist/{chunk-BPBEJD7U.js → chunk-FSXMKIDO.js} +1 -1
- package/dist/{chunk-E2Z3F26R.js → chunk-FUDXITKX.js} +1 -1
- package/dist/{chunk-SFGFNJBR.js → chunk-FYV2CTKP.js} +1 -1
- package/dist/{chunk-4M24XCTI.js → chunk-GATAYYAF.js} +53 -7
- package/dist/{chunk-L5CPS34O.js → chunk-GHYHNHDL.js} +1 -1
- package/dist/{chunk-OISOA6NX.js → chunk-GL5ZG72X.js} +1 -1
- package/dist/{chunk-XAGIZVYI.js → chunk-GM4UEZDE.js} +181 -1625
- package/dist/{chunk-4O7OUBEX.js → chunk-GZVFHFO3.js} +27 -140
- package/dist/{chunk-M4N7I2H5.js → chunk-HA6BIZ6L.js} +5 -5
- package/dist/chunk-HDQAVAV6.js +248 -0
- package/dist/{chunk-IPANAGA3.js → chunk-HDV2V25K.js} +1 -1
- package/dist/{chunk-XGPBHKU3.js → chunk-HTFM7ZDD.js} +2 -2
- package/dist/{chunk-KPLMY2GT.js → chunk-HUHR5CKJ.js} +4 -4
- package/dist/{chunk-IPBNHPTE.js → chunk-IC2AONBH.js} +9 -9
- package/dist/{chunk-23XUZHB7.js → chunk-IHAXXDBH.js} +245 -36
- package/dist/{chunk-4S6H2NWS.js → chunk-IPUDXR67.js} +1 -1
- package/dist/{chunk-UXJAW4IQ.js → chunk-J6U4ZR77.js} +2 -2
- package/dist/{chunk-7I6KVKFF.js → chunk-JAIZCE6W.js} +3 -3
- package/dist/{chunk-SA66WRBT.js → chunk-JGBYZTWH.js} +1 -1
- package/dist/{chunk-HRYWB4TO.js → chunk-JJZZXEAN.js} +3 -3
- package/dist/{chunk-IZ24HRDC.js → chunk-JNULO6I5.js} +3 -3
- package/dist/{chunk-YVS77JPW.js → chunk-JTJP4JK7.js} +3 -3
- package/dist/{chunk-BIV4IHED.js → chunk-JW5NUXPN.js} +15 -28
- package/dist/{chunk-NFNM64A7.js → chunk-K2HIXAIF.js} +22 -18
- package/dist/{chunk-F5ZRHLG5.js → chunk-KEDZRQI3.js} +2 -2
- package/dist/{chunk-QPMKVSHU.js → chunk-KN5GAVCG.js} +2 -2
- package/dist/{chunk-3MDUKF3N.js → chunk-L5JFVK5T.js} +5 -4
- package/dist/{chunk-FBZ32BD4.js → chunk-LBSCOP25.js} +1 -1
- package/dist/{chunk-K7DAE2HO.js → chunk-LLZUL7M2.js} +19 -6
- package/dist/{chunk-PCFYNK7V.js → chunk-LQGLGSBY.js} +2 -2
- package/dist/{chunk-APVU4Q5B.js → chunk-LSHUX7P4.js} +16 -16
- package/dist/{chunk-GRAMRMWS.js → chunk-M6AX64J2.js} +2 -2
- package/dist/{chunk-52Z435PH.js → chunk-M6SUJLNP.js} +15 -10
- package/dist/{chunk-GPWXUU3L.js → chunk-MZNLQC6W.js} +1 -1
- package/dist/{chunk-G3ZYXXO7.js → chunk-N7POJZJT.js} +10 -10
- package/dist/{chunk-DE2V7547.js → chunk-NCNT2C2P.js} +2 -2
- package/dist/{chunk-HK7HIDXP.js → chunk-O3BLL6MY.js} +1 -1
- package/dist/{chunk-YLWKWEJJ.js → chunk-O6KQAJCC.js} +3 -3
- package/dist/{chunk-QUK3UDZV.js → chunk-OHHZNNUD.js} +1 -1
- package/dist/{chunk-6JLVCMKH.js → chunk-PDQGR5LZ.js} +1 -1
- package/dist/{chunk-LE3DIA25.js → chunk-PTF5TB6O.js} +3 -3
- package/dist/{chunk-KBHK2WNO.js → chunk-PYXXL7N7.js} +1 -1
- package/dist/{chunk-QK3Z4TKQ.js → chunk-Q6KUBP6R.js} +5 -5
- package/dist/{chunk-NDCW4G55.js → chunk-QJWLQXR7.js} +1 -1
- package/dist/{chunk-ME733Y2F.js → chunk-QOFQY7BJ.js} +37 -9
- package/dist/{chunk-HFXBL7XE.js → chunk-QSW5DHMZ.js} +1 -1
- package/dist/{chunk-OFT5KSBM.js → chunk-QV26G2BF.js} +1 -1
- package/dist/{chunk-LVEMYNYH.js → chunk-RHHEYC6H.js} +3 -3
- package/dist/{chunk-QYIR64RR.js → chunk-RHJOTGEU.js} +1 -1
- package/dist/{chunk-HUMNRJZE.js → chunk-RJIH7JXM.js} +4 -4
- package/dist/{chunk-6TB7UXCA.js → chunk-RMC2A6EE.js} +1 -1
- package/dist/{chunk-XCPD7NGP.js → chunk-RYMXD2NT.js} +1 -1
- package/dist/{chunk-W2VDJKTB.js → chunk-RYYFFCJG.js} +1 -1
- package/dist/{chunk-YUAOQJVV.js → chunk-SINIRUYZ.js} +101 -9
- package/dist/{chunk-R7QZXQPU.js → chunk-SXUABANK.js} +216 -147
- package/dist/{backup-verify-QIAQ63VC.js → chunk-T3AM52YT.js} +411 -90
- package/dist/{chunk-NK4JHJNP.js → chunk-TCBWHLKH.js} +4 -4
- package/dist/{chunk-R6CKQLEA.js → chunk-TS4LSNRI.js} +2 -2
- package/dist/{chunk-4Q7H3TO7.js → chunk-TVWYMOZ4.js} +1 -1
- package/dist/{chunk-TCV3WA5I.js → chunk-VAHQOIQY.js} +1 -1
- package/dist/{chunk-ZEHBSA25.js → chunk-VQQPYI4X.js} +1 -1
- package/dist/{chunk-PZDAPIQL.js → chunk-VS7V5HNO.js} +1 -1
- package/dist/{chunk-7R7KDRKV.js → chunk-W7VKGB42.js} +1 -1
- package/dist/{chunk-M7774YLB.js → chunk-WC44PNZU.js} +1 -1
- package/dist/{chunk-3AL2LO3L.js → chunk-WHUQ44F2.js} +1 -1
- package/dist/{chunk-4RQ62XXK.js → chunk-X2ZHCNNB.js} +5 -5
- package/dist/{chunk-T2PAFWRK.js → chunk-X4FHT6ST.js} +5 -5
- package/dist/{chunk-N3JEYUDV.js → chunk-XC5OASHV.js} +1 -1
- package/dist/{agent-defs-generator-QN3J6FVJ.js → chunk-XDOCXKHW.js} +61 -21
- package/dist/{chunk-OEHZ46WQ.js → chunk-XEAZJXMZ.js} +2 -2
- package/dist/{chunk-DACRR362.js → chunk-XQ7BIVLI.js} +6 -6
- package/dist/{chunk-7P2TDFZL.js → chunk-Z3LGAFMG.js} +1 -1
- package/dist/{chunk-GEQQGN3J.js → chunk-ZJ6AMC4Y.js} +7 -7
- package/dist/{chunk-IURGBN5B.js → chunk-ZZR2WRNW.js} +4 -4
- package/dist/{cleanup-graph-garbage-NKAJSCWZ.js → cleanup-graph-garbage-SYGPMPUM.js} +8 -8
- package/dist/{cli-shutdown-F3DFDCB5.js → cli-shutdown-JI7CASE4.js} +1 -1
- package/dist/{cloud-sync-command-3YBLSMAL.js → cloud-sync-command-ZV3P5FP6.js} +2 -2
- package/dist/{cloud-sync-db-init-JWSPAFKY.js → cloud-sync-db-init-RQIHWKV4.js} +1 -1
- package/dist/{cloud-sync-shutdown-4R6RIO67.js → cloud-sync-shutdown-V2N7VLD3.js} +3 -3
- package/dist/{co-activation-2ZRANV3Q.js → co-activation-SRE6DIRX.js} +3 -3
- package/dist/{co-occurrence-6EELW2L2.js → co-occurrence-F5TMSEQZ.js} +6 -6
- package/dist/{consent-passphrase-TDR263MC.js → consent-passphrase-MWZRHJRC.js} +2 -2
- package/dist/content-extractor-GWF2T7FK.js +13 -0
- package/dist/{conversation-entity-extractor-KUJN3MOH.js → conversation-entity-extractor-XMOUHGMT.js} +3 -3
- package/dist/{crdt-sync-IX43KVQ3.js → crdt-sync-FXEKABM7.js} +4 -4
- package/dist/{crm-webhook-GSCIW6CE.js → crm-webhook-D6IJOPRQ.js} +2 -2
- package/dist/{cto-delegation-gate-ZWD4EFRR.js → cto-delegation-gate-BU3JRCYN.js} +12 -15
- package/dist/{daemon-orchestration-WL6V4QL4.js → daemon-orchestration-K4NKFYXO.js} +19 -21
- package/dist/{destructive-data-guard-JDUJ2ULM.js → destructive-data-guard-3TGAAE7K.js} +77 -23
- package/dist/{doc-graph-extractor-NJ7ZZC2C.js → doc-graph-extractor-TVK2NGAR.js} +6 -6
- package/dist/{documents-O7WYZFFE.js → documents-MDZ4VB5X.js} +8 -8
- package/dist/{dreaming-TUESPDT3.js → dreaming-L24PSS35.js} +17 -20
- package/dist/{employee-boot-brief-UCP6QLN4.js → employee-boot-brief-GQVL3FQC.js} +23 -25
- package/dist/{entity-boost-TK43XT24.js → entity-boost-OMFA5QCG.js} +2 -2
- package/dist/{exe-drift-QD6LUZT2.js → exe-drift-JDDG3OPT.js} +4 -4
- package/dist/{exe-export-QIUNHFSS.js → exe-export-EEGIE3JP.js} +10 -10
- package/dist/{exe-import-3UFOLHEW.js → exe-import-UJNC5Q2L.js} +10 -10
- package/dist/{exe-key-D5NDKGHT.js → exe-key-TYEY4W4E.js} +97 -97
- package/dist/{exe-org-UWDJBOCV.js → exe-org-B3ICTTEV.js} +32 -32
- package/dist/{exe-snapshot-P6SFODEN.js → exe-snapshot-VBFBONYN.js} +20 -23
- package/dist/{fast-db-init-SD7JZSEC.js → fast-db-init-TFRTK6EH.js} +1 -1
- package/dist/{founder-context-QIXDZIJX.js → founder-context-3X4QUWKD.js} +2 -2
- package/dist/{founder-monitor-envelope-TLOC4UYG.js → founder-monitor-envelope-54UNZNY4.js} +4 -4
- package/dist/gateway/index.js +11 -11
- package/dist/{gateway-client-CQTSYJLP.js → gateway-client-OUDO5GGV.js} +1 -1
- package/dist/{git-staleness-JSQTHB4Z.js → git-staleness-73YZ5PGU.js} +3 -3
- package/dist/{global-procedures-T3RKI4QX.js → global-procedures-PYNE2BQG.js} +20 -6
- package/dist/{graph-auto-extract-V75GSTNX.js → graph-auto-extract-PGUMEEQB.js} +6 -6
- package/dist/{graph-query-VAQN2RK3.js → graph-query-7YA3YNKL.js} +1 -1
- package/dist/{graph-rag-GBA5E3QC.js → graph-rag-UWOTK4AQ.js} +3 -3
- package/dist/{hook-integrity-II6QK6Y4.js → hook-integrity-6MNEPT6W.js} +1 -1
- package/dist/{hook-prefetch-5EHPOYY3.js → hook-prefetch-JOF6YZSR.js} +13 -16
- package/dist/hooks/bug-report-worker.js +17 -20
- package/dist/hooks/codex-stop-task-finalizer.js +19 -22
- package/dist/hooks/commit-complete.js +16 -19
- package/dist/hooks/error-recall.js +14 -14
- package/dist/hooks/exe-heartbeat-hook.js +5 -5
- package/dist/hooks/ingest-worker.js +18 -20
- package/dist/hooks/ingest.js +16 -16
- 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 +16 -19
- package/dist/hooks/pre-tool-use.js +2 -2
- package/dist/hooks/prompt-submit.js +40 -39
- package/dist/hooks/session-end.js +21 -24
- package/dist/hooks/session-start.js +18 -18
- package/dist/hooks/stop.js +19 -22
- package/dist/hooks/subagent-stop.js +18 -21
- package/dist/hooks/summary-worker.js +20 -23
- package/dist/index.js +25 -28
- package/dist/{installer-XEEZSF3V.js → installer-34XZ7JMW.js} +7 -8
- package/dist/{installer-MPVQ5L22.js → installer-356RMQ2K.js} +7 -8
- package/dist/{installer-ILYC4LI5.js → installer-7TN36Z7T.js} +113 -30
- package/dist/{intercom-queue-QGHAW2KO.js → intercom-queue-ZJ3MNULM.js} +12 -15
- package/dist/lib/backup-verify-worker.js +157 -0
- package/dist/lib/cloud-sync.js +16 -20
- 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 +7 -3
- 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 +7 -7
- package/dist/lib/employees.js +3 -3
- package/dist/lib/error-detector.js +2 -2
- package/dist/lib/exe-daemon.js +89 -87
- package/dist/lib/hybrid-search.js +11 -11
- package/dist/lib/identity.js +5 -3
- package/dist/lib/keychain.js +1 -1
- package/dist/lib/license.js +2 -2
- package/dist/lib/messaging.js +13 -16
- package/dist/lib/post-tool-memory.js +16 -18
- 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 +14 -17
- package/dist/lib/tmux-routing.js +14 -41
- package/dist/lib/token-spend.js +4 -4
- package/dist/lib/ws-client.js +1 -1
- package/dist/{license-gate-CARN6AB6.js → license-gate-4BXUTHLB.js} +3 -3
- package/dist/{license-recheck-7Z3LS6YS.js → license-recheck-QFPUKISQ.js} +1 -1
- package/dist/{license-sync-PUQV3HSZ.js → license-sync-FDEDT4AC.js} +2 -2
- package/dist/mcp/register-tools.js +96 -96
- package/dist/mcp/server.js +96 -96
- 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 +16 -19
- 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 +16 -19
- package/dist/mcp/tools/send-message.js +15 -18
- package/dist/mcp/tools/update-task.js +15 -18
- package/dist/{mcp-http-config-RJKTZPHZ.js → mcp-http-config-GKP5QGAO.js} +5 -5
- package/dist/{mcp-session-identity-HN444A3G.js → mcp-session-identity-JHAGRB7B.js} +12 -15
- package/dist/{memory-cards-AT3QCCWU.js → memory-cards-O377ETAM.js} +8 -8
- package/dist/{memory-graph-extractor-B43UWGV5.js → memory-graph-extractor-4KJCCUOP.js} +7 -7
- package/dist/{memory-maintenance-WDLL3ZX3.js → memory-maintenance-RR5UPRW3.js} +1 -1
- package/dist/{memory-poisoning-defense-TS4WNW4S.js → memory-poisoning-defense-Y5TTKGOP.js} +3 -3
- package/dist/{memory-pressure-watchdog-6YH7S6W7.js → memory-pressure-watchdog-NGXTI4HR.js} +13 -16
- package/dist/{memory-reflection-N6NSYW6S.js → memory-reflection-EXNHRZL7.js} +8 -8
- package/dist/{memory-write-repository-D35RDO62.js → memory-write-repository-S4TX7WQB.js} +1 -1
- package/dist/{monitor-grants-FH4PNYN5.js → monitor-grants-57Q4NL25.js} +3 -3
- package/dist/{monitor-identity-LK5ZCCND.js → monitor-identity-3FQ52SYU.js} +2 -2
- package/dist/{notification-ledger-3WJYJGGS.js → notification-ledger-O6KQYYGK.js} +13 -16
- package/dist/{notifications-T5C2CVB3.js → notifications-6FCQCJ4P.js} +12 -15
- package/dist/{orchestration-events-73VEJT7Q.js → orchestration-events-2Z2BMMA5.js} +4 -4
- package/dist/{orchestrator-3O657734.js → orchestrator-AGOSKPHD.js} +14 -17
- package/dist/{org-brief-session-EGB35QLM.js → org-brief-session-WJHZVXXJ.js} +15 -15
- package/dist/{org-consent-policy-MSVSRI53.js → org-consent-policy-X43UGTHI.js} +5 -5
- package/dist/{org-join-4BK2XJJI.js → org-join-M3UTBMHC.js} +9 -9
- package/dist/{org-key-admin-EUSSGXQ3.js → org-key-admin-AA2DRHB2.js} +11 -11
- package/dist/{org-key-epoch-NMEWDT5L.js → org-key-epoch-Z5UIVUHT.js} +5 -5
- package/dist/{org-key-pin-HUSXGINB.js → org-key-pin-FE6YHEZ3.js} +3 -3
- package/dist/{org-membership-B74IWEM5.js → org-membership-3J2MIGE4.js} +4 -4
- package/dist/{org-partner-config-5FJTJABN.js → org-partner-config-5HATZYG4.js} +8 -8
- package/dist/{org-partner-runtime-GN4GFWI2.js → org-partner-runtime-UI35IHUC.js} +15 -15
- package/dist/{org-row-visibility-PBZ2TSCR.js → org-row-visibility-TRJERVYP.js} +1 -1
- package/dist/{pipeline-router-2IELBSVJ.js → pipeline-router-EKQ6D7ZA.js} +4 -4
- package/dist/{plan-limits-4GXK5PFT.js → plan-limits-3BGHIHX6.js} +6 -6
- package/dist/{platform-procedures-QP3W2NLH.js → platform-procedures-RXW46WNY.js} +1 -1
- package/dist/{pre-tool-use-impl-CY73PRJP.js → pre-tool-use-impl-7BT5TJVM.js} +35 -33
- package/dist/{project-name-337ERIAX.js → project-name-PGJGUEJY.js} +4 -4
- package/dist/{projection-worker-W476IG6V.js → projection-worker-3GEVFPAI.js} +2 -2
- package/dist/{prospective-memory-5INB7NUL.js → prospective-memory-GEN7CN7H.js} +3 -3
- package/dist/{push-notifications-YVOP4KGN.js → push-notifications-QW4BWRC7.js} +13 -16
- package/dist/{reproject-worktree-memories-OGBR3CMO.js → reproject-worktree-memories-DIULBEBD.js} +12 -15
- package/dist/{reranker-W7WCJH6Y.js → reranker-LQ6OPJOI.js} +1 -1
- package/dist/{retrieval-health-R6MGXLTP.js → retrieval-health-XDFYFEOP.js} +1 -1
- package/dist/{review-polling-TKAWVY6G.js → review-polling-ED33YLFT.js} +13 -16
- package/dist/runtime/index.js +20 -23
- package/dist/{session-events-HUCZ7TOR.js → session-events-7IJGTBVH.js} +13 -16
- package/dist/{session-kill-telemetry-RWRWOW4C.js → session-kill-telemetry-RUTEARJ3.js} +13 -16
- package/dist/{session-scope-5CDRHV75.js → session-scope-SSYA64L3.js} +12 -15
- package/dist/{setup-wizard-RBTJAZOP.js → setup-wizard-XD7FZVLJ.js} +2 -2
- package/dist/{shard-manager-LRPAAQA4.js → shard-manager-FH5JZRSE.js} +2 -2
- package/dist/{skill-refinement-MDXKDCY6.js → skill-refinement-UHD4E6GV.js} +4 -4
- package/dist/{skill-retrieval-OWY6MTCX.js → skill-retrieval-F6PAJ3I5.js} +11 -11
- package/dist/{skill-usage-GNV737U5.js → skill-usage-2MBTF7Y4.js} +4 -4
- package/dist/{stack-generate-manifest-S4SBLKBY.js → stack-generate-manifest-SU6OFFY7.js} +4 -4
- package/dist/{stack-promote-U4EZNLOV.js → stack-promote-MJF436JD.js} +4 -4
- package/dist/{stack-release-4VBGOYGK.js → stack-release-S37R57XC.js} +5 -5
- package/dist/{stack-update-C5YKHE7A.js → stack-update-XXDRKGGR.js} +3 -3
- package/dist/{steward-gate-QFPXQBUZ.js → steward-gate-EWG2BHYQ.js} +4 -4
- package/dist/{subagent-brief-injection-GDXO5WNS.js → subagent-brief-injection-YZGSWUEY.js} +25 -27
- package/dist/{support-bug-actions-4XEKXIIO.js → support-bug-actions-RU6WZ3UV.js} +3 -3
- package/dist/{support-inbox-Y7AFCOGM.js → support-inbox-A3S52SPS.js} +12 -12
- package/dist/{task-enforcement-CN3Q4PEH.js → task-enforcement-LVAS55AR.js} +13 -16
- package/dist/{task-request-inbox-AY3C6DND.js → task-request-inbox-2TN4ZUH2.js} +5 -5
- package/dist/{task-scope-AMR3Z3DJ.js → task-scope-NLKUVCP5.js} +12 -15
- package/dist/{tasks-crud-2GHKIZOM.js → tasks-crud-NQDPLHNZ.js} +14 -15
- package/dist/{tasks-notify-Z53446KM.js → tasks-notify-BDM2NEHP.js} +13 -16
- package/dist/{tasks-review-APRNSHMQ.js → tasks-review-3G7CAW2O.js} +12 -15
- package/dist/{telemetry-upload-5XR42SQN.js → telemetry-upload-6DR6AL3V.js} +8 -8
- package/dist/{token-budget-TTNJXI7W.js → token-budget-KNC2WGR7.js} +4 -4
- package/dist/{tool-telemetry-36ST422N.js → tool-telemetry-I3SEU5M5.js} +1 -1
- package/dist/tui/App.js +23 -26
- package/dist/{tui-data-AP5TPUOQ.js → tui-data-KJDWP4CB.js} +16 -19
- package/dist/{update-support-SFTI2PUD.js → update-support-UYDYMHVR.js} +11 -11
- package/dist/{whatsapp-5CXE3JHG.js → whatsapp-5EMPZHF5.js} +2 -2
- package/dist/{wiki-acl-N754BC2W.js → wiki-acl-M7BTQJBZ.js} +1 -1
- package/dist/{work-claims-OAICQBWO.js → work-claims-5CFMZTML.js} +4 -4
- package/dist/{work-state-heartbeat-MTTUGMPU.js → work-state-heartbeat-7IA2DZ2E.js} +1 -1
- package/dist/{workflow-engine-RID3QL2U.js → workflow-engine-S5JOE2YR.js} +2 -2
- package/dist/{worktree-XWVNDBRD.js → worktree-7V4ZMF3D.js} +5 -5
- package/dist/{worktree-sweep-6VEHGH7U.js → worktree-sweep-34MXJ7S6.js} +6 -6
- package/package.json +2 -1
- package/release-notes.json +25 -7
- package/stack.release.json +3 -3
- package/dist/chunk-ESO5JDOT.js +0 -70
- package/dist/chunk-KCRSJ3VU.js +0 -113
- package/dist/content-extractor-OVD7PTSN.js +0 -9
- /package/dist/{chunk-OLMLA377.js → chunk-542FBM5U.js} +0 -0
- /package/dist/{chunk-LDHJX4TZ.js → chunk-6D2O5SAH.js} +0 -0
- /package/dist/{chunk-33PG3KNY.js → chunk-6NRZLVK3.js} +0 -0
- /package/dist/{chunk-CLV7ALXV.js → chunk-CFO47VW4.js} +0 -0
- /package/dist/{chunk-FLO24BNN.js → chunk-EULAP6L6.js} +0 -0
- /package/dist/{chunk-PKM456D2.js → chunk-FYSKQPTE.js} +0 -0
- /package/dist/{chunk-WIDOLS7T.js → chunk-J4B4M5PH.js} +0 -0
- /package/dist/{chunk-YBB43SXC.js → chunk-J635FA7T.js} +0 -0
- /package/dist/{chunk-64UAHPXA.js → chunk-MOBZTIJQ.js} +0 -0
- /package/dist/{chunk-EZQ4W3WW.js → chunk-N45FAI6D.js} +0 -0
- /package/dist/{chunk-OEEHLATI.js → chunk-QDSNEGJE.js} +0 -0
- /package/dist/{chunk-YG4DZZ6J.js → chunk-SKSXROKP.js} +0 -0
- /package/dist/{chunk-FUZHMV7K.js → chunk-YVWXI2HM.js} +0 -0
- /package/dist/{core-memory-WR7I7DIP.js → core-memory-PZEO3OWH.js} +0 -0
- /package/dist/{memory-isolation-4RQJ5RCK.js → memory-isolation-MFNT2ITE.js} +0 -0
- /package/dist/{oauth-server-VBDMZIEV.js → oauth-server-CBGEWD6H.js} +0 -0
- /package/dist/{project-boot-G7T5WHO6.js → project-boot-VESAYDIH.js} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
routeTask
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-W7VKGB42.js";
|
|
4
4
|
import {
|
|
5
5
|
createTaskCore,
|
|
6
6
|
employeeSessionName,
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
isEmployeeAlive,
|
|
10
10
|
sessionScopeFilter,
|
|
11
11
|
updateTaskStatus
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-GM4UEZDE.js";
|
|
13
13
|
import {
|
|
14
14
|
DEFAULT_COORDINATOR_TEMPLATE_NAME,
|
|
15
15
|
getCoordinatorName
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-L5JFVK5T.js";
|
|
17
17
|
|
|
18
18
|
// src/runtime/orchestrator.ts
|
|
19
19
|
var STALE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
behaviorTruncationNotice
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JTJP4JK7.js";
|
|
4
4
|
import {
|
|
5
5
|
countActiveBehaviors,
|
|
6
6
|
listBehaviors
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-KEDZRQI3.js";
|
|
8
|
+
import {
|
|
9
|
+
isInitialized
|
|
10
|
+
} from "./chunk-L5JFVK5T.js";
|
|
8
11
|
import {
|
|
9
12
|
loadConfigSync
|
|
10
13
|
} from "./chunk-MMS2HBRT.js";
|
|
14
|
+
import {
|
|
15
|
+
atomicWriteSync
|
|
16
|
+
} from "./chunk-HSGBZSCA.js";
|
|
11
17
|
|
|
12
18
|
// src/lib/behaviors-export.ts
|
|
13
19
|
import os from "os";
|
|
@@ -17,8 +23,7 @@ import {
|
|
|
17
23
|
mkdirSync,
|
|
18
24
|
readdirSync,
|
|
19
25
|
statSync,
|
|
20
|
-
unlinkSync
|
|
21
|
-
writeFileSync
|
|
26
|
+
unlinkSync
|
|
22
27
|
} from "fs";
|
|
23
28
|
var BEHAVIORS_EXPORT_DIR = path.join(
|
|
24
29
|
os.homedir(),
|
|
@@ -35,6 +40,19 @@ function getBehaviorLimit() {
|
|
|
35
40
|
return DEFAULT_BEHAVIOR_LIMIT;
|
|
36
41
|
}
|
|
37
42
|
}
|
|
43
|
+
var SWEEPABLE_EXPORT_SHAPES = [
|
|
44
|
+
// Session-scoped export: `<agent>-<safeProject>-<sessionKey>.md` (exportFilePath
|
|
45
|
+
// with a sessionKey; safeProject may be empty, giving `<agent>--<key>.md`).
|
|
46
|
+
/^[a-z][a-z0-9]*-[A-Za-z0-9_-]*-.+\.md$/,
|
|
47
|
+
// Spawn-scoped boot snapshot written by exe-launch-agent: `<agent>-boot.md`.
|
|
48
|
+
/^[a-z][a-z0-9]*-boot\.md$/,
|
|
49
|
+
// Orphaned atomic-write temp file (crash between write and rename):
|
|
50
|
+
// `<name>.tmp.<pid>.<uuid>`, see atomicWriteSync.
|
|
51
|
+
/\.tmp\.\d+\.[0-9a-f-]{36}$/
|
|
52
|
+
];
|
|
53
|
+
function isSweepableBehaviorExport(entry) {
|
|
54
|
+
return SWEEPABLE_EXPORT_SHAPES.some((re) => re.test(entry));
|
|
55
|
+
}
|
|
38
56
|
function sweepStaleBehaviorExports(now = Date.now()) {
|
|
39
57
|
if (!existsSync(BEHAVIORS_EXPORT_DIR)) return;
|
|
40
58
|
let entries;
|
|
@@ -44,6 +62,7 @@ function sweepStaleBehaviorExports(now = Date.now()) {
|
|
|
44
62
|
return;
|
|
45
63
|
}
|
|
46
64
|
for (const entry of entries) {
|
|
65
|
+
if (!isSweepableBehaviorExport(entry)) continue;
|
|
47
66
|
const filePath = path.join(BEHAVIORS_EXPORT_DIR, entry);
|
|
48
67
|
try {
|
|
49
68
|
const stat = statSync(filePath);
|
|
@@ -87,19 +106,54 @@ function exportFilePath(agentId, projectName, sessionKey) {
|
|
|
87
106
|
`${agentId}-${safeProject}-${sessionKey}.md`
|
|
88
107
|
);
|
|
89
108
|
}
|
|
109
|
+
function existingExport(target) {
|
|
110
|
+
try {
|
|
111
|
+
return existsSync(target) && statSync(target).size > 0 ? target : null;
|
|
112
|
+
} catch {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
90
116
|
async function exportBehaviorsForAgent(agentId, projectName, sessionKey) {
|
|
91
117
|
mkdirSync(BEHAVIORS_EXPORT_DIR, { recursive: true });
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
118
|
+
const target = exportFilePath(agentId, projectName, sessionKey);
|
|
119
|
+
let behaviors;
|
|
120
|
+
try {
|
|
121
|
+
if (!isInitialized()) {
|
|
122
|
+
throw new Error(
|
|
123
|
+
"no DB client is registered in this process: the exe-os daemon did not answer in time (fastDbInit degraded to its no-op client rather than open the encrypted DB as a second writer, bug 96a28cf2) or the store was never initialised. Retry once the daemon is responsive (`exe-os daemon status`), or set EXE_DB_DIRECT=1 to force a direct open"
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
behaviors = await listBehaviors(agentId, projectName, getBehaviorLimit());
|
|
127
|
+
} catch (err) {
|
|
128
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
129
|
+
const cached = existingExport(target);
|
|
130
|
+
if (cached) {
|
|
131
|
+
process.stderr.write(
|
|
132
|
+
`[behaviors-export] STALE: could not refresh behaviors for ${agentId} (${reason}); keeping the previous export at ${cached}.
|
|
133
|
+
`
|
|
134
|
+
);
|
|
135
|
+
return cached;
|
|
136
|
+
}
|
|
137
|
+
throw new Error(
|
|
138
|
+
`behaviors unavailable for ${agentId}: ${reason}. No cached export exists at ${target}, so this session boots without behaviors.`
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
if (behaviors.length === 0) {
|
|
142
|
+
try {
|
|
143
|
+
if (existsSync(target)) unlinkSync(target);
|
|
144
|
+
} catch {
|
|
145
|
+
}
|
|
146
|
+
sweepStaleBehaviorExports();
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
95
149
|
let counts = { total: behaviors.length, p0: 0 };
|
|
96
150
|
try {
|
|
97
151
|
counts = await countActiveBehaviors(agentId, projectName);
|
|
98
152
|
} catch {
|
|
99
153
|
}
|
|
100
154
|
const body = renderBehaviorExport(behaviors, counts);
|
|
101
|
-
|
|
102
|
-
|
|
155
|
+
atomicWriteSync(target, body, "utf-8");
|
|
156
|
+
sweepStaleBehaviorExports();
|
|
103
157
|
return target;
|
|
104
158
|
}
|
|
105
159
|
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from "./chunk-BTSWFMEH.js";
|
|
11
11
|
import {
|
|
12
12
|
getClient
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-L5JFVK5T.js";
|
|
14
14
|
|
|
15
15
|
// src/lib/work-claims.ts
|
|
16
16
|
var CLAIM_TTL_MINUTES = 90;
|
|
@@ -306,7 +306,7 @@ async function heartbeatClaims(holderSession, ttlMinutes = CLAIM_TTL_MINUTES) {
|
|
|
306
306
|
}
|
|
307
307
|
async function recordClaimEvent(eventType, sessionScope, agentId, payload, severity) {
|
|
308
308
|
try {
|
|
309
|
-
const { recordOrchestrationEventBestEffort } = await import("./orchestration-events-
|
|
309
|
+
const { recordOrchestrationEventBestEffort } = await import("./orchestration-events-2Z2BMMA5.js");
|
|
310
310
|
recordOrchestrationEventBestEffort({
|
|
311
311
|
eventType,
|
|
312
312
|
source: "work-claims",
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
derivePartnerSealIdentity
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-CWHTUNJX.js";
|
|
4
4
|
import {
|
|
5
5
|
pinMismatchReason,
|
|
6
6
|
pinnedOrgKeyEpochs,
|
|
7
7
|
readOrgKeyPin
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-6PXFF6IV.js";
|
|
9
9
|
import {
|
|
10
10
|
derivePartnerSignIdentity,
|
|
11
11
|
displayFingerprint,
|
|
12
12
|
signKeyFingerprint
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-MZNLQC6W.js";
|
|
14
14
|
import {
|
|
15
15
|
orgMembershipPresent,
|
|
16
16
|
readActiveOrgMemberships
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-LLZUL7M2.js";
|
|
18
18
|
import {
|
|
19
19
|
isValidX25519Recipient
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-7SHU5MOD.js";
|
|
21
21
|
|
|
22
22
|
// src/lib/org-partner-config.ts
|
|
23
23
|
function pickString(rec, ...keys) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
exportRawPublicKey,
|
|
3
3
|
privateKeyFromScalar
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-7SHU5MOD.js";
|
|
5
5
|
import {
|
|
6
6
|
getMasterKey
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4J77TCTX.js";
|
|
8
8
|
|
|
9
9
|
// src/lib/partner-seal-identity.ts
|
|
10
10
|
import crypto from "crypto";
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
queryTaskRows,
|
|
9
9
|
resolveExeSession,
|
|
10
10
|
sendIntercom
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-GM4UEZDE.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-JGBYZTWH.js";
|
|
18
18
|
import {
|
|
19
19
|
releaseDispatchClaim,
|
|
20
20
|
tryAcquireDispatchClaim
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
isCoordinatorName,
|
|
30
30
|
isMultiInstance,
|
|
31
31
|
shouldAutoInstance
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-L5JFVK5T.js";
|
|
33
33
|
|
|
34
34
|
// src/lib/tasks-notify.ts
|
|
35
35
|
var VERIFY_DELAY_MS = 1e4;
|
|
@@ -91,7 +91,7 @@ async function dispatchTaskToEmployee(input) {
|
|
|
91
91
|
let crossProject = false;
|
|
92
92
|
if (input.projectName) {
|
|
93
93
|
try {
|
|
94
|
-
const { assertSessionScope } = await import("./session-scope-
|
|
94
|
+
const { assertSessionScope } = await import("./session-scope-SSYA64L3.js");
|
|
95
95
|
const check = assertSessionScope("dispatch_task", input.projectName);
|
|
96
96
|
if (check.reason === "cross_session_denied") {
|
|
97
97
|
crossProject = true;
|
|
@@ -212,7 +212,7 @@ async function main(args) {
|
|
|
212
212
|
console.log("[health-gate] Starting rollback...");
|
|
213
213
|
restorePreDeployBackup();
|
|
214
214
|
try {
|
|
215
|
-
const { rollbackStackUpdate, defaultStackPaths } = await import("./stack-update-
|
|
215
|
+
const { rollbackStackUpdate, defaultStackPaths } = await import("./stack-update-XXDRKGGR.js");
|
|
216
216
|
const paths = defaultStackPaths();
|
|
217
217
|
await rollbackStackUpdate({
|
|
218
218
|
manifestRef: paths.manifestRef,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionScopeFilter
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-GM4UEZDE.js";
|
|
4
4
|
import {
|
|
5
5
|
leaseExpiryIso
|
|
6
6
|
} from "./chunk-E23LNUWJ.js";
|
|
7
7
|
import {
|
|
8
8
|
getProjectName
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-TVWYMOZ4.js";
|
|
10
10
|
|
|
11
11
|
// src/lib/subagent-observability.ts
|
|
12
12
|
var MAX_RESULT_DIGEST_CHARS = 200;
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-3R7UDPVR.js";
|
|
4
4
|
import {
|
|
5
5
|
getDeviceInfo
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6D2O5SAH.js";
|
|
7
7
|
import {
|
|
8
8
|
EXE_AI_DIR
|
|
9
9
|
} from "./chunk-MMS2HBRT.js";
|
|
@@ -15,6 +15,29 @@ import { createHash, randomUUID } from "crypto";
|
|
|
15
15
|
import os from "os";
|
|
16
16
|
import path from "path";
|
|
17
17
|
import { jwtVerify, importSPKI } from "jose";
|
|
18
|
+
|
|
19
|
+
// src/lib/license-offline-window.ts
|
|
20
|
+
var MAX_OFFLINE_TRUST_DAYS = 7;
|
|
21
|
+
var OFFLINE_GRACE_CLAIM = "offline_grace_s";
|
|
22
|
+
function offlineTrustWindowMs(payload, maxDays) {
|
|
23
|
+
const local = maxDays * 24 * 60 * 60 * 1e3;
|
|
24
|
+
if (!payload || !(OFFLINE_GRACE_CLAIM in payload)) return local;
|
|
25
|
+
const claim = payload[OFFLINE_GRACE_CLAIM];
|
|
26
|
+
if (typeof claim !== "number" || !Number.isFinite(claim) || claim < 0) return 0;
|
|
27
|
+
return Math.min(local, claim * 1e3);
|
|
28
|
+
}
|
|
29
|
+
function withinOfflineTrustWindow(payload, maxDays) {
|
|
30
|
+
const iat = payload?.iat;
|
|
31
|
+
if (typeof iat !== "number" || !Number.isFinite(iat)) {
|
|
32
|
+
return !(payload && OFFLINE_GRACE_CLAIM in payload);
|
|
33
|
+
}
|
|
34
|
+
return Date.now() < iat * 1e3 + offlineTrustWindowMs(payload, maxDays);
|
|
35
|
+
}
|
|
36
|
+
function proofWithinOfflineTrust(payload) {
|
|
37
|
+
return withinOfflineTrustWindow(payload, MAX_OFFLINE_TRUST_DAYS);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// src/lib/license.ts
|
|
18
41
|
var LICENSE_PATH = path.join(EXE_AI_DIR, "license.key");
|
|
19
42
|
var GRANDFATHER_PATH = path.join(EXE_AI_DIR, "personal-free-grandfather.json");
|
|
20
43
|
var PENDING_LICENSE_PATH = path.join(EXE_AI_DIR, "license.key.pending");
|
|
@@ -44,12 +67,6 @@ oR8NJBuiITKaerulCXiSiJMX1HP0+h5dHBVfCWQfIVk5BMdsheAMaP806w==
|
|
|
44
67
|
-----END PUBLIC KEY-----`;
|
|
45
68
|
var LICENSE_PUBLIC_KEYS = [LICENSE_PUBLIC_KEY_PEM_2026_06_17, LICENSE_PUBLIC_KEY_PEM, LICENSE_PUBLIC_KEY_PEM_PREV];
|
|
46
69
|
var LICENSE_JWT_ALG = "ES256";
|
|
47
|
-
var MAX_OFFLINE_TRUST_DAYS = 7;
|
|
48
|
-
function withinOfflineTrustWindow(payload, maxDays) {
|
|
49
|
-
const iat = payload?.iat;
|
|
50
|
-
if (typeof iat !== "number" || !Number.isFinite(iat)) return true;
|
|
51
|
-
return Date.now() < iat * 1e3 + maxDays * 24 * 60 * 60 * 1e3;
|
|
52
|
-
}
|
|
53
70
|
function suppliedNumber(value) {
|
|
54
71
|
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
55
72
|
}
|
|
@@ -997,6 +1014,7 @@ function stopLicenseRevalidation() {
|
|
|
997
1014
|
}
|
|
998
1015
|
|
|
999
1016
|
export {
|
|
1017
|
+
proofWithinOfflineTrust,
|
|
1000
1018
|
LICENSE_PUBLIC_KEY_PEM,
|
|
1001
1019
|
resolveClientLimits,
|
|
1002
1020
|
markPersonalFreeGrandfather,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-L5JFVK5T.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/pipeline-router.ts
|
|
6
6
|
import crypto from "crypto";
|
|
@@ -140,8 +140,8 @@ Agent response: ${agentResponse}` : ""
|
|
|
140
140
|
}
|
|
141
141
|
async function sinkEntityExtraction(msg, agentResponse, agentName) {
|
|
142
142
|
try {
|
|
143
|
-
const { extractFromConversation } = await import("./conversation-entity-extractor-
|
|
144
|
-
const { storeExtraction } = await import("./graph-rag-
|
|
143
|
+
const { extractFromConversation } = await import("./conversation-entity-extractor-XMOUHGMT.js");
|
|
144
|
+
const { storeExtraction } = await import("./graph-rag-UWOTK4AQ.js");
|
|
145
145
|
if ((msg.text?.length ?? 0) < 20) return false;
|
|
146
146
|
if (msg.isHistorical) return false;
|
|
147
147
|
const extraction = await extractFromConversation(msg, agentResponse, agentName);
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
supportProductSchema,
|
|
8
8
|
supportTaskIdSchema,
|
|
9
9
|
supportVersionSchema
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-O3BLL6MY.js";
|
|
11
11
|
import {
|
|
12
12
|
queueSupportStatusUpdateSync
|
|
13
13
|
} from "./chunk-L4ISXVC5.js";
|
|
@@ -37,11 +37,11 @@ import {
|
|
|
37
37
|
} from "./chunk-BYP3DOUU.js";
|
|
38
38
|
import {
|
|
39
39
|
getActiveAgent
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-GL5ZG72X.js";
|
|
41
41
|
import {
|
|
42
42
|
loadLicense,
|
|
43
43
|
readCachedLicenseToken
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-EOWJXCYC.js";
|
|
45
45
|
import {
|
|
46
46
|
EXE_AI_DIR,
|
|
47
47
|
loadConfig
|
|
@@ -52,7 +52,7 @@ import { z as z3 } from "zod";
|
|
|
52
52
|
import { readFileSync } from "fs";
|
|
53
53
|
import { readFile as readFile2 } from "fs/promises";
|
|
54
54
|
import { join as join2 } from "path";
|
|
55
|
-
import { homedir as homedir2 } from "os";
|
|
55
|
+
import { homedir as homedir2, hostname } from "os";
|
|
56
56
|
|
|
57
57
|
// src/mcp/tools/update-bug-report.ts
|
|
58
58
|
import { z as z2 } from "zod";
|
|
@@ -1482,6 +1482,31 @@ function assertInternal() {
|
|
|
1482
1482
|
if (!token) throw new Error("AskExe support admin token not configured");
|
|
1483
1483
|
return token;
|
|
1484
1484
|
}
|
|
1485
|
+
async function githubLeaseRequest(bugUrl, init) {
|
|
1486
|
+
const token = assertInternal();
|
|
1487
|
+
return fetch(`${bugUrl}/github-lease`, {
|
|
1488
|
+
...init,
|
|
1489
|
+
headers: { "content-type": "application/json", authorization: `Bearer ${token}`, ...init.headers ?? {} },
|
|
1490
|
+
signal: AbortSignal.timeout(1e4)
|
|
1491
|
+
});
|
|
1492
|
+
}
|
|
1493
|
+
async function acquireGithubLease(bugUrl, holder) {
|
|
1494
|
+
const res = await githubLeaseRequest(bugUrl, { method: "POST", body: JSON.stringify({ holder }) });
|
|
1495
|
+
if (res.ok) {
|
|
1496
|
+
const data = JSON.parse(await res.text());
|
|
1497
|
+
if (typeof data.token === "string" && data.token) return { token: data.token, expires_at: data.expires_at ?? "" };
|
|
1498
|
+
throw new Error(`Lease acquire returned no token: HTTP ${res.status}`);
|
|
1499
|
+
}
|
|
1500
|
+
if (res.status === 409) return "held";
|
|
1501
|
+
if (res.status === 404 || res.status === 405) return "unsupported";
|
|
1502
|
+
throw new Error(`HTTP ${res.status}: ${await res.text()}`);
|
|
1503
|
+
}
|
|
1504
|
+
async function releaseGithubLease(bugUrl, token) {
|
|
1505
|
+
try {
|
|
1506
|
+
await githubLeaseRequest(bugUrl, { method: "DELETE", body: JSON.stringify({ token }) });
|
|
1507
|
+
} catch {
|
|
1508
|
+
}
|
|
1509
|
+
}
|
|
1485
1510
|
async function requestJson(url, init) {
|
|
1486
1511
|
const token = assertInternal();
|
|
1487
1512
|
const res = await fetch(url, {
|
|
@@ -1855,7 +1880,7 @@ function registerTriageBugReport(server) {
|
|
|
1855
1880
|
const bugUrl = `${endpoint()}/${encodeURIComponent(sanitizeUpstreamId(id))}`;
|
|
1856
1881
|
const wantsGithubPush = status === "triaged" && push_to_github !== false;
|
|
1857
1882
|
const errorResult = (text) => ({ isError: true, content: [{ type: "text", text }] });
|
|
1858
|
-
const finishClose = async (effectiveStatus, verificationFinal, githubPush) => {
|
|
1883
|
+
const finishClose = async (effectiveStatus, verificationFinal, githubPush, githubLeaseToken) => {
|
|
1859
1884
|
const attestsByIdentity = verificationFinal.verification_kind === "manual" || verificationFinal.verification_kind === "ops_transcript" || verificationFinal.disposition !== void 0 && verificationFinal.disposition !== "fixed" && verificationFinal.disposition !== "migrated";
|
|
1860
1885
|
let authorIdentities = [];
|
|
1861
1886
|
if (isVerifiedStatus(effectiveStatus) && attestsByIdentity) {
|
|
@@ -1901,7 +1926,10 @@ function registerTriageBugReport(server) {
|
|
|
1901
1926
|
superseded_coverage: verificationFinal.superseded_coverage,
|
|
1902
1927
|
github_issue_url: verificationFinal.github_issue_url,
|
|
1903
1928
|
symptoms: verificationFinal.symptoms,
|
|
1904
|
-
attribution: resolved.attribution
|
|
1929
|
+
attribution: resolved.attribution,
|
|
1930
|
+
// Bug 33f670b1: proof this PATCH is the live lease holder — the
|
|
1931
|
+
// server refuses a github_issue_url write from anyone else.
|
|
1932
|
+
github_lease_token: githubLeaseToken
|
|
1905
1933
|
}, "support-inbox:triage_bug")
|
|
1906
1934
|
});
|
|
1907
1935
|
let response = fixed_version && !status ? withStatusNotice(
|
|
@@ -1953,6 +1981,22 @@ function registerTriageBugReport(server) {
|
|
|
1953
1981
|
if (!precheckDelivery.ok) {
|
|
1954
1982
|
return errorResult(precheckDelivery.message);
|
|
1955
1983
|
}
|
|
1984
|
+
let lease;
|
|
1985
|
+
const leaseHolder = `${hostname()}#${process.pid}`;
|
|
1986
|
+
let leaseOutcome;
|
|
1987
|
+
try {
|
|
1988
|
+
leaseOutcome = await acquireGithubLease(bugUrl, leaseHolder);
|
|
1989
|
+
} catch (err) {
|
|
1990
|
+
return errorResult(
|
|
1991
|
+
`Could not push bug ${id} to GitHub: failed to acquire the per-bug migration lease (${err instanceof Error ? err.message : String(err)}). Nothing was changed \u2014 retry, or pass push_to_github: false.`
|
|
1992
|
+
);
|
|
1993
|
+
}
|
|
1994
|
+
if (leaseOutcome === "held") {
|
|
1995
|
+
return errorResult(
|
|
1996
|
+
`Could not push bug ${id} to GitHub: another host currently holds this bug's migration lease (it is mid-push). Nothing was changed here \u2014 retry once it finishes, or pass push_to_github: false.`
|
|
1997
|
+
);
|
|
1998
|
+
}
|
|
1999
|
+
if (leaseOutcome !== "unsupported") lease = leaseOutcome;
|
|
1956
2000
|
try {
|
|
1957
2001
|
return await withBugGithubLock(canonicalId, async () => {
|
|
1958
2002
|
let row2;
|
|
@@ -2000,13 +2044,15 @@ function registerTriageBugReport(server) {
|
|
|
2000
2044
|
const finalVerification = { ...verification };
|
|
2001
2045
|
finalVerification.disposition = "migrated";
|
|
2002
2046
|
finalVerification.github_issue_url = githubPush.issueUrl;
|
|
2003
|
-
return finishClose("closed", finalVerification, githubPush);
|
|
2047
|
+
return finishClose("closed", finalVerification, githubPush, lease?.token);
|
|
2004
2048
|
});
|
|
2005
2049
|
} catch (err) {
|
|
2006
2050
|
if (err instanceof GithubLockTimeoutError) {
|
|
2007
2051
|
return errorResult(err.message);
|
|
2008
2052
|
}
|
|
2009
2053
|
throw err;
|
|
2054
|
+
} finally {
|
|
2055
|
+
if (lease) void releaseGithubLease(bugUrl, lease.token);
|
|
2010
2056
|
}
|
|
2011
2057
|
}
|
|
2012
2058
|
);
|