@askexenow/exe-os 0.9.23 → 0.9.25

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 (73) hide show
  1. package/dist/bin/backfill-conversations.js +5 -1
  2. package/dist/bin/backfill-responses.js +5 -1
  3. package/dist/bin/backfill-vectors.js +5 -1
  4. package/dist/bin/cleanup-stale-review-tasks.js +7 -2
  5. package/dist/bin/cli.js +45 -3
  6. package/dist/bin/exe-assign.js +5 -1
  7. package/dist/bin/exe-boot.js +6 -3
  8. package/dist/bin/exe-dispatch.js +8 -4
  9. package/dist/bin/exe-doctor.js +26 -5
  10. package/dist/bin/exe-export-behaviors.js +7 -2
  11. package/dist/bin/exe-forget.js +7 -2
  12. package/dist/bin/exe-gateway.js +6 -3
  13. package/dist/bin/exe-heartbeat.js +7 -2
  14. package/dist/bin/exe-kill.js +7 -2
  15. package/dist/bin/exe-launch-agent.js +5 -1
  16. package/dist/bin/exe-link.js +5 -1
  17. package/dist/bin/exe-new-employee.js +4 -0
  18. package/dist/bin/exe-pending-messages.js +7 -2
  19. package/dist/bin/exe-pending-notifications.js +7 -2
  20. package/dist/bin/exe-pending-reviews.js +7 -2
  21. package/dist/bin/exe-rename.js +5 -1
  22. package/dist/bin/exe-review.js +7 -2
  23. package/dist/bin/exe-search.js +5 -1
  24. package/dist/bin/exe-session-cleanup.js +6 -3
  25. package/dist/bin/exe-start-codex.js +40 -1
  26. package/dist/bin/exe-start-opencode.js +5 -1
  27. package/dist/bin/exe-start.sh +24 -4
  28. package/dist/bin/exe-status.js +7 -2
  29. package/dist/bin/exe-team.js +7 -2
  30. package/dist/bin/git-sweep.js +6 -3
  31. package/dist/bin/graph-backfill.js +5 -1
  32. package/dist/bin/graph-export.js +7 -2
  33. package/dist/bin/install.js +39 -0
  34. package/dist/bin/intercom-check.js +8 -4
  35. package/dist/bin/scan-tasks.js +8 -4
  36. package/dist/bin/setup.js +9 -1
  37. package/dist/bin/shard-migrate.js +5 -1
  38. package/dist/gateway/index.js +6 -3
  39. package/dist/hooks/bug-report-worker.js +8 -4
  40. package/dist/hooks/codex-stop-task-finalizer.js +7 -2
  41. package/dist/hooks/commit-complete.js +10 -7
  42. package/dist/hooks/error-recall.js +5 -1
  43. package/dist/hooks/ingest.js +5 -1
  44. package/dist/hooks/instructions-loaded.js +7 -2
  45. package/dist/hooks/notification.js +7 -2
  46. package/dist/hooks/post-compact.js +7 -2
  47. package/dist/hooks/post-tool-combined.js +5 -1
  48. package/dist/hooks/pre-compact.js +8 -4
  49. package/dist/hooks/pre-tool-use.js +7 -2
  50. package/dist/hooks/prompt-submit.js +6 -3
  51. package/dist/hooks/session-end.js +8 -4
  52. package/dist/hooks/session-start.js +7 -2
  53. package/dist/hooks/stop.js +7 -2
  54. package/dist/hooks/subagent-stop.js +7 -2
  55. package/dist/hooks/summary-worker.js +5 -1
  56. package/dist/index.js +6 -3
  57. package/dist/lib/cloud-sync.js +5 -1
  58. package/dist/lib/database.js +5 -1
  59. package/dist/lib/db.js +5 -1
  60. package/dist/lib/device-registry.js +5 -1
  61. package/dist/lib/exe-daemon.js +6 -3
  62. package/dist/lib/hybrid-search.js +5 -1
  63. package/dist/lib/schedules.js +5 -1
  64. package/dist/lib/session-wrappers.js +4 -0
  65. package/dist/lib/store.js +5 -1
  66. package/dist/lib/tasks.js +1 -2
  67. package/dist/lib/tmux-routing.js +1 -2
  68. package/dist/mcp/server.js +29 -7
  69. package/dist/mcp/tools/create-task.js +1 -2
  70. package/dist/mcp/tools/update-task.js +1 -2
  71. package/dist/runtime/index.js +6 -3
  72. package/dist/tui/App.js +6 -3
  73. package/package.json +1 -1
@@ -1594,7 +1594,8 @@ __export(database_exports, {
1594
1594
  initDaemonClient: () => initDaemonClient,
1595
1595
  initDatabase: () => initDatabase,
1596
1596
  initTurso: () => initTurso,
1597
- isInitialized: () => isInitialized
1597
+ isInitialized: () => isInitialized,
1598
+ setExternalClient: () => setExternalClient
1598
1599
  });
1599
1600
  import { createClient } from "@libsql/client";
1600
1601
  async function initDatabase(config) {
@@ -1641,6 +1642,9 @@ async function initDatabase(config) {
1641
1642
  function isInitialized() {
1642
1643
  return _adapterClient !== null || _client !== null;
1643
1644
  }
1645
+ function setExternalClient(client) {
1646
+ _adapterClient = client;
1647
+ }
1644
1648
  function getClient() {
1645
1649
  if (!_adapterClient) {
1646
1650
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -1594,7 +1594,8 @@ __export(database_exports, {
1594
1594
  initDaemonClient: () => initDaemonClient,
1595
1595
  initDatabase: () => initDatabase,
1596
1596
  initTurso: () => initTurso,
1597
- isInitialized: () => isInitialized
1597
+ isInitialized: () => isInitialized,
1598
+ setExternalClient: () => setExternalClient
1598
1599
  });
1599
1600
  import { createClient } from "@libsql/client";
1600
1601
  async function initDatabase(config) {
@@ -1641,6 +1642,9 @@ async function initDatabase(config) {
1641
1642
  function isInitialized() {
1642
1643
  return _adapterClient !== null || _client !== null;
1643
1644
  }
1645
+ function setExternalClient(client) {
1646
+ _adapterClient = client;
1647
+ }
1644
1648
  function getClient() {
1645
1649
  if (!_adapterClient) {
1646
1650
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -1590,7 +1590,8 @@ __export(database_exports, {
1590
1590
  initDaemonClient: () => initDaemonClient,
1591
1591
  initDatabase: () => initDatabase,
1592
1592
  initTurso: () => initTurso,
1593
- isInitialized: () => isInitialized
1593
+ isInitialized: () => isInitialized,
1594
+ setExternalClient: () => setExternalClient
1594
1595
  });
1595
1596
  import { createClient } from "@libsql/client";
1596
1597
  async function initDatabase(config) {
@@ -1637,6 +1638,9 @@ async function initDatabase(config) {
1637
1638
  function isInitialized() {
1638
1639
  return _adapterClient !== null || _client !== null;
1639
1640
  }
1641
+ function setExternalClient(client) {
1642
+ _adapterClient = client;
1643
+ }
1640
1644
  function getClient() {
1641
1645
  if (!_adapterClient) {
1642
1646
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -1680,7 +1680,8 @@ __export(database_exports, {
1680
1680
  initDaemonClient: () => initDaemonClient,
1681
1681
  initDatabase: () => initDatabase,
1682
1682
  initTurso: () => initTurso,
1683
- isInitialized: () => isInitialized
1683
+ isInitialized: () => isInitialized,
1684
+ setExternalClient: () => setExternalClient
1684
1685
  });
1685
1686
  import { createClient } from "@libsql/client";
1686
1687
  async function initDatabase(config) {
@@ -1727,6 +1728,9 @@ async function initDatabase(config) {
1727
1728
  function isInitialized() {
1728
1729
  return _adapterClient !== null || _client !== null;
1729
1730
  }
1731
+ function setExternalClient(client) {
1732
+ _adapterClient = client;
1733
+ }
1730
1734
  function getClient() {
1731
1735
  if (!_adapterClient) {
1732
1736
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -4479,7 +4483,7 @@ var init_task_scope = __esm({
4479
4483
 
4480
4484
  // src/bin/fast-db-init.ts
4481
4485
  async function fastDbInit() {
4482
- const { isInitialized: isInitialized2, getClient: getClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
4486
+ const { isInitialized: isInitialized2, getClient: getClient2, setExternalClient: setExternalClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
4483
4487
  if (isInitialized2()) {
4484
4488
  return getClient2();
4485
4489
  }
@@ -4530,6 +4534,7 @@ async function fastDbInit() {
4530
4534
  return "file";
4531
4535
  }
4532
4536
  };
4537
+ setExternalClient2(daemonClient);
4533
4538
  return daemonClient;
4534
4539
  }
4535
4540
  } catch {
package/dist/bin/cli.js CHANGED
@@ -3124,7 +3124,8 @@ __export(database_exports, {
3124
3124
  initDaemonClient: () => initDaemonClient,
3125
3125
  initDatabase: () => initDatabase,
3126
3126
  initTurso: () => initTurso,
3127
- isInitialized: () => isInitialized
3127
+ isInitialized: () => isInitialized,
3128
+ setExternalClient: () => setExternalClient
3128
3129
  });
3129
3130
  import { createClient } from "@libsql/client";
3130
3131
  async function initDatabase(config) {
@@ -3171,6 +3172,9 @@ async function initDatabase(config) {
3171
3172
  function isInitialized() {
3172
3173
  return _adapterClient !== null || _client !== null;
3173
3174
  }
3175
+ function setExternalClient(client) {
3176
+ _adapterClient = client;
3177
+ }
3174
3178
  function getClient() {
3175
3179
  if (!_adapterClient) {
3176
3180
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -12625,8 +12629,7 @@ function spawnEmployee(employeeName, exeSession, projectDir, opts) {
12625
12629
  envPrefix = `${envPrefix} ANTHROPIC_MODEL=${agentRtConfig.model}`;
12626
12630
  }
12627
12631
  if (!useExeAgent && !useCodex && !useOpencode && !useBinSymlink) {
12628
- const defaultClaudeModel = DEFAULT_MODELS.claude;
12629
- if (agentRtConfig.runtime === "claude" && agentRtConfig.model !== defaultClaudeModel) {
12632
+ if (agentRtConfig.runtime === "claude" && agentRtConfig.model) {
12630
12633
  envPrefix = `${envPrefix} ANTHROPIC_MODEL=${agentRtConfig.model}`;
12631
12634
  }
12632
12635
  }
@@ -14721,6 +14724,10 @@ exec "${exeStartDst}" "$0" "$@"
14721
14724
  writeFileSync18(wrapperPath, wrapperContent);
14722
14725
  chmodSync2(wrapperPath, 493);
14723
14726
  created++;
14727
+ const codexPath = path32.join(binDir, `${emp.name}${n}-codex`);
14728
+ writeFileSync18(codexPath, wrapperContent);
14729
+ chmodSync2(codexPath, 493);
14730
+ created++;
14724
14731
  }
14725
14732
  }
14726
14733
  const codexLauncherCandidates = [
@@ -30219,6 +30226,7 @@ var init_installer2 = __esm({
30219
30226
  // src/adapters/codex/installer.ts
30220
30227
  var installer_exports3 = {};
30221
30228
  __export(installer_exports3, {
30229
+ ensureCodexHooksFeature: () => ensureCodexHooksFeature,
30222
30230
  installCodexStatusLine: () => installCodexStatusLine,
30223
30231
  mergeCodexHooks: () => mergeCodexHooks,
30224
30232
  registerCodexMcpServer: () => registerCodexMcpServer,
@@ -30429,11 +30437,45 @@ args = ["${serverJsPath}"]
30429
30437
  await writeFile9(configPath, content);
30430
30438
  return "registered";
30431
30439
  }
30440
+ async function ensureCodexHooksFeature(homeDir = os20.homedir()) {
30441
+ const configPath = path45.join(homeDir, ".codex", "config.toml");
30442
+ await mkdir9(path45.join(homeDir, ".codex"), { recursive: true });
30443
+ let content = "";
30444
+ if (existsSync31(configPath)) {
30445
+ content = await readFile8(configPath, "utf-8");
30446
+ }
30447
+ if (/\[features\][\s\S]*?codex_hooks\s*=\s*true/.test(content)) {
30448
+ return "already-enabled";
30449
+ }
30450
+ if (content.includes("[features]")) {
30451
+ if (/codex_hooks\s*=\s*false/.test(content)) {
30452
+ content = content.replace(/codex_hooks\s*=\s*false/, "codex_hooks = true");
30453
+ } else {
30454
+ content = content.replace(/\[features\]/, "[features]\ncodex_hooks = true");
30455
+ }
30456
+ } else {
30457
+ const firstSectionMatch = content.match(/\n\[(?!features\])/);
30458
+ if (firstSectionMatch && firstSectionMatch.index != null) {
30459
+ const insertAt = firstSectionMatch.index;
30460
+ content = content.slice(0, insertAt) + "\n\n[features]\ncodex_hooks = true" + content.slice(insertAt);
30461
+ } else {
30462
+ const separator = content.length > 0 && !content.endsWith("\n") ? "\n\n" : "\n";
30463
+ content = content + separator + "[features]\ncodex_hooks = true\n";
30464
+ }
30465
+ }
30466
+ await writeFile9(configPath, content);
30467
+ return "enabled";
30468
+ }
30432
30469
  async function runCodexInstaller(homeDir) {
30433
30470
  const packageRoot = resolvePackageRoot();
30434
30471
  const result = await mergeCodexHooks(packageRoot, homeDir);
30435
30472
  process.stderr.write(
30436
30473
  `[exe-os] Codex hooks: ${result.added} added, ${result.skipped} unchanged
30474
+ `
30475
+ );
30476
+ const featureResult = await ensureCodexHooksFeature(homeDir);
30477
+ process.stderr.write(
30478
+ `[exe-os] Codex hooks feature: ${featureResult}
30437
30479
  `
30438
30480
  );
30439
30481
  const mcpResult = await registerCodexMcpServer(packageRoot, homeDir);
@@ -1604,7 +1604,8 @@ __export(database_exports, {
1604
1604
  initDaemonClient: () => initDaemonClient,
1605
1605
  initDatabase: () => initDatabase,
1606
1606
  initTurso: () => initTurso,
1607
- isInitialized: () => isInitialized
1607
+ isInitialized: () => isInitialized,
1608
+ setExternalClient: () => setExternalClient
1608
1609
  });
1609
1610
  import { createClient } from "@libsql/client";
1610
1611
  async function initDatabase(config) {
@@ -1651,6 +1652,9 @@ async function initDatabase(config) {
1651
1652
  function isInitialized() {
1652
1653
  return _adapterClient !== null || _client !== null;
1653
1654
  }
1655
+ function setExternalClient(client) {
1656
+ _adapterClient = client;
1657
+ }
1654
1658
  function getClient() {
1655
1659
  if (!_adapterClient) {
1656
1660
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -1746,7 +1746,8 @@ __export(database_exports, {
1746
1746
  initDaemonClient: () => initDaemonClient,
1747
1747
  initDatabase: () => initDatabase,
1748
1748
  initTurso: () => initTurso,
1749
- isInitialized: () => isInitialized
1749
+ isInitialized: () => isInitialized,
1750
+ setExternalClient: () => setExternalClient
1750
1751
  });
1751
1752
  import { createClient } from "@libsql/client";
1752
1753
  async function initDatabase(config) {
@@ -1793,6 +1794,9 @@ async function initDatabase(config) {
1793
1794
  function isInitialized() {
1794
1795
  return _adapterClient !== null || _client !== null;
1795
1796
  }
1797
+ function setExternalClient(client) {
1798
+ _adapterClient = client;
1799
+ }
1796
1800
  function getClient() {
1797
1801
  if (!_adapterClient) {
1798
1802
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -7797,8 +7801,7 @@ function spawnEmployee(employeeName, exeSession, projectDir, opts) {
7797
7801
  envPrefix = `${envPrefix} ANTHROPIC_MODEL=${agentRtConfig.model}`;
7798
7802
  }
7799
7803
  if (!useExeAgent && !useCodex && !useOpencode && !useBinSymlink) {
7800
- const defaultClaudeModel = DEFAULT_MODELS.claude;
7801
- if (agentRtConfig.runtime === "claude" && agentRtConfig.model !== defaultClaudeModel) {
7804
+ if (agentRtConfig.runtime === "claude" && agentRtConfig.model) {
7802
7805
  envPrefix = `${envPrefix} ANTHROPIC_MODEL=${agentRtConfig.model}`;
7803
7806
  }
7804
7807
  }
@@ -2248,7 +2248,8 @@ __export(database_exports, {
2248
2248
  initDaemonClient: () => initDaemonClient,
2249
2249
  initDatabase: () => initDatabase,
2250
2250
  initTurso: () => initTurso,
2251
- isInitialized: () => isInitialized
2251
+ isInitialized: () => isInitialized,
2252
+ setExternalClient: () => setExternalClient
2252
2253
  });
2253
2254
  import { createClient } from "@libsql/client";
2254
2255
  async function initDatabase(config) {
@@ -2295,6 +2296,9 @@ async function initDatabase(config) {
2295
2296
  function isInitialized() {
2296
2297
  return _adapterClient !== null || _client !== null;
2297
2298
  }
2299
+ function setExternalClient(client) {
2300
+ _adapterClient = client;
2301
+ }
2298
2302
  function getClient() {
2299
2303
  if (!_adapterClient) {
2300
2304
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -6377,8 +6381,7 @@ function spawnEmployee(employeeName2, exeSession2, projectDir2, opts) {
6377
6381
  envPrefix = `${envPrefix} ANTHROPIC_MODEL=${agentRtConfig.model}`;
6378
6382
  }
6379
6383
  if (!useExeAgent && !useCodex && !useOpencode && !useBinSymlink) {
6380
- const defaultClaudeModel = DEFAULT_MODELS.claude;
6381
- if (agentRtConfig.runtime === "claude" && agentRtConfig.model !== defaultClaudeModel) {
6384
+ if (agentRtConfig.runtime === "claude" && agentRtConfig.model) {
6382
6385
  envPrefix = `${envPrefix} ANTHROPIC_MODEL=${agentRtConfig.model}`;
6383
6386
  }
6384
6387
  }
@@ -7743,7 +7746,7 @@ init_tasks_crud();
7743
7746
 
7744
7747
  // src/bin/fast-db-init.ts
7745
7748
  async function fastDbInit() {
7746
- const { isInitialized: isInitialized2, getClient: getClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
7749
+ const { isInitialized: isInitialized2, getClient: getClient2, setExternalClient: setExternalClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
7747
7750
  if (isInitialized2()) {
7748
7751
  return getClient2();
7749
7752
  }
@@ -7794,6 +7797,7 @@ async function fastDbInit() {
7794
7797
  return "file";
7795
7798
  }
7796
7799
  };
7800
+ setExternalClient2(daemonClient);
7797
7801
  return daemonClient;
7798
7802
  }
7799
7803
  } catch {
@@ -1454,7 +1454,8 @@ __export(database_exports, {
1454
1454
  initDaemonClient: () => initDaemonClient,
1455
1455
  initDatabase: () => initDatabase,
1456
1456
  initTurso: () => initTurso,
1457
- isInitialized: () => isInitialized
1457
+ isInitialized: () => isInitialized,
1458
+ setExternalClient: () => setExternalClient
1458
1459
  });
1459
1460
  import { createClient } from "@libsql/client";
1460
1461
  async function initDatabase(config) {
@@ -1501,6 +1502,9 @@ async function initDatabase(config) {
1501
1502
  function isInitialized() {
1502
1503
  return _adapterClient !== null || _client !== null;
1503
1504
  }
1505
+ function setExternalClient(client) {
1506
+ _adapterClient = client;
1507
+ }
1504
1508
  function getClient() {
1505
1509
  if (!_adapterClient) {
1506
1510
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -3721,12 +3725,13 @@ async function detectConflicts(client, projectFilter, agentFilter2) {
3721
3725
 
3722
3726
  // src/bin/exe-doctor.ts
3723
3727
  function parseFlags(argv) {
3724
- const flags = { fix: false, dryRun: false, verbose: false };
3728
+ const flags = { fix: false, dryRun: false, verbose: false, conflicts: false };
3725
3729
  for (let i = 0; i < argv.length; i++) {
3726
3730
  const arg = argv[i];
3727
3731
  if (arg === "--fix") flags.fix = true;
3728
3732
  else if (arg === "--dry-run") flags.dryRun = true;
3729
3733
  else if (arg === "--verbose") flags.verbose = true;
3734
+ else if (arg === "--conflicts") flags.conflicts = true;
3730
3735
  else if (arg === "--agent" && argv[i + 1]) flags.agent = argv[++i];
3731
3736
  else if (arg === "--project" && argv[i + 1]) flags.project = argv[++i];
3732
3737
  }
@@ -3907,15 +3912,31 @@ function auditHookHealth() {
3907
3912
  return { logExists: true, totalLines, errorsLastHour, topPatterns };
3908
3913
  }
3909
3914
  async function runAudit(client, flags) {
3910
- const [stats, nullVectors, duplicates, bloated, fts, orphanedProjects, conflicts] = await Promise.all([
3915
+ const runConflicts = flags.conflicts || process.env.EXE_AUDIT_CONFLICTS === "1";
3916
+ const [stats, nullVectors, duplicates, bloated, fts, orphanedProjects] = await Promise.all([
3911
3917
  auditStats(client, flags),
3912
3918
  auditNullVectors(client, flags),
3913
3919
  auditDuplicates(client, flags),
3914
3920
  auditBloated(client, flags),
3915
3921
  auditFts(client),
3916
- auditOrphanedProjects(client),
3917
- detectConflicts(client, flags.project, flags.agent)
3922
+ auditOrphanedProjects(client)
3918
3923
  ]);
3924
+ let conflicts;
3925
+ if (runConflicts) {
3926
+ conflicts = await detectConflicts(client, flags.project, flags.agent);
3927
+ } else {
3928
+ conflicts = {
3929
+ candidateCount: 0,
3930
+ classified: 0,
3931
+ conflicts: 0,
3932
+ superseded: 0,
3933
+ agree: 0,
3934
+ unclassified: 0,
3935
+ pairs: [],
3936
+ skipped: true,
3937
+ skipReason: "Conflict detection skipped (O(n\xB2) on 97K memories). Use --conflicts flag to enable."
3938
+ };
3939
+ }
3919
3940
  const duplicateCount = duplicates.reduce((sum, d) => sum + d.delete_ids.length, 0);
3920
3941
  const hookHealth = auditHookHealth();
3921
3942
  return { stats, nullVectors, duplicates, duplicateCount, bloated, fts, orphanedProjects, conflicts, hookHealth };
@@ -1669,7 +1669,8 @@ __export(database_exports, {
1669
1669
  initDaemonClient: () => initDaemonClient,
1670
1670
  initDatabase: () => initDatabase,
1671
1671
  initTurso: () => initTurso,
1672
- isInitialized: () => isInitialized
1672
+ isInitialized: () => isInitialized,
1673
+ setExternalClient: () => setExternalClient
1673
1674
  });
1674
1675
  import { createClient } from "@libsql/client";
1675
1676
  async function initDatabase(config) {
@@ -1716,6 +1717,9 @@ async function initDatabase(config) {
1716
1717
  function isInitialized() {
1717
1718
  return _adapterClient !== null || _client !== null;
1718
1719
  }
1720
+ function setExternalClient(client) {
1721
+ _adapterClient = client;
1722
+ }
1719
1723
  function getClient() {
1720
1724
  if (!_adapterClient) {
1721
1725
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -4062,7 +4066,7 @@ init_store();
4062
4066
 
4063
4067
  // src/bin/fast-db-init.ts
4064
4068
  async function fastDbInit() {
4065
- const { isInitialized: isInitialized2, getClient: getClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
4069
+ const { isInitialized: isInitialized2, getClient: getClient2, setExternalClient: setExternalClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
4066
4070
  if (isInitialized2()) {
4067
4071
  return getClient2();
4068
4072
  }
@@ -4113,6 +4117,7 @@ async function fastDbInit() {
4113
4117
  return "file";
4114
4118
  }
4115
4119
  };
4120
+ setExternalClient2(daemonClient);
4116
4121
  return daemonClient;
4117
4122
  }
4118
4123
  } catch {
@@ -1669,7 +1669,8 @@ __export(database_exports, {
1669
1669
  initDaemonClient: () => initDaemonClient,
1670
1670
  initDatabase: () => initDatabase,
1671
1671
  initTurso: () => initTurso,
1672
- isInitialized: () => isInitialized
1672
+ isInitialized: () => isInitialized,
1673
+ setExternalClient: () => setExternalClient
1673
1674
  });
1674
1675
  import { createClient } from "@libsql/client";
1675
1676
  async function initDatabase(config) {
@@ -1716,6 +1717,9 @@ async function initDatabase(config) {
1716
1717
  function isInitialized() {
1717
1718
  return _adapterClient !== null || _client !== null;
1718
1719
  }
1720
+ function setExternalClient(client) {
1721
+ _adapterClient = client;
1722
+ }
1719
1723
  function getClient() {
1720
1724
  if (!_adapterClient) {
1721
1725
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -4062,7 +4066,7 @@ import { createInterface } from "readline";
4062
4066
 
4063
4067
  // src/bin/fast-db-init.ts
4064
4068
  async function fastDbInit() {
4065
- const { isInitialized: isInitialized2, getClient: getClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
4069
+ const { isInitialized: isInitialized2, getClient: getClient2, setExternalClient: setExternalClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
4066
4070
  if (isInitialized2()) {
4067
4071
  return getClient2();
4068
4072
  }
@@ -4113,6 +4117,7 @@ async function fastDbInit() {
4113
4117
  return "file";
4114
4118
  }
4115
4119
  };
4120
+ setExternalClient2(daemonClient);
4116
4121
  return daemonClient;
4117
4122
  }
4118
4123
  } catch {
@@ -2314,7 +2314,8 @@ __export(database_exports, {
2314
2314
  initDaemonClient: () => initDaemonClient,
2315
2315
  initDatabase: () => initDatabase,
2316
2316
  initTurso: () => initTurso,
2317
- isInitialized: () => isInitialized
2317
+ isInitialized: () => isInitialized,
2318
+ setExternalClient: () => setExternalClient
2318
2319
  });
2319
2320
  import { createClient } from "@libsql/client";
2320
2321
  async function initDatabase(config2) {
@@ -2361,6 +2362,9 @@ async function initDatabase(config2) {
2361
2362
  function isInitialized() {
2362
2363
  return _adapterClient !== null || _client !== null;
2363
2364
  }
2365
+ function setExternalClient(client) {
2366
+ _adapterClient = client;
2367
+ }
2364
2368
  function getClient() {
2365
2369
  if (!_adapterClient) {
2366
2370
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -11227,8 +11231,7 @@ function spawnEmployee(employeeName, exeSession, projectDir, opts) {
11227
11231
  envPrefix = `${envPrefix} ANTHROPIC_MODEL=${agentRtConfig.model}`;
11228
11232
  }
11229
11233
  if (!useExeAgent && !useCodex && !useOpencode && !useBinSymlink) {
11230
- const defaultClaudeModel = DEFAULT_MODELS.claude;
11231
- if (agentRtConfig.runtime === "claude" && agentRtConfig.model !== defaultClaudeModel) {
11234
+ if (agentRtConfig.runtime === "claude" && agentRtConfig.model) {
11232
11235
  envPrefix = `${envPrefix} ANTHROPIC_MODEL=${agentRtConfig.model}`;
11233
11236
  }
11234
11237
  }
@@ -1699,7 +1699,8 @@ __export(database_exports, {
1699
1699
  initDaemonClient: () => initDaemonClient,
1700
1700
  initDatabase: () => initDatabase,
1701
1701
  initTurso: () => initTurso,
1702
- isInitialized: () => isInitialized
1702
+ isInitialized: () => isInitialized,
1703
+ setExternalClient: () => setExternalClient
1703
1704
  });
1704
1705
  import { createClient } from "@libsql/client";
1705
1706
  async function initDatabase(config) {
@@ -1746,6 +1747,9 @@ async function initDatabase(config) {
1746
1747
  function isInitialized() {
1747
1748
  return _adapterClient !== null || _client !== null;
1748
1749
  }
1750
+ function setExternalClient(client) {
1751
+ _adapterClient = client;
1752
+ }
1749
1753
  function getClient() {
1750
1754
  if (!_adapterClient) {
1751
1755
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -4559,7 +4563,7 @@ import path16 from "path";
4559
4563
 
4560
4564
  // src/bin/fast-db-init.ts
4561
4565
  async function fastDbInit() {
4562
- const { isInitialized: isInitialized2, getClient: getClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
4566
+ const { isInitialized: isInitialized2, getClient: getClient2, setExternalClient: setExternalClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
4563
4567
  if (isInitialized2()) {
4564
4568
  return getClient2();
4565
4569
  }
@@ -4610,6 +4614,7 @@ async function fastDbInit() {
4610
4614
  return "file";
4611
4615
  }
4612
4616
  };
4617
+ setExternalClient2(daemonClient);
4613
4618
  return daemonClient;
4614
4619
  }
4615
4620
  } catch {
@@ -1669,7 +1669,8 @@ __export(database_exports, {
1669
1669
  initDaemonClient: () => initDaemonClient,
1670
1670
  initDatabase: () => initDatabase,
1671
1671
  initTurso: () => initTurso,
1672
- isInitialized: () => isInitialized
1672
+ isInitialized: () => isInitialized,
1673
+ setExternalClient: () => setExternalClient
1673
1674
  });
1674
1675
  import { createClient } from "@libsql/client";
1675
1676
  async function initDatabase(config) {
@@ -1716,6 +1717,9 @@ async function initDatabase(config) {
1716
1717
  function isInitialized() {
1717
1718
  return _adapterClient !== null || _client !== null;
1718
1719
  }
1720
+ function setExternalClient(client) {
1721
+ _adapterClient = client;
1722
+ }
1719
1723
  function getClient() {
1720
1724
  if (!_adapterClient) {
1721
1725
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -4063,7 +4067,7 @@ import { execSync as execSync2 } from "child_process";
4063
4067
 
4064
4068
  // src/bin/fast-db-init.ts
4065
4069
  async function fastDbInit() {
4066
- const { isInitialized: isInitialized2, getClient: getClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
4070
+ const { isInitialized: isInitialized2, getClient: getClient2, setExternalClient: setExternalClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
4067
4071
  if (isInitialized2()) {
4068
4072
  return getClient2();
4069
4073
  }
@@ -4114,6 +4118,7 @@ async function fastDbInit() {
4114
4118
  return "file";
4115
4119
  }
4116
4120
  };
4121
+ setExternalClient2(daemonClient);
4117
4122
  return daemonClient;
4118
4123
  }
4119
4124
  } catch {
@@ -1788,7 +1788,8 @@ __export(database_exports, {
1788
1788
  initDaemonClient: () => initDaemonClient,
1789
1789
  initDatabase: () => initDatabase,
1790
1790
  initTurso: () => initTurso,
1791
- isInitialized: () => isInitialized
1791
+ isInitialized: () => isInitialized,
1792
+ setExternalClient: () => setExternalClient
1792
1793
  });
1793
1794
  import { createClient } from "@libsql/client";
1794
1795
  async function initDatabase(config) {
@@ -1835,6 +1836,9 @@ async function initDatabase(config) {
1835
1836
  function isInitialized() {
1836
1837
  return _adapterClient !== null || _client !== null;
1837
1838
  }
1839
+ function setExternalClient(client) {
1840
+ _adapterClient = client;
1841
+ }
1838
1842
  function getClient() {
1839
1843
  if (!_adapterClient) {
1840
1844
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -1746,7 +1746,8 @@ __export(database_exports, {
1746
1746
  initDaemonClient: () => initDaemonClient,
1747
1747
  initDatabase: () => initDatabase,
1748
1748
  initTurso: () => initTurso,
1749
- isInitialized: () => isInitialized
1749
+ isInitialized: () => isInitialized,
1750
+ setExternalClient: () => setExternalClient
1750
1751
  });
1751
1752
  import { createClient } from "@libsql/client";
1752
1753
  async function initDatabase(config) {
@@ -1793,6 +1794,9 @@ async function initDatabase(config) {
1793
1794
  function isInitialized() {
1794
1795
  return _adapterClient !== null || _client !== null;
1795
1796
  }
1797
+ function setExternalClient(client) {
1798
+ _adapterClient = client;
1799
+ }
1796
1800
  function getClient() {
1797
1801
  if (!_adapterClient) {
1798
1802
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -2136,6 +2136,10 @@ exec "${exeStartDst}" "$0" "$@"
2136
2136
  writeFileSync(wrapperPath, wrapperContent);
2137
2137
  chmodSync(wrapperPath, 493);
2138
2138
  created++;
2139
+ const codexPath = path.join(binDir, `${emp.name}${n}-codex`);
2140
+ writeFileSync(codexPath, wrapperContent);
2141
+ chmodSync(codexPath, 493);
2142
+ created++;
2139
2143
  }
2140
2144
  }
2141
2145
  const codexLauncherCandidates = [
@@ -1679,7 +1679,8 @@ __export(database_exports, {
1679
1679
  initDaemonClient: () => initDaemonClient,
1680
1680
  initDatabase: () => initDatabase,
1681
1681
  initTurso: () => initTurso,
1682
- isInitialized: () => isInitialized
1682
+ isInitialized: () => isInitialized,
1683
+ setExternalClient: () => setExternalClient
1683
1684
  });
1684
1685
  import { createClient } from "@libsql/client";
1685
1686
  async function initDatabase(config) {
@@ -1726,6 +1727,9 @@ async function initDatabase(config) {
1726
1727
  function isInitialized() {
1727
1728
  return _adapterClient !== null || _client !== null;
1728
1729
  }
1730
+ function setExternalClient(client) {
1731
+ _adapterClient = client;
1732
+ }
1729
1733
  function getClient() {
1730
1734
  if (!_adapterClient) {
1731
1735
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -4525,7 +4529,7 @@ async function markRead(messageId, sessionScope) {
4525
4529
 
4526
4530
  // src/bin/fast-db-init.ts
4527
4531
  async function fastDbInit() {
4528
- const { isInitialized: isInitialized2, getClient: getClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
4532
+ const { isInitialized: isInitialized2, getClient: getClient2, setExternalClient: setExternalClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
4529
4533
  if (isInitialized2()) {
4530
4534
  return getClient2();
4531
4535
  }
@@ -4576,6 +4580,7 @@ async function fastDbInit() {
4576
4580
  return "file";
4577
4581
  }
4578
4582
  };
4583
+ setExternalClient2(daemonClient);
4579
4584
  return daemonClient;
4580
4585
  }
4581
4586
  } catch {
@@ -1680,7 +1680,8 @@ __export(database_exports, {
1680
1680
  initDaemonClient: () => initDaemonClient,
1681
1681
  initDatabase: () => initDatabase,
1682
1682
  initTurso: () => initTurso,
1683
- isInitialized: () => isInitialized
1683
+ isInitialized: () => isInitialized,
1684
+ setExternalClient: () => setExternalClient
1684
1685
  });
1685
1686
  import { createClient } from "@libsql/client";
1686
1687
  async function initDatabase(config) {
@@ -1727,6 +1728,9 @@ async function initDatabase(config) {
1727
1728
  function isInitialized() {
1728
1729
  return _adapterClient !== null || _client !== null;
1729
1730
  }
1731
+ function setExternalClient(client) {
1732
+ _adapterClient = client;
1733
+ }
1730
1734
  function getClient() {
1731
1735
  if (!_adapterClient) {
1732
1736
  throw new Error("Database client not initialized. Call initDatabase() first.");
@@ -4562,7 +4566,7 @@ function isMainModule(importMetaUrl) {
4562
4566
 
4563
4567
  // src/bin/fast-db-init.ts
4564
4568
  async function fastDbInit() {
4565
- const { isInitialized: isInitialized2, getClient: getClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
4569
+ const { isInitialized: isInitialized2, getClient: getClient2, setExternalClient: setExternalClient2 } = await Promise.resolve().then(() => (init_database(), database_exports));
4566
4570
  if (isInitialized2()) {
4567
4571
  return getClient2();
4568
4572
  }
@@ -4613,6 +4617,7 @@ async function fastDbInit() {
4613
4617
  return "file";
4614
4618
  }
4615
4619
  };
4620
+ setExternalClient2(daemonClient);
4616
4621
  return daemonClient;
4617
4622
  }
4618
4623
  } catch {