@askexenow/exe-os 0.9.339 → 0.9.341
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/dist/{active-agent-EC6M7KTX.js → active-agent-AIQP4DFL.js} +3 -3
- package/dist/{active-agent-WHIUCHLA.js → active-agent-LW45DSJ4.js} +3 -3
- package/dist/{agentic-ontology-RNSXGXW4.js → agentic-ontology-RVUNRCQY.js} +1 -1
- package/dist/{backfill-metadata-MFY6BHKE.js → backfill-metadata-ZSDJ4O2T.js} +5 -5
- package/dist/backup-verify-ZAJLEL4X.js +425 -0
- package/dist/{behaviors-HLZUJSMP.js → behaviors-EO7KCP3H.js} +6 -6
- package/dist/bin/agentic-ontology-backfill.js +6 -6
- package/dist/bin/agentic-reflection-backfill.js +7 -7
- package/dist/bin/agentic-semantic-label.js +6 -6
- package/dist/bin/backfill-conversations.js +6 -6
- package/dist/bin/backfill-responses.js +6 -6
- package/dist/bin/backfill-vectors.js +8 -8
- package/dist/bin/bulk-sync-postgres.js +12 -12
- package/dist/bin/cc-doctor.js +4 -4
- package/dist/bin/cleanup-stale-review-tasks.js +17 -17
- package/dist/bin/cli.js +50 -18
- package/dist/bin/deferred-daemon-restart.js +74 -73
- package/dist/bin/exe-agent-config.js +3 -3
- package/dist/bin/exe-agent.js +10 -10
- package/dist/bin/exe-assign.js +8 -8
- package/dist/bin/exe-boot.js +26 -26
- package/dist/bin/exe-call.js +4 -4
- package/dist/bin/exe-cloud.js +12 -12
- package/dist/bin/exe-config-dump.js +3 -3
- package/dist/bin/exe-dispatch.js +17 -17
- package/dist/bin/exe-doctor.js +4 -4
- package/dist/bin/exe-export-behaviors.js +8 -8
- package/dist/bin/exe-forget.js +7 -7
- package/dist/bin/exe-gateway.js +7 -7
- package/dist/bin/exe-healthcheck.js +4 -4
- package/dist/bin/exe-heartbeat.js +17 -17
- package/dist/bin/exe-kill.js +21 -21
- package/dist/bin/exe-launch-agent.js +27 -27
- package/dist/bin/exe-new-employee.js +8 -8
- package/dist/bin/exe-pending-messages.js +18 -18
- package/dist/bin/exe-pending-notifications.js +17 -17
- package/dist/bin/exe-pending-reviews.js +17 -17
- package/dist/bin/exe-rename.js +4 -4
- package/dist/bin/exe-review.js +20 -20
- package/dist/bin/exe-search.js +6 -6
- package/dist/bin/exe-session-cleanup.js +22 -22
- package/dist/bin/exe-settings.js +13 -13
- package/dist/bin/exe-start-codex.js +13 -13
- package/dist/bin/exe-start-opencode.js +9 -9
- package/dist/bin/exe-status.js +18 -18
- package/dist/bin/exe-support.js +3 -3
- package/dist/bin/exe-team.js +3 -3
- package/dist/bin/git-sweep.js +18 -18
- package/dist/bin/graph-backfill.js +7 -7
- package/dist/bin/graph-export.js +6 -6
- package/dist/bin/import-history.js +10 -10
- package/dist/bin/install.js +76 -75
- package/dist/bin/intercom-check.js +4 -4
- package/dist/bin/mcp-sessions.js +2 -2
- package/dist/bin/orchestration-metrics.js +4 -4
- package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
- package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
- package/dist/bin/reconcile-backlog.js +484 -0
- package/dist/bin/registry-proxy.js +1 -1
- package/dist/bin/scan-tasks.js +17 -17
- package/dist/bin/setup.js +1 -1
- package/dist/bin/shard-migrate.js +5 -5
- package/dist/bin/stack-update.js +13 -7
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/boot-generation-GSMPJOWM.js +22 -0
- package/dist/{capability-cards-YOKVMMOL.js → capability-cards-OBYQNAKZ.js} +2 -2
- package/dist/{capacity-monitor-S54IOWRL.js → capacity-monitor-MG3FTUD5.js} +18 -18
- package/dist/{catchup-brief-DIOMTEW5.js → catchup-brief-BVJOF3GL.js} +21 -21
- package/dist/{chunk-X425OEYF.js → chunk-2C455MU3.js} +2 -2
- package/dist/{chunk-N5I7RL3I.js → chunk-2IWBY7XK.js} +1 -1
- package/dist/{chunk-X7H3HMFH.js → chunk-2P4WJNN5.js} +3 -3
- package/dist/{chunk-MW2GJJ53.js → chunk-2UGGBIDL.js} +2 -2
- package/dist/{chunk-BPC5LZ6Y.js → chunk-2WMTTIAZ.js} +1 -1
- package/dist/{chunk-BU2QQWBQ.js → chunk-2YCFNBC4.js} +1 -1
- package/dist/{chunk-RRWDYOQS.js → chunk-32YHCHWW.js} +1 -1
- package/dist/{chunk-I5RLNOFK.js → chunk-3BRVLPPA.js} +8 -4
- package/dist/{chunk-KTY7I7UH.js → chunk-4FJZ6SO7.js} +1 -1
- package/dist/{chunk-XWHE4LZK.js → chunk-4LWV633D.js} +21 -2
- package/dist/{chunk-AVKXCSBI.js → chunk-4QSJVMMT.js} +1 -1
- package/dist/{chunk-I3XKO3KQ.js → chunk-6BQG7EKO.js} +1 -1
- package/dist/{chunk-RLRT2BVM.js → chunk-6D2PI4QD.js} +1 -1
- package/dist/{chunk-7EA7LYW4.js → chunk-6MVC43X7.js} +4 -4
- package/dist/chunk-6QW6JHRE.js +368 -0
- package/dist/{chunk-HHIBOU3P.js → chunk-7LF5DS3A.js} +1 -1
- package/dist/{chunk-XACL67CS.js → chunk-7SEC2AG5.js} +1 -1
- package/dist/{chunk-UFAXZ2PY.js → chunk-7YORGTXC.js} +1 -1
- package/dist/{chunk-3QDSCJ3F.js → chunk-AP455LBW.js} +1 -1
- package/dist/{chunk-OFX5B2S7.js → chunk-ATKW3SYL.js} +1 -1
- package/dist/{chunk-3OBWSCJN.js → chunk-B7CUBLF7.js} +10 -10
- package/dist/{chunk-UCQITDLM.js → chunk-BJ23BNED.js} +1 -1
- package/dist/{chunk-B76TSEP3.js → chunk-BJOBR6P2.js} +1 -1
- package/dist/{chunk-XCTGRD4S.js → chunk-BMHQPIJ2.js} +12 -12
- package/dist/{chunk-ZIVEA3NB.js → chunk-BR4423AS.js} +1 -1
- package/dist/{chunk-ATOU6CYR.js → chunk-BV6GBSRP.js} +16 -2
- package/dist/{chunk-DZ6OQM67.js → chunk-C445WRUX.js} +1 -1
- package/dist/{chunk-YE7NH53A.js → chunk-CCIEIRV2.js} +1 -1
- package/dist/{chunk-6IRVGOUL.js → chunk-CCPHEPLU.js} +1 -1
- package/dist/{chunk-2HZY3ECT.js → chunk-CMR64RYM.js} +18 -18
- package/dist/{chunk-MQRFKSLI.js → chunk-CYA5S5OD.js} +3 -3
- package/dist/{chunk-FNZR3B7U.js → chunk-DGGDUKH6.js} +1 -1
- package/dist/{chunk-QXSBB26A.js → chunk-DNVFWFYF.js} +1 -1
- package/dist/{chunk-QZLIZAS7.js → chunk-DPFQ2WQX.js} +2 -2
- package/dist/{chunk-H37HHX3E.js → chunk-EDH54E5A.js} +9 -9
- package/dist/{chunk-JD5S5AAV.js → chunk-EDOO23B2.js} +2 -2
- package/dist/{chunk-GQQHDEEM.js → chunk-FOV57K47.js} +10 -10
- package/dist/{chunk-65SVQELL.js → chunk-GFDGDFBF.js} +9 -0
- package/dist/{chunk-DILD54TU.js → chunk-GOGSWXNZ.js} +9 -9
- package/dist/{chunk-UPWE5NOG.js → chunk-GPW32HVB.js} +2 -2
- package/dist/{chunk-4IYSBPX3.js → chunk-HAZO7TRD.js} +1 -1
- package/dist/{chunk-52KNOQMK.js → chunk-HJX6NCJF.js} +3 -3
- package/dist/{chunk-UIV2WPBT.js → chunk-HNLXMD2V.js} +1 -1
- package/dist/{chunk-Z7OZP3ET.js → chunk-HSYJ6DZ2.js} +1 -1
- package/dist/{chunk-LTVCRHHD.js → chunk-HUSVERE6.js} +4 -4
- package/dist/{chunk-I7Z6KTGF.js → chunk-I7ECEP3W.js} +5 -5
- package/dist/{chunk-T4KZ2Z2N.js → chunk-IELUDZAA.js} +3 -3
- package/dist/{chunk-XUKPALWT.js → chunk-ITMEE7PQ.js} +3 -3
- package/dist/{chunk-KCC5A7YL.js → chunk-IXBIVKWZ.js} +6 -6
- package/dist/{chunk-GN45PBWI.js → chunk-J6SEDDOR.js} +2 -2
- package/dist/{chunk-UXBD22CD.js → chunk-K6KRBXQP.js} +1 -1
- package/dist/{chunk-PLRIJALF.js → chunk-KKOLHBNC.js} +33 -25
- package/dist/{chunk-OJTJYEMX.js → chunk-KP4PY2Z2.js} +3 -3
- package/dist/{chunk-VJHUVFIW.js → chunk-L2YGXJGF.js} +3 -3
- package/dist/{chunk-6MRWJMI5.js → chunk-LA2Z6RMS.js} +1 -1
- package/dist/{chunk-DEPZOCYD.js → chunk-LEJ25726.js} +321 -621
- package/dist/{chunk-2233TQCA.js → chunk-LLU6WZLK.js} +1 -1
- package/dist/{chunk-6M36JFFD.js → chunk-LOBCQXV5.js} +4 -4
- package/dist/{chunk-LMZISHSJ.js → chunk-MC4ATFJV.js} +5 -5
- package/dist/{chunk-EIF2LQHZ.js → chunk-MJB5ZFQM.js} +1 -1
- package/dist/{chunk-PAEXYFMY.js → chunk-N7A5D25S.js} +1 -1
- package/dist/{chunk-DADMPMYX.js → chunk-NDSNM5OH.js} +1 -1
- package/dist/{chunk-H2L4PHGH.js → chunk-NFBW7N4D.js} +2 -2
- package/dist/{chunk-VYRYY7TE.js → chunk-NTI22F3R.js} +1 -1
- package/dist/{chunk-TLYAEISW.js → chunk-OUEFW4RK.js} +2 -2
- package/dist/{chunk-K5WFKEXQ.js → chunk-PTJBWC77.js} +1 -1
- package/dist/{chunk-KMBEL7VB.js → chunk-PVIH3ZGV.js} +1 -1
- package/dist/{support-outbox-MGUVVGHT.js → chunk-Q5AIPSSC.js} +19 -7
- package/dist/chunk-RP5GETX5.js +140 -0
- package/dist/{chunk-HEPR6QTL.js → chunk-RWSLVYTE.js} +45 -5
- package/dist/{chunk-XJI7Z6LZ.js → chunk-T2PYVVZ5.js} +1 -1
- package/dist/{chunk-WYLV4S6A.js → chunk-TIXTHUVJ.js} +3 -3
- package/dist/{chunk-7WDXEKUL.js → chunk-TWXZM34M.js} +3 -3
- package/dist/{chunk-W7DHFGCB.js → chunk-U2MREVXQ.js} +1 -1
- package/dist/{chunk-6HBURYON.js → chunk-UIU2DGRV.js} +3 -3
- package/dist/{chunk-7TS64TBG.js → chunk-UU4UINUX.js} +6 -1
- package/dist/chunk-W6K4XB6G.js +40 -0
- package/dist/{chunk-R44Z32O2.js → chunk-WD55PEBM.js} +3 -3
- package/dist/{chunk-FUIIVSW6.js → chunk-WH7XN5ER.js} +1 -1
- package/dist/{chunk-Q7L6G6KV.js → chunk-WWNQFOSP.js} +2 -2
- package/dist/{chunk-542EWGY3.js → chunk-XSMRR4IW.js} +7 -7
- package/dist/{chunk-TNJRWUCE.js → chunk-Y3S4H77G.js} +1 -1
- package/dist/{chunk-AOO77BDE.js → chunk-YHUNDGVV.js} +1 -1
- package/dist/{chunk-JBSCL2XT.js → chunk-YIIME2OW.js} +1 -1
- package/dist/{chunk-QFPTDSY2.js → chunk-YLQXP7T7.js} +1 -1
- package/dist/{chunk-RDTZTLVQ.js → chunk-YWQMWFYR.js} +30 -14
- package/dist/{chunk-2SG2UGCH.js → chunk-ZNE6H2JO.js} +4 -4
- package/dist/{cleanup-graph-garbage-KUABW6LS.js → cleanup-graph-garbage-MXQ4Q2MA.js} +6 -6
- package/dist/{co-activation-XMPHKGHR.js → co-activation-QI5BK4RT.js} +2 -2
- package/dist/{co-occurrence-SHKSJ6CV.js → co-occurrence-BYSQNZSV.js} +4 -4
- package/dist/{code-context-index-EXXDY3QZ.js → code-context-index-BNBHDXHW.js} +2 -2
- package/dist/{content-extractor-RHITF2KM.js → content-extractor-JRJDNIHP.js} +2 -2
- package/dist/{conversation-entity-extractor-D3EFTLT4.js → conversation-entity-extractor-FPAMTL3C.js} +2 -2
- package/dist/{crdt-sync-UJELKSNX.js → crdt-sync-ETPKNBCU.js} +1 -1
- package/dist/{crm-webhook-HHNBS7LY.js → crm-webhook-M566ZMZS.js} +2 -2
- package/dist/{cto-delegation-gate-DXNF5HVW.js → cto-delegation-gate-S734XDXT.js} +16 -16
- package/dist/{daemon-orchestration-7QB6QOXT.js → daemon-orchestration-XV5GN73R.js} +20 -20
- package/dist/{daemon-ready-5XI5BIJD.js → daemon-ready-RKKB4P6K.js} +1 -1
- package/dist/{daemon-ready-signal-E7VMIQ6I.js → daemon-ready-signal-WKEJQNRA.js} +3 -1
- package/dist/{db-backup-DLD4QZBO.js → db-backup-MX2G3CEK.js} +1 -1
- package/dist/{doc-graph-extractor-3TRLGD7M.js → doc-graph-extractor-LR5KMPH7.js} +4 -4
- package/dist/{documents-FHIBU7KJ.js → documents-FA6N7QDA.js} +8 -8
- package/dist/{dreaming-OMFUEUCQ.js → dreaming-UKGTQT6I.js} +17 -17
- package/dist/{exe-drift-KY2KHZEL.js → exe-drift-TUKTCXZE.js} +3 -3
- package/dist/{exe-export-SP6G3QF6.js → exe-export-ZLHBXMZC.js} +7 -7
- package/dist/{exe-import-KJU7FBVQ.js → exe-import-VVKBZWSA.js} +7 -7
- package/dist/{exe-key-5RLFQMYP.js → exe-key-QJXFBF6G.js} +74 -73
- package/dist/{exe-snapshot-ZNPGUKRZ.js → exe-snapshot-JRLUO645.js} +21 -21
- package/dist/{fast-db-init-QQB6IVWV.js → fast-db-init-JKJEEHUI.js} +1 -1
- package/dist/{founder-context-PQR3BUS7.js → founder-context-HWPLMZVR.js} +2 -2
- package/dist/gateway/index.js +24 -24
- package/dist/{git-staleness-UGB5J3K7.js → git-staleness-X5XZONX3.js} +2 -2
- package/dist/{global-procedures-R7KRREEK.js → global-procedures-VIIVWB6R.js} +3 -3
- package/dist/{graph-auto-extract-LKIQ57PL.js → graph-auto-extract-HCQQF5AG.js} +4 -4
- package/dist/{graph-rag-JZZAB7PC.js → graph-rag-WAK2BRJH.js} +2 -2
- package/dist/hooks/bug-report-worker.js +19 -19
- package/dist/hooks/codex-stop-task-finalizer.js +19 -19
- package/dist/hooks/commit-complete.js +19 -19
- package/dist/hooks/error-recall.js +7 -7
- package/dist/hooks/exe-heartbeat-hook.js +3 -3
- package/dist/hooks/ingest-worker.js +5 -5
- package/dist/hooks/ingest.js +9 -9
- package/dist/hooks/instructions-loaded.js +4 -4
- package/dist/hooks/manifest.json +20 -20
- package/dist/hooks/notification.js +4 -4
- package/dist/hooks/post-compact.js +18 -18
- package/dist/hooks/post-tool-combined.js +9 -9
- package/dist/hooks/pre-compact.js +19 -19
- package/dist/hooks/pre-tool-use.js +22 -22
- package/dist/hooks/prompt-submit.js +36 -36
- package/dist/hooks/session-end.js +24 -24
- package/dist/hooks/session-start.js +14 -14
- package/dist/hooks/stop.js +25 -25
- package/dist/hooks/subagent-stop.js +18 -18
- package/dist/hooks/summary-worker.js +23 -23
- package/dist/index.js +29 -29
- package/dist/{installer-SB2N5NKH.js → installer-6IFVEQI4.js} +5 -5
- package/dist/{installer-MZWWBXM6.js → installer-NX2CLNV5.js} +5 -5
- package/dist/{installer-MNPXDLGG.js → installer-T2LGHZKL.js} +5 -5
- package/dist/{intercom-queue-VU2G6F5R.js → intercom-queue-KYHXXZCQ.js} +16 -16
- package/dist/lib/agent-config.js +1 -1
- package/dist/lib/cloud-sync.js +12 -12
- package/dist/lib/consolidation.js +8 -8
- package/dist/lib/database.js +2 -2
- package/dist/lib/db-daemon-client.js +2 -2
- package/dist/lib/db.js +2 -2
- package/dist/lib/device-registry.js +1 -1
- package/dist/lib/embedder.js +2 -2
- package/dist/lib/employee-templates.js +4 -4
- package/dist/lib/employees.js +2 -2
- package/dist/lib/exe-daemon-client.js +1 -1
- package/dist/lib/exe-daemon.js +123 -54
- package/dist/lib/hybrid-search.js +6 -6
- package/dist/lib/identity.js +2 -2
- package/dist/lib/license.js +2 -2
- package/dist/lib/messaging.js +17 -17
- package/dist/lib/post-tool-memory.js +3 -3
- package/dist/lib/registry-proxy.js +1 -1
- package/dist/lib/reminders.js +3 -3
- package/dist/lib/schedules.js +6 -6
- package/dist/lib/session-registry.js +4 -4
- package/dist/lib/skill-learning.js +7 -7
- package/dist/lib/store.js +5 -5
- package/dist/lib/task-router.js +3 -3
- package/dist/lib/tasks.js +18 -18
- package/dist/lib/tmux-routing.js +16 -16
- package/dist/lib/token-spend.js +3 -3
- package/dist/{license-gate-BYDMFMFT.js → license-gate-MGDR4YNI.js} +3 -3
- package/dist/{license-sync-N3RNYVP2.js → license-sync-UWE6GEB4.js} +2 -2
- package/dist/mcp/register-tools.js +73 -72
- package/dist/mcp/server.js +74 -73
- package/dist/mcp/tools/complete-reminder.js +4 -4
- package/dist/mcp/tools/create-reminder.js +4 -4
- package/dist/mcp/tools/create-task.js +20 -20
- package/dist/mcp/tools/deactivate-behavior.js +8 -8
- package/dist/mcp/tools/list-reminders.js +4 -4
- package/dist/mcp/tools/list-tasks.js +20 -20
- package/dist/mcp/tools/send-message.js +19 -19
- package/dist/mcp/tools/update-task.js +19 -19
- package/dist/{mcp-http-config-EMAVS2JI.js → mcp-http-config-RQLYEPTL.js} +3 -3
- package/dist/{memory-cards-TQRLZI4D.js → memory-cards-VYQ5DPMR.js} +5 -5
- package/dist/{memory-graph-extractor-IWGNVAFU.js → memory-graph-extractor-GX2HNYLU.js} +5 -5
- package/dist/{memory-poisoning-defense-T4ITBGSG.js → memory-poisoning-defense-TX7627BD.js} +2 -2
- package/dist/{memory-pressure-watchdog-RRIAXPXQ.js → memory-pressure-watchdog-MLNNH26B.js} +17 -17
- package/dist/{memory-queue-client-BKQHTYTH.js → memory-queue-client-YRL6XTGU.js} +2 -2
- package/dist/{memory-reflection-6N4J2FL7.js → memory-reflection-KIGEFSI4.js} +2 -2
- package/dist/notification-ledger-B6AVEGMV.js +407 -0
- package/dist/{notifications-KONB3C62.js → notifications-DWXV7SVL.js} +16 -16
- package/dist/{orchestration-events-5SIJOE4H.js → orchestration-events-ZG7O4HRY.js} +3 -3
- package/dist/{orchestrator-DUUX7FQV.js → orchestrator-PGHJDUUT.js} +18 -18
- package/dist/{pipeline-router-O6HU7DKH.js → pipeline-router-RTLAGZTA.js} +3 -3
- package/dist/{plan-limits-GRNBOBB3.js → plan-limits-WLQZTCSF.js} +5 -5
- package/dist/{projection-worker-ZVOFHTXT.js → projection-worker-44SEKTZ5.js} +2 -2
- package/dist/{prospective-memory-W6S67LZZ.js → prospective-memory-UACFTYXK.js} +2 -2
- package/dist/{reranker-SSFBRWWD.js → reranker-NL4YAV6R.js} +1 -1
- package/dist/{retrieval-health-TWHKYCRK.js → retrieval-health-4C2PO6HH.js} +1 -1
- package/dist/{review-polling-PCMD5BFN.js → review-polling-W5AMHNLT.js} +17 -17
- package/dist/runtime/index.js +24 -24
- package/dist/{session-events-3LCVQEL7.js → session-events-PGL5GJEB.js} +17 -17
- package/dist/{session-kill-telemetry-CZSPN5V6.js → session-kill-telemetry-6YDGEF27.js} +17 -17
- package/dist/{session-scope-CFHVSVAQ.js → session-scope-3MEOO557.js} +16 -16
- package/dist/{setup-wizard-CJZMM43G.js → setup-wizard-CJIYDSSP.js} +1 -1
- package/dist/{skill-refinement-74T6VDFM.js → skill-refinement-EOROTBPX.js} +3 -3
- package/dist/stack-promote-RSOWO6EY.js +130 -0
- package/dist/{stack-release-XXMV7SPX.js → stack-release-PR2XKJ4Q.js} +24 -9
- package/dist/{stack-update-E2TKHHSQ.js → stack-update-LMDM27ZW.js} +5 -3
- package/dist/{steward-gate-WT7WXQIE.js → steward-gate-4A2XHYFD.js} +3 -3
- package/dist/support-inbox-Z77ACQUY.js +32 -0
- package/dist/support-outbox-GB5SQFRJ.js +16 -0
- package/dist/{task-enforcement-VI7L43DC.js → task-enforcement-X5QVL6RE.js} +17 -17
- package/dist/{task-scope-CQEG5SSJ.js → task-scope-EKYDCVUF.js} +16 -16
- package/dist/{tasks-crud-UGK5A25L.js → tasks-crud-6LBNU43G.js} +16 -16
- package/dist/{tasks-notify-SMLDFBWM.js → tasks-notify-TFJLSQ3B.js} +17 -17
- package/dist/{tasks-review-JKBRACII.js → tasks-review-PBIUYXAL.js} +16 -16
- package/dist/{telemetry-upload-7LBYGPCB.js → telemetry-upload-WQDFABTF.js} +7 -7
- package/dist/{token-budget-QBRJR4M5.js → token-budget-KWGL5DY7.js} +3 -3
- package/dist/{tool-capability-index-Q6YQDL7I.js → tool-capability-index-EH3HQVHU.js} +1 -1
- package/dist/{tool-telemetry-ULIDUK3P.js → tool-telemetry-UC55LSIH.js} +1 -1
- package/dist/tui/App.js +24 -24
- package/dist/{tui-data-NPTGKT37.js → tui-data-M3RBSJL3.js} +16 -16
- package/dist/update-support-VPBD5SD2.js +355 -0
- package/dist/{worker-gate-MXUQUG4M.js → worker-gate-4QLLMXZM.js} +1 -1
- package/dist/{workflow-engine-EWCOLD47.js → workflow-engine-MMEHKUN4.js} +2 -2
- package/dist/{worktree-GVF2I5FP.js → worktree-YXBDRYOC.js} +4 -4
- package/dist/{worktree-sweep-ZAG3V24E.js → worktree-sweep-5WKBU7E6.js} +5 -5
- package/package.json +2 -2
- package/release-notes.json +35 -60
- package/dist/chunk-Y25OJWOQ.js +0 -45
- package/dist/{chunk-FLNSJ2TC.js → chunk-2KLAYDFB.js} +0 -0
- package/dist/{chunk-WHRTDN5J.js → chunk-3NCZKWPO.js} +0 -0
- package/dist/{chunk-IYB2NIW3.js → chunk-6MVI4QH2.js} +0 -0
- package/dist/{chunk-A4DVMPYB.js → chunk-7UMCQQWS.js} +3 -3
- /package/dist/{chunk-QLFRCA6I.js → chunk-AYLNJGCS.js} +0 -0
- /package/dist/{chunk-D3QASX2W.js → chunk-C2SRRCRK.js} +0 -0
- /package/dist/{chunk-KTPG4XKI.js → chunk-IB336P52.js} +0 -0
- /package/dist/{chunk-NQBRGXYR.js → chunk-MC6VPZKS.js} +0 -0
- /package/dist/{chunk-5Z5NATNS.js → chunk-PPZOWQHP.js} +0 -0
- /package/dist/{chunk-C2UO2I6K.js → chunk-WNKVKNOM.js} +0 -0
- /package/dist/{core-memory-VO5ZIBKH.js → core-memory-3IBWM4WR.js} +0 -0
- /package/dist/{entity-boost-DNI4A5I7.js → entity-boost-DWAWXFKN.js} +0 -0
- /package/dist/{message-queue-client-Q5BW3O5W.js → message-queue-client-3PTHPG5Q.js} +0 -0
- /package/dist/{oauth-server-ROQFOEMM.js → oauth-server-M5TGXT6D.js} +0 -0
- /package/dist/{project-boot-SD7GM24K.js → project-boot-6CGQ3EAH.js} +0 -0
- /package/dist/{wiki-acl-JA5UCQZ4.js → wiki-acl-7CROE3MJ.js} +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
embed
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-AP455LBW.js";
|
|
4
4
|
import {
|
|
5
5
|
reserveVersions,
|
|
6
6
|
vectorToBlob
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-EDH54E5A.js";
|
|
8
8
|
import {
|
|
9
9
|
getClient
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-RWSLVYTE.js";
|
|
11
11
|
|
|
12
12
|
// src/lib/documents.ts
|
|
13
13
|
import crypto from "crypto";
|
|
@@ -270,7 +270,7 @@ async function ingestDocument(input) {
|
|
|
270
270
|
await client.batch([documentStmt, ...chunkStmts], "write");
|
|
271
271
|
const embedded = vectors.filter((v) => v !== null).length;
|
|
272
272
|
const originalTexts = input.chunks.map((c) => c.text);
|
|
273
|
-
import("./doc-graph-extractor-
|
|
273
|
+
import("./doc-graph-extractor-LR5KMPH7.js").then(
|
|
274
274
|
({ extractAndStoreDocumentGraph }) => extractAndStoreDocumentGraph(documentId, originalTexts)
|
|
275
275
|
).catch((err) => {
|
|
276
276
|
process.stderr.write(
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import {
|
|
2
2
|
recordSessionKill
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IELUDZAA.js";
|
|
4
4
|
import {
|
|
5
5
|
sessionScopeFilter,
|
|
6
6
|
verifyPaneAtCapacity,
|
|
7
7
|
writeNotification
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KKOLHBNC.js";
|
|
9
9
|
import {
|
|
10
10
|
listSessions
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-HNLXMD2V.js";
|
|
12
12
|
import {
|
|
13
13
|
getTransport
|
|
14
14
|
} from "./chunk-RMOBQ6A5.js";
|
|
15
15
|
import {
|
|
16
16
|
recordOrchestrationEventBestEffort
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-WH7XN5ER.js";
|
|
18
18
|
import {
|
|
19
19
|
getClient,
|
|
20
20
|
isCoordinatorName
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-RWSLVYTE.js";
|
|
22
22
|
|
|
23
23
|
// src/lib/capacity-monitor.ts
|
|
24
24
|
var CAPACITY_PATTERNS = [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionScopeFilter
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KKOLHBNC.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/git-task-sweep.ts
|
|
6
6
|
import { execSync } from "child_process";
|
|
@@ -238,7 +238,7 @@ async function sweepTasks(projectName, options = {}) {
|
|
|
238
238
|
}
|
|
239
239
|
if (!dryRun) {
|
|
240
240
|
try {
|
|
241
|
-
const { updateTaskStatus } = await import("./tasks-crud-
|
|
241
|
+
const { updateTaskStatus } = await import("./tasks-crud-6LBNU43G.js");
|
|
242
242
|
await updateTaskStatus({
|
|
243
243
|
taskId: task.id,
|
|
244
244
|
status: "needs_review",
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
vectorToSqlLiteral
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EDH54E5A.js";
|
|
4
4
|
import {
|
|
5
5
|
blobToVector
|
|
6
6
|
} from "./chunk-OTVEIJUQ.js";
|
|
7
7
|
import {
|
|
8
8
|
getClient
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-RWSLVYTE.js";
|
|
10
10
|
|
|
11
11
|
// src/lib/behaviors.ts
|
|
12
12
|
import crypto from "crypto";
|
|
@@ -2,7 +2,10 @@ import {
|
|
|
2
2
|
SUPPORT_REPORT_SENT_MARKER,
|
|
3
3
|
markSupportReportSentSync
|
|
4
4
|
} from "./chunk-MMRUBN3I.js";
|
|
5
|
-
import
|
|
5
|
+
import {
|
|
6
|
+
isTelemetryRedactionEnabled,
|
|
7
|
+
sanitizeUpstreamPayload
|
|
8
|
+
} from "./chunk-RP5GETX5.js";
|
|
6
9
|
|
|
7
10
|
// src/lib/support-outbox.ts
|
|
8
11
|
import { mkdirSync, readdirSync, readFileSync, writeFileSync, existsSync } from "fs";
|
|
@@ -350,6 +353,13 @@ ${DUPLICATE_MARKER}: ${dedupeHash}
|
|
|
350
353
|
skipped++;
|
|
351
354
|
continue;
|
|
352
355
|
}
|
|
356
|
+
let outboundBody;
|
|
357
|
+
if (isTelemetryRedactionEnabled()) {
|
|
358
|
+
outboundBody = JSON.stringify(sanitizeUpstreamPayload(payload).payload);
|
|
359
|
+
} else {
|
|
360
|
+
console.error("[support-outbox] WARNING: EXE_TELEMETRY_REDACT=off \u2014 sending UNREDACTED payload upstream");
|
|
361
|
+
outboundBody = JSON.stringify(payload);
|
|
362
|
+
}
|
|
353
363
|
try {
|
|
354
364
|
const resp = await fetch(endpoint, {
|
|
355
365
|
method: "POST",
|
|
@@ -363,7 +373,7 @@ ${DUPLICATE_MARKER}: ${dedupeHash}
|
|
|
363
373
|
...!gotrueAuth && licenseToken ? { "x-exe-license-token": licenseToken } : {},
|
|
364
374
|
...adminToken ? { "x-askexe-admin-token": adminToken } : {}
|
|
365
375
|
},
|
|
366
|
-
body:
|
|
376
|
+
body: outboundBody,
|
|
367
377
|
signal: AbortSignal.timeout(5e3)
|
|
368
378
|
});
|
|
369
379
|
if (resp.ok || resp.status === 409) {
|
|
@@ -396,7 +406,9 @@ async function sendStatusUpdateRecord(record, filePath, licenseKey, licenseToken
|
|
|
396
406
|
...!adminToken && !gotrueAuth && licenseKey ? { "x-exe-license-key": licenseKey } : {},
|
|
397
407
|
...!adminToken && !gotrueAuth && licenseToken ? { "x-exe-license-token": licenseToken } : {}
|
|
398
408
|
},
|
|
399
|
-
|
|
409
|
+
// Egress redaction gate — queued status updates may contain free-text
|
|
410
|
+
// notes/comments; redact before the retry PATCH reaches the network.
|
|
411
|
+
body: isTelemetryRedactionEnabled() ? JSON.stringify(sanitizeUpstreamPayload(record.payload).payload) : JSON.stringify(record.payload),
|
|
400
412
|
signal: AbortSignal.timeout(5e3)
|
|
401
413
|
});
|
|
402
414
|
if (resp.ok) {
|
|
@@ -590,10 +602,10 @@ function scanStatusDir(dir) {
|
|
|
590
602
|
}
|
|
591
603
|
return { total: files.length, unsent, oldest };
|
|
592
604
|
}
|
|
605
|
+
|
|
593
606
|
export {
|
|
594
|
-
flushSupportOutbox as flushBugReportOutbox,
|
|
595
|
-
flushSupportOutbox,
|
|
596
|
-
getOutboxStatus,
|
|
597
607
|
queueSupportStatusUpdateSync,
|
|
598
|
-
|
|
608
|
+
flushSupportOutbox,
|
|
609
|
+
reconcileUpstreamStatus,
|
|
610
|
+
getOutboxStatus
|
|
599
611
|
};
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
// src/lib/secret-redaction.ts
|
|
2
|
+
import { validateMnemonic, wordlists } from "bip39";
|
|
3
|
+
var SECRET_PATTERNS = [
|
|
4
|
+
{ name: "openai_key", pattern: /\bsk-[A-Za-z0-9_-]{20,}\b/g },
|
|
5
|
+
{ name: "anthropic_key", pattern: /\bsk-ant-[A-Za-z0-9_-]{20,}\b/g },
|
|
6
|
+
{ name: "exe_license_key", pattern: /\bexe_sk_[A-Za-z0-9_-]{8,}\b/g },
|
|
7
|
+
{ name: "aws_access_key", pattern: /\bAKIA[0-9A-Z]{16}\b/g },
|
|
8
|
+
{ name: "github_token", pattern: /\bgh[pousr]_[A-Za-z0-9_]{30,}\b/g },
|
|
9
|
+
{ name: "bearer_token", pattern: /\bBearer\s+[A-Za-z0-9._~+/=-]{20,}\b/gi },
|
|
10
|
+
{ name: "jwt", pattern: /\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\b/g },
|
|
11
|
+
{ name: "private_key", pattern: /-----BEGIN (?:OPENSSH|RSA|DSA|EC|PGP)? ?PRIVATE KEY-----[\s\S]*?-----END (?:OPENSSH|RSA|DSA|EC|PGP)? ?PRIVATE KEY-----/g },
|
|
12
|
+
{ name: "db_url_password", pattern: /\b(postgres(?:ql)?|mysql|mongodb|redis):\/\/([^:\s/@]+):([^@\s]+)@/gi },
|
|
13
|
+
{ name: "assignment_secret", pattern: /\b(api[_-]?key|secret|token|password|passwd|pwd|private[_-]?key|access[_-]?key)\s*[:=]\s*(['\"]?)[^\s'"]{8,}\2/gi },
|
|
14
|
+
{ name: "env_secret", pattern: /\b[A-Z0-9_]*(?:API_KEY|SECRET|TOKEN|PASSWORD|PASSWD|PRIVATE_KEY|ACCESS_KEY)[A-Z0-9_]*\s*=\s*['\"]?[^'"\s]{8,}/g }
|
|
15
|
+
];
|
|
16
|
+
var MNEMONIC_LENGTHS = [24, 21, 18, 15, 12];
|
|
17
|
+
var BIP39_WORDS = new Set(wordlists.english);
|
|
18
|
+
var WORD_TOKEN_RE = /\b[A-Za-z]{3,8}\b/g;
|
|
19
|
+
function redactMnemonics(input) {
|
|
20
|
+
const tokens = [];
|
|
21
|
+
let m;
|
|
22
|
+
WORD_TOKEN_RE.lastIndex = 0;
|
|
23
|
+
while ((m = WORD_TOKEN_RE.exec(input)) !== null) {
|
|
24
|
+
const lower = m[0].toLowerCase();
|
|
25
|
+
tokens.push({ start: m.index, end: m.index + m[0].length, lower, isWordlist: BIP39_WORDS.has(lower) });
|
|
26
|
+
}
|
|
27
|
+
if (tokens.length < 12) return { text: input, count: 0 };
|
|
28
|
+
const spans = [];
|
|
29
|
+
let count = 0;
|
|
30
|
+
let segment = [];
|
|
31
|
+
const flushSegment = () => {
|
|
32
|
+
if (segment.length >= 12) {
|
|
33
|
+
let i = 0;
|
|
34
|
+
while (i < segment.length) {
|
|
35
|
+
let matchedLen = 0;
|
|
36
|
+
for (const len of MNEMONIC_LENGTHS) {
|
|
37
|
+
if (i + len > segment.length) continue;
|
|
38
|
+
const phrase = segment.slice(i, i + len).map((t) => t.lower).join(" ");
|
|
39
|
+
if (validateMnemonic(phrase)) {
|
|
40
|
+
matchedLen = len;
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (matchedLen > 0) {
|
|
45
|
+
spans.push({ start: segment[i].start, end: segment[i + matchedLen - 1].end });
|
|
46
|
+
count++;
|
|
47
|
+
i += matchedLen;
|
|
48
|
+
} else {
|
|
49
|
+
i += 1;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
segment = [];
|
|
54
|
+
};
|
|
55
|
+
for (const tok of tokens) {
|
|
56
|
+
if (!tok.isWordlist) {
|
|
57
|
+
flushSegment();
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (segment.length > 0) {
|
|
61
|
+
const gap = input.slice(segment[segment.length - 1].end, tok.start);
|
|
62
|
+
if (/[A-Za-z]/.test(gap)) flushSegment();
|
|
63
|
+
}
|
|
64
|
+
segment.push(tok);
|
|
65
|
+
}
|
|
66
|
+
flushSegment();
|
|
67
|
+
if (spans.length === 0) return { text: input, count: 0 };
|
|
68
|
+
let text = input;
|
|
69
|
+
for (let s = spans.length - 1; s >= 0; s--) {
|
|
70
|
+
text = text.slice(0, spans[s].start) + "[REDACTED:recovery_phrase]" + text.slice(spans[s].end);
|
|
71
|
+
}
|
|
72
|
+
return { text, count };
|
|
73
|
+
}
|
|
74
|
+
function redactSecrets(input) {
|
|
75
|
+
let text = input;
|
|
76
|
+
let redactedCount = 0;
|
|
77
|
+
for (const { name, pattern } of SECRET_PATTERNS) {
|
|
78
|
+
text = text.replace(pattern, (_match, ...args) => {
|
|
79
|
+
redactedCount++;
|
|
80
|
+
if (name === "db_url_password" && typeof args[0] === "string" && typeof args[1] === "string") {
|
|
81
|
+
return `${args[0]}://${args[1]}:[REDACTED:${name}]@`;
|
|
82
|
+
}
|
|
83
|
+
return `[REDACTED:${name}]`;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
const mnemonic = redactMnemonics(text);
|
|
87
|
+
text = mnemonic.text;
|
|
88
|
+
redactedCount += mnemonic.count;
|
|
89
|
+
return { text, redactedCount };
|
|
90
|
+
}
|
|
91
|
+
var UPSTREAM_ATTACHMENT_MAX_CHARS = 4096;
|
|
92
|
+
function sanitizeUpstreamPayload(payload) {
|
|
93
|
+
let redactedCount = 0;
|
|
94
|
+
let truncatedCount = 0;
|
|
95
|
+
const walk = (value, keyHint) => {
|
|
96
|
+
if (typeof value === "string") {
|
|
97
|
+
const r = redactSecrets(value);
|
|
98
|
+
redactedCount += r.redactedCount;
|
|
99
|
+
let out = r.text;
|
|
100
|
+
if (keyHint === "content" && out.length > UPSTREAM_ATTACHMENT_MAX_CHARS) {
|
|
101
|
+
out = out.slice(0, UPSTREAM_ATTACHMENT_MAX_CHARS) + `
|
|
102
|
+
... [truncated, ${out.length} chars total]`;
|
|
103
|
+
truncatedCount++;
|
|
104
|
+
}
|
|
105
|
+
return out;
|
|
106
|
+
}
|
|
107
|
+
if (Array.isArray(value)) {
|
|
108
|
+
return value.map((item) => walk(item, keyHint));
|
|
109
|
+
}
|
|
110
|
+
if (value && typeof value === "object") {
|
|
111
|
+
const out = {};
|
|
112
|
+
for (const [k, v] of Object.entries(value)) {
|
|
113
|
+
out[k] = walk(v, k);
|
|
114
|
+
}
|
|
115
|
+
return out;
|
|
116
|
+
}
|
|
117
|
+
return value;
|
|
118
|
+
};
|
|
119
|
+
const sanitized = walk(payload);
|
|
120
|
+
return { payload: sanitized, redactedCount, truncatedCount };
|
|
121
|
+
}
|
|
122
|
+
function isTelemetryRedactionEnabled(env = process.env) {
|
|
123
|
+
const raw = (env.EXE_TELEMETRY_REDACT ?? "").trim().toLowerCase();
|
|
124
|
+
return !(raw === "off" || raw === "0" || raw === "false");
|
|
125
|
+
}
|
|
126
|
+
function sanitizedUpstreamBody(payload, label = "support") {
|
|
127
|
+
if (!isTelemetryRedactionEnabled()) {
|
|
128
|
+
console.error(`[${label}] WARNING: EXE_TELEMETRY_REDACT=off \u2014 sending UNREDACTED payload upstream`);
|
|
129
|
+
return JSON.stringify(payload);
|
|
130
|
+
}
|
|
131
|
+
return JSON.stringify(sanitizeUpstreamPayload(payload).payload);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export {
|
|
135
|
+
redactSecrets,
|
|
136
|
+
UPSTREAM_ATTACHMENT_MAX_CHARS,
|
|
137
|
+
sanitizeUpstreamPayload,
|
|
138
|
+
isTelemetryRedactionEnabled,
|
|
139
|
+
sanitizedUpstreamBody
|
|
140
|
+
};
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-2I23RPSI.js";
|
|
4
4
|
import {
|
|
5
5
|
listBackups
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-BV6GBSRP.js";
|
|
7
7
|
import {
|
|
8
8
|
getEmotionalBaseline,
|
|
9
9
|
renderEmotionalBaselineSection
|
|
@@ -1119,7 +1119,7 @@ async function migrateReflectionDedup(client) {
|
|
|
1119
1119
|
"ALTER TABLE memory_reflections ADD COLUMN dedup_key TEXT",
|
|
1120
1120
|
"migration add memory_reflections.dedup_key"
|
|
1121
1121
|
);
|
|
1122
|
-
const { reflectionDedupKey } = await import("./memory-reflection-
|
|
1122
|
+
const { reflectionDedupKey } = await import("./memory-reflection-KIGEFSI4.js");
|
|
1123
1123
|
const keyForRow = (row) => {
|
|
1124
1124
|
let sources = [];
|
|
1125
1125
|
try {
|
|
@@ -1459,7 +1459,7 @@ async function _attemptBackupRestore(config) {
|
|
|
1459
1459
|
} catch {
|
|
1460
1460
|
}
|
|
1461
1461
|
try {
|
|
1462
|
-
const { pruneCorruptQuarantine } = await import("./db-backup-
|
|
1462
|
+
const { pruneCorruptQuarantine } = await import("./db-backup-MX2G3CEK.js");
|
|
1463
1463
|
pruneCorruptQuarantine();
|
|
1464
1464
|
} catch {
|
|
1465
1465
|
}
|
|
@@ -1744,7 +1744,7 @@ async function sweepExpiredSoftDeletedMemories(client, options = {}) {
|
|
|
1744
1744
|
const purgeArchived = archDays !== void 0;
|
|
1745
1745
|
const BATCH_SIZE = 2e3;
|
|
1746
1746
|
const MAX_BATCHES = 500;
|
|
1747
|
-
const { cleanupCardsForMemories, cleanupGraphLinksForMemories } = await import("./graph-rag-
|
|
1747
|
+
const { cleanupCardsForMemories, cleanupGraphLinksForMemories } = await import("./graph-rag-WAK2BRJH.js");
|
|
1748
1748
|
const softCutoff = `-${softDays} days`;
|
|
1749
1749
|
const selectArgsBase = [softCutoff];
|
|
1750
1750
|
let predicate = `status = 'deleted' AND COALESCE(deleted_at, timestamp) < datetime('now', ?)`;
|
|
@@ -1865,7 +1865,7 @@ function getRawClient() {
|
|
|
1865
1865
|
function tryGetRawClient() {
|
|
1866
1866
|
return _client;
|
|
1867
1867
|
}
|
|
1868
|
-
var CURRENT_SCHEMA_VERSION =
|
|
1868
|
+
var CURRENT_SCHEMA_VERSION = 12;
|
|
1869
1869
|
var _migrationBlockRuns = 0;
|
|
1870
1870
|
function _getMigrationBlockRuns() {
|
|
1871
1871
|
return _migrationBlockRuns;
|
|
@@ -2312,6 +2312,46 @@ async function ensureSchema() {
|
|
|
2312
2312
|
CREATE INDEX IF NOT EXISTS idx_messages_target_scope_status
|
|
2313
2313
|
ON messages(target_agent, session_scope, status, created_at);
|
|
2314
2314
|
`);
|
|
2315
|
+
await client.executeMultiple(`
|
|
2316
|
+
CREATE TABLE IF NOT EXISTS notification_ledger (
|
|
2317
|
+
id TEXT PRIMARY KEY,
|
|
2318
|
+
session_scope TEXT,
|
|
2319
|
+
project TEXT,
|
|
2320
|
+
target_agent TEXT NOT NULL,
|
|
2321
|
+
target_role TEXT NOT NULL DEFAULT 'employee',
|
|
2322
|
+
target_session TEXT,
|
|
2323
|
+
kind TEXT NOT NULL,
|
|
2324
|
+
intercom_reason TEXT,
|
|
2325
|
+
task_id TEXT,
|
|
2326
|
+
task_file TEXT,
|
|
2327
|
+
payload_json TEXT,
|
|
2328
|
+
dedup_key TEXT,
|
|
2329
|
+
delivery_state TEXT NOT NULL DEFAULT 'pending',
|
|
2330
|
+
ack_state TEXT NOT NULL DEFAULT 'unacked',
|
|
2331
|
+
retry_count INTEGER NOT NULL DEFAULT 0,
|
|
2332
|
+
max_retries INTEGER NOT NULL DEFAULT 10,
|
|
2333
|
+
next_retry_at TEXT,
|
|
2334
|
+
boot_generation INTEGER,
|
|
2335
|
+
created_at TEXT NOT NULL,
|
|
2336
|
+
delivered_at TEXT,
|
|
2337
|
+
acked_at TEXT,
|
|
2338
|
+
expires_at TEXT,
|
|
2339
|
+
last_error TEXT
|
|
2340
|
+
);
|
|
2341
|
+
|
|
2342
|
+
CREATE INDEX IF NOT EXISTS idx_nledger_scope_state
|
|
2343
|
+
ON notification_ledger(session_scope, delivery_state, next_retry_at);
|
|
2344
|
+
|
|
2345
|
+
CREATE INDEX IF NOT EXISTS idx_nledger_target
|
|
2346
|
+
ON notification_ledger(target_agent, session_scope, delivery_state);
|
|
2347
|
+
|
|
2348
|
+
CREATE INDEX IF NOT EXISTS idx_nledger_task
|
|
2349
|
+
ON notification_ledger(task_id);
|
|
2350
|
+
|
|
2351
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_nledger_dedup
|
|
2352
|
+
ON notification_ledger(session_scope, dedup_key)
|
|
2353
|
+
WHERE dedup_key IS NOT NULL AND delivery_state IN ('pending', 'delivered');
|
|
2354
|
+
`);
|
|
2315
2355
|
try {
|
|
2316
2356
|
await client.execute({
|
|
2317
2357
|
sql: `UPDATE memories SET project_name = 'exe-create' WHERE project_name = 'web'`,
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
extractMemoryGraph
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ITMEE7PQ.js";
|
|
4
4
|
import {
|
|
5
5
|
flushBatch,
|
|
6
6
|
writeMemory
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-EDH54E5A.js";
|
|
8
8
|
import {
|
|
9
9
|
extractKeywords
|
|
10
10
|
} from "./chunk-CHCA3ZM2.js";
|
|
11
11
|
import {
|
|
12
12
|
getActiveAgent
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-C445WRUX.js";
|
|
14
14
|
|
|
15
15
|
// src/mcp/tools/import-conversations.ts
|
|
16
16
|
import { z } from "zod";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RWSLVYTE.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/pipeline-router.ts
|
|
6
6
|
import crypto from "crypto";
|
|
@@ -140,8 +140,8 @@ Agent response: ${agentResponse}` : ""
|
|
|
140
140
|
}
|
|
141
141
|
async function sinkEntityExtraction(msg, agentResponse, agentName) {
|
|
142
142
|
try {
|
|
143
|
-
const { extractFromConversation } = await import("./conversation-entity-extractor-
|
|
144
|
-
const { storeExtraction } = await import("./graph-rag-
|
|
143
|
+
const { extractFromConversation } = await import("./conversation-entity-extractor-FPAMTL3C.js");
|
|
144
|
+
const { storeExtraction } = await import("./graph-rag-WAK2BRJH.js");
|
|
145
145
|
if ((msg.text?.length ?? 0) < 20) return false;
|
|
146
146
|
if (msg.isHistorical) return false;
|
|
147
147
|
const extraction = await extractFromConversation(msg, agentResponse, agentName);
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
loadLicense,
|
|
10
10
|
readCachedLicenseToken
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-7SEC2AG5.js";
|
|
12
12
|
import {
|
|
13
13
|
EXE_AI_DIR,
|
|
14
14
|
loadConfig
|
|
@@ -275,7 +275,7 @@ function nextForPostFailure(status) {
|
|
|
275
275
|
return "Run `exe-os support health`; if it passes, send this output to AskExe.";
|
|
276
276
|
}
|
|
277
277
|
async function runFlush(json) {
|
|
278
|
-
const { flushSupportOutbox } = await import("./support-outbox-
|
|
278
|
+
const { flushSupportOutbox } = await import("./support-outbox-GB5SQFRJ.js");
|
|
279
279
|
const result = await flushSupportOutbox({ maxPerFlush: 10 });
|
|
280
280
|
if (json) {
|
|
281
281
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -298,7 +298,7 @@ async function runFlush(json) {
|
|
|
298
298
|
console.log("");
|
|
299
299
|
}
|
|
300
300
|
async function runStatus(json) {
|
|
301
|
-
const { getOutboxStatus } = await import("./support-outbox-
|
|
301
|
+
const { getOutboxStatus } = await import("./support-outbox-GB5SQFRJ.js");
|
|
302
302
|
const status = await getOutboxStatus();
|
|
303
303
|
if (json) {
|
|
304
304
|
console.log(JSON.stringify(status, null, 2));
|
|
@@ -42,6 +42,7 @@ function isBootFast() {
|
|
|
42
42
|
var _socket = null;
|
|
43
43
|
var _connected = false;
|
|
44
44
|
var _autoReconnecting = false;
|
|
45
|
+
var _intentionalDisconnect = false;
|
|
45
46
|
var _autoReconnectTimer = null;
|
|
46
47
|
var _buffer = "";
|
|
47
48
|
var _requestCount = 0;
|
|
@@ -359,6 +360,7 @@ function connectToSocket() {
|
|
|
359
360
|
_socket = socket;
|
|
360
361
|
_connected = true;
|
|
361
362
|
_buffer = "";
|
|
363
|
+
_intentionalDisconnect = false;
|
|
362
364
|
socket.on("data", handleData);
|
|
363
365
|
socket.on("close", () => {
|
|
364
366
|
_connected = false;
|
|
@@ -368,7 +370,9 @@ function connectToSocket() {
|
|
|
368
370
|
_pending.delete(id);
|
|
369
371
|
entry.resolve({ error: "Connection closed" });
|
|
370
372
|
}
|
|
371
|
-
|
|
373
|
+
const wasIntentional = _intentionalDisconnect;
|
|
374
|
+
_intentionalDisconnect = false;
|
|
375
|
+
if (!wasIntentional && !_autoReconnecting && !isBootFast()) {
|
|
372
376
|
startAutoReconnectLoop();
|
|
373
377
|
}
|
|
374
378
|
});
|
|
@@ -586,6 +590,7 @@ async function embedBatchViaClient(texts, priority = "high") {
|
|
|
586
590
|
function disconnectClient() {
|
|
587
591
|
clearAutoReconnectTimer();
|
|
588
592
|
_autoReconnecting = false;
|
|
593
|
+
_intentionalDisconnect = true;
|
|
589
594
|
if (_socket) {
|
|
590
595
|
_socket.destroy();
|
|
591
596
|
_socket = null;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getClient
|
|
3
|
+
} from "./chunk-RWSLVYTE.js";
|
|
4
|
+
|
|
5
|
+
// src/lib/boot-generation.ts
|
|
6
|
+
var SYNC_META_KEY = "daemon_boot_generation";
|
|
7
|
+
var _cachedGeneration;
|
|
8
|
+
async function bumpBootGeneration(client = getClient()) {
|
|
9
|
+
const result = await client.execute({
|
|
10
|
+
sql: `INSERT INTO sync_meta (key, value) VALUES (?, '1')
|
|
11
|
+
ON CONFLICT(key) DO UPDATE SET value = CAST(CAST(value AS INTEGER) + 1 AS TEXT)
|
|
12
|
+
RETURNING value`,
|
|
13
|
+
args: [SYNC_META_KEY]
|
|
14
|
+
});
|
|
15
|
+
const value = Number(result.rows[0]?.value ?? 1);
|
|
16
|
+
_cachedGeneration = Number.isFinite(value) && value > 0 ? value : 1;
|
|
17
|
+
return _cachedGeneration;
|
|
18
|
+
}
|
|
19
|
+
async function getBootGeneration(client = getClient()) {
|
|
20
|
+
const result = await client.execute({
|
|
21
|
+
sql: `SELECT value FROM sync_meta WHERE key = ?`,
|
|
22
|
+
args: [SYNC_META_KEY]
|
|
23
|
+
});
|
|
24
|
+
const raw = result.rows[0]?.value;
|
|
25
|
+
const value = Number(raw ?? 0);
|
|
26
|
+
return Number.isFinite(value) && value >= 0 ? value : 0;
|
|
27
|
+
}
|
|
28
|
+
function getCachedBootGeneration() {
|
|
29
|
+
return _cachedGeneration;
|
|
30
|
+
}
|
|
31
|
+
function _resetBootGenerationCache() {
|
|
32
|
+
_cachedGeneration = void 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export {
|
|
36
|
+
bumpBootGeneration,
|
|
37
|
+
getBootGeneration,
|
|
38
|
+
getCachedBootGeneration,
|
|
39
|
+
_resetBootGenerationCache
|
|
40
|
+
};
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
cleanupCardsForMemories,
|
|
3
3
|
cleanupGraphLinksForMemories
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-7UMCQQWS.js";
|
|
5
5
|
import {
|
|
6
6
|
resolveAnthropicAuth
|
|
7
7
|
} from "./chunk-VGMACSEV.js";
|
|
8
8
|
import {
|
|
9
9
|
vectorToBlob
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-EDH54E5A.js";
|
|
11
11
|
import {
|
|
12
12
|
extractKeywords,
|
|
13
13
|
keywordsToString
|
|
14
14
|
} from "./chunk-CHCA3ZM2.js";
|
|
15
15
|
import {
|
|
16
16
|
isCoordinatorName
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-RWSLVYTE.js";
|
|
18
18
|
|
|
19
19
|
// src/lib/consolidation.ts
|
|
20
20
|
import { randomUUID } from "crypto";
|