@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
|
@@ -9,9 +9,10 @@ import {
|
|
|
9
9
|
buildRawVisibilityFilter,
|
|
10
10
|
buildStatusFilter,
|
|
11
11
|
buildSystemStateExclusionFilter,
|
|
12
|
+
buildVisibilityTierFilter,
|
|
12
13
|
buildWikiScopeFilter,
|
|
13
14
|
searchMemories
|
|
14
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-MXPNVSXI.js";
|
|
15
16
|
import {
|
|
16
17
|
blobToVector
|
|
17
18
|
} from "./chunk-OTVEIJUQ.js";
|
|
@@ -26,7 +27,7 @@ import {
|
|
|
26
27
|
getClient,
|
|
27
28
|
isFtsShadowCorruptionMessage,
|
|
28
29
|
repairFtsTable
|
|
29
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-TAMDAOCU.js";
|
|
30
31
|
|
|
31
32
|
// src/lib/memory-reads.ts
|
|
32
33
|
import crypto from "crypto";
|
|
@@ -383,10 +384,18 @@ async function graphSearch(query, agentId, options, limit) {
|
|
|
383
384
|
WHERE em.entity_id IN (${placeholders})
|
|
384
385
|
AND (m.agent_id = ? OR m.agent_id = 'wiki')${statusFilter}
|
|
385
386
|
AND COALESCE(m.confidence, 0.7) >= 0.3`;
|
|
387
|
+
if (options?.agentRole) {
|
|
388
|
+
memSql += `
|
|
389
|
+
AND LOWER(m.agent_role) = LOWER(?)`;
|
|
390
|
+
memArgs.push(options.agentRole);
|
|
391
|
+
}
|
|
386
392
|
memSql = appendMemoryTypeFilter(memSql, memArgs, "m.memory_type", options);
|
|
387
393
|
const memTemporal = buildTemporalFilter(options, "m.");
|
|
388
394
|
memSql += memTemporal.clause;
|
|
389
395
|
memArgs.push(...memTemporal.args);
|
|
396
|
+
const memVisibility = buildVisibilityTierFilter(options, "m.");
|
|
397
|
+
memSql += memVisibility.clause;
|
|
398
|
+
memArgs.push(...memVisibility.args);
|
|
390
399
|
memSql += `
|
|
391
400
|
ORDER BY m.importance DESC, m.timestamp DESC
|
|
392
401
|
LIMIT ?`;
|
|
@@ -531,7 +540,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
531
540
|
const skipVectorPillar = config.searchMode === "fts";
|
|
532
541
|
const limit = options?.limit ?? 10;
|
|
533
542
|
const trajectoryResults = await trajectoryBypass(queryText, agentId, options, limit);
|
|
534
|
-
if (trajectoryResults !== null) return trajectoryResults;
|
|
543
|
+
if (trajectoryResults !== null) return enforceAgentRoleInvariant(trajectoryResults, options);
|
|
535
544
|
let effectiveQuery = queryText;
|
|
536
545
|
const effectiveOptions = { ...options };
|
|
537
546
|
let _isBroadQuery = false;
|
|
@@ -549,8 +558,8 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
549
558
|
if (routed.timeFilter && !effectiveOptions.since) {
|
|
550
559
|
effectiveOptions.since = routed.timeFilter;
|
|
551
560
|
}
|
|
552
|
-
if (routed.roleFilter) {
|
|
553
|
-
|
|
561
|
+
if (routed.roleFilter && !effectiveOptions.agentRole) {
|
|
562
|
+
effectiveOptions.agentRole = routed.roleFilter;
|
|
554
563
|
}
|
|
555
564
|
} catch (err) {
|
|
556
565
|
if (!process.env.VITEST) {
|
|
@@ -574,7 +583,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
574
583
|
let rerankerAvailable = false;
|
|
575
584
|
if (process.env.EXE_IS_DAEMON === "1") {
|
|
576
585
|
try {
|
|
577
|
-
const { isRerankerAvailable } = await import("./reranker-
|
|
586
|
+
const { isRerankerAvailable } = await import("./reranker-6V3C2AO4.js");
|
|
578
587
|
rerankerAvailable = isRerankerAvailable();
|
|
579
588
|
} catch {
|
|
580
589
|
}
|
|
@@ -586,7 +595,18 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
586
595
|
if (!skipVectorPillar) {
|
|
587
596
|
try {
|
|
588
597
|
const { embed } = await import("./lib/embedder.js");
|
|
589
|
-
|
|
598
|
+
let embedInput = effectiveQuery;
|
|
599
|
+
if (config.hyde) {
|
|
600
|
+
try {
|
|
601
|
+
const { generateHypotheticalDocument } = await import("./hyde-MP4QNMU5.js");
|
|
602
|
+
const hydeDoc = await generateHypotheticalDocument(effectiveQuery, config.hydeModel, agentId);
|
|
603
|
+
if (hydeDoc) embedInput = `${effectiveQuery}
|
|
604
|
+
|
|
605
|
+
${hydeDoc}`;
|
|
606
|
+
} catch {
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
queryVector = await embed(embedInput);
|
|
590
610
|
} catch {
|
|
591
611
|
if (!process.env.VITEST) {
|
|
592
612
|
if (!_hybridDegradeWarned) {
|
|
@@ -603,7 +623,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
603
623
|
if (config.fileGrepEnabled === true && !process.env.VITEST && !onFailOpenHotPath) {
|
|
604
624
|
try {
|
|
605
625
|
if (process.env.EXE_IS_DAEMON !== "1") {
|
|
606
|
-
const { getProjectName } = await import("./project-name-
|
|
626
|
+
const { getProjectName } = await import("./project-name-LJVFMYTQ.js");
|
|
607
627
|
const projectRoot = process.cwd();
|
|
608
628
|
const projectName = getProjectName(projectRoot);
|
|
609
629
|
if (projectName && projectName !== "tmp") {
|
|
@@ -643,7 +663,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
643
663
|
]).catch(() => []),
|
|
644
664
|
includeStructuredCards ? (async () => {
|
|
645
665
|
try {
|
|
646
|
-
const { searchMemoryCards } = await import("./memory-cards-
|
|
666
|
+
const { searchMemoryCards } = await import("./memory-cards-3S2ZQPR7.js");
|
|
647
667
|
return await searchMemoryCards(effectiveQuery, agentId, fetchOptions);
|
|
648
668
|
} catch {
|
|
649
669
|
return [];
|
|
@@ -652,9 +672,14 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
652
672
|
// Reflection insights: patterns, contradictions, summaries across sessions
|
|
653
673
|
includeStructuredCards ? (async () => {
|
|
654
674
|
try {
|
|
655
|
-
const { searchReflections } = await import("./memory-reflection-
|
|
675
|
+
const { searchReflections } = await import("./memory-reflection-BKB2YOE6.js");
|
|
656
676
|
const insights = await searchReflections(effectiveQuery, agentId, 5, {
|
|
657
|
-
includeArchived: options?.includeArchived
|
|
677
|
+
includeArchived: options?.includeArchived,
|
|
678
|
+
visibilityFilter: options?.visibilityFilter,
|
|
679
|
+
// Bug 186c1317: propagate the hard agent_role filter into the
|
|
680
|
+
// reflection arm so role-scoped recall does not leak reflections
|
|
681
|
+
// grounded only in non-matching-role source memories.
|
|
682
|
+
agentRole: fetchOptions.agentRole
|
|
658
683
|
});
|
|
659
684
|
return insights.map((ins) => ({
|
|
660
685
|
id: ins.id,
|
|
@@ -753,7 +778,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
753
778
|
let entityBoostRan = false;
|
|
754
779
|
if (merged.length > 0) {
|
|
755
780
|
try {
|
|
756
|
-
const { applyEntityBoost } = await import("./entity-boost-
|
|
781
|
+
const { applyEntityBoost } = await import("./entity-boost-3UWGXG5O.js");
|
|
757
782
|
const boosted = await applyEntityBoost(merged, effectiveQuery, getClient());
|
|
758
783
|
merged = boosted.results;
|
|
759
784
|
graphContextMap = boosted.graphContext;
|
|
@@ -777,7 +802,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
777
802
|
try {
|
|
778
803
|
let rerankedRecords;
|
|
779
804
|
if (graphContextMap.size > 0) {
|
|
780
|
-
const { rerankWithContext } = await import("./reranker-
|
|
805
|
+
const { rerankWithContext } = await import("./reranker-6V3C2AO4.js");
|
|
781
806
|
const candidates = merged.map((m) => ({
|
|
782
807
|
text: m.raw_text,
|
|
783
808
|
context: graphContextMap.get(m.id)
|
|
@@ -785,7 +810,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
785
810
|
const scored = await rerankWithContext(effectiveQuery, candidates, rerankReturnLimit);
|
|
786
811
|
rerankedRecords = scored.map((s) => merged[s.index]);
|
|
787
812
|
} else {
|
|
788
|
-
const { rerank } = await import("./reranker-
|
|
813
|
+
const { rerank } = await import("./reranker-6V3C2AO4.js");
|
|
789
814
|
rerankedRecords = await rerank(effectiveQuery, merged, rerankReturnLimit);
|
|
790
815
|
}
|
|
791
816
|
if (rerankedRecords.length > 0) {
|
|
@@ -831,9 +856,10 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
831
856
|
}
|
|
832
857
|
}
|
|
833
858
|
if (options?.includeSource && finalResults.length > 0) {
|
|
834
|
-
finalResults = await expandNeighborChunks(finalResults, limit, agentId);
|
|
859
|
+
finalResults = await expandNeighborChunks(finalResults, limit, agentId, effectiveOptions);
|
|
835
860
|
await attachDocumentMetadata(finalResults);
|
|
836
861
|
}
|
|
862
|
+
finalResults = enforceAgentRoleInvariant(finalResults, effectiveOptions);
|
|
837
863
|
if (process.env.EXE_SEARCH_LOG !== "0") {
|
|
838
864
|
const querySnapshot = searchQualityQuerySnapshot(queryText);
|
|
839
865
|
const logEntry = {
|
|
@@ -956,6 +982,9 @@ async function estimateCardinality(agentId, options) {
|
|
|
956
982
|
sql += buildSystemStateExclusionFilter("");
|
|
957
983
|
sql += rawVisibility.clause;
|
|
958
984
|
args.push(...rawVisibility.args);
|
|
985
|
+
const visibilityTier = buildVisibilityTierFilter(options, "");
|
|
986
|
+
sql += visibilityTier.clause;
|
|
987
|
+
args.push(...visibilityTier.args);
|
|
959
988
|
if (options?.projectName) {
|
|
960
989
|
sql += ` AND project_name = ?`;
|
|
961
990
|
args.push(options.projectName);
|
|
@@ -1189,14 +1218,15 @@ async function lightweightSearch(queryText, agentId, options) {
|
|
|
1189
1218
|
logDaemonBroadFtsSkipOnce(terms);
|
|
1190
1219
|
}
|
|
1191
1220
|
if (options?.includeSource && results.length > 0) {
|
|
1192
|
-
const expanded = await expandNeighborChunks(results, limit, agentId);
|
|
1221
|
+
const expanded = await expandNeighborChunks(results, limit, agentId, options);
|
|
1193
1222
|
await attachDocumentMetadata(expanded);
|
|
1223
|
+
const expandedSnapshot = expanded === results ? [...expanded] : expanded;
|
|
1194
1224
|
results.length = 0;
|
|
1195
|
-
results.push(...
|
|
1225
|
+
results.push(...expandedSnapshot);
|
|
1196
1226
|
}
|
|
1197
1227
|
if (results.length >= 2) {
|
|
1198
1228
|
try {
|
|
1199
|
-
const { recordCoActivations } = await import("./co-activation-
|
|
1229
|
+
const { recordCoActivations } = await import("./co-activation-CMNSWS6B.js");
|
|
1200
1230
|
const ids = results.slice(0, 10).map((r) => r.id);
|
|
1201
1231
|
void recordCoActivations(ids).catch((e) => {
|
|
1202
1232
|
try {
|
|
@@ -1212,7 +1242,7 @@ async function lightweightSearch(queryText, agentId, options) {
|
|
|
1212
1242
|
}
|
|
1213
1243
|
if (options?.includeStructuredCards !== true) return results;
|
|
1214
1244
|
try {
|
|
1215
|
-
const { searchMemoryCards } = await import("./memory-cards-
|
|
1245
|
+
const { searchMemoryCards } = await import("./memory-cards-3S2ZQPR7.js");
|
|
1216
1246
|
const cardResults = await searchMemoryCards(queryText, agentId, options);
|
|
1217
1247
|
if (cardResults.length > 0) {
|
|
1218
1248
|
return rrfMergeMulti([results, cardResults], limit, RRF_K, [1, 0.85]);
|
|
@@ -1246,10 +1276,17 @@ async function ftsQuery(client, matchExpr, agentId, options, limit) {
|
|
|
1246
1276
|
sql += buildSystemStateExclusionFilter("m.");
|
|
1247
1277
|
sql += rawVisibility.clause;
|
|
1248
1278
|
args.push(...rawVisibility.args);
|
|
1279
|
+
const visibilityTier = buildVisibilityTierFilter(options, "m.");
|
|
1280
|
+
sql += visibilityTier.clause;
|
|
1281
|
+
args.push(...visibilityTier.args);
|
|
1249
1282
|
if (options?.projectName) {
|
|
1250
1283
|
sql += ` AND m.project_name = ?`;
|
|
1251
1284
|
args.push(options.projectName);
|
|
1252
1285
|
}
|
|
1286
|
+
if (options?.agentRole) {
|
|
1287
|
+
sql += ` AND LOWER(m.agent_role) = LOWER(?)`;
|
|
1288
|
+
args.push(options.agentRole);
|
|
1289
|
+
}
|
|
1253
1290
|
sql = appendSessionScopeFilter(sql, args, options, "m.");
|
|
1254
1291
|
if (options?.toolName) {
|
|
1255
1292
|
sql += ` AND m.tool_name = ?`;
|
|
@@ -1336,6 +1373,7 @@ async function recentRecords(agentId, options, limit, textFilter) {
|
|
|
1336
1373
|
});
|
|
1337
1374
|
if (kills.rows.length > 0) {
|
|
1338
1375
|
const boundarySlots = Math.min(5, Math.floor(limit / 2));
|
|
1376
|
+
const boundaryVisibility = buildVisibilityTierFilter(options, "");
|
|
1339
1377
|
for (const kill of kills.rows) {
|
|
1340
1378
|
const killedAt = kill.killed_at;
|
|
1341
1379
|
const windowStart = new Date(new Date(killedAt).getTime() - 10 * 60 * 1e3).toISOString();
|
|
@@ -1354,13 +1392,16 @@ async function recentRecords(agentId, options, limit, textFilter) {
|
|
|
1354
1392
|
${buildSystemStateExclusionFilter("")}
|
|
1355
1393
|
AND ${options?.includeRaw === false ? "COALESCE(memory_type, 'raw') != 'raw'" : "1 = 1"}
|
|
1356
1394
|
${options?.memoryTypes?.length ? `AND memory_type IN (${options.memoryTypes.map(() => "?").join(",")})` : options?.memoryType ? "AND memory_type = ?" : ""}
|
|
1357
|
-
AND COALESCE(confidence, 0.7) >= 0.3
|
|
1395
|
+
AND COALESCE(confidence, 0.7) >= 0.3${boundaryVisibility.clause}
|
|
1396
|
+
${options?.agentRole ? "AND LOWER(agent_role) = LOWER(?)" : ""}
|
|
1358
1397
|
ORDER BY timestamp DESC LIMIT ?`,
|
|
1359
1398
|
args: [
|
|
1360
1399
|
agentId,
|
|
1361
1400
|
windowStart,
|
|
1362
1401
|
killedAt,
|
|
1363
1402
|
...options?.memoryTypes?.length ? [...new Set(options.memoryTypes)] : options?.memoryType ? [options.memoryType] : [],
|
|
1403
|
+
...boundaryVisibility.args,
|
|
1404
|
+
...options?.agentRole ? [options.agentRole] : [],
|
|
1364
1405
|
boundarySlots
|
|
1365
1406
|
]
|
|
1366
1407
|
});
|
|
@@ -1393,10 +1434,17 @@ async function recentRecords(agentId, options, limit, textFilter) {
|
|
|
1393
1434
|
sql += buildSystemStateExclusionFilter("");
|
|
1394
1435
|
sql += rawVisibility.clause;
|
|
1395
1436
|
args.push(...rawVisibility.args);
|
|
1437
|
+
const visibilityTier = buildVisibilityTierFilter(options, "");
|
|
1438
|
+
sql += visibilityTier.clause;
|
|
1439
|
+
args.push(...visibilityTier.args);
|
|
1396
1440
|
if (options?.projectName) {
|
|
1397
1441
|
sql += ` AND project_name = ?`;
|
|
1398
1442
|
args.push(options.projectName);
|
|
1399
1443
|
}
|
|
1444
|
+
if (options?.agentRole) {
|
|
1445
|
+
sql += ` AND LOWER(agent_role) = LOWER(?)`;
|
|
1446
|
+
args.push(options.agentRole);
|
|
1447
|
+
}
|
|
1400
1448
|
sql = appendSessionScopeFilter(sql, args, options);
|
|
1401
1449
|
if (options?.toolName) {
|
|
1402
1450
|
sql += ` AND tool_name = ?`;
|
|
@@ -1460,7 +1508,16 @@ function rowToMemoryRecord(row) {
|
|
|
1460
1508
|
strength: row.strength ?? 1
|
|
1461
1509
|
};
|
|
1462
1510
|
}
|
|
1463
|
-
|
|
1511
|
+
function enforceAgentRoleInvariant(results, options) {
|
|
1512
|
+
if (!options?.agentRole) return results;
|
|
1513
|
+
const want = options.agentRole.toLowerCase();
|
|
1514
|
+
return results.filter((r) => {
|
|
1515
|
+
if (r.agent_role === "memory_card") return true;
|
|
1516
|
+
if (r.agent_role == null && r.session_id === "reflection") return true;
|
|
1517
|
+
return typeof r.agent_role === "string" && r.agent_role.toLowerCase() === want;
|
|
1518
|
+
});
|
|
1519
|
+
}
|
|
1520
|
+
async function expandNeighborChunks(results, limit, agentId, options) {
|
|
1464
1521
|
const docChunks = [];
|
|
1465
1522
|
for (const r of results) {
|
|
1466
1523
|
if (r.document_id) {
|
|
@@ -1500,6 +1557,7 @@ async function expandNeighborChunks(results, limit, agentId) {
|
|
|
1500
1557
|
AND (agent_id = ? OR agent_id = 'wiki')
|
|
1501
1558
|
AND id != ?
|
|
1502
1559
|
AND rowid BETWEEN ? AND ?
|
|
1560
|
+
${options?.agentRole ? "AND LOWER(agent_role) = LOWER(?)" : ""}
|
|
1503
1561
|
ORDER BY rowid`,
|
|
1504
1562
|
// Bug 60990334: neighbor expansion pivots off an already-scoped match
|
|
1505
1563
|
// but USED TO fetch rowid-adjacent chunks with no agent predicate. A
|
|
@@ -1507,7 +1565,19 @@ async function expandNeighborChunks(results, limit, agentId) {
|
|
|
1507
1565
|
// employee's chunks into this agent's results — the one path in this
|
|
1508
1566
|
// file that could genuinely surface foreign rows. Scope it like every
|
|
1509
1567
|
// other memories query.
|
|
1510
|
-
|
|
1568
|
+
// Bug 186c1317 (round-4): neighbor expansion APPENDS rows to the result
|
|
1569
|
+
// set, so it is a producing path and must carry the hard agent_role
|
|
1570
|
+
// predicate like every other one. Scoping only by document_id +
|
|
1571
|
+
// agent_id let a same-agent, different-ROLE chunk of the same document
|
|
1572
|
+
// back in on includeSource searches, defeating the role filter.
|
|
1573
|
+
args: [
|
|
1574
|
+
documentId,
|
|
1575
|
+
agentId,
|
|
1576
|
+
memoryId,
|
|
1577
|
+
pivotRowid - 2,
|
|
1578
|
+
pivotRowid + 2,
|
|
1579
|
+
...options?.agentRole ? [options.agentRole] : []
|
|
1580
|
+
]
|
|
1511
1581
|
});
|
|
1512
1582
|
for (const row of neighborsResult.rows) {
|
|
1513
1583
|
const neighborId = row.id;
|
|
@@ -1587,10 +1657,17 @@ async function trajectoryBypass(queryText, agentId, options, limit) {
|
|
|
1587
1657
|
sql += buildSystemStateExclusionFilter("");
|
|
1588
1658
|
sql += rawVisibility.clause;
|
|
1589
1659
|
args.push(...rawVisibility.args);
|
|
1660
|
+
const visibilityTier = buildVisibilityTierFilter(options, "");
|
|
1661
|
+
sql += visibilityTier.clause;
|
|
1662
|
+
args.push(...visibilityTier.args);
|
|
1590
1663
|
if (options?.projectName) {
|
|
1591
1664
|
sql += ` AND project_name = ?`;
|
|
1592
1665
|
args.push(options.projectName);
|
|
1593
1666
|
}
|
|
1667
|
+
if (options?.agentRole) {
|
|
1668
|
+
sql += ` AND LOWER(agent_role) = LOWER(?)`;
|
|
1669
|
+
args.push(options.agentRole);
|
|
1670
|
+
}
|
|
1594
1671
|
sql = appendSessionScopeFilter(sql, args, options);
|
|
1595
1672
|
if (options?.since) {
|
|
1596
1673
|
sql += ` AND timestamp >= ?`;
|
|
@@ -1636,5 +1713,6 @@ export {
|
|
|
1636
1713
|
rrfMerge,
|
|
1637
1714
|
rrfMergeMulti,
|
|
1638
1715
|
lightweightSearch,
|
|
1639
|
-
recentRecords
|
|
1716
|
+
recentRecords,
|
|
1717
|
+
enforceAgentRoleInvariant
|
|
1640
1718
|
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isExeSession
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-AKLQSC6W.js";
|
|
4
4
|
import {
|
|
5
5
|
recordOrchestrationEventBestEffort
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-W75GTHR3.js";
|
|
7
7
|
import {
|
|
8
8
|
getClient,
|
|
9
9
|
isCoordinatorName
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-TAMDAOCU.js";
|
|
11
11
|
import {
|
|
12
12
|
isDaemonAlive
|
|
13
13
|
} from "./chunk-V3W3SATA.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createTokenBudgetMiddleware
|
|
3
|
-
} from "./chunk-EEXX4UMQ.js";
|
|
4
1
|
import {
|
|
5
2
|
MultiAgentOrchestrator
|
|
6
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XXOPG4BW.js";
|
|
4
|
+
import {
|
|
5
|
+
createTokenBudgetMiddleware
|
|
6
|
+
} from "./chunk-DZKPOSFD.js";
|
|
7
7
|
import {
|
|
8
8
|
createQuietRenderer,
|
|
9
9
|
createTerminalRenderer,
|
|
@@ -30,7 +30,11 @@ import {
|
|
|
30
30
|
recordDenial,
|
|
31
31
|
recordSuccess,
|
|
32
32
|
shouldFallbackToAsk
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-HNWS7YHN.js";
|
|
34
|
+
import {
|
|
35
|
+
composeHooks,
|
|
36
|
+
createDefaultHooks
|
|
37
|
+
} from "./chunk-O377P7GM.js";
|
|
34
38
|
import {
|
|
35
39
|
ToolRegistry,
|
|
36
40
|
partitionTools,
|
|
@@ -50,9 +54,8 @@ import {
|
|
|
50
54
|
matchToolPattern
|
|
51
55
|
} from "./chunk-HF25XPZE.js";
|
|
52
56
|
import {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
} from "./chunk-O377P7GM.js";
|
|
57
|
+
setBudgetFallback
|
|
58
|
+
} from "./chunk-QLZ46RCK.js";
|
|
56
59
|
import {
|
|
57
60
|
StateBus,
|
|
58
61
|
orgBus
|
|
@@ -209,7 +212,7 @@ function createExeOSHooks(config) {
|
|
|
209
212
|
);
|
|
210
213
|
}
|
|
211
214
|
try {
|
|
212
|
-
const { listBehaviors } = await import("./behaviors-
|
|
215
|
+
const { listBehaviors } = await import("./behaviors-ZJ45TFBJ.js");
|
|
213
216
|
const behaviors = await listBehaviors(config.agentId, config.projectName, 12);
|
|
214
217
|
if (behaviors.length > 0) {
|
|
215
218
|
process.stderr.write(
|
|
@@ -330,7 +333,7 @@ function createExeOSHooks(config) {
|
|
|
330
333
|
async onSubagentStop(_reason) {
|
|
331
334
|
try {
|
|
332
335
|
const { getClient } = await import("./lib/database.js");
|
|
333
|
-
const { sessionScopeFilter } = await import("./task-scope-
|
|
336
|
+
const { sessionScopeFilter } = await import("./task-scope-ERVEUEYU.js");
|
|
334
337
|
const client = getClient();
|
|
335
338
|
const ehScope = sessionScopeFilter();
|
|
336
339
|
const tasks = await client.execute({
|
|
@@ -362,6 +365,25 @@ function createExeOSHooks(config) {
|
|
|
362
365
|
} catch {
|
|
363
366
|
}
|
|
364
367
|
},
|
|
368
|
+
async onTokenBudgetExceeded(_ctx, fallback) {
|
|
369
|
+
if (!fallback || !config.taskId) return;
|
|
370
|
+
setBudgetFallback({
|
|
371
|
+
taskId: config.taskId,
|
|
372
|
+
fallbackModel: fallback,
|
|
373
|
+
setAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
374
|
+
});
|
|
375
|
+
try {
|
|
376
|
+
const { writeNotification } = await import("./notifications-MACUZPYP.js");
|
|
377
|
+
await writeNotification({
|
|
378
|
+
agentId: config.agentId,
|
|
379
|
+
agentRole: "employee",
|
|
380
|
+
event: "spend_cap_alert",
|
|
381
|
+
project: config.projectName,
|
|
382
|
+
summary: `Token budget exceeded \u2014 routing task to fallback model ${fallback}.`
|
|
383
|
+
});
|
|
384
|
+
} catch {
|
|
385
|
+
}
|
|
386
|
+
},
|
|
365
387
|
async onPermissionRequest(toolName) {
|
|
366
388
|
const readOnlyTools = /^(Read|Glob|Grep)$/;
|
|
367
389
|
if (readOnlyTools.test(toolName)) {
|
|
@@ -422,7 +444,7 @@ function createExeOSHooks(config) {
|
|
|
422
444
|
try {
|
|
423
445
|
const { writeMemory, flushBatch } = await import("./lib/store.js");
|
|
424
446
|
const { getClient } = await import("./lib/database.js");
|
|
425
|
-
const { sessionScopeFilter: cpScopeFilter } = await import("./task-scope-
|
|
447
|
+
const { sessionScopeFilter: cpScopeFilter } = await import("./task-scope-ERVEUEYU.js");
|
|
426
448
|
const client = getClient();
|
|
427
449
|
const cpScope = cpScopeFilter();
|
|
428
450
|
const tasks = await client.execute({
|
|
@@ -609,7 +631,7 @@ var SessionManager = class {
|
|
|
609
631
|
* when the task has no budget configured — see `startSession`).
|
|
610
632
|
*/
|
|
611
633
|
startExeOSSession(employeeId, config, hookConfig, taskId) {
|
|
612
|
-
const exeHooks = createExeOSHooks(hookConfig);
|
|
634
|
+
const exeHooks = createExeOSHooks({ ...hookConfig, taskId });
|
|
613
635
|
const composedConfig = {
|
|
614
636
|
...config,
|
|
615
637
|
hooks: composeHooks(exeHooks, config.hooks)
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
behaviorTruncationNotice
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-32YV32VA.js";
|
|
4
4
|
import {
|
|
5
5
|
countActiveBehaviors,
|
|
6
6
|
listBehaviors
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-WMEYJT4R.js";
|
|
8
8
|
import {
|
|
9
9
|
loadConfigSync
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-ZIG7VPJV.js";
|
|
11
11
|
|
|
12
12
|
// src/lib/behaviors-export.ts
|
|
13
13
|
import os from "os";
|
|
@@ -24,6 +24,9 @@ function isSidechainTranscript(transcriptPath) {
|
|
|
24
24
|
}
|
|
25
25
|
return false;
|
|
26
26
|
}
|
|
27
|
+
function detectSubagentSidechain(transcriptPath, agentTranscriptPath) {
|
|
28
|
+
return isSidechainTranscript(agentTranscriptPath) || isSidechainTranscript(transcriptPath);
|
|
29
|
+
}
|
|
27
30
|
function resolveSidechainAgentIdentity(parent, transcriptPath, env = process.env) {
|
|
28
31
|
if (!isSidechainTranscript(transcriptPath)) return parent;
|
|
29
32
|
const rawType = (env.EXE_AGENT_TYPE ?? env.CLAUDE_SUBAGENT_TYPE ?? env.AGENT_TYPE ?? "subagent").trim();
|
|
@@ -36,5 +39,6 @@ function resolveSidechainAgentIdentity(parent, transcriptPath, env = process.env
|
|
|
36
39
|
|
|
37
40
|
export {
|
|
38
41
|
isSidechainTranscript,
|
|
42
|
+
detectSubagentSidechain,
|
|
39
43
|
resolveSidechainAgentIdentity
|
|
40
44
|
};
|
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
listWorkflowDefinitions,
|
|
3
3
|
runWorkflow,
|
|
4
4
|
startWorkflow
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-YMP2QSOP.js";
|
|
6
6
|
import {
|
|
7
7
|
ingest
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-YSLGFPWX.js";
|
|
9
9
|
import {
|
|
10
10
|
initCRMBridge
|
|
11
11
|
} from "./chunk-ML4S5SHZ.js";
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
resolveType
|
|
3
|
+
} from "./chunk-GUMRIUI5.js";
|
|
1
4
|
import {
|
|
2
5
|
chunkSourceFile,
|
|
3
6
|
languageForFile
|
|
4
7
|
} from "./chunk-Z6BZQHP5.js";
|
|
5
|
-
import {
|
|
6
|
-
resolveType
|
|
7
|
-
} from "./chunk-GUMRIUI5.js";
|
|
8
8
|
import {
|
|
9
9
|
resolveAnthropicAuth
|
|
10
10
|
} from "./chunk-VGMACSEV.js";
|
|
11
11
|
import {
|
|
12
12
|
WORK_STATE_HEARTBEAT_TOOL
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-VZAFWPAY.js";
|
|
14
14
|
import {
|
|
15
15
|
hashMemoryContent
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-DN4YVV4Z.js";
|
|
17
17
|
|
|
18
18
|
// src/lib/graph-rag.ts
|
|
19
19
|
import crypto from "crypto";
|
|
@@ -861,6 +861,10 @@ async function storeExtraction(client, extraction, memoryId, timestamp) {
|
|
|
861
861
|
}
|
|
862
862
|
return { entitiesStored, relationshipsStored };
|
|
863
863
|
}
|
|
864
|
+
function isUniqueConstraintError(message) {
|
|
865
|
+
const m = message.toLowerCase();
|
|
866
|
+
return m.includes("unique constraint") || m.includes("sqlite_constraint_unique") || m.includes("primary key") || m.includes("constraint") && m.includes("failed") && m.includes("unique");
|
|
867
|
+
}
|
|
864
868
|
async function extractBatch(client, batchSize = 50, model = "claude-haiku-4-5-20251001") {
|
|
865
869
|
const result = await client.execute({
|
|
866
870
|
sql: `SELECT id, agent_id, raw_text, tool_name, timestamp, content_hash, graph_extracted_hash
|
|
@@ -875,10 +879,12 @@ async function extractBatch(client, batchSize = 50, model = "claude-haiku-4-5-20
|
|
|
875
879
|
args: [batchSize]
|
|
876
880
|
});
|
|
877
881
|
if (result.rows.length === 0) {
|
|
878
|
-
return { processed: 0, entities: 0, relationships: 0 };
|
|
882
|
+
return { processed: 0, advanced: 0, failed: 0, entities: 0, relationships: 0 };
|
|
879
883
|
}
|
|
880
884
|
let totalEntities = 0;
|
|
881
885
|
let totalRelationships = 0;
|
|
886
|
+
let advanced = 0;
|
|
887
|
+
let failed = 0;
|
|
882
888
|
for (const row of result.rows) {
|
|
883
889
|
const memoryId = String(row.id);
|
|
884
890
|
const agentId = String(row.agent_id);
|
|
@@ -906,14 +912,29 @@ async function extractBatch(client, batchSize = 50, model = "claude-haiku-4-5-20
|
|
|
906
912
|
sql: "UPDATE memories SET graph_extracted = 1, content_hash = COALESCE(content_hash, ?), graph_extracted_hash = ? WHERE id = ?",
|
|
907
913
|
args: [contentHash, contentHash, memoryId]
|
|
908
914
|
});
|
|
915
|
+
advanced++;
|
|
909
916
|
} catch (err) {
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
917
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
918
|
+
if (isUniqueConstraintError(msg)) {
|
|
919
|
+
try {
|
|
920
|
+
await client.execute({
|
|
921
|
+
sql: "UPDATE memories SET graph_extracted = 1, graph_extracted_hash = COALESCE(graph_extracted_hash, ?) WHERE id = ?",
|
|
922
|
+
args: [hashMemoryContent(rawContent), memoryId]
|
|
923
|
+
});
|
|
924
|
+
advanced++;
|
|
925
|
+
process.stderr.write(`[graph-rag] Skipped already-present (UNIQUE collision) memory ${memoryId}; marked extracted.
|
|
926
|
+
`);
|
|
927
|
+
} catch {
|
|
928
|
+
failed++;
|
|
929
|
+
}
|
|
930
|
+
} else {
|
|
931
|
+
failed++;
|
|
932
|
+
process.stderr.write(`[graph-rag] Batch extraction failed for ${memoryId}: ${msg}
|
|
933
|
+
`);
|
|
934
|
+
}
|
|
914
935
|
}
|
|
915
936
|
}
|
|
916
|
-
return { processed: result.rows.length, entities: totalEntities, relationships: totalRelationships };
|
|
937
|
+
return { processed: result.rows.length, advanced, failed, entities: totalEntities, relationships: totalRelationships };
|
|
917
938
|
}
|
|
918
939
|
|
|
919
940
|
export {
|
|
@@ -936,5 +957,6 @@ export {
|
|
|
936
957
|
extractHeuristicMemoryGraph,
|
|
937
958
|
extractFromMemory,
|
|
938
959
|
storeExtraction,
|
|
960
|
+
isUniqueConstraintError,
|
|
939
961
|
extractBatch
|
|
940
962
|
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildSystemStateMemoryTypeExclusion
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MXPNVSXI.js";
|
|
4
4
|
import {
|
|
5
5
|
sessionScopeFilter
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AKLQSC6W.js";
|
|
7
7
|
import {
|
|
8
8
|
getClient,
|
|
9
9
|
getIdentity
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-TAMDAOCU.js";
|
|
11
11
|
import {
|
|
12
12
|
getEmotionalBaseline
|
|
13
13
|
} from "./chunk-NJFJWQNN.js";
|
|
@@ -646,7 +646,7 @@ var DreamingEngine = class {
|
|
|
646
646
|
}
|
|
647
647
|
let overdueProspective = [];
|
|
648
648
|
try {
|
|
649
|
-
const { getOverdueProspective, completeProspective } = await import("./prospective-memory-
|
|
649
|
+
const { getOverdueProspective, completeProspective } = await import("./prospective-memory-KR3P4T6N.js");
|
|
650
650
|
const overdue = await getOverdueProspective(agentId);
|
|
651
651
|
overdueProspective = overdue.map((o) => ({
|
|
652
652
|
id: o.id,
|