@askexenow/exe-os 0.8.80 → 0.8.82

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 (110) hide show
  1. package/dist/bin/backfill-conversations.js +359 -267
  2. package/dist/bin/backfill-responses.js +357 -265
  3. package/dist/bin/backfill-vectors.js +339 -264
  4. package/dist/bin/cleanup-stale-review-tasks.js +315 -256
  5. package/dist/bin/cli.js +494 -240
  6. package/dist/bin/exe-agent.js +141 -46
  7. package/dist/bin/exe-assign.js +151 -63
  8. package/dist/bin/exe-boot.js +294 -115
  9. package/dist/bin/exe-call.js +76 -51
  10. package/dist/bin/exe-cloud.js +58 -45
  11. package/dist/bin/exe-dispatch.js +434 -277
  12. package/dist/bin/exe-doctor.js +317 -246
  13. package/dist/bin/exe-export-behaviors.js +328 -248
  14. package/dist/bin/exe-forget.js +314 -231
  15. package/dist/bin/exe-gateway.js +2676 -1402
  16. package/dist/bin/exe-heartbeat.js +329 -264
  17. package/dist/bin/exe-kill.js +324 -244
  18. package/dist/bin/exe-launch-agent.js +574 -463
  19. package/dist/bin/exe-link.js +1055 -95
  20. package/dist/bin/exe-new-employee.js +49 -54
  21. package/dist/bin/exe-pending-messages.js +310 -253
  22. package/dist/bin/exe-pending-notifications.js +299 -228
  23. package/dist/bin/exe-pending-reviews.js +314 -245
  24. package/dist/bin/exe-rename.js +259 -195
  25. package/dist/bin/exe-review.js +140 -64
  26. package/dist/bin/exe-search.js +543 -356
  27. package/dist/bin/exe-session-cleanup.js +463 -382
  28. package/dist/bin/exe-settings.js +129 -99
  29. package/dist/bin/exe-start.sh +6 -6
  30. package/dist/bin/exe-status.js +95 -36
  31. package/dist/bin/exe-team.js +116 -51
  32. package/dist/bin/git-sweep.js +482 -307
  33. package/dist/bin/graph-backfill.js +357 -245
  34. package/dist/bin/graph-export.js +324 -244
  35. package/dist/bin/install.js +33 -10
  36. package/dist/bin/scan-tasks.js +481 -307
  37. package/dist/bin/setup.js +1147 -140
  38. package/dist/bin/shard-migrate.js +321 -241
  39. package/dist/bin/update.js +1 -7
  40. package/dist/bin/wiki-sync.js +318 -238
  41. package/dist/gateway/index.js +2656 -1383
  42. package/dist/hooks/bug-report-worker.js +641 -472
  43. package/dist/hooks/commit-complete.js +482 -307
  44. package/dist/hooks/error-recall.js +363 -135
  45. package/dist/hooks/exe-heartbeat-hook.js +97 -27
  46. package/dist/hooks/ingest-worker.js +584 -397
  47. package/dist/hooks/ingest.js +123 -58
  48. package/dist/hooks/instructions-loaded.js +212 -82
  49. package/dist/hooks/notification.js +200 -70
  50. package/dist/hooks/post-compact.js +199 -81
  51. package/dist/hooks/pre-compact.js +352 -140
  52. package/dist/hooks/pre-tool-use.js +416 -278
  53. package/dist/hooks/prompt-ingest-worker.js +376 -299
  54. package/dist/hooks/prompt-submit.js +414 -188
  55. package/dist/hooks/response-ingest-worker.js +408 -338
  56. package/dist/hooks/session-end.js +209 -83
  57. package/dist/hooks/session-start.js +382 -158
  58. package/dist/hooks/stop.js +209 -83
  59. package/dist/hooks/subagent-stop.js +209 -85
  60. package/dist/hooks/summary-worker.js +606 -510
  61. package/dist/index.js +2133 -855
  62. package/dist/lib/cloud-sync.js +1175 -184
  63. package/dist/lib/config.js +1 -9
  64. package/dist/lib/consolidation.js +71 -34
  65. package/dist/lib/database.js +166 -14
  66. package/dist/lib/device-registry.js +189 -117
  67. package/dist/lib/embedder.js +6 -10
  68. package/dist/lib/employee-templates.js +134 -39
  69. package/dist/lib/employees.js +30 -7
  70. package/dist/lib/exe-daemon-client.js +5 -7
  71. package/dist/lib/exe-daemon.js +514 -152
  72. package/dist/lib/hybrid-search.js +543 -356
  73. package/dist/lib/identity-templates.js +15 -15
  74. package/dist/lib/identity.js +19 -15
  75. package/dist/lib/license.js +1 -7
  76. package/dist/lib/messaging.js +157 -135
  77. package/dist/lib/reminders.js +97 -0
  78. package/dist/lib/schedules.js +302 -231
  79. package/dist/lib/skill-learning.js +33 -27
  80. package/dist/lib/status-brief.js +11 -14
  81. package/dist/lib/store.js +326 -237
  82. package/dist/lib/task-router.js +105 -1
  83. package/dist/lib/tasks.js +233 -116
  84. package/dist/lib/tmux-routing.js +173 -56
  85. package/dist/lib/ws-client.js +13 -3
  86. package/dist/mcp/server.js +2009 -1015
  87. package/dist/mcp/tools/complete-reminder.js +97 -0
  88. package/dist/mcp/tools/create-reminder.js +97 -0
  89. package/dist/mcp/tools/create-task.js +426 -262
  90. package/dist/mcp/tools/deactivate-behavior.js +119 -44
  91. package/dist/mcp/tools/list-reminders.js +97 -0
  92. package/dist/mcp/tools/list-tasks.js +56 -57
  93. package/dist/mcp/tools/send-message.js +206 -143
  94. package/dist/mcp/tools/update-task.js +259 -85
  95. package/dist/runtime/index.js +495 -316
  96. package/dist/tui/App.js +1128 -919
  97. package/package.json +2 -10
  98. package/src/commands/exe/afk.md +8 -8
  99. package/src/commands/exe/assign.md +1 -1
  100. package/src/commands/exe/build-adv.md +1 -1
  101. package/src/commands/exe/call.md +10 -10
  102. package/src/commands/exe/employee-heartbeat.md +9 -6
  103. package/src/commands/exe/heartbeat.md +5 -5
  104. package/src/commands/exe/intercom.md +26 -15
  105. package/src/commands/exe/launch.md +2 -2
  106. package/src/commands/exe/new-employee.md +1 -1
  107. package/src/commands/exe/review.md +2 -2
  108. package/src/commands/exe/schedule.md +1 -1
  109. package/src/commands/exe/sessions.md +2 -2
  110. package/src/commands/exe.md +22 -20
@@ -6,6 +6,103 @@ import crypto from "crypto";
6
6
 
7
7
  // src/lib/database.ts
8
8
  import { createClient } from "@libsql/client";
9
+
10
+ // src/lib/employees.ts
11
+ import { readFile as readFile2, writeFile as writeFile2, mkdir as mkdir2 } from "fs/promises";
12
+ import { existsSync as existsSync2, symlinkSync, readlinkSync, readFileSync as readFileSync2, renameSync as renameSync2, unlinkSync, writeFileSync } from "fs";
13
+ import { execSync } from "child_process";
14
+ import path2 from "path";
15
+ import os2 from "os";
16
+
17
+ // src/lib/config.ts
18
+ import { readFile, writeFile, mkdir, chmod } from "fs/promises";
19
+ import { readFileSync, existsSync, renameSync } from "fs";
20
+ import path from "path";
21
+ import os from "os";
22
+ function resolveDataDir() {
23
+ if (process.env.EXE_OS_DIR) return process.env.EXE_OS_DIR;
24
+ if (process.env.EXE_MEM_DIR) return process.env.EXE_MEM_DIR;
25
+ const newDir = path.join(os.homedir(), ".exe-os");
26
+ const legacyDir = path.join(os.homedir(), ".exe-mem");
27
+ if (!existsSync(newDir) && existsSync(legacyDir)) {
28
+ try {
29
+ renameSync(legacyDir, newDir);
30
+ process.stderr.write(`[exe-os] Migrated data directory: ~/.exe-mem \u2192 ~/.exe-os
31
+ `);
32
+ } catch {
33
+ return legacyDir;
34
+ }
35
+ }
36
+ return newDir;
37
+ }
38
+ var EXE_AI_DIR = resolveDataDir();
39
+ var DB_PATH = path.join(EXE_AI_DIR, "memories.db");
40
+ var MODELS_DIR = path.join(EXE_AI_DIR, "models");
41
+ var CONFIG_PATH = path.join(EXE_AI_DIR, "config.json");
42
+ var LEGACY_LANCE_PATH = path.join(EXE_AI_DIR, "local.lance");
43
+ var CURRENT_CONFIG_VERSION = 1;
44
+ var DEFAULT_CONFIG = {
45
+ config_version: CURRENT_CONFIG_VERSION,
46
+ dbPath: DB_PATH,
47
+ modelFile: "jina-embeddings-v5-small-q4_k_m.gguf",
48
+ embeddingDim: 1024,
49
+ batchSize: 20,
50
+ flushIntervalMs: 1e4,
51
+ autoIngestion: true,
52
+ autoRetrieval: true,
53
+ searchMode: "hybrid",
54
+ hookSearchMode: "hybrid",
55
+ fileGrepEnabled: true,
56
+ splashEffect: true,
57
+ consolidationEnabled: true,
58
+ consolidationIntervalMs: 6 * 60 * 60 * 1e3,
59
+ consolidationModel: "claude-haiku-4-5-20251001",
60
+ consolidationMaxCallsPerRun: 20,
61
+ selfQueryRouter: true,
62
+ selfQueryModel: "claude-haiku-4-5-20251001",
63
+ rerankerEnabled: true,
64
+ scalingRoadmap: {
65
+ rerankerAutoTrigger: {
66
+ enabled: true,
67
+ broadQueryMinCardinality: 5e4,
68
+ fetchTopK: 150,
69
+ returnTopK: 5
70
+ }
71
+ },
72
+ graphRagEnabled: true,
73
+ wikiEnabled: false,
74
+ wikiUrl: "",
75
+ wikiApiKey: "",
76
+ wikiSyncIntervalMs: 30 * 60 * 1e3,
77
+ wikiWorkspaceMapping: {},
78
+ wikiAutoUpdate: true,
79
+ wikiAutoUpdateThreshold: 0.5,
80
+ wikiAutoUpdateCreateNew: true,
81
+ skillLearning: true,
82
+ skillThreshold: 3,
83
+ skillModel: "claude-haiku-4-5-20251001",
84
+ exeHeartbeat: {
85
+ enabled: true,
86
+ intervalSeconds: 60,
87
+ staleInProgressThresholdHours: 2
88
+ },
89
+ sessionLifecycle: {
90
+ idleKillEnabled: true,
91
+ idleKillTicksRequired: 3,
92
+ idleKillIntercomAckWindowMs: 1e4,
93
+ maxAutoInstances: 10
94
+ },
95
+ autoUpdate: {
96
+ checkOnBoot: true,
97
+ autoInstall: false,
98
+ checkIntervalMs: 24 * 60 * 60 * 1e3
99
+ }
100
+ };
101
+
102
+ // src/lib/employees.ts
103
+ var EMPLOYEES_PATH = path2.join(EXE_AI_DIR, "exe-employees.json");
104
+
105
+ // src/lib/database.ts
9
106
  var _resilientClient = null;
10
107
  function getClient() {
11
108
  if (!_resilientClient) {
@@ -6,6 +6,103 @@ import crypto from "crypto";
6
6
 
7
7
  // src/lib/database.ts
8
8
  import { createClient } from "@libsql/client";
9
+
10
+ // src/lib/employees.ts
11
+ import { readFile as readFile2, writeFile as writeFile2, mkdir as mkdir2 } from "fs/promises";
12
+ import { existsSync as existsSync2, symlinkSync, readlinkSync, readFileSync as readFileSync2, renameSync as renameSync2, unlinkSync, writeFileSync } from "fs";
13
+ import { execSync } from "child_process";
14
+ import path2 from "path";
15
+ import os2 from "os";
16
+
17
+ // src/lib/config.ts
18
+ import { readFile, writeFile, mkdir, chmod } from "fs/promises";
19
+ import { readFileSync, existsSync, renameSync } from "fs";
20
+ import path from "path";
21
+ import os from "os";
22
+ function resolveDataDir() {
23
+ if (process.env.EXE_OS_DIR) return process.env.EXE_OS_DIR;
24
+ if (process.env.EXE_MEM_DIR) return process.env.EXE_MEM_DIR;
25
+ const newDir = path.join(os.homedir(), ".exe-os");
26
+ const legacyDir = path.join(os.homedir(), ".exe-mem");
27
+ if (!existsSync(newDir) && existsSync(legacyDir)) {
28
+ try {
29
+ renameSync(legacyDir, newDir);
30
+ process.stderr.write(`[exe-os] Migrated data directory: ~/.exe-mem \u2192 ~/.exe-os
31
+ `);
32
+ } catch {
33
+ return legacyDir;
34
+ }
35
+ }
36
+ return newDir;
37
+ }
38
+ var EXE_AI_DIR = resolveDataDir();
39
+ var DB_PATH = path.join(EXE_AI_DIR, "memories.db");
40
+ var MODELS_DIR = path.join(EXE_AI_DIR, "models");
41
+ var CONFIG_PATH = path.join(EXE_AI_DIR, "config.json");
42
+ var LEGACY_LANCE_PATH = path.join(EXE_AI_DIR, "local.lance");
43
+ var CURRENT_CONFIG_VERSION = 1;
44
+ var DEFAULT_CONFIG = {
45
+ config_version: CURRENT_CONFIG_VERSION,
46
+ dbPath: DB_PATH,
47
+ modelFile: "jina-embeddings-v5-small-q4_k_m.gguf",
48
+ embeddingDim: 1024,
49
+ batchSize: 20,
50
+ flushIntervalMs: 1e4,
51
+ autoIngestion: true,
52
+ autoRetrieval: true,
53
+ searchMode: "hybrid",
54
+ hookSearchMode: "hybrid",
55
+ fileGrepEnabled: true,
56
+ splashEffect: true,
57
+ consolidationEnabled: true,
58
+ consolidationIntervalMs: 6 * 60 * 60 * 1e3,
59
+ consolidationModel: "claude-haiku-4-5-20251001",
60
+ consolidationMaxCallsPerRun: 20,
61
+ selfQueryRouter: true,
62
+ selfQueryModel: "claude-haiku-4-5-20251001",
63
+ rerankerEnabled: true,
64
+ scalingRoadmap: {
65
+ rerankerAutoTrigger: {
66
+ enabled: true,
67
+ broadQueryMinCardinality: 5e4,
68
+ fetchTopK: 150,
69
+ returnTopK: 5
70
+ }
71
+ },
72
+ graphRagEnabled: true,
73
+ wikiEnabled: false,
74
+ wikiUrl: "",
75
+ wikiApiKey: "",
76
+ wikiSyncIntervalMs: 30 * 60 * 1e3,
77
+ wikiWorkspaceMapping: {},
78
+ wikiAutoUpdate: true,
79
+ wikiAutoUpdateThreshold: 0.5,
80
+ wikiAutoUpdateCreateNew: true,
81
+ skillLearning: true,
82
+ skillThreshold: 3,
83
+ skillModel: "claude-haiku-4-5-20251001",
84
+ exeHeartbeat: {
85
+ enabled: true,
86
+ intervalSeconds: 60,
87
+ staleInProgressThresholdHours: 2
88
+ },
89
+ sessionLifecycle: {
90
+ idleKillEnabled: true,
91
+ idleKillTicksRequired: 3,
92
+ idleKillIntercomAckWindowMs: 1e4,
93
+ maxAutoInstances: 10
94
+ },
95
+ autoUpdate: {
96
+ checkOnBoot: true,
97
+ autoInstall: false,
98
+ checkIntervalMs: 24 * 60 * 60 * 1e3
99
+ }
100
+ };
101
+
102
+ // src/lib/employees.ts
103
+ var EMPLOYEES_PATH = path2.join(EXE_AI_DIR, "exe-employees.json");
104
+
105
+ // src/lib/database.ts
9
106
  var _resilientClient = null;
10
107
  function getClient() {
11
108
  if (!_resilientClient) {