@askexenow/exe-os 0.9.55 → 0.9.57
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/cleanup-stale-review-tasks.js +26 -8
- package/dist/bin/cli.js +15 -2
- package/dist/bin/exe-boot.js +267 -190
- package/dist/bin/exe-dispatch.js +182 -105
- package/dist/bin/exe-export-behaviors.js +7 -0
- package/dist/bin/exe-gateway.js +177 -100
- package/dist/bin/exe-heartbeat.js +38 -20
- package/dist/bin/exe-launch-agent.js +7 -0
- package/dist/bin/exe-new-employee.js +1 -1
- package/dist/bin/exe-pending-messages.js +50 -32
- package/dist/bin/exe-pending-notifications.js +53 -35
- package/dist/bin/exe-pending-reviews.js +55 -37
- package/dist/bin/exe-session-cleanup.js +168 -91
- package/dist/bin/exe-start-codex.js +8 -1
- package/dist/bin/exe-start-opencode.js +8 -1
- package/dist/bin/exe-status.js +26 -8
- package/dist/bin/git-sweep.js +184 -107
- package/dist/bin/install.js +1 -1
- package/dist/bin/intercom-check.js +170 -93
- package/dist/bin/scan-tasks.js +190 -113
- package/dist/gateway/index.js +166 -89
- package/dist/hooks/bug-report-worker.js +158 -81
- package/dist/hooks/codex-stop-task-finalizer.js +57 -39
- package/dist/hooks/commit-complete.js +182 -105
- package/dist/hooks/post-compact.js +50 -32
- package/dist/hooks/pre-compact.js +185 -108
- package/dist/hooks/pre-tool-use.js +71 -53
- package/dist/hooks/prompt-submit.js +176 -92
- package/dist/hooks/session-end.js +193 -116
- package/dist/hooks/session-start.js +53 -35
- package/dist/hooks/stop.js +62 -44
- package/dist/hooks/subagent-stop.js +50 -32
- package/dist/hooks/summary-worker.js +109 -91
- package/dist/index.js +205 -121
- package/dist/lib/exe-daemon.js +381 -304
- package/dist/lib/messaging.js +32 -14
- package/dist/lib/tasks.js +180 -103
- package/dist/lib/tmux-routing.js +180 -103
- package/dist/mcp/server.js +356 -279
- package/dist/mcp/tools/create-task.js +194 -117
- package/dist/mcp/tools/list-tasks.js +45 -27
- package/dist/mcp/tools/send-message.js +36 -18
- package/dist/mcp/tools/update-task.js +189 -112
- package/dist/runtime/index.js +191 -107
- package/dist/tui/App.js +228 -151
- package/package.json +1 -1
|
@@ -4885,10 +4885,27 @@ var init_plan_limits = __esm({
|
|
|
4885
4885
|
}
|
|
4886
4886
|
});
|
|
4887
4887
|
|
|
4888
|
-
// src/lib/
|
|
4889
|
-
import { readFileSync as readFileSync9, writeFileSync as writeFileSync6, mkdirSync as mkdirSync5, existsSync as existsSync12, appendFileSync, readdirSync as readdirSync2 } from "fs";
|
|
4890
|
-
import path13 from "path";
|
|
4888
|
+
// src/lib/agent-symlinks.ts
|
|
4891
4889
|
import os9 from "os";
|
|
4890
|
+
import path13 from "path";
|
|
4891
|
+
import {
|
|
4892
|
+
existsSync as existsSync12,
|
|
4893
|
+
lstatSync,
|
|
4894
|
+
mkdirSync as mkdirSync5,
|
|
4895
|
+
readlinkSync as readlinkSync2,
|
|
4896
|
+
symlinkSync as symlinkSync2
|
|
4897
|
+
} from "fs";
|
|
4898
|
+
var init_agent_symlinks = __esm({
|
|
4899
|
+
"src/lib/agent-symlinks.ts"() {
|
|
4900
|
+
"use strict";
|
|
4901
|
+
init_employees();
|
|
4902
|
+
}
|
|
4903
|
+
});
|
|
4904
|
+
|
|
4905
|
+
// src/lib/tmux-routing.ts
|
|
4906
|
+
import { readFileSync as readFileSync9, writeFileSync as writeFileSync6, mkdirSync as mkdirSync6, existsSync as existsSync13, appendFileSync, readdirSync as readdirSync2 } from "fs";
|
|
4907
|
+
import path14 from "path";
|
|
4908
|
+
import os10 from "os";
|
|
4892
4909
|
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
4893
4910
|
function getMySession() {
|
|
4894
4911
|
return getTransport().getMySession();
|
|
@@ -4901,7 +4918,7 @@ function extractRootExe(name) {
|
|
|
4901
4918
|
}
|
|
4902
4919
|
function getParentExe(sessionKey) {
|
|
4903
4920
|
try {
|
|
4904
|
-
const data = JSON.parse(readFileSync9(
|
|
4921
|
+
const data = JSON.parse(readFileSync9(path14.join(SESSION_CACHE, `parent-exe-${sessionKey}.json`), "utf8"));
|
|
4905
4922
|
return data.parentExe || null;
|
|
4906
4923
|
} catch {
|
|
4907
4924
|
return null;
|
|
@@ -4944,10 +4961,11 @@ var init_tmux_routing = __esm({
|
|
|
4944
4961
|
init_intercom_queue();
|
|
4945
4962
|
init_plan_limits();
|
|
4946
4963
|
init_employees();
|
|
4947
|
-
|
|
4948
|
-
|
|
4949
|
-
|
|
4950
|
-
|
|
4964
|
+
init_agent_symlinks();
|
|
4965
|
+
SPAWN_LOCK_DIR = path14.join(os10.homedir(), ".exe-os", "spawn-locks");
|
|
4966
|
+
SESSION_CACHE = path14.join(os10.homedir(), ".exe-os", "session-cache");
|
|
4967
|
+
INTERCOM_LOG2 = path14.join(os10.homedir(), ".exe-os", "intercom.log");
|
|
4968
|
+
DEBOUNCE_FILE = path14.join(SESSION_CACHE, "intercom-debounce.json");
|
|
4951
4969
|
DEBOUNCE_CLEANUP_AGE_MS = 5 * 60 * 1e3;
|
|
4952
4970
|
}
|
|
4953
4971
|
});
|
package/dist/bin/cli.js
CHANGED
|
@@ -1758,7 +1758,7 @@ These rules are injected by exe-os and override default behavior for multi-agent
|
|
|
1758
1758
|
- **Session routing is deterministic.** When working in a coordinator session, ALL employee sessions use that same coordinator-session suffix. NEVER reference, consider, or dispatch to employee sessions from other project sessions. This is not a choice \u2014 it is a hard constraint.
|
|
1759
1759
|
- **Always use create_task to assign work.** Never use messages, tmux send-keys, or ad-hoc instructions as a substitute for tasks.
|
|
1760
1760
|
- **Never modify another agent's in-progress task.** Create a new task instead. Modifying active tasks causes race conditions.
|
|
1761
|
-
- **Chain of command:** founder -> COO -> managers -> specialists. The
|
|
1761
|
+
- **Chain of command:** founder -> coordinator/executive agent (internal routing slot may be "COO") -> managers -> specialists. The coordinator does not bypass managers for specialist work. Internal role labels are plumbing, not user-facing titles.
|
|
1762
1762
|
- **Verify dispatch.** After every create_task, confirm the employee received and started the task via tmux capture-pane.
|
|
1763
1763
|
${EXE_SECTION_END}`;
|
|
1764
1764
|
}
|
|
@@ -13361,7 +13361,19 @@ function spawnEmployee(employeeName, exeSession, projectDir, opts) {
|
|
|
13361
13361
|
_resetCcAgentSupportCache();
|
|
13362
13362
|
const hasAgentFlag = claudeSupportsAgentFlag();
|
|
13363
13363
|
if (hasAgentFlag) {
|
|
13364
|
-
|
|
13364
|
+
const symlink = ensureAgentSymlink(employeeName);
|
|
13365
|
+
if (symlink.action === "created" || symlink.action === "already_correct") {
|
|
13366
|
+
identityFlag = ` --agent ${employeeName}`;
|
|
13367
|
+
} else if (existsSync24(identityPath2)) {
|
|
13368
|
+
identityFlag = ` --append-system-prompt-file ${identityPath2}`;
|
|
13369
|
+
legacyFallbackWarned = true;
|
|
13370
|
+
process.stderr.write(
|
|
13371
|
+
`[tmux-routing] WARN: ~/.claude/agents/${employeeName}.md is not the exe-os identity symlink (${symlink.conflict}). Using authoritative ${identityPath2} via --append-system-prompt-file.
|
|
13372
|
+
`
|
|
13373
|
+
);
|
|
13374
|
+
} else {
|
|
13375
|
+
identityFlag = ` --agent ${employeeName}`;
|
|
13376
|
+
}
|
|
13365
13377
|
} else if (existsSync24(identityPath2)) {
|
|
13366
13378
|
identityFlag = ` --append-system-prompt-file ${identityPath2}`;
|
|
13367
13379
|
legacyFallbackWarned = true;
|
|
@@ -13550,6 +13562,7 @@ var init_tmux_routing = __esm({
|
|
|
13550
13562
|
init_intercom_queue();
|
|
13551
13563
|
init_plan_limits();
|
|
13552
13564
|
init_employees();
|
|
13565
|
+
init_agent_symlinks();
|
|
13553
13566
|
SPAWN_LOCK_DIR = path29.join(os15.homedir(), ".exe-os", "spawn-locks");
|
|
13554
13567
|
SESSION_CACHE = path29.join(os15.homedir(), ".exe-os", "session-cache");
|
|
13555
13568
|
BEHAVIORS_EXPORT_TIMEOUT_MS = 1e4;
|