@askexenow/exe-os 0.9.96 → 0.9.98

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 (77) hide show
  1. package/dist/bin/agentic-ontology-backfill.js +0 -29
  2. package/dist/bin/agentic-reflection-backfill.js +0 -29
  3. package/dist/bin/agentic-semantic-label.js +0 -29
  4. package/dist/bin/backfill-conversations.js +0 -29
  5. package/dist/bin/backfill-responses.js +0 -29
  6. package/dist/bin/backfill-vectors.js +0 -29
  7. package/dist/bin/bulk-sync-postgres.js +0 -29
  8. package/dist/bin/cleanup-stale-review-tasks.js +0 -29
  9. package/dist/bin/cli.js +4 -33
  10. package/dist/bin/exe-assign.js +0 -29
  11. package/dist/bin/exe-boot.js +0 -29
  12. package/dist/bin/exe-cloud.js +0 -29
  13. package/dist/bin/exe-dispatch.js +0 -29
  14. package/dist/bin/exe-doctor.js +0 -29
  15. package/dist/bin/exe-export-behaviors.js +0 -29
  16. package/dist/bin/exe-forget.js +0 -29
  17. package/dist/bin/exe-gateway.js +0 -29
  18. package/dist/bin/exe-heartbeat.js +0 -29
  19. package/dist/bin/exe-kill.js +0 -29
  20. package/dist/bin/exe-launch-agent.js +0 -29
  21. package/dist/bin/exe-pending-messages.js +0 -29
  22. package/dist/bin/exe-pending-notifications.js +0 -29
  23. package/dist/bin/exe-pending-reviews.js +0 -29
  24. package/dist/bin/exe-rename.js +0 -29
  25. package/dist/bin/exe-review.js +0 -29
  26. package/dist/bin/exe-search.js +0 -29
  27. package/dist/bin/exe-session-cleanup.js +0 -29
  28. package/dist/bin/exe-start-codex.js +0 -29
  29. package/dist/bin/exe-start-opencode.js +0 -29
  30. package/dist/bin/exe-status.js +0 -29
  31. package/dist/bin/exe-team.js +0 -29
  32. package/dist/bin/git-sweep.js +0 -29
  33. package/dist/bin/graph-backfill.js +0 -29
  34. package/dist/bin/graph-export.js +0 -29
  35. package/dist/bin/intercom-check.js +0 -29
  36. package/dist/bin/scan-tasks.js +0 -29
  37. package/dist/bin/setup.js +4 -33
  38. package/dist/bin/shard-migrate.js +0 -29
  39. package/dist/gateway/index.js +0 -29
  40. package/dist/hooks/bug-report-worker.js +0 -29
  41. package/dist/hooks/codex-stop-task-finalizer.js +0 -29
  42. package/dist/hooks/commit-complete.js +0 -29
  43. package/dist/hooks/error-recall.js +0 -29
  44. package/dist/hooks/ingest.js +0 -29
  45. package/dist/hooks/instructions-loaded.js +0 -29
  46. package/dist/hooks/notification.js +0 -29
  47. package/dist/hooks/post-compact.js +0 -29
  48. package/dist/hooks/post-tool-combined.js +0 -29
  49. package/dist/hooks/pre-compact.js +0 -29
  50. package/dist/hooks/pre-tool-use.js +0 -29
  51. package/dist/hooks/prompt-submit.js +0 -29
  52. package/dist/hooks/session-end.js +0 -29
  53. package/dist/hooks/session-start.js +0 -29
  54. package/dist/hooks/stop.js +0 -29
  55. package/dist/hooks/subagent-stop.js +0 -29
  56. package/dist/hooks/summary-worker.js +0 -29
  57. package/dist/index.js +0 -29
  58. package/dist/lib/cloud-sync.js +0 -29
  59. package/dist/lib/database.js +0 -35
  60. package/dist/lib/db-daemon-client.js +0 -36
  61. package/dist/lib/db.js +0 -35
  62. package/dist/lib/device-registry.js +0 -35
  63. package/dist/lib/embedder.js +0 -35
  64. package/dist/lib/exe-daemon-client.js +0 -36
  65. package/dist/lib/exe-daemon.js +0 -29
  66. package/dist/lib/hybrid-search.js +0 -29
  67. package/dist/lib/schedules.js +0 -29
  68. package/dist/lib/skill-learning.js +0 -35
  69. package/dist/lib/store.js +0 -29
  70. package/dist/lib/tasks.js +0 -29
  71. package/dist/lib/tmux-routing.js +0 -29
  72. package/dist/mcp/server.js +0 -29
  73. package/dist/mcp/tools/create-task.js +0 -29
  74. package/dist/mcp/tools/update-task.js +0 -29
  75. package/dist/runtime/index.js +0 -29
  76. package/dist/tui/App.js +0 -29
  77. package/package.json +1 -1
@@ -1055,40 +1055,11 @@ function findPackageRoot() {
1055
1055
  }
1056
1056
  return null;
1057
1057
  }
1058
- function getAvailableMemoryGB() {
1059
- if (process.platform === "darwin") {
1060
- try {
1061
- const { execSync: execSync4 } = __require("child_process");
1062
- const vmstat = execSync4("vm_stat", { encoding: "utf8" });
1063
- const pageSize = 16384;
1064
- const pageSizeMatch = vmstat.match(/page size of (\d+) bytes/);
1065
- const actualPageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : pageSize;
1066
- const free = vmstat.match(/Pages free:\s+(\d+)/);
1067
- const inactive = vmstat.match(/Pages inactive:\s+(\d+)/);
1068
- const speculative = vmstat.match(/Pages speculative:\s+(\d+)/);
1069
- const freePages = free ? parseInt(free[1], 10) : 0;
1070
- const inactivePages = inactive ? parseInt(inactive[1], 10) : 0;
1071
- const speculativePages = speculative ? parseInt(speculative[1], 10) : 0;
1072
- return (freePages + inactivePages + speculativePages) * actualPageSize / (1024 * 1024 * 1024);
1073
- } catch {
1074
- return os4.freemem() / (1024 * 1024 * 1024);
1075
- }
1076
- }
1077
- return os4.freemem() / (1024 * 1024 * 1024);
1078
- }
1079
1058
  function spawnDaemon() {
1080
- const freeGB = getAvailableMemoryGB();
1081
1059
  const totalGB = os4.totalmem() / (1024 * 1024 * 1024);
1082
1060
  if (totalGB <= 8) {
1083
1061
  process.stderr.write(
1084
1062
  `[exed-client] SKIP: ${totalGB.toFixed(0)}GB system \u2014 embedding daemon disabled. Using keyword search only. Minimum 16GB recommended for vector search.
1085
- `
1086
- );
1087
- return;
1088
- }
1089
- if (totalGB <= 16 && freeGB < 2) {
1090
- process.stderr.write(
1091
- `[exed-client] SKIP: low memory (${freeGB.toFixed(1)}GB available / ${totalGB.toFixed(0)}GB total). Embedding daemon not started \u2014 using keyword search only.
1092
1063
  `
1093
1064
  );
1094
1065
  return;
@@ -1055,40 +1055,11 @@ function findPackageRoot() {
1055
1055
  }
1056
1056
  return null;
1057
1057
  }
1058
- function getAvailableMemoryGB() {
1059
- if (process.platform === "darwin") {
1060
- try {
1061
- const { execSync: execSync4 } = __require("child_process");
1062
- const vmstat = execSync4("vm_stat", { encoding: "utf8" });
1063
- const pageSize = 16384;
1064
- const pageSizeMatch = vmstat.match(/page size of (\d+) bytes/);
1065
- const actualPageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : pageSize;
1066
- const free = vmstat.match(/Pages free:\s+(\d+)/);
1067
- const inactive = vmstat.match(/Pages inactive:\s+(\d+)/);
1068
- const speculative = vmstat.match(/Pages speculative:\s+(\d+)/);
1069
- const freePages = free ? parseInt(free[1], 10) : 0;
1070
- const inactivePages = inactive ? parseInt(inactive[1], 10) : 0;
1071
- const speculativePages = speculative ? parseInt(speculative[1], 10) : 0;
1072
- return (freePages + inactivePages + speculativePages) * actualPageSize / (1024 * 1024 * 1024);
1073
- } catch {
1074
- return os4.freemem() / (1024 * 1024 * 1024);
1075
- }
1076
- }
1077
- return os4.freemem() / (1024 * 1024 * 1024);
1078
- }
1079
1058
  function spawnDaemon() {
1080
- const freeGB = getAvailableMemoryGB();
1081
1059
  const totalGB = os4.totalmem() / (1024 * 1024 * 1024);
1082
1060
  if (totalGB <= 8) {
1083
1061
  process.stderr.write(
1084
1062
  `[exed-client] SKIP: ${totalGB.toFixed(0)}GB system \u2014 embedding daemon disabled. Using keyword search only. Minimum 16GB recommended for vector search.
1085
- `
1086
- );
1087
- return;
1088
- }
1089
- if (totalGB <= 16 && freeGB < 2) {
1090
- process.stderr.write(
1091
- `[exed-client] SKIP: low memory (${freeGB.toFixed(1)}GB available / ${totalGB.toFixed(0)}GB total). Embedding daemon not started \u2014 using keyword search only.
1092
1063
  `
1093
1064
  );
1094
1065
  return;
@@ -1055,40 +1055,11 @@ function findPackageRoot() {
1055
1055
  }
1056
1056
  return null;
1057
1057
  }
1058
- function getAvailableMemoryGB() {
1059
- if (process.platform === "darwin") {
1060
- try {
1061
- const { execSync: execSync4 } = __require("child_process");
1062
- const vmstat = execSync4("vm_stat", { encoding: "utf8" });
1063
- const pageSize = 16384;
1064
- const pageSizeMatch = vmstat.match(/page size of (\d+) bytes/);
1065
- const actualPageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : pageSize;
1066
- const free = vmstat.match(/Pages free:\s+(\d+)/);
1067
- const inactive = vmstat.match(/Pages inactive:\s+(\d+)/);
1068
- const speculative = vmstat.match(/Pages speculative:\s+(\d+)/);
1069
- const freePages = free ? parseInt(free[1], 10) : 0;
1070
- const inactivePages = inactive ? parseInt(inactive[1], 10) : 0;
1071
- const speculativePages = speculative ? parseInt(speculative[1], 10) : 0;
1072
- return (freePages + inactivePages + speculativePages) * actualPageSize / (1024 * 1024 * 1024);
1073
- } catch {
1074
- return os4.freemem() / (1024 * 1024 * 1024);
1075
- }
1076
- }
1077
- return os4.freemem() / (1024 * 1024 * 1024);
1078
- }
1079
1058
  function spawnDaemon() {
1080
- const freeGB = getAvailableMemoryGB();
1081
1059
  const totalGB = os4.totalmem() / (1024 * 1024 * 1024);
1082
1060
  if (totalGB <= 8) {
1083
1061
  process.stderr.write(
1084
1062
  `[exed-client] SKIP: ${totalGB.toFixed(0)}GB system \u2014 embedding daemon disabled. Using keyword search only. Minimum 16GB recommended for vector search.
1085
- `
1086
- );
1087
- return;
1088
- }
1089
- if (totalGB <= 16 && freeGB < 2) {
1090
- process.stderr.write(
1091
- `[exed-client] SKIP: low memory (${freeGB.toFixed(1)}GB available / ${totalGB.toFixed(0)}GB total). Embedding daemon not started \u2014 using keyword search only.
1092
1063
  `
1093
1064
  );
1094
1065
  return;
@@ -1059,40 +1059,11 @@ function findPackageRoot() {
1059
1059
  }
1060
1060
  return null;
1061
1061
  }
1062
- function getAvailableMemoryGB() {
1063
- if (process.platform === "darwin") {
1064
- try {
1065
- const { execSync: execSync4 } = __require("child_process");
1066
- const vmstat = execSync4("vm_stat", { encoding: "utf8" });
1067
- const pageSize = 16384;
1068
- const pageSizeMatch = vmstat.match(/page size of (\d+) bytes/);
1069
- const actualPageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : pageSize;
1070
- const free = vmstat.match(/Pages free:\s+(\d+)/);
1071
- const inactive = vmstat.match(/Pages inactive:\s+(\d+)/);
1072
- const speculative = vmstat.match(/Pages speculative:\s+(\d+)/);
1073
- const freePages = free ? parseInt(free[1], 10) : 0;
1074
- const inactivePages = inactive ? parseInt(inactive[1], 10) : 0;
1075
- const speculativePages = speculative ? parseInt(speculative[1], 10) : 0;
1076
- return (freePages + inactivePages + speculativePages) * actualPageSize / (1024 * 1024 * 1024);
1077
- } catch {
1078
- return os4.freemem() / (1024 * 1024 * 1024);
1079
- }
1080
- }
1081
- return os4.freemem() / (1024 * 1024 * 1024);
1082
- }
1083
1062
  function spawnDaemon() {
1084
- const freeGB = getAvailableMemoryGB();
1085
1063
  const totalGB = os4.totalmem() / (1024 * 1024 * 1024);
1086
1064
  if (totalGB <= 8) {
1087
1065
  process.stderr.write(
1088
1066
  `[exed-client] SKIP: ${totalGB.toFixed(0)}GB system \u2014 embedding daemon disabled. Using keyword search only. Minimum 16GB recommended for vector search.
1089
- `
1090
- );
1091
- return;
1092
- }
1093
- if (totalGB <= 16 && freeGB < 2) {
1094
- process.stderr.write(
1095
- `[exed-client] SKIP: low memory (${freeGB.toFixed(1)}GB available / ${totalGB.toFixed(0)}GB total). Embedding daemon not started \u2014 using keyword search only.
1096
1067
  `
1097
1068
  );
1098
1069
  return;
@@ -1059,40 +1059,11 @@ function findPackageRoot() {
1059
1059
  }
1060
1060
  return null;
1061
1061
  }
1062
- function getAvailableMemoryGB() {
1063
- if (process.platform === "darwin") {
1064
- try {
1065
- const { execSync: execSync4 } = __require("child_process");
1066
- const vmstat = execSync4("vm_stat", { encoding: "utf8" });
1067
- const pageSize = 16384;
1068
- const pageSizeMatch = vmstat.match(/page size of (\d+) bytes/);
1069
- const actualPageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : pageSize;
1070
- const free = vmstat.match(/Pages free:\s+(\d+)/);
1071
- const inactive = vmstat.match(/Pages inactive:\s+(\d+)/);
1072
- const speculative = vmstat.match(/Pages speculative:\s+(\d+)/);
1073
- const freePages = free ? parseInt(free[1], 10) : 0;
1074
- const inactivePages = inactive ? parseInt(inactive[1], 10) : 0;
1075
- const speculativePages = speculative ? parseInt(speculative[1], 10) : 0;
1076
- return (freePages + inactivePages + speculativePages) * actualPageSize / (1024 * 1024 * 1024);
1077
- } catch {
1078
- return os4.freemem() / (1024 * 1024 * 1024);
1079
- }
1080
- }
1081
- return os4.freemem() / (1024 * 1024 * 1024);
1082
- }
1083
1062
  function spawnDaemon() {
1084
- const freeGB = getAvailableMemoryGB();
1085
1063
  const totalGB = os4.totalmem() / (1024 * 1024 * 1024);
1086
1064
  if (totalGB <= 8) {
1087
1065
  process.stderr.write(
1088
1066
  `[exed-client] SKIP: ${totalGB.toFixed(0)}GB system \u2014 embedding daemon disabled. Using keyword search only. Minimum 16GB recommended for vector search.
1089
- `
1090
- );
1091
- return;
1092
- }
1093
- if (totalGB <= 16 && freeGB < 2) {
1094
- process.stderr.write(
1095
- `[exed-client] SKIP: low memory (${freeGB.toFixed(1)}GB available / ${totalGB.toFixed(0)}GB total). Embedding daemon not started \u2014 using keyword search only.
1096
1067
  `
1097
1068
  );
1098
1069
  return;
@@ -1055,40 +1055,11 @@ function findPackageRoot() {
1055
1055
  }
1056
1056
  return null;
1057
1057
  }
1058
- function getAvailableMemoryGB() {
1059
- if (process.platform === "darwin") {
1060
- try {
1061
- const { execSync: execSync4 } = __require("child_process");
1062
- const vmstat = execSync4("vm_stat", { encoding: "utf8" });
1063
- const pageSize = 16384;
1064
- const pageSizeMatch = vmstat.match(/page size of (\d+) bytes/);
1065
- const actualPageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : pageSize;
1066
- const free = vmstat.match(/Pages free:\s+(\d+)/);
1067
- const inactive = vmstat.match(/Pages inactive:\s+(\d+)/);
1068
- const speculative = vmstat.match(/Pages speculative:\s+(\d+)/);
1069
- const freePages = free ? parseInt(free[1], 10) : 0;
1070
- const inactivePages = inactive ? parseInt(inactive[1], 10) : 0;
1071
- const speculativePages = speculative ? parseInt(speculative[1], 10) : 0;
1072
- return (freePages + inactivePages + speculativePages) * actualPageSize / (1024 * 1024 * 1024);
1073
- } catch {
1074
- return os4.freemem() / (1024 * 1024 * 1024);
1075
- }
1076
- }
1077
- return os4.freemem() / (1024 * 1024 * 1024);
1078
- }
1079
1058
  function spawnDaemon() {
1080
- const freeGB = getAvailableMemoryGB();
1081
1059
  const totalGB = os4.totalmem() / (1024 * 1024 * 1024);
1082
1060
  if (totalGB <= 8) {
1083
1061
  process.stderr.write(
1084
1062
  `[exed-client] SKIP: ${totalGB.toFixed(0)}GB system \u2014 embedding daemon disabled. Using keyword search only. Minimum 16GB recommended for vector search.
1085
- `
1086
- );
1087
- return;
1088
- }
1089
- if (totalGB <= 16 && freeGB < 2) {
1090
- process.stderr.write(
1091
- `[exed-client] SKIP: low memory (${freeGB.toFixed(1)}GB available / ${totalGB.toFixed(0)}GB total). Embedding daemon not started \u2014 using keyword search only.
1092
1063
  `
1093
1064
  );
1094
1065
  return;
@@ -1055,40 +1055,11 @@ function findPackageRoot() {
1055
1055
  }
1056
1056
  return null;
1057
1057
  }
1058
- function getAvailableMemoryGB() {
1059
- if (process.platform === "darwin") {
1060
- try {
1061
- const { execSync: execSync4 } = __require("child_process");
1062
- const vmstat = execSync4("vm_stat", { encoding: "utf8" });
1063
- const pageSize = 16384;
1064
- const pageSizeMatch = vmstat.match(/page size of (\d+) bytes/);
1065
- const actualPageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : pageSize;
1066
- const free = vmstat.match(/Pages free:\s+(\d+)/);
1067
- const inactive = vmstat.match(/Pages inactive:\s+(\d+)/);
1068
- const speculative = vmstat.match(/Pages speculative:\s+(\d+)/);
1069
- const freePages = free ? parseInt(free[1], 10) : 0;
1070
- const inactivePages = inactive ? parseInt(inactive[1], 10) : 0;
1071
- const speculativePages = speculative ? parseInt(speculative[1], 10) : 0;
1072
- return (freePages + inactivePages + speculativePages) * actualPageSize / (1024 * 1024 * 1024);
1073
- } catch {
1074
- return os4.freemem() / (1024 * 1024 * 1024);
1075
- }
1076
- }
1077
- return os4.freemem() / (1024 * 1024 * 1024);
1078
- }
1079
1058
  function spawnDaemon() {
1080
- const freeGB = getAvailableMemoryGB();
1081
1059
  const totalGB = os4.totalmem() / (1024 * 1024 * 1024);
1082
1060
  if (totalGB <= 8) {
1083
1061
  process.stderr.write(
1084
1062
  `[exed-client] SKIP: ${totalGB.toFixed(0)}GB system \u2014 embedding daemon disabled. Using keyword search only. Minimum 16GB recommended for vector search.
1085
- `
1086
- );
1087
- return;
1088
- }
1089
- if (totalGB <= 16 && freeGB < 2) {
1090
- process.stderr.write(
1091
- `[exed-client] SKIP: low memory (${freeGB.toFixed(1)}GB available / ${totalGB.toFixed(0)}GB total). Embedding daemon not started \u2014 using keyword search only.
1092
1063
  `
1093
1064
  );
1094
1065
  return;
@@ -1077,40 +1077,11 @@ function findPackageRoot() {
1077
1077
  }
1078
1078
  return null;
1079
1079
  }
1080
- function getAvailableMemoryGB() {
1081
- if (process.platform === "darwin") {
1082
- try {
1083
- const { execSync: execSync6 } = __require("child_process");
1084
- const vmstat = execSync6("vm_stat", { encoding: "utf8" });
1085
- const pageSize = 16384;
1086
- const pageSizeMatch = vmstat.match(/page size of (\d+) bytes/);
1087
- const actualPageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : pageSize;
1088
- const free = vmstat.match(/Pages free:\s+(\d+)/);
1089
- const inactive = vmstat.match(/Pages inactive:\s+(\d+)/);
1090
- const speculative = vmstat.match(/Pages speculative:\s+(\d+)/);
1091
- const freePages = free ? parseInt(free[1], 10) : 0;
1092
- const inactivePages = inactive ? parseInt(inactive[1], 10) : 0;
1093
- const speculativePages = speculative ? parseInt(speculative[1], 10) : 0;
1094
- return (freePages + inactivePages + speculativePages) * actualPageSize / (1024 * 1024 * 1024);
1095
- } catch {
1096
- return os4.freemem() / (1024 * 1024 * 1024);
1097
- }
1098
- }
1099
- return os4.freemem() / (1024 * 1024 * 1024);
1100
- }
1101
1080
  function spawnDaemon() {
1102
- const freeGB = getAvailableMemoryGB();
1103
1081
  const totalGB = os4.totalmem() / (1024 * 1024 * 1024);
1104
1082
  if (totalGB <= 8) {
1105
1083
  process.stderr.write(
1106
1084
  `[exed-client] SKIP: ${totalGB.toFixed(0)}GB system \u2014 embedding daemon disabled. Using keyword search only. Minimum 16GB recommended for vector search.
1107
- `
1108
- );
1109
- return;
1110
- }
1111
- if (totalGB <= 16 && freeGB < 2) {
1112
- process.stderr.write(
1113
- `[exed-client] SKIP: low memory (${freeGB.toFixed(1)}GB available / ${totalGB.toFixed(0)}GB total). Embedding daemon not started \u2014 using keyword search only.
1114
1085
  `
1115
1086
  );
1116
1087
  return;
package/dist/bin/cli.js CHANGED
@@ -3748,40 +3748,11 @@ function findPackageRoot() {
3748
3748
  }
3749
3749
  return null;
3750
3750
  }
3751
- function getAvailableMemoryGB() {
3752
- if (process.platform === "darwin") {
3753
- try {
3754
- const { execSync: execSync20 } = __require("child_process");
3755
- const vmstat = execSync20("vm_stat", { encoding: "utf8" });
3756
- const pageSize = 16384;
3757
- const pageSizeMatch = vmstat.match(/page size of (\d+) bytes/);
3758
- const actualPageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : pageSize;
3759
- const free = vmstat.match(/Pages free:\s+(\d+)/);
3760
- const inactive = vmstat.match(/Pages inactive:\s+(\d+)/);
3761
- const speculative = vmstat.match(/Pages speculative:\s+(\d+)/);
3762
- const freePages = free ? parseInt(free[1], 10) : 0;
3763
- const inactivePages = inactive ? parseInt(inactive[1], 10) : 0;
3764
- const speculativePages = speculative ? parseInt(speculative[1], 10) : 0;
3765
- return (freePages + inactivePages + speculativePages) * actualPageSize / (1024 * 1024 * 1024);
3766
- } catch {
3767
- return os10.freemem() / (1024 * 1024 * 1024);
3768
- }
3769
- }
3770
- return os10.freemem() / (1024 * 1024 * 1024);
3771
- }
3772
3751
  function spawnDaemon() {
3773
- const freeGB = getAvailableMemoryGB();
3774
3752
  const totalGB = os10.totalmem() / (1024 * 1024 * 1024);
3775
3753
  if (totalGB <= 8) {
3776
3754
  process.stderr.write(
3777
3755
  `[exed-client] SKIP: ${totalGB.toFixed(0)}GB system \u2014 embedding daemon disabled. Using keyword search only. Minimum 16GB recommended for vector search.
3778
- `
3779
- );
3780
- return;
3781
- }
3782
- if (totalGB <= 16 && freeGB < 2) {
3783
- process.stderr.write(
3784
- `[exed-client] SKIP: low memory (${freeGB.toFixed(1)}GB available / ${totalGB.toFixed(0)}GB total). Embedding daemon not started \u2014 using keyword search only.
3785
3756
  `
3786
3757
  );
3787
3758
  return;
@@ -19950,7 +19921,7 @@ function ask3(rl, prompt) {
19950
19921
  doAsk();
19951
19922
  });
19952
19923
  }
19953
- function getAvailableMemoryGB2() {
19924
+ function getAvailableMemoryGB() {
19954
19925
  if (process.platform === "darwin") {
19955
19926
  try {
19956
19927
  const { execSync: execSync20 } = __require("child_process");
@@ -19974,11 +19945,11 @@ function getTotalMemoryGB() {
19974
19945
  return os19.totalmem() / (1024 * 1024 * 1024);
19975
19946
  }
19976
19947
  function isLowMemory() {
19977
- return getAvailableMemoryGB2() < 2;
19948
+ return getAvailableMemoryGB() < 2;
19978
19949
  }
19979
19950
  async function validateModel(log) {
19980
19951
  const totalGB = getTotalMemoryGB();
19981
- const freeGB = getAvailableMemoryGB2();
19952
+ const freeGB = getAvailableMemoryGB();
19982
19953
  if (totalGB <= 8 || isLowMemory()) {
19983
19954
  log(`System memory: ${totalGB.toFixed(0)}GB total, ${freeGB.toFixed(1)}GB free`);
19984
19955
  log("Skipping in-memory model validation (low memory \u2014 will validate on first use).");
@@ -20223,7 +20194,7 @@ async function runSetupWizard(opts = {}) {
20223
20194
  skipModel = true;
20224
20195
  }
20225
20196
  if (!skipModel) {
20226
- const freeGB = getAvailableMemoryGB2();
20197
+ const freeGB = getAvailableMemoryGB();
20227
20198
  if (freeGB < 2) {
20228
20199
  log(`\u26A0 Low memory detected: ${freeGB.toFixed(1)}GB free of ${totalGB.toFixed(0)}GB total`);
20229
20200
  log(" Close other applications (browser, Slack, etc.) before continuing.");
@@ -430,40 +430,11 @@ function findPackageRoot() {
430
430
  }
431
431
  return null;
432
432
  }
433
- function getAvailableMemoryGB() {
434
- if (process.platform === "darwin") {
435
- try {
436
- const { execSync: execSync4 } = __require("child_process");
437
- const vmstat = execSync4("vm_stat", { encoding: "utf8" });
438
- const pageSize = 16384;
439
- const pageSizeMatch = vmstat.match(/page size of (\d+) bytes/);
440
- const actualPageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : pageSize;
441
- const free = vmstat.match(/Pages free:\s+(\d+)/);
442
- const inactive = vmstat.match(/Pages inactive:\s+(\d+)/);
443
- const speculative = vmstat.match(/Pages speculative:\s+(\d+)/);
444
- const freePages = free ? parseInt(free[1], 10) : 0;
445
- const inactivePages = inactive ? parseInt(inactive[1], 10) : 0;
446
- const speculativePages = speculative ? parseInt(speculative[1], 10) : 0;
447
- return (freePages + inactivePages + speculativePages) * actualPageSize / (1024 * 1024 * 1024);
448
- } catch {
449
- return os3.freemem() / (1024 * 1024 * 1024);
450
- }
451
- }
452
- return os3.freemem() / (1024 * 1024 * 1024);
453
- }
454
433
  function spawnDaemon() {
455
- const freeGB = getAvailableMemoryGB();
456
434
  const totalGB = os3.totalmem() / (1024 * 1024 * 1024);
457
435
  if (totalGB <= 8) {
458
436
  process.stderr.write(
459
437
  `[exed-client] SKIP: ${totalGB.toFixed(0)}GB system \u2014 embedding daemon disabled. Using keyword search only. Minimum 16GB recommended for vector search.
460
- `
461
- );
462
- return;
463
- }
464
- if (totalGB <= 16 && freeGB < 2) {
465
- process.stderr.write(
466
- `[exed-client] SKIP: low memory (${freeGB.toFixed(1)}GB available / ${totalGB.toFixed(0)}GB total). Embedding daemon not started \u2014 using keyword search only.
467
438
  `
468
439
  );
469
440
  return;
@@ -1208,40 +1208,11 @@ function findPackageRoot() {
1208
1208
  }
1209
1209
  return null;
1210
1210
  }
1211
- function getAvailableMemoryGB() {
1212
- if (process.platform === "darwin") {
1213
- try {
1214
- const { execSync: execSync12 } = __require("child_process");
1215
- const vmstat = execSync12("vm_stat", { encoding: "utf8" });
1216
- const pageSize = 16384;
1217
- const pageSizeMatch = vmstat.match(/page size of (\d+) bytes/);
1218
- const actualPageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : pageSize;
1219
- const free = vmstat.match(/Pages free:\s+(\d+)/);
1220
- const inactive = vmstat.match(/Pages inactive:\s+(\d+)/);
1221
- const speculative = vmstat.match(/Pages speculative:\s+(\d+)/);
1222
- const freePages = free ? parseInt(free[1], 10) : 0;
1223
- const inactivePages = inactive ? parseInt(inactive[1], 10) : 0;
1224
- const speculativePages = speculative ? parseInt(speculative[1], 10) : 0;
1225
- return (freePages + inactivePages + speculativePages) * actualPageSize / (1024 * 1024 * 1024);
1226
- } catch {
1227
- return os4.freemem() / (1024 * 1024 * 1024);
1228
- }
1229
- }
1230
- return os4.freemem() / (1024 * 1024 * 1024);
1231
- }
1232
1211
  function spawnDaemon() {
1233
- const freeGB = getAvailableMemoryGB();
1234
1212
  const totalGB = os4.totalmem() / (1024 * 1024 * 1024);
1235
1213
  if (totalGB <= 8) {
1236
1214
  process.stderr.write(
1237
1215
  `[exed-client] SKIP: ${totalGB.toFixed(0)}GB system \u2014 embedding daemon disabled. Using keyword search only. Minimum 16GB recommended for vector search.
1238
- `
1239
- );
1240
- return;
1241
- }
1242
- if (totalGB <= 16 && freeGB < 2) {
1243
- process.stderr.write(
1244
- `[exed-client] SKIP: low memory (${freeGB.toFixed(1)}GB available / ${totalGB.toFixed(0)}GB total). Embedding daemon not started \u2014 using keyword search only.
1245
1216
  `
1246
1217
  );
1247
1218
  return;
@@ -1605,40 +1605,11 @@ function findPackageRoot() {
1605
1605
  }
1606
1606
  return null;
1607
1607
  }
1608
- function getAvailableMemoryGB() {
1609
- if (process.platform === "darwin") {
1610
- try {
1611
- const { execSync: execSync4 } = __require("child_process");
1612
- const vmstat = execSync4("vm_stat", { encoding: "utf8" });
1613
- const pageSize = 16384;
1614
- const pageSizeMatch = vmstat.match(/page size of (\d+) bytes/);
1615
- const actualPageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : pageSize;
1616
- const free = vmstat.match(/Pages free:\s+(\d+)/);
1617
- const inactive = vmstat.match(/Pages inactive:\s+(\d+)/);
1618
- const speculative = vmstat.match(/Pages speculative:\s+(\d+)/);
1619
- const freePages = free ? parseInt(free[1], 10) : 0;
1620
- const inactivePages = inactive ? parseInt(inactive[1], 10) : 0;
1621
- const speculativePages = speculative ? parseInt(speculative[1], 10) : 0;
1622
- return (freePages + inactivePages + speculativePages) * actualPageSize / (1024 * 1024 * 1024);
1623
- } catch {
1624
- return os5.freemem() / (1024 * 1024 * 1024);
1625
- }
1626
- }
1627
- return os5.freemem() / (1024 * 1024 * 1024);
1628
- }
1629
1608
  function spawnDaemon() {
1630
- const freeGB = getAvailableMemoryGB();
1631
1609
  const totalGB = os5.totalmem() / (1024 * 1024 * 1024);
1632
1610
  if (totalGB <= 8) {
1633
1611
  process.stderr.write(
1634
1612
  `[exed-client] SKIP: ${totalGB.toFixed(0)}GB system \u2014 embedding daemon disabled. Using keyword search only. Minimum 16GB recommended for vector search.
1635
- `
1636
- );
1637
- return;
1638
- }
1639
- if (totalGB <= 16 && freeGB < 2) {
1640
- process.stderr.write(
1641
- `[exed-client] SKIP: low memory (${freeGB.toFixed(1)}GB available / ${totalGB.toFixed(0)}GB total). Embedding daemon not started \u2014 using keyword search only.
1642
1613
  `
1643
1614
  );
1644
1615
  return;
@@ -1655,40 +1655,11 @@ function findPackageRoot() {
1655
1655
  }
1656
1656
  return null;
1657
1657
  }
1658
- function getAvailableMemoryGB() {
1659
- if (process.platform === "darwin") {
1660
- try {
1661
- const { execSync: execSync9 } = __require("child_process");
1662
- const vmstat = execSync9("vm_stat", { encoding: "utf8" });
1663
- const pageSize = 16384;
1664
- const pageSizeMatch = vmstat.match(/page size of (\d+) bytes/);
1665
- const actualPageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : pageSize;
1666
- const free = vmstat.match(/Pages free:\s+(\d+)/);
1667
- const inactive = vmstat.match(/Pages inactive:\s+(\d+)/);
1668
- const speculative = vmstat.match(/Pages speculative:\s+(\d+)/);
1669
- const freePages = free ? parseInt(free[1], 10) : 0;
1670
- const inactivePages = inactive ? parseInt(inactive[1], 10) : 0;
1671
- const speculativePages = speculative ? parseInt(speculative[1], 10) : 0;
1672
- return (freePages + inactivePages + speculativePages) * actualPageSize / (1024 * 1024 * 1024);
1673
- } catch {
1674
- return os6.freemem() / (1024 * 1024 * 1024);
1675
- }
1676
- }
1677
- return os6.freemem() / (1024 * 1024 * 1024);
1678
- }
1679
1658
  function spawnDaemon() {
1680
- const freeGB = getAvailableMemoryGB();
1681
1659
  const totalGB = os6.totalmem() / (1024 * 1024 * 1024);
1682
1660
  if (totalGB <= 8) {
1683
1661
  process.stderr.write(
1684
1662
  `[exed-client] SKIP: ${totalGB.toFixed(0)}GB system \u2014 embedding daemon disabled. Using keyword search only. Minimum 16GB recommended for vector search.
1685
- `
1686
- );
1687
- return;
1688
- }
1689
- if (totalGB <= 16 && freeGB < 2) {
1690
- process.stderr.write(
1691
- `[exed-client] SKIP: low memory (${freeGB.toFixed(1)}GB available / ${totalGB.toFixed(0)}GB total). Embedding daemon not started \u2014 using keyword search only.
1692
1663
  `
1693
1664
  );
1694
1665
  return;
@@ -2109,40 +2109,11 @@ function findPackageRoot() {
2109
2109
  }
2110
2110
  return null;
2111
2111
  }
2112
- function getAvailableMemoryGB() {
2113
- if (process.platform === "darwin") {
2114
- try {
2115
- const { execSync: execSync4 } = __require("child_process");
2116
- const vmstat = execSync4("vm_stat", { encoding: "utf8" });
2117
- const pageSize = 16384;
2118
- const pageSizeMatch = vmstat.match(/page size of (\d+) bytes/);
2119
- const actualPageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : pageSize;
2120
- const free = vmstat.match(/Pages free:\s+(\d+)/);
2121
- const inactive = vmstat.match(/Pages inactive:\s+(\d+)/);
2122
- const speculative = vmstat.match(/Pages speculative:\s+(\d+)/);
2123
- const freePages = free ? parseInt(free[1], 10) : 0;
2124
- const inactivePages = inactive ? parseInt(inactive[1], 10) : 0;
2125
- const speculativePages = speculative ? parseInt(speculative[1], 10) : 0;
2126
- return (freePages + inactivePages + speculativePages) * actualPageSize / (1024 * 1024 * 1024);
2127
- } catch {
2128
- return os5.freemem() / (1024 * 1024 * 1024);
2129
- }
2130
- }
2131
- return os5.freemem() / (1024 * 1024 * 1024);
2132
- }
2133
2112
  function spawnDaemon() {
2134
- const freeGB = getAvailableMemoryGB();
2135
2113
  const totalGB = os5.totalmem() / (1024 * 1024 * 1024);
2136
2114
  if (totalGB <= 8) {
2137
2115
  process.stderr.write(
2138
2116
  `[exed-client] SKIP: ${totalGB.toFixed(0)}GB system \u2014 embedding daemon disabled. Using keyword search only. Minimum 16GB recommended for vector search.
2139
- `
2140
- );
2141
- return;
2142
- }
2143
- if (totalGB <= 16 && freeGB < 2) {
2144
- process.stderr.write(
2145
- `[exed-client] SKIP: low memory (${freeGB.toFixed(1)}GB available / ${totalGB.toFixed(0)}GB total). Embedding daemon not started \u2014 using keyword search only.
2146
2117
  `
2147
2118
  );
2148
2119
  return;
@@ -1142,40 +1142,11 @@ function findPackageRoot() {
1142
1142
  }
1143
1143
  return null;
1144
1144
  }
1145
- function getAvailableMemoryGB() {
1146
- if (process.platform === "darwin") {
1147
- try {
1148
- const { execSync: execSync4 } = __require("child_process");
1149
- const vmstat = execSync4("vm_stat", { encoding: "utf8" });
1150
- const pageSize = 16384;
1151
- const pageSizeMatch = vmstat.match(/page size of (\d+) bytes/);
1152
- const actualPageSize = pageSizeMatch ? parseInt(pageSizeMatch[1], 10) : pageSize;
1153
- const free = vmstat.match(/Pages free:\s+(\d+)/);
1154
- const inactive = vmstat.match(/Pages inactive:\s+(\d+)/);
1155
- const speculative = vmstat.match(/Pages speculative:\s+(\d+)/);
1156
- const freePages = free ? parseInt(free[1], 10) : 0;
1157
- const inactivePages = inactive ? parseInt(inactive[1], 10) : 0;
1158
- const speculativePages = speculative ? parseInt(speculative[1], 10) : 0;
1159
- return (freePages + inactivePages + speculativePages) * actualPageSize / (1024 * 1024 * 1024);
1160
- } catch {
1161
- return os4.freemem() / (1024 * 1024 * 1024);
1162
- }
1163
- }
1164
- return os4.freemem() / (1024 * 1024 * 1024);
1165
- }
1166
1145
  function spawnDaemon() {
1167
- const freeGB = getAvailableMemoryGB();
1168
1146
  const totalGB = os4.totalmem() / (1024 * 1024 * 1024);
1169
1147
  if (totalGB <= 8) {
1170
1148
  process.stderr.write(
1171
1149
  `[exed-client] SKIP: ${totalGB.toFixed(0)}GB system \u2014 embedding daemon disabled. Using keyword search only. Minimum 16GB recommended for vector search.
1172
- `
1173
- );
1174
- return;
1175
- }
1176
- if (totalGB <= 16 && freeGB < 2) {
1177
- process.stderr.write(
1178
- `[exed-client] SKIP: low memory (${freeGB.toFixed(1)}GB available / ${totalGB.toFixed(0)}GB total). Embedding daemon not started \u2014 using keyword search only.
1179
1150
  `
1180
1151
  );
1181
1152
  return;