@askexenow/exe-os 0.8.61 → 0.8.63
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 +2 -3
- package/dist/bin/backfill-responses.js +3 -4
- package/dist/bin/backfill-vectors.js +0 -1
- package/dist/bin/cleanup-stale-review-tasks.js +0 -1
- package/dist/bin/cli.js +1654 -397
- package/dist/bin/exe-assign.js +0 -1
- package/dist/bin/exe-boot.js +61 -84
- package/dist/bin/exe-cloud.js +28 -60
- package/dist/bin/exe-dispatch.js +0 -1
- package/dist/bin/exe-doctor.js +0 -1
- package/dist/bin/exe-export-behaviors.js +1 -2
- package/dist/bin/exe-forget.js +0 -1
- package/dist/bin/exe-gateway.js +16 -17
- package/dist/bin/exe-heartbeat.js +1 -2
- package/dist/bin/exe-kill.js +2 -3
- package/dist/bin/exe-launch-agent.js +1 -2
- package/dist/bin/exe-link.js +49 -78
- package/dist/bin/exe-pending-messages.js +1 -2
- package/dist/bin/exe-pending-notifications.js +0 -1
- package/dist/bin/exe-pending-reviews.js +1 -2
- package/dist/bin/exe-review.js +0 -1
- package/dist/bin/exe-search.js +2 -3
- package/dist/bin/exe-session-cleanup.js +4 -5
- package/dist/bin/exe-status.js +0 -1
- package/dist/bin/exe-team.js +0 -1
- package/dist/bin/git-sweep.js +0 -1
- package/dist/bin/graph-backfill.js +5 -6
- package/dist/bin/graph-export.js +0 -1
- package/dist/bin/scan-tasks.js +0 -1
- package/dist/bin/setup.js +1460 -115
- package/dist/bin/shard-migrate.js +0 -1
- package/dist/bin/wiki-sync.js +0 -1
- package/dist/gateway/index.js +16 -17
- package/dist/hooks/bug-report-worker.js +11 -12
- package/dist/hooks/commit-complete.js +0 -1
- package/dist/hooks/error-recall.js +2 -3
- package/dist/hooks/ingest-worker.js +14 -15
- package/dist/hooks/instructions-loaded.js +0 -1
- package/dist/hooks/notification.js +0 -1
- package/dist/hooks/post-compact.js +0 -1
- package/dist/hooks/pre-compact.js +2 -3
- package/dist/hooks/pre-tool-use.js +0 -1
- package/dist/hooks/prompt-ingest-worker.js +2 -3
- package/dist/hooks/prompt-submit.js +6 -7
- package/dist/hooks/response-ingest-worker.js +2 -3
- package/dist/hooks/session-end.js +3 -4
- package/dist/hooks/session-start.js +2 -3
- package/dist/hooks/stop.js +2 -3
- package/dist/hooks/subagent-stop.js +0 -1
- package/dist/hooks/summary-worker.js +51 -74
- package/dist/index.js +7 -8
- package/dist/lib/cloud-sync.js +21 -12
- package/dist/lib/consolidation.js +0 -1
- package/dist/lib/exe-daemon.js +33 -65
- package/dist/lib/hybrid-search.js +2 -3
- package/dist/lib/keychain.js +19 -58
- package/dist/lib/schedules.js +2 -3
- package/dist/lib/store.js +0 -1
- package/dist/mcp/server.js +29 -30
- package/dist/runtime/index.js +2 -3
- package/dist/tui/App.js +24 -56
- package/package.json +1 -1
|
@@ -1543,7 +1543,6 @@ import { readFile, writeFile, unlink, mkdir, chmod } from "fs/promises";
|
|
|
1543
1543
|
import { existsSync } from "fs";
|
|
1544
1544
|
import path from "path";
|
|
1545
1545
|
import os from "os";
|
|
1546
|
-
import crypto from "crypto";
|
|
1547
1546
|
var SERVICE = "exe-mem";
|
|
1548
1547
|
var ACCOUNT = "master-key";
|
|
1549
1548
|
function getKeyDir() {
|
package/dist/bin/wiki-sync.js
CHANGED
|
@@ -1543,7 +1543,6 @@ import { readFile, writeFile, unlink, mkdir, chmod } from "fs/promises";
|
|
|
1543
1543
|
import { existsSync } from "fs";
|
|
1544
1544
|
import path from "path";
|
|
1545
1545
|
import os from "os";
|
|
1546
|
-
import crypto from "crypto";
|
|
1547
1546
|
var SERVICE = "exe-mem";
|
|
1548
1547
|
var ACCOUNT = "master-key";
|
|
1549
1548
|
function getKeyDir() {
|
package/dist/gateway/index.js
CHANGED
|
@@ -1916,7 +1916,6 @@ import { readFile as readFile2, writeFile as writeFile2, unlink, mkdir as mkdir2
|
|
|
1916
1916
|
import { existsSync as existsSync3 } from "fs";
|
|
1917
1917
|
import path3 from "path";
|
|
1918
1918
|
import os2 from "os";
|
|
1919
|
-
import crypto from "crypto";
|
|
1920
1919
|
function getKeyDir() {
|
|
1921
1920
|
return process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? path3.join(os2.homedir(), ".exe-os");
|
|
1922
1921
|
}
|
|
@@ -3499,7 +3498,7 @@ var init_plan_limits = __esm({
|
|
|
3499
3498
|
});
|
|
3500
3499
|
|
|
3501
3500
|
// src/lib/notifications.ts
|
|
3502
|
-
import
|
|
3501
|
+
import crypto2 from "crypto";
|
|
3503
3502
|
import path11 from "path";
|
|
3504
3503
|
import os6 from "os";
|
|
3505
3504
|
import {
|
|
@@ -3512,7 +3511,7 @@ import {
|
|
|
3512
3511
|
async function writeNotification(notification) {
|
|
3513
3512
|
try {
|
|
3514
3513
|
const client = getClient();
|
|
3515
|
-
const id =
|
|
3514
|
+
const id = crypto2.randomUUID();
|
|
3516
3515
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
3517
3516
|
await client.execute({
|
|
3518
3517
|
sql: `INSERT INTO notifications (id, agent_id, agent_role, event, project, summary, task_file, read, created_at)
|
|
@@ -3551,7 +3550,7 @@ var init_notifications = __esm({
|
|
|
3551
3550
|
});
|
|
3552
3551
|
|
|
3553
3552
|
// src/lib/session-kill-telemetry.ts
|
|
3554
|
-
import
|
|
3553
|
+
import crypto3 from "crypto";
|
|
3555
3554
|
async function recordSessionKill(input) {
|
|
3556
3555
|
try {
|
|
3557
3556
|
const client = getClient();
|
|
@@ -3561,7 +3560,7 @@ async function recordSessionKill(input) {
|
|
|
3561
3560
|
ticks_idle, estimated_tokens_saved)
|
|
3562
3561
|
VALUES (?, ?, ?, ?, ?, ?, ?)`,
|
|
3563
3562
|
args: [
|
|
3564
|
-
|
|
3563
|
+
crypto3.randomUUID(),
|
|
3565
3564
|
input.sessionName,
|
|
3566
3565
|
input.agentId,
|
|
3567
3566
|
(/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -3609,7 +3608,7 @@ var init_task_scope = __esm({
|
|
|
3609
3608
|
});
|
|
3610
3609
|
|
|
3611
3610
|
// src/lib/tasks-crud.ts
|
|
3612
|
-
import
|
|
3611
|
+
import crypto4 from "crypto";
|
|
3613
3612
|
import path12 from "path";
|
|
3614
3613
|
import { execSync as execSync4 } from "child_process";
|
|
3615
3614
|
import { mkdir as mkdir4, writeFile as writeFile4, appendFile } from "fs/promises";
|
|
@@ -3700,7 +3699,7 @@ async function resolveTask(client, identifier, scopeSession) {
|
|
|
3700
3699
|
}
|
|
3701
3700
|
async function createTaskCore(input) {
|
|
3702
3701
|
const client = getClient();
|
|
3703
|
-
const id =
|
|
3702
|
+
const id = crypto4.randomUUID();
|
|
3704
3703
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
3705
3704
|
const slug = slugify(input.title);
|
|
3706
3705
|
const taskFile = input.taskFile ?? `exe/${input.assignedTo}/${slug}.md`;
|
|
@@ -4486,10 +4485,10 @@ var init_tasks_notify = __esm({
|
|
|
4486
4485
|
});
|
|
4487
4486
|
|
|
4488
4487
|
// src/lib/behaviors.ts
|
|
4489
|
-
import
|
|
4488
|
+
import crypto5 from "crypto";
|
|
4490
4489
|
async function storeBehavior(opts) {
|
|
4491
4490
|
const client = getClient();
|
|
4492
|
-
const id =
|
|
4491
|
+
const id = crypto5.randomUUID();
|
|
4493
4492
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
4494
4493
|
await client.execute({
|
|
4495
4494
|
sql: `INSERT INTO behaviors (id, agent_id, project_name, domain, priority, content, active, created_at, updated_at)
|
|
@@ -4518,7 +4517,7 @@ __export(skill_learning_exports, {
|
|
|
4518
4517
|
storeTrajectory: () => storeTrajectory,
|
|
4519
4518
|
sweepTrajectories: () => sweepTrajectories
|
|
4520
4519
|
});
|
|
4521
|
-
import
|
|
4520
|
+
import crypto6 from "crypto";
|
|
4522
4521
|
async function extractTrajectory(taskId, agentId) {
|
|
4523
4522
|
const client = getClient();
|
|
4524
4523
|
const result = await client.execute({
|
|
@@ -4547,11 +4546,11 @@ async function extractTrajectory(taskId, agentId) {
|
|
|
4547
4546
|
return signature;
|
|
4548
4547
|
}
|
|
4549
4548
|
function hashSignature(signature) {
|
|
4550
|
-
return
|
|
4549
|
+
return crypto6.createHash("sha256").update(signature.join("|")).digest("hex").slice(0, 16);
|
|
4551
4550
|
}
|
|
4552
4551
|
async function storeTrajectory(opts) {
|
|
4553
4552
|
const client = getClient();
|
|
4554
|
-
const id =
|
|
4553
|
+
const id = crypto6.randomUUID();
|
|
4555
4554
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
4556
4555
|
const signatureHash = hashSignature(opts.signature);
|
|
4557
4556
|
await client.execute({
|
|
@@ -5929,10 +5928,10 @@ __export(messaging_exports, {
|
|
|
5929
5928
|
sendMessage: () => sendMessage,
|
|
5930
5929
|
setWsClientSend: () => setWsClientSend
|
|
5931
5930
|
});
|
|
5932
|
-
import
|
|
5931
|
+
import crypto7 from "crypto";
|
|
5933
5932
|
function generateUlid() {
|
|
5934
5933
|
const timestamp = Date.now().toString(36).padStart(10, "0");
|
|
5935
|
-
const random =
|
|
5934
|
+
const random = crypto7.randomBytes(10).toString("hex").slice(0, 16);
|
|
5936
5935
|
return (timestamp + random).toUpperCase();
|
|
5937
5936
|
}
|
|
5938
5937
|
function rowToMessage(row) {
|
|
@@ -6355,11 +6354,11 @@ init_crm_bridge();
|
|
|
6355
6354
|
|
|
6356
6355
|
// src/lib/pipeline-router.ts
|
|
6357
6356
|
init_database();
|
|
6358
|
-
import
|
|
6357
|
+
import crypto from "crypto";
|
|
6359
6358
|
async function sinkConversationStore(msg, agentResponse, agentName) {
|
|
6360
6359
|
try {
|
|
6361
6360
|
const client = getClient();
|
|
6362
|
-
const id =
|
|
6361
|
+
const id = crypto.randomUUID();
|
|
6363
6362
|
const mediaJson = msg.media ? JSON.stringify(msg.media) : null;
|
|
6364
6363
|
await client.execute({
|
|
6365
6364
|
sql: `INSERT INTO conversations
|
|
@@ -6409,7 +6408,7 @@ async function sinkMemory(msg, agentResponse, agentName) {
|
|
|
6409
6408
|
].filter(Boolean).join("\n");
|
|
6410
6409
|
const vector = await embed2(rawText);
|
|
6411
6410
|
await writeMemory2({
|
|
6412
|
-
id:
|
|
6411
|
+
id: crypto.randomUUID(),
|
|
6413
6412
|
agent_id: agentName ?? "gateway",
|
|
6414
6413
|
agent_role: "gateway",
|
|
6415
6414
|
session_id: `gateway-${msg.platform}`,
|
|
@@ -1593,7 +1593,7 @@ ${p.content}`).join("\n\n");
|
|
|
1593
1593
|
});
|
|
1594
1594
|
|
|
1595
1595
|
// src/lib/notifications.ts
|
|
1596
|
-
import
|
|
1596
|
+
import crypto from "crypto";
|
|
1597
1597
|
import path4 from "path";
|
|
1598
1598
|
import os3 from "os";
|
|
1599
1599
|
import {
|
|
@@ -1606,7 +1606,7 @@ import {
|
|
|
1606
1606
|
async function writeNotification(notification) {
|
|
1607
1607
|
try {
|
|
1608
1608
|
const client = getClient();
|
|
1609
|
-
const id =
|
|
1609
|
+
const id = crypto.randomUUID();
|
|
1610
1610
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
1611
1611
|
await client.execute({
|
|
1612
1612
|
sql: `INSERT INTO notifications (id, agent_id, agent_role, event, project, summary, task_file, read, created_at)
|
|
@@ -2181,7 +2181,7 @@ var init_plan_limits = __esm({
|
|
|
2181
2181
|
});
|
|
2182
2182
|
|
|
2183
2183
|
// src/lib/session-kill-telemetry.ts
|
|
2184
|
-
import
|
|
2184
|
+
import crypto2 from "crypto";
|
|
2185
2185
|
async function recordSessionKill(input) {
|
|
2186
2186
|
try {
|
|
2187
2187
|
const client = getClient();
|
|
@@ -2191,7 +2191,7 @@ async function recordSessionKill(input) {
|
|
|
2191
2191
|
ticks_idle, estimated_tokens_saved)
|
|
2192
2192
|
VALUES (?, ?, ?, ?, ?, ?, ?)`,
|
|
2193
2193
|
args: [
|
|
2194
|
-
|
|
2194
|
+
crypto2.randomUUID(),
|
|
2195
2195
|
input.sessionName,
|
|
2196
2196
|
input.agentId,
|
|
2197
2197
|
(/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -3175,7 +3175,7 @@ var init_task_scope = __esm({
|
|
|
3175
3175
|
});
|
|
3176
3176
|
|
|
3177
3177
|
// src/lib/tasks-crud.ts
|
|
3178
|
-
import
|
|
3178
|
+
import crypto3 from "crypto";
|
|
3179
3179
|
import path11 from "path";
|
|
3180
3180
|
import { execSync as execSync5 } from "child_process";
|
|
3181
3181
|
import { mkdir as mkdir4, writeFile as writeFile4, appendFile } from "fs/promises";
|
|
@@ -3266,7 +3266,7 @@ async function resolveTask(client, identifier, scopeSession) {
|
|
|
3266
3266
|
}
|
|
3267
3267
|
async function createTaskCore(input) {
|
|
3268
3268
|
const client = getClient();
|
|
3269
|
-
const id =
|
|
3269
|
+
const id = crypto3.randomUUID();
|
|
3270
3270
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
3271
3271
|
const slug = slugify(input.title);
|
|
3272
3272
|
const taskFile = input.taskFile ?? `exe/${input.assignedTo}/${slug}.md`;
|
|
@@ -4052,10 +4052,10 @@ var init_tasks_notify = __esm({
|
|
|
4052
4052
|
});
|
|
4053
4053
|
|
|
4054
4054
|
// src/lib/behaviors.ts
|
|
4055
|
-
import
|
|
4055
|
+
import crypto4 from "crypto";
|
|
4056
4056
|
async function storeBehavior(opts) {
|
|
4057
4057
|
const client = getClient();
|
|
4058
|
-
const id =
|
|
4058
|
+
const id = crypto4.randomUUID();
|
|
4059
4059
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
4060
4060
|
await client.execute({
|
|
4061
4061
|
sql: `INSERT INTO behaviors (id, agent_id, project_name, domain, priority, content, active, created_at, updated_at)
|
|
@@ -4084,7 +4084,7 @@ __export(skill_learning_exports, {
|
|
|
4084
4084
|
storeTrajectory: () => storeTrajectory,
|
|
4085
4085
|
sweepTrajectories: () => sweepTrajectories
|
|
4086
4086
|
});
|
|
4087
|
-
import
|
|
4087
|
+
import crypto5 from "crypto";
|
|
4088
4088
|
async function extractTrajectory(taskId, agentId) {
|
|
4089
4089
|
const client = getClient();
|
|
4090
4090
|
const result = await client.execute({
|
|
@@ -4113,11 +4113,11 @@ async function extractTrajectory(taskId, agentId) {
|
|
|
4113
4113
|
return signature;
|
|
4114
4114
|
}
|
|
4115
4115
|
function hashSignature(signature) {
|
|
4116
|
-
return
|
|
4116
|
+
return crypto5.createHash("sha256").update(signature.join("|")).digest("hex").slice(0, 16);
|
|
4117
4117
|
}
|
|
4118
4118
|
async function storeTrajectory(opts) {
|
|
4119
4119
|
const client = getClient();
|
|
4120
|
-
const id =
|
|
4120
|
+
const id = crypto5.randomUUID();
|
|
4121
4121
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
4122
4122
|
const signatureHash = hashSignature(opts.signature);
|
|
4123
4123
|
await client.execute({
|
|
@@ -4550,7 +4550,6 @@ import { readFile, writeFile, unlink, mkdir, chmod } from "fs/promises";
|
|
|
4550
4550
|
import { existsSync } from "fs";
|
|
4551
4551
|
import path from "path";
|
|
4552
4552
|
import os from "os";
|
|
4553
|
-
import crypto from "crypto";
|
|
4554
4553
|
var SERVICE = "exe-mem";
|
|
4555
4554
|
var ACCOUNT = "master-key";
|
|
4556
4555
|
function getKeyDir() {
|
|
@@ -4066,7 +4066,6 @@ import { readFile as readFile4, writeFile as writeFile5, unlink, mkdir as mkdir4
|
|
|
4066
4066
|
import { existsSync as existsSync11 } from "fs";
|
|
4067
4067
|
import path14 from "path";
|
|
4068
4068
|
import os6 from "os";
|
|
4069
|
-
import crypto6 from "crypto";
|
|
4070
4069
|
function getKeyDir() {
|
|
4071
4070
|
return process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? path14.join(os6.homedir(), ".exe-os");
|
|
4072
4071
|
}
|
|
@@ -1185,7 +1185,6 @@ import { readFile as readFile2, writeFile as writeFile2, unlink, mkdir as mkdir2
|
|
|
1185
1185
|
import { existsSync as existsSync2 } from "fs";
|
|
1186
1186
|
import path2 from "path";
|
|
1187
1187
|
import os2 from "os";
|
|
1188
|
-
import crypto2 from "crypto";
|
|
1189
1188
|
function getKeyDir() {
|
|
1190
1189
|
return process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? path2.join(os2.homedir(), ".exe-os");
|
|
1191
1190
|
}
|
|
@@ -2752,7 +2751,7 @@ __export(file_grep_exports, {
|
|
|
2752
2751
|
import { execSync as execSync2 } from "child_process";
|
|
2753
2752
|
import { readFileSync as readFileSync3, readdirSync as readdirSync2, statSync as statSync2, existsSync as existsSync5 } from "fs";
|
|
2754
2753
|
import path6 from "path";
|
|
2755
|
-
import
|
|
2754
|
+
import crypto2 from "crypto";
|
|
2756
2755
|
function hasRipgrep() {
|
|
2757
2756
|
if (_hasRg === null) {
|
|
2758
2757
|
try {
|
|
@@ -2785,7 +2784,7 @@ async function grepProjectFiles(query, projectRoot, options) {
|
|
|
2785
2784
|
const chunkCtx = getChunkContext(hit.filePath, hit.lineNumber);
|
|
2786
2785
|
const prefix = chunkCtx ? `[file: ${hit.filePath}:${hit.lineNumber} in ${chunkCtx}]` : `[file: ${hit.filePath}:${hit.lineNumber}]`;
|
|
2787
2786
|
return {
|
|
2788
|
-
id:
|
|
2787
|
+
id: crypto2.createHash("sha256").update(`${hit.filePath}:${hit.lineNumber}`).digest("hex").slice(0, 36),
|
|
2789
2788
|
agent_id: "project",
|
|
2790
2789
|
agent_role: "file",
|
|
2791
2790
|
session_id: "file-grep",
|
|
@@ -1764,7 +1764,7 @@ ${p.content}`).join("\n\n");
|
|
|
1764
1764
|
});
|
|
1765
1765
|
|
|
1766
1766
|
// src/lib/notifications.ts
|
|
1767
|
-
import
|
|
1767
|
+
import crypto2 from "crypto";
|
|
1768
1768
|
import path6 from "path";
|
|
1769
1769
|
import os3 from "os";
|
|
1770
1770
|
import {
|
|
@@ -1777,7 +1777,7 @@ import {
|
|
|
1777
1777
|
async function writeNotification(notification) {
|
|
1778
1778
|
try {
|
|
1779
1779
|
const client = getClient();
|
|
1780
|
-
const id =
|
|
1780
|
+
const id = crypto2.randomUUID();
|
|
1781
1781
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
1782
1782
|
await client.execute({
|
|
1783
1783
|
sql: `INSERT INTO notifications (id, agent_id, agent_role, event, project, summary, task_file, read, created_at)
|
|
@@ -2861,7 +2861,7 @@ var init_intercom_queue = __esm({
|
|
|
2861
2861
|
});
|
|
2862
2862
|
|
|
2863
2863
|
// src/lib/session-kill-telemetry.ts
|
|
2864
|
-
import
|
|
2864
|
+
import crypto3 from "crypto";
|
|
2865
2865
|
async function recordSessionKill(input2) {
|
|
2866
2866
|
try {
|
|
2867
2867
|
const client = getClient();
|
|
@@ -2871,7 +2871,7 @@ async function recordSessionKill(input2) {
|
|
|
2871
2871
|
ticks_idle, estimated_tokens_saved)
|
|
2872
2872
|
VALUES (?, ?, ?, ?, ?, ?, ?)`,
|
|
2873
2873
|
args: [
|
|
2874
|
-
|
|
2874
|
+
crypto3.randomUUID(),
|
|
2875
2875
|
input2.sessionName,
|
|
2876
2876
|
input2.agentId,
|
|
2877
2877
|
(/* @__PURE__ */ new Date()).toISOString(),
|
|
@@ -3855,7 +3855,7 @@ var init_task_scope = __esm({
|
|
|
3855
3855
|
});
|
|
3856
3856
|
|
|
3857
3857
|
// src/lib/tasks-crud.ts
|
|
3858
|
-
import
|
|
3858
|
+
import crypto4 from "crypto";
|
|
3859
3859
|
import path14 from "path";
|
|
3860
3860
|
import { execSync as execSync7 } from "child_process";
|
|
3861
3861
|
import { mkdir as mkdir4, writeFile as writeFile4, appendFile } from "fs/promises";
|
|
@@ -3946,7 +3946,7 @@ async function resolveTask(client, identifier, scopeSession) {
|
|
|
3946
3946
|
}
|
|
3947
3947
|
async function createTaskCore(input2) {
|
|
3948
3948
|
const client = getClient();
|
|
3949
|
-
const id =
|
|
3949
|
+
const id = crypto4.randomUUID();
|
|
3950
3950
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
3951
3951
|
const slug = slugify(input2.title);
|
|
3952
3952
|
const taskFile = input2.taskFile ?? `exe/${input2.assignedTo}/${slug}.md`;
|
|
@@ -4690,10 +4690,10 @@ var init_tasks_notify = __esm({
|
|
|
4690
4690
|
});
|
|
4691
4691
|
|
|
4692
4692
|
// src/lib/behaviors.ts
|
|
4693
|
-
import
|
|
4693
|
+
import crypto5 from "crypto";
|
|
4694
4694
|
async function storeBehavior(opts) {
|
|
4695
4695
|
const client = getClient();
|
|
4696
|
-
const id =
|
|
4696
|
+
const id = crypto5.randomUUID();
|
|
4697
4697
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
4698
4698
|
await client.execute({
|
|
4699
4699
|
sql: `INSERT INTO behaviors (id, agent_id, project_name, domain, priority, content, active, created_at, updated_at)
|
|
@@ -4722,7 +4722,7 @@ __export(skill_learning_exports, {
|
|
|
4722
4722
|
storeTrajectory: () => storeTrajectory,
|
|
4723
4723
|
sweepTrajectories: () => sweepTrajectories
|
|
4724
4724
|
});
|
|
4725
|
-
import
|
|
4725
|
+
import crypto6 from "crypto";
|
|
4726
4726
|
async function extractTrajectory(taskId, agentId) {
|
|
4727
4727
|
const client = getClient();
|
|
4728
4728
|
const result = await client.execute({
|
|
@@ -4751,11 +4751,11 @@ async function extractTrajectory(taskId, agentId) {
|
|
|
4751
4751
|
return signature;
|
|
4752
4752
|
}
|
|
4753
4753
|
function hashSignature(signature) {
|
|
4754
|
-
return
|
|
4754
|
+
return crypto6.createHash("sha256").update(signature.join("|")).digest("hex").slice(0, 16);
|
|
4755
4755
|
}
|
|
4756
4756
|
async function storeTrajectory(opts) {
|
|
4757
4757
|
const client = getClient();
|
|
4758
|
-
const id =
|
|
4758
|
+
const id = crypto6.randomUUID();
|
|
4759
4759
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
4760
4760
|
const signatureHash = hashSignature(opts.signature);
|
|
4761
4761
|
await client.execute({
|
|
@@ -5291,7 +5291,7 @@ var init_worker_gate = __esm({
|
|
|
5291
5291
|
});
|
|
5292
5292
|
|
|
5293
5293
|
// src/adapters/claude/hooks/ingest-worker.ts
|
|
5294
|
-
import
|
|
5294
|
+
import crypto7 from "crypto";
|
|
5295
5295
|
import { execSync as execSync8 } from "child_process";
|
|
5296
5296
|
import { mkdirSync as mkdirSync8, writeFileSync as writeFileSync7 } from "fs";
|
|
5297
5297
|
import path19 from "path";
|
|
@@ -5409,7 +5409,6 @@ import { readFile, writeFile, unlink, mkdir, chmod } from "fs/promises";
|
|
|
5409
5409
|
import { existsSync as existsSync2 } from "fs";
|
|
5410
5410
|
import path3 from "path";
|
|
5411
5411
|
import os from "os";
|
|
5412
|
-
import crypto2 from "crypto";
|
|
5413
5412
|
var SERVICE = "exe-mem";
|
|
5414
5413
|
var ACCOUNT = "master-key";
|
|
5415
5414
|
function getKeyDir() {
|
|
@@ -5981,7 +5980,7 @@ process.stdin.on("end", async () => {
|
|
|
5981
5980
|
}
|
|
5982
5981
|
const agentId = process.env.AGENT_ID;
|
|
5983
5982
|
await writeMemory({
|
|
5984
|
-
id:
|
|
5983
|
+
id: crypto7.randomUUID(),
|
|
5985
5984
|
agent_id: agentId,
|
|
5986
5985
|
agent_role: process.env.AGENT_ROLE ?? "unknown",
|
|
5987
5986
|
session_id: data.session_id,
|
|
@@ -6091,7 +6090,7 @@ process.stdin.on("end", async () => {
|
|
|
6091
6090
|
});
|
|
6092
6091
|
const assignmentText = `TASK ASSIGNED: ${title} \u2192 ${employee} [${priority}] in ${projectName}`;
|
|
6093
6092
|
await writeMemory({
|
|
6094
|
-
id:
|
|
6093
|
+
id: crypto7.randomUUID(),
|
|
6095
6094
|
agent_id: assignedBy,
|
|
6096
6095
|
agent_role: "COO",
|
|
6097
6096
|
session_id: data.session_id,
|
|
@@ -1140,7 +1140,6 @@ import { readFile as readFile2, writeFile as writeFile2, unlink, mkdir as mkdir2
|
|
|
1140
1140
|
import { existsSync as existsSync3 } from "fs";
|
|
1141
1141
|
import path4 from "path";
|
|
1142
1142
|
import os2 from "os";
|
|
1143
|
-
import crypto from "crypto";
|
|
1144
1143
|
function getKeyDir() {
|
|
1145
1144
|
return process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? path4.join(os2.homedir(), ".exe-os");
|
|
1146
1145
|
}
|
|
@@ -1140,7 +1140,6 @@ import { readFile as readFile2, writeFile as writeFile2, unlink, mkdir as mkdir2
|
|
|
1140
1140
|
import { existsSync as existsSync2 } from "fs";
|
|
1141
1141
|
import path3 from "path";
|
|
1142
1142
|
import os2 from "os";
|
|
1143
|
-
import crypto from "crypto";
|
|
1144
1143
|
function getKeyDir() {
|
|
1145
1144
|
return process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? path3.join(os2.homedir(), ".exe-os");
|
|
1146
1145
|
}
|
|
@@ -1469,7 +1469,6 @@ import { readFile as readFile3, writeFile as writeFile3, unlink, mkdir as mkdir3
|
|
|
1469
1469
|
import { existsSync as existsSync7 } from "fs";
|
|
1470
1470
|
import path9 from "path";
|
|
1471
1471
|
import os5 from "os";
|
|
1472
|
-
import crypto from "crypto";
|
|
1473
1472
|
function getKeyDir() {
|
|
1474
1473
|
return process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? path9.join(os5.homedir(), ".exe-os");
|
|
1475
1474
|
}
|
|
@@ -4051,7 +4051,6 @@ import { readFile as readFile4, writeFile as writeFile5, unlink, mkdir as mkdir4
|
|
|
4051
4051
|
import { existsSync as existsSync11 } from "fs";
|
|
4052
4052
|
import path15 from "path";
|
|
4053
4053
|
import os6 from "os";
|
|
4054
|
-
import crypto6 from "crypto";
|
|
4055
4054
|
function getKeyDir() {
|
|
4056
4055
|
return process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? path15.join(os6.homedir(), ".exe-os");
|
|
4057
4056
|
}
|
|
@@ -5007,7 +5006,7 @@ var init_store = __esm({
|
|
|
5007
5006
|
});
|
|
5008
5007
|
|
|
5009
5008
|
// src/adapters/claude/hooks/pre-compact.ts
|
|
5010
|
-
import
|
|
5009
|
+
import crypto6 from "crypto";
|
|
5011
5010
|
|
|
5012
5011
|
// src/adapters/claude/active-agent.ts
|
|
5013
5012
|
init_config();
|
|
@@ -5146,7 +5145,7 @@ ${taskLines}`);
|
|
|
5146
5145
|
recoveryLines.push(`Files: ${lastCheckpoint.files_touched.join(", ")}`);
|
|
5147
5146
|
}
|
|
5148
5147
|
await writeMemory2({
|
|
5149
|
-
id:
|
|
5148
|
+
id: crypto6.randomUUID(),
|
|
5150
5149
|
agent_id: agent.agentId,
|
|
5151
5150
|
agent_role: agent.agentRole,
|
|
5152
5151
|
session_id: payload.session_id,
|
|
@@ -1766,7 +1766,6 @@ import { readFile as readFile3, writeFile as writeFile3, unlink, mkdir as mkdir3
|
|
|
1766
1766
|
import { existsSync as existsSync8 } from "fs";
|
|
1767
1767
|
import path10 from "path";
|
|
1768
1768
|
import os6 from "os";
|
|
1769
|
-
import crypto from "crypto";
|
|
1770
1769
|
function getKeyDir() {
|
|
1771
1770
|
return process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? path10.join(os6.homedir(), ".exe-os");
|
|
1772
1771
|
}
|
|
@@ -2013,7 +2013,7 @@ var init_embedder = __esm({
|
|
|
2013
2013
|
});
|
|
2014
2014
|
|
|
2015
2015
|
// src/adapters/claude/hooks/prompt-ingest-worker.ts
|
|
2016
|
-
import
|
|
2016
|
+
import crypto from "crypto";
|
|
2017
2017
|
import { writeFileSync as writeFileSync2 } from "fs";
|
|
2018
2018
|
import path9 from "path";
|
|
2019
2019
|
|
|
@@ -2062,7 +2062,6 @@ import { readFile, writeFile, unlink, mkdir, chmod } from "fs/promises";
|
|
|
2062
2062
|
import { existsSync } from "fs";
|
|
2063
2063
|
import path2 from "path";
|
|
2064
2064
|
import os from "os";
|
|
2065
|
-
import crypto from "crypto";
|
|
2066
2065
|
var SERVICE = "exe-mem";
|
|
2067
2066
|
var ACCOUNT = "master-key";
|
|
2068
2067
|
function getKeyDir() {
|
|
@@ -2724,7 +2723,7 @@ async function main() {
|
|
|
2724
2723
|
await assertMemoryLimit();
|
|
2725
2724
|
const confidence = agentId === "default" ? 0.9 : 0.7;
|
|
2726
2725
|
await writeMemory({
|
|
2727
|
-
id:
|
|
2726
|
+
id: crypto.randomUUID(),
|
|
2728
2727
|
agent_id: agentId,
|
|
2729
2728
|
agent_role: agentRole,
|
|
2730
2729
|
session_id: sessionId,
|
|
@@ -1202,7 +1202,6 @@ import { readFile as readFile2, writeFile as writeFile2, unlink, mkdir as mkdir2
|
|
|
1202
1202
|
import { existsSync as existsSync2 } from "fs";
|
|
1203
1203
|
import path2 from "path";
|
|
1204
1204
|
import os2 from "os";
|
|
1205
|
-
import crypto from "crypto";
|
|
1206
1205
|
function getKeyDir() {
|
|
1207
1206
|
return process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? path2.join(os2.homedir(), ".exe-os");
|
|
1208
1207
|
}
|
|
@@ -2769,7 +2768,7 @@ __export(file_grep_exports, {
|
|
|
2769
2768
|
import { execSync as execSync2 } from "child_process";
|
|
2770
2769
|
import { readFileSync as readFileSync3, readdirSync as readdirSync2, statSync as statSync2, existsSync as existsSync5 } from "fs";
|
|
2771
2770
|
import path6 from "path";
|
|
2772
|
-
import
|
|
2771
|
+
import crypto from "crypto";
|
|
2773
2772
|
function hasRipgrep() {
|
|
2774
2773
|
if (_hasRg === null) {
|
|
2775
2774
|
try {
|
|
@@ -2802,7 +2801,7 @@ async function grepProjectFiles(query, projectRoot, options) {
|
|
|
2802
2801
|
const chunkCtx = getChunkContext(hit.filePath, hit.lineNumber);
|
|
2803
2802
|
const prefix = chunkCtx ? `[file: ${hit.filePath}:${hit.lineNumber} in ${chunkCtx}]` : `[file: ${hit.filePath}:${hit.lineNumber}]`;
|
|
2804
2803
|
return {
|
|
2805
|
-
id:
|
|
2804
|
+
id: crypto.createHash("sha256").update(`${hit.filePath}:${hit.lineNumber}`).digest("hex").slice(0, 36),
|
|
2806
2805
|
agent_id: "project",
|
|
2807
2806
|
agent_role: "file",
|
|
2808
2807
|
session_id: "file-grep",
|
|
@@ -3661,10 +3660,10 @@ __export(messaging_exports, {
|
|
|
3661
3660
|
sendMessage: () => sendMessage,
|
|
3662
3661
|
setWsClientSend: () => setWsClientSend
|
|
3663
3662
|
});
|
|
3664
|
-
import
|
|
3663
|
+
import crypto2 from "crypto";
|
|
3665
3664
|
function generateUlid() {
|
|
3666
3665
|
const timestamp = Date.now().toString(36).padStart(10, "0");
|
|
3667
|
-
const random =
|
|
3666
|
+
const random = crypto2.randomBytes(10).toString("hex").slice(0, 16);
|
|
3668
3667
|
return (timestamp + random).toUpperCase();
|
|
3669
3668
|
}
|
|
3670
3669
|
function rowToMessage(row) {
|
|
@@ -3896,7 +3895,7 @@ var init_messaging = __esm({
|
|
|
3896
3895
|
});
|
|
3897
3896
|
|
|
3898
3897
|
// src/lib/notifications.ts
|
|
3899
|
-
import
|
|
3898
|
+
import crypto3 from "crypto";
|
|
3900
3899
|
import path15 from "path";
|
|
3901
3900
|
import os6 from "os";
|
|
3902
3901
|
import {
|
|
@@ -3909,7 +3908,7 @@ import {
|
|
|
3909
3908
|
async function writeNotification(notification) {
|
|
3910
3909
|
try {
|
|
3911
3910
|
const client = getClient();
|
|
3912
|
-
const id =
|
|
3911
|
+
const id = crypto3.randomUUID();
|
|
3913
3912
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
3914
3913
|
await client.execute({
|
|
3915
3914
|
sql: `INSERT INTO notifications (id, agent_id, agent_role, event, project, summary, task_file, read, created_at)
|
|
@@ -2405,7 +2405,7 @@ var init_plan_limits = __esm({
|
|
|
2405
2405
|
});
|
|
2406
2406
|
|
|
2407
2407
|
// src/adapters/claude/hooks/response-ingest-worker.ts
|
|
2408
|
-
import
|
|
2408
|
+
import crypto from "crypto";
|
|
2409
2409
|
import { writeFileSync as writeFileSync2 } from "fs";
|
|
2410
2410
|
import path9 from "path";
|
|
2411
2411
|
|
|
@@ -2454,7 +2454,6 @@ import { readFile, writeFile, unlink, mkdir, chmod } from "fs/promises";
|
|
|
2454
2454
|
import { existsSync } from "fs";
|
|
2455
2455
|
import path2 from "path";
|
|
2456
2456
|
import os from "os";
|
|
2457
|
-
import crypto from "crypto";
|
|
2458
2457
|
var SERVICE = "exe-mem";
|
|
2459
2458
|
var ACCOUNT = "master-key";
|
|
2460
2459
|
function getKeyDir() {
|
|
@@ -2858,7 +2857,7 @@ async function main() {
|
|
|
2858
2857
|
process.exit(0);
|
|
2859
2858
|
}
|
|
2860
2859
|
await writeMemory({
|
|
2861
|
-
id:
|
|
2860
|
+
id: crypto.randomUUID(),
|
|
2862
2861
|
agent_id: agentId,
|
|
2863
2862
|
agent_role: agentRole,
|
|
2864
2863
|
session_id: sessionId,
|
|
@@ -1469,7 +1469,6 @@ import { readFile as readFile3, writeFile as writeFile3, unlink, mkdir as mkdir3
|
|
|
1469
1469
|
import { existsSync as existsSync7 } from "fs";
|
|
1470
1470
|
import path9 from "path";
|
|
1471
1471
|
import os5 from "os";
|
|
1472
|
-
import crypto from "crypto";
|
|
1473
1472
|
function getKeyDir() {
|
|
1474
1473
|
return process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? path9.join(os5.homedir(), ".exe-os");
|
|
1475
1474
|
}
|
|
@@ -2491,7 +2490,7 @@ __export(notifications_exports, {
|
|
|
2491
2490
|
readUnreadNotifications: () => readUnreadNotifications,
|
|
2492
2491
|
writeNotification: () => writeNotification
|
|
2493
2492
|
});
|
|
2494
|
-
import
|
|
2493
|
+
import crypto from "crypto";
|
|
2495
2494
|
import path11 from "path";
|
|
2496
2495
|
import os6 from "os";
|
|
2497
2496
|
import {
|
|
@@ -2504,7 +2503,7 @@ import {
|
|
|
2504
2503
|
async function writeNotification(notification) {
|
|
2505
2504
|
try {
|
|
2506
2505
|
const client = getClient();
|
|
2507
|
-
const id =
|
|
2506
|
+
const id = crypto.randomUUID();
|
|
2508
2507
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
2509
2508
|
await client.execute({
|
|
2510
2509
|
sql: `INSERT INTO notifications (id, agent_id, agent_role, event, project, summary, task_file, read, created_at)
|
|
@@ -2650,7 +2649,7 @@ async function migrateJsonNotifications() {
|
|
|
2650
2649
|
sql: `INSERT OR IGNORE INTO notifications (id, agent_id, agent_role, event, project, summary, task_file, read, created_at)
|
|
2651
2650
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
2652
2651
|
args: [
|
|
2653
|
-
|
|
2652
|
+
crypto.randomUUID(),
|
|
2654
2653
|
data.agentId ?? "unknown",
|
|
2655
2654
|
data.agentRole ?? "unknown",
|
|
2656
2655
|
data.event ?? "session_summary",
|
|
@@ -1196,7 +1196,6 @@ import { readFile as readFile2, writeFile as writeFile2, unlink, mkdir as mkdir2
|
|
|
1196
1196
|
import { existsSync as existsSync2 } from "fs";
|
|
1197
1197
|
import path2 from "path";
|
|
1198
1198
|
import os2 from "os";
|
|
1199
|
-
import crypto from "crypto";
|
|
1200
1199
|
function getKeyDir() {
|
|
1201
1200
|
return process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? path2.join(os2.homedir(), ".exe-os");
|
|
1202
1201
|
}
|
|
@@ -2763,7 +2762,7 @@ __export(file_grep_exports, {
|
|
|
2763
2762
|
import { execSync as execSync2 } from "child_process";
|
|
2764
2763
|
import { readFileSync as readFileSync3, readdirSync as readdirSync2, statSync as statSync2, existsSync as existsSync5 } from "fs";
|
|
2765
2764
|
import path6 from "path";
|
|
2766
|
-
import
|
|
2765
|
+
import crypto from "crypto";
|
|
2767
2766
|
function hasRipgrep() {
|
|
2768
2767
|
if (_hasRg === null) {
|
|
2769
2768
|
try {
|
|
@@ -2796,7 +2795,7 @@ async function grepProjectFiles(query, projectRoot, options) {
|
|
|
2796
2795
|
const chunkCtx = getChunkContext(hit.filePath, hit.lineNumber);
|
|
2797
2796
|
const prefix = chunkCtx ? `[file: ${hit.filePath}:${hit.lineNumber} in ${chunkCtx}]` : `[file: ${hit.filePath}:${hit.lineNumber}]`;
|
|
2798
2797
|
return {
|
|
2799
|
-
id:
|
|
2798
|
+
id: crypto.createHash("sha256").update(`${hit.filePath}:${hit.lineNumber}`).digest("hex").slice(0, 36),
|
|
2800
2799
|
agent_id: "project",
|
|
2801
2800
|
agent_role: "file",
|
|
2802
2801
|
session_id: "file-grep",
|
package/dist/hooks/stop.js
CHANGED
|
@@ -1488,7 +1488,6 @@ import { readFile as readFile3, writeFile as writeFile3, unlink, mkdir as mkdir3
|
|
|
1488
1488
|
import { existsSync as existsSync7 } from "fs";
|
|
1489
1489
|
import path9 from "path";
|
|
1490
1490
|
import os5 from "os";
|
|
1491
|
-
import crypto from "crypto";
|
|
1492
1491
|
function getKeyDir() {
|
|
1493
1492
|
return process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? path9.join(os5.homedir(), ".exe-os");
|
|
1494
1493
|
}
|
|
@@ -2629,9 +2628,9 @@ process.stdin.on("end", () => {
|
|
|
2629
2628
|
"",
|
|
2630
2629
|
`Last response fragment: ${message.slice(0, 500)}`
|
|
2631
2630
|
].join("\n");
|
|
2632
|
-
const
|
|
2631
|
+
const crypto = await import("crypto");
|
|
2633
2632
|
await writeMemory2({
|
|
2634
|
-
id:
|
|
2633
|
+
id: crypto.randomUUID(),
|
|
2635
2634
|
agent_id: agent.agentId,
|
|
2636
2635
|
agent_role: agent.agentRole,
|
|
2637
2636
|
session_id: data.session_id,
|
|
@@ -1470,7 +1470,6 @@ import { readFile as readFile3, writeFile as writeFile3, unlink, mkdir as mkdir3
|
|
|
1470
1470
|
import { existsSync as existsSync7 } from "fs";
|
|
1471
1471
|
import path9 from "path";
|
|
1472
1472
|
import os5 from "os";
|
|
1473
|
-
import crypto from "crypto";
|
|
1474
1473
|
function getKeyDir() {
|
|
1475
1474
|
return process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? path9.join(os5.homedir(), ".exe-os");
|
|
1476
1475
|
}
|