@askexenow/exe-os 0.9.65 → 0.9.67

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 (113) hide show
  1. package/deploy/stack-manifests/v0.9.json +54 -5
  2. package/dist/bin/age-ontology-load.js +61 -0
  3. package/dist/bin/agentic-ontology-backfill.js +4708 -0
  4. package/dist/bin/agentic-reflection-backfill.js +4144 -0
  5. package/dist/bin/{exe-link.js → agentic-semantic-label.js} +1532 -2173
  6. package/dist/bin/backfill-conversations.js +528 -20
  7. package/dist/bin/backfill-responses.js +528 -20
  8. package/dist/bin/backfill-vectors.js +255 -20
  9. package/dist/bin/bulk-sync-postgres.js +4876 -0
  10. package/dist/bin/cleanup-stale-review-tasks.js +529 -21
  11. package/dist/bin/cli.js +3471 -1491
  12. package/dist/bin/exe-agent-config.js +4 -0
  13. package/dist/bin/exe-agent.js +16 -0
  14. package/dist/bin/exe-assign.js +528 -20
  15. package/dist/bin/exe-boot.js +492 -54
  16. package/dist/bin/exe-call.js +16 -0
  17. package/dist/bin/exe-cloud.js +7415 -518
  18. package/dist/bin/exe-dispatch.js +540 -22
  19. package/dist/bin/exe-doctor.js +3404 -1225
  20. package/dist/bin/exe-export-behaviors.js +542 -24
  21. package/dist/bin/exe-forget.js +529 -21
  22. package/dist/bin/exe-gateway.js +595 -25
  23. package/dist/bin/exe-heartbeat.js +541 -24
  24. package/dist/bin/exe-kill.js +529 -21
  25. package/dist/bin/exe-launch-agent.js +2334 -1067
  26. package/dist/bin/exe-new-employee.js +324 -166
  27. package/dist/bin/exe-pending-messages.js +529 -21
  28. package/dist/bin/exe-pending-notifications.js +529 -21
  29. package/dist/bin/exe-pending-reviews.js +529 -21
  30. package/dist/bin/exe-rename.js +529 -21
  31. package/dist/bin/exe-review.js +529 -21
  32. package/dist/bin/exe-search.js +542 -24
  33. package/dist/bin/exe-session-cleanup.js +540 -22
  34. package/dist/bin/exe-settings.js +14 -0
  35. package/dist/bin/exe-start-codex.js +817 -144
  36. package/dist/bin/exe-start-opencode.js +776 -80
  37. package/dist/bin/exe-status.js +529 -21
  38. package/dist/bin/exe-team.js +529 -21
  39. package/dist/bin/git-sweep.js +540 -22
  40. package/dist/bin/graph-backfill.js +580 -21
  41. package/dist/bin/graph-export.js +529 -21
  42. package/dist/bin/graph-layer-benchmark.js +109 -0
  43. package/dist/bin/install.js +420 -289
  44. package/dist/bin/intercom-check.js +540 -22
  45. package/dist/bin/postgres-agentic-reflection-backfill.js +187 -0
  46. package/dist/bin/postgres-agentic-semantic-backfill.js +237 -0
  47. package/dist/bin/scan-tasks.js +540 -22
  48. package/dist/bin/setup.js +790 -206
  49. package/dist/bin/shard-migrate.js +528 -20
  50. package/dist/bin/update.js +4 -0
  51. package/dist/gateway/index.js +593 -23
  52. package/dist/hooks/bug-report-worker.js +651 -64
  53. package/dist/hooks/codex-stop-task-finalizer.js +540 -22
  54. package/dist/hooks/commit-complete.js +540 -22
  55. package/dist/hooks/error-recall.js +542 -24
  56. package/dist/hooks/exe-heartbeat-hook.js +4 -0
  57. package/dist/hooks/ingest-worker.js +4 -0
  58. package/dist/hooks/ingest.js +539 -22
  59. package/dist/hooks/instructions-loaded.js +529 -21
  60. package/dist/hooks/notification.js +529 -21
  61. package/dist/hooks/post-compact.js +529 -21
  62. package/dist/hooks/post-tool-combined.js +543 -25
  63. package/dist/hooks/pre-compact.js +772 -127
  64. package/dist/hooks/pre-tool-use.js +529 -21
  65. package/dist/hooks/prompt-submit.js +543 -25
  66. package/dist/hooks/session-end.js +673 -140
  67. package/dist/hooks/session-start.js +662 -26
  68. package/dist/hooks/stop.js +540 -23
  69. package/dist/hooks/subagent-stop.js +529 -21
  70. package/dist/hooks/summary-worker.js +571 -126
  71. package/dist/index.js +593 -23
  72. package/dist/lib/agent-config.js +4 -0
  73. package/dist/lib/cloud-sync.js +408 -47
  74. package/dist/lib/config.js +25 -1
  75. package/dist/lib/consolidation.js +5 -1
  76. package/dist/lib/database.js +128 -0
  77. package/dist/lib/db-daemon-client.js +4 -0
  78. package/dist/lib/db.js +128 -0
  79. package/dist/lib/device-registry.js +128 -0
  80. package/dist/lib/embedder.js +25 -1
  81. package/dist/lib/employee-templates.js +16 -0
  82. package/dist/lib/employees.js +4 -0
  83. package/dist/lib/exe-daemon-client.js +4 -0
  84. package/dist/lib/exe-daemon.js +3158 -930
  85. package/dist/lib/hybrid-search.js +542 -24
  86. package/dist/lib/identity.js +7 -0
  87. package/dist/lib/keychain.js +178 -22
  88. package/dist/lib/license.js +4 -0
  89. package/dist/lib/messaging.js +7 -0
  90. package/dist/lib/reminders.js +7 -0
  91. package/dist/lib/schedules.js +255 -20
  92. package/dist/lib/skill-learning.js +28 -1
  93. package/dist/lib/status-brief.js +39 -0
  94. package/dist/lib/store.js +528 -20
  95. package/dist/lib/task-router.js +4 -0
  96. package/dist/lib/tasks.js +28 -1
  97. package/dist/lib/tmux-routing.js +28 -1
  98. package/dist/lib/token-spend.js +7 -0
  99. package/dist/mcp/server.js +2739 -813
  100. package/dist/mcp/tools/complete-reminder.js +7 -0
  101. package/dist/mcp/tools/create-reminder.js +7 -0
  102. package/dist/mcp/tools/create-task.js +28 -1
  103. package/dist/mcp/tools/deactivate-behavior.js +7 -0
  104. package/dist/mcp/tools/list-reminders.js +7 -0
  105. package/dist/mcp/tools/list-tasks.js +7 -0
  106. package/dist/mcp/tools/send-message.js +7 -0
  107. package/dist/mcp/tools/update-task.js +28 -1
  108. package/dist/runtime/index.js +540 -22
  109. package/dist/tui/App.js +618 -29
  110. package/package.json +9 -5
  111. package/src/commands/exe/cloud.md +11 -8
  112. package/stack.release.json +3 -3
  113. package/src/commands/exe/link.md +0 -17
@@ -99,6 +99,10 @@ var init_config = __esm({
99
99
  checkOnBoot: true,
100
100
  autoInstall: false,
101
101
  checkIntervalMs: 24 * 60 * 60 * 1e3
102
+ },
103
+ orchestration: {
104
+ phase: "phase_1_coo",
105
+ phaseSetBy: "default"
102
106
  }
103
107
  };
104
108
  }
@@ -155,6 +159,9 @@ function getClient() {
155
159
  if (_daemonClient && _daemonClient._isDaemonActive()) {
156
160
  return _daemonClient;
157
161
  }
162
+ if (!_resilientClient) {
163
+ return _adapterClient;
164
+ }
158
165
  return _resilientClient;
159
166
  }
160
167
 
@@ -99,6 +99,10 @@ var init_config = __esm({
99
99
  checkOnBoot: true,
100
100
  autoInstall: false,
101
101
  checkIntervalMs: 24 * 60 * 60 * 1e3
102
+ },
103
+ orchestration: {
104
+ phase: "phase_1_coo",
105
+ phaseSetBy: "default"
102
106
  }
103
107
  };
104
108
  }
@@ -155,6 +159,9 @@ function getClient() {
155
159
  if (_daemonClient && _daemonClient._isDaemonActive()) {
156
160
  return _daemonClient;
157
161
  }
162
+ if (!_resilientClient) {
163
+ return _adapterClient;
164
+ }
158
165
  return _resilientClient;
159
166
  }
160
167
 
@@ -156,6 +156,11 @@ function normalizeAutoUpdate(raw) {
156
156
  const userAU = raw.autoUpdate ?? {};
157
157
  raw.autoUpdate = { ...defaultAU, ...userAU };
158
158
  }
159
+ function normalizeOrchestration(raw) {
160
+ const defaultOrg = DEFAULT_CONFIG.orchestration;
161
+ const userOrg = raw.orchestration ?? {};
162
+ raw.orchestration = { ...defaultOrg, ...userOrg };
163
+ }
159
164
  async function loadConfig() {
160
165
  const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
161
166
  await ensurePrivateDir(dir);
@@ -180,10 +185,15 @@ async function loadConfig() {
180
185
  normalizeScalingRoadmap(migratedCfg);
181
186
  normalizeSessionLifecycle(migratedCfg);
182
187
  normalizeAutoUpdate(migratedCfg);
188
+ normalizeOrchestration(migratedCfg);
183
189
  const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
184
190
  if (config.dbPath.startsWith("~")) {
185
191
  config.dbPath = config.dbPath.replace(/^~/, os.homedir());
186
192
  }
193
+ const envDbPath = path.join(dir, "memories.db");
194
+ if (process.env.EXE_OS_DIR && config.dbPath !== envDbPath && !existsSync2(config.dbPath) && existsSync2(envDbPath)) {
195
+ config.dbPath = envDbPath;
196
+ }
187
197
  return config;
188
198
  } catch {
189
199
  return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db") };
@@ -203,7 +213,16 @@ function loadConfigSync() {
203
213
  normalizeScalingRoadmap(migratedCfg);
204
214
  normalizeSessionLifecycle(migratedCfg);
205
215
  normalizeAutoUpdate(migratedCfg);
206
- return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
216
+ normalizeOrchestration(migratedCfg);
217
+ const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
218
+ if (config.dbPath.startsWith("~")) {
219
+ config.dbPath = config.dbPath.replace(/^~/, os.homedir());
220
+ }
221
+ const envDbPath = path.join(dir, "memories.db");
222
+ if (process.env.EXE_OS_DIR && config.dbPath !== envDbPath && !existsSync2(config.dbPath) && existsSync2(envDbPath)) {
223
+ config.dbPath = envDbPath;
224
+ }
225
+ return config;
207
226
  } catch {
208
227
  return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db") };
209
228
  }
@@ -224,6 +243,7 @@ async function loadConfigFrom(configPath) {
224
243
  normalizeScalingRoadmap(migratedCfg);
225
244
  normalizeSessionLifecycle(migratedCfg);
226
245
  normalizeAutoUpdate(migratedCfg);
246
+ normalizeOrchestration(migratedCfg);
227
247
  return { ...DEFAULT_CONFIG, ...migratedCfg };
228
248
  } catch {
229
249
  return { ...DEFAULT_CONFIG };
@@ -295,6 +315,10 @@ var init_config = __esm({
295
315
  checkOnBoot: true,
296
316
  autoInstall: false,
297
317
  checkIntervalMs: 24 * 60 * 60 * 1e3
318
+ },
319
+ orchestration: {
320
+ phase: "phase_1_coo",
321
+ phaseSetBy: "default"
298
322
  }
299
323
  };
300
324
  CONFIG_MIGRATIONS = [
@@ -728,6 +752,9 @@ function getClient() {
728
752
  if (_daemonClient && _daemonClient._isDaemonActive()) {
729
753
  return _daemonClient;
730
754
  }
755
+ if (!_resilientClient) {
756
+ return _adapterClient;
757
+ }
731
758
  return _resilientClient;
732
759
  }
733
760
  var _resilientClient, _daemonClient, _adapterClient;
@@ -99,6 +99,10 @@ var init_config = __esm({
99
99
  checkOnBoot: true,
100
100
  autoInstall: false,
101
101
  checkIntervalMs: 24 * 60 * 60 * 1e3
102
+ },
103
+ orchestration: {
104
+ phase: "phase_1_coo",
105
+ phaseSetBy: "default"
102
106
  }
103
107
  };
104
108
  }
@@ -195,6 +199,9 @@ function getClient() {
195
199
  if (_daemonClient && _daemonClient._isDaemonActive()) {
196
200
  return _daemonClient;
197
201
  }
202
+ if (!_resilientClient) {
203
+ return _adapterClient;
204
+ }
198
205
  return _resilientClient;
199
206
  }
200
207
 
@@ -99,6 +99,10 @@ var init_config = __esm({
99
99
  checkOnBoot: true,
100
100
  autoInstall: false,
101
101
  checkIntervalMs: 24 * 60 * 60 * 1e3
102
+ },
103
+ orchestration: {
104
+ phase: "phase_1_coo",
105
+ phaseSetBy: "default"
102
106
  }
103
107
  };
104
108
  }
@@ -155,6 +159,9 @@ function getClient() {
155
159
  if (_daemonClient && _daemonClient._isDaemonActive()) {
156
160
  return _daemonClient;
157
161
  }
162
+ if (!_resilientClient) {
163
+ return _adapterClient;
164
+ }
158
165
  return _resilientClient;
159
166
  }
160
167
 
@@ -122,6 +122,10 @@ var init_config = __esm({
122
122
  checkOnBoot: true,
123
123
  autoInstall: false,
124
124
  checkIntervalMs: 24 * 60 * 60 * 1e3
125
+ },
126
+ orchestration: {
127
+ phase: "phase_1_coo",
128
+ phaseSetBy: "default"
125
129
  }
126
130
  };
127
131
  }
@@ -208,6 +212,9 @@ function getClient() {
208
212
  if (_daemonClient && _daemonClient._isDaemonActive()) {
209
213
  return _daemonClient;
210
214
  }
215
+ if (!_resilientClient) {
216
+ return _adapterClient;
217
+ }
211
218
  return _resilientClient;
212
219
  }
213
220
  var _resilientClient, _daemonClient, _adapterClient;
@@ -122,6 +122,10 @@ var init_config = __esm({
122
122
  checkOnBoot: true,
123
123
  autoInstall: false,
124
124
  checkIntervalMs: 24 * 60 * 60 * 1e3
125
+ },
126
+ orchestration: {
127
+ phase: "phase_1_coo",
128
+ phaseSetBy: "default"
125
129
  }
126
130
  };
127
131
  }
@@ -219,6 +223,9 @@ function getClient() {
219
223
  if (_daemonClient && _daemonClient._isDaemonActive()) {
220
224
  return _daemonClient;
221
225
  }
226
+ if (!_resilientClient) {
227
+ return _adapterClient;
228
+ }
222
229
  return _resilientClient;
223
230
  }
224
231
  var _resilientClient, _daemonClient, _adapterClient;
@@ -156,6 +156,11 @@ function normalizeAutoUpdate(raw) {
156
156
  const userAU = raw.autoUpdate ?? {};
157
157
  raw.autoUpdate = { ...defaultAU, ...userAU };
158
158
  }
159
+ function normalizeOrchestration(raw) {
160
+ const defaultOrg = DEFAULT_CONFIG.orchestration;
161
+ const userOrg = raw.orchestration ?? {};
162
+ raw.orchestration = { ...defaultOrg, ...userOrg };
163
+ }
159
164
  async function loadConfig() {
160
165
  const dir = process.env.EXE_OS_DIR ?? process.env.EXE_MEM_DIR ?? EXE_AI_DIR;
161
166
  await ensurePrivateDir(dir);
@@ -180,10 +185,15 @@ async function loadConfig() {
180
185
  normalizeScalingRoadmap(migratedCfg);
181
186
  normalizeSessionLifecycle(migratedCfg);
182
187
  normalizeAutoUpdate(migratedCfg);
188
+ normalizeOrchestration(migratedCfg);
183
189
  const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
184
190
  if (config.dbPath.startsWith("~")) {
185
191
  config.dbPath = config.dbPath.replace(/^~/, os.homedir());
186
192
  }
193
+ const envDbPath = path.join(dir, "memories.db");
194
+ if (process.env.EXE_OS_DIR && config.dbPath !== envDbPath && !existsSync2(config.dbPath) && existsSync2(envDbPath)) {
195
+ config.dbPath = envDbPath;
196
+ }
187
197
  return config;
188
198
  } catch {
189
199
  return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db") };
@@ -203,7 +213,16 @@ function loadConfigSync() {
203
213
  normalizeScalingRoadmap(migratedCfg);
204
214
  normalizeSessionLifecycle(migratedCfg);
205
215
  normalizeAutoUpdate(migratedCfg);
206
- return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
216
+ normalizeOrchestration(migratedCfg);
217
+ const config = { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db"), ...migratedCfg };
218
+ if (config.dbPath.startsWith("~")) {
219
+ config.dbPath = config.dbPath.replace(/^~/, os.homedir());
220
+ }
221
+ const envDbPath = path.join(dir, "memories.db");
222
+ if (process.env.EXE_OS_DIR && config.dbPath !== envDbPath && !existsSync2(config.dbPath) && existsSync2(envDbPath)) {
223
+ config.dbPath = envDbPath;
224
+ }
225
+ return config;
207
226
  } catch {
208
227
  return { ...DEFAULT_CONFIG, dbPath: path.join(dir, "memories.db") };
209
228
  }
@@ -224,6 +243,7 @@ async function loadConfigFrom(configPath) {
224
243
  normalizeScalingRoadmap(migratedCfg);
225
244
  normalizeSessionLifecycle(migratedCfg);
226
245
  normalizeAutoUpdate(migratedCfg);
246
+ normalizeOrchestration(migratedCfg);
227
247
  return { ...DEFAULT_CONFIG, ...migratedCfg };
228
248
  } catch {
229
249
  return { ...DEFAULT_CONFIG };
@@ -295,6 +315,10 @@ var init_config = __esm({
295
315
  checkOnBoot: true,
296
316
  autoInstall: false,
297
317
  checkIntervalMs: 24 * 60 * 60 * 1e3
318
+ },
319
+ orchestration: {
320
+ phase: "phase_1_coo",
321
+ phaseSetBy: "default"
298
322
  }
299
323
  };
300
324
  CONFIG_MIGRATIONS = [
@@ -429,6 +453,9 @@ function getClient() {
429
453
  if (_daemonClient && _daemonClient._isDaemonActive()) {
430
454
  return _daemonClient;
431
455
  }
456
+ if (!_resilientClient) {
457
+ return _adapterClient;
458
+ }
432
459
  return _resilientClient;
433
460
  }
434
461
  var _resilientClient, _daemonClient, _adapterClient;