@askexenow/exe-os 0.9.206 → 0.9.207
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/exe-forget.js +1 -1
- package/dist/bin/exe-search.js +1 -1
- package/dist/{catchup-brief-RSE5BJZN.js → catchup-brief-AYLBTVRM.js} +1 -1
- package/dist/{chunk-PYTUXXP4.js → chunk-QOAPYITU.js} +32 -24
- package/dist/{chunk-XSEXQDU5.js → chunk-T4BKQ3CX.js} +3 -3
- package/dist/{chunk-745HXTTK.js → chunk-T4TMVXF5.js} +3 -3
- package/dist/{daemon-orchestration-ZCJ3XPBE.js → daemon-orchestration-TC3JWVDC.js} +1 -1
- package/dist/hooks/error-recall.js +1 -1
- package/dist/hooks/manifest.json +4 -4
- package/dist/hooks/prompt-submit.js +1 -1
- package/dist/hooks/session-start.js +1 -1
- package/dist/lib/exe-daemon.js +51 -46
- package/dist/lib/hybrid-search.js +1 -1
- package/dist/mcp/register-tools.js +4 -4
- package/dist/mcp/server.js +4 -4
- package/dist/{reranker-S5MJWW7Q.js → reranker-TRLLNJHH.js} +1 -1
- package/package.json +1 -1
- package/release-notes.json +57 -57
- /package/dist/{chunk-E7HAATCK.js → chunk-P5J37OSU.js} +0 -0
package/dist/bin/exe-forget.js
CHANGED
package/dist/bin/exe-search.js
CHANGED
|
@@ -1625,6 +1625,9 @@ async function createWorktreeReaperRealDeps() {
|
|
|
1625
1625
|
const { getGitRoot, isWorktreeDirty: isDirty } = await import("./worktree-QTCOX6RV.js");
|
|
1626
1626
|
const { statSync: statSync2 } = await import("fs");
|
|
1627
1627
|
const { basename } = await import("path");
|
|
1628
|
+
const { promisify } = await import("util");
|
|
1629
|
+
const { execFile: execFileCb } = await import("child_process");
|
|
1630
|
+
const execFileAsync = promisify(execFileCb);
|
|
1628
1631
|
const sessions = listTmuxSessions();
|
|
1629
1632
|
const cwdMap = /* @__PURE__ */ new Map();
|
|
1630
1633
|
const cwdPromises = sessions.map(async (s) => {
|
|
@@ -1635,33 +1638,38 @@ async function createWorktreeReaperRealDeps() {
|
|
|
1635
1638
|
}
|
|
1636
1639
|
});
|
|
1637
1640
|
await Promise.all(cwdPromises);
|
|
1641
|
+
const repoRoots = /* @__PURE__ */ new Set();
|
|
1642
|
+
for (const cwd of cwdMap.values()) {
|
|
1643
|
+
const root = getGitRoot(cwd);
|
|
1644
|
+
if (root) repoRoots.add(root);
|
|
1645
|
+
}
|
|
1646
|
+
const worktreeCache = /* @__PURE__ */ new Map();
|
|
1647
|
+
const wtPromises = [...repoRoots].map(async (repoRoot) => {
|
|
1648
|
+
try {
|
|
1649
|
+
const { stdout } = await execFileAsync("git", ["worktree", "list", "--porcelain"], {
|
|
1650
|
+
cwd: repoRoot,
|
|
1651
|
+
timeout: 1e4
|
|
1652
|
+
});
|
|
1653
|
+
const worktrees = [];
|
|
1654
|
+
let currentPath = "";
|
|
1655
|
+
for (const line of stdout.split("\n")) {
|
|
1656
|
+
if (line.startsWith("worktree ")) {
|
|
1657
|
+
currentPath = line.slice("worktree ".length);
|
|
1658
|
+
} else if (line.startsWith("branch ") && currentPath) {
|
|
1659
|
+
const branch = line.slice("branch refs/heads/".length);
|
|
1660
|
+
worktrees.push({ path: currentPath, branch });
|
|
1661
|
+
currentPath = "";
|
|
1662
|
+
}
|
|
1663
|
+
}
|
|
1664
|
+
worktreeCache.set(repoRoot, worktrees);
|
|
1665
|
+
} catch {
|
|
1666
|
+
}
|
|
1667
|
+
});
|
|
1668
|
+
await Promise.all(wtPromises);
|
|
1638
1669
|
return {
|
|
1639
1670
|
listTmuxSessions: () => sessions,
|
|
1640
1671
|
getPaneCwd: (s) => cwdMap.get(s),
|
|
1641
|
-
listWorktrees: (repoRoot) =>
|
|
1642
|
-
try {
|
|
1643
|
-
const out = execSync("git worktree list --porcelain", {
|
|
1644
|
-
cwd: repoRoot,
|
|
1645
|
-
encoding: "utf-8",
|
|
1646
|
-
timeout: 1e4,
|
|
1647
|
-
stdio: ["pipe", "pipe", "pipe"]
|
|
1648
|
-
});
|
|
1649
|
-
const worktrees = [];
|
|
1650
|
-
let currentPath = "";
|
|
1651
|
-
for (const line of out.split("\n")) {
|
|
1652
|
-
if (line.startsWith("worktree ")) {
|
|
1653
|
-
currentPath = line.slice("worktree ".length);
|
|
1654
|
-
} else if (line.startsWith("branch ") && currentPath) {
|
|
1655
|
-
const branch = line.slice("branch refs/heads/".length);
|
|
1656
|
-
worktrees.push({ path: currentPath, branch });
|
|
1657
|
-
currentPath = "";
|
|
1658
|
-
}
|
|
1659
|
-
}
|
|
1660
|
-
return worktrees;
|
|
1661
|
-
} catch {
|
|
1662
|
-
return [];
|
|
1663
|
-
}
|
|
1664
|
-
},
|
|
1672
|
+
listWorktrees: (repoRoot) => worktreeCache.get(repoRoot) ?? [],
|
|
1665
1673
|
isWorktreeDirty: (wtPath) => isDirty(wtPath),
|
|
1666
1674
|
getDirMtimeMs: (dirPath) => {
|
|
1667
1675
|
try {
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
isRerankerAvailable,
|
|
6
6
|
rerankWithScores
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-P5J37OSU.js";
|
|
8
8
|
import {
|
|
9
9
|
getEntityByName,
|
|
10
10
|
getEntityNeighbors,
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
} from "./chunk-SEAFDIKF.js";
|
|
23
23
|
import {
|
|
24
24
|
AUTO_WAKE_MAX_RETRIES
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-QOAPYITU.js";
|
|
26
26
|
import {
|
|
27
27
|
getCachedLicenseGate
|
|
28
28
|
} from "./chunk-GCMXBQ7Y.js";
|
|
@@ -187,7 +187,7 @@ import {
|
|
|
187
187
|
import {
|
|
188
188
|
hybridSearch,
|
|
189
189
|
recentRecords
|
|
190
|
-
} from "./chunk-
|
|
190
|
+
} from "./chunk-T4TMVXF5.js";
|
|
191
191
|
import {
|
|
192
192
|
attachDocumentMetadata,
|
|
193
193
|
flushBatch,
|
|
@@ -233,7 +233,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
233
233
|
let rerankerAvailable = false;
|
|
234
234
|
if (process.env.EXE_IS_DAEMON === "1") {
|
|
235
235
|
try {
|
|
236
|
-
const { isRerankerAvailable } = await import("./reranker-
|
|
236
|
+
const { isRerankerAvailable } = await import("./reranker-TRLLNJHH.js");
|
|
237
237
|
rerankerAvailable = isRerankerAvailable();
|
|
238
238
|
} catch {
|
|
239
239
|
}
|
|
@@ -397,7 +397,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
397
397
|
try {
|
|
398
398
|
let rerankedRecords;
|
|
399
399
|
if (graphContextMap.size > 0) {
|
|
400
|
-
const { rerankWithContext } = await import("./reranker-
|
|
400
|
+
const { rerankWithContext } = await import("./reranker-TRLLNJHH.js");
|
|
401
401
|
const candidates = merged.map((m) => ({
|
|
402
402
|
text: m.raw_text,
|
|
403
403
|
context: graphContextMap.get(m.id)
|
|
@@ -405,7 +405,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
405
405
|
const scored = await rerankWithContext(effectiveQuery, candidates, rerankReturnLimit);
|
|
406
406
|
rerankedRecords = scored.map((s) => merged[s.index]);
|
|
407
407
|
} else {
|
|
408
|
-
const { rerank } = await import("./reranker-
|
|
408
|
+
const { rerank } = await import("./reranker-TRLLNJHH.js");
|
|
409
409
|
rerankedRecords = await rerank(effectiveQuery, merged, rerankReturnLimit);
|
|
410
410
|
}
|
|
411
411
|
if (rerankedRecords.length > 0) {
|
package/dist/hooks/manifest.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"generatedAt": "2026-06-03T13:
|
|
3
|
+
"generatedAt": "2026-06-03T13:59:08.725Z",
|
|
4
4
|
"hashes": {
|
|
5
5
|
"bug-report-worker.js": "9d3b56d139065f399142c958f34379d02a85a0a6a1105863adf2e2ccb89108db",
|
|
6
6
|
"codex-stop-task-finalizer.js": "7571bbe9ab0ca34128bfb812ef804febe7fc20f6d97dba58977ab8ff518c0312",
|
|
7
7
|
"commit-complete.js": "bc9567621fcda704ad9c026e78af3d14e2a86288ff0599f0633be63427c6feb1",
|
|
8
|
-
"error-recall.js": "
|
|
8
|
+
"error-recall.js": "05a7e7b6de3520f4ebba0490f6f35d8cd0a3e23d7fd18b6cab8c160d42b649f1",
|
|
9
9
|
"exe-heartbeat-hook.js": "10688da0e9c9972fff33c3bb33923df4e743df9d48e744b96d227836c6270c4c",
|
|
10
10
|
"ingest-worker.js": "df9693b3a590f313868019ab91dd2f7298750492f792c2b8055c4ad68a1c9d67",
|
|
11
11
|
"ingest.js": "766bf7211ab1305cf8acd3aa5da741e2a193f1038d663b53d50c128110679188",
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
"post-tool-combined.js": "7dc4491cd976f39349ad448cc72a9cc53a63f18532fee3f15d9309ce72b09ed0",
|
|
16
16
|
"pre-compact.js": "c35ff8d4774b1b6f4ba0178b03a0359e8ef38c1283f1ff672d7d37c1264a7fa8",
|
|
17
17
|
"pre-tool-use.js": "f610e4cf30dfe5014861e26c121d9157f1b8aa473975d01621c291eae1735267",
|
|
18
|
-
"prompt-submit.js": "
|
|
18
|
+
"prompt-submit.js": "45e49ef9fe9abe2f4dc5c53ccd4b19b3fbfd343673ebf572c8a0d9c99329fda4",
|
|
19
19
|
"session-end.js": "2abfca49918f1bc22cabc277fc11b8de1388b0b676cb58f2227ab2cf17955238",
|
|
20
|
-
"session-start.js": "
|
|
20
|
+
"session-start.js": "e878a9136cfedb9d8e876c605b8c865ab92ef9c1141e85c32b03f714ff79daa4",
|
|
21
21
|
"stop.js": "3982d90bbafc8ae0dbaa2901254884525491d1119d65a0e0eb55359089b7a9ae",
|
|
22
22
|
"subagent-stop.js": "68f023c30969a4e87fa0014664c26a2e68b56d568fd3a14d1d71b7c39d620042",
|
|
23
23
|
"summary-worker.js": "832c0a7316dc2a47f92f48925817d86e1f4d8195792ae9d3e87ce2a91228fb82"
|
|
@@ -158,7 +158,7 @@ You are **${ag.agentId}** (${ag.agentRole}). Daemon is degraded \u2014 memory un
|
|
|
158
158
|
query = `last actions on ${projectName}`;
|
|
159
159
|
header = "## Resuming Session\nHere's where you left off:";
|
|
160
160
|
try {
|
|
161
|
-
const { buildCatchupBrief } = await import("../catchup-brief-
|
|
161
|
+
const { buildCatchupBrief } = await import("../catchup-brief-AYLBTVRM.js");
|
|
162
162
|
const brief = await buildCatchupBrief(
|
|
163
163
|
agentId,
|
|
164
164
|
projectName,
|
package/dist/lib/exe-daemon.js
CHANGED
|
@@ -2249,7 +2249,7 @@ async function startReviewPolling() {
|
|
|
2249
2249
|
lastNudgeSent: /* @__PURE__ */ new Map(),
|
|
2250
2250
|
intervalMs: REVIEW_POLL_INTERVAL_MS
|
|
2251
2251
|
};
|
|
2252
|
-
const { pollReviewNudge, createReviewNudgeRealDeps, loadNudgeState } = await import("../daemon-orchestration-
|
|
2252
|
+
const { pollReviewNudge, createReviewNudgeRealDeps, loadNudgeState } = await import("../daemon-orchestration-TC3JWVDC.js");
|
|
2253
2253
|
const nudgeState = loadNudgeState();
|
|
2254
2254
|
const tick = async () => {
|
|
2255
2255
|
fired("review_polling");
|
|
@@ -2291,7 +2291,7 @@ function startSessionTTL() {
|
|
|
2291
2291
|
if (!await ensureStoreForPolling()) return;
|
|
2292
2292
|
try {
|
|
2293
2293
|
const { getClient } = await import("./database.js");
|
|
2294
|
-
const { checkSessionTTL, createSessionTTLRealDeps } = await import("../daemon-orchestration-
|
|
2294
|
+
const { checkSessionTTL, createSessionTTLRealDeps } = await import("../daemon-orchestration-TC3JWVDC.js");
|
|
2295
2295
|
const deps = createSessionTTLRealDeps(getClient);
|
|
2296
2296
|
const killed = await checkSessionTTL(deps);
|
|
2297
2297
|
if (killed.length > 0) acted("session_ttl");
|
|
@@ -2340,7 +2340,7 @@ function startIdleKill() {
|
|
|
2340
2340
|
const cfg = await getCachedConfig();
|
|
2341
2341
|
if (!cfg) return;
|
|
2342
2342
|
const { getClient } = await import("./database.js");
|
|
2343
|
-
const { pollIdleKill, createIdleKillRealDeps } = await import("../daemon-orchestration-
|
|
2343
|
+
const { pollIdleKill, createIdleKillRealDeps } = await import("../daemon-orchestration-TC3JWVDC.js");
|
|
2344
2344
|
const deps = createIdleKillRealDeps(
|
|
2345
2345
|
getClient,
|
|
2346
2346
|
cfg.sessionLifecycle.idleKillIntercomAckWindowMs
|
|
@@ -2897,7 +2897,7 @@ function startOrphanReaper() {
|
|
|
2897
2897
|
const tick = async () => {
|
|
2898
2898
|
fired("orphan_reaper");
|
|
2899
2899
|
try {
|
|
2900
|
-
const { reapOrphanedMcpProcesses, createOrphanReaperRealDeps } = await import("../daemon-orchestration-
|
|
2900
|
+
const { reapOrphanedMcpProcesses, createOrphanReaperRealDeps } = await import("../daemon-orchestration-TC3JWVDC.js");
|
|
2901
2901
|
const deps = createOrphanReaperRealDeps();
|
|
2902
2902
|
const reaped = await reapOrphanedMcpProcesses(deps);
|
|
2903
2903
|
if (reaped.length > 0) acted("orphan_reaper");
|
|
@@ -2921,7 +2921,7 @@ function startZombieAgentReaper() {
|
|
|
2921
2921
|
const tick = async () => {
|
|
2922
2922
|
fired("zombie_agent_reaper");
|
|
2923
2923
|
try {
|
|
2924
|
-
const { reapZombieAgentProcesses, createZombieAgentReaperRealDeps } = await import("../daemon-orchestration-
|
|
2924
|
+
const { reapZombieAgentProcesses, createZombieAgentReaperRealDeps } = await import("../daemon-orchestration-TC3JWVDC.js");
|
|
2925
2925
|
const deps = createZombieAgentReaperRealDeps();
|
|
2926
2926
|
const reaped = reapZombieAgentProcesses(deps);
|
|
2927
2927
|
if (reaped.length > 0) acted("zombie_agent_reaper");
|
|
@@ -2944,7 +2944,7 @@ function startWorktreeReaper() {
|
|
|
2944
2944
|
const tick = async () => {
|
|
2945
2945
|
fired("worktree_reaper");
|
|
2946
2946
|
try {
|
|
2947
|
-
const { reapOrphanedWorktrees, createWorktreeReaperRealDeps } = await import("../daemon-orchestration-
|
|
2947
|
+
const { reapOrphanedWorktrees, createWorktreeReaperRealDeps } = await import("../daemon-orchestration-TC3JWVDC.js");
|
|
2948
2948
|
const deps = await createWorktreeReaperRealDeps();
|
|
2949
2949
|
const result = await reapOrphanedWorktrees(deps);
|
|
2950
2950
|
if (result.pruned.length > 0) {
|
|
@@ -2999,7 +2999,7 @@ function startStuckTaskRelease() {
|
|
|
2999
2999
|
if (!await ensureStoreForPolling()) return;
|
|
3000
3000
|
try {
|
|
3001
3001
|
const { getClient } = await import("./database.js");
|
|
3002
|
-
const { releaseStuckTasks, createStuckTaskRealDeps } = await import("../daemon-orchestration-
|
|
3002
|
+
const { releaseStuckTasks, createStuckTaskRealDeps } = await import("../daemon-orchestration-TC3JWVDC.js");
|
|
3003
3003
|
const deps = createStuckTaskRealDeps(getClient);
|
|
3004
3004
|
const released = await releaseStuckTasks(deps);
|
|
3005
3005
|
if (released.length > 0) {
|
|
@@ -3637,60 +3637,65 @@ try {
|
|
|
3637
3637
|
setTimeout(async () => {
|
|
3638
3638
|
try {
|
|
3639
3639
|
if (!await ensureStoreForPolling()) return;
|
|
3640
|
-
const {
|
|
3640
|
+
const { readdir, readFile } = await import("fs/promises");
|
|
3641
3641
|
const { getClient } = await import("./database.js");
|
|
3642
3642
|
const client = getClient();
|
|
3643
3643
|
const tasksRoot = path3.join(os2.homedir(), ".exe-os", "tasks");
|
|
3644
3644
|
let synced = 0;
|
|
3645
|
-
const
|
|
3645
|
+
const walkAsync = async (dir) => {
|
|
3646
|
+
let entries;
|
|
3646
3647
|
try {
|
|
3647
|
-
|
|
3648
|
-
|
|
3649
|
-
|
|
3650
|
-
|
|
3648
|
+
entries = await readdir(dir, { withFileTypes: true });
|
|
3649
|
+
} catch {
|
|
3650
|
+
return;
|
|
3651
|
+
}
|
|
3652
|
+
for (const e of entries) {
|
|
3653
|
+
const full = path3.join(dir, e.name);
|
|
3654
|
+
if (e.isDirectory()) {
|
|
3655
|
+
await walkAsync(full);
|
|
3656
|
+
continue;
|
|
3657
|
+
}
|
|
3658
|
+
if (!e.name.endsWith(".md")) continue;
|
|
3659
|
+
try {
|
|
3660
|
+
const content = await readFile(full, "utf8");
|
|
3661
|
+
const id = content.match(/\*\*ID:\*\*\s*([a-f0-9-]+)/)?.[1];
|
|
3662
|
+
const title = content.split("\n")[0]?.replace(/^# /, "") || "";
|
|
3663
|
+
const assignedTo = content.match(/\*\*Assigned to:\*\*\s*(\w+)/)?.[1];
|
|
3664
|
+
const assignedBy = content.match(/\*\*Assigned by:\*\*\s*(\w+)/)?.[1] || "exe";
|
|
3665
|
+
const project = content.match(/\*\*Project:\*\*\s*([\w-]+)/)?.[1] || "exe-os";
|
|
3666
|
+
const status = content.match(/\*\*Status:\*\*\s*(\w+)/)?.[1] || "open";
|
|
3667
|
+
const priority = content.match(/\*\*Priority:\*\*\s*(\w+)/)?.[1] || "p1";
|
|
3668
|
+
const scope = full.match(/tasks\/([^/]+)\//)?.[1] || null;
|
|
3669
|
+
if (id && assignedTo) {
|
|
3651
3670
|
try {
|
|
3652
|
-
const
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
void import("../orchestration-events-MSJVUR4T.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
|
|
3670
|
-
recordOE({
|
|
3671
|
-
eventType: "task_file.resynced",
|
|
3672
|
-
source: "exe-daemon.taskFileResync",
|
|
3673
|
-
taskId: id,
|
|
3674
|
-
agentId: assignedTo,
|
|
3675
|
-
sessionScope: scope,
|
|
3676
|
-
projectName: project,
|
|
3677
|
-
payload: { status, priority }
|
|
3678
|
-
});
|
|
3679
|
-
}).catch(() => {
|
|
3680
|
-
});
|
|
3681
|
-
}
|
|
3671
|
+
const res = await client.execute({
|
|
3672
|
+
sql: `INSERT OR IGNORE INTO tasks (id, title, assigned_to, assigned_by, project_name, status, priority, task_file, session_scope, created_at, updated_at)
|
|
3673
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
3674
|
+
args: [id, title, assignedTo, assignedBy, project, status, priority, full, scope, (/* @__PURE__ */ new Date()).toISOString(), (/* @__PURE__ */ new Date()).toISOString()]
|
|
3675
|
+
});
|
|
3676
|
+
if (Number(res.rowsAffected ?? 0) > 0) {
|
|
3677
|
+
synced++;
|
|
3678
|
+
void import("../orchestration-events-MSJVUR4T.js").then(({ recordOrchestrationEventBestEffort: recordOE }) => {
|
|
3679
|
+
recordOE({
|
|
3680
|
+
eventType: "task_file.resynced",
|
|
3681
|
+
source: "exe-daemon.taskFileResync",
|
|
3682
|
+
taskId: id,
|
|
3683
|
+
agentId: assignedTo,
|
|
3684
|
+
sessionScope: scope,
|
|
3685
|
+
projectName: project,
|
|
3686
|
+
payload: { status, priority }
|
|
3687
|
+
});
|
|
3682
3688
|
}).catch(() => {
|
|
3683
3689
|
});
|
|
3684
3690
|
}
|
|
3685
3691
|
} catch {
|
|
3686
3692
|
}
|
|
3687
3693
|
}
|
|
3694
|
+
} catch {
|
|
3688
3695
|
}
|
|
3689
|
-
} catch {
|
|
3690
3696
|
}
|
|
3691
3697
|
};
|
|
3692
|
-
|
|
3693
|
-
await new Promise((r) => setTimeout(r, 2e3));
|
|
3698
|
+
await walkAsync(tasksRoot);
|
|
3694
3699
|
if (synced > 0) process.stderr.write(`[exed] Task re-sync: ${synced} missing DB rows restored from disk.
|
|
3695
3700
|
`);
|
|
3696
3701
|
} catch (e) {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
registerAllTools
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-T4BKQ3CX.js";
|
|
4
4
|
import "../chunk-EAHUS6WU.js";
|
|
5
|
-
import "../chunk-
|
|
5
|
+
import "../chunk-P5J37OSU.js";
|
|
6
6
|
import "../chunk-KH5Y6RR4.js";
|
|
7
7
|
import "../chunk-557C2IGL.js";
|
|
8
8
|
import "../chunk-E6ORBQHP.js";
|
|
9
9
|
import "../chunk-SEAFDIKF.js";
|
|
10
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-QOAPYITU.js";
|
|
11
11
|
import "../chunk-GCMXBQ7Y.js";
|
|
12
12
|
import "../chunk-IENYOYZ6.js";
|
|
13
13
|
import "../chunk-GQYIMXUW.js";
|
|
@@ -56,7 +56,7 @@ import "../chunk-MTR5SMNA.js";
|
|
|
56
56
|
import "../chunk-FLCWUX6G.js";
|
|
57
57
|
import "../chunk-EF4PA3TY.js";
|
|
58
58
|
import "../chunk-LMSRF47U.js";
|
|
59
|
-
import "../chunk-
|
|
59
|
+
import "../chunk-T4TMVXF5.js";
|
|
60
60
|
import "../chunk-KJVFW5C7.js";
|
|
61
61
|
import "../chunk-CHCA3ZM2.js";
|
|
62
62
|
import "../chunk-XJQASQPO.js";
|
package/dist/mcp/server.js
CHANGED
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
} from "../chunk-V4TZI6EO.js";
|
|
4
4
|
import {
|
|
5
5
|
registerAllTools
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-T4BKQ3CX.js";
|
|
7
7
|
import "../chunk-EAHUS6WU.js";
|
|
8
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-P5J37OSU.js";
|
|
9
9
|
import "../chunk-KH5Y6RR4.js";
|
|
10
10
|
import "../chunk-557C2IGL.js";
|
|
11
11
|
import "../chunk-E6ORBQHP.js";
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
startToolTelemetryFlush,
|
|
14
14
|
wrapServerWithTelemetry
|
|
15
15
|
} from "../chunk-SEAFDIKF.js";
|
|
16
|
-
import "../chunk-
|
|
16
|
+
import "../chunk-QOAPYITU.js";
|
|
17
17
|
import {
|
|
18
18
|
initLicenseGate
|
|
19
19
|
} from "../chunk-GCMXBQ7Y.js";
|
|
@@ -66,7 +66,7 @@ import "../chunk-MTR5SMNA.js";
|
|
|
66
66
|
import "../chunk-FLCWUX6G.js";
|
|
67
67
|
import "../chunk-EF4PA3TY.js";
|
|
68
68
|
import "../chunk-LMSRF47U.js";
|
|
69
|
-
import "../chunk-
|
|
69
|
+
import "../chunk-T4TMVXF5.js";
|
|
70
70
|
import {
|
|
71
71
|
disposeStore,
|
|
72
72
|
initStore
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askexenow/exe-os",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.207",
|
|
4
4
|
"description": "AI employee operating system — persistent memory, task management, and multi-agent coordination for Claude Code.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"type": "module",
|
package/release-notes.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"current": "0.9.
|
|
2
|
+
"current": "0.9.207",
|
|
3
3
|
"notes": {
|
|
4
|
-
"0.9.
|
|
5
|
-
"version": "0.9.
|
|
4
|
+
"0.9.207": {
|
|
5
|
+
"version": "0.9.207",
|
|
6
6
|
"date": "2026-06-03",
|
|
7
7
|
"features": [
|
|
8
8
|
"5-minute telemetry batching + per-tool-call usage in payload",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"BEAM multi-tier support — 100K, 1M, 10M token scales"
|
|
33
33
|
],
|
|
34
34
|
"fixes": [
|
|
35
|
+
"async-ify task re-sync walk + git worktree list in daemon",
|
|
35
36
|
"async worktree reaper — eliminates 30-min event loop blocks",
|
|
36
37
|
"simplify telemetry to once-per-day only",
|
|
37
38
|
"reduce telemetry batch cadence from 5min to 6h",
|
|
@@ -55,8 +56,7 @@
|
|
|
55
56
|
"tsup outputs to dist directly — kill dist-next migration shim",
|
|
56
57
|
"drop --strict-mcp-config from lean MCP — was blocking skill loading (/exe-intercom)",
|
|
57
58
|
"zombie agent reaper never kills coordinator/exe session processes",
|
|
58
|
-
"typecheck errors blocking publish — async embed alert + dead code cleanup"
|
|
59
|
-
"session TTL uses registry registeredAt instead of tmux session_created"
|
|
59
|
+
"typecheck errors blocking publish — async embed alert + dead code cleanup"
|
|
60
60
|
],
|
|
61
61
|
"security": [
|
|
62
62
|
"fix shell injection, SSRF, socket leaks, backup validation",
|
|
@@ -73,6 +73,7 @@
|
|
|
73
73
|
"fix 4 pricing tier bypass vulnerabilities (audit F1-F4)"
|
|
74
74
|
],
|
|
75
75
|
"other": [
|
|
76
|
+
"bump to v0.9.207",
|
|
76
77
|
"bump to v0.9.206",
|
|
77
78
|
"bump to v0.9.205",
|
|
78
79
|
"bump to v0.9.204",
|
|
@@ -96,13 +97,12 @@
|
|
|
96
97
|
"bump to 0.9.198 — coordinator reaper guard",
|
|
97
98
|
"bump to 0.9.197 — TTL fix + registry consolidation + TS fixes",
|
|
98
99
|
"update all manifest images to update.askexe.com + compose + beam tuning",
|
|
99
|
-
"bump to 0.9.196"
|
|
100
|
-
"bump to 0.9.195"
|
|
100
|
+
"bump to 0.9.196"
|
|
101
101
|
],
|
|
102
102
|
"migration_notes": []
|
|
103
103
|
},
|
|
104
|
-
"0.9.
|
|
105
|
-
"version": "0.9.
|
|
104
|
+
"0.9.206": {
|
|
105
|
+
"version": "0.9.206",
|
|
106
106
|
"date": "2026-06-03",
|
|
107
107
|
"features": [
|
|
108
108
|
"5-minute telemetry batching + per-tool-call usage in payload",
|
|
@@ -132,6 +132,7 @@
|
|
|
132
132
|
"BEAM multi-tier support — 100K, 1M, 10M token scales"
|
|
133
133
|
],
|
|
134
134
|
"fixes": [
|
|
135
|
+
"async worktree reaper — eliminates 30-min event loop blocks",
|
|
135
136
|
"simplify telemetry to once-per-day only",
|
|
136
137
|
"reduce telemetry batch cadence from 5min to 6h",
|
|
137
138
|
"prevent daemon telemetry checkpoint stalls",
|
|
@@ -155,8 +156,7 @@
|
|
|
155
156
|
"drop --strict-mcp-config from lean MCP — was blocking skill loading (/exe-intercom)",
|
|
156
157
|
"zombie agent reaper never kills coordinator/exe session processes",
|
|
157
158
|
"typecheck errors blocking publish — async embed alert + dead code cleanup",
|
|
158
|
-
"session TTL uses registry registeredAt instead of tmux session_created"
|
|
159
|
-
"CRM auth defaults + benchmark beam.ts updates"
|
|
159
|
+
"session TTL uses registry registeredAt instead of tmux session_created"
|
|
160
160
|
],
|
|
161
161
|
"security": [
|
|
162
162
|
"fix shell injection, SSRF, socket leaks, backup validation",
|
|
@@ -173,6 +173,7 @@
|
|
|
173
173
|
"fix 4 pricing tier bypass vulnerabilities (audit F1-F4)"
|
|
174
174
|
],
|
|
175
175
|
"other": [
|
|
176
|
+
"bump to v0.9.206",
|
|
176
177
|
"bump to v0.9.205",
|
|
177
178
|
"bump to v0.9.204",
|
|
178
179
|
"update release-notes.json",
|
|
@@ -196,15 +197,19 @@
|
|
|
196
197
|
"bump to 0.9.197 — TTL fix + registry consolidation + TS fixes",
|
|
197
198
|
"update all manifest images to update.askexe.com + compose + beam tuning",
|
|
198
199
|
"bump to 0.9.196",
|
|
199
|
-
"bump to 0.9.195"
|
|
200
|
-
"bump to 0.9.194"
|
|
200
|
+
"bump to 0.9.195"
|
|
201
201
|
],
|
|
202
202
|
"migration_notes": []
|
|
203
203
|
},
|
|
204
|
-
"0.9.
|
|
205
|
-
"version": "0.9.
|
|
204
|
+
"0.9.205": {
|
|
205
|
+
"version": "0.9.205",
|
|
206
206
|
"date": "2026-06-03",
|
|
207
207
|
"features": [
|
|
208
|
+
"5-minute telemetry batching + per-tool-call usage in payload",
|
|
209
|
+
"disk outbox for failed telemetry + remote killswitch",
|
|
210
|
+
"auto-attach orchestration metrics to every bug report",
|
|
211
|
+
"auto-send daily telemetry from daemon",
|
|
212
|
+
"add telemetry intake endpoint to Cloudflare Worker",
|
|
208
213
|
"close orchestration measurement edge gaps",
|
|
209
214
|
"harden orchestration telemetry coverage",
|
|
210
215
|
"telemetry upload + RESUME storms + reviewer bottlenecks + DB consistency",
|
|
@@ -224,14 +229,12 @@
|
|
|
224
229
|
"3-mode BEAM benchmark — FTS vs FTS+Graph vs Hybrid",
|
|
225
230
|
"wire update.askexe.com — billing schema + non-fatal image credentials",
|
|
226
231
|
"add 'never defer' platform procedure — fix it now or assign it now",
|
|
227
|
-
"BEAM multi-tier support — 100K, 1M, 10M token scales"
|
|
228
|
-
"MemoryAgentBench harness — ICLR 2026 benchmark",
|
|
229
|
-
"support outbox flusher + list_tasks null fix + doctor outbox status",
|
|
230
|
-
"bug report outbox flusher — reports reach AskExe even when daemon is dead",
|
|
231
|
-
"add daily-summary CLI entry point + enable tsup build",
|
|
232
|
-
"add daemon observability platform procedure"
|
|
232
|
+
"BEAM multi-tier support — 100K, 1M, 10M token scales"
|
|
233
233
|
],
|
|
234
234
|
"fixes": [
|
|
235
|
+
"simplify telemetry to once-per-day only",
|
|
236
|
+
"reduce telemetry batch cadence from 5min to 6h",
|
|
237
|
+
"prevent daemon telemetry checkpoint stalls",
|
|
235
238
|
"add gateway tables to init-db.sql — prevents missing table on fresh deploys",
|
|
236
239
|
"task test mock returns correct shape for createOrRefreshResumeTask",
|
|
237
240
|
"embed RAM gate 16GB, paste-buffer -p, task dispatch repo + surfacing",
|
|
@@ -253,10 +256,7 @@
|
|
|
253
256
|
"zombie agent reaper never kills coordinator/exe session processes",
|
|
254
257
|
"typecheck errors blocking publish — async embed alert + dead code cleanup",
|
|
255
258
|
"session TTL uses registry registeredAt instead of tmux session_created",
|
|
256
|
-
"CRM auth defaults + benchmark beam.ts updates"
|
|
257
|
-
"enable GoTrue email auth by default in setup template",
|
|
258
|
-
"intercom signal path in packaged source — ships to customers on npm install",
|
|
259
|
-
"intercom signal path + registry consolidated to update.askexe.com"
|
|
259
|
+
"CRM auth defaults + benchmark beam.ts updates"
|
|
260
260
|
],
|
|
261
261
|
"security": [
|
|
262
262
|
"fix shell injection, SSRF, socket leaks, backup validation",
|
|
@@ -273,6 +273,7 @@
|
|
|
273
273
|
"fix 4 pricing tier bypass vulnerabilities (audit F1-F4)"
|
|
274
274
|
],
|
|
275
275
|
"other": [
|
|
276
|
+
"bump to v0.9.205",
|
|
276
277
|
"bump to v0.9.204",
|
|
277
278
|
"update release-notes.json",
|
|
278
279
|
"bump stack manifest to v0.9.12 — CRM v0.9.44, exe-os v0.9.199",
|
|
@@ -296,15 +297,21 @@
|
|
|
296
297
|
"update all manifest images to update.askexe.com + compose + beam tuning",
|
|
297
298
|
"bump to 0.9.196",
|
|
298
299
|
"bump to 0.9.195",
|
|
299
|
-
"bump to 0.9.194"
|
|
300
|
-
"bump to 0.9.193"
|
|
300
|
+
"bump to 0.9.194"
|
|
301
301
|
],
|
|
302
302
|
"migration_notes": []
|
|
303
303
|
},
|
|
304
|
-
"0.9.
|
|
305
|
-
"version": "0.9.
|
|
304
|
+
"0.9.204": {
|
|
305
|
+
"version": "0.9.204",
|
|
306
306
|
"date": "2026-06-03",
|
|
307
307
|
"features": [
|
|
308
|
+
"close orchestration measurement edge gaps",
|
|
309
|
+
"harden orchestration telemetry coverage",
|
|
310
|
+
"telemetry upload + RESUME storms + reviewer bottlenecks + DB consistency",
|
|
311
|
+
"harden orchestration measurement contract",
|
|
312
|
+
"add blocked duration + session duration latency metrics",
|
|
313
|
+
"complete orchestration measurement — all blind spots closed",
|
|
314
|
+
"full orchestration measurement — 38 event types across all blind spots",
|
|
308
315
|
"expand orchestration measurement to full event coverage",
|
|
309
316
|
"DB Authority Phase 1 — task claim and liveness schema",
|
|
310
317
|
"browser prompt injection defense + persistent cookie jar",
|
|
@@ -322,16 +329,10 @@
|
|
|
322
329
|
"support outbox flusher + list_tasks null fix + doctor outbox status",
|
|
323
330
|
"bug report outbox flusher — reports reach AskExe even when daemon is dead",
|
|
324
331
|
"add daily-summary CLI entry point + enable tsup build",
|
|
325
|
-
"add daemon observability platform procedure"
|
|
326
|
-
"add retrieval architecture platform procedure for 8-16GB machines",
|
|
327
|
-
"graceful shutdown warning via intercom 90s before idle kill",
|
|
328
|
-
"upload pre-update snapshot to R2 before every stack-update",
|
|
329
|
-
"encrypted daily VPS backups with R2 cloud upload",
|
|
330
|
-
"conversation history import — parser + MCP tool + CLI",
|
|
331
|
-
"add vps-backup + vps-health-gate scripts with stack-update integration",
|
|
332
|
-
"add update_bug_report + update_feature_request MCP tools"
|
|
332
|
+
"add daemon observability platform procedure"
|
|
333
333
|
],
|
|
334
334
|
"fixes": [
|
|
335
|
+
"add gateway tables to init-db.sql — prevents missing table on fresh deploys",
|
|
335
336
|
"task test mock returns correct shape for createOrRefreshResumeTask",
|
|
336
337
|
"embed RAM gate 16GB, paste-buffer -p, task dispatch repo + surfacing",
|
|
337
338
|
"full shard schema parity with main DB",
|
|
@@ -355,8 +356,7 @@
|
|
|
355
356
|
"CRM auth defaults + benchmark beam.ts updates",
|
|
356
357
|
"enable GoTrue email auth by default in setup template",
|
|
357
358
|
"intercom signal path in packaged source — ships to customers on npm install",
|
|
358
|
-
"intercom signal path + registry consolidated to update.askexe.com"
|
|
359
|
-
"4 customer P2 bugs — CLI passthrough + agent casing + clipboard (#50)"
|
|
359
|
+
"intercom signal path + registry consolidated to update.askexe.com"
|
|
360
360
|
],
|
|
361
361
|
"security": [
|
|
362
362
|
"fix shell injection, SSRF, socket leaks, backup validation",
|
|
@@ -373,6 +373,10 @@
|
|
|
373
373
|
"fix 4 pricing tier bypass vulnerabilities (audit F1-F4)"
|
|
374
374
|
],
|
|
375
375
|
"other": [
|
|
376
|
+
"bump to v0.9.204",
|
|
377
|
+
"update release-notes.json",
|
|
378
|
+
"bump stack manifest to v0.9.12 — CRM v0.9.44, exe-os v0.9.199",
|
|
379
|
+
"review full orchestration measurement coverage",
|
|
376
380
|
"bump to v0.9.203",
|
|
377
381
|
"capture orchestration measurement blind spots",
|
|
378
382
|
"review push event orchestration roadmap",
|
|
@@ -393,18 +397,16 @@
|
|
|
393
397
|
"bump to 0.9.196",
|
|
394
398
|
"bump to 0.9.195",
|
|
395
399
|
"bump to 0.9.194",
|
|
396
|
-
"bump to 0.9.193"
|
|
397
|
-
"bump to 0.9.192",
|
|
398
|
-
"bump to 0.9.191",
|
|
399
|
-
"bump to 0.9.189",
|
|
400
|
-
"bump to 0.9.188 — HYGO stack-update blockers fixed"
|
|
400
|
+
"bump to 0.9.193"
|
|
401
401
|
],
|
|
402
402
|
"migration_notes": []
|
|
403
403
|
},
|
|
404
|
-
"0.9.
|
|
405
|
-
"version": "0.9.
|
|
404
|
+
"0.9.203": {
|
|
405
|
+
"version": "0.9.203",
|
|
406
406
|
"date": "2026-06-03",
|
|
407
407
|
"features": [
|
|
408
|
+
"expand orchestration measurement to full event coverage",
|
|
409
|
+
"DB Authority Phase 1 — task claim and liveness schema",
|
|
408
410
|
"browser prompt injection defense + persistent cookie jar",
|
|
409
411
|
"wire exe-erp into VPS stack (init-db, cloudflared, manifest, docs)",
|
|
410
412
|
"consolidate registry.askexe.com → update.askexe.com as primary registry (#51)",
|
|
@@ -427,11 +429,10 @@
|
|
|
427
429
|
"encrypted daily VPS backups with R2 cloud upload",
|
|
428
430
|
"conversation history import — parser + MCP tool + CLI",
|
|
429
431
|
"add vps-backup + vps-health-gate scripts with stack-update integration",
|
|
430
|
-
"add update_bug_report + update_feature_request MCP tools"
|
|
431
|
-
"VPS guardrails — Postgres backup cron + post-deploy health gate",
|
|
432
|
-
"co-occurrence edges + graph backfill script"
|
|
432
|
+
"add update_bug_report + update_feature_request MCP tools"
|
|
433
433
|
],
|
|
434
434
|
"fixes": [
|
|
435
|
+
"task test mock returns correct shape for createOrRefreshResumeTask",
|
|
435
436
|
"embed RAM gate 16GB, paste-buffer -p, task dispatch repo + surfacing",
|
|
436
437
|
"full shard schema parity with main DB",
|
|
437
438
|
"ensure orchestration metrics CLI exits",
|
|
@@ -455,8 +456,7 @@
|
|
|
455
456
|
"enable GoTrue email auth by default in setup template",
|
|
456
457
|
"intercom signal path in packaged source — ships to customers on npm install",
|
|
457
458
|
"intercom signal path + registry consolidated to update.askexe.com",
|
|
458
|
-
"4 customer P2 bugs — CLI passthrough + agent casing + clipboard (#50)"
|
|
459
|
-
"MCP pressure eviction evicts ONE session, not all"
|
|
459
|
+
"4 customer P2 bugs — CLI passthrough + agent casing + clipboard (#50)"
|
|
460
460
|
],
|
|
461
461
|
"security": [
|
|
462
462
|
"fix shell injection, SSRF, socket leaks, backup validation",
|
|
@@ -473,6 +473,11 @@
|
|
|
473
473
|
"fix 4 pricing tier bypass vulnerabilities (audit F1-F4)"
|
|
474
474
|
],
|
|
475
475
|
"other": [
|
|
476
|
+
"bump to v0.9.203",
|
|
477
|
+
"capture orchestration measurement blind spots",
|
|
478
|
+
"review push event orchestration roadmap",
|
|
479
|
+
"add full 4-phase DB Authority roadmap to ARCHITECTURE.md",
|
|
480
|
+
"update release-notes for v0.9.202 + remove stale lock file",
|
|
476
481
|
"bump to v0.9.202",
|
|
477
482
|
"bump to v0.9.201",
|
|
478
483
|
"bump to v0.9.200",
|
|
@@ -492,12 +497,7 @@
|
|
|
492
497
|
"bump to 0.9.192",
|
|
493
498
|
"bump to 0.9.191",
|
|
494
499
|
"bump to 0.9.189",
|
|
495
|
-
"bump to 0.9.188 — HYGO stack-update blockers fixed"
|
|
496
|
-
"bump to 0.9.187",
|
|
497
|
-
"bump to 0.9.186 — cross-session dispatch fix",
|
|
498
|
-
"release: bump exe-os image to v0.9.185 in stack manifest",
|
|
499
|
-
"bump to 0.9.185",
|
|
500
|
-
"bump to 0.9.184"
|
|
500
|
+
"bump to 0.9.188 — HYGO stack-update blockers fixed"
|
|
501
501
|
],
|
|
502
502
|
"migration_notes": []
|
|
503
503
|
}
|
|
File without changes
|