@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.
Files changed (62) hide show
  1. package/dist/bin/backfill-conversations.js +2 -3
  2. package/dist/bin/backfill-responses.js +3 -4
  3. package/dist/bin/backfill-vectors.js +0 -1
  4. package/dist/bin/cleanup-stale-review-tasks.js +0 -1
  5. package/dist/bin/cli.js +1654 -397
  6. package/dist/bin/exe-assign.js +0 -1
  7. package/dist/bin/exe-boot.js +61 -84
  8. package/dist/bin/exe-cloud.js +28 -60
  9. package/dist/bin/exe-dispatch.js +0 -1
  10. package/dist/bin/exe-doctor.js +0 -1
  11. package/dist/bin/exe-export-behaviors.js +1 -2
  12. package/dist/bin/exe-forget.js +0 -1
  13. package/dist/bin/exe-gateway.js +16 -17
  14. package/dist/bin/exe-heartbeat.js +1 -2
  15. package/dist/bin/exe-kill.js +2 -3
  16. package/dist/bin/exe-launch-agent.js +1 -2
  17. package/dist/bin/exe-link.js +49 -78
  18. package/dist/bin/exe-pending-messages.js +1 -2
  19. package/dist/bin/exe-pending-notifications.js +0 -1
  20. package/dist/bin/exe-pending-reviews.js +1 -2
  21. package/dist/bin/exe-review.js +0 -1
  22. package/dist/bin/exe-search.js +2 -3
  23. package/dist/bin/exe-session-cleanup.js +4 -5
  24. package/dist/bin/exe-status.js +0 -1
  25. package/dist/bin/exe-team.js +0 -1
  26. package/dist/bin/git-sweep.js +0 -1
  27. package/dist/bin/graph-backfill.js +5 -6
  28. package/dist/bin/graph-export.js +0 -1
  29. package/dist/bin/scan-tasks.js +0 -1
  30. package/dist/bin/setup.js +1460 -115
  31. package/dist/bin/shard-migrate.js +0 -1
  32. package/dist/bin/wiki-sync.js +0 -1
  33. package/dist/gateway/index.js +16 -17
  34. package/dist/hooks/bug-report-worker.js +11 -12
  35. package/dist/hooks/commit-complete.js +0 -1
  36. package/dist/hooks/error-recall.js +2 -3
  37. package/dist/hooks/ingest-worker.js +14 -15
  38. package/dist/hooks/instructions-loaded.js +0 -1
  39. package/dist/hooks/notification.js +0 -1
  40. package/dist/hooks/post-compact.js +0 -1
  41. package/dist/hooks/pre-compact.js +2 -3
  42. package/dist/hooks/pre-tool-use.js +0 -1
  43. package/dist/hooks/prompt-ingest-worker.js +2 -3
  44. package/dist/hooks/prompt-submit.js +6 -7
  45. package/dist/hooks/response-ingest-worker.js +2 -3
  46. package/dist/hooks/session-end.js +3 -4
  47. package/dist/hooks/session-start.js +2 -3
  48. package/dist/hooks/stop.js +2 -3
  49. package/dist/hooks/subagent-stop.js +0 -1
  50. package/dist/hooks/summary-worker.js +51 -74
  51. package/dist/index.js +7 -8
  52. package/dist/lib/cloud-sync.js +21 -12
  53. package/dist/lib/consolidation.js +0 -1
  54. package/dist/lib/exe-daemon.js +33 -65
  55. package/dist/lib/hybrid-search.js +2 -3
  56. package/dist/lib/keychain.js +19 -58
  57. package/dist/lib/schedules.js +2 -3
  58. package/dist/lib/store.js +0 -1
  59. package/dist/mcp/server.js +29 -30
  60. package/dist/runtime/index.js +2 -3
  61. package/dist/tui/App.js +24 -56
  62. 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() {
@@ -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() {
@@ -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 crypto3 from "crypto";
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 = crypto3.randomUUID();
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 crypto4 from "crypto";
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
- crypto4.randomUUID(),
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 crypto5 from "crypto";
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 = crypto5.randomUUID();
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 crypto6 from "crypto";
4488
+ import crypto5 from "crypto";
4490
4489
  async function storeBehavior(opts) {
4491
4490
  const client = getClient();
4492
- const id = crypto6.randomUUID();
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 crypto7 from "crypto";
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 crypto7.createHash("sha256").update(signature.join("|")).digest("hex").slice(0, 16);
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 = crypto7.randomUUID();
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 crypto8 from "crypto";
5931
+ import crypto7 from "crypto";
5933
5932
  function generateUlid() {
5934
5933
  const timestamp = Date.now().toString(36).padStart(10, "0");
5935
- const random = crypto8.randomBytes(10).toString("hex").slice(0, 16);
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 crypto2 from "crypto";
6357
+ import crypto from "crypto";
6359
6358
  async function sinkConversationStore(msg, agentResponse, agentName) {
6360
6359
  try {
6361
6360
  const client = getClient();
6362
- const id = crypto2.randomUUID();
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: crypto2.randomUUID(),
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 crypto2 from "crypto";
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 = crypto2.randomUUID();
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 crypto3 from "crypto";
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
- crypto3.randomUUID(),
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 crypto4 from "crypto";
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 = crypto4.randomUUID();
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 crypto5 from "crypto";
4055
+ import crypto4 from "crypto";
4056
4056
  async function storeBehavior(opts) {
4057
4057
  const client = getClient();
4058
- const id = crypto5.randomUUID();
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 crypto6 from "crypto";
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 crypto6.createHash("sha256").update(signature.join("|")).digest("hex").slice(0, 16);
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 = crypto6.randomUUID();
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 crypto3 from "crypto";
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: crypto3.createHash("sha256").update(`${hit.filePath}:${hit.lineNumber}`).digest("hex").slice(0, 36),
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 crypto3 from "crypto";
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 = crypto3.randomUUID();
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 crypto4 from "crypto";
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
- crypto4.randomUUID(),
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 crypto5 from "crypto";
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 = crypto5.randomUUID();
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 crypto6 from "crypto";
4693
+ import crypto5 from "crypto";
4694
4694
  async function storeBehavior(opts) {
4695
4695
  const client = getClient();
4696
- const id = crypto6.randomUUID();
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 crypto7 from "crypto";
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 crypto7.createHash("sha256").update(signature.join("|")).digest("hex").slice(0, 16);
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 = crypto7.randomUUID();
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 crypto8 from "crypto";
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: crypto8.randomUUID(),
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: crypto8.randomUUID(),
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 crypto7 from "crypto";
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: crypto7.randomUUID(),
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 crypto2 from "crypto";
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: crypto2.randomUUID(),
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 crypto2 from "crypto";
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: crypto2.createHash("sha256").update(`${hit.filePath}:${hit.lineNumber}`).digest("hex").slice(0, 36),
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 crypto3 from "crypto";
3663
+ import crypto2 from "crypto";
3665
3664
  function generateUlid() {
3666
3665
  const timestamp = Date.now().toString(36).padStart(10, "0");
3667
- const random = crypto3.randomBytes(10).toString("hex").slice(0, 16);
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 crypto4 from "crypto";
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 = crypto4.randomUUID();
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 crypto2 from "crypto";
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: crypto2.randomUUID(),
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 crypto2 from "crypto";
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 = crypto2.randomUUID();
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
- crypto2.randomUUID(),
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 crypto2 from "crypto";
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: crypto2.createHash("sha256").update(`${hit.filePath}:${hit.lineNumber}`).digest("hex").slice(0, 36),
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",
@@ -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 crypto2 = await import("crypto");
2631
+ const crypto = await import("crypto");
2633
2632
  await writeMemory2({
2634
- id: crypto2.randomUUID(),
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
  }