@askexenow/exe-os 0.9.372 → 0.9.374
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deploy/compose/.env.customer.example +45 -10
- package/deploy/compose/.env.example +46 -9
- package/deploy/compose/docker-compose.yml +136 -18
- package/deploy/compose/generate-env.ts +142 -34
- package/deploy/compose/sso-edge/default.conf.template +78 -7
- package/deploy/compose/sso-edge/sso-redirect.conf +109 -13
- package/deploy/stack-manifests/v0.9.30-apps.json +1 -1
- package/deploy/stack-manifests/v0.9.json +4 -4
- package/dist/.dist-verified.json +3 -3
- package/dist/{active-agent-GRT5MKD5.js → active-agent-ONPPEWQV.js} +7 -6
- package/dist/{active-agent-L2ZSSXDK.js → active-agent-UJKMG7LJ.js} +7 -6
- package/dist/{agent-defs-generator-M4ZNYIVX.js → agent-defs-generator-ZWI6DXOE.js} +6 -5
- package/dist/{agent-loop-FOK2IRZQ.js → agent-loop-OYHJKNYH.js} +1 -1
- package/dist/{agentic-ontology-DMPRDEUX.js → agentic-ontology-WHFJ3QFS.js} +1 -1
- package/dist/{artifact-backup-767STHSW.js → artifact-backup-WXZNB7KE.js} +2 -1
- package/dist/{backfill-gate-VX2RZTQV.js → backfill-gate-KWJQ35YX.js} +3 -2
- package/dist/{backfill-metadata-ZMEHJQ5M.js → backfill-metadata-3OUSQD5V.js} +8 -7
- package/dist/{background-jobs-LTPWCMA3.js → background-jobs-6VMD55PK.js} +3 -2
- package/dist/{backup-verify-EX2K732J.js → backup-verify-ZKTUYLTA.js} +4 -3
- package/dist/{behavior-injection-22AGMS25.js → behavior-injection-M6UYZCMW.js} +17 -15
- package/dist/{behaviors-DVFXAWF5.js → behaviors-ZJ45TFBJ.js} +21 -13
- package/dist/bin/age-ontology-load.js +3 -2
- package/dist/bin/agentic-ontology-backfill.js +10 -9
- package/dist/bin/agentic-reflection-backfill.js +11 -10
- package/dist/bin/agentic-semantic-label.js +10 -9
- package/dist/bin/backfill-conversations.js +13 -11
- package/dist/bin/backfill-responses.js +13 -11
- package/dist/bin/backfill-vectors.js +17 -15
- package/dist/bin/bulk-sync-postgres.js +22 -20
- package/dist/bin/cc-doctor.js +10 -9
- package/dist/bin/cleanup-stale-review-tasks.js +29 -26
- package/dist/bin/cli.js +36 -26
- package/dist/bin/deferred-daemon-restart.js +114 -110
- package/dist/bin/exe-agent-config.js +6 -5
- package/dist/bin/exe-agent.js +127 -33
- package/dist/bin/exe-assign.js +15 -13
- package/dist/bin/exe-boot.js +57 -54
- package/dist/bin/exe-call.js +8 -7
- package/dist/bin/exe-cloud.js +24 -22
- package/dist/bin/exe-config-dump.js +6 -5
- package/dist/bin/exe-dispatch.js +30 -27
- package/dist/bin/exe-doctor.js +14 -10
- package/dist/bin/exe-export-behaviors.js +19 -17
- package/dist/bin/exe-forget.js +10 -9
- package/dist/bin/exe-gateway.js +199 -19
- package/dist/bin/exe-grant.js +5 -5
- package/dist/bin/exe-healthcheck.js +10 -9
- package/dist/bin/exe-heartbeat.js +35 -32
- package/dist/bin/exe-kill.js +34 -31
- package/dist/bin/exe-launch-agent.js +126 -54
- package/dist/bin/exe-mcp.js +6 -5
- package/dist/bin/exe-memory-reads.js +8 -7
- package/dist/bin/exe-new-employee.js +12 -11
- package/dist/bin/exe-os-mcp-proxy.js +6 -5
- package/dist/bin/exe-pending-messages.js +30 -27
- package/dist/bin/exe-pending-notifications.js +29 -26
- package/dist/bin/exe-pending-reviews.js +30 -27
- package/dist/bin/exe-rename.js +8 -7
- package/dist/bin/exe-repo-truth.js +1 -1
- package/dist/bin/exe-review.js +33 -30
- package/dist/bin/exe-search.js +9 -8
- package/dist/bin/exe-session-cleanup.js +35 -32
- package/dist/bin/exe-settings.js +24 -22
- package/dist/bin/exe-start-codex.js +137 -55
- package/dist/bin/exe-start-opencode.js +121 -23
- package/dist/bin/exe-status.js +31 -28
- package/dist/bin/exe-support.js +5 -4
- package/dist/bin/exe-team.js +7 -6
- package/dist/bin/exe-watchdog.js +31 -11
- package/dist/bin/generate-hook-manifest.js +44 -7
- package/dist/bin/git-sweep.js +31 -28
- package/dist/bin/graph-backfill.js +89 -35
- package/dist/bin/graph-export.js +9 -8
- package/dist/bin/import-history.js +14 -13
- package/dist/bin/install.js +137 -113
- package/dist/bin/intercom-check.js +5 -5
- package/dist/bin/mcp-sessions.js +2 -2
- package/dist/bin/orchestration-metrics.js +7 -6
- package/dist/bin/postgres-agentic-reflection-backfill.js +5 -4
- package/dist/bin/postgres-agentic-semantic-backfill.js +4 -3
- 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/scan-tasks.js +29 -26
- package/dist/bin/setup.js +5 -4
- package/dist/bin/shard-migrate.js +9 -8
- package/dist/bin/stack-update.js +40 -9
- package/dist/bin/verify-stack.js +2 -2
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{boot-generation-OHXH4YC5.js → boot-generation-JKVZ4ZAT.js} +6 -5
- package/dist/{boot-review-sections-N5IXIGSS.js → boot-review-sections-2M6BTG73.js} +28 -25
- package/dist/{branch-hygiene-KCGXRAWP.js → branch-hygiene-U5GFRSTP.js} +31 -7
- package/dist/{branding-GH43W3PU.js → branding-I6KIMB7F.js} +3 -2
- package/dist/budget-fallback-XJRPMP2D.js +11 -0
- package/dist/build-manifest.json +1318 -1233
- package/dist/{capability-cards-4PXVLIVS.js → capability-cards-5IMJT6J7.js} +5 -4
- package/dist/{capacity-monitor-FKMQXORX.js → capacity-monitor-SAXCQK7O.js} +30 -27
- package/dist/{catchup-brief-SN5EKO4N.js → catchup-brief-U2TXBLHD.js} +34 -31
- package/dist/{chunk-CNC57JCS.js → chunk-23MVDXLY.js} +4 -4
- package/dist/{chunk-V4XAKXXF.js → chunk-2AJGV5UL.js} +1 -1
- package/dist/{chunk-FBYAXTDM.js → chunk-2ZOEC4KC.js} +10 -2
- package/dist/{chunk-ELXFSIIM.js → chunk-32YV32VA.js} +2 -2
- package/dist/{chunk-44C7QNZS.js → chunk-3KDCORDO.js} +1 -1
- package/dist/{chunk-JTB5V6BV.js → chunk-3SXHEQ7X.js} +1 -1
- package/dist/{chunk-HDW4XPDV.js → chunk-3UUX5OY4.js} +1 -1
- package/dist/{chunk-7PSLK36P.js → chunk-44TLJZJ5.js} +1 -1
- package/dist/{chunk-JTWTBX2M.js → chunk-4EN3IZ3Q.js} +2 -1
- package/dist/{chunk-KPMC7PY7.js → chunk-4HKTO2SV.js} +1 -1
- package/dist/{chunk-CDUB5Q6J.js → chunk-4IK2K3B3.js} +1 -1
- package/dist/{chunk-GH6YJOOC.js → chunk-4SJ4LK4V.js} +6 -6
- package/dist/{chunk-PVEM537A.js → chunk-4YLBKEL5.js} +2 -2
- package/dist/chunk-4YNA3CM6.js +872 -0
- package/dist/{chunk-KYFFVTGO.js → chunk-55BEFF4V.js} +3 -3
- package/dist/{chunk-SEP5ITFQ.js → chunk-636LKCKE.js} +2 -2
- package/dist/{chunk-QTI4QAWA.js → chunk-6EZQUNE6.js} +338 -5
- package/dist/{chunk-WAEKYKTK.js → chunk-6RKKVPYF.js} +1 -1
- package/dist/{chunk-VX2F4ZUY.js → chunk-6SCGLHJ7.js} +3 -3
- package/dist/{chunk-MEGRQ53A.js → chunk-6VHOQ3IM.js} +51 -6
- package/dist/{chunk-HIIXCAEE.js → chunk-6YVUR3OU.js} +3 -3
- package/dist/{chunk-L6ZNURWN.js → chunk-7GE2EQ23.js} +1 -1
- package/dist/{chunk-2CWS374F.js → chunk-7RI2CNXJ.js} +1 -1
- package/dist/{chunk-OL3QP3AU.js → chunk-7TSBV3SD.js} +1 -1
- package/dist/{chunk-DSOQUQTV.js → chunk-A27Q27CT.js} +27 -0
- package/dist/{chunk-5AHRZI3R.js → chunk-AETLDRZB.js} +1 -1
- package/dist/{chunk-RNLF3CBB.js → chunk-AKLJ4JH3.js} +1 -1
- package/dist/{chunk-XHYHX6F7.js → chunk-AKLQSC6W.js} +329 -164
- package/dist/chunk-ANLFH23R.js +261 -0
- package/dist/{chunk-QLA3RTH4.js → chunk-AWWKRZMB.js} +5 -5
- package/dist/{chunk-ERVQTR7P.js → chunk-BBSIEYF5.js} +17 -3
- package/dist/{chunk-IPMUWYRQ.js → chunk-BJ7AVSY6.js} +2 -2
- package/dist/{chunk-HV6Y6F4X.js → chunk-C2L622QJ.js} +89 -3
- package/dist/{chunk-TX3Q2GIL.js → chunk-C5HUMAA7.js} +24 -1
- package/dist/{chunk-QTYJPWJN.js → chunk-CBCGDEJA.js} +7 -7
- package/dist/{chunk-XXSNLM6R.js → chunk-DB55JZHU.js} +1 -1
- package/dist/{chunk-LAZKEJMS.js → chunk-DIXXEE3S.js} +840 -607
- package/dist/{chunk-FB343XQX.js → chunk-DJ7YXOTU.js} +2 -2
- package/dist/{chunk-YFCNWQAM.js → chunk-DJOIMFKV.js} +2 -2
- package/dist/{chunk-UTDMTQNH.js → chunk-DSJI76XL.js} +92 -14
- package/dist/{chunk-EEXX4UMQ.js → chunk-DZKPOSFD.js} +1 -1
- package/dist/{chunk-WSOA3WMC.js → chunk-E426DOSY.js} +161 -4
- package/dist/{chunk-ZISQOOER.js → chunk-EKE37MO4.js} +3 -3
- package/dist/{chunk-RIECV7SR.js → chunk-EKYYMIVT.js} +1 -1
- package/dist/{chunk-HIVZ53YB.js → chunk-EXTZSNWL.js} +2 -2
- package/dist/{chunk-YYA5LXCT.js → chunk-FNEZ4BWT.js} +1 -1
- package/dist/chunk-FTZET5YX.js +313 -0
- package/dist/chunk-GHR4ZPJ7.js +70 -0
- package/dist/{chunk-MINXPXAB.js → chunk-GJI77VDO.js} +3 -3
- package/dist/{chunk-AAMGHW5W.js → chunk-GLQEJOXE.js} +1 -0
- package/dist/{chunk-ADNBOKYZ.js → chunk-GM7TLYOK.js} +60 -18
- package/dist/{chunk-RUWWES2K.js → chunk-GNUAL43X.js} +2 -2
- package/dist/{chunk-QZL6E4UB.js → chunk-GOMQ7PVQ.js} +2 -2
- package/dist/{chunk-GB3AHV5F.js → chunk-GQOEWNVM.js} +1 -1
- package/dist/{chunk-NQZUSEAR.js → chunk-GS7LIT34.js} +246 -17
- package/dist/{chunk-XTWHNLGD.js → chunk-GZOG2MAX.js} +1 -1
- package/dist/{chunk-E5HAY3DQ.js → chunk-HDLAB7W3.js} +1 -1
- package/dist/{chunk-E5QQZDQN.js → chunk-HNWS7YHN.js} +358 -136
- package/dist/{chunk-VV5EZZNT.js → chunk-HTBEVCO2.js} +1 -1
- package/dist/{chunk-OZBII5E3.js → chunk-I4DNJFDR.js} +4 -4
- package/dist/{chunk-SI5SZAJA.js → chunk-IBS2FAI4.js} +21 -4
- package/dist/{chunk-J5EYOBFF.js → chunk-IHXW4VUI.js} +1 -1
- package/dist/{chunk-RUVO3NJC.js → chunk-IN6CAM4F.js} +9 -3
- package/dist/{chunk-53PYNYTW.js → chunk-IRVOXUSK.js} +5 -5
- package/dist/{chunk-THM7J6UI.js → chunk-JHI5WMK5.js} +5 -5
- package/dist/{chunk-3KTQWMHI.js → chunk-JSMDRKPJ.js} +12 -4
- package/dist/chunk-JTVIANUB.js +131 -0
- package/dist/{chunk-2ADYTOHQ.js → chunk-K4ESASPL.js} +1 -1
- package/dist/{chunk-YWUQVHDL.js → chunk-KTCXJWJG.js} +1 -1
- package/dist/{chunk-RGUDGC6A.js → chunk-KTU3EAWK.js} +5 -5
- package/dist/{chunk-DKBPCOU4.js → chunk-L6RXG36J.js} +2 -2
- package/dist/{chunk-T4EK56WI.js → chunk-LDNYSMPZ.js} +1 -1
- package/dist/{chunk-RIK5GRWI.js → chunk-LGS2V2XD.js} +3 -3
- package/dist/{chunk-JKXZGRWR.js → chunk-LP4GB656.js} +2 -2
- package/dist/{chunk-H74466TM.js → chunk-M7O7TGGU.js} +1 -1
- package/dist/chunk-MJCSEIFI.js +54 -0
- package/dist/{chunk-IDZPQG2D.js → chunk-MOGA4Q7F.js} +2 -2
- package/dist/{chunk-OYQNNKNS.js → chunk-MXPNVSXI.js} +37 -14
- package/dist/{chunk-UVW7YFAF.js → chunk-N7VEP5B3.js} +4 -4
- package/dist/{chunk-HHE2HV3V.js → chunk-NBXDXKLC.js} +1 -1
- package/dist/{chunk-LDL3S7AC.js → chunk-NKETJCB5.js} +7 -3
- package/dist/{chunk-ECHLVLA7.js → chunk-NMH5ZQPU.js} +1 -1
- package/dist/{chunk-U3XLRMJD.js → chunk-NT7W4RXD.js} +1 -1
- package/dist/{chunk-UQUUNGTP.js → chunk-NUK7EEN5.js} +11 -9
- package/dist/{chunk-GBNB4EWD.js → chunk-ORM7ZFKC.js} +16 -0
- package/dist/{chunk-O4ZFRK6W.js → chunk-OVEQE6YS.js} +244 -49
- package/dist/{chunk-4ZJ5BPY6.js → chunk-PB5S7YOF.js} +2 -2
- package/dist/{chunk-JR23BL74.js → chunk-PDVXWXTL.js} +4 -4
- package/dist/{chunk-3CIMDFXG.js → chunk-PFQ3VEEM.js} +1 -1
- package/dist/{chunk-SBJV2PCU.js → chunk-PHBU4LGO.js} +1 -1
- package/dist/{chunk-W25RLOQ2.js → chunk-PLZSZOZN.js} +3 -3
- package/dist/{chunk-THIJIOE2.js → chunk-PY3FOMRN.js} +18 -6
- package/dist/{chunk-AAUWFXOX.js → chunk-Q3AXXKDF.js} +3 -3
- package/dist/{chunk-VKXS2YGN.js → chunk-QHJR7IMX.js} +2 -2
- package/dist/chunk-QLZ46RCK.js +45 -0
- package/dist/{chunk-UHPMK6QZ.js → chunk-R3CZWFFC.js} +10 -2
- package/dist/{chunk-6XEYELCA.js → chunk-R4CBHKZ2.js} +1 -1
- package/dist/{chunk-5APCDDJZ.js → chunk-R522MWAR.js} +9 -9
- package/dist/chunk-RH4AH3YB.js +80 -0
- package/dist/{chunk-AMKSDKMK.js → chunk-S2WBS6BG.js} +22 -35
- package/dist/{chunk-WUKQVNLP.js → chunk-SEQIPGLU.js} +1 -1
- package/dist/{chunk-7WQRFSZI.js → chunk-SL6KQYDU.js} +26 -6
- package/dist/chunk-SLLLOOEI.js +103 -0
- package/dist/{chunk-5N4SG5NB.js → chunk-T35RCQFE.js} +3 -3
- package/dist/{chunk-7V6M3QUS.js → chunk-T3QUKNLI.js} +1 -1
- package/dist/{chunk-CW2UCKHS.js → chunk-TADAO3HV.js} +2 -2
- package/dist/{chunk-5DCCKHDY.js → chunk-TAMDAOCU.js} +109 -13
- package/dist/{chunk-ZXB56YR2.js → chunk-TFKCERAK.js} +101 -23
- package/dist/{chunk-RBYHJDAT.js → chunk-TQAZTRQ3.js} +3 -3
- package/dist/{chunk-OKGIOWOB.js → chunk-U6SUKSZR.js} +2 -2
- package/dist/{chunk-23QKEUF6.js → chunk-U73AC5AN.js} +34 -12
- package/dist/{chunk-PM6WSWVU.js → chunk-UBK7HK3J.js} +3 -3
- package/dist/{chunk-H37FSTF2.js → chunk-UBMZ3YQU.js} +1 -1
- package/dist/{chunk-JJUGI2YL.js → chunk-UCFC2AEI.js} +1 -1
- package/dist/{chunk-6IWLAQ7O.js → chunk-UCUOGVDX.js} +4 -0
- package/dist/{chunk-E7UCDSUE.js → chunk-UKLN57Q5.js} +2 -2
- package/dist/{chunk-ZYCLSEZT.js → chunk-ULIBLJ6W.js} +33 -11
- package/dist/{chunk-RLR6VVKV.js → chunk-UM3N6VND.js} +4 -4
- package/dist/{chunk-ZNUJFX7L.js → chunk-UQGSBM3U.js} +1 -1
- package/dist/{chunk-ZZXMB5F2.js → chunk-UZDF6FLJ.js} +1 -1
- package/dist/{chunk-LNOS24GV.js → chunk-V3WLC5TJ.js} +2 -95
- package/dist/{chunk-UXLO7VHX.js → chunk-VI4ATC6I.js} +1 -1
- package/dist/{chunk-77JP3LK4.js → chunk-VKJGHAZT.js} +92 -21
- package/dist/{chunk-7R73IAHU.js → chunk-VMTZ4RUW.js} +67 -150
- package/dist/{chunk-TGPQMMQP.js → chunk-VYQ7B7DI.js} +30 -17
- package/dist/{chunk-E2WEFZOR.js → chunk-W75GTHR3.js} +1 -1
- package/dist/{chunk-UKLF7F3Z.js → chunk-WJG344NC.js} +9 -9
- package/dist/{chunk-MBNIJXKI.js → chunk-WMEYJT4R.js} +18 -4
- package/dist/{chunk-R6FLELV6.js → chunk-XFTEX77S.js} +3 -3
- package/dist/{chunk-MDGYXUOV.js → chunk-XH7YL7JM.js} +1 -1
- package/dist/{chunk-JOO35RHR.js → chunk-XL5MFGMR.js} +3 -3
- package/dist/{chunk-OW5RZIDW.js → chunk-XNNECNDL.js} +95 -33
- package/dist/{chunk-5AHDQCTB.js → chunk-XXFKSJYA.js} +6 -6
- package/dist/{chunk-TGEPLJ66.js → chunk-XXOPG4BW.js} +3 -3
- package/dist/{chunk-PGLPUP37.js → chunk-XZ65ST2I.js} +1 -1
- package/dist/{chunk-3TTKAT6V.js → chunk-YKC7QDZH.js} +9 -4
- package/dist/{chunk-KXYFBBZR.js → chunk-YMP2QSOP.js} +20 -3
- package/dist/{chunk-TK4MI6F6.js → chunk-YSLGFPWX.js} +6 -6
- package/dist/{chunk-X2P43TB2.js → chunk-YTSXPJUQ.js} +1 -1
- package/dist/{chunk-HECXZGGZ.js → chunk-ZCERWHY2.js} +33 -35
- package/dist/{chunk-IVU3WN7S.js → chunk-ZG62LIK3.js} +74 -4
- package/dist/{chunk-GU62SNDH.js → chunk-ZGYNKA3O.js} +744 -111
- package/dist/{chunk-QMSEL5YS.js → chunk-ZIG7VPJV.js} +28 -76
- package/dist/{chunk-WZJVGA5I.js → chunk-ZL4AGWAH.js} +258 -13
- package/dist/{chunk-QR624DER.js → chunk-ZSODLMFV.js} +2 -2
- package/dist/{cleanup-graph-garbage-IPYDS5OX.js → cleanup-graph-garbage-DPJGO52H.js} +11 -10
- package/dist/{cloud-sync-command-JLNVG7H4.js → cloud-sync-command-JPNTT4OQ.js} +2 -2
- package/dist/{cloud-sync-db-init-JXUF6GI3.js → cloud-sync-db-init-V2LWIUQU.js} +1 -1
- package/dist/{cloud-sync-shutdown-Z4SBP6PL.js → cloud-sync-shutdown-BNALPWGX.js} +5 -4
- package/dist/{co-activation-74RDFTKS.js → co-activation-CMNSWS6B.js} +5 -4
- package/dist/{co-occurrence-CN3TBYVR.js → co-occurrence-WRI2NAN6.js} +9 -8
- package/dist/{code-context-index-D4MJ4VFX.js → code-context-index-NOJSHLPN.js} +12 -6
- package/dist/code-context-watcher-VZNZU3BO.js +118 -0
- package/dist/{codex-consolidation-PPXNBXCV.js → codex-consolidation-SH4UKFBQ.js} +2 -1
- package/dist/{conversation-entity-extractor-QGTLH4BP.js → conversation-entity-extractor-74252CAO.js} +4 -4
- package/dist/{conversation-wiki-populator-EBUZXYEU.js → conversation-wiki-populator-OS4C6W54.js} +1 -1
- package/dist/conversations-retention-C4BLKFEL.js +54 -0
- package/dist/coordinator-notice-MHUY7AQB.js +55 -0
- package/dist/{crdt-sync-7T4WCOKD.js → crdt-sync-B3JN6AIV.js} +1 -1
- package/dist/{crm-webhook-FTW3XZTO.js → crm-webhook-GYWQRFET.js} +2 -2
- package/dist/{cto-delegation-gate-SZCE34LB.js → cto-delegation-gate-LQHVLEMW.js} +29 -26
- package/dist/{daemon-auth-SSPY5ODS.js → daemon-auth-QZHEO7IQ.js} +3 -2
- package/dist/{daemon-orchestration-IGPHVNFR.js → daemon-orchestration-5HIQALZH.js} +36 -34
- package/dist/{daemon-ready-OT2VQLS7.js → daemon-ready-P2BR2XP5.js} +1 -1
- package/dist/{db-integrity-events-5DTASXJF.js → db-integrity-events-2DTFO37N.js} +3 -2
- package/dist/{db-restore-events-2FI4ZMKA.js → db-restore-events-G6NOQOVE.js} +2 -1
- package/dist/{destructive-data-guard-6I5MDFVD.js → destructive-data-guard-BVFWPPIS.js} +1 -1
- package/dist/doc-graph-extractor-PQHDHQPQ.js +367 -0
- package/dist/{documents-URULIXGM.js → documents-C4SSPJMC.js} +15 -13
- package/dist/{dreaming-VIZO3QDO.js → dreaming-XAO3FCBV.js} +33 -30
- package/dist/{employee-boot-brief-XLOG4ULP.js → employee-boot-brief-W4OHUMRQ.js} +37 -34
- package/dist/{exe-drift-TLQM3IHD.js → exe-drift-AG2KMKD5.js} +6 -5
- package/dist/{exe-export-7YWYWJHY.js → exe-export-IC5BT335.js} +17 -15
- package/dist/{exe-import-DW6VAUKW.js → exe-import-A35ZLDPG.js} +17 -15
- package/dist/{exe-key-TLJP2B4Y.js → exe-key-TCMJNYLA.js} +116 -112
- package/dist/{exe-org-LU46N36E.js → exe-org-JXCR3JYZ.js} +24 -23
- package/dist/{exe-snapshot-QHUZRS62.js → exe-snapshot-SV6SRIG6.js} +36 -33
- package/dist/{fast-db-init-SCTOOIUT.js → fast-db-init-L2RGKJWH.js} +1 -1
- package/dist/{founder-context-ZFZC4UHO.js → founder-context-D4HFIESJ.js} +4 -3
- package/dist/{founder-monitor-envelope-5KTKNL5G.js → founder-monitor-envelope-TFKRGCFE.js} +5 -4
- package/dist/{fts-integrity-LKAZEZJE.js → fts-integrity-4YB34KWX.js} +3 -2
- package/dist/gateway/index.js +19 -17
- package/dist/{git-main-guard-TN27QBAI.js → git-main-guard-VTW4N3CM.js} +7 -1
- package/dist/{git-staleness-GSGP344N.js → git-staleness-TN7CYGFG.js} +5 -4
- package/dist/{global-procedures-YAR7G4C6.js → global-procedures-YFDEIOG7.js} +7 -6
- package/dist/{graph-auto-extract-GNQS64F5.js → graph-auto-extract-3YR3TYRW.js} +9 -8
- package/dist/{graph-rag-RMSFLUOB.js → graph-rag-Z2KCJTPK.js} +6 -4
- package/dist/{hook-integrity-CF567MVN.js → hook-integrity-KGAV6ZC2.js} +14 -4
- package/dist/{hook-prefetch-36BK4F7U.js → hook-prefetch-K5DN3TOQ.js} +29 -26
- package/dist/hooks/bug-report-worker.js +34 -30
- package/dist/hooks/codex-stop-task-finalizer.js +36 -32
- package/dist/hooks/commit-complete.js +33 -30
- package/dist/hooks/error-recall.js +12 -11
- package/dist/hooks/exe-heartbeat-hook.js +8 -7
- package/dist/hooks/ingest-worker.js +23 -11
- package/dist/hooks/ingest.js +18 -17
- package/dist/hooks/instructions-loaded.js +10 -9
- package/dist/hooks/manifest.json +20 -20
- package/dist/hooks/notification.js +9 -8
- package/dist/hooks/post-compact.js +8 -7
- package/dist/hooks/post-tool-combined.js +26 -15
- package/dist/hooks/pre-compact.js +33 -30
- package/dist/hooks/pre-tool-use.js +404 -46
- package/dist/hooks/prompt-submit.js +57 -47
- package/dist/hooks/session-end.js +40 -41
- package/dist/hooks/session-start.js +21 -20
- package/dist/hooks/stop.js +40 -37
- package/dist/hooks/subagent-stop.js +38 -35
- package/dist/hooks/summary-worker.js +39 -36
- package/dist/hyde-MP4QNMU5.js +80 -0
- package/dist/index.js +44 -39
- package/dist/{installer-LUN4HQIC.js → installer-54HTN5RE.js} +8 -7
- package/dist/{installer-OC5VXNC7.js → installer-LK35OX6R.js} +8 -7
- package/dist/{installer-MPRFUQJE.js → installer-LLWKZI2S.js} +8 -7
- package/dist/intercom-ack-VCW755TN.js +13 -0
- package/dist/{intercom-queue-6DZ7BANV.js → intercom-queue-5NOT2RKI.js} +28 -25
- package/dist/{key-backup-status-6L2ARCXW.js → key-backup-status-LQPINQ3W.js} +2 -1
- package/dist/lib/agent-config.js +3 -2
- package/dist/lib/cloud-sync.js +26 -20
- package/dist/lib/config.js +2 -1
- package/dist/lib/consolidation.js +17 -10
- package/dist/lib/database.js +7 -4
- package/dist/lib/db-backup.js +17 -2
- package/dist/lib/db-daemon-client.js +8 -6
- package/dist/lib/db-write-worker-client.js +3 -1
- package/dist/lib/db-write-worker.js +20 -3
- package/dist/lib/db.js +7 -4
- package/dist/lib/device-registry.js +3 -2
- package/dist/lib/embed-worker.js +2 -1
- package/dist/lib/embedder.js +8 -6
- package/dist/lib/employee-templates.js +8 -7
- package/dist/lib/employees.js +5 -4
- package/dist/lib/exe-daemon-client.js +7 -5
- package/dist/lib/exe-daemon.js +467 -221
- package/dist/lib/hybrid-search.js +11 -8
- package/dist/lib/identity.js +5 -4
- package/dist/lib/license.js +4 -3
- package/dist/lib/messaging.js +29 -26
- package/dist/lib/post-tool-memory.js +16 -2
- package/dist/lib/registry-proxy.js +3 -1
- package/dist/lib/reminders.js +6 -5
- package/dist/lib/schedules.js +9 -8
- package/dist/lib/session-registry.js +7 -6
- package/dist/lib/skill-learning.js +16 -14
- package/dist/lib/stack-invariants.js +17 -1
- package/dist/lib/status-brief.js +5 -4
- package/dist/lib/store.js +10 -7
- package/dist/lib/task-router.js +6 -5
- package/dist/lib/tasks.js +31 -27
- package/dist/lib/tmux-routing.js +40 -25
- package/dist/lib/tmux-status.js +3 -1
- package/dist/lib/tmux-transport.js +2 -1
- package/dist/lib/token-spend.js +6 -5
- package/dist/lib/transport.js +3 -2
- package/dist/{license-gate-ESER24PJ.js → license-gate-JVMB6OFD.js} +5 -4
- package/dist/{license-sync-JVG5KNIY.js → license-sync-5VYS2F2W.js} +4 -3
- package/dist/mcp/register-tools.js +113 -109
- package/dist/mcp/server.js +118 -114
- package/dist/mcp/tools/complete-reminder.js +7 -6
- package/dist/mcp/tools/create-reminder.js +7 -6
- package/dist/mcp/tools/create-task.js +34 -30
- package/dist/mcp/tools/deactivate-behavior.js +18 -16
- package/dist/mcp/tools/list-reminders.js +7 -6
- package/dist/mcp/tools/list-tasks.js +34 -30
- package/dist/mcp/tools/send-message.js +32 -29
- package/dist/mcp/tools/update-task.js +32 -28
- package/dist/mcp-child-registry-OTG4MWO7.js +25 -0
- package/dist/{mcp-http-config-6K6IKH5F.js → mcp-http-config-DQWL7U2Z.js} +6 -5
- package/dist/{mcp-session-identity-LRC6WJSD.js → mcp-session-identity-277GASTQ.js} +28 -25
- package/dist/{memory-cards-V3OZHIYP.js → memory-cards-3S2ZQPR7.js} +17 -8
- package/dist/{memory-graph-extractor-JC2Z64L4.js → memory-graph-extractor-A6DFEFIN.js} +10 -9
- package/dist/{memory-poisoning-defense-YM4QJHCX.js → memory-poisoning-defense-ZVP4H6DY.js} +5 -4
- package/dist/{memory-pressure-watchdog-6F6KEQHN.js → memory-pressure-watchdog-6W5F6R7H.js} +29 -26
- package/dist/{memory-queue-QJNWKWKG.js → memory-queue-YF7IDSFY.js} +3 -2
- package/dist/{memory-queue-client-COA4ABEV.js → memory-queue-client-ADSDP6OX.js} +9 -7
- package/dist/{memory-reflection-QXHJPYPC.js → memory-reflection-BKB2YOE6.js} +52 -6
- package/dist/{monitor-grants-BW2WL4IU.js → monitor-grants-EV747HMW.js} +4 -3
- package/dist/{notification-ledger-6QRLQW4Q.js → notification-ledger-CLGM7ODF.js} +30 -27
- package/dist/{notifications-7B6D7Y5C.js → notifications-MACUZPYP.js} +28 -25
- package/dist/{oauth-server-TZFNQAFS.js → oauth-server-AYM37SQ4.js} +25 -4
- package/dist/{orchestration-events-GY5VP5LU.js → orchestration-events-N7LYMUGA.js} +6 -5
- package/dist/{orchestration-phase-UDS24CVQ.js → orchestration-phase-T2WD45UA.js} +3 -2
- package/dist/{orchestrator-JVPVOYWA.js → orchestrator-4X24EWHV.js} +30 -27
- package/dist/{org-brief-session-GRV5R5E3.js → org-brief-session-FZOFMO5U.js} +13 -12
- package/dist/{org-consent-policy-3FHHSYXV.js → org-consent-policy-O5E6HXBL.js} +1 -1
- package/dist/{org-join-BY4PV6UO.js → org-join-POWUG25F.js} +8 -7
- package/dist/{org-key-admin-WSCPT2CZ.js → org-key-admin-E7EMDOZZ.js} +9 -8
- package/dist/{org-key-pin-5WUSPGVN.js → org-key-pin-WHWHVWUO.js} +4 -3
- package/dist/{org-membership-ESALTLLN.js → org-membership-WRT2IHJK.js} +5 -4
- package/dist/{org-partner-config-YKHPDPZR.js → org-partner-config-B7T4CL2T.js} +7 -6
- package/dist/{org-partner-runtime-UJDGECZ4.js → org-partner-runtime-FODONVTM.js} +13 -12
- package/dist/{org-row-visibility-V5DXIHTE.js → org-row-visibility-VX4AVV5Q.js} +1 -1
- package/dist/{pipeline-router-YY5FQKTY.js → pipeline-router-6GGT2ZW3.js} +6 -5
- package/dist/{plan-limits-OVX6SN6B.js → plan-limits-FUN76LYY.js} +8 -7
- package/dist/{platform-procedures-I57ITMDC.js → platform-procedures-7YSCLF4Z.js} +1 -1
- package/dist/{postinstall-failure-B2JHNFPM.js → postinstall-failure-O6TSSNJB.js} +3 -2
- package/dist/{project-boot-LXLU2J32.js → project-boot-3Q65LCIP.js} +2 -1
- package/dist/project-name-LJVFMYTQ.js +30 -0
- package/dist/{projection-worker-D2472IOD.js → projection-worker-4OANGP5K.js} +5 -4
- package/dist/{prospective-memory-JXO2A6PL.js → prospective-memory-KR3P4T6N.js} +5 -4
- package/dist/{push-notifications-HR3FZRDI.js → push-notifications-NCZLH6DI.js} +29 -26
- package/dist/ref-provenance-gate-M4AQO4OT.js +269 -0
- package/dist/{reproject-worktree-memories-OSS3PGRF.js → reproject-worktree-memories-PWYKPB2U.js} +106 -23
- package/dist/{reranker-IMZRPYJ2.js → reranker-6V3C2AO4.js} +3 -2
- package/dist/resolve-image-labels-ZI6UBW5W.js +15 -0
- package/dist/{retrieval-health-W7OD44FE.js → retrieval-health-5D7O6VH6.js} +4 -3
- package/dist/{review-polling-2INP7H6M.js → review-polling-QW3LJ4KN.js} +29 -26
- package/dist/runtime/index.js +38 -34
- package/dist/{session-events-G4XUPVWV.js → session-events-T45SSTMF.js} +31 -26
- package/dist/{session-kill-telemetry-W7MHWJTQ.js → session-kill-telemetry-QSPVJGBF.js} +29 -26
- package/dist/{session-mcp-config-F7KATWOF.js → session-mcp-config-SC5BLWZG.js} +3 -2
- package/dist/{session-scope-LG2J4EMQ.js → session-scope-KRWE54C4.js} +28 -25
- package/dist/{setup-wizard-YQJI3SVM.js → setup-wizard-GP3TBTPF.js} +5 -4
- package/dist/{shard-manager-UROHZE46.js → shard-manager-OE36A4MY.js} +3 -2
- package/dist/{skill-refinement-RA37U756.js → skill-refinement-C7JTMLJG.js} +6 -5
- package/dist/stack-generate-manifest-MFMDWRUP.js +810 -0
- package/dist/{stack-promote-IYBRXHTA.js → stack-promote-EKSCYY63.js} +8 -6
- package/dist/{stack-release-OXWLVVG6.js → stack-release-2GZAAFO4.js} +8 -6
- package/dist/{stack-update-2CZEROPK.js → stack-update-J6JXSTAZ.js} +51 -5
- package/dist/{steward-gate-LTNFB3FY.js → steward-gate-BFCCMCSW.js} +6 -5
- package/dist/{subagent-brief-injection-OHLWLECQ.js → subagent-brief-injection-ED36PLYY.js} +44 -36
- package/dist/{subagent-spawn-ledger-USYZXU3M.js → subagent-spawn-ledger-E6U3OY6Z.js} +3 -2
- package/dist/{supervisor-handoff-CSJQMI53.js → supervisor-handoff-SGLEPOCY.js} +12 -3
- package/dist/{support-inbox-4KCEPAZQ.js → support-inbox-YW47SYJF.js} +20 -5
- package/dist/{task-enforcement-LGXWXGVZ.js → task-enforcement-CECTQX4U.js} +29 -26
- package/dist/{task-request-inbox-WHCOSUCP.js → task-request-inbox-Q5T4N5K7.js} +1 -1
- package/dist/{task-scope-KXF7Y6KA.js → task-scope-ERVEUEYU.js} +28 -25
- package/dist/{tasks-crud-5EM55WRZ.js → tasks-crud-ZRQNJXQ2.js} +28 -25
- package/dist/{tasks-notify-VFMAURTN.js → tasks-notify-MIZH4C2O.js} +29 -26
- package/dist/{tasks-review-MHGMBHUZ.js → tasks-review-Z7J2P6DG.js} +28 -25
- package/dist/{telemetry-upload-6NRTN7QJ.js → telemetry-upload-LVQUQYFP.js} +10 -9
- package/dist/{token-budget-LZPOYTRP.js → token-budget-BU4NOVZF.js} +6 -5
- package/dist/{tool-capability-index-ED5OAPMW.js → tool-capability-index-7F42MOJT.js} +1 -1
- package/dist/{tool-gates-7PLIOLAL.js → tool-gates-JWVSAYTW.js} +1 -1
- package/dist/{tool-gates-2OZY3GZM.js → tool-gates-VXITVRFQ.js} +1 -1
- package/dist/{tool-telemetry-ZX7VSAXK.js → tool-telemetry-O27EVMBR.js} +1 -1
- package/dist/tui/App.js +43 -40
- package/dist/{tui-data-CC5POSUV.js → tui-data-TPWWBIUQ.js} +28 -25
- package/dist/{update-support-KH6NSQON.js → update-support-F2F5537B.js} +22 -20
- package/dist/{whatsapp-QW3X7OCN.js → whatsapp-YM4A2CSK.js} +3 -1
- package/dist/{work-claims-MNK7PEPW.js → work-claims-B73X5NE7.js} +6 -5
- package/dist/{work-state-heartbeat-YEWT5NMZ.js → work-state-heartbeat-P4YX6E2R.js} +1 -1
- package/dist/{worker-gate-BOQSIU2Z.js → worker-gate-BEEIIVWA.js} +3 -2
- package/dist/{workflow-engine-MUUD7ZEX.js → workflow-engine-5X46PFCW.js} +4 -2
- package/dist/{worktree-GOGT2LZP.js → worktree-W47CIMJ6.js} +9 -6
- package/dist/worktree-ownership-guard-OUWJROW2.js +88 -0
- package/dist/{worktree-sweep-46VWPVQT.js → worktree-sweep-BNBD4RFX.js} +8 -7
- package/package.json +14 -5
- package/release-notes.json +5 -5
- package/src/commands/exe/call.md +1 -1
- package/stack.release.json +6 -0
- package/dist/chunk-KZXMP6JG.js +0 -319
- package/dist/chunk-TCTED52S.js +0 -120
- package/dist/chunk-W2IRQJ6R.js +0 -67
- package/dist/doc-graph-extractor-VPTRIEKN.js +0 -149
- package/dist/project-name-ILJTETUE.js +0 -14
- /package/dist/{chunk-3Y5THOU6.js → chunk-6WIFPD2P.js} +0 -0
- /package/dist/{chunk-7XGXRD22.js → chunk-AISULNGL.js} +0 -0
- /package/dist/{chunk-3F2UB4IQ.js → chunk-DN4YVV4Z.js} +0 -0
- /package/dist/{chunk-WV3TOOL7.js → chunk-KQ6RJWRW.js} +0 -0
- /package/dist/{chunk-HR2R2QER.js → chunk-M4IRPXSZ.js} +0 -0
- /package/dist/{chunk-ORA5BWCV.js → chunk-NRG7KZIP.js} +0 -0
- /package/dist/{chunk-7UTJA6HF.js → chunk-VZAFWPAY.js} +0 -0
- /package/dist/{chunk-VJSDGDNS.js → chunk-WSQASFLP.js} +0 -0
- /package/dist/{chunk-FZQWVQJG.js → chunk-YO4BO2CL.js} +0 -0
- /package/dist/{core-memory-6WBNT2HL.js → core-memory-7I7RE2SJ.js} +0 -0
- /package/dist/{entity-boost-MT336PI3.js → entity-boost-3UWGXG5O.js} +0 -0
- /package/dist/{memory-isolation-EJ45IXBH.js → memory-isolation-2TUZ7Z4K.js} +0 -0
- /package/dist/{message-queue-client-MVBTYCSV.js → message-queue-client-XQN7QABL.js} +0 -0
- /package/dist/{webhook-pipe-UQSEHFPO.js → webhook-pipe-W2FVXY7M.js} +0 -0
- /package/dist/{wiki-acl-WXRJGZ5Q.js → wiki-acl-IBQLLBTS.js} +0 -0
- /package/dist/{wiki-client-AXNM5FWY.js → wiki-client-W65IOSWF.js} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveDataDir
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ZIG7VPJV.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/daemon-kill-attribution.ts
|
|
6
6
|
import {
|
|
@@ -113,102 +113,9 @@ function findRecentKillIntent(targetPid, withinMs = KILL_INTENT_LOOKBACK_MS) {
|
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
// src/lib/pid-identity.ts
|
|
117
|
-
import { execFileSync } from "child_process";
|
|
118
|
-
var PID_IDENTITY_TOLERANCE_MS = 2e3;
|
|
119
|
-
function parseLstart(raw) {
|
|
120
|
-
if (typeof raw !== "string") return null;
|
|
121
|
-
const trimmed = raw.trim();
|
|
122
|
-
if (!trimmed) return null;
|
|
123
|
-
const ms = Date.parse(trimmed);
|
|
124
|
-
return Number.isFinite(ms) ? ms : null;
|
|
125
|
-
}
|
|
126
|
-
function processStartedAt(pid) {
|
|
127
|
-
if (!Number.isInteger(pid) || pid <= 0) return null;
|
|
128
|
-
try {
|
|
129
|
-
return parseLstart(
|
|
130
|
-
execFileSync("ps", ["-o", "lstart=", "-p", String(pid)], { encoding: "utf8", timeout: 2e3 })
|
|
131
|
-
);
|
|
132
|
-
} catch {
|
|
133
|
-
return null;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
function sameProcessIdentity(expectedMs, actualMs, toleranceMs = PID_IDENTITY_TOLERANCE_MS) {
|
|
137
|
-
if (expectedMs === null || actualMs === null) return false;
|
|
138
|
-
return Math.abs(expectedMs - actualMs) <= toleranceMs;
|
|
139
|
-
}
|
|
140
|
-
function defaultIsAlive(pid) {
|
|
141
|
-
try {
|
|
142
|
-
process.kill(pid, 0);
|
|
143
|
-
return true;
|
|
144
|
-
} catch {
|
|
145
|
-
return false;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
function killIfSameProcess(pid, expectedStartedAtMs, signal, ctx) {
|
|
149
|
-
const isAlive = ctx.isAlive ?? defaultIsAlive;
|
|
150
|
-
const startedAt = ctx.startedAt ?? processStartedAt;
|
|
151
|
-
const kill = ctx.kill ?? ((p, s) => {
|
|
152
|
-
process.kill(p, s);
|
|
153
|
-
});
|
|
154
|
-
const record = ctx.record ?? recordKillIntent;
|
|
155
|
-
const log = ctx.log ?? ((m) => {
|
|
156
|
-
try {
|
|
157
|
-
process.stderr.write(m + "\n");
|
|
158
|
-
} catch {
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
const send = () => {
|
|
162
|
-
try {
|
|
163
|
-
record({ targetPid: pid, signal, sender: ctx.sender, reason: ctx.reason });
|
|
164
|
-
} catch {
|
|
165
|
-
}
|
|
166
|
-
try {
|
|
167
|
-
kill(pid, signal);
|
|
168
|
-
} catch {
|
|
169
|
-
return "skipped-dead";
|
|
170
|
-
}
|
|
171
|
-
return "sent";
|
|
172
|
-
};
|
|
173
|
-
if (expectedStartedAtMs === null) return send();
|
|
174
|
-
let actual;
|
|
175
|
-
try {
|
|
176
|
-
actual = startedAt(pid);
|
|
177
|
-
} catch {
|
|
178
|
-
actual = null;
|
|
179
|
-
}
|
|
180
|
-
if (actual === null) {
|
|
181
|
-
let alive;
|
|
182
|
-
try {
|
|
183
|
-
alive = isAlive(pid);
|
|
184
|
-
} catch {
|
|
185
|
-
alive = false;
|
|
186
|
-
}
|
|
187
|
-
if (!alive) return "skipped-dead";
|
|
188
|
-
}
|
|
189
|
-
if (!sameProcessIdentity(expectedStartedAtMs, actual)) {
|
|
190
|
-
log(
|
|
191
|
-
`[pid-identity] REFUSING ${signal} to PID ${pid} from ${ctx.sender}: start time changed (expected ${new Date(expectedStartedAtMs).toISOString()}, now ${actual === null ? "UNREADABLE" : new Date(actual).toISOString()}) \u2014 the PID was RECYCLED, this signal would have hit an innocent process. reason=${ctx.reason}`
|
|
192
|
-
);
|
|
193
|
-
try {
|
|
194
|
-
record({
|
|
195
|
-
targetPid: pid,
|
|
196
|
-
signal: `${signal}:REFUSED`,
|
|
197
|
-
sender: ctx.sender,
|
|
198
|
-
reason: `pid-identity-mismatch expected=${expectedStartedAtMs} actual=${actual ?? "null"} :: ${ctx.reason}`
|
|
199
|
-
});
|
|
200
|
-
} catch {
|
|
201
|
-
}
|
|
202
|
-
return "skipped-identity";
|
|
203
|
-
}
|
|
204
|
-
return send();
|
|
205
|
-
}
|
|
206
|
-
|
|
207
116
|
export {
|
|
208
117
|
KILL_INTENT_LOOKBACK_MS,
|
|
209
118
|
killAttributionLogPath,
|
|
210
119
|
recordKillIntent,
|
|
211
|
-
findRecentKillIntent
|
|
212
|
-
processStartedAt,
|
|
213
|
-
killIfSameProcess
|
|
120
|
+
findRecentKillIntent
|
|
214
121
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isCrdtSyncEnabled
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KQ6RJWRW.js";
|
|
4
4
|
import {
|
|
5
5
|
compress,
|
|
6
6
|
decompress
|
|
@@ -8,27 +8,27 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
orgMembershipsPath,
|
|
10
10
|
orgModeActive
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-TADAO3HV.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-HTBEVCO2.js";
|
|
19
19
|
import {
|
|
20
20
|
assertGateAndGrantsColocated
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-3SXHEQ7X.js";
|
|
22
22
|
import {
|
|
23
23
|
getAuthHeader
|
|
24
24
|
} from "./chunk-NUTZJZKW.js";
|
|
25
25
|
import {
|
|
26
26
|
GHOST_BEHAVIOR_SQL,
|
|
27
27
|
isGhostBehaviorRow
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-WMEYJT4R.js";
|
|
29
29
|
import {
|
|
30
30
|
retryOnDaemonTransportError
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-XZ65ST2I.js";
|
|
32
32
|
import {
|
|
33
33
|
decryptSyncBlob,
|
|
34
34
|
encryptSyncBlob,
|
|
@@ -41,13 +41,13 @@ import {
|
|
|
41
41
|
loadEmployees,
|
|
42
42
|
registerBinSymlinks,
|
|
43
43
|
saveEmployees
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-TAMDAOCU.js";
|
|
45
45
|
import {
|
|
46
46
|
loadDeviceId
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-L6RXG36J.js";
|
|
48
48
|
import {
|
|
49
49
|
EXE_AI_DIR
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-ZIG7VPJV.js";
|
|
51
51
|
import {
|
|
52
52
|
atomicWriteJsonSync,
|
|
53
53
|
atomicWriteSync,
|
|
@@ -70,7 +70,7 @@ var _lastSealOrgMode = null;
|
|
|
70
70
|
async function getSyncCipher() {
|
|
71
71
|
if (_resolved) return _resolved;
|
|
72
72
|
if (!orgModeActive()) {
|
|
73
|
-
const mod = await import("./founder-monitor-envelope-
|
|
73
|
+
const mod = await import("./founder-monitor-envelope-TFKRGCFE.js");
|
|
74
74
|
_monitoredWriter = mod.encryptMonitoredSyncBlob;
|
|
75
75
|
_founderModuleLinked = true;
|
|
76
76
|
}
|
|
@@ -235,6 +235,15 @@ async function clearCloudSyncStageResume(client) {
|
|
|
235
235
|
|
|
236
236
|
// src/lib/cloud-sync.ts
|
|
237
237
|
var _cloudSyncInProgress = false;
|
|
238
|
+
function selectRecordsForLocalWorld(records, ctx) {
|
|
239
|
+
if (!ctx.isMemberWorld) return records;
|
|
240
|
+
const own = ctx.localDeviceId;
|
|
241
|
+
if (typeof own !== "string" || own.length === 0) return [];
|
|
242
|
+
return records.filter((rec) => {
|
|
243
|
+
const authorDevice = rec.author_device_id;
|
|
244
|
+
return typeof authorDevice === "string" && authorDevice.length > 0 && authorDevice === own;
|
|
245
|
+
});
|
|
246
|
+
}
|
|
238
247
|
function sqlSafe(v) {
|
|
239
248
|
return v === void 0 ? null : v;
|
|
240
249
|
}
|
|
@@ -1052,8 +1061,15 @@ async function cloudSync(config, options) {
|
|
|
1052
1061
|
onProgress("Cloud sync", "pulling remote changes...");
|
|
1053
1062
|
pullResult = await cloudPull(lastPullVersion, config);
|
|
1054
1063
|
if (pullResult.records.length > 0) {
|
|
1064
|
+
pullResult = {
|
|
1065
|
+
...pullResult,
|
|
1066
|
+
records: selectRecordsForLocalWorld(pullResult.records, {
|
|
1067
|
+
isMemberWorld: orgModeActive(),
|
|
1068
|
+
localDeviceId: loadDeviceId()
|
|
1069
|
+
})
|
|
1070
|
+
};
|
|
1055
1071
|
if (shouldUseCrdtMergeForCloudSync()) {
|
|
1056
|
-
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-
|
|
1072
|
+
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-B3JN6AIV.js");
|
|
1057
1073
|
initCrdtDoc();
|
|
1058
1074
|
importExistingMemories(
|
|
1059
1075
|
pullResult.records.map((rec) => ({
|
|
@@ -1585,7 +1601,7 @@ async function cloudSync(config, options) {
|
|
|
1585
1601
|
const artifactResult = { pushed: 0, frozen: false, remaining: 0 };
|
|
1586
1602
|
if (!shouldSkip("artifacts")) {
|
|
1587
1603
|
try {
|
|
1588
|
-
const { flushArtifactBackups } = await import("./artifact-backup-
|
|
1604
|
+
const { flushArtifactBackups } = await import("./artifact-backup-WXZNB7KE.js");
|
|
1589
1605
|
const flushed = await flushArtifactBackups(cloudArtifactTransport(config));
|
|
1590
1606
|
artifactResult.pushed = flushed.pushed;
|
|
1591
1607
|
artifactResult.frozen = flushed.frozen;
|
|
@@ -1896,8 +1912,8 @@ async function mergeRosterFromRemote(remote, paths) {
|
|
|
1896
1912
|
return { added, identitiesUpdated };
|
|
1897
1913
|
});
|
|
1898
1914
|
}
|
|
1899
|
-
async function cloudPushBlob(route, data, metaKey, config) {
|
|
1900
|
-
if (data.length === 0) return { ok: true };
|
|
1915
|
+
async function cloudPushBlob(route, data, metaKey, config, clearWhenEmpty = false) {
|
|
1916
|
+
if (data.length === 0 && !clearWhenEmpty) return { ok: true };
|
|
1901
1917
|
assertSecureEndpoint(config.endpoint);
|
|
1902
1918
|
const json = JSON.stringify(data);
|
|
1903
1919
|
const version = parseInt(crypto.createHash("sha256").update(json).digest("hex").slice(0, 12), 16);
|
|
@@ -1959,7 +1975,7 @@ function cloudArtifactTransport(config) {
|
|
|
1959
1975
|
return { status: resp.status, ok: resp.ok };
|
|
1960
1976
|
};
|
|
1961
1977
|
}
|
|
1962
|
-
async function cloudPushVersionedBlob(table, filter, route, cursorKey, config) {
|
|
1978
|
+
async function cloudPushVersionedBlob(table, filter, route, cursorKey, config, clearRemoteWhenEmpty = false) {
|
|
1963
1979
|
assertSecureEndpoint(config.endpoint);
|
|
1964
1980
|
const client = getClient();
|
|
1965
1981
|
let maxVersion = -1;
|
|
@@ -1971,7 +1987,7 @@ async function cloudPushVersionedBlob(table, filter, route, cursorKey, config) {
|
|
|
1971
1987
|
maxVersion = Number(res.rows[0]?.v ?? 0);
|
|
1972
1988
|
} catch {
|
|
1973
1989
|
const rows2 = await fetchAllRows(client, table, filter ?? void 0);
|
|
1974
|
-
const { ok } = await cloudPushBlob(route, rows2, cursorKey, config);
|
|
1990
|
+
const { ok } = await cloudPushBlob(route, rows2, cursorKey, config, clearRemoteWhenEmpty);
|
|
1975
1991
|
return { ok, skipped: false };
|
|
1976
1992
|
}
|
|
1977
1993
|
let storedCursor = -1;
|
|
@@ -1995,6 +2011,30 @@ async function cloudPushVersionedBlob(table, filter, route, cursorKey, config) {
|
|
|
1995
2011
|
}
|
|
1996
2012
|
const rows = await fetchAllRows(client, table, filter ?? void 0);
|
|
1997
2013
|
if (rows.length === 0) {
|
|
2014
|
+
if (clearRemoteWhenEmpty) {
|
|
2015
|
+
try {
|
|
2016
|
+
const compressed = compress(Buffer.from("[]", "utf8"));
|
|
2017
|
+
const encrypted = encryptSyncBlob(compressed);
|
|
2018
|
+
const resp = await fetchWithRetry(`${config.endpoint}${route}`, {
|
|
2019
|
+
method: "POST",
|
|
2020
|
+
headers: await cloudAuthHeaders(config),
|
|
2021
|
+
body: JSON.stringify({ blob: encrypted })
|
|
2022
|
+
});
|
|
2023
|
+
if (resp.ok) {
|
|
2024
|
+
try {
|
|
2025
|
+
await client.execute({
|
|
2026
|
+
sql: "INSERT INTO sync_meta (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",
|
|
2027
|
+
args: [cursorKey, String(Math.max(maxVersion, 0))]
|
|
2028
|
+
});
|
|
2029
|
+
} catch {
|
|
2030
|
+
}
|
|
2031
|
+
}
|
|
2032
|
+
return { ok: resp.ok, skipped: false };
|
|
2033
|
+
} catch (err) {
|
|
2034
|
+
logError(`[cloud-sync] PUSH ${route} (empty clear): ${err instanceof Error ? err.message : String(err)}`);
|
|
2035
|
+
return { ok: false, skipped: false };
|
|
2036
|
+
}
|
|
2037
|
+
}
|
|
1998
2038
|
try {
|
|
1999
2039
|
await client.execute({
|
|
2000
2040
|
sql: "INSERT INTO sync_meta (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",
|
|
@@ -2465,12 +2505,20 @@ async function cloudPullTasks(config) {
|
|
|
2465
2505
|
return { pulled: remoteTasks.length };
|
|
2466
2506
|
}
|
|
2467
2507
|
async function cloudPushConversations(config) {
|
|
2508
|
+
let sweptEmpty = false;
|
|
2509
|
+
try {
|
|
2510
|
+
const client = getClient();
|
|
2511
|
+
const res = await client.execute("SELECT 1 FROM conversation_deletions LIMIT 1");
|
|
2512
|
+
sweptEmpty = res.rows.length > 0;
|
|
2513
|
+
} catch {
|
|
2514
|
+
}
|
|
2468
2515
|
const { ok } = await cloudPushVersionedBlob(
|
|
2469
2516
|
"conversations",
|
|
2470
2517
|
null,
|
|
2471
2518
|
"/sync/push-conversations",
|
|
2472
2519
|
"last_conversations_push_version",
|
|
2473
|
-
config
|
|
2520
|
+
config,
|
|
2521
|
+
sweptEmpty
|
|
2474
2522
|
);
|
|
2475
2523
|
return ok;
|
|
2476
2524
|
}
|
|
@@ -2481,7 +2529,29 @@ async function cloudPullConversations(config) {
|
|
|
2481
2529
|
);
|
|
2482
2530
|
if (!remoteConvos || remoteConvos.length === 0) return { pulled: 0 };
|
|
2483
2531
|
const client = getClient();
|
|
2484
|
-
const
|
|
2532
|
+
const applied = await applyPulledConversations(client, remoteConvos);
|
|
2533
|
+
return { pulled: applied };
|
|
2534
|
+
}
|
|
2535
|
+
async function applyPulledConversations(client, remoteConvos) {
|
|
2536
|
+
if (!remoteConvos || remoteConvos.length === 0) return 0;
|
|
2537
|
+
const tombstoned = /* @__PURE__ */ new Set();
|
|
2538
|
+
const remoteIds = remoteConvos.map((c) => String(c.id));
|
|
2539
|
+
const LOOKUP_CHUNK = 500;
|
|
2540
|
+
try {
|
|
2541
|
+
for (let i = 0; i < remoteIds.length; i += LOOKUP_CHUNK) {
|
|
2542
|
+
const chunk = remoteIds.slice(i, i + LOOKUP_CHUNK);
|
|
2543
|
+
const placeholders = chunk.map(() => "?").join(",");
|
|
2544
|
+
const res = await client.execute({
|
|
2545
|
+
sql: `SELECT id FROM conversation_deletions WHERE id IN (${placeholders})`,
|
|
2546
|
+
args: chunk
|
|
2547
|
+
});
|
|
2548
|
+
for (const row of res.rows) tombstoned.add(String(row.id));
|
|
2549
|
+
}
|
|
2550
|
+
} catch {
|
|
2551
|
+
}
|
|
2552
|
+
const survivors = tombstoned.size === 0 ? remoteConvos : remoteConvos.filter((c) => !tombstoned.has(String(c.id)));
|
|
2553
|
+
if (survivors.length === 0) return 0;
|
|
2554
|
+
const stmts = survivors.map((c) => ({
|
|
2485
2555
|
sql: `INSERT INTO conversations
|
|
2486
2556
|
(id, platform, external_id, sender_id, sender_name, sender_phone, sender_email,
|
|
2487
2557
|
recipient_id, channel_id, thread_id, reply_to_id, content_text, content_media,
|
|
@@ -2528,7 +2598,7 @@ async function cloudPullConversations(config) {
|
|
|
2528
2598
|
]
|
|
2529
2599
|
}));
|
|
2530
2600
|
await batchWriteYielding(client, stmts);
|
|
2531
|
-
return
|
|
2601
|
+
return survivors.length;
|
|
2532
2602
|
}
|
|
2533
2603
|
function validPulledPrimaryKeyId(id) {
|
|
2534
2604
|
return typeof id === "string" && id.trim().length > 0;
|
|
@@ -2726,7 +2796,7 @@ async function cloudPushCodeContext(config) {
|
|
|
2726
2796
|
assertSecureEndpoint(config.endpoint);
|
|
2727
2797
|
if (!existsSync(CODE_CONTEXT_DIR)) return 0;
|
|
2728
2798
|
const files = readdirSync(CODE_CONTEXT_DIR).filter(
|
|
2729
|
-
(f) => f.endsWith(".json") && !f.
|
|
2799
|
+
(f) => f.endsWith(".json") && !f.startsWith(".")
|
|
2730
2800
|
);
|
|
2731
2801
|
if (files.length === 0) return 0;
|
|
2732
2802
|
const metaPath = path2.join(CODE_CONTEXT_DIR, ".sync-meta.json");
|
|
@@ -2786,7 +2856,6 @@ async function cloudPullCodeContext(config) {
|
|
|
2786
2856
|
let pulled = 0;
|
|
2787
2857
|
for (const { key, blob } of data.indexes) {
|
|
2788
2858
|
try {
|
|
2789
|
-
if (key.endsWith(".vectors.json")) continue;
|
|
2790
2859
|
const localPath = path2.join(CODE_CONTEXT_DIR, key);
|
|
2791
2860
|
const compressed = decryptSyncBlob(blob);
|
|
2792
2861
|
const content = decompress(compressed).toString("utf8");
|
|
@@ -3018,6 +3087,7 @@ async function cloudPullCoreMemory(config) {
|
|
|
3018
3087
|
}
|
|
3019
3088
|
|
|
3020
3089
|
export {
|
|
3090
|
+
selectRecordsForLocalWorld,
|
|
3021
3091
|
CLOUD_PULL_WRITE_BATCH_SIZE,
|
|
3022
3092
|
batchWriteYielding,
|
|
3023
3093
|
CLOUD_MEMORY_PUSH_BACKGROUND_BATCH_SIZE,
|
|
@@ -3059,6 +3129,7 @@ export {
|
|
|
3059
3129
|
cloudPullTasks,
|
|
3060
3130
|
cloudPushConversations,
|
|
3061
3131
|
cloudPullConversations,
|
|
3132
|
+
applyPulledConversations,
|
|
3062
3133
|
deriveWorkspaceSlug,
|
|
3063
3134
|
cloudPushDocuments,
|
|
3064
3135
|
cloudPullDocuments,
|