@askexenow/exe-os 0.8.83 → 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.
- package/dist/bin/backfill-conversations.js +746 -595
- package/dist/bin/backfill-responses.js +745 -594
- package/dist/bin/backfill-vectors.js +312 -226
- package/dist/bin/cleanup-stale-review-tasks.js +154 -21
- package/dist/bin/cli.js +14678 -12676
- package/dist/bin/exe-agent-config.js +242 -0
- package/dist/bin/exe-agent.js +100 -91
- package/dist/bin/exe-assign.js +1003 -854
- package/dist/bin/exe-boot.js +1420 -485
- package/dist/bin/exe-call.js +10 -0
- package/dist/bin/exe-cloud.js +29 -6
- package/dist/bin/exe-dispatch.js +572 -271
- package/dist/bin/exe-doctor.js +403 -6
- package/dist/bin/exe-export-behaviors.js +175 -72
- package/dist/bin/exe-forget.js +102 -3
- package/dist/bin/exe-gateway.js +796 -292
- package/dist/bin/exe-healthcheck.js +134 -1
- package/dist/bin/exe-heartbeat.js +172 -36
- package/dist/bin/exe-kill.js +175 -72
- package/dist/bin/exe-launch-agent.js +189 -76
- package/dist/bin/exe-link.js +927 -82
- package/dist/bin/exe-new-employee.js +60 -8
- package/dist/bin/exe-pending-messages.js +151 -19
- package/dist/bin/exe-pending-notifications.js +97 -2
- package/dist/bin/exe-pending-reviews.js +155 -22
- package/dist/bin/exe-rename.js +564 -23
- package/dist/bin/exe-review.js +231 -73
- package/dist/bin/exe-search.js +995 -228
- package/dist/bin/exe-session-cleanup.js +4930 -1664
- package/dist/bin/exe-settings.js +20 -5
- package/dist/bin/exe-start-codex.js +2598 -0
- package/dist/bin/exe-start.sh +15 -3
- package/dist/bin/exe-status.js +154 -21
- package/dist/bin/exe-team.js +97 -2
- package/dist/bin/git-sweep.js +1180 -363
- package/dist/bin/graph-backfill.js +175 -72
- package/dist/bin/graph-export.js +175 -72
- package/dist/bin/install.js +60 -7
- package/dist/bin/list-providers.js +1 -0
- package/dist/bin/scan-tasks.js +1185 -367
- package/dist/bin/setup.js +914 -270
- package/dist/bin/shard-migrate.js +175 -72
- package/dist/bin/update.js +1 -0
- package/dist/bin/wiki-sync.js +175 -72
- package/dist/gateway/index.js +792 -285
- package/dist/hooks/bug-report-worker.js +445 -135
- package/dist/hooks/commit-complete.js +1178 -361
- package/dist/hooks/error-recall.js +994 -228
- package/dist/hooks/ingest-worker.js +1799 -1234
- package/dist/hooks/ingest.js +3 -0
- package/dist/hooks/instructions-loaded.js +707 -97
- package/dist/hooks/notification.js +699 -89
- package/dist/hooks/post-compact.js +757 -109
- package/dist/hooks/pre-compact.js +1061 -244
- package/dist/hooks/pre-tool-use.js +787 -130
- package/dist/hooks/prompt-ingest-worker.js +242 -101
- package/dist/hooks/prompt-submit.js +1121 -299
- package/dist/hooks/response-ingest-worker.js +242 -101
- package/dist/hooks/session-end.js +4063 -397
- package/dist/hooks/session-start.js +1071 -254
- package/dist/hooks/stop.js +768 -120
- package/dist/hooks/subagent-stop.js +757 -109
- package/dist/hooks/summary-worker.js +1706 -1011
- package/dist/index.js +1821 -1098
- package/dist/lib/agent-config.js +167 -0
- package/dist/lib/cloud-sync.js +932 -88
- package/dist/lib/consolidation.js +2 -1
- package/dist/lib/database.js +642 -87
- package/dist/lib/db-daemon-client.js +503 -0
- package/dist/lib/device-registry.js +547 -7
- package/dist/lib/embedder.js +14 -28
- package/dist/lib/employee-templates.js +84 -74
- package/dist/lib/employees.js +9 -0
- package/dist/lib/exe-daemon-client.js +16 -29
- package/dist/lib/exe-daemon.js +2733 -1575
- package/dist/lib/hybrid-search.js +995 -228
- package/dist/lib/identity.js +87 -67
- package/dist/lib/keychain.js +9 -1
- package/dist/lib/messaging.js +103 -40
- package/dist/lib/reminders.js +91 -74
- package/dist/lib/runtime-table.js +16 -0
- package/dist/lib/schedules.js +96 -2
- package/dist/lib/session-wrappers.js +22 -0
- package/dist/lib/skill-learning.js +103 -85
- package/dist/lib/store.js +234 -73
- package/dist/lib/tasks.js +348 -134
- package/dist/lib/tmux-routing.js +422 -208
- package/dist/lib/token-spend.js +273 -0
- package/dist/lib/ws-client.js +11 -0
- package/dist/mcp/server.js +5742 -696
- package/dist/mcp/tools/complete-reminder.js +94 -77
- package/dist/mcp/tools/create-reminder.js +94 -77
- package/dist/mcp/tools/create-task.js +375 -152
- package/dist/mcp/tools/deactivate-behavior.js +95 -77
- package/dist/mcp/tools/list-reminders.js +94 -77
- package/dist/mcp/tools/list-tasks.js +99 -31
- package/dist/mcp/tools/send-message.js +108 -45
- package/dist/mcp/tools/update-task.js +162 -77
- package/dist/runtime/index.js +1075 -258
- package/dist/tui/App.js +1333 -506
- package/package.json +6 -1
- package/src/commands/exe/agent-config.md +27 -0
- package/src/commands/exe/cc-doctor.md +10 -0
package/dist/bin/install.js
CHANGED
|
@@ -107,6 +107,7 @@ __export(employees_exports, {
|
|
|
107
107
|
DEFAULT_COORDINATOR_TEMPLATE_NAME: () => DEFAULT_COORDINATOR_TEMPLATE_NAME,
|
|
108
108
|
EMPLOYEES_PATH: () => EMPLOYEES_PATH,
|
|
109
109
|
addEmployee: () => addEmployee,
|
|
110
|
+
baseAgentName: () => baseAgentName,
|
|
110
111
|
canCoordinate: () => canCoordinate,
|
|
111
112
|
getCoordinatorEmployee: () => getCoordinatorEmployee,
|
|
112
113
|
getCoordinatorName: () => getCoordinatorName,
|
|
@@ -203,6 +204,14 @@ function hasRole(agentName, role) {
|
|
|
203
204
|
const emp = getEmployee(employees, agentName);
|
|
204
205
|
return emp ? emp.role.toLowerCase() === role.toLowerCase() : false;
|
|
205
206
|
}
|
|
207
|
+
function baseAgentName(name, employees) {
|
|
208
|
+
const match = name.match(/^([a-zA-Z]+)\d+$/);
|
|
209
|
+
if (!match) return name;
|
|
210
|
+
const base = match[1];
|
|
211
|
+
const roster = employees ?? loadEmployeesSync();
|
|
212
|
+
if (getEmployee(roster, base)) return base;
|
|
213
|
+
return name;
|
|
214
|
+
}
|
|
206
215
|
function isMultiInstance(agentName, employees) {
|
|
207
216
|
const roster = employees ?? loadEmployeesSync();
|
|
208
217
|
const emp = getEmployee(roster, agentName);
|
|
@@ -476,19 +485,41 @@ async function registerMcpServer(packageRoot, homeDir = os4.homedir()) {
|
|
|
476
485
|
args: [path4.join(packageRoot, "dist", "mcp", "server.js")],
|
|
477
486
|
env: {}
|
|
478
487
|
};
|
|
479
|
-
const
|
|
480
|
-
const
|
|
481
|
-
const
|
|
482
|
-
|
|
488
|
+
const currentMem = claudeJson.mcpServers[MCP_LEGACY_KEY];
|
|
489
|
+
const currentOs = claudeJson.mcpServers[MCP_PRIMARY_KEY];
|
|
490
|
+
const memMatches = currentMem && JSON.stringify(currentMem) === JSON.stringify(newEntry);
|
|
491
|
+
const osMatches = currentOs && JSON.stringify(currentOs) === JSON.stringify(newEntry);
|
|
492
|
+
if (memMatches && osMatches) {
|
|
493
|
+
await cleanSettingsJsonMcp(path4.join(homeDir, ".claude", "settings.json"));
|
|
483
494
|
return false;
|
|
484
495
|
}
|
|
496
|
+
claudeJson.mcpServers[MCP_LEGACY_KEY] = newEntry;
|
|
485
497
|
claudeJson.mcpServers[MCP_PRIMARY_KEY] = newEntry;
|
|
486
|
-
if (legacy) {
|
|
487
|
-
delete claudeJson.mcpServers[MCP_LEGACY_KEY];
|
|
488
|
-
}
|
|
489
498
|
await writeFile3(claudeJsonPath, JSON.stringify(claudeJson, null, 2) + "\n");
|
|
499
|
+
await cleanSettingsJsonMcp(path4.join(homeDir, ".claude", "settings.json"));
|
|
490
500
|
return true;
|
|
491
501
|
}
|
|
502
|
+
async function cleanSettingsJsonMcp(settingsPath) {
|
|
503
|
+
if (!existsSync4(settingsPath)) return;
|
|
504
|
+
try {
|
|
505
|
+
const settings = JSON.parse(await readFile3(settingsPath, "utf-8"));
|
|
506
|
+
const servers = settings.mcpServers;
|
|
507
|
+
if (!servers) return;
|
|
508
|
+
let changed = false;
|
|
509
|
+
if (servers[MCP_PRIMARY_KEY]) {
|
|
510
|
+
delete servers[MCP_PRIMARY_KEY];
|
|
511
|
+
changed = true;
|
|
512
|
+
}
|
|
513
|
+
if (servers[MCP_LEGACY_KEY]) {
|
|
514
|
+
delete servers[MCP_LEGACY_KEY];
|
|
515
|
+
changed = true;
|
|
516
|
+
}
|
|
517
|
+
if (changed) {
|
|
518
|
+
await writeFile3(settingsPath, JSON.stringify(settings, null, 2) + "\n");
|
|
519
|
+
}
|
|
520
|
+
} catch {
|
|
521
|
+
}
|
|
522
|
+
}
|
|
492
523
|
async function mergeHooks(packageRoot, homeDir = os4.homedir()) {
|
|
493
524
|
const settingsPath = path4.join(homeDir, ".claude", "settings.json");
|
|
494
525
|
let settings = {};
|
|
@@ -967,6 +998,28 @@ exec "${exeStartDst}" "$0" "$@"
|
|
|
967
998
|
created++;
|
|
968
999
|
}
|
|
969
1000
|
}
|
|
1001
|
+
const codexLauncherCandidates = [
|
|
1002
|
+
path5.join(packageRoot, "dist", "bin", "exe-start-codex.js"),
|
|
1003
|
+
path5.join(packageRoot, "src", "bin", "exe-start-codex.ts")
|
|
1004
|
+
];
|
|
1005
|
+
let codexLauncher = null;
|
|
1006
|
+
for (const c of codexLauncherCandidates) {
|
|
1007
|
+
if (existsSync5(c)) {
|
|
1008
|
+
codexLauncher = c;
|
|
1009
|
+
break;
|
|
1010
|
+
}
|
|
1011
|
+
}
|
|
1012
|
+
if (codexLauncher) {
|
|
1013
|
+
for (const emp of employees) {
|
|
1014
|
+
const wrapperPath = path5.join(binDir, `${emp.name}-codex`);
|
|
1015
|
+
const content = `#!/bin/bash
|
|
1016
|
+
exec node "${codexLauncher}" --agent ${emp.name} "$@"
|
|
1017
|
+
`;
|
|
1018
|
+
writeFileSync3(wrapperPath, content);
|
|
1019
|
+
chmodSync(wrapperPath, 493);
|
|
1020
|
+
created++;
|
|
1021
|
+
}
|
|
1022
|
+
}
|
|
970
1023
|
const pathConfigured = ensurePath(home, binDir);
|
|
971
1024
|
return { created, pathConfigured };
|
|
972
1025
|
}
|
|
@@ -10,6 +10,7 @@ import { realpathSync } from "fs";
|
|
|
10
10
|
import { fileURLToPath } from "url";
|
|
11
11
|
function isMainModule(importMetaUrl) {
|
|
12
12
|
if (process.argv[1] == null) return false;
|
|
13
|
+
if (process.argv[1].includes("mcp/server")) return false;
|
|
13
14
|
try {
|
|
14
15
|
const scriptPath = realpathSync(process.argv[1]);
|
|
15
16
|
const modulePath = realpathSync(fileURLToPath(importMetaUrl));
|