@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
|
@@ -1649,6 +1649,7 @@ var init_db_daemon_client = __esm({
|
|
|
1649
1649
|
// src/lib/database.ts
|
|
1650
1650
|
var database_exports = {};
|
|
1651
1651
|
__export(database_exports, {
|
|
1652
|
+
SOFT_DELETE_RETENTION_DAYS: () => SOFT_DELETE_RETENTION_DAYS,
|
|
1652
1653
|
disposeDatabase: () => disposeDatabase,
|
|
1653
1654
|
disposeTurso: () => disposeTurso,
|
|
1654
1655
|
ensureSchema: () => ensureSchema,
|
|
@@ -1805,10 +1806,17 @@ async function ensureSchema() {
|
|
|
1805
1806
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1806
1807
|
END;
|
|
1807
1808
|
|
|
1808
|
-
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1809
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1810
|
+
WHEN new.status IS NULL OR new.status != 'deleted' BEGIN
|
|
1809
1811
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1810
1812
|
INSERT INTO memories_fts(rowid, raw_text) VALUES (new.rowid, new.raw_text);
|
|
1811
1813
|
END;
|
|
1814
|
+
|
|
1815
|
+
-- Soft-delete trigger: remove from FTS when status changes to 'deleted'
|
|
1816
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_soft_delete AFTER UPDATE ON memories
|
|
1817
|
+
WHEN new.status = 'deleted' AND (old.status IS NULL OR old.status != 'deleted') BEGIN
|
|
1818
|
+
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1819
|
+
END;
|
|
1812
1820
|
`);
|
|
1813
1821
|
await client.executeMultiple(`
|
|
1814
1822
|
CREATE TABLE IF NOT EXISTS sync_meta (
|
|
@@ -2211,6 +2219,13 @@ async function ensureSchema() {
|
|
|
2211
2219
|
});
|
|
2212
2220
|
} catch {
|
|
2213
2221
|
}
|
|
2222
|
+
try {
|
|
2223
|
+
await client.execute({
|
|
2224
|
+
sql: `ALTER TABLE memories ADD COLUMN deleted_at TEXT`,
|
|
2225
|
+
args: []
|
|
2226
|
+
});
|
|
2227
|
+
} catch {
|
|
2228
|
+
}
|
|
2214
2229
|
try {
|
|
2215
2230
|
await client.execute({
|
|
2216
2231
|
sql: `ALTER TABLE memories ADD COLUMN confidence REAL DEFAULT 0.7`,
|
|
@@ -2747,7 +2762,7 @@ async function disposeDatabase() {
|
|
|
2747
2762
|
_resilientClient = null;
|
|
2748
2763
|
}
|
|
2749
2764
|
}
|
|
2750
|
-
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, disposeTurso;
|
|
2765
|
+
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, SOFT_DELETE_RETENTION_DAYS, disposeTurso;
|
|
2751
2766
|
var init_database = __esm({
|
|
2752
2767
|
"src/lib/database.ts"() {
|
|
2753
2768
|
"use strict";
|
|
@@ -2761,6 +2776,7 @@ var init_database = __esm({
|
|
|
2761
2776
|
_daemonClient = null;
|
|
2762
2777
|
_adapterClient = null;
|
|
2763
2778
|
initTurso = initDatabase;
|
|
2779
|
+
SOFT_DELETE_RETENTION_DAYS = 7;
|
|
2764
2780
|
disposeTurso = disposeDatabase;
|
|
2765
2781
|
}
|
|
2766
2782
|
});
|
package/dist/lib/schedules.js
CHANGED
|
@@ -1445,6 +1445,7 @@ var init_db_daemon_client = __esm({
|
|
|
1445
1445
|
// src/lib/database.ts
|
|
1446
1446
|
var database_exports = {};
|
|
1447
1447
|
__export(database_exports, {
|
|
1448
|
+
SOFT_DELETE_RETENTION_DAYS: () => SOFT_DELETE_RETENTION_DAYS,
|
|
1448
1449
|
disposeDatabase: () => disposeDatabase,
|
|
1449
1450
|
disposeTurso: () => disposeTurso,
|
|
1450
1451
|
ensureSchema: () => ensureSchema,
|
|
@@ -1601,10 +1602,17 @@ async function ensureSchema() {
|
|
|
1601
1602
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1602
1603
|
END;
|
|
1603
1604
|
|
|
1604
|
-
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1605
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1606
|
+
WHEN new.status IS NULL OR new.status != 'deleted' BEGIN
|
|
1605
1607
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1606
1608
|
INSERT INTO memories_fts(rowid, raw_text) VALUES (new.rowid, new.raw_text);
|
|
1607
1609
|
END;
|
|
1610
|
+
|
|
1611
|
+
-- Soft-delete trigger: remove from FTS when status changes to 'deleted'
|
|
1612
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_soft_delete AFTER UPDATE ON memories
|
|
1613
|
+
WHEN new.status = 'deleted' AND (old.status IS NULL OR old.status != 'deleted') BEGIN
|
|
1614
|
+
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1615
|
+
END;
|
|
1608
1616
|
`);
|
|
1609
1617
|
await client.executeMultiple(`
|
|
1610
1618
|
CREATE TABLE IF NOT EXISTS sync_meta (
|
|
@@ -2007,6 +2015,13 @@ async function ensureSchema() {
|
|
|
2007
2015
|
});
|
|
2008
2016
|
} catch {
|
|
2009
2017
|
}
|
|
2018
|
+
try {
|
|
2019
|
+
await client.execute({
|
|
2020
|
+
sql: `ALTER TABLE memories ADD COLUMN deleted_at TEXT`,
|
|
2021
|
+
args: []
|
|
2022
|
+
});
|
|
2023
|
+
} catch {
|
|
2024
|
+
}
|
|
2010
2025
|
try {
|
|
2011
2026
|
await client.execute({
|
|
2012
2027
|
sql: `ALTER TABLE memories ADD COLUMN confidence REAL DEFAULT 0.7`,
|
|
@@ -2543,7 +2558,7 @@ async function disposeDatabase() {
|
|
|
2543
2558
|
_resilientClient = null;
|
|
2544
2559
|
}
|
|
2545
2560
|
}
|
|
2546
|
-
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, disposeTurso;
|
|
2561
|
+
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, SOFT_DELETE_RETENTION_DAYS, disposeTurso;
|
|
2547
2562
|
var init_database = __esm({
|
|
2548
2563
|
"src/lib/database.ts"() {
|
|
2549
2564
|
"use strict";
|
|
@@ -2557,6 +2572,7 @@ var init_database = __esm({
|
|
|
2557
2572
|
_daemonClient = null;
|
|
2558
2573
|
_adapterClient = null;
|
|
2559
2574
|
initTurso = initDatabase;
|
|
2575
|
+
SOFT_DELETE_RETENTION_DAYS = 7;
|
|
2560
2576
|
disposeTurso = disposeDatabase;
|
|
2561
2577
|
}
|
|
2562
2578
|
});
|
package/dist/lib/store.js
CHANGED
|
@@ -1445,6 +1445,7 @@ var init_db_daemon_client = __esm({
|
|
|
1445
1445
|
// src/lib/database.ts
|
|
1446
1446
|
var database_exports = {};
|
|
1447
1447
|
__export(database_exports, {
|
|
1448
|
+
SOFT_DELETE_RETENTION_DAYS: () => SOFT_DELETE_RETENTION_DAYS,
|
|
1448
1449
|
disposeDatabase: () => disposeDatabase,
|
|
1449
1450
|
disposeTurso: () => disposeTurso,
|
|
1450
1451
|
ensureSchema: () => ensureSchema,
|
|
@@ -1601,10 +1602,17 @@ async function ensureSchema() {
|
|
|
1601
1602
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1602
1603
|
END;
|
|
1603
1604
|
|
|
1604
|
-
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1605
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
1606
|
+
WHEN new.status IS NULL OR new.status != 'deleted' BEGIN
|
|
1605
1607
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1606
1608
|
INSERT INTO memories_fts(rowid, raw_text) VALUES (new.rowid, new.raw_text);
|
|
1607
1609
|
END;
|
|
1610
|
+
|
|
1611
|
+
-- Soft-delete trigger: remove from FTS when status changes to 'deleted'
|
|
1612
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_soft_delete AFTER UPDATE ON memories
|
|
1613
|
+
WHEN new.status = 'deleted' AND (old.status IS NULL OR old.status != 'deleted') BEGIN
|
|
1614
|
+
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
1615
|
+
END;
|
|
1608
1616
|
`);
|
|
1609
1617
|
await client.executeMultiple(`
|
|
1610
1618
|
CREATE TABLE IF NOT EXISTS sync_meta (
|
|
@@ -2007,6 +2015,13 @@ async function ensureSchema() {
|
|
|
2007
2015
|
});
|
|
2008
2016
|
} catch {
|
|
2009
2017
|
}
|
|
2018
|
+
try {
|
|
2019
|
+
await client.execute({
|
|
2020
|
+
sql: `ALTER TABLE memories ADD COLUMN deleted_at TEXT`,
|
|
2021
|
+
args: []
|
|
2022
|
+
});
|
|
2023
|
+
} catch {
|
|
2024
|
+
}
|
|
2010
2025
|
try {
|
|
2011
2026
|
await client.execute({
|
|
2012
2027
|
sql: `ALTER TABLE memories ADD COLUMN confidence REAL DEFAULT 0.7`,
|
|
@@ -2543,7 +2558,7 @@ async function disposeDatabase() {
|
|
|
2543
2558
|
_resilientClient = null;
|
|
2544
2559
|
}
|
|
2545
2560
|
}
|
|
2546
|
-
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, disposeTurso;
|
|
2561
|
+
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, SOFT_DELETE_RETENTION_DAYS, disposeTurso;
|
|
2547
2562
|
var init_database = __esm({
|
|
2548
2563
|
"src/lib/database.ts"() {
|
|
2549
2564
|
"use strict";
|
|
@@ -2557,6 +2572,7 @@ var init_database = __esm({
|
|
|
2557
2572
|
_daemonClient = null;
|
|
2558
2573
|
_adapterClient = null;
|
|
2559
2574
|
initTurso = initDatabase;
|
|
2575
|
+
SOFT_DELETE_RETENTION_DAYS = 7;
|
|
2560
2576
|
disposeTurso = disposeDatabase;
|
|
2561
2577
|
}
|
|
2562
2578
|
});
|
package/dist/lib/tasks.js
CHANGED
|
@@ -4420,9 +4420,10 @@ async function updateTask(input) {
|
|
|
4420
4420
|
args: [assignedAgent]
|
|
4421
4421
|
});
|
|
4422
4422
|
} else if (input.status === "cancelled") {
|
|
4423
|
+
const now2 = (/* @__PURE__ */ new Date()).toISOString();
|
|
4423
4424
|
await draftClient.execute({
|
|
4424
|
-
sql: `
|
|
4425
|
-
args: [assignedAgent]
|
|
4425
|
+
sql: `UPDATE memories SET status = 'deleted', deleted_at = ? WHERE agent_id = ? AND draft = 1`,
|
|
4426
|
+
args: [now2, assignedAgent]
|
|
4426
4427
|
});
|
|
4427
4428
|
}
|
|
4428
4429
|
} catch {
|
package/dist/lib/tmux-routing.js
CHANGED
|
@@ -3325,9 +3325,10 @@ async function updateTask(input) {
|
|
|
3325
3325
|
args: [assignedAgent]
|
|
3326
3326
|
});
|
|
3327
3327
|
} else if (input.status === "cancelled") {
|
|
3328
|
+
const now2 = (/* @__PURE__ */ new Date()).toISOString();
|
|
3328
3329
|
await draftClient.execute({
|
|
3329
|
-
sql: `
|
|
3330
|
-
args: [assignedAgent]
|
|
3330
|
+
sql: `UPDATE memories SET status = 'deleted', deleted_at = ? WHERE agent_id = ? AND draft = 1`,
|
|
3331
|
+
args: [now2, assignedAgent]
|
|
3331
3332
|
});
|
|
3332
3333
|
}
|
|
3333
3334
|
} catch {
|
package/dist/mcp/server.js
CHANGED
|
@@ -2093,6 +2093,7 @@ var init_db_daemon_client = __esm({
|
|
|
2093
2093
|
// src/lib/database.ts
|
|
2094
2094
|
var database_exports = {};
|
|
2095
2095
|
__export(database_exports, {
|
|
2096
|
+
SOFT_DELETE_RETENTION_DAYS: () => SOFT_DELETE_RETENTION_DAYS,
|
|
2096
2097
|
disposeDatabase: () => disposeDatabase,
|
|
2097
2098
|
disposeTurso: () => disposeTurso,
|
|
2098
2099
|
ensureSchema: () => ensureSchema,
|
|
@@ -2249,10 +2250,17 @@ async function ensureSchema() {
|
|
|
2249
2250
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
2250
2251
|
END;
|
|
2251
2252
|
|
|
2252
|
-
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
2253
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_au AFTER UPDATE ON memories
|
|
2254
|
+
WHEN new.status IS NULL OR new.status != 'deleted' BEGIN
|
|
2253
2255
|
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
2254
2256
|
INSERT INTO memories_fts(rowid, raw_text) VALUES (new.rowid, new.raw_text);
|
|
2255
2257
|
END;
|
|
2258
|
+
|
|
2259
|
+
-- Soft-delete trigger: remove from FTS when status changes to 'deleted'
|
|
2260
|
+
CREATE TRIGGER IF NOT EXISTS memories_fts_soft_delete AFTER UPDATE ON memories
|
|
2261
|
+
WHEN new.status = 'deleted' AND (old.status IS NULL OR old.status != 'deleted') BEGIN
|
|
2262
|
+
INSERT INTO memories_fts(memories_fts, rowid, raw_text) VALUES('delete', old.rowid, old.raw_text);
|
|
2263
|
+
END;
|
|
2256
2264
|
`);
|
|
2257
2265
|
await client.executeMultiple(`
|
|
2258
2266
|
CREATE TABLE IF NOT EXISTS sync_meta (
|
|
@@ -2655,6 +2663,13 @@ async function ensureSchema() {
|
|
|
2655
2663
|
});
|
|
2656
2664
|
} catch {
|
|
2657
2665
|
}
|
|
2666
|
+
try {
|
|
2667
|
+
await client.execute({
|
|
2668
|
+
sql: `ALTER TABLE memories ADD COLUMN deleted_at TEXT`,
|
|
2669
|
+
args: []
|
|
2670
|
+
});
|
|
2671
|
+
} catch {
|
|
2672
|
+
}
|
|
2658
2673
|
try {
|
|
2659
2674
|
await client.execute({
|
|
2660
2675
|
sql: `ALTER TABLE memories ADD COLUMN confidence REAL DEFAULT 0.7`,
|
|
@@ -3191,7 +3206,7 @@ async function disposeDatabase() {
|
|
|
3191
3206
|
_resilientClient = null;
|
|
3192
3207
|
}
|
|
3193
3208
|
}
|
|
3194
|
-
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, disposeTurso;
|
|
3209
|
+
var _client, _resilientClient, _walCheckpointTimer, _daemonClient, _adapterClient, initTurso, SOFT_DELETE_RETENTION_DAYS, disposeTurso;
|
|
3195
3210
|
var init_database = __esm({
|
|
3196
3211
|
"src/lib/database.ts"() {
|
|
3197
3212
|
"use strict";
|
|
@@ -3205,6 +3220,7 @@ var init_database = __esm({
|
|
|
3205
3220
|
_daemonClient = null;
|
|
3206
3221
|
_adapterClient = null;
|
|
3207
3222
|
initTurso = initDatabase;
|
|
3223
|
+
SOFT_DELETE_RETENTION_DAYS = 7;
|
|
3208
3224
|
disposeTurso = disposeDatabase;
|
|
3209
3225
|
}
|
|
3210
3226
|
});
|
|
@@ -6487,6 +6503,19 @@ var init_session_key = __esm({
|
|
|
6487
6503
|
}
|
|
6488
6504
|
});
|
|
6489
6505
|
|
|
6506
|
+
// src/mcp/agent-context.ts
|
|
6507
|
+
import { AsyncLocalStorage } from "async_hooks";
|
|
6508
|
+
function getAgentContext() {
|
|
6509
|
+
return agentStore.getStore();
|
|
6510
|
+
}
|
|
6511
|
+
var agentStore;
|
|
6512
|
+
var init_agent_context = __esm({
|
|
6513
|
+
"src/mcp/agent-context.ts"() {
|
|
6514
|
+
"use strict";
|
|
6515
|
+
agentStore = new AsyncLocalStorage();
|
|
6516
|
+
}
|
|
6517
|
+
});
|
|
6518
|
+
|
|
6490
6519
|
// src/lib/active-agent.ts
|
|
6491
6520
|
var active_agent_exports = {};
|
|
6492
6521
|
__export(active_agent_exports, {
|
|
@@ -6562,6 +6591,8 @@ function clearActiveAgent() {
|
|
|
6562
6591
|
}
|
|
6563
6592
|
}
|
|
6564
6593
|
function getActiveAgent() {
|
|
6594
|
+
const httpCtx = getAgentContext();
|
|
6595
|
+
if (httpCtx) return httpCtx;
|
|
6565
6596
|
try {
|
|
6566
6597
|
const markerPath = getMarkerPath();
|
|
6567
6598
|
const raw = readFileSync7(markerPath, "utf8");
|
|
@@ -6656,6 +6687,7 @@ var init_active_agent = __esm({
|
|
|
6656
6687
|
"use strict";
|
|
6657
6688
|
init_config();
|
|
6658
6689
|
init_session_key();
|
|
6690
|
+
init_agent_context();
|
|
6659
6691
|
init_employees();
|
|
6660
6692
|
CACHE_DIR = path12.join(EXE_AI_DIR, "session-cache");
|
|
6661
6693
|
STALE_MS = 24 * 60 * 60 * 1e3;
|
|
@@ -6923,8 +6955,8 @@ async function validateLicense(apiKey, deviceId) {
|
|
|
6923
6955
|
}
|
|
6924
6956
|
function getCacheAgeMs() {
|
|
6925
6957
|
try {
|
|
6926
|
-
const { statSync:
|
|
6927
|
-
const s =
|
|
6958
|
+
const { statSync: statSync6 } = __require("fs");
|
|
6959
|
+
const s = statSync6(CACHE_PATH);
|
|
6928
6960
|
return Date.now() - s.mtimeMs;
|
|
6929
6961
|
} catch {
|
|
6930
6962
|
return Infinity;
|
|
@@ -10441,9 +10473,10 @@ async function updateTask(input) {
|
|
|
10441
10473
|
args: [assignedAgent]
|
|
10442
10474
|
});
|
|
10443
10475
|
} else if (input.status === "cancelled") {
|
|
10476
|
+
const now2 = (/* @__PURE__ */ new Date()).toISOString();
|
|
10444
10477
|
await draftClient.execute({
|
|
10445
|
-
sql: `
|
|
10446
|
-
args: [assignedAgent]
|
|
10478
|
+
sql: `UPDATE memories SET status = 'deleted', deleted_at = ? WHERE agent_id = ? AND draft = 1`,
|
|
10479
|
+
args: [now2, assignedAgent]
|
|
10447
10480
|
});
|
|
10448
10481
|
}
|
|
10449
10482
|
} catch {
|
|
@@ -14429,13 +14462,14 @@ async function listDocumentsByWorkspace(workspace_id, limit = DEFAULT_LIST_LIMIT
|
|
|
14429
14462
|
async function deleteDocumentAndChunks(id) {
|
|
14430
14463
|
const client = getClient();
|
|
14431
14464
|
const countResult = await client.execute({
|
|
14432
|
-
sql: "SELECT COUNT(*) AS cnt FROM memories WHERE document_id = ?",
|
|
14465
|
+
sql: "SELECT COUNT(*) AS cnt FROM memories WHERE document_id = ? AND COALESCE(status, 'active') = 'active'",
|
|
14433
14466
|
args: [id]
|
|
14434
14467
|
});
|
|
14435
14468
|
const deletedChunks = Number(countResult.rows[0]?.cnt) || 0;
|
|
14469
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
14436
14470
|
await client.batch(
|
|
14437
14471
|
[
|
|
14438
|
-
{ sql: "
|
|
14472
|
+
{ sql: "UPDATE memories SET status = 'deleted', deleted_at = ? WHERE document_id = ? AND COALESCE(status, 'active') = 'active'", args: [now, id] },
|
|
14439
14473
|
{ sql: "DELETE FROM documents WHERE id = ?", args: [id] }
|
|
14440
14474
|
],
|
|
14441
14475
|
"write"
|
|
@@ -20404,15 +20438,13 @@ async function fixDuplicates(client, duplicates, dryRun) {
|
|
|
20404
20438
|
continue;
|
|
20405
20439
|
}
|
|
20406
20440
|
const placeholders = dup.delete_ids.map(() => "?").join(",");
|
|
20441
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
20407
20442
|
await client.execute({
|
|
20408
|
-
sql: `
|
|
20409
|
-
args: dup.delete_ids
|
|
20443
|
+
sql: `UPDATE memories SET status = 'deleted', deleted_at = ? WHERE id IN (${placeholders})`,
|
|
20444
|
+
args: [now, ...dup.delete_ids]
|
|
20410
20445
|
});
|
|
20411
20446
|
deleted += dup.delete_ids.length;
|
|
20412
20447
|
}
|
|
20413
|
-
if (!dryRun && deleted > 0) {
|
|
20414
|
-
await client.execute("INSERT INTO memories_fts(memories_fts) VALUES('rebuild')");
|
|
20415
|
-
}
|
|
20416
20448
|
return deleted;
|
|
20417
20449
|
}
|
|
20418
20450
|
async function fixBloated(client, bloated, dryRun) {
|
|
@@ -20594,7 +20626,7 @@ import { z as z63 } from "zod";
|
|
|
20594
20626
|
|
|
20595
20627
|
// src/lib/cloud-sync.ts
|
|
20596
20628
|
init_database();
|
|
20597
|
-
import { readFileSync as readFileSync26, writeFileSync as writeFileSync20, existsSync as existsSync32, readdirSync as readdirSync13, mkdirSync as mkdirSync17, appendFileSync as appendFileSync2, unlinkSync as unlinkSync11, openSync as openSync2, closeSync as closeSync2 } from "fs";
|
|
20629
|
+
import { readFileSync as readFileSync26, writeFileSync as writeFileSync20, existsSync as existsSync32, readdirSync as readdirSync13, mkdirSync as mkdirSync17, appendFileSync as appendFileSync2, unlinkSync as unlinkSync11, openSync as openSync2, closeSync as closeSync2, statSync as statSync5 } from "fs";
|
|
20598
20630
|
import crypto17 from "crypto";
|
|
20599
20631
|
import path40 from "path";
|
|
20600
20632
|
import { homedir as homedir6 } from "os";
|
|
@@ -21159,10 +21191,9 @@ async function cloudSync(config2) {
|
|
|
21159
21191
|
const totalMemories = await countRows("SELECT COUNT(*) as cnt FROM memories WHERE status = 'active' OR status IS NULL");
|
|
21160
21192
|
try {
|
|
21161
21193
|
const { getLatestBackup: getLatestBackup2 } = await Promise.resolve().then(() => (init_db_backup(), db_backup_exports));
|
|
21162
|
-
const { statSync: statFile } = await import("fs");
|
|
21163
21194
|
const latestBackup = getLatestBackup2();
|
|
21164
21195
|
if (latestBackup) {
|
|
21165
|
-
const backupSize =
|
|
21196
|
+
const backupSize = statSync5(latestBackup).size;
|
|
21166
21197
|
const MAX_CLOUD_BACKUP_BYTES = 50 * 1024 * 1024;
|
|
21167
21198
|
if (backupSize <= MAX_CLOUD_BACKUP_BYTES) {
|
|
21168
21199
|
const backupData = readFileSync26(latestBackup);
|
|
@@ -23291,62 +23322,6 @@ function registerQueryCompanyBrain(server2) {
|
|
|
23291
23322
|
);
|
|
23292
23323
|
}
|
|
23293
23324
|
|
|
23294
|
-
// src/lib/telemetry.ts
|
|
23295
|
-
var ENABLED = process.env.EXE_TELEMETRY === "1";
|
|
23296
|
-
var initialized = false;
|
|
23297
|
-
async function ensureInit() {
|
|
23298
|
-
if (initialized || !ENABLED) return;
|
|
23299
|
-
initialized = true;
|
|
23300
|
-
try {
|
|
23301
|
-
const { NodeSDK } = await import("@opentelemetry/sdk-node");
|
|
23302
|
-
const { ConsoleSpanExporter } = await import("@opentelemetry/sdk-trace-base");
|
|
23303
|
-
const sdk = new NodeSDK({
|
|
23304
|
-
serviceName: "exe-os",
|
|
23305
|
-
traceExporter: new ConsoleSpanExporter()
|
|
23306
|
-
});
|
|
23307
|
-
sdk.start();
|
|
23308
|
-
process.stderr.write("[exe-os] OpenTelemetry tracing enabled\n");
|
|
23309
|
-
} catch (err) {
|
|
23310
|
-
process.stderr.write(
|
|
23311
|
-
`[exe-os] OpenTelemetry init failed: ${err instanceof Error ? err.message : String(err)}
|
|
23312
|
-
`
|
|
23313
|
-
);
|
|
23314
|
-
}
|
|
23315
|
-
}
|
|
23316
|
-
async function withTrace(toolName, fn) {
|
|
23317
|
-
if (!ENABLED) return fn();
|
|
23318
|
-
await ensureInit();
|
|
23319
|
-
const { trace, SpanStatusCode } = await import("@opentelemetry/api");
|
|
23320
|
-
const tracer = trace.getTracer("exe-os", "1.0.0");
|
|
23321
|
-
return tracer.startActiveSpan(`mcp.tool.${toolName}`, async (span) => {
|
|
23322
|
-
span.setAttribute("mcp.tool.name", toolName);
|
|
23323
|
-
try {
|
|
23324
|
-
const result = await fn();
|
|
23325
|
-
span.setStatus({ code: SpanStatusCode.OK });
|
|
23326
|
-
return result;
|
|
23327
|
-
} catch (err) {
|
|
23328
|
-
span.setStatus({
|
|
23329
|
-
code: SpanStatusCode.ERROR,
|
|
23330
|
-
message: err instanceof Error ? err.message : String(err)
|
|
23331
|
-
});
|
|
23332
|
-
span.recordException(
|
|
23333
|
-
err instanceof Error ? err : new Error(String(err))
|
|
23334
|
-
);
|
|
23335
|
-
throw err;
|
|
23336
|
-
} finally {
|
|
23337
|
-
span.end();
|
|
23338
|
-
}
|
|
23339
|
-
});
|
|
23340
|
-
}
|
|
23341
|
-
function instrumentServer(server2) {
|
|
23342
|
-
if (!ENABLED) return;
|
|
23343
|
-
const original = server2.registerTool.bind(server2);
|
|
23344
|
-
server2.registerTool = (name, config2, handler) => {
|
|
23345
|
-
const traced = async (...args) => withTrace(name, () => handler(...args));
|
|
23346
|
-
return original(name, config2, traced);
|
|
23347
|
-
};
|
|
23348
|
-
}
|
|
23349
|
-
|
|
23350
23325
|
// src/mcp/tool-gates.ts
|
|
23351
23326
|
var TOOL_GATES = {
|
|
23352
23327
|
core: [],
|
|
@@ -23479,6 +23454,147 @@ function isToolAllowed(registerFnName) {
|
|
|
23479
23454
|
return allowedRoles.includes(role);
|
|
23480
23455
|
}
|
|
23481
23456
|
|
|
23457
|
+
// src/mcp/register-tools.ts
|
|
23458
|
+
function registerAllTools(server2) {
|
|
23459
|
+
const gate = (name, fn) => {
|
|
23460
|
+
if (isToolAllowed(name)) fn(server2);
|
|
23461
|
+
};
|
|
23462
|
+
gate("registerRecallMyMemory", registerRecallMyMemory);
|
|
23463
|
+
gate("registerAskTeamMemory", registerAskTeamMemory);
|
|
23464
|
+
gate("registerGetSessionContext", registerGetSessionContext);
|
|
23465
|
+
gate("registerStoreMemory", registerStoreMemory);
|
|
23466
|
+
gate("registerCommitMemory", registerCommitMemory);
|
|
23467
|
+
gate("registerQueryRelationships", registerQueryRelationships);
|
|
23468
|
+
gate("registerCreateTask", registerCreateTask);
|
|
23469
|
+
gate("registerListTasks", registerListTasks);
|
|
23470
|
+
gate("registerUpdateTask", registerUpdateTask);
|
|
23471
|
+
gate("registerCloseTask", registerCloseTask);
|
|
23472
|
+
gate("registerGetTask", registerGetTask);
|
|
23473
|
+
gate("registerCheckpointTask", registerCheckpointTask);
|
|
23474
|
+
gate("registerResumeEmployee", registerResumeEmployee);
|
|
23475
|
+
gate("registerBehavior", registerBehavior);
|
|
23476
|
+
gate("registerSendMessage", registerSendMessage);
|
|
23477
|
+
gate("registerReminder", registerReminder);
|
|
23478
|
+
gate("registerGetIdentity", registerGetIdentity);
|
|
23479
|
+
gate("registerUpdateIdentity", registerUpdateIdentity);
|
|
23480
|
+
gate("registerIngestDocument", registerIngestDocument);
|
|
23481
|
+
gate("registerListDocuments", registerListDocuments);
|
|
23482
|
+
gate("registerPurgeDocument", registerPurgeDocument);
|
|
23483
|
+
gate("registerSetDocumentImportance", registerSetDocumentImportance);
|
|
23484
|
+
gate("registerRerankDocuments", registerRerankDocuments);
|
|
23485
|
+
gate("registerAcknowledgeMessages", registerAcknowledgeMessages);
|
|
23486
|
+
gate("registerSendWhatsapp", registerSendWhatsapp);
|
|
23487
|
+
gate("registerCreateTrigger", registerCreateTrigger);
|
|
23488
|
+
gate("registerListTriggers", registerListTriggers);
|
|
23489
|
+
gate("registerApplyStarterPack", registerApplyStarterPack);
|
|
23490
|
+
gate("registerMergeEntities", registerMergeEntities);
|
|
23491
|
+
gate("registerCreateWikiPage", registerCreateWikiPage);
|
|
23492
|
+
gate("registerListWikiPages", registerListWikiPages);
|
|
23493
|
+
gate("registerGetWikiPage", registerGetWikiPage);
|
|
23494
|
+
gate("registerUpdateWikiPage", registerUpdateWikiPage);
|
|
23495
|
+
gate("registerDeployClient", registerDeployClient);
|
|
23496
|
+
gate("registerExportOrchestration", registerExportOrchestration);
|
|
23497
|
+
gate("registerImportOrchestration", registerImportOrchestration);
|
|
23498
|
+
gate("registerQueryConversations", registerQueryConversations);
|
|
23499
|
+
gate("registerLoadSkill", registerLoadSkill);
|
|
23500
|
+
gate("registerConsolidateMemories", registerConsolidateMemories);
|
|
23501
|
+
gate("registerGlobalProcedure", registerGlobalProcedure);
|
|
23502
|
+
gate("registerStoreGlobalProcedure", registerStoreGlobalProcedure);
|
|
23503
|
+
gate("registerListGlobalProcedures", registerListGlobalProcedures);
|
|
23504
|
+
gate("registerDeactivateGlobalProcedure", registerDeactivateGlobalProcedure);
|
|
23505
|
+
gate("registerStoreBehavior", registerStoreBehavior);
|
|
23506
|
+
gate("registerListBehaviors", registerListBehaviors);
|
|
23507
|
+
gate("registerDeactivateBehavior", registerDeactivateBehavior);
|
|
23508
|
+
gate("registerCreateReminder", registerCreateReminder);
|
|
23509
|
+
gate("registerListReminders", registerListReminders);
|
|
23510
|
+
gate("registerCompleteReminder", registerCompleteReminder);
|
|
23511
|
+
gate("registerSearchEverything", registerSearchEverything);
|
|
23512
|
+
gate("registerStoreDecision", registerStoreDecision);
|
|
23513
|
+
gate("registerGetDecision", registerGetDecision);
|
|
23514
|
+
gate("registerGetAgentSpend", registerGetAgentSpend);
|
|
23515
|
+
gate("registerGetGraphStats", registerGetGraphStats);
|
|
23516
|
+
gate("registerGetEntityNeighbors", registerGetEntityNeighbors);
|
|
23517
|
+
gate("registerGetHotEntities", registerGetHotEntities);
|
|
23518
|
+
gate("registerExportGraph", registerExportGraph);
|
|
23519
|
+
gate("registerFindSimilarTrajectories", registerFindSimilarTrajectories);
|
|
23520
|
+
gate("registerGetSessionKills", registerGetSessionKills);
|
|
23521
|
+
gate("registerListAgentSessions", registerListAgentSessions);
|
|
23522
|
+
gate("registerGetDaemonHealth", registerGetDaemonHealth);
|
|
23523
|
+
gate("registerGetAutoWakeStatus", registerGetAutoWakeStatus);
|
|
23524
|
+
gate("registerGetWorkerGate", registerGetWorkerGate);
|
|
23525
|
+
gate("registerRunMemoryAudit", registerRunMemoryAudit);
|
|
23526
|
+
gate("registerCloudSync", registerCloudSync);
|
|
23527
|
+
gate("registerBackupVps", registerBackupVps);
|
|
23528
|
+
gate("registerGetMemoryCardinality", registerGetMemoryCardinality);
|
|
23529
|
+
gate("registerRunConsolidation", registerRunConsolidation);
|
|
23530
|
+
gate("registerGetLicenseStatus", registerGetLicenseStatus);
|
|
23531
|
+
gate("registerAddPerson", registerAddPerson);
|
|
23532
|
+
gate("registerListPeople", registerListPeople);
|
|
23533
|
+
gate("registerGetPerson", registerGetPerson);
|
|
23534
|
+
gate("registerSetAgentConfig", registerSetAgentConfig);
|
|
23535
|
+
gate("registerListEmployees", registerListEmployees);
|
|
23536
|
+
gate("registerCreateLicense", registerCreateLicense);
|
|
23537
|
+
gate("registerListLicenses", registerListLicenses);
|
|
23538
|
+
gate("registerActivateLicense", registerActivateLicense);
|
|
23539
|
+
gate("registerQueryCompanyBrain", registerQueryCompanyBrain);
|
|
23540
|
+
}
|
|
23541
|
+
|
|
23542
|
+
// src/lib/telemetry.ts
|
|
23543
|
+
var ENABLED = process.env.EXE_TELEMETRY === "1";
|
|
23544
|
+
var initialized = false;
|
|
23545
|
+
async function ensureInit() {
|
|
23546
|
+
if (initialized || !ENABLED) return;
|
|
23547
|
+
initialized = true;
|
|
23548
|
+
try {
|
|
23549
|
+
const { NodeSDK } = await import("@opentelemetry/sdk-node");
|
|
23550
|
+
const { ConsoleSpanExporter } = await import("@opentelemetry/sdk-trace-base");
|
|
23551
|
+
const sdk = new NodeSDK({
|
|
23552
|
+
serviceName: "exe-os",
|
|
23553
|
+
traceExporter: new ConsoleSpanExporter()
|
|
23554
|
+
});
|
|
23555
|
+
sdk.start();
|
|
23556
|
+
process.stderr.write("[exe-os] OpenTelemetry tracing enabled\n");
|
|
23557
|
+
} catch (err) {
|
|
23558
|
+
process.stderr.write(
|
|
23559
|
+
`[exe-os] OpenTelemetry init failed: ${err instanceof Error ? err.message : String(err)}
|
|
23560
|
+
`
|
|
23561
|
+
);
|
|
23562
|
+
}
|
|
23563
|
+
}
|
|
23564
|
+
async function withTrace(toolName, fn) {
|
|
23565
|
+
if (!ENABLED) return fn();
|
|
23566
|
+
await ensureInit();
|
|
23567
|
+
const { trace, SpanStatusCode } = await import("@opentelemetry/api");
|
|
23568
|
+
const tracer = trace.getTracer("exe-os", "1.0.0");
|
|
23569
|
+
return tracer.startActiveSpan(`mcp.tool.${toolName}`, async (span) => {
|
|
23570
|
+
span.setAttribute("mcp.tool.name", toolName);
|
|
23571
|
+
try {
|
|
23572
|
+
const result = await fn();
|
|
23573
|
+
span.setStatus({ code: SpanStatusCode.OK });
|
|
23574
|
+
return result;
|
|
23575
|
+
} catch (err) {
|
|
23576
|
+
span.setStatus({
|
|
23577
|
+
code: SpanStatusCode.ERROR,
|
|
23578
|
+
message: err instanceof Error ? err.message : String(err)
|
|
23579
|
+
});
|
|
23580
|
+
span.recordException(
|
|
23581
|
+
err instanceof Error ? err : new Error(String(err))
|
|
23582
|
+
);
|
|
23583
|
+
throw err;
|
|
23584
|
+
} finally {
|
|
23585
|
+
span.end();
|
|
23586
|
+
}
|
|
23587
|
+
});
|
|
23588
|
+
}
|
|
23589
|
+
function instrumentServer(server2) {
|
|
23590
|
+
if (!ENABLED) return;
|
|
23591
|
+
const original = server2.registerTool.bind(server2);
|
|
23592
|
+
server2.registerTool = (name, config2, handler) => {
|
|
23593
|
+
const traced = async (...args) => withTrace(name, () => handler(...args));
|
|
23594
|
+
return original(name, config2, traced);
|
|
23595
|
+
};
|
|
23596
|
+
}
|
|
23597
|
+
|
|
23482
23598
|
// src/mcp/server.ts
|
|
23483
23599
|
var server = new McpServer({
|
|
23484
23600
|
name: "exe-os",
|
|
@@ -23488,87 +23604,7 @@ var _backfillTimer = null;
|
|
|
23488
23604
|
var _ppidWatchdog = null;
|
|
23489
23605
|
var _shuttingDown = false;
|
|
23490
23606
|
instrumentServer(server);
|
|
23491
|
-
|
|
23492
|
-
if (isToolAllowed(name)) fn(server);
|
|
23493
|
-
};
|
|
23494
|
-
gate("registerRecallMyMemory", registerRecallMyMemory);
|
|
23495
|
-
gate("registerAskTeamMemory", registerAskTeamMemory);
|
|
23496
|
-
gate("registerGetSessionContext", registerGetSessionContext);
|
|
23497
|
-
gate("registerStoreMemory", registerStoreMemory);
|
|
23498
|
-
gate("registerCommitMemory", registerCommitMemory);
|
|
23499
|
-
gate("registerQueryRelationships", registerQueryRelationships);
|
|
23500
|
-
gate("registerCreateTask", registerCreateTask);
|
|
23501
|
-
gate("registerListTasks", registerListTasks);
|
|
23502
|
-
gate("registerUpdateTask", registerUpdateTask);
|
|
23503
|
-
gate("registerCloseTask", registerCloseTask);
|
|
23504
|
-
gate("registerGetTask", registerGetTask);
|
|
23505
|
-
gate("registerCheckpointTask", registerCheckpointTask);
|
|
23506
|
-
gate("registerResumeEmployee", registerResumeEmployee);
|
|
23507
|
-
gate("registerBehavior", registerBehavior);
|
|
23508
|
-
gate("registerSendMessage", registerSendMessage);
|
|
23509
|
-
gate("registerReminder", registerReminder);
|
|
23510
|
-
gate("registerGetIdentity", registerGetIdentity);
|
|
23511
|
-
gate("registerUpdateIdentity", registerUpdateIdentity);
|
|
23512
|
-
gate("registerIngestDocument", registerIngestDocument);
|
|
23513
|
-
gate("registerListDocuments", registerListDocuments);
|
|
23514
|
-
gate("registerPurgeDocument", registerPurgeDocument);
|
|
23515
|
-
gate("registerSetDocumentImportance", registerSetDocumentImportance);
|
|
23516
|
-
gate("registerRerankDocuments", registerRerankDocuments);
|
|
23517
|
-
gate("registerAcknowledgeMessages", registerAcknowledgeMessages);
|
|
23518
|
-
gate("registerSendWhatsapp", registerSendWhatsapp);
|
|
23519
|
-
gate("registerCreateTrigger", registerCreateTrigger);
|
|
23520
|
-
gate("registerListTriggers", registerListTriggers);
|
|
23521
|
-
gate("registerApplyStarterPack", registerApplyStarterPack);
|
|
23522
|
-
gate("registerMergeEntities", registerMergeEntities);
|
|
23523
|
-
gate("registerCreateWikiPage", registerCreateWikiPage);
|
|
23524
|
-
gate("registerListWikiPages", registerListWikiPages);
|
|
23525
|
-
gate("registerGetWikiPage", registerGetWikiPage);
|
|
23526
|
-
gate("registerUpdateWikiPage", registerUpdateWikiPage);
|
|
23527
|
-
gate("registerDeployClient", registerDeployClient);
|
|
23528
|
-
gate("registerExportOrchestration", registerExportOrchestration);
|
|
23529
|
-
gate("registerImportOrchestration", registerImportOrchestration);
|
|
23530
|
-
gate("registerQueryConversations", registerQueryConversations);
|
|
23531
|
-
gate("registerLoadSkill", registerLoadSkill);
|
|
23532
|
-
gate("registerConsolidateMemories", registerConsolidateMemories);
|
|
23533
|
-
gate("registerGlobalProcedure", registerGlobalProcedure);
|
|
23534
|
-
gate("registerStoreGlobalProcedure", registerStoreGlobalProcedure);
|
|
23535
|
-
gate("registerListGlobalProcedures", registerListGlobalProcedures);
|
|
23536
|
-
gate("registerDeactivateGlobalProcedure", registerDeactivateGlobalProcedure);
|
|
23537
|
-
gate("registerStoreBehavior", registerStoreBehavior);
|
|
23538
|
-
gate("registerListBehaviors", registerListBehaviors);
|
|
23539
|
-
gate("registerDeactivateBehavior", registerDeactivateBehavior);
|
|
23540
|
-
gate("registerCreateReminder", registerCreateReminder);
|
|
23541
|
-
gate("registerListReminders", registerListReminders);
|
|
23542
|
-
gate("registerCompleteReminder", registerCompleteReminder);
|
|
23543
|
-
gate("registerSearchEverything", registerSearchEverything);
|
|
23544
|
-
gate("registerStoreDecision", registerStoreDecision);
|
|
23545
|
-
gate("registerGetDecision", registerGetDecision);
|
|
23546
|
-
gate("registerGetAgentSpend", registerGetAgentSpend);
|
|
23547
|
-
gate("registerGetGraphStats", registerGetGraphStats);
|
|
23548
|
-
gate("registerGetEntityNeighbors", registerGetEntityNeighbors);
|
|
23549
|
-
gate("registerGetHotEntities", registerGetHotEntities);
|
|
23550
|
-
gate("registerExportGraph", registerExportGraph);
|
|
23551
|
-
gate("registerFindSimilarTrajectories", registerFindSimilarTrajectories);
|
|
23552
|
-
gate("registerGetSessionKills", registerGetSessionKills);
|
|
23553
|
-
gate("registerListAgentSessions", registerListAgentSessions);
|
|
23554
|
-
gate("registerGetDaemonHealth", registerGetDaemonHealth);
|
|
23555
|
-
gate("registerGetAutoWakeStatus", registerGetAutoWakeStatus);
|
|
23556
|
-
gate("registerGetWorkerGate", registerGetWorkerGate);
|
|
23557
|
-
gate("registerRunMemoryAudit", registerRunMemoryAudit);
|
|
23558
|
-
gate("registerCloudSync", registerCloudSync);
|
|
23559
|
-
gate("registerBackupVps", registerBackupVps);
|
|
23560
|
-
gate("registerGetMemoryCardinality", registerGetMemoryCardinality);
|
|
23561
|
-
gate("registerRunConsolidation", registerRunConsolidation);
|
|
23562
|
-
gate("registerGetLicenseStatus", registerGetLicenseStatus);
|
|
23563
|
-
gate("registerAddPerson", registerAddPerson);
|
|
23564
|
-
gate("registerListPeople", registerListPeople);
|
|
23565
|
-
gate("registerGetPerson", registerGetPerson);
|
|
23566
|
-
gate("registerSetAgentConfig", registerSetAgentConfig);
|
|
23567
|
-
gate("registerListEmployees", registerListEmployees);
|
|
23568
|
-
gate("registerCreateLicense", registerCreateLicense);
|
|
23569
|
-
gate("registerListLicenses", registerListLicenses);
|
|
23570
|
-
gate("registerActivateLicense", registerActivateLicense);
|
|
23571
|
-
gate("registerQueryCompanyBrain", registerQueryCompanyBrain);
|
|
23607
|
+
registerAllTools(server);
|
|
23572
23608
|
var _gatedRole = process.env.AGENT_ROLE ?? "standalone";
|
|
23573
23609
|
process.stderr.write(`[exe-os] Tool gating: role=${_gatedRole}
|
|
23574
23610
|
`);
|