@askexenow/exe-os 0.8.0

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 (131) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +139 -0
  3. package/dist/bin/backfill-responses.js +1912 -0
  4. package/dist/bin/backfill-vectors.js +1642 -0
  5. package/dist/bin/cleanup-stale-review-tasks.js +1339 -0
  6. package/dist/bin/cli.js +18800 -0
  7. package/dist/bin/exe-agent.js +1858 -0
  8. package/dist/bin/exe-assign.js +1957 -0
  9. package/dist/bin/exe-boot.js +6460 -0
  10. package/dist/bin/exe-call.js +197 -0
  11. package/dist/bin/exe-cloud.js +850 -0
  12. package/dist/bin/exe-dispatch.js +1146 -0
  13. package/dist/bin/exe-doctor.js +1657 -0
  14. package/dist/bin/exe-export-behaviors.js +1494 -0
  15. package/dist/bin/exe-forget.js +1627 -0
  16. package/dist/bin/exe-gateway.js +7732 -0
  17. package/dist/bin/exe-healthcheck.js +207 -0
  18. package/dist/bin/exe-heartbeat.js +1647 -0
  19. package/dist/bin/exe-kill.js +1479 -0
  20. package/dist/bin/exe-launch-agent.js +1704 -0
  21. package/dist/bin/exe-link.js +192 -0
  22. package/dist/bin/exe-new-employee.js +852 -0
  23. package/dist/bin/exe-pending-messages.js +1446 -0
  24. package/dist/bin/exe-pending-notifications.js +1321 -0
  25. package/dist/bin/exe-pending-reviews.js +1468 -0
  26. package/dist/bin/exe-repo-drift.js +95 -0
  27. package/dist/bin/exe-review.js +1590 -0
  28. package/dist/bin/exe-search.js +2651 -0
  29. package/dist/bin/exe-session-cleanup.js +3173 -0
  30. package/dist/bin/exe-settings.js +354 -0
  31. package/dist/bin/exe-status.js +1532 -0
  32. package/dist/bin/exe-team.js +1324 -0
  33. package/dist/bin/git-sweep.js +2185 -0
  34. package/dist/bin/graph-backfill.js +1968 -0
  35. package/dist/bin/graph-export.js +1604 -0
  36. package/dist/bin/install.js +656 -0
  37. package/dist/bin/list-providers.js +140 -0
  38. package/dist/bin/scan-tasks.js +1820 -0
  39. package/dist/bin/setup.js +951 -0
  40. package/dist/bin/shard-migrate.js +1494 -0
  41. package/dist/bin/update.js +95 -0
  42. package/dist/bin/wiki-sync.js +1514 -0
  43. package/dist/gateway/index.js +8848 -0
  44. package/dist/hooks/bug-report-worker.js +2743 -0
  45. package/dist/hooks/commit-complete.js +2108 -0
  46. package/dist/hooks/error-recall.js +2861 -0
  47. package/dist/hooks/exe-heartbeat-hook.js +232 -0
  48. package/dist/hooks/ingest-worker.js +4793 -0
  49. package/dist/hooks/ingest.js +684 -0
  50. package/dist/hooks/instructions-loaded.js +1880 -0
  51. package/dist/hooks/notification.js +1726 -0
  52. package/dist/hooks/post-compact.js +1751 -0
  53. package/dist/hooks/pre-compact.js +1746 -0
  54. package/dist/hooks/pre-tool-use.js +2191 -0
  55. package/dist/hooks/prompt-ingest-worker.js +2126 -0
  56. package/dist/hooks/prompt-submit.js +4693 -0
  57. package/dist/hooks/response-ingest-worker.js +1936 -0
  58. package/dist/hooks/session-end.js +1752 -0
  59. package/dist/hooks/session-start.js +2795 -0
  60. package/dist/hooks/stop.js +1835 -0
  61. package/dist/hooks/subagent-stop.js +1726 -0
  62. package/dist/hooks/summary-worker.js +2661 -0
  63. package/dist/index.js +11834 -0
  64. package/dist/lib/cloud-sync.js +495 -0
  65. package/dist/lib/config.js +222 -0
  66. package/dist/lib/consolidation.js +476 -0
  67. package/dist/lib/crypto.js +51 -0
  68. package/dist/lib/database.js +730 -0
  69. package/dist/lib/device-registry.js +900 -0
  70. package/dist/lib/embedder.js +632 -0
  71. package/dist/lib/employee-templates.js +543 -0
  72. package/dist/lib/employees.js +177 -0
  73. package/dist/lib/error-detector.js +156 -0
  74. package/dist/lib/exe-daemon-client.js +451 -0
  75. package/dist/lib/exe-daemon.js +8285 -0
  76. package/dist/lib/file-grep.js +199 -0
  77. package/dist/lib/hybrid-search.js +1819 -0
  78. package/dist/lib/identity-templates.js +320 -0
  79. package/dist/lib/identity.js +223 -0
  80. package/dist/lib/keychain.js +145 -0
  81. package/dist/lib/license.js +377 -0
  82. package/dist/lib/messaging.js +1376 -0
  83. package/dist/lib/reminders.js +63 -0
  84. package/dist/lib/schedules.js +1396 -0
  85. package/dist/lib/session-registry.js +52 -0
  86. package/dist/lib/skill-learning.js +477 -0
  87. package/dist/lib/status-brief.js +235 -0
  88. package/dist/lib/store.js +1551 -0
  89. package/dist/lib/task-router.js +62 -0
  90. package/dist/lib/tasks.js +2456 -0
  91. package/dist/lib/tmux-routing.js +2836 -0
  92. package/dist/lib/tmux-status.js +261 -0
  93. package/dist/lib/tmux-transport.js +83 -0
  94. package/dist/lib/transport.js +128 -0
  95. package/dist/lib/ws-auth.js +19 -0
  96. package/dist/lib/ws-client.js +160 -0
  97. package/dist/mcp/server.js +10538 -0
  98. package/dist/mcp/tools/complete-reminder.js +67 -0
  99. package/dist/mcp/tools/create-reminder.js +52 -0
  100. package/dist/mcp/tools/create-task.js +1853 -0
  101. package/dist/mcp/tools/deactivate-behavior.js +263 -0
  102. package/dist/mcp/tools/list-reminders.js +62 -0
  103. package/dist/mcp/tools/list-tasks.js +463 -0
  104. package/dist/mcp/tools/send-message.js +1382 -0
  105. package/dist/mcp/tools/update-task.js +1692 -0
  106. package/dist/runtime/index.js +6809 -0
  107. package/dist/tui/App.js +17479 -0
  108. package/package.json +104 -0
  109. package/src/commands/exe/assign.md +17 -0
  110. package/src/commands/exe/build-adv.md +381 -0
  111. package/src/commands/exe/call.md +133 -0
  112. package/src/commands/exe/cloud.md +17 -0
  113. package/src/commands/exe/employee-heartbeat.md +44 -0
  114. package/src/commands/exe/forget.md +15 -0
  115. package/src/commands/exe/heartbeat.md +92 -0
  116. package/src/commands/exe/intercom.md +81 -0
  117. package/src/commands/exe/kill.md +34 -0
  118. package/src/commands/exe/launch.md +52 -0
  119. package/src/commands/exe/link.md +17 -0
  120. package/src/commands/exe/logs.md +22 -0
  121. package/src/commands/exe/new-employee.md +12 -0
  122. package/src/commands/exe/review.md +14 -0
  123. package/src/commands/exe/schedule.md +108 -0
  124. package/src/commands/exe/search.md +13 -0
  125. package/src/commands/exe/sessions.md +25 -0
  126. package/src/commands/exe/settings.md +13 -0
  127. package/src/commands/exe/setup.md +171 -0
  128. package/src/commands/exe/status.md +15 -0
  129. package/src/commands/exe/team.md +11 -0
  130. package/src/commands/exe/update.md +11 -0
  131. package/src/commands/exe.md +181 -0
@@ -0,0 +1,95 @@
1
+ #!/usr/bin/env node
2
+
3
+ // src/bin/exe-repo-drift.ts
4
+ import { createHash } from "crypto";
5
+ import { readdirSync, readFileSync, existsSync } from "fs";
6
+ import path from "path";
7
+ import os from "os";
8
+ var EXE_OS_ROOT = process.cwd();
9
+ var OSS_ROOT = path.join(os.homedir(), "exe-ai-employees");
10
+ var IGNORE_LIST = [
11
+ // Add paths relative to src/ as differences are discovered
12
+ // Example: "lib/some-proprietary-module.ts"
13
+ ];
14
+ function sha256(filePath) {
15
+ return createHash("sha256").update(readFileSync(filePath)).digest("hex");
16
+ }
17
+ function walkDir(dir, base) {
18
+ const results = [];
19
+ if (!existsSync(dir)) return results;
20
+ for (const entry of readdirSync(dir, { withFileTypes: true })) {
21
+ const full = path.join(dir, entry.name);
22
+ if (entry.isDirectory()) {
23
+ results.push(...walkDir(full, base));
24
+ } else {
25
+ results.push(path.relative(base, full));
26
+ }
27
+ }
28
+ return results;
29
+ }
30
+ function main() {
31
+ const jsonMode = process.argv.includes("--json");
32
+ if (!existsSync(path.join(EXE_OS_ROOT, "src"))) {
33
+ console.error("Error: run from exe-os project root (src/ not found)");
34
+ process.exit(2);
35
+ }
36
+ if (!existsSync(OSS_ROOT)) {
37
+ console.error(`Error: OSS repo not found at ${OSS_ROOT}`);
38
+ process.exit(2);
39
+ }
40
+ const exeOsSrc = path.join(EXE_OS_ROOT, "src");
41
+ const ossSrc = path.join(OSS_ROOT, "src");
42
+ const exeOsFiles = new Set(walkDir(exeOsSrc, exeOsSrc));
43
+ const ossFiles = new Set(walkDir(ossSrc, ossSrc));
44
+ const shared = [...exeOsFiles].filter((f) => ossFiles.has(f)).sort();
45
+ if (shared.length === 0) {
46
+ console.log("No shared files found between repos.");
47
+ process.exit(0);
48
+ }
49
+ const results = [];
50
+ let driftCount = 0;
51
+ for (const file of shared) {
52
+ if (IGNORE_LIST.includes(file)) {
53
+ results.push({ file, status: "ignored" });
54
+ continue;
55
+ }
56
+ const exeOsHash = sha256(path.join(exeOsSrc, file));
57
+ const ossHash = sha256(path.join(ossSrc, file));
58
+ if (exeOsHash === ossHash) {
59
+ results.push({ file, status: "sync" });
60
+ } else {
61
+ results.push({ file, status: "drift" });
62
+ driftCount++;
63
+ }
64
+ }
65
+ if (jsonMode) {
66
+ console.log(JSON.stringify({ shared: shared.length, drift: driftCount, files: results }, null, 2));
67
+ process.exit(driftCount > 0 ? 1 : 0);
68
+ }
69
+ const maxLen = Math.max(...results.map((r) => r.file.length), 4);
70
+ const pad = (s, n) => s + " ".repeat(Math.max(0, n - s.length));
71
+ const STATUS_MAP = {
72
+ sync: "\u{1F7E2} sync",
73
+ drift: "\u{1F534} drift",
74
+ ignored: "\u26AA skip"
75
+ };
76
+ const colW = maxLen + 2;
77
+ const statusW = 10;
78
+ const hr = "\u2500".repeat(colW);
79
+ const hrS = "\u2500".repeat(statusW);
80
+ console.log(`
81
+ exe-os \u2194 exe-ai-employees \u2014 ${shared.length} shared files
82
+ `);
83
+ console.log(`\u250C\u2500${hr}\u2500\u252C\u2500${hrS}\u2500\u2510`);
84
+ console.log(`\u2502 ${pad("File", colW)} \u2502 ${pad("Status", statusW)} \u2502`);
85
+ console.log(`\u251C\u2500${hr}\u2500\u253C\u2500${hrS}\u2500\u2524`);
86
+ for (const r of results) {
87
+ console.log(`\u2502 ${pad(r.file, colW)} \u2502 ${pad(STATUS_MAP[r.status], statusW)} \u2502`);
88
+ }
89
+ console.log(`\u2514\u2500${hr}\u2500\u2534\u2500${hrS}\u2500\u2518`);
90
+ console.log(`
91
+ ${driftCount > 0 ? `\u{1F534} ${driftCount} file(s) out of sync` : "\u{1F7E2} All shared files in sync"}
92
+ `);
93
+ process.exit(driftCount > 0 ? 1 : 0);
94
+ }
95
+ main();