@askexenow/exe-os 0.9.33 → 0.9.34
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/bin/backfill-conversations.js +18 -2
- package/dist/bin/backfill-responses.js +18 -2
- package/dist/bin/backfill-vectors.js +18 -2
- package/dist/bin/cleanup-stale-review-tasks.js +18 -2
- package/dist/bin/cli.js +43 -11
- package/dist/bin/exe-assign.js +18 -2
- package/dist/bin/exe-boot.js +32 -10
- package/dist/bin/exe-cloud.js +3 -3
- package/dist/bin/exe-dispatch.js +21 -4
- package/dist/bin/exe-doctor.js +21 -7
- package/dist/bin/exe-export-behaviors.js +18 -2
- package/dist/bin/exe-forget.js +27 -8
- package/dist/bin/exe-gateway.js +21 -4
- package/dist/bin/exe-heartbeat.js +18 -2
- package/dist/bin/exe-kill.js +18 -2
- package/dist/bin/exe-launch-agent.js +34 -2
- package/dist/bin/exe-link.js +20 -5
- package/dist/bin/exe-pending-messages.js +18 -2
- package/dist/bin/exe-pending-notifications.js +18 -2
- package/dist/bin/exe-pending-reviews.js +18 -2
- package/dist/bin/exe-rename.js +18 -2
- package/dist/bin/exe-review.js +18 -2
- package/dist/bin/exe-search.js +18 -2
- package/dist/bin/exe-session-cleanup.js +21 -4
- package/dist/bin/exe-settings.js +1 -1
- package/dist/bin/exe-start-codex.js +34 -2
- package/dist/bin/exe-start-opencode.js +34 -2
- package/dist/bin/exe-status.js +18 -2
- package/dist/bin/exe-team.js +18 -2
- package/dist/bin/git-sweep.js +21 -4
- package/dist/bin/graph-backfill.js +18 -2
- package/dist/bin/graph-export.js +18 -2
- package/dist/bin/intercom-check.js +21 -4
- package/dist/bin/scan-tasks.js +21 -4
- package/dist/bin/setup.js +24 -9
- package/dist/bin/shard-migrate.js +18 -2
- package/dist/gateway/index.js +21 -4
- package/dist/hooks/bug-report-worker.js +21 -4
- package/dist/hooks/codex-stop-task-finalizer.js +21 -4
- package/dist/hooks/commit-complete.js +21 -4
- package/dist/hooks/error-recall.js +27 -2
- package/dist/hooks/exe-heartbeat-hook.js +9 -0
- package/dist/hooks/ingest.js +27 -2
- package/dist/hooks/instructions-loaded.js +27 -2
- package/dist/hooks/notification.js +27 -2
- package/dist/hooks/post-compact.js +30 -3
- package/dist/hooks/post-tool-combined.js +34 -2
- package/dist/hooks/pre-compact.js +33 -5
- package/dist/hooks/pre-tool-use.js +30 -3
- package/dist/hooks/prompt-submit.js +33 -5
- package/dist/hooks/session-end.js +33 -5
- package/dist/hooks/session-start.js +34 -2
- package/dist/hooks/stop.js +30 -3
- package/dist/hooks/subagent-stop.js +30 -3
- package/dist/hooks/summary-worker.js +22 -7
- package/dist/index.js +21 -4
- package/dist/lib/cloud-sync.js +20 -5
- package/dist/lib/database.js +17 -1
- package/dist/lib/db.js +17 -1
- package/dist/lib/device-registry.js +18 -2
- package/dist/lib/exe-daemon.js +20243 -6717
- package/dist/lib/hybrid-search.js +18 -2
- package/dist/lib/schedules.js +18 -2
- package/dist/lib/store.js +18 -2
- package/dist/lib/tasks.js +3 -2
- package/dist/lib/tmux-routing.js +3 -2
- package/dist/mcp/server.js +189 -153
- package/dist/mcp/tools/create-task.js +15 -3
- package/dist/mcp/tools/deactivate-behavior.js +9 -0
- package/dist/mcp/tools/list-tasks.js +12 -1
- package/dist/mcp/tools/send-message.js +12 -1
- package/dist/mcp/tools/update-task.js +19 -2
- package/dist/runtime/index.js +21 -4
- package/dist/tui/App.js +21 -4
- package/package.json +1 -1
|
@@ -1586,6 +1586,7 @@ var init_db_daemon_client = __esm({
|
|
|
1586
1586
|
// src/lib/database.ts
|
|
1587
1587
|
var database_exports = {};
|
|
1588
1588
|
__export(database_exports, {
|
|
1589
|
+
SOFT_DELETE_RETENTION_DAYS: () => SOFT_DELETE_RETENTION_DAYS,
|
|
1589
1590
|
disposeDatabase: () => disposeDatabase,
|
|
1590
1591
|
disposeTurso: () => disposeTurso,
|
|
1591
1592
|
ensureSchema: () => ensureSchema,
|
|
@@ -1742,10 +1743,17 @@ async function ensureSchema() {
|
|
|
1742
1743
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1743
1744
|
END;
|
|
1744
1745
|
|
|
1745
|
-
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1746
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1747
|
+
WHEN new.status IS NULL OR new.status != 'deleted' BEGIN
|
|
1746
1748
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1747
1749
|
INSERT INTO memories_fts(rowid, raw_text) VALUES (new.rowid, new.raw_text);
|
|
1748
1750
|
END;
|
|
1751
|
+
|
|
1752
|
+
-- Soft-delete trigger: remove from FTS when status changes to 'deleted'
|
|
1753
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_soft_delete AFTER UPDATE ON memories
|
|
1754
|
+
WHEN new.status = 'deleted' AND (old.status IS NULL OR old.status != 'deleted') BEGIN
|
|
1755
|
+
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1756
|
+
END;
|
|
1749
1757
|
`);
|
|
1750
1758
|
await client.executeMultiple(`
|
|
1751
1759
|
CREATE TABLE IF NOT EXISTS sync_meta (
|
|
@@ -2148,6 +2156,13 @@ async function ensureSchema() {
|
|
|
2148
2156
|
});
|
|
2149
2157
|
} catch {
|
|
2150
2158
|
}
|
|
2159
|
+
try {
|
|
2160
|
+
await client.execute({
|
|
2161
|
+
sql: `ALTER TABLE memories ADD COLUMN deleted_at TEXT`,
|
|
2162
|
+
args: []
|
|
2163
|
+
});
|
|
2164
|
+
} catch {
|
|
2165
|
+
}
|
|
2151
2166
|
try {
|
|
2152
2167
|
await client.execute({
|
|
2153
2168
|
sql: `ALTER TABLE memories ADD COLUMN confidence REAL DEFAULT 0.7`,
|
|
@@ -2684,7 +2699,7 @@ async function disposeDatabase() {
|
|
|
2684
2699
|
_resilientClient = null;
|
|
2685
2700
|
}
|
|
2686
2701
|
}
|
|
2687
|
-
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, disposeTurso;
|
|
2702
|
+
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, SOFT_DELETE_RETENTION_DAYS, disposeTurso;
|
|
2688
2703
|
var init_database = __esm({
|
|
2689
2704
|
"src/lib/database.ts"() {
|
|
2690
2705
|
"use strict";
|
|
@@ -2698,6 +2713,7 @@ var init_database = __esm({
|
|
|
2698
2713
|
_daemonClient = null;
|
|
2699
2714
|
_adapterClient = null;
|
|
2700
2715
|
initTurso = initDatabase;
|
|
2716
|
+
SOFT_DELETE_RETENTION_DAYS = 7;
|
|
2701
2717
|
disposeTurso = disposeDatabase;
|
|
2702
2718
|
}
|
|
2703
2719
|
});
|
|
@@ -1586,6 +1586,7 @@ var init_db_daemon_client = __esm({
|
|
|
1586
1586
|
// src/lib/database.ts
|
|
1587
1587
|
var database_exports = {};
|
|
1588
1588
|
__export(database_exports, {
|
|
1589
|
+
SOFT_DELETE_RETENTION_DAYS: () => SOFT_DELETE_RETENTION_DAYS,
|
|
1589
1590
|
disposeDatabase: () => disposeDatabase,
|
|
1590
1591
|
disposeTurso: () => disposeTurso,
|
|
1591
1592
|
ensureSchema: () => ensureSchema,
|
|
@@ -1742,10 +1743,17 @@ async function ensureSchema() {
|
|
|
1742
1743
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1743
1744
|
END;
|
|
1744
1745
|
|
|
1745
|
-
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1746
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1747
|
+
WHEN new.status IS NULL OR new.status != 'deleted' BEGIN
|
|
1746
1748
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1747
1749
|
INSERT INTO memories_fts(rowid, raw_text) VALUES (new.rowid, new.raw_text);
|
|
1748
1750
|
END;
|
|
1751
|
+
|
|
1752
|
+
-- Soft-delete trigger: remove from FTS when status changes to 'deleted'
|
|
1753
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_soft_delete AFTER UPDATE ON memories
|
|
1754
|
+
WHEN new.status = 'deleted' AND (old.status IS NULL OR old.status != 'deleted') BEGIN
|
|
1755
|
+
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1756
|
+
END;
|
|
1749
1757
|
`);
|
|
1750
1758
|
await client.executeMultiple(`
|
|
1751
1759
|
CREATE TABLE IF NOT EXISTS sync_meta (
|
|
@@ -2148,6 +2156,13 @@ async function ensureSchema() {
|
|
|
2148
2156
|
});
|
|
2149
2157
|
} catch {
|
|
2150
2158
|
}
|
|
2159
|
+
try {
|
|
2160
|
+
await client.execute({
|
|
2161
|
+
sql: `ALTER TABLE memories ADD COLUMN deleted_at TEXT`,
|
|
2162
|
+
args: []
|
|
2163
|
+
});
|
|
2164
|
+
} catch {
|
|
2165
|
+
}
|
|
2151
2166
|
try {
|
|
2152
2167
|
await client.execute({
|
|
2153
2168
|
sql: `ALTER TABLE memories ADD COLUMN confidence REAL DEFAULT 0.7`,
|
|
@@ -2684,7 +2699,7 @@ async function disposeDatabase() {
|
|
|
2684
2699
|
_resilientClient = null;
|
|
2685
2700
|
}
|
|
2686
2701
|
}
|
|
2687
|
-
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, disposeTurso;
|
|
2702
|
+
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, SOFT_DELETE_RETENTION_DAYS, disposeTurso;
|
|
2688
2703
|
var init_database = __esm({
|
|
2689
2704
|
"src/lib/database.ts"() {
|
|
2690
2705
|
"use strict";
|
|
@@ -2698,6 +2713,7 @@ var init_database = __esm({
|
|
|
2698
2713
|
_daemonClient = null;
|
|
2699
2714
|
_adapterClient = null;
|
|
2700
2715
|
initTurso = initDatabase;
|
|
2716
|
+
SOFT_DELETE_RETENTION_DAYS = 7;
|
|
2701
2717
|
disposeTurso = disposeDatabase;
|
|
2702
2718
|
}
|
|
2703
2719
|
});
|
|
@@ -1582,6 +1582,7 @@ var init_db_daemon_client = __esm({
|
|
|
1582
1582
|
// src/lib/database.ts
|
|
1583
1583
|
var database_exports = {};
|
|
1584
1584
|
__export(database_exports, {
|
|
1585
|
+
SOFT_DELETE_RETENTION_DAYS: () => SOFT_DELETE_RETENTION_DAYS,
|
|
1585
1586
|
disposeDatabase: () => disposeDatabase,
|
|
1586
1587
|
disposeTurso: () => disposeTurso,
|
|
1587
1588
|
ensureSchema: () => ensureSchema,
|
|
@@ -1738,10 +1739,17 @@ async function ensureSchema() {
|
|
|
1738
1739
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1739
1740
|
END;
|
|
1740
1741
|
|
|
1741
|
-
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1742
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1743
|
+
WHEN new.status IS NULL OR new.status != 'deleted' BEGIN
|
|
1742
1744
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1743
1745
|
INSERT INTO memories_fts(rowid, raw_text) VALUES (new.rowid, new.raw_text);
|
|
1744
1746
|
END;
|
|
1747
|
+
|
|
1748
|
+
-- Soft-delete trigger: remove from FTS when status changes to 'deleted'
|
|
1749
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_soft_delete AFTER UPDATE ON memories
|
|
1750
|
+
WHEN new.status = 'deleted' AND (old.status IS NULL OR old.status != 'deleted') BEGIN
|
|
1751
|
+
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1752
|
+
END;
|
|
1745
1753
|
`);
|
|
1746
1754
|
await client.executeMultiple(`
|
|
1747
1755
|
CREATE TABLE IF NOT EXISTS sync_meta (
|
|
@@ -2144,6 +2152,13 @@ async function ensureSchema() {
|
|
|
2144
2152
|
});
|
|
2145
2153
|
} catch {
|
|
2146
2154
|
}
|
|
2155
|
+
try {
|
|
2156
|
+
await client.execute({
|
|
2157
|
+
sql: `ALTER TABLE memories ADD COLUMN deleted_at TEXT`,
|
|
2158
|
+
args: []
|
|
2159
|
+
});
|
|
2160
|
+
} catch {
|
|
2161
|
+
}
|
|
2147
2162
|
try {
|
|
2148
2163
|
await client.execute({
|
|
2149
2164
|
sql: `ALTER TABLE memories ADD COLUMN confidence REAL DEFAULT 0.7`,
|
|
@@ -2680,7 +2695,7 @@ async function disposeDatabase() {
|
|
|
2680
2695
|
_resilientClient = null;
|
|
2681
2696
|
}
|
|
2682
2697
|
}
|
|
2683
|
-
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, disposeTurso;
|
|
2698
|
+
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, SOFT_DELETE_RETENTION_DAYS, disposeTurso;
|
|
2684
2699
|
var init_database = __esm({
|
|
2685
2700
|
"src/lib/database.ts"() {
|
|
2686
2701
|
"use strict";
|
|
@@ -2694,6 +2709,7 @@ var init_database = __esm({
|
|
|
2694
2709
|
_daemonClient = null;
|
|
2695
2710
|
_adapterClient = null;
|
|
2696
2711
|
initTurso = initDatabase;
|
|
2712
|
+
SOFT_DELETE_RETENTION_DAYS = 7;
|
|
2697
2713
|
disposeTurso = disposeDatabase;
|
|
2698
2714
|
}
|
|
2699
2715
|
});
|
|
@@ -1672,6 +1672,7 @@ var init_db_daemon_client = __esm({
|
|
|
1672
1672
|
// src/lib/database.ts
|
|
1673
1673
|
var database_exports = {};
|
|
1674
1674
|
__export(database_exports, {
|
|
1675
|
+
SOFT_DELETE_RETENTION_DAYS: () => SOFT_DELETE_RETENTION_DAYS,
|
|
1675
1676
|
disposeDatabase: () => disposeDatabase,
|
|
1676
1677
|
disposeTurso: () => disposeTurso,
|
|
1677
1678
|
ensureSchema: () => ensureSchema,
|
|
@@ -1828,10 +1829,17 @@ async function ensureSchema() {
|
|
|
1828
1829
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1829
1830
|
END;
|
|
1830
1831
|
|
|
1831
|
-
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1832
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1833
|
+
WHEN new.status IS NULL OR new.status != 'deleted' BEGIN
|
|
1832
1834
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1833
1835
|
INSERT INTO memories_fts(rowid, raw_text) VALUES (new.rowid, new.raw_text);
|
|
1834
1836
|
END;
|
|
1837
|
+
|
|
1838
|
+
-- Soft-delete trigger: remove from FTS when status changes to 'deleted'
|
|
1839
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_soft_delete AFTER UPDATE ON memories
|
|
1840
|
+
WHEN new.status = 'deleted' AND (old.status IS NULL OR old.status != 'deleted') BEGIN
|
|
1841
|
+
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1842
|
+
END;
|
|
1835
1843
|
`);
|
|
1836
1844
|
await client.executeMultiple(`
|
|
1837
1845
|
CREATE TABLE IF NOT EXISTS sync_meta (
|
|
@@ -2234,6 +2242,13 @@ async function ensureSchema() {
|
|
|
2234
2242
|
});
|
|
2235
2243
|
} catch {
|
|
2236
2244
|
}
|
|
2245
|
+
try {
|
|
2246
|
+
await client.execute({
|
|
2247
|
+
sql: `ALTER TABLE memories ADD COLUMN deleted_at TEXT`,
|
|
2248
|
+
args: []
|
|
2249
|
+
});
|
|
2250
|
+
} catch {
|
|
2251
|
+
}
|
|
2237
2252
|
try {
|
|
2238
2253
|
await client.execute({
|
|
2239
2254
|
sql: `ALTER TABLE memories ADD COLUMN confidence REAL DEFAULT 0.7`,
|
|
@@ -2770,7 +2785,7 @@ async function disposeDatabase() {
|
|
|
2770
2785
|
_resilientClient = null;
|
|
2771
2786
|
}
|
|
2772
2787
|
}
|
|
2773
|
-
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, disposeTurso;
|
|
2788
|
+
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, SOFT_DELETE_RETENTION_DAYS, disposeTurso;
|
|
2774
2789
|
var init_database = __esm({
|
|
2775
2790
|
"src/lib/database.ts"() {
|
|
2776
2791
|
"use strict";
|
|
@@ -2784,6 +2799,7 @@ var init_database = __esm({
|
|
|
2784
2799
|
_daemonClient = null;
|
|
2785
2800
|
_adapterClient = null;
|
|
2786
2801
|
initTurso = initDatabase;
|
|
2802
|
+
SOFT_DELETE_RETENTION_DAYS = 7;
|
|
2787
2803
|
disposeTurso = disposeDatabase;
|
|
2788
2804
|
}
|
|
2789
2805
|
});
|
package/dist/bin/cli.js
CHANGED
|
@@ -3293,6 +3293,7 @@ var init_db_daemon_client = __esm({
|
|
|
3293
3293
|
// src/lib/database.ts
|
|
3294
3294
|
var database_exports = {};
|
|
3295
3295
|
__export(database_exports, {
|
|
3296
|
+
SOFT_DELETE_RETENTION_DAYS: () => SOFT_DELETE_RETENTION_DAYS,
|
|
3296
3297
|
disposeDatabase: () => disposeDatabase,
|
|
3297
3298
|
disposeTurso: () => disposeTurso,
|
|
3298
3299
|
ensureSchema: () => ensureSchema,
|
|
@@ -3449,10 +3450,17 @@ async function ensureSchema() {
|
|
|
3449
3450
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
3450
3451
|
END;
|
|
3451
3452
|
|
|
3452
|
-
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
3453
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
3454
|
+
WHEN new.status IS NULL OR new.status != 'deleted' BEGIN
|
|
3453
3455
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
3454
3456
|
INSERT INTO memories_fts(rowid, raw_text) VALUES (new.rowid, new.raw_text);
|
|
3455
3457
|
END;
|
|
3458
|
+
|
|
3459
|
+
-- Soft-delete trigger: remove from FTS when status changes to 'deleted'
|
|
3460
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_soft_delete AFTER UPDATE ON memories
|
|
3461
|
+
WHEN new.status = 'deleted' AND (old.status IS NULL OR old.status != 'deleted') BEGIN
|
|
3462
|
+
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
3463
|
+
END;
|
|
3456
3464
|
`);
|
|
3457
3465
|
await client.executeMultiple(`
|
|
3458
3466
|
CREATE TABLE IF NOT EXISTS sync_meta (
|
|
@@ -3855,6 +3863,13 @@ async function ensureSchema() {
|
|
|
3855
3863
|
});
|
|
3856
3864
|
} catch {
|
|
3857
3865
|
}
|
|
3866
|
+
try {
|
|
3867
|
+
await client.execute({
|
|
3868
|
+
sql: `ALTER TABLE memories ADD COLUMN deleted_at TEXT`,
|
|
3869
|
+
args: []
|
|
3870
|
+
});
|
|
3871
|
+
} catch {
|
|
3872
|
+
}
|
|
3858
3873
|
try {
|
|
3859
3874
|
await client.execute({
|
|
3860
3875
|
sql: `ALTER TABLE memories ADD COLUMN confidence REAL DEFAULT 0.7`,
|
|
@@ -4391,7 +4406,7 @@ async function disposeDatabase() {
|
|
|
4391
4406
|
_resilientClient = null;
|
|
4392
4407
|
}
|
|
4393
4408
|
}
|
|
4394
|
-
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, disposeTurso;
|
|
4409
|
+
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, SOFT_DELETE_RETENTION_DAYS, disposeTurso;
|
|
4395
4410
|
var init_database = __esm({
|
|
4396
4411
|
"src/lib/database.ts"() {
|
|
4397
4412
|
"use strict";
|
|
@@ -4405,6 +4420,7 @@ var init_database = __esm({
|
|
|
4405
4420
|
_daemonClient = null;
|
|
4406
4421
|
_adapterClient = null;
|
|
4407
4422
|
initTurso = initDatabase;
|
|
4423
|
+
SOFT_DELETE_RETENTION_DAYS = 7;
|
|
4408
4424
|
disposeTurso = disposeDatabase;
|
|
4409
4425
|
}
|
|
4410
4426
|
});
|
|
@@ -4749,8 +4765,8 @@ async function validateLicense(apiKey, deviceId) {
|
|
|
4749
4765
|
}
|
|
4750
4766
|
function getCacheAgeMs() {
|
|
4751
4767
|
try {
|
|
4752
|
-
const { statSync:
|
|
4753
|
-
const s =
|
|
4768
|
+
const { statSync: statSync4 } = __require("fs");
|
|
4769
|
+
const s = statSync4(CACHE_PATH);
|
|
4754
4770
|
return Date.now() - s.mtimeMs;
|
|
4755
4771
|
} catch {
|
|
4756
4772
|
return Infinity;
|
|
@@ -5312,7 +5328,7 @@ __export(cloud_sync_exports, {
|
|
|
5312
5328
|
pushToPostgres: () => pushToPostgres,
|
|
5313
5329
|
recordRosterDeletion: () => recordRosterDeletion
|
|
5314
5330
|
});
|
|
5315
|
-
import { readFileSync as readFileSync10, writeFileSync as writeFileSync8, existsSync as existsSync14, readdirSync as readdirSync2, mkdirSync as mkdirSync7, appendFileSync, unlinkSync as unlinkSync5, openSync as openSync2, closeSync as closeSync2 } from "fs";
|
|
5331
|
+
import { readFileSync as readFileSync10, writeFileSync as writeFileSync8, existsSync as existsSync14, readdirSync as readdirSync2, mkdirSync as mkdirSync7, appendFileSync, unlinkSync as unlinkSync5, openSync as openSync2, closeSync as closeSync2, statSync as statSync3 } from "fs";
|
|
5316
5332
|
import crypto4 from "crypto";
|
|
5317
5333
|
import path14 from "path";
|
|
5318
5334
|
import { homedir as homedir2 } from "os";
|
|
@@ -5802,10 +5818,9 @@ async function cloudSync(config) {
|
|
|
5802
5818
|
const totalMemories = await countRows("SELECT COUNT(*) as cnt FROM memories WHERE status = 'active' OR status IS NULL");
|
|
5803
5819
|
try {
|
|
5804
5820
|
const { getLatestBackup: getLatestBackup2 } = await Promise.resolve().then(() => (init_db_backup(), db_backup_exports));
|
|
5805
|
-
const { statSync: statFile } = await import("fs");
|
|
5806
5821
|
const latestBackup = getLatestBackup2();
|
|
5807
5822
|
if (latestBackup) {
|
|
5808
|
-
const backupSize =
|
|
5823
|
+
const backupSize = statSync3(latestBackup).size;
|
|
5809
5824
|
const MAX_CLOUD_BACKUP_BYTES = 50 * 1024 * 1024;
|
|
5810
5825
|
if (backupSize <= MAX_CLOUD_BACKUP_BYTES) {
|
|
5811
5826
|
const backupData = readFileSync10(latestBackup);
|
|
@@ -11850,9 +11865,10 @@ async function updateTask(input) {
|
|
|
11850
11865
|
args: [assignedAgent]
|
|
11851
11866
|
});
|
|
11852
11867
|
} else if (input.status === "cancelled") {
|
|
11868
|
+
const now2 = (/* @__PURE__ */ new Date()).toISOString();
|
|
11853
11869
|
await draftClient.execute({
|
|
11854
|
-
sql: `
|
|
11855
|
-
args: [assignedAgent]
|
|
11870
|
+
sql: `UPDATE memories SET status = 'deleted', deleted_at = ? WHERE agent_id = ? AND draft = 1`,
|
|
11871
|
+
args: [now2, assignedAgent]
|
|
11856
11872
|
});
|
|
11857
11873
|
}
|
|
11858
11874
|
} catch {
|
|
@@ -13341,6 +13357,19 @@ var init_messaging = __esm({
|
|
|
13341
13357
|
}
|
|
13342
13358
|
});
|
|
13343
13359
|
|
|
13360
|
+
// src/mcp/agent-context.ts
|
|
13361
|
+
import { AsyncLocalStorage } from "async_hooks";
|
|
13362
|
+
function getAgentContext() {
|
|
13363
|
+
return agentStore.getStore();
|
|
13364
|
+
}
|
|
13365
|
+
var agentStore;
|
|
13366
|
+
var init_agent_context = __esm({
|
|
13367
|
+
"src/mcp/agent-context.ts"() {
|
|
13368
|
+
"use strict";
|
|
13369
|
+
agentStore = new AsyncLocalStorage();
|
|
13370
|
+
}
|
|
13371
|
+
});
|
|
13372
|
+
|
|
13344
13373
|
// src/lib/active-agent.ts
|
|
13345
13374
|
var active_agent_exports = {};
|
|
13346
13375
|
__export(active_agent_exports, {
|
|
@@ -13416,6 +13445,8 @@ function clearActiveAgent() {
|
|
|
13416
13445
|
}
|
|
13417
13446
|
}
|
|
13418
13447
|
function getActiveAgent() {
|
|
13448
|
+
const httpCtx = getAgentContext();
|
|
13449
|
+
if (httpCtx) return httpCtx;
|
|
13419
13450
|
try {
|
|
13420
13451
|
const markerPath = getMarkerPath();
|
|
13421
13452
|
const raw = readFileSync20(markerPath, "utf8");
|
|
@@ -13510,6 +13541,7 @@ var init_active_agent = __esm({
|
|
|
13510
13541
|
"use strict";
|
|
13511
13542
|
init_config();
|
|
13512
13543
|
init_session_key();
|
|
13544
|
+
init_agent_context();
|
|
13513
13545
|
init_employees();
|
|
13514
13546
|
CACHE_DIR = path30.join(EXE_AI_DIR, "session-cache");
|
|
13515
13547
|
STALE_MS = 24 * 60 * 60 * 1e3;
|
|
@@ -15196,8 +15228,8 @@ async function validateModel(log) {
|
|
|
15196
15228
|
log("Skipping in-memory model validation (low memory \u2014 will validate on first use).");
|
|
15197
15229
|
const modelPath = path34.join(MODELS_DIR, LOCAL_FILENAME);
|
|
15198
15230
|
if (existsSync28(modelPath)) {
|
|
15199
|
-
const { statSync:
|
|
15200
|
-
const size =
|
|
15231
|
+
const { statSync: statSync4 } = await import("fs");
|
|
15232
|
+
const size = statSync4(modelPath).size;
|
|
15201
15233
|
if (size > 300 * 1e6) {
|
|
15202
15234
|
log(`Model file verified (${(size / 1e6).toFixed(0)} MB).`);
|
|
15203
15235
|
return;
|
package/dist/bin/exe-assign.js
CHANGED
|
@@ -1596,6 +1596,7 @@ var init_db_daemon_client = __esm({
|
|
|
1596
1596
|
// src/lib/database.ts
|
|
1597
1597
|
var database_exports = {};
|
|
1598
1598
|
__export(database_exports, {
|
|
1599
|
+
SOFT_DELETE_RETENTION_DAYS: () => SOFT_DELETE_RETENTION_DAYS,
|
|
1599
1600
|
disposeDatabase: () => disposeDatabase,
|
|
1600
1601
|
disposeTurso: () => disposeTurso,
|
|
1601
1602
|
ensureSchema: () => ensureSchema,
|
|
@@ -1752,10 +1753,17 @@ async function ensureSchema() {
|
|
|
1752
1753
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1753
1754
|
END;
|
|
1754
1755
|
|
|
1755
|
-
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1756
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1757
|
+
WHEN new.status IS NULL OR new.status != 'deleted' BEGIN
|
|
1756
1758
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1757
1759
|
INSERT INTO memories_fts(rowid, raw_text) VALUES (new.rowid, new.raw_text);
|
|
1758
1760
|
END;
|
|
1761
|
+
|
|
1762
|
+
-- Soft-delete trigger: remove from FTS when status changes to 'deleted'
|
|
1763
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_soft_delete AFTER UPDATE ON memories
|
|
1764
|
+
WHEN new.status = 'deleted' AND (old.status IS NULL OR old.status != 'deleted') BEGIN
|
|
1765
|
+
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1766
|
+
END;
|
|
1759
1767
|
`);
|
|
1760
1768
|
await client.executeMultiple(`
|
|
1761
1769
|
CREATE TABLE IF NOT EXISTS sync_meta (
|
|
@@ -2158,6 +2166,13 @@ async function ensureSchema() {
|
|
|
2158
2166
|
});
|
|
2159
2167
|
} catch {
|
|
2160
2168
|
}
|
|
2169
|
+
try {
|
|
2170
|
+
await client.execute({
|
|
2171
|
+
sql: `ALTER TABLE memories ADD COLUMN deleted_at TEXT`,
|
|
2172
|
+
args: []
|
|
2173
|
+
});
|
|
2174
|
+
} catch {
|
|
2175
|
+
}
|
|
2161
2176
|
try {
|
|
2162
2177
|
await client.execute({
|
|
2163
2178
|
sql: `ALTER TABLE memories ADD COLUMN confidence REAL DEFAULT 0.7`,
|
|
@@ -2694,7 +2709,7 @@ async function disposeDatabase() {
|
|
|
2694
2709
|
_resilientClient = null;
|
|
2695
2710
|
}
|
|
2696
2711
|
}
|
|
2697
|
-
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, disposeTurso;
|
|
2712
|
+
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, SOFT_DELETE_RETENTION_DAYS, disposeTurso;
|
|
2698
2713
|
var init_database = __esm({
|
|
2699
2714
|
"src/lib/database.ts"() {
|
|
2700
2715
|
"use strict";
|
|
@@ -2708,6 +2723,7 @@ var init_database = __esm({
|
|
|
2708
2723
|
_daemonClient = null;
|
|
2709
2724
|
_adapterClient = null;
|
|
2710
2725
|
initTurso = initDatabase;
|
|
2726
|
+
SOFT_DELETE_RETENTION_DAYS = 7;
|
|
2711
2727
|
disposeTurso = disposeDatabase;
|
|
2712
2728
|
}
|
|
2713
2729
|
});
|
package/dist/bin/exe-boot.js
CHANGED
|
@@ -1738,6 +1738,7 @@ var init_db_daemon_client = __esm({
|
|
|
1738
1738
|
// src/lib/database.ts
|
|
1739
1739
|
var database_exports = {};
|
|
1740
1740
|
__export(database_exports, {
|
|
1741
|
+
SOFT_DELETE_RETENTION_DAYS: () => SOFT_DELETE_RETENTION_DAYS,
|
|
1741
1742
|
disposeDatabase: () => disposeDatabase,
|
|
1742
1743
|
disposeTurso: () => disposeTurso,
|
|
1743
1744
|
ensureSchema: () => ensureSchema,
|
|
@@ -1894,10 +1895,17 @@ async function ensureSchema() {
|
|
|
1894
1895
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1895
1896
|
END;
|
|
1896
1897
|
|
|
1897
|
-
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1898
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1899
|
+
WHEN new.status IS NULL OR new.status != 'deleted' BEGIN
|
|
1898
1900
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1899
1901
|
INSERT INTO memories_fts(rowid, raw_text) VALUES (new.rowid, new.raw_text);
|
|
1900
1902
|
END;
|
|
1903
|
+
|
|
1904
|
+
-- Soft-delete trigger: remove from FTS when status changes to 'deleted'
|
|
1905
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_soft_delete AFTER UPDATE ON memories
|
|
1906
|
+
WHEN new.status = 'deleted' AND (old.status IS NULL OR old.status != 'deleted') BEGIN
|
|
1907
|
+
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1908
|
+
END;
|
|
1901
1909
|
`);
|
|
1902
1910
|
await client.executeMultiple(`
|
|
1903
1911
|
CREATE TABLE IF NOT EXISTS sync_meta (
|
|
@@ -2300,6 +2308,13 @@ async function ensureSchema() {
|
|
|
2300
2308
|
});
|
|
2301
2309
|
} catch {
|
|
2302
2310
|
}
|
|
2311
|
+
try {
|
|
2312
|
+
await client.execute({
|
|
2313
|
+
sql: `ALTER TABLE memories ADD COLUMN deleted_at TEXT`,
|
|
2314
|
+
args: []
|
|
2315
|
+
});
|
|
2316
|
+
} catch {
|
|
2317
|
+
}
|
|
2303
2318
|
try {
|
|
2304
2319
|
await client.execute({
|
|
2305
2320
|
sql: `ALTER TABLE memories ADD COLUMN confidence REAL DEFAULT 0.7`,
|
|
@@ -2836,7 +2851,7 @@ async function disposeDatabase() {
|
|
|
2836
2851
|
_resilientClient = null;
|
|
2837
2852
|
}
|
|
2838
2853
|
}
|
|
2839
|
-
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, disposeTurso;
|
|
2854
|
+
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, SOFT_DELETE_RETENTION_DAYS, disposeTurso;
|
|
2840
2855
|
var init_database = __esm({
|
|
2841
2856
|
"src/lib/database.ts"() {
|
|
2842
2857
|
"use strict";
|
|
@@ -2850,6 +2865,7 @@ var init_database = __esm({
|
|
|
2850
2865
|
_daemonClient = null;
|
|
2851
2866
|
_adapterClient = null;
|
|
2852
2867
|
initTurso = initDatabase;
|
|
2868
|
+
SOFT_DELETE_RETENTION_DAYS = 7;
|
|
2853
2869
|
disposeTurso = disposeDatabase;
|
|
2854
2870
|
}
|
|
2855
2871
|
});
|
|
@@ -4655,8 +4671,8 @@ async function validateLicense(apiKey, deviceId) {
|
|
|
4655
4671
|
}
|
|
4656
4672
|
function getCacheAgeMs() {
|
|
4657
4673
|
try {
|
|
4658
|
-
const { statSync:
|
|
4659
|
-
const s =
|
|
4674
|
+
const { statSync: statSync4 } = __require("fs");
|
|
4675
|
+
const s = statSync4(CACHE_PATH);
|
|
4660
4676
|
return Date.now() - s.mtimeMs;
|
|
4661
4677
|
} catch {
|
|
4662
4678
|
return Infinity;
|
|
@@ -6890,9 +6906,10 @@ async function updateTask(input) {
|
|
|
6890
6906
|
args: [assignedAgent]
|
|
6891
6907
|
});
|
|
6892
6908
|
} else if (input.status === "cancelled") {
|
|
6909
|
+
const now2 = (/* @__PURE__ */ new Date()).toISOString();
|
|
6893
6910
|
await draftClient.execute({
|
|
6894
|
-
sql: `
|
|
6895
|
-
args: [assignedAgent]
|
|
6911
|
+
sql: `UPDATE memories SET status = 'deleted', deleted_at = ? WHERE agent_id = ? AND draft = 1`,
|
|
6912
|
+
args: [now2, assignedAgent]
|
|
6896
6913
|
});
|
|
6897
6914
|
}
|
|
6898
6915
|
} catch {
|
|
@@ -8705,7 +8722,7 @@ __export(cloud_sync_exports, {
|
|
|
8705
8722
|
pushToPostgres: () => pushToPostgres,
|
|
8706
8723
|
recordRosterDeletion: () => recordRosterDeletion
|
|
8707
8724
|
});
|
|
8708
|
-
import { readFileSync as readFileSync15, writeFileSync as writeFileSync12, existsSync as existsSync20, readdirSync as readdirSync8, mkdirSync as mkdirSync12, appendFileSync as appendFileSync2, unlinkSync as unlinkSync11, openSync as openSync2, closeSync as closeSync2 } from "fs";
|
|
8725
|
+
import { readFileSync as readFileSync15, writeFileSync as writeFileSync12, existsSync as existsSync20, readdirSync as readdirSync8, mkdirSync as mkdirSync12, appendFileSync as appendFileSync2, unlinkSync as unlinkSync11, openSync as openSync2, closeSync as closeSync2, statSync as statSync3 } from "fs";
|
|
8709
8726
|
import crypto8 from "crypto";
|
|
8710
8727
|
import path24 from "path";
|
|
8711
8728
|
import { homedir as homedir2 } from "os";
|
|
@@ -9195,10 +9212,9 @@ async function cloudSync(config) {
|
|
|
9195
9212
|
const totalMemories = await countRows("SELECT COUNT(*) as cnt FROM memories WHERE status = 'active' OR status IS NULL");
|
|
9196
9213
|
try {
|
|
9197
9214
|
const { getLatestBackup: getLatestBackup2 } = await Promise.resolve().then(() => (init_db_backup(), db_backup_exports));
|
|
9198
|
-
const { statSync: statFile } = await import("fs");
|
|
9199
9215
|
const latestBackup = getLatestBackup2();
|
|
9200
9216
|
if (latestBackup) {
|
|
9201
|
-
const backupSize =
|
|
9217
|
+
const backupSize = statSync3(latestBackup).size;
|
|
9202
9218
|
const MAX_CLOUD_BACKUP_BYTES = 50 * 1024 * 1024;
|
|
9203
9219
|
if (backupSize <= MAX_CLOUD_BACKUP_BYTES) {
|
|
9204
9220
|
const backupData = readFileSync15(latestBackup);
|
|
@@ -10596,10 +10612,16 @@ init_notifications();
|
|
|
10596
10612
|
// src/lib/active-agent.ts
|
|
10597
10613
|
init_config();
|
|
10598
10614
|
init_session_key();
|
|
10599
|
-
init_employees();
|
|
10600
10615
|
import { readFileSync as readFileSync13, writeFileSync as writeFileSync9, mkdirSync as mkdirSync8, unlinkSync as unlinkSync7, readdirSync as readdirSync5 } from "fs";
|
|
10601
10616
|
import { execSync as execSync9 } from "child_process";
|
|
10602
10617
|
import path20 from "path";
|
|
10618
|
+
|
|
10619
|
+
// src/mcp/agent-context.ts
|
|
10620
|
+
import { AsyncLocalStorage } from "async_hooks";
|
|
10621
|
+
var agentStore = new AsyncLocalStorage();
|
|
10622
|
+
|
|
10623
|
+
// src/lib/active-agent.ts
|
|
10624
|
+
init_employees();
|
|
10603
10625
|
var CACHE_DIR = path20.join(EXE_AI_DIR, "session-cache");
|
|
10604
10626
|
var STALE_MS = 24 * 60 * 60 * 1e3;
|
|
10605
10627
|
function getMarkerPath() {
|
package/dist/bin/exe-cloud.js
CHANGED
|
@@ -809,8 +809,8 @@ async function validateLicense(apiKey, deviceId) {
|
|
|
809
809
|
}
|
|
810
810
|
function getCacheAgeMs() {
|
|
811
811
|
try {
|
|
812
|
-
const { statSync } = __require("fs");
|
|
813
|
-
const s =
|
|
812
|
+
const { statSync: statSync2 } = __require("fs");
|
|
813
|
+
const s = statSync2(CACHE_PATH);
|
|
814
814
|
return Date.now() - s.mtimeMs;
|
|
815
815
|
} catch {
|
|
816
816
|
return Infinity;
|
|
@@ -1064,7 +1064,7 @@ function isMainModule(importMetaUrl) {
|
|
|
1064
1064
|
|
|
1065
1065
|
// src/lib/cloud-sync.ts
|
|
1066
1066
|
init_database();
|
|
1067
|
-
import { readFileSync as readFileSync5, writeFileSync as writeFileSync4, existsSync as existsSync7, readdirSync, mkdirSync as mkdirSync4, appendFileSync, unlinkSync as unlinkSync3, openSync, closeSync } from "fs";
|
|
1067
|
+
import { readFileSync as readFileSync5, writeFileSync as writeFileSync4, existsSync as existsSync7, readdirSync, mkdirSync as mkdirSync4, appendFileSync, unlinkSync as unlinkSync3, openSync, closeSync, statSync } from "fs";
|
|
1068
1068
|
import crypto3 from "crypto";
|
|
1069
1069
|
import path7 from "path";
|
|
1070
1070
|
import { homedir as homedir2 } from "os";
|
package/dist/bin/exe-dispatch.js
CHANGED
|
@@ -2240,6 +2240,7 @@ var init_db_daemon_client = __esm({
|
|
|
2240
2240
|
// src/lib/database.ts
|
|
2241
2241
|
var database_exports = {};
|
|
2242
2242
|
__export(database_exports, {
|
|
2243
|
+
SOFT_DELETE_RETENTION_DAYS: () => SOFT_DELETE_RETENTION_DAYS,
|
|
2243
2244
|
disposeDatabase: () => disposeDatabase,
|
|
2244
2245
|
disposeTurso: () => disposeTurso,
|
|
2245
2246
|
ensureSchema: () => ensureSchema,
|
|
@@ -2396,10 +2397,17 @@ async function ensureSchema() {
|
|
|
2396
2397
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
2397
2398
|
END;
|
|
2398
2399
|
|
|
2399
|
-
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
2400
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
2401
|
+
WHEN new.status IS NULL OR new.status != 'deleted' BEGIN
|
|
2400
2402
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
2401
2403
|
INSERT INTO memories_fts(rowid, raw_text) VALUES (new.rowid, new.raw_text);
|
|
2402
2404
|
END;
|
|
2405
|
+
|
|
2406
|
+
-- Soft-delete trigger: remove from FTS when status changes to 'deleted'
|
|
2407
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_soft_delete AFTER UPDATE ON memories
|
|
2408
|
+
WHEN new.status = 'deleted' AND (old.status IS NULL OR old.status != 'deleted') BEGIN
|
|
2409
|
+
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
2410
|
+
END;
|
|
2403
2411
|
`);
|
|
2404
2412
|
await client.executeMultiple(`
|
|
2405
2413
|
CREATE TABLE IF NOT EXISTS sync_meta (
|
|
@@ -2802,6 +2810,13 @@ async function ensureSchema() {
|
|
|
2802
2810
|
});
|
|
2803
2811
|
} catch {
|
|
2804
2812
|
}
|
|
2813
|
+
try {
|
|
2814
|
+
await client.execute({
|
|
2815
|
+
sql: `ALTER TABLE memories ADD COLUMN deleted_at TEXT`,
|
|
2816
|
+
args: []
|
|
2817
|
+
});
|
|
2818
|
+
} catch {
|
|
2819
|
+
}
|
|
2805
2820
|
try {
|
|
2806
2821
|
await client.execute({
|
|
2807
2822
|
sql: `ALTER TABLE memories ADD COLUMN confidence REAL DEFAULT 0.7`,
|
|
@@ -3338,7 +3353,7 @@ async function disposeDatabase() {
|
|
|
3338
3353
|
_resilientClient = null;
|
|
3339
3354
|
}
|
|
3340
3355
|
}
|
|
3341
|
-
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, disposeTurso;
|
|
3356
|
+
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, SOFT_DELETE_RETENTION_DAYS, disposeTurso;
|
|
3342
3357
|
var init_database = __esm({
|
|
3343
3358
|
"src/lib/database.ts"() {
|
|
3344
3359
|
"use strict";
|
|
@@ -3352,6 +3367,7 @@ var init_database = __esm({
|
|
|
3352
3367
|
_daemonClient = null;
|
|
3353
3368
|
_adapterClient = null;
|
|
3354
3369
|
initTurso = initDatabase;
|
|
3370
|
+
SOFT_DELETE_RETENTION_DAYS = 7;
|
|
3355
3371
|
disposeTurso = disposeDatabase;
|
|
3356
3372
|
}
|
|
3357
3373
|
});
|
|
@@ -5293,9 +5309,10 @@ async function updateTask(input) {
|
|
|
5293
5309
|
args: [assignedAgent]
|
|
5294
5310
|
});
|
|
5295
5311
|
} else if (input.status === "cancelled") {
|
|
5312
|
+
const now2 = (/* @__PURE__ */ new Date()).toISOString();
|
|
5296
5313
|
await draftClient.execute({
|
|
5297
|
-
sql: `
|
|
5298
|
-
args: [assignedAgent]
|
|
5314
|
+
sql: `UPDATE memories SET status = 'deleted', deleted_at = ? WHERE agent_id = ? AND draft = 1`,
|
|
5315
|
+
args: [now2, assignedAgent]
|
|
5299
5316
|
});
|
|
5300
5317
|
}
|
|
5301
5318
|
} catch {
|