@askexenow/exe-os 0.9.255 → 0.9.259
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 +13 -13
- package/deploy/compose/.env.example +8 -8
- package/deploy/compose/docker-compose.yml +18 -18
- package/deploy/compose/generate-env.ts +22 -18
- package/deploy/compose/init-db.sql +221 -20
- package/deploy/stack-manifests/v0.9.json +1207 -1136
- package/dist/{active-agent-DTZ6VJIR.js → active-agent-IGZXTTV4.js} +3 -3
- package/dist/{active-agent-7QNK5CJZ.js → active-agent-OYUXMTHS.js} +3 -3
- package/dist/{agentic-ontology-UZK33N6I.js → agentic-ontology-5WT23SLZ.js} +1 -1
- package/dist/{backfill-metadata-R7PNZ5TX.js → backfill-metadata-EG52U3GF.js} +4 -4
- package/dist/{behaviors-G6QHSQBN.js → behaviors-2TZCFJLU.js} +3 -3
- package/dist/bin/age-ontology-load.js +2 -2
- package/dist/bin/agentic-ontology-backfill.js +5 -5
- package/dist/bin/agentic-reflection-backfill.js +6 -6
- package/dist/bin/agentic-semantic-label.js +5 -5
- package/dist/bin/backfill-conversations.js +6 -5
- package/dist/bin/backfill-responses.js +6 -5
- package/dist/bin/backfill-vectors.js +7 -6
- package/dist/bin/bulk-sync-postgres.js +6 -6
- package/dist/bin/cleanup-stale-review-tasks.js +9 -9
- package/dist/bin/cli.js +17 -17
- package/dist/bin/deferred-daemon-restart.js +4 -1
- package/dist/bin/exe-agent-config.js +2 -2
- package/dist/bin/exe-agent.js +4 -4
- package/dist/bin/exe-assign.js +8 -7
- package/dist/bin/exe-boot.js +16 -16
- package/dist/bin/exe-call.js +4 -4
- package/dist/bin/exe-cloud.js +4 -4
- package/dist/bin/exe-dispatch.js +9 -9
- package/dist/bin/exe-doctor.js +1 -1
- package/dist/bin/exe-export-behaviors.js +7 -7
- package/dist/bin/exe-forget.js +6 -6
- package/dist/bin/exe-gateway.js +9 -9
- package/dist/bin/exe-heartbeat.js +9 -9
- package/dist/bin/exe-kill.js +12 -12
- package/dist/bin/exe-launch-agent.js +16 -16
- package/dist/bin/exe-new-employee.js +6 -6
- package/dist/bin/exe-pending-messages.js +11 -10
- package/dist/bin/exe-pending-notifications.js +9 -9
- package/dist/bin/exe-pending-reviews.js +11 -9
- package/dist/bin/exe-rename.js +4 -4
- package/dist/bin/exe-review.js +11 -11
- package/dist/bin/exe-search.js +5 -5
- package/dist/bin/exe-session-cleanup.js +14 -14
- package/dist/bin/exe-settings.js +4 -4
- package/dist/bin/exe-start-codex.js +11 -11
- package/dist/bin/exe-start-opencode.js +8 -8
- package/dist/bin/exe-status.js +10 -10
- package/dist/bin/exe-support.js +3 -1
- package/dist/bin/exe-team.js +3 -3
- package/dist/bin/git-sweep.js +71 -11
- package/dist/bin/graph-backfill.js +4 -4
- package/dist/bin/graph-export.js +5 -5
- package/dist/bin/graph-layer-benchmark.js +7 -7
- package/dist/bin/import-history.js +7 -7
- package/dist/bin/install.js +12 -9
- 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 +7 -7
- package/dist/bin/postgres-agentic-semantic-backfill.js +7 -7
- package/dist/bin/scan-tasks.js +9 -9
- package/dist/bin/setup.js +1 -1
- package/dist/bin/shard-migrate.js +4 -4
- package/dist/bin/stack-update.js +20 -3
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{capacity-monitor-QMKII67L.js → capacity-monitor-CTFWWTCR.js} +10 -10
- package/dist/{catchup-brief-CNISNLV7.js → catchup-brief-UML47LXI.js} +11 -11
- package/dist/{chunk-QP4FHME2.js → chunk-235ZCOYB.js} +18 -6
- package/dist/{chunk-2NEQQCRC.js → chunk-25JAXHON.js} +1 -1
- package/dist/{chunk-MU6ESLYL.js → chunk-2PFNATXD.js} +1 -1
- package/dist/chunk-2XZ6X3PJ.js +13 -0
- package/dist/chunk-3XX3CDKF.js +9 -0
- package/dist/{chunk-ZTB6E2ZL.js → chunk-4FGTT26Q.js} +1 -1
- package/dist/{chunk-YYSQAM4W.js → chunk-4TYAHVDI.js} +8 -8
- package/dist/{chunk-2QKNXGII.js → chunk-4VECWOUO.js} +2 -2
- package/dist/{chunk-YXMXP45V.js → chunk-57C3MZPQ.js} +2 -2
- package/dist/{chunk-FTNNNAMH.js → chunk-5JYCTIQD.js} +1 -1
- package/dist/{chunk-CS267UMH.js → chunk-5LDTCWYX.js} +79 -19
- package/dist/{chunk-FQVITYVF.js → chunk-6D2IZ5MB.js} +2 -2
- package/dist/{chunk-ZG3HADWE.js → chunk-7UJRF4WF.js} +1 -1
- package/dist/{chunk-JFVITKXI.js → chunk-A2UPDE3J.js} +1 -1
- package/dist/{chunk-KOCQAMAM.js → chunk-ANYOAZCZ.js} +238 -5
- package/dist/{chunk-PSQNT5DS.js → chunk-AQS2B3HC.js} +8 -8
- package/dist/{chunk-ABNALOLM.js → chunk-BGEXTWGR.js} +3 -3
- package/dist/{chunk-LPK5JPME.js → chunk-BPZL5YOM.js} +1 -1
- package/dist/{chunk-RLDOG7DI.js → chunk-C6SSCNOC.js} +2516 -2289
- package/dist/{chunk-JGEGEOVP.js → chunk-COKTAJUZ.js} +1 -1
- package/dist/{chunk-MRZE5IOP.js → chunk-CXOX7TRG.js} +1 -1
- package/dist/{chunk-6LFFIEDM.js → chunk-DU64OESH.js} +1 -1
- package/dist/{chunk-LYIUESG2.js → chunk-DYURFBPS.js} +10 -10
- package/dist/{chunk-X3SS45PO.js → chunk-FPXZY3FY.js} +1 -1
- package/dist/{chunk-TVTRMINO.js → chunk-FUGZF7VR.js} +1 -1
- package/dist/{chunk-O7SFCX5B.js → chunk-GB4FI66P.js} +2 -2
- package/dist/{chunk-VGWQBI76.js → chunk-GBR4MAAK.js} +1 -1
- package/dist/chunk-GH4LVBQM.js +371 -0
- package/dist/{chunk-AIXZ5O7U.js → chunk-GIHMDOSK.js} +1 -1
- package/dist/{chunk-RDCE652I.js → chunk-HDWVXSGO.js} +1 -1
- package/dist/{chunk-RF54NGPJ.js → chunk-IJ7R3MXE.js} +3 -5
- package/dist/{chunk-R7FBOZT5.js → chunk-ISL3NSVX.js} +1 -1
- package/dist/{chunk-5B2AEXVA.js → chunk-IVSRRIRG.js} +1 -1
- package/dist/{chunk-SD2R3SEA.js → chunk-J3YNCJ4A.js} +1 -1
- package/dist/{chunk-5IZYSS3M.js → chunk-JE4C74EE.js} +4 -4
- package/dist/{chunk-VRVHIVUE.js → chunk-KSR2PNRW.js} +2 -2
- package/dist/{chunk-LL2ARYTZ.js → chunk-L3PY4NFQ.js} +1 -1
- package/dist/{chunk-VFATLVRX.js → chunk-L5VPUOB6.js} +1 -1
- package/dist/{chunk-3VLFVOM7.js → chunk-LRKJGSNH.js} +2 -2
- package/dist/{chunk-4FT3SQAS.js → chunk-LVY74L2J.js} +2 -2
- package/dist/{chunk-X4T7LR2X.js → chunk-M7PZFYHE.js} +2 -2
- package/dist/{chunk-CIX64N7D.js → chunk-MGTVPIEZ.js} +1 -1
- package/dist/{chunk-MXCBORCC.js → chunk-MKTEGZ37.js} +3 -3
- package/dist/chunk-MMRUBN3I.js +36 -0
- package/dist/{chunk-4MONXPWR.js → chunk-MPXLF7TA.js} +1 -1
- package/dist/{chunk-6QMXKKFD.js → chunk-N27CTUFU.js} +1 -1
- package/dist/{chunk-YDHPC4PX.js → chunk-N4ES27RI.js} +3 -3
- package/dist/{chunk-WIRJ574R.js → chunk-NGQQRGLP.js} +2 -2
- package/dist/{chunk-AQOCHSIR.js → chunk-OCJ5GZKV.js} +4 -4
- package/dist/{chunk-O477L4LV.js → chunk-OSPS5N2I.js} +1 -1
- package/dist/{chunk-5WEH43HH.js → chunk-PQHA6X6Y.js} +1 -1
- package/dist/{chunk-DJYIBHN5.js → chunk-PQQTSNXS.js} +3 -3
- package/dist/{chunk-LGFB67MY.js → chunk-Q3GLQDZI.js} +1 -1
- package/dist/{chunk-7GR7VBBW.js → chunk-QUC27OCW.js} +1 -1
- package/dist/{chunk-5NBOFYJG.js → chunk-QYNFWFFH.js} +4 -4
- package/dist/{chunk-X7I6NLIA.js → chunk-T2EUNNUX.js} +5 -5
- package/dist/{chunk-VRWOLLKN.js → chunk-T4NFOOPB.js} +2 -2
- package/dist/{chunk-2YJSDJEH.js → chunk-TZPHTI5Q.js} +1 -1
- package/dist/{chunk-CQSFIQGN.js → chunk-UOZ5KUNN.js} +1 -1
- package/dist/{chunk-5R4R743Q.js → chunk-V2UVWYHO.js} +17 -15
- package/dist/{chunk-VKCZ3OGM.js → chunk-VD676VIC.js} +4 -4
- package/dist/{chunk-USLVSLQ5.js → chunk-VDCPKJUQ.js} +1 -1
- package/dist/{chunk-Y7NMPQXZ.js → chunk-VLX6AHTD.js} +8 -8
- package/dist/{chunk-ITPIBVSG.js → chunk-WMZTSHNX.js} +83 -1
- package/dist/{chunk-5U7WB4YG.js → chunk-WVBZ3QBR.js} +2 -2
- package/dist/{chunk-3EMZZZNU.js → chunk-X2RKYKTP.js} +1 -1
- package/dist/{chunk-XTIHYH64.js → chunk-YY2BCIAP.js} +2 -2
- package/dist/{chunk-Z6GHDYQI.js → chunk-Z2AEOVEZ.js} +30 -6
- package/dist/{chunk-PHTRZQR4.js → chunk-ZBDAFYDD.js} +4 -4
- package/dist/{chunk-E4CCKWZN.js → chunk-ZKFTDL4M.js} +1 -1
- package/dist/{co-activation-AIVMI5U2.js → co-activation-UNVL5JCP.js} +2 -2
- package/dist/{co-occurrence-L6QOQTJB.js → co-occurrence-ETAVWYVE.js} +2 -2
- package/dist/{code-context-index-DYHYVJHX.js → code-context-index-DCQYAYA2.js} +3 -2
- package/dist/{crdt-sync-YBMDPFNT.js → crdt-sync-AH7N6QOE.js} +1 -1
- package/dist/{crm-webhook-QO3ZESKR.js → crm-webhook-R6546T3Y.js} +2 -2
- package/dist/{cto-delegation-gate-UFPVFLIW.js → cto-delegation-gate-VB4TMZ3I.js} +8 -8
- package/dist/{daemon-orchestration-6XAISQ7B.js → daemon-orchestration-YAJKIL6Q.js} +12 -12
- package/dist/{db-backup-7UMCTS44.js → db-backup-2RG6VHT7.js} +11 -3
- package/dist/{dreaming-FJ75QVGZ.js → dreaming-WMBTSXGD.js} +9 -9
- package/dist/{exe-drift-OH3WV2ZQ.js → exe-drift-MQZGYHEN.js} +3 -3
- package/dist/{exe-export-UYKYNVBU.js → exe-export-E4BDIHOC.js} +5 -5
- package/dist/{exe-import-Q4FNSMLJ.js → exe-import-IWAD4HN6.js} +5 -5
- package/dist/{exe-key-22LOIIUX.js → exe-key-L2RV7XJX.js} +2 -2
- package/dist/{exe-snapshot-J7CL6QEL.js → exe-snapshot-IOGN4ARV.js} +12 -12
- package/dist/{fast-db-init-QXGL2PKQ.js → fast-db-init-GCY3F74H.js} +1 -1
- package/dist/gateway/index.js +8 -8
- package/dist/{git-staleness-YVWDCFIE.js → git-staleness-BQIFNZIU.js} +2 -2
- package/dist/{git-task-sweep-RRCOTTIS.js → git-task-sweep-GSKS6WKR.js} +9 -9
- package/dist/{global-procedures-FCGWAFES.js → global-procedures-3DJUA5OX.js} +3 -3
- package/dist/{graph-auto-extract-RUQC5IIS.js → graph-auto-extract-2I44WRDY.js} +2 -2
- package/dist/hooks/bug-report-worker.js +11 -11
- package/dist/hooks/codex-stop-task-finalizer.js +11 -11
- package/dist/hooks/commit-complete.js +11 -11
- package/dist/hooks/error-recall.js +6 -6
- package/dist/hooks/exe-heartbeat-hook.js +3 -3
- package/dist/hooks/ingest-worker.js +3 -2
- package/dist/hooks/ingest.js +6 -6
- 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 +10 -10
- package/dist/hooks/post-tool-combined.js +6 -6
- package/dist/hooks/pre-compact.js +14 -13
- package/dist/hooks/pre-tool-use.js +14 -14
- package/dist/hooks/prompt-submit.js +22 -22
- package/dist/hooks/session-end.js +19 -18
- package/dist/hooks/session-start.js +11 -11
- package/dist/hooks/stop.js +70 -17
- package/dist/hooks/subagent-stop.js +10 -10
- package/dist/hooks/summary-worker.js +17 -16
- package/dist/index.js +17 -17
- package/dist/{installer-7SMJC3SX.js → installer-6MQCAHUG.js} +5 -5
- package/dist/{installer-GFZVC43I.js → installer-TCMPFSSP.js} +5 -5
- package/dist/{installer-34DCTB5B.js → installer-ZY2BKTEO.js} +5 -5
- package/dist/lib/cloud-sync.js +4 -4
- package/dist/lib/consolidation.js +5 -5
- package/dist/lib/database.js +2 -2
- package/dist/lib/db-daemon-client.js +58 -13
- package/dist/lib/db.js +2 -2
- package/dist/lib/embedder.js +3 -2
- package/dist/lib/employee-templates.js +4 -4
- package/dist/lib/employees.js +2 -2
- package/dist/lib/exe-daemon-client.js +2 -1
- package/dist/lib/exe-daemon.js +255 -104
- package/dist/lib/hybrid-search.js +5 -5
- package/dist/lib/identity.js +2 -2
- package/dist/lib/messaging.js +9 -9
- package/dist/lib/reminders.js +3 -3
- package/dist/lib/schedules.js +5 -5
- package/dist/lib/session-registry.js +4 -4
- package/dist/lib/skill-learning.js +4 -4
- package/dist/lib/store.js +4 -4
- package/dist/lib/task-router.js +3 -3
- package/dist/lib/tasks.js +10 -10
- package/dist/lib/tmux-routing.js +8 -8
- package/dist/lib/token-spend.js +3 -3
- package/dist/mcp/register-tools.js +59 -56
- package/dist/mcp/server.js +60 -57
- 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 +12 -12
- package/dist/mcp/tools/deactivate-behavior.js +5 -5
- package/dist/mcp/tools/list-reminders.js +4 -4
- package/dist/mcp/tools/list-tasks.js +12 -12
- package/dist/mcp/tools/send-message.js +11 -11
- package/dist/mcp/tools/update-task.js +11 -11
- package/dist/{mcp-http-config-MZMHKMJC.js → mcp-http-config-VUDZ3D5D.js} +3 -3
- package/dist/{memory-cards-3SFXU6IP.js → memory-cards-ZOOPC2WF.js} +2 -2
- package/dist/{memory-graph-extractor-T57YQQCW.js → memory-graph-extractor-RRQMUBMI.js} +3 -3
- package/dist/{memory-poisoning-defense-O53AHMTZ.js → memory-poisoning-defense-UQMNLG6H.js} +2 -2
- package/dist/{memory-queue-client-ITWQIFSD.js → memory-queue-client-TPQDAA4D.js} +3 -2
- package/dist/{memory-reflection-YPP2JC2S.js → memory-reflection-GSGXAGXV.js} +2 -2
- package/dist/{notifications-BETWD6EK.js → notifications-ZKGLZVCU.js} +8 -8
- package/dist/{orchestration-events-A5D52NXX.js → orchestration-events-7RMWC5SS.js} +3 -3
- package/dist/{orchestrator-X564XCWC.js → orchestrator-A6MX2OHA.js} +10 -10
- package/dist/{pipeline-router-RVHLL7UA.js → pipeline-router-6ZBYJD2U.js} +3 -3
- package/dist/{plan-limits-ANAVC6PM.js → plan-limits-4XH4A7IA.js} +3 -3
- package/dist/{project-boot-ENMCAL7G.js → project-boot-7ZEIDWUG.js} +3 -2
- package/dist/{projection-worker-O3HBG5QK.js → projection-worker-YKKBNQZT.js} +130 -51
- package/dist/{reranker-SRJL4IWB.js → reranker-DN2A3H6O.js} +1 -1
- package/dist/{review-polling-5JTTHHEO.js → review-polling-PK3CY4NI.js} +9 -9
- package/dist/runtime/index.js +11 -11
- package/dist/{session-events-RCSYHQQ2.js → session-events-IYU6FYHH.js} +9 -9
- package/dist/{session-kill-telemetry-AL3H4ELS.js → session-kill-telemetry-G2VV4CAH.js} +3 -3
- package/dist/{session-scope-ZB4SR3AX.js → session-scope-DHTVH3D4.js} +8 -8
- package/dist/{setup-wizard-HXTADFXI.js → setup-wizard-IA5ISHQ2.js} +1 -1
- package/dist/{skill-refinement-TT4VDYYW.js → skill-refinement-6PBAFLWP.js} +2 -2
- package/dist/{stack-release-7WDKQOCO.js → stack-release-NW7MV3WV.js} +41 -11
- package/dist/{stack-update-F4CQWMGV.js → stack-update-5SM62R3O.js} +3 -1
- package/dist/{steward-gate-HSV67KLF.js → steward-gate-EQV6CZKY.js} +3 -3
- package/dist/support-outbox-SZVLHHZG.js +295 -0
- package/dist/{task-enforcement-A6AZTYAN.js → task-enforcement-2LS5DOXK.js} +8 -8
- package/dist/{task-scope-XKNAY5S7.js → task-scope-AKF3CSWO.js} +8 -8
- package/dist/{tasks-crud-F732BVOE.js → tasks-crud-KOIA5SAH.js} +8 -8
- package/dist/{tasks-notify-LJ65U7DF.js → tasks-notify-7ZTE4ZQM.js} +9 -9
- package/dist/{tasks-review-Y5F4HRAR.js → tasks-review-VMMMAK2Y.js} +8 -8
- package/dist/{telemetry-upload-HVYO6FL3.js → telemetry-upload-YLW4NAUF.js} +15 -8
- package/dist/{token-budget-VODGJYKX.js → token-budget-NA4OLFNP.js} +2 -2
- package/dist/{tool-capability-index-PZWWVABO.js → tool-capability-index-C73KVY5O.js} +1 -1
- package/dist/{tool-telemetry-5BSTF3P6.js → tool-telemetry-OVI5KL4S.js} +1 -1
- package/dist/tui/App.js +16 -16
- package/dist/{tui-data-EHJWRNRZ.js → tui-data-5NT24CC5.js} +8 -8
- package/dist/{worker-gate-4AS4K7G4.js → worker-gate-AQLJUQ5G.js} +1 -1
- package/dist/{workflow-engine-BXGNFNUW.js → workflow-engine-TRGGUNIZ.js} +2 -2
- package/dist/{worktree-3N5BPITS.js → worktree-NK7GZNEA.js} +4 -4
- package/dist/worktree-sweep-5XVZCH6A.js +18 -0
- package/package.json +3 -2
- package/release-notes.json +32 -33
- package/stack.release.json +48 -48
- package/dist/prediction-log-DOEOHDHS.js +0 -120
- package/dist/support-outbox-KEJ73I3F.js +0 -206
- /package/dist/{chunk-AWVDA2FL.js → chunk-2H3FVAN3.js} +0 -0
- /package/dist/{chunk-VPHOOQLR.js → chunk-3GHTBVZO.js} +0 -0
- /package/dist/{chunk-CCPCIW4Z.js → chunk-BBPRL2MP.js} +0 -0
- /package/dist/{chunk-X2E6W3DB.js → chunk-BRSI3FD6.js} +0 -0
- /package/dist/{chunk-Y2FVN7CX.js → chunk-EYLQRPHF.js} +0 -0
- /package/dist/{chunk-4S5TEBXD.js → chunk-H6QJT5O5.js} +0 -0
- /package/dist/{chunk-FCII2MMI.js → chunk-J5CAYOJU.js} +0 -0
- /package/dist/{chunk-LY2DYTDL.js → chunk-RFJESVEL.js} +0 -0
- /package/dist/{chunk-GBHQ5TXO.js → chunk-UOOCGJUE.js} +0 -0
- /package/dist/{core-memory-WFP2L52F.js → core-memory-VZFTGOFE.js} +0 -0
- /package/dist/{entity-boost-RTYXAOWV.js → entity-boost-OAB2PZQP.js} +0 -0
- /package/dist/{message-queue-client-2CACBUA4.js → message-queue-client-YTKTHAYO.js} +0 -0
- /package/dist/{wiki-acl-MS7QLQCR.js → wiki-acl-UCPOROPR.js} +0 -0
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
buildRawVisibilityFilter,
|
|
4
4
|
buildWikiScopeFilter,
|
|
5
5
|
searchMemories
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-AQS2B3HC.js";
|
|
7
7
|
import {
|
|
8
8
|
getClient
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-WVBZ3QBR.js";
|
|
10
10
|
|
|
11
11
|
// src/lib/hybrid-search.ts
|
|
12
12
|
var RRF_K = 60;
|
|
@@ -288,7 +288,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
288
288
|
let rerankerAvailable = false;
|
|
289
289
|
if (process.env.EXE_IS_DAEMON === "1") {
|
|
290
290
|
try {
|
|
291
|
-
const { isRerankerAvailable } = await import("./reranker-
|
|
291
|
+
const { isRerankerAvailable } = await import("./reranker-DN2A3H6O.js");
|
|
292
292
|
rerankerAvailable = isRerankerAvailable();
|
|
293
293
|
} catch {
|
|
294
294
|
}
|
|
@@ -343,7 +343,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
343
343
|
]).catch(() => []),
|
|
344
344
|
includeStructuredCards ? (async () => {
|
|
345
345
|
try {
|
|
346
|
-
const { searchMemoryCards } = await import("./memory-cards-
|
|
346
|
+
const { searchMemoryCards } = await import("./memory-cards-ZOOPC2WF.js");
|
|
347
347
|
return await searchMemoryCards(effectiveQuery, agentId, fetchOptions);
|
|
348
348
|
} catch {
|
|
349
349
|
return [];
|
|
@@ -352,7 +352,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
352
352
|
// Reflection insights: patterns, contradictions, summaries across sessions
|
|
353
353
|
includeStructuredCards ? (async () => {
|
|
354
354
|
try {
|
|
355
|
-
const { searchReflections } = await import("./memory-reflection-
|
|
355
|
+
const { searchReflections } = await import("./memory-reflection-GSGXAGXV.js");
|
|
356
356
|
const insights = await searchReflections(effectiveQuery, agentId, 5);
|
|
357
357
|
return insights.map((ins) => ({
|
|
358
358
|
id: ins.id,
|
|
@@ -428,7 +428,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
428
428
|
let entityBoostRan = false;
|
|
429
429
|
if (merged.length > 0) {
|
|
430
430
|
try {
|
|
431
|
-
const { applyEntityBoost } = await import("./entity-boost-
|
|
431
|
+
const { applyEntityBoost } = await import("./entity-boost-OAB2PZQP.js");
|
|
432
432
|
const boosted = await applyEntityBoost(merged, effectiveQuery, getClient());
|
|
433
433
|
merged = boosted.results;
|
|
434
434
|
graphContextMap = boosted.graphContext;
|
|
@@ -452,7 +452,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
452
452
|
try {
|
|
453
453
|
let rerankedRecords;
|
|
454
454
|
if (graphContextMap.size > 0) {
|
|
455
|
-
const { rerankWithContext } = await import("./reranker-
|
|
455
|
+
const { rerankWithContext } = await import("./reranker-DN2A3H6O.js");
|
|
456
456
|
const candidates = merged.map((m) => ({
|
|
457
457
|
text: m.raw_text,
|
|
458
458
|
context: graphContextMap.get(m.id)
|
|
@@ -460,7 +460,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
460
460
|
const scored = await rerankWithContext(effectiveQuery, candidates, rerankReturnLimit);
|
|
461
461
|
rerankedRecords = scored.map((s) => merged[s.index]);
|
|
462
462
|
} else {
|
|
463
|
-
const { rerank } = await import("./reranker-
|
|
463
|
+
const { rerank } = await import("./reranker-DN2A3H6O.js");
|
|
464
464
|
rerankedRecords = await rerank(effectiveQuery, merged, rerankReturnLimit);
|
|
465
465
|
}
|
|
466
466
|
if (rerankedRecords.length > 0) {
|
|
@@ -785,7 +785,7 @@ async function lightweightSearch(queryText, agentId, options) {
|
|
|
785
785
|
}
|
|
786
786
|
if (results.length >= 2) {
|
|
787
787
|
try {
|
|
788
|
-
const { recordCoActivations } = await import("./co-activation-
|
|
788
|
+
const { recordCoActivations } = await import("./co-activation-UNVL5JCP.js");
|
|
789
789
|
const ids = results.slice(0, 10).map((r) => r.id);
|
|
790
790
|
void recordCoActivations(ids);
|
|
791
791
|
} catch {
|
|
@@ -793,7 +793,7 @@ async function lightweightSearch(queryText, agentId, options) {
|
|
|
793
793
|
}
|
|
794
794
|
if (options?.includeStructuredCards !== true) return results;
|
|
795
795
|
try {
|
|
796
|
-
const { searchMemoryCards } = await import("./memory-cards-
|
|
796
|
+
const { searchMemoryCards } = await import("./memory-cards-ZOOPC2WF.js");
|
|
797
797
|
const cardResults = await searchMemoryCards(queryText, agentId, options);
|
|
798
798
|
if (cardResults.length > 0) {
|
|
799
799
|
return rrfMergeMulti([results, cardResults], limit, RRF_K, [1, 0.85]);
|
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getGitRoot,
|
|
3
|
+
isWorktreeDirty
|
|
4
|
+
} from "./chunk-DU64OESH.js";
|
|
5
|
+
|
|
6
|
+
// src/lib/worktree-sweep.ts
|
|
7
|
+
import { execSync } from "child_process";
|
|
8
|
+
import { existsSync, readdirSync, readFileSync } from "fs";
|
|
9
|
+
import path from "path";
|
|
10
|
+
function isWorktreeUnpushed(wtPath, branch) {
|
|
11
|
+
if (!branch) return false;
|
|
12
|
+
try {
|
|
13
|
+
const remote = execSync(`git -C "${wtPath}" rev-parse --abbrev-ref "${branch}@{upstream}" 2>/dev/null`, { encoding: "utf-8" }).trim();
|
|
14
|
+
if (!remote) return true;
|
|
15
|
+
const ahead = execSync(`git -C "${wtPath}" rev-list "${remote}..${branch}" --count 2>/dev/null`, { encoding: "utf-8" }).trim();
|
|
16
|
+
return parseInt(ahead, 10) > 0;
|
|
17
|
+
} catch {
|
|
18
|
+
try {
|
|
19
|
+
const ahead = execSync(`git -C "${wtPath}" rev-list "main..${branch}" --count 2>/dev/null || git -C "${wtPath}" rev-list "master..${branch}" --count 2>/dev/null`, { encoding: "utf-8" }).trim();
|
|
20
|
+
return parseInt(ahead, 10) > 0;
|
|
21
|
+
} catch {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
var REPO_ALIASES = {
|
|
27
|
+
"exe-crm": ["openclaw", "exe-crm"],
|
|
28
|
+
"exe-wiki": ["ink", "exe-wiki"]
|
|
29
|
+
};
|
|
30
|
+
function discoverRepoPaths() {
|
|
31
|
+
const roots = [];
|
|
32
|
+
let exeOsRoot = null;
|
|
33
|
+
let dir = path.dirname(new URL(import.meta.url).pathname);
|
|
34
|
+
for (let i = 0; i < 5; i++) {
|
|
35
|
+
const pkgPath = path.join(dir, "package.json");
|
|
36
|
+
if (existsSync(pkgPath)) {
|
|
37
|
+
try {
|
|
38
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
39
|
+
if (pkg.name === "@askexenow/exe-os") {
|
|
40
|
+
exeOsRoot = dir;
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
} catch {
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
dir = path.dirname(dir);
|
|
47
|
+
}
|
|
48
|
+
if (!exeOsRoot) {
|
|
49
|
+
exeOsRoot = process.cwd();
|
|
50
|
+
}
|
|
51
|
+
roots.push(exeOsRoot);
|
|
52
|
+
const parentDir = path.dirname(exeOsRoot);
|
|
53
|
+
try {
|
|
54
|
+
const siblings = readdirSync(parentDir);
|
|
55
|
+
for (const sibling of siblings) {
|
|
56
|
+
if (sibling.startsWith(".")) continue;
|
|
57
|
+
const siblingPath = path.join(parentDir, sibling);
|
|
58
|
+
if (siblingPath === exeOsRoot) continue;
|
|
59
|
+
const root = getGitRoot(siblingPath);
|
|
60
|
+
if (root && !roots.includes(root)) {
|
|
61
|
+
roots.push(root);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
} catch {
|
|
65
|
+
}
|
|
66
|
+
for (const aliases of Object.values(REPO_ALIASES)) {
|
|
67
|
+
for (const alias of aliases) {
|
|
68
|
+
const aliasPath = path.join(parentDir, alias);
|
|
69
|
+
if (existsSync(aliasPath)) {
|
|
70
|
+
const root = getGitRoot(aliasPath);
|
|
71
|
+
if (root && !roots.includes(root)) {
|
|
72
|
+
roots.push(root);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return roots;
|
|
78
|
+
}
|
|
79
|
+
var GIT_TIMEOUT_MS = 1e4;
|
|
80
|
+
function listWorktrees(repoRoot) {
|
|
81
|
+
try {
|
|
82
|
+
const output = execSync("git worktree list --porcelain", {
|
|
83
|
+
cwd: repoRoot,
|
|
84
|
+
encoding: "utf8",
|
|
85
|
+
timeout: GIT_TIMEOUT_MS,
|
|
86
|
+
stdio: ["pipe", "pipe", "pipe"]
|
|
87
|
+
});
|
|
88
|
+
const worktrees = [];
|
|
89
|
+
let currentPath = "";
|
|
90
|
+
for (const line of output.split("\n")) {
|
|
91
|
+
if (line.startsWith("worktree ")) {
|
|
92
|
+
currentPath = line.slice("worktree ".length);
|
|
93
|
+
} else if (line.startsWith("branch ") && currentPath) {
|
|
94
|
+
const branch = line.slice("branch refs/heads/".length);
|
|
95
|
+
worktrees.push({ path: currentPath, branch });
|
|
96
|
+
currentPath = "";
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return worktrees;
|
|
100
|
+
} catch {
|
|
101
|
+
return [];
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function detectMainBranch(repoRoot) {
|
|
105
|
+
for (const candidate of ["main", "master"]) {
|
|
106
|
+
try {
|
|
107
|
+
execSync(`git rev-parse --verify "refs/heads/${candidate}"`, {
|
|
108
|
+
cwd: repoRoot,
|
|
109
|
+
encoding: "utf8",
|
|
110
|
+
timeout: GIT_TIMEOUT_MS,
|
|
111
|
+
stdio: ["pipe", "pipe", "pipe"]
|
|
112
|
+
});
|
|
113
|
+
return candidate;
|
|
114
|
+
} catch {
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
function isBranchMerged(repoRoot, branch, into) {
|
|
120
|
+
try {
|
|
121
|
+
const merged = execSync(`git branch --merged "${into}"`, {
|
|
122
|
+
cwd: repoRoot,
|
|
123
|
+
encoding: "utf8",
|
|
124
|
+
timeout: GIT_TIMEOUT_MS,
|
|
125
|
+
stdio: ["pipe", "pipe", "pipe"]
|
|
126
|
+
});
|
|
127
|
+
return merged.split("\n").map((l) => l.replace(/^[*+]?\s+/, "").trim()).includes(branch);
|
|
128
|
+
} catch {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function hasLiveTmuxSession(agentName) {
|
|
133
|
+
try {
|
|
134
|
+
const sessions = execSync("tmux list-sessions -F '#S' 2>/dev/null", {
|
|
135
|
+
encoding: "utf8",
|
|
136
|
+
timeout: 5e3,
|
|
137
|
+
stdio: ["pipe", "pipe", "pipe"]
|
|
138
|
+
}).trim();
|
|
139
|
+
if (!sessions) return false;
|
|
140
|
+
for (const session of sessions.split("\n")) {
|
|
141
|
+
const agentPart = session.split("-")[0];
|
|
142
|
+
if (!agentPart) continue;
|
|
143
|
+
const baseName = agentPart.replace(/\d+$/, "");
|
|
144
|
+
if (baseName === agentName || agentPart === agentName) return true;
|
|
145
|
+
}
|
|
146
|
+
return false;
|
|
147
|
+
} catch {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
function removeWorktree(repoRoot, wtPath) {
|
|
152
|
+
try {
|
|
153
|
+
execSync(`git worktree remove ${JSON.stringify(wtPath)} --force`, {
|
|
154
|
+
cwd: repoRoot,
|
|
155
|
+
encoding: "utf8",
|
|
156
|
+
timeout: GIT_TIMEOUT_MS,
|
|
157
|
+
stdio: ["pipe", "pipe", "pipe"]
|
|
158
|
+
});
|
|
159
|
+
return true;
|
|
160
|
+
} catch {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
function deleteBranch(repoRoot, branch) {
|
|
165
|
+
try {
|
|
166
|
+
execSync(`git branch -D ${JSON.stringify(branch)}`, {
|
|
167
|
+
cwd: repoRoot,
|
|
168
|
+
encoding: "utf8",
|
|
169
|
+
timeout: GIT_TIMEOUT_MS,
|
|
170
|
+
stdio: ["pipe", "pipe", "pipe"]
|
|
171
|
+
});
|
|
172
|
+
return true;
|
|
173
|
+
} catch {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
function deleteRemoteBranch(repoRoot, branch) {
|
|
178
|
+
try {
|
|
179
|
+
execSync(`git push origin --delete ${JSON.stringify(branch)}`, {
|
|
180
|
+
cwd: repoRoot,
|
|
181
|
+
encoding: "utf8",
|
|
182
|
+
timeout: 15e3,
|
|
183
|
+
stdio: ["pipe", "pipe", "pipe"]
|
|
184
|
+
});
|
|
185
|
+
return true;
|
|
186
|
+
} catch {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
function pruneWorktreeRegistry(repoRoot) {
|
|
191
|
+
try {
|
|
192
|
+
execSync("git worktree prune", {
|
|
193
|
+
cwd: repoRoot,
|
|
194
|
+
encoding: "utf8",
|
|
195
|
+
timeout: GIT_TIMEOUT_MS,
|
|
196
|
+
stdio: ["pipe", "pipe", "pipe"]
|
|
197
|
+
});
|
|
198
|
+
} catch {
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
function clearStashes(repoRoot) {
|
|
202
|
+
try {
|
|
203
|
+
const stashList = execSync("git stash list", {
|
|
204
|
+
cwd: repoRoot,
|
|
205
|
+
encoding: "utf8",
|
|
206
|
+
timeout: GIT_TIMEOUT_MS,
|
|
207
|
+
stdio: ["pipe", "pipe", "pipe"]
|
|
208
|
+
}).trim();
|
|
209
|
+
if (!stashList) return 0;
|
|
210
|
+
const count = stashList.split("\n").length;
|
|
211
|
+
execSync("git stash clear", {
|
|
212
|
+
cwd: repoRoot,
|
|
213
|
+
encoding: "utf8",
|
|
214
|
+
timeout: GIT_TIMEOUT_MS,
|
|
215
|
+
stdio: ["pipe", "pipe", "pipe"]
|
|
216
|
+
});
|
|
217
|
+
return count;
|
|
218
|
+
} catch {
|
|
219
|
+
return 0;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
function parseAgentName(wtPath) {
|
|
223
|
+
const dirName = path.basename(wtPath);
|
|
224
|
+
if (!dirName) return null;
|
|
225
|
+
return dirName.replace(/\d+$/, "") || dirName;
|
|
226
|
+
}
|
|
227
|
+
async function sweepWorktrees(options = {}) {
|
|
228
|
+
const dryRun = options.dryRun ?? false;
|
|
229
|
+
const repoPaths = options.repoPaths ?? discoverRepoPaths();
|
|
230
|
+
const result = {
|
|
231
|
+
reposScanned: 0,
|
|
232
|
+
removed: [],
|
|
233
|
+
branchesDeleted: [],
|
|
234
|
+
stashesCleared: 0,
|
|
235
|
+
skipped: [],
|
|
236
|
+
errors: []
|
|
237
|
+
};
|
|
238
|
+
for (const repoPath of repoPaths) {
|
|
239
|
+
const repoRoot = getGitRoot(repoPath);
|
|
240
|
+
if (!repoRoot) continue;
|
|
241
|
+
result.reposScanned++;
|
|
242
|
+
const repoName = path.basename(repoRoot);
|
|
243
|
+
const mainBranch = detectMainBranch(repoRoot);
|
|
244
|
+
if (!dryRun) {
|
|
245
|
+
pruneWorktreeRegistry(repoRoot);
|
|
246
|
+
}
|
|
247
|
+
const worktrees = listWorktrees(repoRoot);
|
|
248
|
+
for (const wt of worktrees) {
|
|
249
|
+
if (!wt.path.includes("/.worktrees/")) continue;
|
|
250
|
+
const agentName = parseAgentName(wt.path);
|
|
251
|
+
const wtName = path.basename(wt.path);
|
|
252
|
+
if (agentName && hasLiveTmuxSession(agentName)) {
|
|
253
|
+
result.skipped.push({
|
|
254
|
+
repo: repoName,
|
|
255
|
+
worktree: wtName,
|
|
256
|
+
branch: wt.branch,
|
|
257
|
+
reason: "live tmux session"
|
|
258
|
+
});
|
|
259
|
+
continue;
|
|
260
|
+
}
|
|
261
|
+
if (existsSync(wt.path) && isWorktreeDirty(wt.path)) {
|
|
262
|
+
result.skipped.push({
|
|
263
|
+
repo: repoName,
|
|
264
|
+
worktree: wtName,
|
|
265
|
+
branch: wt.branch,
|
|
266
|
+
reason: "uncommitted changes"
|
|
267
|
+
});
|
|
268
|
+
continue;
|
|
269
|
+
}
|
|
270
|
+
if (existsSync(wt.path) && isWorktreeUnpushed(wt.path, wt.branch)) {
|
|
271
|
+
result.skipped.push({
|
|
272
|
+
repo: repoName,
|
|
273
|
+
worktree: wtName,
|
|
274
|
+
branch: wt.branch,
|
|
275
|
+
reason: "unpushed commits \u2014 push first or use --force"
|
|
276
|
+
});
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
const isMerged = mainBranch ? isBranchMerged(repoRoot, wt.branch, mainBranch) : false;
|
|
280
|
+
if (dryRun) {
|
|
281
|
+
result.removed.push({ repo: repoName, worktree: wtName, branch: wt.branch });
|
|
282
|
+
if (isMerged || !mainBranch) {
|
|
283
|
+
result.branchesDeleted.push({ repo: repoName, branch: wt.branch, remote: true });
|
|
284
|
+
} else {
|
|
285
|
+
result.branchesDeleted.push({ repo: repoName, branch: wt.branch, remote: false });
|
|
286
|
+
}
|
|
287
|
+
continue;
|
|
288
|
+
}
|
|
289
|
+
const removed = removeWorktree(repoRoot, wt.path);
|
|
290
|
+
if (!removed) {
|
|
291
|
+
result.errors.push(`${repoName}: failed to remove worktree ${wtName}`);
|
|
292
|
+
continue;
|
|
293
|
+
}
|
|
294
|
+
result.removed.push({ repo: repoName, worktree: wtName, branch: wt.branch });
|
|
295
|
+
process.stderr.write(`[worktree-sweep] Removed ${repoName}/.worktrees/${wtName} (branch: ${wt.branch})
|
|
296
|
+
`);
|
|
297
|
+
const localDeleted = deleteBranch(repoRoot, wt.branch);
|
|
298
|
+
let remoteDeleted = false;
|
|
299
|
+
if (localDeleted) {
|
|
300
|
+
remoteDeleted = deleteRemoteBranch(repoRoot, wt.branch);
|
|
301
|
+
}
|
|
302
|
+
if (localDeleted) {
|
|
303
|
+
result.branchesDeleted.push({ repo: repoName, branch: wt.branch, remote: remoteDeleted });
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
if (!dryRun) {
|
|
307
|
+
const cleared = clearStashes(repoRoot);
|
|
308
|
+
if (cleared > 0) {
|
|
309
|
+
result.stashesCleared += cleared;
|
|
310
|
+
process.stderr.write(`[worktree-sweep] Cleared ${cleared} stash(es) in ${repoName}
|
|
311
|
+
`);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
if (!dryRun) {
|
|
315
|
+
pruneWorktreeRegistry(repoRoot);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
return result;
|
|
319
|
+
}
|
|
320
|
+
function cleanupAgentWorktree(repoRoot, agentName) {
|
|
321
|
+
const worktreesDir = path.join(repoRoot, ".worktrees");
|
|
322
|
+
if (!existsSync(worktreesDir)) return "";
|
|
323
|
+
const notes = [];
|
|
324
|
+
try {
|
|
325
|
+
const entries = readdirSync(worktreesDir);
|
|
326
|
+
for (const entry of entries) {
|
|
327
|
+
const baseName = entry.replace(/\d+$/, "") || entry;
|
|
328
|
+
const agentBase = agentName.replace(/\d+$/, "") || agentName;
|
|
329
|
+
if (baseName !== agentBase) continue;
|
|
330
|
+
const wtPath = path.join(worktreesDir, entry);
|
|
331
|
+
const branch = getWorktreeBranch(repoRoot, wtPath);
|
|
332
|
+
if (isWorktreeDirty(wtPath)) {
|
|
333
|
+
notes.push(`Worktree .worktrees/${entry} has uncommitted changes \u2014 preserved`);
|
|
334
|
+
continue;
|
|
335
|
+
}
|
|
336
|
+
if (isWorktreeUnpushed(wtPath, branch)) {
|
|
337
|
+
notes.push(`Worktree .worktrees/${entry} has unpushed commits \u2014 preserved`);
|
|
338
|
+
continue;
|
|
339
|
+
}
|
|
340
|
+
if (removeWorktree(repoRoot, wtPath)) {
|
|
341
|
+
notes.push(`Removed worktree .worktrees/${entry}`);
|
|
342
|
+
if (branch && deleteBranch(repoRoot, branch)) {
|
|
343
|
+
notes.push(`Deleted branch ${branch}`);
|
|
344
|
+
if (deleteRemoteBranch(repoRoot, branch)) {
|
|
345
|
+
notes.push(`Deleted remote branch ${branch}`);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
} catch {
|
|
351
|
+
}
|
|
352
|
+
pruneWorktreeRegistry(repoRoot);
|
|
353
|
+
return notes.join("\n");
|
|
354
|
+
}
|
|
355
|
+
function getWorktreeBranch(repoRoot, wtPath) {
|
|
356
|
+
try {
|
|
357
|
+
const worktrees = listWorktrees(repoRoot);
|
|
358
|
+
for (const wt of worktrees) {
|
|
359
|
+
if (wt.path === wtPath) return wt.branch;
|
|
360
|
+
}
|
|
361
|
+
return null;
|
|
362
|
+
} catch {
|
|
363
|
+
return null;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
export {
|
|
368
|
+
discoverRepoPaths,
|
|
369
|
+
sweepWorktrees,
|
|
370
|
+
cleanupAgentWorktree
|
|
371
|
+
};
|
|
@@ -111,7 +111,7 @@ function releaseBackfillLock() {
|
|
|
111
111
|
}
|
|
112
112
|
async function getTaskAwareCapacity() {
|
|
113
113
|
const { getClient } = await import("./lib/database.js");
|
|
114
|
-
const { sessionScopeFilter } = await import("./task-scope-
|
|
114
|
+
const { sessionScopeFilter } = await import("./task-scope-AKF3CSWO.js");
|
|
115
115
|
const client = getClient();
|
|
116
116
|
const scope = sessionScopeFilter();
|
|
117
117
|
const result = await client.execute({
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
extractMemoryGraph
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-M7PZFYHE.js";
|
|
4
4
|
import {
|
|
5
5
|
flushBatch,
|
|
6
6
|
writeMemory
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-AQS2B3HC.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-GBR4MAAK.js";
|
|
14
14
|
|
|
15
15
|
// src/mcp/tools/import-conversations.ts
|
|
16
16
|
import { z } from "zod";
|
|
@@ -303,7 +303,6 @@ function registerImportConversations(server) {
|
|
|
303
303
|
}
|
|
304
304
|
let stored = 0;
|
|
305
305
|
let skipped = 0;
|
|
306
|
-
let errors = 0;
|
|
307
306
|
for (let i = 0; i < allMemories.length; i++) {
|
|
308
307
|
const memory = allMemories[i];
|
|
309
308
|
try {
|
|
@@ -365,7 +364,6 @@ function registerImportConversations(server) {
|
|
|
365
364
|
Conversations: ${conversationCount} (${formatSummary})
|
|
366
365
|
Memories stored: ${stored}
|
|
367
366
|
Duplicates skipped: ${skipped}
|
|
368
|
-
Errors: ${errors}
|
|
369
367
|
Agent: ${agentId}
|
|
370
368
|
Project: ${projectName}`
|
|
371
369
|
}]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isCrdtSyncEnabled
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-J5CAYOJU.js";
|
|
4
4
|
import {
|
|
5
5
|
decryptSyncBlob,
|
|
6
6
|
encryptSyncBlob,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
loadEmployees,
|
|
13
13
|
registerBinSymlinks,
|
|
14
14
|
saveEmployees
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-WVBZ3QBR.js";
|
|
16
16
|
import {
|
|
17
17
|
loadDeviceId
|
|
18
18
|
} from "./chunk-MOZ2YQ54.js";
|
|
@@ -521,7 +521,7 @@ async function cloudSync(config) {
|
|
|
521
521
|
let pulled = 0;
|
|
522
522
|
if (pullResult.records.length > 0) {
|
|
523
523
|
if (shouldUseCrdtMergeForCloudSync()) {
|
|
524
|
-
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-
|
|
524
|
+
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-AH7N6QOE.js");
|
|
525
525
|
initCrdtDoc();
|
|
526
526
|
importExistingMemories(
|
|
527
527
|
pullResult.records.map((rec) => ({
|
|
@@ -953,7 +953,7 @@ async function cloudSync(config) {
|
|
|
953
953
|
}
|
|
954
954
|
const totalMemories = await countRows("SELECT COUNT(*) as cnt FROM memories WHERE status = 'active' OR status IS NULL");
|
|
955
955
|
try {
|
|
956
|
-
const { getLatestBackup } = await import("./db-backup-
|
|
956
|
+
const { getLatestBackup } = await import("./db-backup-2RG6VHT7.js");
|
|
957
957
|
const latestBackup = getLatestBackup();
|
|
958
958
|
if (latestBackup) {
|
|
959
959
|
const backupSize = statSync(latestBackup).size;
|