@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
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import {
|
|
2
|
+
recordKillIntent
|
|
3
|
+
} from "./chunk-V3WLC5TJ.js";
|
|
4
|
+
|
|
5
|
+
// src/lib/pid-identity.ts
|
|
6
|
+
import { execFileSync } from "child_process";
|
|
7
|
+
var PID_IDENTITY_TOLERANCE_MS = 2e3;
|
|
8
|
+
function parseLstart(raw) {
|
|
9
|
+
if (typeof raw !== "string") return null;
|
|
10
|
+
const trimmed = raw.trim();
|
|
11
|
+
if (!trimmed) return null;
|
|
12
|
+
const ms = Date.parse(trimmed);
|
|
13
|
+
return Number.isFinite(ms) ? ms : null;
|
|
14
|
+
}
|
|
15
|
+
function processStartedAt(pid) {
|
|
16
|
+
if (!Number.isInteger(pid) || pid <= 0) return null;
|
|
17
|
+
try {
|
|
18
|
+
return parseLstart(
|
|
19
|
+
execFileSync("ps", ["-o", "lstart=", "-p", String(pid)], { encoding: "utf8", timeout: 2e3 })
|
|
20
|
+
);
|
|
21
|
+
} catch {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function ownProcessStartedAt() {
|
|
26
|
+
return Date.now() - Math.round(process.uptime() * 1e3);
|
|
27
|
+
}
|
|
28
|
+
function sameProcessIdentity(expectedMs, actualMs, toleranceMs = PID_IDENTITY_TOLERANCE_MS) {
|
|
29
|
+
if (expectedMs === null || actualMs === null) return false;
|
|
30
|
+
return Math.abs(expectedMs - actualMs) <= toleranceMs;
|
|
31
|
+
}
|
|
32
|
+
function defaultIsAlive(pid) {
|
|
33
|
+
try {
|
|
34
|
+
process.kill(pid, 0);
|
|
35
|
+
return true;
|
|
36
|
+
} catch {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function killIfSameProcess(pid, expectedStartedAtMs, signal, ctx) {
|
|
41
|
+
const isAlive = ctx.isAlive ?? defaultIsAlive;
|
|
42
|
+
const startedAt = ctx.startedAt ?? processStartedAt;
|
|
43
|
+
const kill = ctx.kill ?? ((p, s) => {
|
|
44
|
+
process.kill(p, s);
|
|
45
|
+
});
|
|
46
|
+
const record = ctx.record ?? recordKillIntent;
|
|
47
|
+
const log = ctx.log ?? ((m) => {
|
|
48
|
+
try {
|
|
49
|
+
process.stderr.write(m + "\n");
|
|
50
|
+
} catch {
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
const send = () => {
|
|
54
|
+
try {
|
|
55
|
+
record({ targetPid: pid, signal, sender: ctx.sender, reason: ctx.reason });
|
|
56
|
+
} catch {
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
kill(pid, signal);
|
|
60
|
+
} catch {
|
|
61
|
+
return "skipped-dead";
|
|
62
|
+
}
|
|
63
|
+
return "sent";
|
|
64
|
+
};
|
|
65
|
+
if (expectedStartedAtMs === null) return send();
|
|
66
|
+
let actual;
|
|
67
|
+
try {
|
|
68
|
+
actual = startedAt(pid);
|
|
69
|
+
} catch {
|
|
70
|
+
actual = null;
|
|
71
|
+
}
|
|
72
|
+
if (actual === null) {
|
|
73
|
+
let alive;
|
|
74
|
+
try {
|
|
75
|
+
alive = isAlive(pid);
|
|
76
|
+
} catch {
|
|
77
|
+
alive = false;
|
|
78
|
+
}
|
|
79
|
+
if (!alive) return "skipped-dead";
|
|
80
|
+
}
|
|
81
|
+
if (!sameProcessIdentity(expectedStartedAtMs, actual)) {
|
|
82
|
+
log(
|
|
83
|
+
`[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}`
|
|
84
|
+
);
|
|
85
|
+
try {
|
|
86
|
+
record({
|
|
87
|
+
targetPid: pid,
|
|
88
|
+
signal: `${signal}:REFUSED`,
|
|
89
|
+
sender: ctx.sender,
|
|
90
|
+
reason: `pid-identity-mismatch expected=${expectedStartedAtMs} actual=${actual ?? "null"} :: ${ctx.reason}`
|
|
91
|
+
});
|
|
92
|
+
} catch {
|
|
93
|
+
}
|
|
94
|
+
return "skipped-identity";
|
|
95
|
+
}
|
|
96
|
+
return send();
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export {
|
|
100
|
+
processStartedAt,
|
|
101
|
+
ownProcessStartedAt,
|
|
102
|
+
killIfSameProcess
|
|
103
|
+
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolvePartnerIdentities
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4YLBKEL5.js";
|
|
4
4
|
import {
|
|
5
5
|
OrgKeyPinConflictError,
|
|
6
6
|
orgKeyPinConfirmation,
|
|
7
7
|
pinOrgKey,
|
|
8
8
|
readOrgKeyPin
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-UBMZ3YQU.js";
|
|
10
10
|
import {
|
|
11
11
|
asOrgBillablePlan
|
|
12
12
|
} from "./chunk-X2X3IGZU.js";
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
import {
|
|
19
19
|
establishOrgMode,
|
|
20
20
|
upsertOrgMembership
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-TADAO3HV.js";
|
|
22
22
|
import {
|
|
23
23
|
isValidX25519Recipient
|
|
24
24
|
} from "./chunk-EEZOBN6X.js";
|
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
grantsRegistryStatus,
|
|
3
3
|
listGrants,
|
|
4
4
|
revokeGrant
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-HTBEVCO2.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveExeDataDir
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-3SXHEQ7X.js";
|
|
9
9
|
|
|
10
10
|
// src/lib/org-membership.ts
|
|
11
11
|
import { existsSync as existsSync2, readFileSync as readFileSync2, writeFileSync as writeFileSync2, mkdirSync, renameSync, rmSync as rmSync2 } from "fs";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
assertValidDbPath
|
|
3
|
-
} from "./chunk-TKDITWDN.js";
|
|
4
1
|
import {
|
|
5
2
|
logDaemonHealth
|
|
6
3
|
} from "./chunk-BBMTVAE3.js";
|
|
4
|
+
import {
|
|
5
|
+
assertValidDbPath
|
|
6
|
+
} from "./chunk-TKDITWDN.js";
|
|
7
7
|
import {
|
|
8
8
|
recordDbOpen
|
|
9
9
|
} from "./chunk-5YEUPUV4.js";
|
|
10
10
|
import {
|
|
11
11
|
listBackups
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-DSJI76XL.js";
|
|
13
13
|
import {
|
|
14
14
|
isPostgresBackendEnabled
|
|
15
15
|
} from "./chunk-YYB5PMTK.js";
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
import {
|
|
28
28
|
EXE_AI_DIR,
|
|
29
29
|
loadConfigSync
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-ZIG7VPJV.js";
|
|
31
31
|
import {
|
|
32
32
|
atomicWriteJson
|
|
33
33
|
} from "./chunk-HSGBZSCA.js";
|
|
@@ -1333,7 +1333,7 @@ async function migrateReflectionDedup(client) {
|
|
|
1333
1333
|
"ALTER TABLE memory_reflections ADD COLUMN dedup_key TEXT",
|
|
1334
1334
|
"migration add memory_reflections.dedup_key"
|
|
1335
1335
|
);
|
|
1336
|
-
const { reflectionDedupKey } = await import("./memory-reflection-
|
|
1336
|
+
const { reflectionDedupKey } = await import("./memory-reflection-BKB2YOE6.js");
|
|
1337
1337
|
const keyForRow = (row) => {
|
|
1338
1338
|
let sources = [];
|
|
1339
1339
|
try {
|
|
@@ -1406,6 +1406,43 @@ async function migrateReflectionDedup(client) {
|
|
|
1406
1406
|
WHERE dedup_key IS NOT NULL
|
|
1407
1407
|
`);
|
|
1408
1408
|
}
|
|
1409
|
+
async function migrateSanitizeBehaviorContent(client) {
|
|
1410
|
+
const { sanitizeBehaviorContent } = await import("./behaviors-ZJ45TFBJ.js");
|
|
1411
|
+
const rows = await client.execute(
|
|
1412
|
+
"SELECT id, content, active FROM behaviors WHERE content IS NOT NULL"
|
|
1413
|
+
);
|
|
1414
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
1415
|
+
const stmts = [];
|
|
1416
|
+
let cleaned = 0;
|
|
1417
|
+
let deactivated = 0;
|
|
1418
|
+
for (const r of rows.rows) {
|
|
1419
|
+
const rec = r;
|
|
1420
|
+
const original = String(rec.content);
|
|
1421
|
+
const sanitized = sanitizeBehaviorContent(original);
|
|
1422
|
+
if (sanitized === original) continue;
|
|
1423
|
+
if (sanitized.length === 0) {
|
|
1424
|
+
if (Number(rec.active) === 0) continue;
|
|
1425
|
+
stmts.push({
|
|
1426
|
+
sql: "UPDATE behaviors SET active = 0, updated_at = ? WHERE id = ?",
|
|
1427
|
+
args: [now, String(rec.id)]
|
|
1428
|
+
});
|
|
1429
|
+
deactivated++;
|
|
1430
|
+
continue;
|
|
1431
|
+
}
|
|
1432
|
+
stmts.push({
|
|
1433
|
+
sql: "UPDATE behaviors SET content = ?, updated_at = ? WHERE id = ?",
|
|
1434
|
+
args: [sanitized, now, String(rec.id)]
|
|
1435
|
+
});
|
|
1436
|
+
cleaned++;
|
|
1437
|
+
}
|
|
1438
|
+
if (stmts.length > 0) {
|
|
1439
|
+
await client.batch(stmts, "write");
|
|
1440
|
+
process.stderr.write(
|
|
1441
|
+
`[migration] Sanitized behavior content (bug d61f9416): ${cleaned} row(s) cleaned, ${deactivated} pure-markup row(s) deactivated
|
|
1442
|
+
`
|
|
1443
|
+
);
|
|
1444
|
+
}
|
|
1445
|
+
}
|
|
1409
1446
|
var _client = null;
|
|
1410
1447
|
var _resilientClient = null;
|
|
1411
1448
|
var _walCheckpointTimer = null;
|
|
@@ -1808,7 +1845,7 @@ async function _attemptBackupRestore(config) {
|
|
|
1808
1845
|
`
|
|
1809
1846
|
);
|
|
1810
1847
|
try {
|
|
1811
|
-
const { recordDbRestoreEvent } = await import("./db-restore-events-
|
|
1848
|
+
const { recordDbRestoreEvent } = await import("./db-restore-events-G6NOQOVE.js");
|
|
1812
1849
|
recordDbRestoreEvent({
|
|
1813
1850
|
kind: "auto-restore",
|
|
1814
1851
|
restoredFrom: backup.name,
|
|
@@ -1851,7 +1888,7 @@ async function _attemptBackupRestore(config) {
|
|
|
1851
1888
|
`
|
|
1852
1889
|
);
|
|
1853
1890
|
try {
|
|
1854
|
-
const { recordDbRestoreEvent } = await import("./db-restore-events-
|
|
1891
|
+
const { recordDbRestoreEvent } = await import("./db-restore-events-G6NOQOVE.js");
|
|
1855
1892
|
recordDbRestoreEvent({
|
|
1856
1893
|
kind: "restore-failed",
|
|
1857
1894
|
quarantinePath: corruptPath,
|
|
@@ -2110,7 +2147,7 @@ async function initDatabase(config) {
|
|
|
2110
2147
|
`
|
|
2111
2148
|
);
|
|
2112
2149
|
try {
|
|
2113
|
-
const { recordDbRestoreEvent } = await import("./db-restore-events-
|
|
2150
|
+
const { recordDbRestoreEvent } = await import("./db-restore-events-G6NOQOVE.js");
|
|
2114
2151
|
recordDbRestoreEvent({
|
|
2115
2152
|
kind: "wal-recovery",
|
|
2116
2153
|
quarantinePath: backupPath,
|
|
@@ -2124,7 +2161,7 @@ async function initDatabase(config) {
|
|
|
2124
2161
|
`
|
|
2125
2162
|
);
|
|
2126
2163
|
try {
|
|
2127
|
-
const { recordDbRestoreEvent } = await import("./db-restore-events-
|
|
2164
|
+
const { recordDbRestoreEvent } = await import("./db-restore-events-G6NOQOVE.js");
|
|
2128
2165
|
recordDbRestoreEvent({
|
|
2129
2166
|
kind: "zeroed-no-wal",
|
|
2130
2167
|
detail: "DB was 0 bytes at startup with no WAL available \u2014 data may be lost"
|
|
@@ -2346,7 +2383,7 @@ async function sweepExpiredSoftDeletedMemories(client, options = {}) {
|
|
|
2346
2383
|
const purgeArchived = archDays !== void 0;
|
|
2347
2384
|
const BATCH_SIZE = 2e3;
|
|
2348
2385
|
const MAX_BATCHES = 500;
|
|
2349
|
-
const { cleanupCardsForMemories, cleanupGraphLinksForMemories } = await import("./graph-rag-
|
|
2386
|
+
const { cleanupCardsForMemories, cleanupGraphLinksForMemories } = await import("./graph-rag-Z2KCJTPK.js");
|
|
2350
2387
|
const softCutoff = `-${softDays} days`;
|
|
2351
2388
|
const selectArgsBase = [softCutoff];
|
|
2352
2389
|
let predicate = `status = 'deleted' AND COALESCE(deleted_at, timestamp) < datetime('now', ?)`;
|
|
@@ -2478,7 +2515,7 @@ function getRawClient() {
|
|
|
2478
2515
|
function tryGetRawClient() {
|
|
2479
2516
|
return _client;
|
|
2480
2517
|
}
|
|
2481
|
-
var CURRENT_SCHEMA_VERSION =
|
|
2518
|
+
var CURRENT_SCHEMA_VERSION = 29;
|
|
2482
2519
|
var _migrationBlockRuns = 0;
|
|
2483
2520
|
function _getMigrationBlockRuns() {
|
|
2484
2521
|
return _migrationBlockRuns;
|
|
@@ -2685,7 +2722,7 @@ async function ensureSchema() {
|
|
|
2685
2722
|
}
|
|
2686
2723
|
}
|
|
2687
2724
|
try {
|
|
2688
|
-
const { checkAndRepairFtsIndexOnce } = await import("./fts-integrity-
|
|
2725
|
+
const { checkAndRepairFtsIndexOnce } = await import("./fts-integrity-4YB34KWX.js");
|
|
2689
2726
|
await checkAndRepairFtsIndexOnce(client);
|
|
2690
2727
|
} catch (ftsErr) {
|
|
2691
2728
|
process.stderr.write(
|
|
@@ -2955,6 +2992,14 @@ async function ensureSchema() {
|
|
|
2955
2992
|
created_at TEXT NOT NULL
|
|
2956
2993
|
);
|
|
2957
2994
|
`);
|
|
2995
|
+
await client.executeMultiple(`
|
|
2996
|
+
CREATE TABLE IF NOT EXISTS trigger_cooldowns (
|
|
2997
|
+
cooldown_key TEXT PRIMARY KEY,
|
|
2998
|
+
last_fired_at_ms INTEGER NOT NULL,
|
|
2999
|
+
fire_count INTEGER NOT NULL DEFAULT 1,
|
|
3000
|
+
updated_at TEXT NOT NULL
|
|
3001
|
+
);
|
|
3002
|
+
`);
|
|
2958
3003
|
await client.executeMultiple(`
|
|
2959
3004
|
CREATE TABLE IF NOT EXISTS device_registry (
|
|
2960
3005
|
device_id TEXT PRIMARY KEY,
|
|
@@ -3647,6 +3692,23 @@ async function ensureSchema() {
|
|
|
3647
3692
|
|
|
3648
3693
|
CREATE INDEX IF NOT EXISTS idx_conversations_channel
|
|
3649
3694
|
ON conversations(channel_id);
|
|
3695
|
+
|
|
3696
|
+
CREATE INDEX IF NOT EXISTS idx_conversations_ingested_at
|
|
3697
|
+
ON conversations(ingested_at);
|
|
3698
|
+
|
|
3699
|
+
-- Bug 9cdaaf80 (PII durability): tombstone ledger for conversations pruned
|
|
3700
|
+
-- by the retention sweep. Hard-deleting a conversation locally is not durable
|
|
3701
|
+
-- on its own \u2014 the cloud pull path re-inserts rows by id from the remote blob,
|
|
3702
|
+
-- resurrecting expired PII. The sweep records each pruned id here; the pull
|
|
3703
|
+
-- path skips any id present in this ledger so a deleted conversation is never
|
|
3704
|
+
-- restored. Rows are id + deletion time only (no PII).
|
|
3705
|
+
CREATE TABLE IF NOT EXISTS conversation_deletions (
|
|
3706
|
+
id TEXT PRIMARY KEY,
|
|
3707
|
+
deleted_at TEXT NOT NULL
|
|
3708
|
+
);
|
|
3709
|
+
|
|
3710
|
+
CREATE INDEX IF NOT EXISTS idx_conversation_deletions_deleted_at
|
|
3711
|
+
ON conversation_deletions(deleted_at);
|
|
3650
3712
|
`);
|
|
3651
3713
|
await client.executeMultiple(`
|
|
3652
3714
|
CREATE TABLE IF NOT EXISTS session_agent_map (
|
|
@@ -4491,11 +4553,44 @@ async function ensureSchema() {
|
|
|
4491
4553
|
} catch (e) {
|
|
4492
4554
|
logCatchDebug("v9 repair entities_fts_au scope", e);
|
|
4493
4555
|
}
|
|
4556
|
+
await migrateSanitizeBehaviorContent(client);
|
|
4494
4557
|
try {
|
|
4495
4558
|
await client.execute(`PRAGMA user_version = ${CURRENT_SCHEMA_VERSION}`);
|
|
4496
4559
|
} catch {
|
|
4497
4560
|
}
|
|
4498
4561
|
}
|
|
4562
|
+
async function recordTriggerFire(cooldownKey, cooldownMs, now = Date.now()) {
|
|
4563
|
+
const client = getClient();
|
|
4564
|
+
const nowIso = new Date(now).toISOString();
|
|
4565
|
+
try {
|
|
4566
|
+
await client.execute({
|
|
4567
|
+
sql: `DELETE FROM trigger_cooldowns WHERE last_fired_at_ms < ?`,
|
|
4568
|
+
args: [now - 864e5]
|
|
4569
|
+
});
|
|
4570
|
+
} catch {
|
|
4571
|
+
}
|
|
4572
|
+
const res = await client.execute({
|
|
4573
|
+
sql: `INSERT INTO trigger_cooldowns (cooldown_key, last_fired_at_ms, fire_count, updated_at)
|
|
4574
|
+
VALUES (?, ?, 1, ?)
|
|
4575
|
+
ON CONFLICT(cooldown_key) DO UPDATE SET
|
|
4576
|
+
last_fired_at_ms = excluded.last_fired_at_ms,
|
|
4577
|
+
fire_count = trigger_cooldowns.fire_count + 1,
|
|
4578
|
+
updated_at = excluded.updated_at
|
|
4579
|
+
WHERE excluded.last_fired_at_ms - trigger_cooldowns.last_fired_at_ms >= ?`,
|
|
4580
|
+
args: [cooldownKey, now, nowIso, cooldownMs]
|
|
4581
|
+
});
|
|
4582
|
+
const allowed = Number(res.rowsAffected ?? 0) >= 1;
|
|
4583
|
+
let fireCount = 1;
|
|
4584
|
+
try {
|
|
4585
|
+
const read = await client.execute({
|
|
4586
|
+
sql: `SELECT fire_count FROM trigger_cooldowns WHERE cooldown_key = ?`,
|
|
4587
|
+
args: [cooldownKey]
|
|
4588
|
+
});
|
|
4589
|
+
fireCount = Number(read.rows[0]?.fire_count ?? 1);
|
|
4590
|
+
} catch {
|
|
4591
|
+
}
|
|
4592
|
+
return { allowed, fireCount };
|
|
4593
|
+
}
|
|
4499
4594
|
var disposeTurso = disposeDatabase;
|
|
4500
4595
|
async function disposeDatabase() {
|
|
4501
4596
|
if (_walCheckpointTimer) {
|
|
@@ -4569,6 +4664,7 @@ export {
|
|
|
4569
4664
|
tryGetRawClient,
|
|
4570
4665
|
_getMigrationBlockRuns,
|
|
4571
4666
|
ensureSchema,
|
|
4667
|
+
recordTriggerFire,
|
|
4572
4668
|
disposeTurso,
|
|
4573
4669
|
disposeDatabase,
|
|
4574
4670
|
identityPath,
|