@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
|
isCrdtSyncEnabled
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FSXMKIDO.js";
|
|
4
4
|
import {
|
|
5
5
|
compress,
|
|
6
6
|
decompress
|
|
@@ -8,14 +8,14 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
orgMembershipsPath,
|
|
10
10
|
orgModeActive
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-LLZUL7M2.js";
|
|
12
12
|
import {
|
|
13
13
|
activeRecipientPubKeys,
|
|
14
14
|
grantsPath,
|
|
15
15
|
isGrantsMacPrimed,
|
|
16
16
|
primeGrantsMacKey,
|
|
17
17
|
warnActiveMonitoringOnce
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-VAHQOIQY.js";
|
|
19
19
|
import {
|
|
20
20
|
assertGateAndGrantsColocated
|
|
21
21
|
} from "./chunk-NPXIS2RY.js";
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
import {
|
|
26
26
|
GHOST_BEHAVIOR_SQL,
|
|
27
27
|
isGhostBehaviorRow
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-KEDZRQI3.js";
|
|
29
29
|
import {
|
|
30
30
|
isTransientDaemonTransportError,
|
|
31
31
|
retryOnDaemonTransportError
|
|
@@ -36,17 +36,17 @@ import {
|
|
|
36
36
|
encryptSyncBlob,
|
|
37
37
|
initSyncCrypto,
|
|
38
38
|
isSyncCryptoInitialized
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-QV26G2BF.js";
|
|
40
40
|
import {
|
|
41
41
|
getClient,
|
|
42
42
|
isGenuineCorruptionError,
|
|
43
43
|
loadEmployees,
|
|
44
44
|
registerBinSymlinks,
|
|
45
45
|
saveEmployees
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-L5JFVK5T.js";
|
|
47
47
|
import {
|
|
48
48
|
loadDeviceId
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-EOWJXCYC.js";
|
|
50
50
|
import {
|
|
51
51
|
EXE_AI_DIR
|
|
52
52
|
} from "./chunk-MMS2HBRT.js";
|
|
@@ -69,13 +69,23 @@ var _monitoredWriter = null;
|
|
|
69
69
|
var _resolved = null;
|
|
70
70
|
var _founderModuleLinked = false;
|
|
71
71
|
var _lastSealOrgMode = null;
|
|
72
|
+
var _writerLink = null;
|
|
73
|
+
function linkMonitoredWriter() {
|
|
74
|
+
if (_monitoredWriter) return Promise.resolve();
|
|
75
|
+
if (!_writerLink) {
|
|
76
|
+
_writerLink = import("./founder-monitor-envelope-54UNZNY4.js").then((mod) => {
|
|
77
|
+
_monitoredWriter = mod.encryptMonitoredSyncBlob;
|
|
78
|
+
_founderModuleLinked = true;
|
|
79
|
+
}).catch((err) => {
|
|
80
|
+
_writerLink = null;
|
|
81
|
+
throw err;
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
return _writerLink;
|
|
85
|
+
}
|
|
72
86
|
async function getSyncCipher() {
|
|
73
87
|
if (_resolved) return _resolved;
|
|
74
|
-
if (!orgModeActive())
|
|
75
|
-
const mod = await import("./founder-monitor-envelope-TLOC4UYG.js");
|
|
76
|
-
_monitoredWriter = mod.encryptMonitoredSyncBlob;
|
|
77
|
-
_founderModuleLinked = true;
|
|
78
|
-
}
|
|
88
|
+
if (!orgModeActive()) await linkMonitoredWriter();
|
|
79
89
|
_resolved = {
|
|
80
90
|
seal: (data, context) => {
|
|
81
91
|
assertGateAndGrantsColocated(orgMembershipsPath(), grantsPath());
|
|
@@ -86,8 +96,10 @@ async function getSyncCipher() {
|
|
|
86
96
|
if (recipients.length === 0) return encryptSyncBlob(data, context);
|
|
87
97
|
if (!_monitoredWriter) {
|
|
88
98
|
process.stderr.write(
|
|
89
|
-
"[exe-os] \u26A0 monitoring grants are active but the monitor writer is not linked in this process \u2014 emitting a device-only (v=1) blob
|
|
99
|
+
"[exe-os] \u26A0 monitoring grants are active but the monitor writer is not linked in this process \u2014 emitting a device-only (v=1) blob for this record and linking the writer now; subsequent records will be monitored.\n"
|
|
90
100
|
);
|
|
101
|
+
void linkMonitoredWriter().catch(() => {
|
|
102
|
+
});
|
|
91
103
|
return encryptSyncBlob(data, context);
|
|
92
104
|
}
|
|
93
105
|
warnActiveMonitoringOnce(recipients);
|
|
@@ -455,23 +467,6 @@ function openSyncBlob(blob, context) {
|
|
|
455
467
|
function routeContext(route) {
|
|
456
468
|
return route.replace(/^\/sync\/(push|pull)-/, "");
|
|
457
469
|
}
|
|
458
|
-
function resolveServerKeyWithin(baseDir, key) {
|
|
459
|
-
if (typeof key !== "string" || key.length === 0) {
|
|
460
|
-
throw new Error("Server-supplied key rejected: not a non-empty string");
|
|
461
|
-
}
|
|
462
|
-
if (key.includes("\0")) {
|
|
463
|
-
throw new Error("Server-supplied key rejected: contains a NUL byte");
|
|
464
|
-
}
|
|
465
|
-
if (path2.isAbsolute(key) || key !== path2.basename(key)) {
|
|
466
|
-
throw new Error(`Server-supplied key rejected: not a plain filename (${JSON.stringify(key)})`);
|
|
467
|
-
}
|
|
468
|
-
const base = path2.resolve(baseDir);
|
|
469
|
-
const full = path2.resolve(base, key);
|
|
470
|
-
if (!full.startsWith(base + path2.sep)) {
|
|
471
|
-
throw new Error(`Server-supplied key rejected: escapes ${base} (${JSON.stringify(key)})`);
|
|
472
|
-
}
|
|
473
|
-
return full;
|
|
474
|
-
}
|
|
475
470
|
var SYNC_PAGE_SIZE = 5e3;
|
|
476
471
|
var SYNC_MAX_ROWS = 5e6;
|
|
477
472
|
async function fetchAllRows(client, table, where) {
|
|
@@ -1283,7 +1278,7 @@ async function cloudSync(config, options) {
|
|
|
1283
1278
|
})
|
|
1284
1279
|
};
|
|
1285
1280
|
if (shouldUseCrdtMergeForCloudSync()) {
|
|
1286
|
-
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-
|
|
1281
|
+
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-FXEKABM7.js");
|
|
1287
1282
|
initCrdtDoc();
|
|
1288
1283
|
importExistingMemories(
|
|
1289
1284
|
pullResult.records.map((rec) => ({
|
|
@@ -1827,24 +1822,12 @@ async function cloudSync(config, options) {
|
|
|
1827
1822
|
}
|
|
1828
1823
|
const codeContextResult = { pushed: 0, pulled: 0 };
|
|
1829
1824
|
if (!shouldSkip("code_context")) {
|
|
1830
|
-
try {
|
|
1831
|
-
codeContextResult.pushed = await cloudPushCodeContext(config);
|
|
1832
|
-
} catch (err) {
|
|
1833
|
-
rethrowIfCorruption(err);
|
|
1834
|
-
logError(`[cloud-sync] Code context push: ${err instanceof Error ? err.message : String(err)}`);
|
|
1835
|
-
}
|
|
1836
|
-
try {
|
|
1837
|
-
codeContextResult.pulled = await cloudPullCodeContext(config);
|
|
1838
|
-
} catch (err) {
|
|
1839
|
-
rethrowIfCorruption(err);
|
|
1840
|
-
logError(`[cloud-sync] Code context pull: ${err instanceof Error ? err.message : String(err)}`);
|
|
1841
|
-
}
|
|
1842
1825
|
await stageDone("code_context");
|
|
1843
1826
|
}
|
|
1844
1827
|
const artifactResult = { pushed: 0, frozen: false, remaining: 0 };
|
|
1845
1828
|
if (!shouldSkip("artifacts")) {
|
|
1846
1829
|
try {
|
|
1847
|
-
const { flushArtifactBackups } = await import("./artifact-backup-
|
|
1830
|
+
const { flushArtifactBackups } = await import("./artifact-backup-EETHNFFP.js");
|
|
1848
1831
|
const flushed = await flushArtifactBackups(cloudArtifactTransport(config));
|
|
1849
1832
|
artifactResult.pushed = flushed.pushed;
|
|
1850
1833
|
artifactResult.frozen = flushed.frozen;
|
|
@@ -3224,100 +3207,6 @@ async function cloudPullDocuments(config) {
|
|
|
3224
3207
|
}
|
|
3225
3208
|
return { pulled };
|
|
3226
3209
|
}
|
|
3227
|
-
var CODE_CONTEXT_DIR = path2.join(EXE_AI_DIR, "code-context");
|
|
3228
|
-
function codeContextIdentity(file) {
|
|
3229
|
-
return `code-context/${file}`;
|
|
3230
|
-
}
|
|
3231
|
-
async function cloudPushCodeContext(config) {
|
|
3232
|
-
assertSecureEndpoint(config.endpoint);
|
|
3233
|
-
if (!existsSync(CODE_CONTEXT_DIR)) return 0;
|
|
3234
|
-
const files = readdirSync(CODE_CONTEXT_DIR).filter(
|
|
3235
|
-
(f) => f.endsWith(".json") && !f.startsWith(".")
|
|
3236
|
-
);
|
|
3237
|
-
if (files.length === 0) return 0;
|
|
3238
|
-
const metaPath = path2.join(CODE_CONTEXT_DIR, ".sync-meta.json");
|
|
3239
|
-
let syncMeta = {};
|
|
3240
|
-
if (existsSync(metaPath)) {
|
|
3241
|
-
try {
|
|
3242
|
-
syncMeta = JSON.parse(readFileSync(metaPath, "utf-8"));
|
|
3243
|
-
} catch (e) {
|
|
3244
|
-
process.stderr.write("[cloud-sync] code-context sync-meta parse failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
3245
|
-
}
|
|
3246
|
-
}
|
|
3247
|
-
let pushed = 0;
|
|
3248
|
-
for (const file of files) {
|
|
3249
|
-
const filePath = path2.join(CODE_CONTEXT_DIR, file);
|
|
3250
|
-
try {
|
|
3251
|
-
const stat = statSync(filePath);
|
|
3252
|
-
const lastPushed = syncMeta[file] ?? 0;
|
|
3253
|
-
if (stat.mtimeMs <= lastPushed) continue;
|
|
3254
|
-
const content = readFileSync(filePath, "utf-8");
|
|
3255
|
-
const header = content.substring(0, 300);
|
|
3256
|
-
if (header.includes("/tmp") || header.includes("/var/folders") || header.includes(".worktrees/")) continue;
|
|
3257
|
-
const compressed = compress(Buffer.from(content, "utf8"));
|
|
3258
|
-
const encrypted = sealSyncBlob(compressed, codeContextIdentity(file));
|
|
3259
|
-
const resp = await fetchWithRetry(`${config.endpoint}/sync/push-code-context`, {
|
|
3260
|
-
method: "POST",
|
|
3261
|
-
headers: await cloudAuthHeaders(config),
|
|
3262
|
-
body: JSON.stringify({ key: file, blob: encrypted })
|
|
3263
|
-
});
|
|
3264
|
-
if (resp.ok) {
|
|
3265
|
-
if (EMIT_BOUND_SYNC_BLOBS) markContextBound(codeContextIdentity(file));
|
|
3266
|
-
syncMeta[file] = stat.mtimeMs;
|
|
3267
|
-
pushed++;
|
|
3268
|
-
}
|
|
3269
|
-
} catch (e) {
|
|
3270
|
-
process.stderr.write("[cloud-sync] code-context push failed (" + file + "): " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
3271
|
-
}
|
|
3272
|
-
}
|
|
3273
|
-
if (pushed > 0) {
|
|
3274
|
-
try {
|
|
3275
|
-
atomicWriteJsonSync(metaPath, syncMeta);
|
|
3276
|
-
} catch (e) {
|
|
3277
|
-
process.stderr.write("[cloud-sync] code-context sync-meta write failed: " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
3278
|
-
}
|
|
3279
|
-
}
|
|
3280
|
-
return pushed;
|
|
3281
|
-
}
|
|
3282
|
-
async function cloudPullCodeContext(config) {
|
|
3283
|
-
assertSecureEndpoint(config.endpoint);
|
|
3284
|
-
try {
|
|
3285
|
-
const resp = await fetchWithRetry(`${config.endpoint}/sync/pull-code-context`, {
|
|
3286
|
-
method: "GET",
|
|
3287
|
-
headers: await cloudAuthHeaders(config, false)
|
|
3288
|
-
});
|
|
3289
|
-
if (!resp.ok) return 0;
|
|
3290
|
-
const data = await resp.json();
|
|
3291
|
-
if (!data.indexes || data.indexes.length === 0) return 0;
|
|
3292
|
-
mkdirSync(CODE_CONTEXT_DIR, { recursive: true });
|
|
3293
|
-
let pulled = 0;
|
|
3294
|
-
for (const { key, blob } of data.indexes) {
|
|
3295
|
-
try {
|
|
3296
|
-
const localPath = resolveServerKeyWithin(CODE_CONTEXT_DIR, key);
|
|
3297
|
-
const compressed = openSyncBlob(blob, codeContextIdentity(path2.basename(localPath)));
|
|
3298
|
-
const content = decompress(compressed).toString("utf8");
|
|
3299
|
-
if (!existsSync(localPath)) {
|
|
3300
|
-
atomicWriteSync(localPath, content);
|
|
3301
|
-
pulled++;
|
|
3302
|
-
} else {
|
|
3303
|
-
const remoteHash = crypto.createHash("sha256").update(content).digest("hex");
|
|
3304
|
-
const localHash = crypto.createHash("sha256").update(readFileSync(localPath, "utf-8")).digest("hex");
|
|
3305
|
-
if (localHash !== remoteHash) {
|
|
3306
|
-
atomicWriteSync(localPath, content);
|
|
3307
|
-
pulled++;
|
|
3308
|
-
}
|
|
3309
|
-
}
|
|
3310
|
-
} catch (e) {
|
|
3311
|
-
process.stderr.write("[cloud-sync] code-context pull failed (" + key + "): " + (e instanceof Error ? e.message : String(e)) + "\n");
|
|
3312
|
-
}
|
|
3313
|
-
}
|
|
3314
|
-
return pulled;
|
|
3315
|
-
} catch (err) {
|
|
3316
|
-
process.stderr.write(`[cloud-sync] Code context pull failed: ${err instanceof Error ? err.message : String(err)}
|
|
3317
|
-
`);
|
|
3318
|
-
return 0;
|
|
3319
|
-
}
|
|
3320
|
-
}
|
|
3321
3210
|
async function cloudPushSchedules(config) {
|
|
3322
3211
|
const { ok } = await cloudPushVersionedBlob(
|
|
3323
3212
|
"schedules",
|
|
@@ -3576,8 +3465,6 @@ export {
|
|
|
3576
3465
|
deriveWorkspaceSlug,
|
|
3577
3466
|
cloudPushDocuments,
|
|
3578
3467
|
cloudPullDocuments,
|
|
3579
|
-
cloudPushCodeContext,
|
|
3580
|
-
cloudPullCodeContext,
|
|
3581
3468
|
cloudPushSchedules,
|
|
3582
3469
|
cloudPullSchedules,
|
|
3583
3470
|
cloudPushTrajectories,
|
|
@@ -3,25 +3,25 @@ import {
|
|
|
3
3
|
} from "./chunk-W4H2MZAS.js";
|
|
4
4
|
import {
|
|
5
5
|
resolvePartnerIdentities
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CJ6CS2IH.js";
|
|
7
7
|
import {
|
|
8
8
|
OrgKeyPinConflictError,
|
|
9
9
|
orgKeyPinConfirmation,
|
|
10
10
|
pinOrgKey,
|
|
11
11
|
readOrgKeyPin
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-6PXFF6IV.js";
|
|
13
13
|
import {
|
|
14
14
|
displayFingerprint,
|
|
15
15
|
ed25519PrivateKeyFromSeed,
|
|
16
16
|
signKeyFingerprint
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-MZNLQC6W.js";
|
|
18
18
|
import {
|
|
19
19
|
establishOrgMode,
|
|
20
20
|
upsertOrgMembership
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-LLZUL7M2.js";
|
|
22
22
|
import {
|
|
23
23
|
isValidX25519Recipient
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-7SHU5MOD.js";
|
|
25
25
|
|
|
26
26
|
// src/lib/org-join.ts
|
|
27
27
|
import { createHash, sign } from "crypto";
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PLATFORM_PROCEDURES,
|
|
3
|
+
PLATFORM_PROCEDURE_TITLES
|
|
4
|
+
} from "./chunk-4CN3EE6U.js";
|
|
5
|
+
import {
|
|
6
|
+
fastDbInit
|
|
7
|
+
} from "./chunk-N45FAI6D.js";
|
|
8
|
+
import {
|
|
9
|
+
getClient
|
|
10
|
+
} from "./chunk-L5JFVK5T.js";
|
|
11
|
+
import {
|
|
12
|
+
EXE_AI_DIR
|
|
13
|
+
} from "./chunk-MMS2HBRT.js";
|
|
14
|
+
import {
|
|
15
|
+
atomicWriteSync,
|
|
16
|
+
ensurePrivateDirSync
|
|
17
|
+
} from "./chunk-HSGBZSCA.js";
|
|
18
|
+
|
|
19
|
+
// src/lib/global-procedures.ts
|
|
20
|
+
import { randomUUID } from "crypto";
|
|
21
|
+
import { readFileSync } from "fs";
|
|
22
|
+
import path from "path";
|
|
23
|
+
var _customerCache = "";
|
|
24
|
+
var _cacheLoaded = false;
|
|
25
|
+
var _loadPromise = null;
|
|
26
|
+
var _snapshotCache = "";
|
|
27
|
+
var _snapshotLoadedAt = null;
|
|
28
|
+
var _platformCache = PLATFORM_PROCEDURES.map((p) => `### ${p.title}
|
|
29
|
+
${p.content}`).join("\n\n");
|
|
30
|
+
async function loadGlobalProcedures() {
|
|
31
|
+
const client = getClient();
|
|
32
|
+
const result = await client.execute({
|
|
33
|
+
sql: "SELECT * FROM company_procedures WHERE active = 1 ORDER BY priority ASC, created_at ASC",
|
|
34
|
+
args: []
|
|
35
|
+
});
|
|
36
|
+
const allRows = result.rows;
|
|
37
|
+
const customerOnly = filterCustomerProcedures(allRows);
|
|
38
|
+
_customerCache = renderCustomerProcedures(customerOnly);
|
|
39
|
+
_cacheLoaded = true;
|
|
40
|
+
writeCompanyProceduresSnapshot(customerOnly);
|
|
41
|
+
return customerOnly;
|
|
42
|
+
}
|
|
43
|
+
function filterCustomerProcedures(rows) {
|
|
44
|
+
return rows.filter((p) => {
|
|
45
|
+
if (PLATFORM_PROCEDURE_TITLES.has(p.title)) return false;
|
|
46
|
+
const title = (p.title ?? "").trim();
|
|
47
|
+
const content = (p.content ?? "").trim();
|
|
48
|
+
if (!title || title === "(untitled)") return false;
|
|
49
|
+
if (!content) return false;
|
|
50
|
+
return true;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function renderCustomerProcedures(rows) {
|
|
54
|
+
const values = rows.filter((p) => p.kind === "value");
|
|
55
|
+
const procedures = rows.filter((p) => p.kind !== "value");
|
|
56
|
+
const parts = [];
|
|
57
|
+
if (values.length > 0) {
|
|
58
|
+
parts.push("### Company Values\n" + values.map((v) => `- **${v.title}:** ${v.content}`).join("\n"));
|
|
59
|
+
}
|
|
60
|
+
if (procedures.length > 0) {
|
|
61
|
+
parts.push(procedures.map((p) => `### ${p.title}
|
|
62
|
+
${p.content}`).join("\n\n"));
|
|
63
|
+
}
|
|
64
|
+
return parts.join("\n\n");
|
|
65
|
+
}
|
|
66
|
+
function companyProceduresSnapshotPath() {
|
|
67
|
+
return path.join(EXE_AI_DIR, "procedures-cache", "company-procedures.json");
|
|
68
|
+
}
|
|
69
|
+
function existingSnapshotHasProcedures() {
|
|
70
|
+
let raw;
|
|
71
|
+
try {
|
|
72
|
+
raw = readFileSync(companyProceduresSnapshotPath(), "utf8");
|
|
73
|
+
} catch {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
const parsed = JSON.parse(raw);
|
|
78
|
+
return Array.isArray(parsed.procedures) && parsed.procedures.length > 0;
|
|
79
|
+
} catch {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function writeCompanyProceduresSnapshot(rows) {
|
|
84
|
+
try {
|
|
85
|
+
if (rows.length === 0 && existingSnapshotHasProcedures()) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const target = companyProceduresSnapshotPath();
|
|
89
|
+
ensurePrivateDirSync(path.dirname(target));
|
|
90
|
+
const snapshot = {
|
|
91
|
+
version: 1,
|
|
92
|
+
loadedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
93
|
+
procedures: rows.map((p) => ({
|
|
94
|
+
id: String(p.id),
|
|
95
|
+
title: String(p.title),
|
|
96
|
+
content: String(p.content),
|
|
97
|
+
priority: String(p.priority ?? "p0"),
|
|
98
|
+
domain: p.domain ?? null,
|
|
99
|
+
kind: p.kind === "value" ? "value" : "procedure"
|
|
100
|
+
}))
|
|
101
|
+
};
|
|
102
|
+
atomicWriteSync(target, JSON.stringify(snapshot) + "\n");
|
|
103
|
+
} catch (err) {
|
|
104
|
+
process.stderr.write(
|
|
105
|
+
`[global-procedures] could not write company-procedures snapshot: ${describeError(err)}
|
|
106
|
+
`
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function loadCompanyProceduresSnapshot() {
|
|
111
|
+
let raw;
|
|
112
|
+
try {
|
|
113
|
+
raw = readFileSync(companyProceduresSnapshotPath(), "utf8");
|
|
114
|
+
} catch {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
try {
|
|
118
|
+
const parsed = JSON.parse(raw);
|
|
119
|
+
if (parsed?.version !== 1 || typeof parsed.loadedAt !== "string" || !Array.isArray(parsed.procedures)) {
|
|
120
|
+
throw new Error("unrecognised snapshot shape");
|
|
121
|
+
}
|
|
122
|
+
const rows = filterCustomerProcedures(
|
|
123
|
+
parsed.procedures.filter(
|
|
124
|
+
(p) => !!p && typeof p.title === "string" && typeof p.content === "string"
|
|
125
|
+
)
|
|
126
|
+
);
|
|
127
|
+
_snapshotCache = renderCustomerProcedures(rows);
|
|
128
|
+
_snapshotLoadedAt = parsed.loadedAt;
|
|
129
|
+
return { loadedAt: parsed.loadedAt, count: rows.length };
|
|
130
|
+
} catch (err) {
|
|
131
|
+
process.stderr.write(
|
|
132
|
+
`[global-procedures] ignoring unreadable company-procedures snapshot: ${describeError(err)}
|
|
133
|
+
`
|
|
134
|
+
);
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function companyProceduresSnapshotNote(loadedAt) {
|
|
139
|
+
return `\u26A0 Company procedures below come from a last-known-good snapshot taken at ${loadedAt} (live load failed at launch; stale but present, run config company_procedure list to refresh)`;
|
|
140
|
+
}
|
|
141
|
+
function getCompanyProceduresSource() {
|
|
142
|
+
if (_cacheLoaded) return "live";
|
|
143
|
+
if (_snapshotLoadedAt !== null) return "snapshot";
|
|
144
|
+
return "none";
|
|
145
|
+
}
|
|
146
|
+
function describeError(err) {
|
|
147
|
+
if (err instanceof Error) return `${err.name}: ${err.message}`;
|
|
148
|
+
return String(err);
|
|
149
|
+
}
|
|
150
|
+
function classifyProceduresLoadError(err) {
|
|
151
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
152
|
+
if (/timeout|timed out/i.test(msg)) return "timeout";
|
|
153
|
+
if (/not initialized|not connected|write failed|connection closed/i.test(msg)) return "no-client";
|
|
154
|
+
return "query-error";
|
|
155
|
+
}
|
|
156
|
+
async function loadGlobalProceduresOrSnapshot() {
|
|
157
|
+
try {
|
|
158
|
+
await loadGlobalProcedures();
|
|
159
|
+
return { source: "live" };
|
|
160
|
+
} catch (err) {
|
|
161
|
+
const error = `${classifyProceduresLoadError(err)}: ${describeError(err)}`;
|
|
162
|
+
const snap = loadCompanyProceduresSnapshot();
|
|
163
|
+
return { source: snap ? "snapshot" : "none", error };
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
var COMPANY_PROCEDURES_NOT_LOADED_LINE = "\u26A0 Company procedures NOT loaded; run config company_procedure list";
|
|
167
|
+
async function ensureGlobalProceduresLoaded() {
|
|
168
|
+
if (_cacheLoaded) return;
|
|
169
|
+
if (!_loadPromise) {
|
|
170
|
+
_loadPromise = (async () => {
|
|
171
|
+
const client = await fastDbInit({ daemonOnly: true });
|
|
172
|
+
if (client?.__exeNoopClient === true) {
|
|
173
|
+
throw new Error("daemon unavailable: fastDbInit degraded to its no-op client (no direct DB open)");
|
|
174
|
+
}
|
|
175
|
+
return loadGlobalProcedures();
|
|
176
|
+
})().catch((err) => {
|
|
177
|
+
const snap = loadCompanyProceduresSnapshot();
|
|
178
|
+
process.stderr.write(
|
|
179
|
+
`[global-procedures] company procedures load failed: ${String(err)}` + (snap ? ` (using last-known-good snapshot from ${snap.loadedAt}, ${snap.count} procedures)
|
|
180
|
+
` : " (no snapshot available)\n")
|
|
181
|
+
);
|
|
182
|
+
return [];
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
try {
|
|
186
|
+
await _loadPromise;
|
|
187
|
+
} finally {
|
|
188
|
+
if (!_cacheLoaded) _loadPromise = null;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
function getGlobalProceduresBlock() {
|
|
192
|
+
const sections = [];
|
|
193
|
+
if (_platformCache) sections.push(_platformCache);
|
|
194
|
+
if (_cacheLoaded) {
|
|
195
|
+
if (_customerCache) sections.push(_customerCache);
|
|
196
|
+
} else if (_snapshotLoadedAt !== null) {
|
|
197
|
+
sections.push(companyProceduresSnapshotNote(_snapshotLoadedAt));
|
|
198
|
+
if (_snapshotCache) sections.push(_snapshotCache);
|
|
199
|
+
} else {
|
|
200
|
+
sections.push(COMPANY_PROCEDURES_NOT_LOADED_LINE);
|
|
201
|
+
}
|
|
202
|
+
if (sections.length === 0) return "";
|
|
203
|
+
return `## Organization-Wide Procedures (MANDATORY \u2014 supersedes all other rules)
|
|
204
|
+
|
|
205
|
+
${sections.join("\n\n")}
|
|
206
|
+
`;
|
|
207
|
+
}
|
|
208
|
+
async function storeGlobalProcedure(input) {
|
|
209
|
+
if (!input.title?.trim() || !input.content?.trim()) {
|
|
210
|
+
throw new Error("storeGlobalProcedure requires a non-empty title and content");
|
|
211
|
+
}
|
|
212
|
+
const id = randomUUID();
|
|
213
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
214
|
+
const client = getClient();
|
|
215
|
+
await client.execute({
|
|
216
|
+
sql: `INSERT INTO company_procedures (id, title, content, priority, domain, kind, active, created_at, updated_at)
|
|
217
|
+
VALUES (?, ?, ?, ?, ?, ?, 1, ?, ?)`,
|
|
218
|
+
args: [id, input.title, input.content, input.priority ?? "p0", input.domain ?? null, input.kind ?? "procedure", now, now]
|
|
219
|
+
});
|
|
220
|
+
await loadGlobalProcedures();
|
|
221
|
+
return id;
|
|
222
|
+
}
|
|
223
|
+
async function deactivateGlobalProcedure(id) {
|
|
224
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
225
|
+
const client = getClient();
|
|
226
|
+
const result = await client.execute({
|
|
227
|
+
sql: "UPDATE company_procedures SET active = 0, updated_at = ? WHERE id = ?",
|
|
228
|
+
args: [now, id]
|
|
229
|
+
});
|
|
230
|
+
await loadGlobalProcedures();
|
|
231
|
+
return result.rowsAffected > 0;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
export {
|
|
235
|
+
loadGlobalProcedures,
|
|
236
|
+
companyProceduresSnapshotPath,
|
|
237
|
+
loadCompanyProceduresSnapshot,
|
|
238
|
+
companyProceduresSnapshotNote,
|
|
239
|
+
getCompanyProceduresSource,
|
|
240
|
+
describeError,
|
|
241
|
+
classifyProceduresLoadError,
|
|
242
|
+
loadGlobalProceduresOrSnapshot,
|
|
243
|
+
COMPANY_PROCEDURES_NOT_LOADED_LINE,
|
|
244
|
+
ensureGlobalProceduresLoaded,
|
|
245
|
+
getGlobalProceduresBlock,
|
|
246
|
+
storeGlobalProcedure,
|
|
247
|
+
deactivateGlobalProcedure
|
|
248
|
+
};
|
|
@@ -10,10 +10,10 @@ import {
|
|
|
10
10
|
} from "./chunk-VGMACSEV.js";
|
|
11
11
|
import {
|
|
12
12
|
WORK_STATE_HEARTBEAT_TOOL
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-MOBZTIJQ.js";
|
|
14
14
|
import {
|
|
15
15
|
hashMemoryContent
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-FYSKQPTE.js";
|
|
17
17
|
|
|
18
18
|
// src/lib/graph-rag.ts
|
|
19
19
|
import crypto from "crypto";
|
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
BUSY_PATTERN,
|
|
3
3
|
sendIntercom,
|
|
4
4
|
updateTaskStatus
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-GM4UEZDE.js";
|
|
6
6
|
import {
|
|
7
7
|
recordOrchestrationEventBestEffort
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-JGBYZTWH.js";
|
|
9
9
|
import {
|
|
10
10
|
hasPassed
|
|
11
11
|
} from "./chunk-YRUZK2QA.js";
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
baseAgentName,
|
|
14
14
|
getCoordinatorName,
|
|
15
15
|
isCoordinatorName
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-L5JFVK5T.js";
|
|
17
17
|
import {
|
|
18
18
|
isAutonomousTmuxSpawnEnabled
|
|
19
19
|
} from "./chunk-MMS2HBRT.js";
|
|
@@ -338,7 +338,7 @@ async function surfaceStaleDispatchPendingSignals(scopeList, now, thresholdMs =
|
|
|
338
338
|
const sessionScope = signalScope ?? (scopeList.length === 1 ? scopeList[0] : null);
|
|
339
339
|
if (allowedScopes.size > 0 && sessionScope && !allowedScopes.has(sessionScope)) continue;
|
|
340
340
|
try {
|
|
341
|
-
const { writeNotification } = await import("./notifications-
|
|
341
|
+
const { writeNotification } = await import("./notifications-6FCQCJ4P.js");
|
|
342
342
|
await writeNotification({
|
|
343
343
|
agentId: getCoordinatorName(),
|
|
344
344
|
agentRole: "COO",
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
dispatchTaskToEmployee,
|
|
3
3
|
markTaskNotificationsRead,
|
|
4
4
|
notifyTaskDone
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-DHLJZDWI.js";
|
|
6
6
|
import {
|
|
7
7
|
clearCurrentTask,
|
|
8
8
|
writeCurrentTask
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
strictSessionScopeFilter,
|
|
20
20
|
updateTaskStatus,
|
|
21
21
|
writeNotification
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-GM4UEZDE.js";
|
|
23
23
|
import {
|
|
24
24
|
getAgentContext
|
|
25
25
|
} from "./chunk-GJV3WDWM.js";
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
getClient,
|
|
31
31
|
getCoordinatorName,
|
|
32
32
|
isCoordinatorName
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-L5JFVK5T.js";
|
|
34
34
|
import {
|
|
35
35
|
isAutonomousTmuxSpawnEnabled
|
|
36
36
|
} from "./chunk-MMS2HBRT.js";
|
|
@@ -85,7 +85,7 @@ async function cascadeUnblock(taskId, baseDir, now) {
|
|
|
85
85
|
if (unblockedRows.rows.length > 0 && !process.env.VITEST) {
|
|
86
86
|
const autonomousSpawnAllowed = isAutonomousTmuxSpawnEnabled();
|
|
87
87
|
try {
|
|
88
|
-
const { dispatchTaskToEmployee: dispatchTaskToEmployee2 } = await import("./tasks-notify-
|
|
88
|
+
const { dispatchTaskToEmployee: dispatchTaskToEmployee2 } = await import("./tasks-notify-BDM2NEHP.js");
|
|
89
89
|
const dispatched = /* @__PURE__ */ new Set();
|
|
90
90
|
for (const ur of unblockedRows.rows) {
|
|
91
91
|
if (!unblockedRowMayAutoDispatch(ur, autonomousSpawnAllowed)) continue;
|
|
@@ -97,7 +97,7 @@ async function cascadeUnblock(taskId, baseDir, now) {
|
|
|
97
97
|
}
|
|
98
98
|
} catch {
|
|
99
99
|
try {
|
|
100
|
-
const { queueIntercom } = await import("./intercom-queue-
|
|
100
|
+
const { queueIntercom } = await import("./intercom-queue-ZJ3MNULM.js");
|
|
101
101
|
const dispatched = /* @__PURE__ */ new Set();
|
|
102
102
|
for (const ur of unblockedRows.rows) {
|
|
103
103
|
if (!unblockedRowIsDurableTmux(ur)) continue;
|
|
@@ -313,7 +313,7 @@ async function updateTask(input, deps = {}) {
|
|
|
313
313
|
try {
|
|
314
314
|
process.stderr.write(`[tasks] EVENT: tmux delivery failed for reviewer="${reviewer}". Queueing for daemon delivery.
|
|
315
315
|
`);
|
|
316
|
-
const { queueIntercom } = await import("./intercom-queue-
|
|
316
|
+
const { queueIntercom } = await import("./intercom-queue-ZJ3MNULM.js");
|
|
317
317
|
const { resolveExeSession } = await import("./lib/tmux-routing.js");
|
|
318
318
|
const exeSession = row.session_scope ? String(row.session_scope) : resolveExeSession();
|
|
319
319
|
if (exeSession) {
|
|
@@ -330,7 +330,7 @@ async function updateTask(input, deps = {}) {
|
|
|
330
330
|
}
|
|
331
331
|
}
|
|
332
332
|
try {
|
|
333
|
-
const { pushNotifyAsync } = await import("./push-notifications-
|
|
333
|
+
const { pushNotifyAsync } = await import("./push-notifications-QW4BWRC7.js");
|
|
334
334
|
pushNotifyAsync({
|
|
335
335
|
event: "review_ready",
|
|
336
336
|
title: `Review ready: ${taskTitle.slice(0, 50)}`,
|
|
@@ -342,7 +342,7 @@ async function updateTask(input, deps = {}) {
|
|
|
342
342
|
}
|
|
343
343
|
if (isLegacyExecution && !isCoordinator && isCompletionReviewTransition) {
|
|
344
344
|
try {
|
|
345
|
-
const { pushNotifyAsync } = await import("./push-notifications-
|
|
345
|
+
const { pushNotifyAsync } = await import("./push-notifications-QW4BWRC7.js");
|
|
346
346
|
const event = input.status === "needs_review" ? "review_ready" : "task_complete";
|
|
347
347
|
pushNotifyAsync({
|
|
348
348
|
event,
|
|
@@ -357,7 +357,7 @@ async function updateTask(input, deps = {}) {
|
|
|
357
357
|
await markTaskNotificationsRead(taskFile);
|
|
358
358
|
if (isLegacyExecution && isCompletionReviewTransition && !isCoordinator && row.reviewer) {
|
|
359
359
|
try {
|
|
360
|
-
const { writeNotification: writeNotification2 } = await import("./notifications-
|
|
360
|
+
const { writeNotification: writeNotification2 } = await import("./notifications-6FCQCJ4P.js");
|
|
361
361
|
const reviewer = String(row.reviewer);
|
|
362
362
|
await writeNotification2({
|
|
363
363
|
agentId: reviewer,
|