@askexenow/exe-os 0.9.200 → 0.9.202
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-LCEW3PSL.js → active-agent-3MLX4YOU.js} +2 -2
- package/dist/{active-agent-J3YKAXE2.js → active-agent-MTJPQ57G.js} +2 -2
- package/dist/{agentic-ontology-N5HXDWIN.js → agentic-ontology-HPFKQFA2.js} +1 -1
- package/dist/{backfill-metadata-LIACQP2F.js → backfill-metadata-IR5SAR3G.js} +3 -3
- package/dist/{behaviors-GXMZW7B3.js → behaviors-TIOFWD4T.js} +2 -2
- package/dist/bin/agentic-ontology-backfill.js +4 -4
- package/dist/bin/agentic-reflection-backfill.js +5 -5
- package/dist/bin/agentic-semantic-label.js +4 -4
- package/dist/bin/backfill-conversations.js +3 -3
- package/dist/bin/backfill-responses.js +3 -3
- package/dist/bin/backfill-vectors.js +4 -4
- package/dist/bin/bulk-sync-postgres.js +5 -5
- package/dist/bin/cleanup-stale-review-tasks.js +8 -8
- package/dist/bin/cli.js +12 -12
- package/dist/bin/exe-agent-config.js +1 -1
- package/dist/bin/exe-agent.js +3 -3
- package/dist/bin/exe-assign.js +4 -4
- package/dist/bin/exe-boot.js +15 -15
- package/dist/bin/exe-call.js +3 -3
- package/dist/bin/exe-cloud.js +3 -3
- package/dist/bin/exe-dispatch.js +8 -8
- package/dist/bin/exe-doctor.js +1 -1
- package/dist/bin/exe-export-behaviors.js +6 -6
- package/dist/bin/exe-forget.js +5 -5
- package/dist/bin/exe-gateway.js +5 -5
- package/dist/bin/exe-heartbeat.js +8 -8
- package/dist/bin/exe-kill.js +11 -11
- package/dist/bin/exe-launch-agent.js +9 -9
- package/dist/bin/exe-new-employee.js +5 -5
- package/dist/bin/exe-pending-messages.js +9 -9
- package/dist/bin/exe-pending-notifications.js +8 -8
- package/dist/bin/exe-pending-reviews.js +8 -8
- package/dist/bin/exe-rename.js +3 -3
- package/dist/bin/exe-review.js +10 -10
- package/dist/bin/exe-search.js +4 -4
- package/dist/bin/exe-session-cleanup.js +12 -12
- package/dist/bin/exe-settings.js +3 -3
- package/dist/bin/exe-start-codex.js +10 -10
- package/dist/bin/exe-start-opencode.js +7 -7
- package/dist/bin/exe-status.js +9 -9
- package/dist/bin/exe-team.js +2 -2
- package/dist/bin/git-sweep.js +8 -8
- package/dist/bin/graph-backfill.js +3 -3
- package/dist/bin/graph-export.js +4 -4
- package/dist/bin/import-history.js +4 -4
- package/dist/bin/install.js +5 -5
- package/dist/bin/intercom-check.js +5 -7
- package/dist/bin/orchestration-metrics.js +22 -9
- package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
- package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
- package/dist/bin/scan-tasks.js +8 -8
- package/dist/bin/setup.js +1 -1
- package/dist/bin/shard-migrate.js +4 -4
- package/dist/{capacity-monitor-HJSJ2PCF.js → capacity-monitor-ELS3ONND.js} +9 -9
- package/dist/{catchup-brief-XD7IJBMN.js → catchup-brief-RGH23CWV.js} +10 -10
- package/dist/{chunk-P4LUVVX4.js → chunk-3M5LROTK.js} +2 -2
- package/dist/{chunk-SUNFUS3O.js → chunk-3YP46SPZ.js} +1 -1
- package/dist/{chunk-TXWQPL2U.js → chunk-5YDHBZCO.js} +1 -1
- package/dist/{chunk-X33TOTUD.js → chunk-6IKN6AJE.js} +2 -2
- package/dist/{chunk-XZQWEY5S.js → chunk-6NLHVC6U.js} +1 -1
- package/dist/{chunk-HVUBZOOT.js → chunk-7VU6CZCK.js} +2 -2
- package/dist/{chunk-BDRSCPCG.js → chunk-7ZIRLFIF.js} +1 -1
- package/dist/{chunk-IOEK5ZX6.js → chunk-A4NG62X6.js} +1 -1
- package/dist/{chunk-HGO5VFED.js → chunk-AVHQPIJS.js} +1 -1
- package/dist/{chunk-NOSCV7MH.js → chunk-B4K3OTWE.js} +3 -3
- package/dist/{chunk-X2KLWLCB.js → chunk-B4K4EJH7.js} +1 -1
- package/dist/{chunk-ZB3TDCXG.js → chunk-BCTU72UR.js} +1 -1
- package/dist/{chunk-K3FJHQ3F.js → chunk-BO7GOBQK.js} +2 -2
- package/dist/{chunk-PIJSZELU.js → chunk-BWRDZFPN.js} +2 -2
- package/dist/{chunk-HUIYZHN3.js → chunk-C2YR6BZY.js} +1 -1
- package/dist/{chunk-VQB4VBEQ.js → chunk-CCYOB56Q.js} +1 -1
- package/dist/{chunk-LLYF22CH.js → chunk-CL3YN3HD.js} +2 -2
- package/dist/{chunk-43HRNKQX.js → chunk-CY755JMZ.js} +53 -53
- package/dist/{chunk-AVRQWLQR.js → chunk-DDH7QVQN.js} +5 -5
- package/dist/{chunk-OW4QI3K4.js → chunk-DFQY6G4L.js} +3 -3
- package/dist/{chunk-LKBN6BFL.js → chunk-DSL243RL.js} +2 -2
- package/dist/{chunk-Z4FV45FW.js → chunk-DXFNVS44.js} +1 -1
- package/dist/{chunk-GSKJ72LT.js → chunk-DZ7FHBK6.js} +5 -5
- package/dist/{chunk-CSTJQDOE.js → chunk-G4QFC45N.js} +1 -1
- package/dist/{chunk-KEJ3HOBN.js → chunk-GKKMANTG.js} +1 -1
- package/dist/{chunk-WXQRFDY4.js → chunk-JUKSHMDE.js} +9 -9
- package/dist/{chunk-6UZHYTLV.js → chunk-KMAYFYW7.js} +10 -10
- package/dist/{chunk-LWYXWPZZ.js → chunk-KPUVDGLP.js} +8 -7
- package/dist/{chunk-XPOMXVWI.js → chunk-L756L654.js} +84 -7
- package/dist/{chunk-ZZODXCWK.js → chunk-LT26OOIB.js} +1 -1
- package/dist/{chunk-ATVB6CY7.js → chunk-MLQFGVFJ.js} +1 -1
- package/dist/{chunk-GR53PEEH.js → chunk-NC3NOZHH.js} +1 -1
- package/dist/{chunk-F3QROFHP.js → chunk-NF7JH5IY.js} +2 -2
- package/dist/{chunk-KVVCXK3J.js → chunk-P7QVZZBS.js} +3 -3
- package/dist/{chunk-YZNGBIXU.js → chunk-POS4PUM7.js} +1 -1
- package/dist/{chunk-AWYLVIGA.js → chunk-PQMCT335.js} +2 -2
- package/dist/{chunk-QOW5EEYO.js → chunk-Q3FTA4GX.js} +1 -1
- package/dist/{chunk-TJHE2HYS.js → chunk-Q4XGOMGF.js} +3 -3
- package/dist/{chunk-EEG6E34W.js → chunk-QR7CQJVJ.js} +1 -1
- package/dist/{chunk-P6PKNRFD.js → chunk-T2WX4H6T.js} +3 -3
- package/dist/{chunk-GKQXZZBT.js → chunk-T4EQ5SKI.js} +1 -1
- package/dist/{chunk-K6A7ZE2F.js → chunk-UCDMLKE5.js} +1 -1
- package/dist/{chunk-7YTVWNSS.js → chunk-VBKEAVEU.js} +2 -2
- package/dist/{chunk-OOMA2AEM.js → chunk-W3LYG7QF.js} +1 -1
- package/dist/{chunk-WVNKXOWZ.js → chunk-WFE44FUV.js} +1 -1
- package/dist/{chunk-E5P2TY4E.js → chunk-XASY3SCH.js} +1 -1
- package/dist/{chunk-LWM3FUGY.js → chunk-XIXDMUGJ.js} +1 -1
- package/dist/{chunk-TBZB4PPZ.js → chunk-XKFIU4UF.js} +4 -4
- package/dist/{chunk-C5A3L3HS.js → chunk-XTHI2OPC.js} +4 -4
- package/dist/{chunk-3HM6MZ4O.js → chunk-YCEJCFU5.js} +22 -2
- package/dist/{chunk-QQXMGLSN.js → chunk-YRSYMLEP.js} +8 -8
- package/dist/{chunk-2EYYW724.js → chunk-ZE36U2GK.js} +2 -2
- package/dist/{chunk-7Y4F7IPJ.js → chunk-ZQKD7DKB.js} +4 -4
- package/dist/{co-occurrence-6OAMOUTF.js → co-occurrence-J5WOOCWD.js} +1 -1
- package/dist/{crdt-sync-6EI7LAPI.js → crdt-sync-NGSP5WQE.js} +1 -1
- package/dist/{crm-webhook-LEWQNEDD.js → crm-webhook-SMFGNXKL.js} +2 -2
- package/dist/{cto-delegation-gate-GXRHD4WX.js → cto-delegation-gate-DKSKMR4E.js} +7 -7
- package/dist/{daemon-orchestration-QOKZVECP.js → daemon-orchestration-NWTSPSZV.js} +10 -10
- package/dist/{exe-drift-N2IDPAQ7.js → exe-drift-BUVZV7DK.js} +2 -2
- package/dist/{exe-export-63FYZTV3.js → exe-export-2QAZRK2C.js} +4 -4
- package/dist/{exe-import-T5OPTK5T.js → exe-import-7KPJXDV5.js} +4 -4
- package/dist/{exe-key-ROFJ6HUG.js → exe-key-7TW2INXT.js} +1 -1
- package/dist/{fast-db-init-GC4SYSFV.js → fast-db-init-BCU67WEQ.js} +1 -1
- package/dist/gateway/index.js +6 -6
- package/dist/{git-staleness-QKURDEMW.js → git-staleness-WTDE4H4D.js} +1 -1
- package/dist/{git-task-sweep-5YHZF2E5.js → git-task-sweep-R4DADTK5.js} +8 -8
- package/dist/{global-procedures-PQKUKKM6.js → global-procedures-K3B3GTHA.js} +2 -2
- package/dist/{graph-auto-extract-GUEMG3Q3.js → graph-auto-extract-ZCVUFK6M.js} +1 -1
- package/dist/hooks/bug-report-worker.js +9 -9
- package/dist/hooks/codex-stop-task-finalizer.js +9 -9
- package/dist/hooks/commit-complete.js +10 -10
- package/dist/hooks/error-recall.js +5 -5
- package/dist/hooks/exe-heartbeat-hook.js +2 -2
- package/dist/hooks/ingest.js +5 -5
- package/dist/hooks/instructions-loaded.js +3 -3
- package/dist/hooks/manifest.json +19 -19
- package/dist/hooks/notification.js +3 -3
- package/dist/hooks/post-compact.js +9 -9
- package/dist/hooks/post-tool-combined.js +4 -4
- package/dist/hooks/pre-compact.js +10 -10
- package/dist/hooks/pre-tool-use.js +13 -13
- package/dist/hooks/prompt-submit.js +18 -18
- package/dist/hooks/session-end.js +12 -12
- package/dist/hooks/session-start.js +7 -7
- package/dist/hooks/stop.js +13 -13
- package/dist/hooks/subagent-stop.js +9 -9
- package/dist/hooks/summary-worker.js +13 -13
- package/dist/index.js +15 -15
- package/dist/{installer-Z4LBQTL6.js → installer-D47RNEJB.js} +4 -4
- package/dist/{installer-AYN7WB62.js → installer-WVQDUS7O.js} +4 -4
- package/dist/{installer-D4XB27FY.js → installer-YBYJZLUT.js} +4 -4
- package/dist/lib/cloud-sync.js +3 -3
- package/dist/lib/consolidation.js +4 -4
- package/dist/lib/database.js +1 -1
- package/dist/lib/db.js +1 -1
- package/dist/lib/employee-templates.js +3 -3
- package/dist/lib/employees.js +1 -1
- package/dist/lib/exe-daemon.js +24 -24
- package/dist/lib/hybrid-search.js +4 -4
- package/dist/lib/identity.js +1 -1
- package/dist/lib/messaging.js +8 -8
- package/dist/lib/reminders.js +2 -2
- package/dist/lib/schedules.js +4 -4
- package/dist/lib/skill-learning.js +3 -3
- package/dist/lib/store.js +3 -3
- package/dist/lib/task-router.js +2 -2
- package/dist/lib/tasks.js +8 -8
- package/dist/lib/tmux-routing.js +7 -7
- package/dist/lib/tmux-transport.js +1 -1
- package/dist/lib/token-spend.js +2 -2
- package/dist/lib/transport.js +2 -2
- package/dist/mcp/register-tools.js +46 -46
- package/dist/mcp/server.js +47 -47
- package/dist/mcp/tools/complete-reminder.js +3 -3
- package/dist/mcp/tools/create-reminder.js +3 -3
- package/dist/mcp/tools/create-task.js +10 -10
- package/dist/mcp/tools/deactivate-behavior.js +4 -4
- package/dist/mcp/tools/list-reminders.js +3 -3
- package/dist/mcp/tools/list-tasks.js +10 -10
- package/dist/mcp/tools/send-message.js +10 -10
- package/dist/mcp/tools/update-task.js +9 -9
- package/dist/{mcp-http-config-JFGNXQ5M.js → mcp-http-config-DWN2POKM.js} +2 -2
- package/dist/{memory-cards-QHCHERFV.js → memory-cards-VIKEUPGO.js} +1 -1
- package/dist/{memory-graph-extractor-RAF4M3YY.js → memory-graph-extractor-OP2BSF43.js} +2 -2
- package/dist/{memory-poisoning-defense-M4E6D6NI.js → memory-poisoning-defense-EKMAAXMH.js} +1 -1
- package/dist/{memory-reflection-OVQDAOKW.js → memory-reflection-AAST2U2M.js} +1 -1
- package/dist/{notifications-QCZJTMU4.js → notifications-EN4LRYGN.js} +7 -7
- package/dist/{orchestrator-RETZBZNU.js → orchestrator-USY2S6CW.js} +9 -9
- package/dist/{plan-limits-KY5FB6FM.js → plan-limits-J2BJEBN6.js} +2 -2
- package/dist/{projection-worker-B4FYF4FS.js → projection-worker-QPE2JIKS.js} +1 -1
- package/dist/{reranker-DLESU7S4.js → reranker-ZLTHZ2QV.js} +1 -1
- package/dist/{review-polling-S4HD536T.js → review-polling-STO2A64Z.js} +8 -8
- package/dist/runtime/index.js +10 -10
- package/dist/{session-events-TRCSYKGW.js → session-events-WD4N65IU.js} +8 -8
- package/dist/{session-kill-telemetry-WBB7YHWC.js → session-kill-telemetry-GBNUQABY.js} +2 -2
- package/dist/{session-scope-H6H7EVMH.js → session-scope-6D22DUTP.js} +7 -7
- package/dist/{setup-wizard-QGJEHEJP.js → setup-wizard-FQBIZQWP.js} +1 -1
- package/dist/{shard-manager-KXLEDDBB.js → shard-manager-4PWRZW4V.js} +1 -1
- package/dist/{skill-refinement-DDFALKOD.js → skill-refinement-QKMHEVFO.js} +1 -1
- package/dist/{task-enforcement-7NCE6NJC.js → task-enforcement-RVG3CLR4.js} +7 -7
- package/dist/{task-scope-C7QECQSB.js → task-scope-SSM56VHZ.js} +7 -7
- package/dist/{tasks-crud-4VGXAUW5.js → tasks-crud-JGUYPAYP.js} +7 -7
- package/dist/{tasks-review-ATHR7IZK.js → tasks-review-WNZ5LJUB.js} +7 -7
- package/dist/{token-budget-2ZZRFSHF.js → token-budget-ES3IEZPJ.js} +1 -1
- package/dist/{tool-telemetry-EWE2YR2K.js → tool-telemetry-JVQX5FJV.js} +1 -1
- package/dist/tui/App.js +15 -15
- package/dist/{tui-data-LQQ66HCW.js → tui-data-7F5DOFTZ.js} +7 -7
- package/dist/{worker-gate-POIBNVX7.js → worker-gate-BFVWIKDF.js} +1 -1
- package/dist/{workflow-engine-MA2H5JEZ.js → workflow-engine-AHMVTNEX.js} +2 -2
- package/package.json +1 -1
- package/release-notes.json +80 -80
- /package/dist/{chunk-I3B4QG5C.js → chunk-25YHJFSE.js} +0 -0
- /package/dist/{chunk-GOA7VQT7.js → chunk-5QVJ5TBF.js} +0 -0
- /package/dist/{chunk-Z6AUK6YH.js → chunk-FMKXO3B6.js} +0 -0
- /package/dist/{chunk-SY4TZ224.js → chunk-HGU4YCR3.js} +0 -0
- /package/dist/{chunk-JMMYWY7C.js → chunk-HIECEYMN.js} +0 -0
- /package/dist/{chunk-6YFGFW4V.js → chunk-LNKK5HOA.js} +0 -0
- /package/dist/{chunk-35ES3HTI.js → chunk-QMNDQQTA.js} +0 -0
- /package/dist/{chunk-LZPZ67IT.js → chunk-TFV7MDCX.js} +0 -0
- /package/dist/{chunk-2GHDAIDB.js → chunk-YLBBPZO3.js} +0 -0
- /package/dist/{core-memory-4QNM6MZ5.js → core-memory-65BZJEXX.js} +0 -0
- /package/dist/{wiki-acl-UTITDXLT.js → wiki-acl-UOSBRX3O.js} +0 -0
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
findScopedDuplicate,
|
|
7
7
|
governMemoryRecord,
|
|
8
8
|
schedulePostWriteMemoryHygiene
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-HGU4YCR3.js";
|
|
10
10
|
import {
|
|
11
11
|
orgBus
|
|
12
12
|
} from "./chunk-MP2AFCGL.js";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
ensureSchema,
|
|
16
16
|
getClient,
|
|
17
17
|
initTurso
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-YCEJCFU5.js";
|
|
19
19
|
import {
|
|
20
20
|
EMBEDDING_DIM
|
|
21
21
|
} from "./chunk-FXU7JOXK.js";
|
|
@@ -139,7 +139,7 @@ async function initStore(options) {
|
|
|
139
139
|
if (!options?.lightweight) {
|
|
140
140
|
try {
|
|
141
141
|
if (process.env.EXE_DISABLE_SHARDING !== "1") {
|
|
142
|
-
const { initShardManager } = await import("./shard-manager-
|
|
142
|
+
const { initShardManager } = await import("./shard-manager-4PWRZW4V.js");
|
|
143
143
|
initShardManager(hexKey);
|
|
144
144
|
}
|
|
145
145
|
} catch (e) {
|
|
@@ -152,7 +152,7 @@ async function initStore(options) {
|
|
|
152
152
|
);
|
|
153
153
|
_nextVersion = (Number(vResult.rows[0]?.max_v) || 0) + 1;
|
|
154
154
|
try {
|
|
155
|
-
const { loadGlobalProcedures } = await import("./global-procedures-
|
|
155
|
+
const { loadGlobalProcedures } = await import("./global-procedures-K3B3GTHA.js");
|
|
156
156
|
await loadGlobalProcedures();
|
|
157
157
|
} catch (e) {
|
|
158
158
|
logStoreWarn("catch", e);
|
|
@@ -279,7 +279,7 @@ async function writeMemory(record) {
|
|
|
279
279
|
keywords: record.keywords ?? keywordsToString(extractKeywords(record.raw_text))
|
|
280
280
|
};
|
|
281
281
|
try {
|
|
282
|
-
const { checkMemoryPoisoning } = await import("./memory-poisoning-defense-
|
|
282
|
+
const { checkMemoryPoisoning } = await import("./memory-poisoning-defense-EKMAAXMH.js");
|
|
283
283
|
const poisonResult = await checkMemoryPoisoning({
|
|
284
284
|
memoryId: dbRow.id,
|
|
285
285
|
vector: Array.isArray(dbRow.vector) ? dbRow.vector : void 0,
|
|
@@ -465,19 +465,19 @@ async function flushBatch() {
|
|
|
465
465
|
}
|
|
466
466
|
_nextVersion = baseVersion;
|
|
467
467
|
try {
|
|
468
|
-
const { insertMemoryCardsForBatch } = await import("./memory-cards-
|
|
468
|
+
const { insertMemoryCardsForBatch } = await import("./memory-cards-VIKEUPGO.js");
|
|
469
469
|
await insertMemoryCardsForBatch(batch);
|
|
470
470
|
} catch (e) {
|
|
471
471
|
logStoreWarn("catch", e);
|
|
472
472
|
}
|
|
473
473
|
try {
|
|
474
|
-
const { insertOntologyForBatch } = await import("./agentic-ontology-
|
|
474
|
+
const { insertOntologyForBatch } = await import("./agentic-ontology-HPFKQFA2.js");
|
|
475
475
|
await insertOntologyForBatch(batch);
|
|
476
476
|
} catch (e) {
|
|
477
477
|
logStoreWarn("catch", e);
|
|
478
478
|
}
|
|
479
479
|
try {
|
|
480
|
-
const { extractGraphForBatch } = await import("./memory-graph-extractor-
|
|
480
|
+
const { extractGraphForBatch } = await import("./memory-graph-extractor-OP2BSF43.js");
|
|
481
481
|
await extractGraphForBatch(batch);
|
|
482
482
|
} catch (e) {
|
|
483
483
|
logStoreWarn("catch", e);
|
|
@@ -485,7 +485,7 @@ async function flushBatch() {
|
|
|
485
485
|
schedulePostWriteMemoryHygiene(batch.map((row) => row.id));
|
|
486
486
|
_pendingRecords.splice(0, batch.length);
|
|
487
487
|
try {
|
|
488
|
-
const { isShardingEnabled, getReadyShardClient } = await import("./shard-manager-
|
|
488
|
+
const { isShardingEnabled, getReadyShardClient } = await import("./shard-manager-4PWRZW4V.js");
|
|
489
489
|
if (process.env.EXE_DISABLE_SHARDING !== "1" && isShardingEnabled()) {
|
|
490
490
|
const byProject = /* @__PURE__ */ new Map();
|
|
491
491
|
let skippedUnknown = 0;
|
|
@@ -562,7 +562,7 @@ function buildRawVisibilityFilter(options, columnPrefix) {
|
|
|
562
562
|
async function searchMemories(queryVector, agentId, options) {
|
|
563
563
|
let client;
|
|
564
564
|
try {
|
|
565
|
-
const { isShardingEnabled, shardExists, getReadyShardClient } = await import("./shard-manager-
|
|
565
|
+
const { isShardingEnabled, shardExists, getReadyShardClient } = await import("./shard-manager-4PWRZW4V.js");
|
|
566
566
|
if (isShardingEnabled() && options?.projectName && shardExists(options.projectName)) {
|
|
567
567
|
client = await getReadyShardClient(options.projectName);
|
|
568
568
|
} else {
|
|
@@ -3,24 +3,24 @@ import {
|
|
|
3
3
|
} from "./chunk-MLXJ5EZG.js";
|
|
4
4
|
import {
|
|
5
5
|
createTask
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-DDH7QVQN.js";
|
|
7
7
|
import {
|
|
8
8
|
getActiveAgent
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-Q3FTA4GX.js";
|
|
10
10
|
import {
|
|
11
11
|
ensureEmployee,
|
|
12
12
|
logTaskDispatch,
|
|
13
13
|
resolveExeSession
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-JUKSHMDE.js";
|
|
15
15
|
import {
|
|
16
16
|
getLicenseSync
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-CCYOB56Q.js";
|
|
18
18
|
import {
|
|
19
19
|
getAgentContext
|
|
20
20
|
} from "./chunk-GJV3WDWM.js";
|
|
21
21
|
import {
|
|
22
22
|
isCoordinatorName
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-YCEJCFU5.js";
|
|
24
24
|
|
|
25
25
|
// src/mcp/tools/create-task.ts
|
|
26
26
|
import { z } from "zod";
|
|
@@ -33,7 +33,8 @@ async function resolveProjectDir(projectName, callerSession) {
|
|
|
33
33
|
try {
|
|
34
34
|
const { listSessions } = await import("./lib/session-registry.js");
|
|
35
35
|
const sessions = listSessions();
|
|
36
|
-
const
|
|
36
|
+
const coordName = callerSession.includes("-") ? callerSession.slice(callerSession.indexOf("-") + 1) : callerSession;
|
|
37
|
+
const coordSession = sessions.find((s) => s.windowName === coordName) ?? sessions.find((s) => s.windowName === callerSession);
|
|
37
38
|
if (coordSession?.projectDir && existsSync(coordSession.projectDir)) {
|
|
38
39
|
const dirBasename = (await import("path")).basename(coordSession.projectDir).toLowerCase();
|
|
39
40
|
const normalizedProject = projectName.toLowerCase();
|
|
@@ -208,7 +209,7 @@ function registerCreateTask(server) {
|
|
|
208
209
|
let projectConflictOpts = {};
|
|
209
210
|
try {
|
|
210
211
|
const { getClient } = await import("./lib/database.js");
|
|
211
|
-
const { sessionScopeFilter } = await import("./task-scope-
|
|
212
|
+
const { sessionScopeFilter } = await import("./task-scope-SSM56VHZ.js");
|
|
212
213
|
const client = getClient();
|
|
213
214
|
const scope = sessionScopeFilter();
|
|
214
215
|
const existing = await client.execute({
|
|
@@ -196,24 +196,50 @@ async function ensureShardSchema(client) {
|
|
|
196
196
|
CREATE INDEX IF NOT EXISTS idx_memories_agent_project ON memories(agent_id, project_name);
|
|
197
197
|
CREATE INDEX IF NOT EXISTS idx_memories_version ON memories(version);
|
|
198
198
|
`);
|
|
199
|
+
let needsFtsMigration = false;
|
|
200
|
+
try {
|
|
201
|
+
await client.execute("SELECT keywords FROM memories_fts LIMIT 0");
|
|
202
|
+
} catch {
|
|
203
|
+
needsFtsMigration = true;
|
|
204
|
+
}
|
|
205
|
+
if (needsFtsMigration) {
|
|
206
|
+
for (const drop of [
|
|
207
|
+
"DROP TRIGGER IF EXISTS memories_fts_ai",
|
|
208
|
+
"DROP TRIGGER IF EXISTS memories_fts_ad",
|
|
209
|
+
"DROP TRIGGER IF EXISTS memories_fts_au",
|
|
210
|
+
"DROP TRIGGER IF EXISTS memories_fts_soft_delete",
|
|
211
|
+
"DROP TABLE IF EXISTS memories_fts"
|
|
212
|
+
]) {
|
|
213
|
+
try {
|
|
214
|
+
await client.execute(drop);
|
|
215
|
+
} catch {
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
199
219
|
await client.executeMultiple(`
|
|
200
220
|
CREATE VIRTUAL TABLE IF NOT EXISTS memories_fts USING fts5(
|
|
201
221
|
raw_text,
|
|
222
|
+
keywords,
|
|
202
223
|
content='memories',
|
|
203
224
|
content_rowid='rowid'
|
|
204
225
|
);
|
|
205
226
|
|
|
206
227
|
CREATE TRIGGER IF NOT EXISTS memories_fts_ai AFTER INSERT ON memories BEGIN
|
|
207
|
-
INSERT INTO memories_fts(rowid, raw_text) VALUES (new.rowid, new.raw_text);
|
|
228
|
+
INSERT INTO memories_fts(rowid, raw_text, keywords) VALUES (new.rowid, new.raw_text, COALESCE(new.keywords, ''));
|
|
208
229
|
END;
|
|
209
230
|
|
|
210
231
|
CREATE TRIGGER IF NOT EXISTS memories_fts_ad AFTER DELETE ON memories BEGIN
|
|
211
|
-
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
232
|
+
INSERT INTO memories_fts(memories_fts, rowid, raw_text, keywords) VALUES('delete', old.rowid, old.raw_text, COALESCE(old.keywords, ''));
|
|
212
233
|
END;
|
|
213
234
|
|
|
214
235
|
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories BEGIN
|
|
215
|
-
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
216
|
-
INSERT INTO memories_fts(rowid, raw_text) VALUES (new.rowid, new.raw_text);
|
|
236
|
+
INSERT INTO memories_fts(memories_fts, rowid, raw_text, keywords) VALUES('delete', old.rowid, old.raw_text, COALESCE(old.keywords, ''));
|
|
237
|
+
INSERT INTO memories_fts(rowid, raw_text, keywords) VALUES (new.rowid, new.raw_text, COALESCE(new.keywords, ''));
|
|
238
|
+
END;
|
|
239
|
+
|
|
240
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_soft_delete AFTER UPDATE OF status ON memories
|
|
241
|
+
WHEN new.status = 'deleted' AND (old.status IS NULL OR old.status != 'deleted') BEGIN
|
|
242
|
+
INSERT INTO memories_fts(memories_fts, rowid, raw_text, keywords) VALUES('delete', old.rowid, old.raw_text, COALESCE(old.keywords, ''));
|
|
217
243
|
END;
|
|
218
244
|
`);
|
|
219
245
|
for (const col of [
|
|
@@ -271,7 +297,7 @@ async function ensureShardSchema(client) {
|
|
|
271
297
|
// Memory strength scoring — Ebbinghaus decay (must match database.ts)
|
|
272
298
|
"ALTER TABLE memories ADD COLUMN strength REAL DEFAULT 1.0",
|
|
273
299
|
// Source trust level (must match database.ts)
|
|
274
|
-
"ALTER TABLE memories ADD COLUMN source_trust_level TEXT",
|
|
300
|
+
"ALTER TABLE memories ADD COLUMN source_trust_level TEXT DEFAULT 'unknown'",
|
|
275
301
|
// Poisoning defense (must match database.ts)
|
|
276
302
|
"ALTER TABLE memories ADD COLUMN quarantined INTEGER DEFAULT 0",
|
|
277
303
|
"ALTER TABLE memories ADD COLUMN quarantine_reason TEXT",
|
|
@@ -280,7 +306,9 @@ async function ensureShardSchema(client) {
|
|
|
280
306
|
"ALTER TABLE memories ADD COLUMN media_type TEXT",
|
|
281
307
|
"ALTER TABLE memories ADD COLUMN media_meta TEXT",
|
|
282
308
|
// Session scope (must match database.ts)
|
|
283
|
-
"ALTER TABLE memories ADD COLUMN session_scope TEXT"
|
|
309
|
+
"ALTER TABLE memories ADD COLUMN session_scope TEXT",
|
|
310
|
+
// Keywords for FTS5 dual-column search (must match database.ts)
|
|
311
|
+
"ALTER TABLE memories ADD COLUMN keywords TEXT DEFAULT ''"
|
|
284
312
|
]) {
|
|
285
313
|
try {
|
|
286
314
|
await client.execute(col);
|
|
@@ -367,13 +395,62 @@ async function ensureShardSchema(client) {
|
|
|
367
395
|
`);
|
|
368
396
|
for (const col of [
|
|
369
397
|
"ALTER TABLE relationships ADD COLUMN confidence REAL DEFAULT 1.0",
|
|
370
|
-
"ALTER TABLE relationships ADD COLUMN confidence_label TEXT DEFAULT 'extracted'"
|
|
398
|
+
"ALTER TABLE relationships ADD COLUMN confidence_label TEXT DEFAULT 'extracted'",
|
|
399
|
+
// Temporal validity (must match database.ts)
|
|
400
|
+
"ALTER TABLE relationships ADD COLUMN valid_from TEXT",
|
|
401
|
+
"ALTER TABLE relationships ADD COLUMN valid_until TEXT"
|
|
371
402
|
]) {
|
|
372
403
|
try {
|
|
373
404
|
await client.execute(col);
|
|
374
405
|
} catch {
|
|
375
406
|
}
|
|
376
407
|
}
|
|
408
|
+
try {
|
|
409
|
+
await client.execute("ALTER TABLE entities ADD COLUMN parent_type TEXT");
|
|
410
|
+
} catch {
|
|
411
|
+
}
|
|
412
|
+
for (const idx of [
|
|
413
|
+
"CREATE INDEX IF NOT EXISTS idx_memories_session ON memories(session_id)",
|
|
414
|
+
"CREATE INDEX IF NOT EXISTS idx_memories_project ON memories(project_name)",
|
|
415
|
+
"CREATE INDEX IF NOT EXISTS idx_memories_tool ON memories(tool_name)",
|
|
416
|
+
"CREATE INDEX IF NOT EXISTS idx_memories_content_hash ON memories(content_hash, agent_id)",
|
|
417
|
+
"CREATE INDEX IF NOT EXISTS idx_memories_quarantined ON memories(quarantined) WHERE quarantined = 1",
|
|
418
|
+
"CREATE INDEX IF NOT EXISTS idx_memories_draft ON memories(draft) WHERE draft = 1",
|
|
419
|
+
"CREATE INDEX IF NOT EXISTS idx_memories_type ON memories(memory_type)",
|
|
420
|
+
"CREATE INDEX IF NOT EXISTS idx_memories_agent_scope_project ON memories(agent_id, session_scope, project_name)",
|
|
421
|
+
// UNIQUE dedup index — prevents duplicate memories at DB level
|
|
422
|
+
"CREATE UNIQUE INDEX IF NOT EXISTS idx_memories_unique_scoped_hash ON memories(content_hash, agent_id, project_name, memory_type) WHERE content_hash IS NOT NULL AND COALESCE(status, 'active') != 'deleted'",
|
|
423
|
+
// Entity indexes
|
|
424
|
+
"CREATE INDEX IF NOT EXISTS idx_entities_type_name ON entities(type, name)",
|
|
425
|
+
// Relationship temporal indexes
|
|
426
|
+
"CREATE INDEX IF NOT EXISTS idx_relationships_valid_from ON relationships(valid_from)",
|
|
427
|
+
"CREATE INDEX IF NOT EXISTS idx_relationships_valid_until ON relationships(valid_until)"
|
|
428
|
+
]) {
|
|
429
|
+
try {
|
|
430
|
+
await client.execute(idx);
|
|
431
|
+
} catch {
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
await client.executeMultiple(`
|
|
435
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS entities_fts USING fts5(
|
|
436
|
+
name,
|
|
437
|
+
content='entities',
|
|
438
|
+
content_rowid='rowid'
|
|
439
|
+
);
|
|
440
|
+
|
|
441
|
+
CREATE TRIGGER IF NOT EXISTS entities_fts_ai AFTER INSERT ON entities BEGIN
|
|
442
|
+
INSERT INTO entities_fts(rowid, name) VALUES (new.rowid, new.name);
|
|
443
|
+
END;
|
|
444
|
+
|
|
445
|
+
CREATE TRIGGER IF NOT EXISTS entities_fts_ad AFTER DELETE ON entities BEGIN
|
|
446
|
+
INSERT INTO entities_fts(entities_fts, rowid, name) VALUES('delete', old.rowid, old.name);
|
|
447
|
+
END;
|
|
448
|
+
|
|
449
|
+
CREATE TRIGGER IF NOT EXISTS entities_fts_au AFTER UPDATE ON entities BEGIN
|
|
450
|
+
INSERT INTO entities_fts(entities_fts, rowid, name) VALUES('delete', old.rowid, old.name);
|
|
451
|
+
INSERT INTO entities_fts(rowid, name) VALUES (new.rowid, new.name);
|
|
452
|
+
END;
|
|
453
|
+
`);
|
|
377
454
|
}
|
|
378
455
|
async function getReadyShardClient(projectName) {
|
|
379
456
|
if (!_keyValidated) {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
vectorToBlob
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KMAYFYW7.js";
|
|
4
4
|
import {
|
|
5
5
|
extractKeywords,
|
|
6
6
|
keywordsToString
|
|
7
7
|
} from "./chunk-CHCA3ZM2.js";
|
|
8
8
|
import {
|
|
9
9
|
isCoordinatorName
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-YCEJCFU5.js";
|
|
11
11
|
|
|
12
12
|
// src/lib/consolidation.ts
|
|
13
13
|
import { randomUUID } from "crypto";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
deactivateBehavior
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BCTU72UR.js";
|
|
4
4
|
import {
|
|
5
5
|
getActiveAgent
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-Q3FTA4GX.js";
|
|
7
7
|
import {
|
|
8
8
|
canCoordinate,
|
|
9
9
|
getClient
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-YCEJCFU5.js";
|
|
11
11
|
|
|
12
12
|
// src/mcp/tools/deactivate-behavior.ts
|
|
13
13
|
import { z } from "zod";
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
listWorkflowDefinitions,
|
|
3
3
|
runWorkflow,
|
|
4
4
|
startWorkflow
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-3YP46SPZ.js";
|
|
6
6
|
import {
|
|
7
7
|
initCRMBridge
|
|
8
8
|
} from "./chunk-ONKIWA3R.js";
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
} from "./chunk-MP2AFCGL.js";
|
|
12
12
|
import {
|
|
13
13
|
getClient
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-YCEJCFU5.js";
|
|
15
15
|
|
|
16
16
|
// src/gateway/router.ts
|
|
17
17
|
function matchesPlatform(msgPlatform, matchPlatform) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
updateTask
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DDH7QVQN.js";
|
|
4
4
|
import {
|
|
5
5
|
TASK_ALREADY_CLAIMED_PREFIX
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-JUKSHMDE.js";
|
|
7
7
|
|
|
8
8
|
// src/mcp/tools/update-task.ts
|
|
9
9
|
import { z } from "zod";
|
|
@@ -23,7 +23,7 @@ function registerUpdateTask(server) {
|
|
|
23
23
|
const status = rawStatus;
|
|
24
24
|
let callerAgentId;
|
|
25
25
|
try {
|
|
26
|
-
const { getActiveAgent: getAgent } = await import("./active-agent-
|
|
26
|
+
const { getActiveAgent: getAgent } = await import("./active-agent-MTJPQ57G.js");
|
|
27
27
|
callerAgentId = getAgent().agentId;
|
|
28
28
|
} catch {
|
|
29
29
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
routeTask
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-B4K4EJH7.js";
|
|
4
4
|
import {
|
|
5
5
|
createTaskCore,
|
|
6
6
|
employeeSessionName,
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
isEmployeeAlive,
|
|
10
10
|
sessionScopeFilter,
|
|
11
11
|
updateTaskStatus
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-JUKSHMDE.js";
|
|
13
13
|
import {
|
|
14
14
|
DEFAULT_COORDINATOR_TEMPLATE_NAME,
|
|
15
15
|
getCoordinatorName
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-YCEJCFU5.js";
|
|
17
17
|
|
|
18
18
|
// src/runtime/orchestrator.ts
|
|
19
19
|
var STALE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YCEJCFU5.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/memory-graph-extractor.ts
|
|
6
6
|
function entityId(type, name) {
|
|
@@ -179,7 +179,7 @@ async function upsertMemoryGraph(result, memoryId) {
|
|
|
179
179
|
});
|
|
180
180
|
}
|
|
181
181
|
try {
|
|
182
|
-
const { createCoOccurrenceEdges } = await import("./co-occurrence-
|
|
182
|
+
const { createCoOccurrenceEdges } = await import("./co-occurrence-J5WOOCWD.js");
|
|
183
183
|
await createCoOccurrenceEdges(result.entities, memoryId);
|
|
184
184
|
} catch {
|
|
185
185
|
}
|
|
@@ -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-SSM56VHZ.js");
|
|
115
115
|
const client = getClient();
|
|
116
116
|
const scope = sessionScopeFilter();
|
|
117
117
|
const result = await client.execute({
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
2
|
recordSessionKill
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LT26OOIB.js";
|
|
4
4
|
import {
|
|
5
5
|
sessionScopeFilter,
|
|
6
6
|
verifyPaneAtCapacity,
|
|
7
7
|
writeNotification
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-JUKSHMDE.js";
|
|
9
9
|
import {
|
|
10
10
|
listSessions
|
|
11
11
|
} from "./chunk-64WZEXXA.js";
|
|
12
12
|
import {
|
|
13
13
|
getTransport
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-5YDHBZCO.js";
|
|
15
15
|
import {
|
|
16
16
|
getClient,
|
|
17
17
|
isCoordinatorName
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-YCEJCFU5.js";
|
|
19
19
|
|
|
20
20
|
// src/lib/capacity-monitor.ts
|
|
21
21
|
var CAPACITY_PATTERNS = [
|
|
@@ -589,7 +589,7 @@ function auditHookOwnership() {
|
|
|
589
589
|
}
|
|
590
590
|
async function auditShards() {
|
|
591
591
|
try {
|
|
592
|
-
const { auditShardHealth } = await import("./shard-manager-
|
|
592
|
+
const { auditShardHealth } = await import("./shard-manager-4PWRZW4V.js");
|
|
593
593
|
const report = await auditShardHealth();
|
|
594
594
|
return {
|
|
595
595
|
total: report.total,
|
|
@@ -849,7 +849,7 @@ function formatReport(report, flags) {
|
|
|
849
849
|
return lines.join("\n");
|
|
850
850
|
}
|
|
851
851
|
async function fixNullVectors() {
|
|
852
|
-
const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-
|
|
852
|
+
const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-BFVWIKDF.js");
|
|
853
853
|
if (!tryAcquireWorkerSlot()) {
|
|
854
854
|
process.stderr.write("[exe-doctor] Worker gate full \u2014 waiting for existing backfill workers to finish\n");
|
|
855
855
|
await new Promise((r) => setTimeout(r, 5e3));
|
|
@@ -933,7 +933,7 @@ async function fixBloated(client, bloated, dryRun) {
|
|
|
933
933
|
return chunksCreated;
|
|
934
934
|
}
|
|
935
935
|
async function fixShards(dryRun) {
|
|
936
|
-
const { auditShardHealth } = await import("./shard-manager-
|
|
936
|
+
const { auditShardHealth } = await import("./shard-manager-4PWRZW4V.js");
|
|
937
937
|
const report = await auditShardHealth({ repair: true, dryRun });
|
|
938
938
|
return {
|
|
939
939
|
total: report.total,
|
|
@@ -970,7 +970,7 @@ function splitAtSentences(text, maxChunkSize) {
|
|
|
970
970
|
}
|
|
971
971
|
async function main(argv = process.argv.slice(2)) {
|
|
972
972
|
const flags = parseFlags(argv);
|
|
973
|
-
const { fastDbInit } = await import("./fast-db-init-
|
|
973
|
+
const { fastDbInit } = await import("./fast-db-init-BCU67WEQ.js");
|
|
974
974
|
const client = await fastDbInit();
|
|
975
975
|
const report = await runAudit(client, flags);
|
|
976
976
|
console.log(formatReport(report, flags));
|
|
@@ -13,10 +13,10 @@ import {
|
|
|
13
13
|
} from "./chunk-LYH5HE24.js";
|
|
14
14
|
|
|
15
15
|
// src/lib/database.ts
|
|
16
|
-
import { chmodSync, existsSync as existsSync3, statSync, copyFileSync, unlinkSync as unlinkSync2, openSync, closeSync, mkdirSync as mkdirSync2, renameSync as renameSync2 } from "fs";
|
|
16
|
+
import { chmodSync, existsSync as existsSync3, statSync, copyFileSync, unlinkSync as unlinkSync2, openSync, closeSync, mkdirSync as mkdirSync2, renameSync as renameSync2, readdirSync as readdirSync2 } from "fs";
|
|
17
17
|
import { createClient } from "@libsql/client";
|
|
18
18
|
import { homedir } from "os";
|
|
19
|
-
import { join } from "path";
|
|
19
|
+
import { join, dirname, basename } from "path";
|
|
20
20
|
|
|
21
21
|
// src/lib/db-retry.ts
|
|
22
22
|
var MAX_RETRIES = 5;
|
|
@@ -1307,6 +1307,26 @@ async function initDatabase(config) {
|
|
|
1307
1307
|
_adapterClient = _resilientClient;
|
|
1308
1308
|
}
|
|
1309
1309
|
}
|
|
1310
|
+
try {
|
|
1311
|
+
const dbDir = dirname(config.dbPath);
|
|
1312
|
+
const dbBase = basename(config.dbPath);
|
|
1313
|
+
const maxAge = 7 * 24 * 60 * 60 * 1e3;
|
|
1314
|
+
const now = Date.now();
|
|
1315
|
+
for (const f of readdirSync2(dbDir)) {
|
|
1316
|
+
if (!f.startsWith(dbBase + ".corrupt-") && !f.startsWith(dbBase + ".zeroed-")) continue;
|
|
1317
|
+
const filePath = join(dbDir, f);
|
|
1318
|
+
try {
|
|
1319
|
+
const st = statSync(filePath);
|
|
1320
|
+
if (now - st.mtimeMs > maxAge) {
|
|
1321
|
+
unlinkSync2(filePath);
|
|
1322
|
+
process.stderr.write(`[database] Cleaned up old corrupt backup: ${f} (${Math.round(st.size / 1024 / 1024)}MB)
|
|
1323
|
+
`);
|
|
1324
|
+
}
|
|
1325
|
+
} catch {
|
|
1326
|
+
}
|
|
1327
|
+
}
|
|
1328
|
+
} catch {
|
|
1329
|
+
}
|
|
1310
1330
|
if (_walCheckpointTimer) clearInterval(_walCheckpointTimer);
|
|
1311
1331
|
_walCheckpointTimer = setInterval(() => {
|
|
1312
1332
|
_client?.execute("PRAGMA wal_checkpoint(PASSIVE)").catch(() => {
|