@askexenow/exe-os 0.8.85 → 0.8.86

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 (57) hide show
  1. package/dist/bin/cleanup-stale-review-tasks.js +57 -19
  2. package/dist/bin/cli.js +507 -337
  3. package/dist/bin/exe-agent-config.js +242 -0
  4. package/dist/bin/exe-agent.js +3 -3
  5. package/dist/bin/exe-boot.js +344 -346
  6. package/dist/bin/exe-dispatch.js +375 -250
  7. package/dist/bin/exe-forget.js +5 -1
  8. package/dist/bin/exe-gateway.js +260 -135
  9. package/dist/bin/exe-healthcheck.js +133 -1
  10. package/dist/bin/exe-heartbeat.js +72 -31
  11. package/dist/bin/exe-link.js +25 -2
  12. package/dist/bin/exe-new-employee.js +22 -0
  13. package/dist/bin/exe-pending-messages.js +55 -17
  14. package/dist/bin/exe-pending-reviews.js +57 -19
  15. package/dist/bin/exe-search.js +6 -2
  16. package/dist/bin/exe-session-cleanup.js +260 -135
  17. package/dist/bin/exe-start-codex.js +2598 -0
  18. package/dist/bin/exe-start.sh +15 -3
  19. package/dist/bin/exe-status.js +57 -19
  20. package/dist/bin/git-sweep.js +391 -266
  21. package/dist/bin/install.js +22 -0
  22. package/dist/bin/scan-tasks.js +394 -269
  23. package/dist/bin/setup.js +47 -2
  24. package/dist/gateway/index.js +257 -132
  25. package/dist/hooks/bug-report-worker.js +242 -117
  26. package/dist/hooks/commit-complete.js +389 -264
  27. package/dist/hooks/error-recall.js +6 -2
  28. package/dist/hooks/ingest-worker.js +314 -193
  29. package/dist/hooks/post-compact.js +84 -46
  30. package/dist/hooks/pre-compact.js +272 -147
  31. package/dist/hooks/pre-tool-use.js +104 -66
  32. package/dist/hooks/prompt-submit.js +126 -66
  33. package/dist/hooks/session-end.js +277 -152
  34. package/dist/hooks/session-start.js +70 -28
  35. package/dist/hooks/stop.js +90 -52
  36. package/dist/hooks/subagent-stop.js +84 -46
  37. package/dist/hooks/summary-worker.js +175 -114
  38. package/dist/index.js +296 -171
  39. package/dist/lib/agent-config.js +167 -0
  40. package/dist/lib/cloud-sync.js +25 -2
  41. package/dist/lib/exe-daemon.js +338 -213
  42. package/dist/lib/hybrid-search.js +7 -2
  43. package/dist/lib/messaging.js +95 -39
  44. package/dist/lib/runtime-table.js +16 -0
  45. package/dist/lib/session-wrappers.js +22 -0
  46. package/dist/lib/tasks.js +242 -117
  47. package/dist/lib/tmux-routing.js +314 -189
  48. package/dist/mcp/server.js +573 -274
  49. package/dist/mcp/tools/create-task.js +260 -135
  50. package/dist/mcp/tools/list-tasks.js +68 -30
  51. package/dist/mcp/tools/send-message.js +100 -44
  52. package/dist/mcp/tools/update-task.js +123 -67
  53. package/dist/runtime/index.js +276 -151
  54. package/dist/tui/App.js +479 -354
  55. package/package.json +1 -1
  56. package/src/commands/exe/agent-config.md +27 -0
  57. package/src/commands/exe/cc-doctor.md +10 -0
package/dist/bin/setup.js CHANGED
@@ -3454,10 +3454,18 @@ function buildRosterBlob(paths) {
3454
3454
  } catch {
3455
3455
  }
3456
3456
  }
3457
+ let agentConfig;
3458
+ const agentConfigPath = path8.join(EXE_AI_DIR, "agent-config.json");
3459
+ if (existsSync8(agentConfigPath)) {
3460
+ try {
3461
+ agentConfig = JSON.parse(readFileSync6(agentConfigPath, "utf-8"));
3462
+ } catch {
3463
+ }
3464
+ }
3457
3465
  const deletedNames = consumeRosterDeletions();
3458
- const content = JSON.stringify({ roster, identities, config, deletedNames });
3466
+ const content = JSON.stringify({ roster, identities, config, agentConfig, deletedNames });
3459
3467
  const hash = crypto2.createHash("sha256").update(content).digest("hex").slice(0, 16);
3460
- return { roster, identities, config, deletedNames, version: hash };
3468
+ return { roster, identities, config, agentConfig, deletedNames, version: hash };
3461
3469
  }
3462
3470
  async function cloudPushRoster(config) {
3463
3471
  assertSecureEndpoint(config.endpoint);
@@ -3595,6 +3603,21 @@ async function mergeRosterFromRemote(remote, paths) {
3595
3603
  } catch {
3596
3604
  }
3597
3605
  }
3606
+ if (remote.agentConfig && Object.keys(remote.agentConfig).length > 0) {
3607
+ try {
3608
+ const agentConfigPath = path8.join(EXE_AI_DIR, "agent-config.json");
3609
+ let local = {};
3610
+ if (existsSync8(agentConfigPath)) {
3611
+ try {
3612
+ local = JSON.parse(readFileSync6(agentConfigPath, "utf-8"));
3613
+ } catch {
3614
+ }
3615
+ }
3616
+ const merged = { ...remote.agentConfig, ...local };
3617
+ writeFileSync4(agentConfigPath, JSON.stringify(merged, null, 2) + "\n", "utf-8");
3618
+ } catch {
3619
+ }
3620
+ }
3598
3621
  return { added, identitiesUpdated };
3599
3622
  });
3600
3623
  }
@@ -5520,6 +5543,28 @@ exec "${exeStartDst}" "$0" "$@"
5520
5543
  created++;
5521
5544
  }
5522
5545
  }
5546
+ const codexLauncherCandidates = [
5547
+ path10.join(packageRoot, "dist", "bin", "exe-start-codex.js"),
5548
+ path10.join(packageRoot, "src", "bin", "exe-start-codex.ts")
5549
+ ];
5550
+ let codexLauncher = null;
5551
+ for (const c of codexLauncherCandidates) {
5552
+ if (existsSync10(c)) {
5553
+ codexLauncher = c;
5554
+ break;
5555
+ }
5556
+ }
5557
+ if (codexLauncher) {
5558
+ for (const emp of employees) {
5559
+ const wrapperPath = path10.join(binDir, `${emp.name}-codex`);
5560
+ const content = `#!/bin/bash
5561
+ exec node "${codexLauncher}" --agent ${emp.name} "$@"
5562
+ `;
5563
+ writeFileSync6(wrapperPath, content);
5564
+ chmodSync(wrapperPath, 493);
5565
+ created++;
5566
+ }
5567
+ }
5523
5568
  const pathConfigured = ensurePath(home, binDir);
5524
5569
  return { created, pathConfigured };
5525
5570
  }