@askexenow/exe-os 0.9.330 → 0.9.331
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/cli.js +1 -1
- package/dist/bin/deferred-daemon-restart.js +8 -8
- package/dist/bin/exe-config-dump.js +0 -0
- package/dist/bin/exe-doctor.js +2 -2
- package/dist/bin/exe-forget.js +1 -1
- package/dist/bin/exe-search.js +1 -1
- package/dist/bin/install.js +8 -8
- package/dist/{catchup-brief-2V6WXZGD.js → catchup-brief-5ELWS6IF.js} +1 -1
- package/dist/{chunk-TKG6LCSQ.js → chunk-BGCJZQGQ.js} +1 -1
- package/dist/{chunk-OR7JFLIL.js → chunk-CASOKILE.js} +3 -3
- package/dist/{chunk-5IX2ZW6O.js → chunk-E5UHM2KN.js} +107 -0
- package/dist/{chunk-QVT4LNHH.js → chunk-IJYBKQDJ.js} +1 -1
- package/dist/{chunk-CCDQ6NIZ.js → chunk-OLQYIAOQ.js} +18 -0
- package/dist/{chunk-6YONUN6T.js → chunk-TXUSQZLH.js} +11 -1
- package/dist/{chunk-U7ORCOJH.js → chunk-W7F3ZBHH.js} +32 -10
- package/dist/{exe-key-XV4VACRP.js → exe-key-MGEOBRCI.js} +8 -8
- 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/hybrid-search.js +1 -1
- package/dist/lib/token-spend.js +9 -3
- package/dist/mcp/register-tools.js +7 -7
- package/dist/mcp/server.js +7 -7
- package/dist/mcp/tools/create-task.js +1 -1
- package/dist/{reranker-H3TCF74O.js → reranker-WHMDMYZP.js} +1 -1
- package/dist/{retrieval-health-3VRJMK47.js → retrieval-health-GFGXNPSN.js} +1 -1
- package/dist/tui/App.js +11 -11
- package/package.json +1 -1
- package/release-notes.json +15 -15
- /package/dist/{chunk-KOQ6WZBS.js → chunk-TOEQZTYB.js} +0 -0
package/dist/bin/cli.js
CHANGED
|
@@ -195,7 +195,7 @@ if (args.includes("--global")) {
|
|
|
195
195
|
process.exit(1);
|
|
196
196
|
}
|
|
197
197
|
} else if (args[0] === "key") {
|
|
198
|
-
const { main: runKey } = await import("../exe-key-
|
|
198
|
+
const { main: runKey } = await import("../exe-key-MGEOBRCI.js");
|
|
199
199
|
await runKey(args.slice(1));
|
|
200
200
|
} else if (args[0] === "link") {
|
|
201
201
|
console.error("`exe-os link` has been removed from the customer command surface.");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
computeMcpSurfaceHash
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-BGCJZQGQ.js";
|
|
5
5
|
import "../chunk-WCGNCH3Q.js";
|
|
6
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-W7F3ZBHH.js";
|
|
7
7
|
import "../chunk-557C2IGL.js";
|
|
8
8
|
import "../chunk-JCBQQIUV.js";
|
|
9
9
|
import "../chunk-QQCZLNUC.js";
|
|
@@ -11,7 +11,7 @@ import "../chunk-CPXFQBBN.js";
|
|
|
11
11
|
import "../chunk-W7DHFGCB.js";
|
|
12
12
|
import "../chunk-ORU5LDIT.js";
|
|
13
13
|
import "../chunk-O6RMSGXQ.js";
|
|
14
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-TOEQZTYB.js";
|
|
15
15
|
import "../chunk-CRCB5S7I.js";
|
|
16
16
|
import "../chunk-MTHQR76V.js";
|
|
17
17
|
import "../chunk-RY7UV6CU.js";
|
|
@@ -29,7 +29,7 @@ import "../chunk-5EP4TCZ2.js";
|
|
|
29
29
|
import "../chunk-ZWWHEX3Y.js";
|
|
30
30
|
import "../chunk-IJTCNN5I.js";
|
|
31
31
|
import "../chunk-UJRZD77V.js";
|
|
32
|
-
import "../chunk-
|
|
32
|
+
import "../chunk-OLQYIAOQ.js";
|
|
33
33
|
import "../chunk-HMP5VT6A.js";
|
|
34
34
|
import "../chunk-QXXG2MCZ.js";
|
|
35
35
|
import "../chunk-MNLSPTWM.js";
|
|
@@ -37,7 +37,7 @@ import "../chunk-MTX3FQRR.js";
|
|
|
37
37
|
import "../chunk-SPCO7SNH.js";
|
|
38
38
|
import "../chunk-QAYGX7KA.js";
|
|
39
39
|
import "../chunk-DDA7IAWM.js";
|
|
40
|
-
import "../chunk-
|
|
40
|
+
import "../chunk-E5UHM2KN.js";
|
|
41
41
|
import "../chunk-3OEVDGIY.js";
|
|
42
42
|
import "../chunk-5QJFZYDD.js";
|
|
43
43
|
import "../chunk-67547XFJ.js";
|
|
@@ -45,8 +45,8 @@ import "../chunk-X2FHTDIU.js";
|
|
|
45
45
|
import "../chunk-SSC7EKY2.js";
|
|
46
46
|
import "../chunk-N5ACQ7C2.js";
|
|
47
47
|
import "../chunk-75H4R62K.js";
|
|
48
|
-
import "../chunk-
|
|
49
|
-
import "../chunk-
|
|
48
|
+
import "../chunk-IJYBKQDJ.js";
|
|
49
|
+
import "../chunk-TXUSQZLH.js";
|
|
50
50
|
import "../chunk-KQ4Z2G24.js";
|
|
51
51
|
import "../chunk-L3TB7CC3.js";
|
|
52
52
|
import "../chunk-FZALT2G7.js";
|
|
@@ -74,7 +74,7 @@ import "../chunk-5JILQMRS.js";
|
|
|
74
74
|
import "../chunk-YL5S6I3R.js";
|
|
75
75
|
import "../chunk-NPAGBSEN.js";
|
|
76
76
|
import "../chunk-MZ2MBZ3E.js";
|
|
77
|
-
import "../chunk-
|
|
77
|
+
import "../chunk-CASOKILE.js";
|
|
78
78
|
import "../chunk-AB4PAQYK.js";
|
|
79
79
|
import "../chunk-KKZPF6YI.js";
|
|
80
80
|
import "../chunk-CHCA3ZM2.js";
|
|
File without changes
|
package/dist/bin/exe-doctor.js
CHANGED
|
@@ -23,8 +23,8 @@ import {
|
|
|
23
23
|
runAudit,
|
|
24
24
|
shouldFixShards,
|
|
25
25
|
splitAtSentences
|
|
26
|
-
} from "../chunk-
|
|
27
|
-
import "../chunk-
|
|
26
|
+
} from "../chunk-IJYBKQDJ.js";
|
|
27
|
+
import "../chunk-TXUSQZLH.js";
|
|
28
28
|
import "../chunk-KQ4Z2G24.js";
|
|
29
29
|
import "../chunk-L3TB7CC3.js";
|
|
30
30
|
import "../chunk-VGMACSEV.js";
|
package/dist/bin/exe-forget.js
CHANGED
package/dist/bin/exe-search.js
CHANGED
package/dist/bin/install.js
CHANGED
|
@@ -18,12 +18,12 @@ import {
|
|
|
18
18
|
} from "../chunk-KADUJ7PE.js";
|
|
19
19
|
import {
|
|
20
20
|
computeMcpSurfaceHash
|
|
21
|
-
} from "../chunk-
|
|
21
|
+
} from "../chunk-BGCJZQGQ.js";
|
|
22
22
|
import {
|
|
23
23
|
generateSessionWrappers
|
|
24
24
|
} from "../chunk-CVTWQZOR.js";
|
|
25
25
|
import "../chunk-WCGNCH3Q.js";
|
|
26
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-W7F3ZBHH.js";
|
|
27
27
|
import "../chunk-557C2IGL.js";
|
|
28
28
|
import "../chunk-JCBQQIUV.js";
|
|
29
29
|
import "../chunk-QQCZLNUC.js";
|
|
@@ -31,7 +31,7 @@ import "../chunk-CPXFQBBN.js";
|
|
|
31
31
|
import "../chunk-W7DHFGCB.js";
|
|
32
32
|
import "../chunk-ORU5LDIT.js";
|
|
33
33
|
import "../chunk-O6RMSGXQ.js";
|
|
34
|
-
import "../chunk-
|
|
34
|
+
import "../chunk-TOEQZTYB.js";
|
|
35
35
|
import "../chunk-CRCB5S7I.js";
|
|
36
36
|
import "../chunk-MTHQR76V.js";
|
|
37
37
|
import "../chunk-RY7UV6CU.js";
|
|
@@ -49,7 +49,7 @@ import "../chunk-5EP4TCZ2.js";
|
|
|
49
49
|
import "../chunk-ZWWHEX3Y.js";
|
|
50
50
|
import "../chunk-IJTCNN5I.js";
|
|
51
51
|
import "../chunk-UJRZD77V.js";
|
|
52
|
-
import "../chunk-
|
|
52
|
+
import "../chunk-OLQYIAOQ.js";
|
|
53
53
|
import "../chunk-HMP5VT6A.js";
|
|
54
54
|
import "../chunk-QXXG2MCZ.js";
|
|
55
55
|
import "../chunk-MNLSPTWM.js";
|
|
@@ -57,7 +57,7 @@ import "../chunk-MTX3FQRR.js";
|
|
|
57
57
|
import "../chunk-SPCO7SNH.js";
|
|
58
58
|
import "../chunk-QAYGX7KA.js";
|
|
59
59
|
import "../chunk-DDA7IAWM.js";
|
|
60
|
-
import "../chunk-
|
|
60
|
+
import "../chunk-E5UHM2KN.js";
|
|
61
61
|
import "../chunk-3OEVDGIY.js";
|
|
62
62
|
import "../chunk-5QJFZYDD.js";
|
|
63
63
|
import "../chunk-67547XFJ.js";
|
|
@@ -65,8 +65,8 @@ import "../chunk-X2FHTDIU.js";
|
|
|
65
65
|
import "../chunk-SSC7EKY2.js";
|
|
66
66
|
import "../chunk-N5ACQ7C2.js";
|
|
67
67
|
import "../chunk-75H4R62K.js";
|
|
68
|
-
import "../chunk-
|
|
69
|
-
import "../chunk-
|
|
68
|
+
import "../chunk-IJYBKQDJ.js";
|
|
69
|
+
import "../chunk-TXUSQZLH.js";
|
|
70
70
|
import "../chunk-KQ4Z2G24.js";
|
|
71
71
|
import "../chunk-L3TB7CC3.js";
|
|
72
72
|
import "../chunk-FZALT2G7.js";
|
|
@@ -94,7 +94,7 @@ import "../chunk-5JILQMRS.js";
|
|
|
94
94
|
import "../chunk-YL5S6I3R.js";
|
|
95
95
|
import "../chunk-NPAGBSEN.js";
|
|
96
96
|
import "../chunk-MZ2MBZ3E.js";
|
|
97
|
-
import "../chunk-
|
|
97
|
+
import "../chunk-CASOKILE.js";
|
|
98
98
|
import "../chunk-AB4PAQYK.js";
|
|
99
99
|
import {
|
|
100
100
|
resolveEmbeddingsEnabled
|
|
@@ -359,7 +359,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
359
359
|
let rerankerAvailable = false;
|
|
360
360
|
if (process.env.EXE_IS_DAEMON === "1") {
|
|
361
361
|
try {
|
|
362
|
-
const { isRerankerAvailable } = await import("./reranker-
|
|
362
|
+
const { isRerankerAvailable } = await import("./reranker-WHMDMYZP.js");
|
|
363
363
|
rerankerAvailable = isRerankerAvailable();
|
|
364
364
|
} catch {
|
|
365
365
|
}
|
|
@@ -561,7 +561,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
561
561
|
try {
|
|
562
562
|
let rerankedRecords;
|
|
563
563
|
if (graphContextMap.size > 0) {
|
|
564
|
-
const { rerankWithContext } = await import("./reranker-
|
|
564
|
+
const { rerankWithContext } = await import("./reranker-WHMDMYZP.js");
|
|
565
565
|
const candidates = merged.map((m) => ({
|
|
566
566
|
text: m.raw_text,
|
|
567
567
|
context: graphContextMap.get(m.id)
|
|
@@ -569,7 +569,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
569
569
|
const scored = await rerankWithContext(effectiveQuery, candidates, rerankReturnLimit);
|
|
570
570
|
rerankedRecords = scored.map((s) => merged[s.index]);
|
|
571
571
|
} else {
|
|
572
|
-
const { rerank } = await import("./reranker-
|
|
572
|
+
const { rerank } = await import("./reranker-WHMDMYZP.js");
|
|
573
573
|
rerankedRecords = await rerank(effectiveQuery, merged, rerankReturnLimit);
|
|
574
574
|
}
|
|
575
575
|
if (rerankedRecords.length > 0) {
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getClient
|
|
3
3
|
} from "./chunk-BIM763ML.js";
|
|
4
|
+
import {
|
|
5
|
+
loadConfigSync
|
|
6
|
+
} from "./chunk-7Y5UDEVM.js";
|
|
4
7
|
|
|
5
8
|
// src/lib/token-spend.ts
|
|
6
9
|
import { readdir, stat } from "fs/promises";
|
|
@@ -8,6 +11,107 @@ import { createReadStream } from "fs";
|
|
|
8
11
|
import { createInterface } from "readline";
|
|
9
12
|
import path from "path";
|
|
10
13
|
import os from "os";
|
|
14
|
+
var DEFAULT_SPEND_WARNING_THRESHOLD = 0.8;
|
|
15
|
+
function asRecord(value) {
|
|
16
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
17
|
+
}
|
|
18
|
+
function finitePositiveNumber(value) {
|
|
19
|
+
if (typeof value === "number" && Number.isFinite(value) && value > 0) return value;
|
|
20
|
+
if (typeof value === "string" && value.trim() !== "") {
|
|
21
|
+
const parsed = Number(value);
|
|
22
|
+
if (Number.isFinite(parsed) && parsed > 0) return parsed;
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
function normalizeWarningThreshold(value) {
|
|
27
|
+
const parsed = finitePositiveNumber(value);
|
|
28
|
+
if (parsed === null) return DEFAULT_SPEND_WARNING_THRESHOLD;
|
|
29
|
+
const ratio = parsed > 1 ? parsed / 100 : parsed;
|
|
30
|
+
return ratio > 0 && ratio <= 1 ? ratio : DEFAULT_SPEND_WARNING_THRESHOLD;
|
|
31
|
+
}
|
|
32
|
+
function firstPositiveNumber(records, keys) {
|
|
33
|
+
for (const { source, record } of records) {
|
|
34
|
+
for (const key of keys) {
|
|
35
|
+
const value = finitePositiveNumber(record[key]);
|
|
36
|
+
if (value !== null) return { value, source: `${source}.${key}` };
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
function resolveGlobalSpendCapConfig(config, env = process.env) {
|
|
42
|
+
const envCap = finitePositiveNumber(env.EXE_GLOBAL_SPEND_CAP_USD ?? env.EXE_TOKEN_SPEND_CAP_USD ?? env.EXE_SPEND_CAP_USD);
|
|
43
|
+
if (envCap !== null) {
|
|
44
|
+
return {
|
|
45
|
+
capUSD: envCap,
|
|
46
|
+
warningThreshold: normalizeWarningThreshold(
|
|
47
|
+
env.EXE_GLOBAL_SPEND_WARN_THRESHOLD ?? env.EXE_TOKEN_SPEND_WARN_THRESHOLD ?? env.EXE_SPEND_WARN_THRESHOLD
|
|
48
|
+
),
|
|
49
|
+
source: env.EXE_GLOBAL_SPEND_CAP_USD ? "env.EXE_GLOBAL_SPEND_CAP_USD" : env.EXE_TOKEN_SPEND_CAP_USD ? "env.EXE_TOKEN_SPEND_CAP_USD" : "env.EXE_SPEND_CAP_USD"
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const tokenSpend = asRecord(config.tokenSpend);
|
|
53
|
+
const spend = asRecord(config.spend);
|
|
54
|
+
const records = [
|
|
55
|
+
...tokenSpend ? [{ source: "config.tokenSpend", record: tokenSpend }] : [],
|
|
56
|
+
...spend ? [{ source: "config.spend", record: spend }] : [],
|
|
57
|
+
{ source: "config", record: config }
|
|
58
|
+
];
|
|
59
|
+
const cap = firstPositiveNumber(records, [
|
|
60
|
+
"globalCapUSD",
|
|
61
|
+
"globalSpendCapUSD",
|
|
62
|
+
"capUSD",
|
|
63
|
+
"spendCapUSD"
|
|
64
|
+
]);
|
|
65
|
+
if (!cap) return null;
|
|
66
|
+
const warning = firstPositiveNumber(records, [
|
|
67
|
+
"warningThreshold",
|
|
68
|
+
"warningThresholdPercent",
|
|
69
|
+
"warnAt",
|
|
70
|
+
"warnAtPercent"
|
|
71
|
+
]);
|
|
72
|
+
return {
|
|
73
|
+
capUSD: cap.value,
|
|
74
|
+
warningThreshold: normalizeWarningThreshold(warning?.value),
|
|
75
|
+
source: cap.source
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function getConfiguredGlobalSpendCap() {
|
|
79
|
+
try {
|
|
80
|
+
return resolveGlobalSpendCapConfig(loadConfigSync());
|
|
81
|
+
} catch {
|
|
82
|
+
return resolveGlobalSpendCapConfig({});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function evaluateGlobalSpendCap(totalCostUSD, period, config = getConfiguredGlobalSpendCap()) {
|
|
86
|
+
const normalizedCost = Number.isFinite(totalCostUSD) && totalCostUSD > 0 ? totalCostUSD : 0;
|
|
87
|
+
if (!config) {
|
|
88
|
+
return {
|
|
89
|
+
configured: false,
|
|
90
|
+
period,
|
|
91
|
+
capUSD: null,
|
|
92
|
+
totalCostUSD: normalizedCost,
|
|
93
|
+
percentUsed: 0,
|
|
94
|
+
warningThresholdPercent: null,
|
|
95
|
+
status: "unconfigured",
|
|
96
|
+
message: "No global spend cap configured. Set tokenSpend.globalCapUSD in config.json or EXE_GLOBAL_SPEND_CAP_USD to enable spend warnings.",
|
|
97
|
+
source: null
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
const percentUsed = Math.round(normalizedCost / config.capUSD * 100);
|
|
101
|
+
const status = normalizedCost >= config.capUSD ? "over_cap" : normalizedCost >= config.capUSD * config.warningThreshold ? "near_cap" : "ok";
|
|
102
|
+
const warningThresholdPercent = Math.round(config.warningThreshold * 100);
|
|
103
|
+
return {
|
|
104
|
+
configured: true,
|
|
105
|
+
period,
|
|
106
|
+
capUSD: config.capUSD,
|
|
107
|
+
totalCostUSD: normalizedCost,
|
|
108
|
+
percentUsed,
|
|
109
|
+
warningThresholdPercent,
|
|
110
|
+
status,
|
|
111
|
+
message: status === "over_cap" ? `Global spend cap exceeded for ${period}: $${normalizedCost.toFixed(2)} / $${config.capUSD.toFixed(2)} (${percentUsed}%).` : status === "near_cap" ? `Global spend is near cap for ${period}: $${normalizedCost.toFixed(2)} / $${config.capUSD.toFixed(2)} (${percentUsed}%, warning at ${warningThresholdPercent}%).` : `Global spend is within cap for ${period}: $${normalizedCost.toFixed(2)} / $${config.capUSD.toFixed(2)} (${percentUsed}%).`,
|
|
112
|
+
source: config.source
|
|
113
|
+
};
|
|
114
|
+
}
|
|
11
115
|
var MODEL_PRICING = {
|
|
12
116
|
// Opus 4.5+ ($5/$25 — Anthropic price drop from original Opus 4)
|
|
13
117
|
"claude-opus-4-7": { input: 5 / 1e6, output: 25 / 1e6, cacheRead: 0.5 / 1e6, cacheWrite: 6.25 / 1e6 },
|
|
@@ -223,6 +327,9 @@ function periodToCutoff(period) {
|
|
|
223
327
|
}
|
|
224
328
|
|
|
225
329
|
export {
|
|
330
|
+
resolveGlobalSpendCapConfig,
|
|
331
|
+
getConfiguredGlobalSpendCap,
|
|
332
|
+
evaluateGlobalSpendCap,
|
|
226
333
|
getPricing,
|
|
227
334
|
getAgentSpend
|
|
228
335
|
};
|
|
@@ -335,6 +335,24 @@ function registerCreateTask(server) {
|
|
|
335
335
|
} catch {
|
|
336
336
|
}
|
|
337
337
|
}
|
|
338
|
+
if (!callerRoot && process.env.VITEST !== "true" && process.env.NODE_ENV !== "test") {
|
|
339
|
+
const message = `BLOCKED: create_task resolved no session_scope for project "${project_name}". Refusing to create an unscoped task. Ensure the MCP client sends a non-empty X-Exe-Session header or run from a coordinator session that can be resolved.`;
|
|
340
|
+
process.stderr.write(`[create_task] ${message}
|
|
341
|
+
`);
|
|
342
|
+
recordOrchestrationEventBestEffort({
|
|
343
|
+
eventType: "dispatch.failed",
|
|
344
|
+
source: "create-task.mcp",
|
|
345
|
+
severity: "error",
|
|
346
|
+
agentId: assigned_to,
|
|
347
|
+
projectName: project_name,
|
|
348
|
+
errorCode: "missing_session_scope",
|
|
349
|
+
payload: { priority, callerTmux, callerSource }
|
|
350
|
+
});
|
|
351
|
+
return {
|
|
352
|
+
content: [{ type: "text", text: message }],
|
|
353
|
+
isError: true
|
|
354
|
+
};
|
|
355
|
+
}
|
|
338
356
|
const effectiveRuntime = spawn_runtime ?? getAgentRuntime(assigned_to).runtime;
|
|
339
357
|
let effectiveSpawnModel = spawn_model;
|
|
340
358
|
if (spawn_model) {
|
|
@@ -50,6 +50,8 @@ async function getRetrievalHealth() {
|
|
|
50
50
|
actualSearchMode = "fts+graph";
|
|
51
51
|
} else if (embedDaemon === "running") {
|
|
52
52
|
actualSearchMode = "hybrid (vector+fts+graph)";
|
|
53
|
+
} else if (embedDaemon === "disabled") {
|
|
54
|
+
actualSearchMode = "fts+graph (embeddings disabled by choice)";
|
|
53
55
|
} else {
|
|
54
56
|
actualSearchMode = "fts+graph (degraded from hybrid)";
|
|
55
57
|
}
|
|
@@ -117,8 +119,16 @@ async function getRetrievalHealth() {
|
|
|
117
119
|
}
|
|
118
120
|
function computeDegradations(h) {
|
|
119
121
|
const out = [];
|
|
122
|
+
const isEmbeddingsDisabledByChoice = h.embedDaemon === "disabled" || h.searchMode.actual.includes("disabled by choice");
|
|
120
123
|
const isRuntimeDowngrade = h.searchMode.actual.includes("degraded");
|
|
121
|
-
if (
|
|
124
|
+
if (isEmbeddingsDisabledByChoice) {
|
|
125
|
+
out.push({
|
|
126
|
+
code: "embeddings_disabled_by_choice",
|
|
127
|
+
severity: "info",
|
|
128
|
+
message: `Vector embeddings are disabled by choice; retrieval is running as "${h.searchMode.actual}"`,
|
|
129
|
+
remediation: "Enable embeddings/searchMode=hybrid only if you want vector retrieval; keyword + graph retrieval remains available."
|
|
130
|
+
});
|
|
131
|
+
} else if (isRuntimeDowngrade) {
|
|
122
132
|
out.push({
|
|
123
133
|
code: "retrieval_downgraded",
|
|
124
134
|
severity: "warn",
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
import {
|
|
34
34
|
isRerankerAvailable,
|
|
35
35
|
rerankWithScores
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-TOEQZTYB.js";
|
|
37
37
|
import {
|
|
38
38
|
getEntityByName,
|
|
39
39
|
getEntityNeighbors,
|
|
@@ -100,7 +100,7 @@ import {
|
|
|
100
100
|
} from "./chunk-UJRZD77V.js";
|
|
101
101
|
import {
|
|
102
102
|
registerCreateTask
|
|
103
|
-
} from "./chunk-
|
|
103
|
+
} from "./chunk-OLQYIAOQ.js";
|
|
104
104
|
import {
|
|
105
105
|
registerListTasks
|
|
106
106
|
} from "./chunk-QXXG2MCZ.js";
|
|
@@ -120,8 +120,9 @@ import {
|
|
|
120
120
|
status
|
|
121
121
|
} from "./chunk-DDA7IAWM.js";
|
|
122
122
|
import {
|
|
123
|
+
evaluateGlobalSpendCap,
|
|
123
124
|
getAgentSpend
|
|
124
|
-
} from "./chunk-
|
|
125
|
+
} from "./chunk-E5UHM2KN.js";
|
|
125
126
|
import {
|
|
126
127
|
exportGraphHTML,
|
|
127
128
|
generateGraphReport
|
|
@@ -140,11 +141,11 @@ import {
|
|
|
140
141
|
formatReport,
|
|
141
142
|
runAudit,
|
|
142
143
|
shouldFixShards
|
|
143
|
-
} from "./chunk-
|
|
144
|
+
} from "./chunk-IJYBKQDJ.js";
|
|
144
145
|
import {
|
|
145
146
|
formatDegradations,
|
|
146
147
|
getRetrievalHealth
|
|
147
|
-
} from "./chunk-
|
|
148
|
+
} from "./chunk-TXUSQZLH.js";
|
|
148
149
|
import {
|
|
149
150
|
hasFailures,
|
|
150
151
|
runHealth,
|
|
@@ -223,7 +224,7 @@ import {
|
|
|
223
224
|
import {
|
|
224
225
|
hybridSearch,
|
|
225
226
|
recentRecords
|
|
226
|
-
} from "./chunk-
|
|
227
|
+
} from "./chunk-CASOKILE.js";
|
|
227
228
|
import {
|
|
228
229
|
buildFtsMatch,
|
|
229
230
|
tokenizeForFts
|
|
@@ -6337,6 +6338,18 @@ function registerListEmployees(server) {
|
|
|
6337
6338
|
|
|
6338
6339
|
// src/mcp/tools/get-agent-spend.ts
|
|
6339
6340
|
import { z as z50 } from "zod";
|
|
6341
|
+
function renderGlobalSpendCap(status2) {
|
|
6342
|
+
const lines = ["", "## Global Spend Cap"];
|
|
6343
|
+
if (!status2.configured) {
|
|
6344
|
+
lines.push(`\u26A0\uFE0F ${status2.message}`);
|
|
6345
|
+
lines.push(`Current ${status2.period} tracked spend: $${status2.totalCostUSD.toFixed(2)}.`);
|
|
6346
|
+
return lines;
|
|
6347
|
+
}
|
|
6348
|
+
const prefix = status2.status === "over_cap" ? "\u{1F6A8}" : status2.status === "near_cap" ? "\u26A0\uFE0F" : "\u2705";
|
|
6349
|
+
lines.push(`${prefix} ${status2.message}`);
|
|
6350
|
+
lines.push(`Cap source: ${status2.source ?? "unknown"}.`);
|
|
6351
|
+
return lines;
|
|
6352
|
+
}
|
|
6340
6353
|
function registerGetAgentSpend(server) {
|
|
6341
6354
|
server.registerTool(
|
|
6342
6355
|
"get_agent_spend",
|
|
@@ -6350,7 +6363,12 @@ function registerGetAgentSpend(server) {
|
|
|
6350
6363
|
},
|
|
6351
6364
|
async ({ period, agent_id }) => {
|
|
6352
6365
|
try {
|
|
6353
|
-
|
|
6366
|
+
const allResults = await getAgentSpend(period);
|
|
6367
|
+
const capStatus = evaluateGlobalSpendCap(
|
|
6368
|
+
allResults.reduce((sum, r) => sum + r.costUSD, 0),
|
|
6369
|
+
period
|
|
6370
|
+
);
|
|
6371
|
+
let results = allResults;
|
|
6354
6372
|
if (agent_id) {
|
|
6355
6373
|
results = results.filter((r) => r.agentId === agent_id);
|
|
6356
6374
|
}
|
|
@@ -6359,7 +6377,10 @@ function registerGetAgentSpend(server) {
|
|
|
6359
6377
|
content: [
|
|
6360
6378
|
{
|
|
6361
6379
|
type: "text",
|
|
6362
|
-
text:
|
|
6380
|
+
text: [
|
|
6381
|
+
agent_id ? `No token spend found for agent "${agent_id}" in the last ${period}.` : `No token spend data found for the last ${period}.`,
|
|
6382
|
+
...renderGlobalSpendCap(capStatus)
|
|
6383
|
+
].join("\n")
|
|
6363
6384
|
}
|
|
6364
6385
|
]
|
|
6365
6386
|
};
|
|
@@ -6394,6 +6415,7 @@ function registerGetAgentSpend(server) {
|
|
|
6394
6415
|
`| **Total** | **${totalInput.toLocaleString()}** | **${totalOutput.toLocaleString()}** | **${totalCache.toLocaleString()}** | **${totalSessions}** | **$${totalCost.toFixed(2)}** |`
|
|
6395
6416
|
);
|
|
6396
6417
|
}
|
|
6418
|
+
lines.push(...renderGlobalSpendCap(capStatus));
|
|
6397
6419
|
return {
|
|
6398
6420
|
content: [{ type: "text", text: lines.join("\n") }]
|
|
6399
6421
|
};
|
|
@@ -7220,7 +7242,7 @@ async function cloudStatusText() {
|
|
|
7220
7242
|
if (lastReuploadedAt) lines.push(`- Last re-upload: ${lastReuploadedAt}`);
|
|
7221
7243
|
lines.push("");
|
|
7222
7244
|
try {
|
|
7223
|
-
const { getRetrievalHealth: getRetrievalHealth2, formatDegradations: formatDegradations2 } = await import("./retrieval-health-
|
|
7245
|
+
const { getRetrievalHealth: getRetrievalHealth2, formatDegradations: formatDegradations2 } = await import("./retrieval-health-GFGXNPSN.js");
|
|
7224
7246
|
const h = await getRetrievalHealth2();
|
|
7225
7247
|
lines.push(formatDegradations2(h.degradations, "Health / Degradations"));
|
|
7226
7248
|
lines.push("");
|
|
@@ -13009,7 +13031,7 @@ function registerCliParityTools(server) {
|
|
|
13009
13031
|
const out = await runCommand("exe-os", ["cloud", "status"], 45e3);
|
|
13010
13032
|
let healthSection = "";
|
|
13011
13033
|
try {
|
|
13012
|
-
const { getRetrievalHealth: getRetrievalHealth2, formatDegradations: formatDegradations2 } = await import("./retrieval-health-
|
|
13034
|
+
const { getRetrievalHealth: getRetrievalHealth2, formatDegradations: formatDegradations2 } = await import("./retrieval-health-GFGXNPSN.js");
|
|
13013
13035
|
const h = await getRetrievalHealth2();
|
|
13014
13036
|
const lines = [
|
|
13015
13037
|
"",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
computeMcpSurfaceHash
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BGCJZQGQ.js";
|
|
5
5
|
import "./chunk-WCGNCH3Q.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-W7F3ZBHH.js";
|
|
7
7
|
import "./chunk-557C2IGL.js";
|
|
8
8
|
import "./chunk-JCBQQIUV.js";
|
|
9
9
|
import "./chunk-QQCZLNUC.js";
|
|
@@ -11,7 +11,7 @@ import "./chunk-CPXFQBBN.js";
|
|
|
11
11
|
import "./chunk-W7DHFGCB.js";
|
|
12
12
|
import "./chunk-ORU5LDIT.js";
|
|
13
13
|
import "./chunk-O6RMSGXQ.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-TOEQZTYB.js";
|
|
15
15
|
import "./chunk-CRCB5S7I.js";
|
|
16
16
|
import "./chunk-MTHQR76V.js";
|
|
17
17
|
import "./chunk-RY7UV6CU.js";
|
|
@@ -29,7 +29,7 @@ import "./chunk-5EP4TCZ2.js";
|
|
|
29
29
|
import "./chunk-ZWWHEX3Y.js";
|
|
30
30
|
import "./chunk-IJTCNN5I.js";
|
|
31
31
|
import "./chunk-UJRZD77V.js";
|
|
32
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-OLQYIAOQ.js";
|
|
33
33
|
import "./chunk-HMP5VT6A.js";
|
|
34
34
|
import "./chunk-QXXG2MCZ.js";
|
|
35
35
|
import "./chunk-MNLSPTWM.js";
|
|
@@ -37,7 +37,7 @@ import "./chunk-MTX3FQRR.js";
|
|
|
37
37
|
import "./chunk-SPCO7SNH.js";
|
|
38
38
|
import "./chunk-QAYGX7KA.js";
|
|
39
39
|
import "./chunk-DDA7IAWM.js";
|
|
40
|
-
import "./chunk-
|
|
40
|
+
import "./chunk-E5UHM2KN.js";
|
|
41
41
|
import "./chunk-3OEVDGIY.js";
|
|
42
42
|
import "./chunk-5QJFZYDD.js";
|
|
43
43
|
import "./chunk-67547XFJ.js";
|
|
@@ -45,8 +45,8 @@ import "./chunk-X2FHTDIU.js";
|
|
|
45
45
|
import "./chunk-SSC7EKY2.js";
|
|
46
46
|
import "./chunk-N5ACQ7C2.js";
|
|
47
47
|
import "./chunk-75H4R62K.js";
|
|
48
|
-
import "./chunk-
|
|
49
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-IJYBKQDJ.js";
|
|
49
|
+
import "./chunk-TXUSQZLH.js";
|
|
50
50
|
import "./chunk-KQ4Z2G24.js";
|
|
51
51
|
import "./chunk-L3TB7CC3.js";
|
|
52
52
|
import "./chunk-FZALT2G7.js";
|
|
@@ -74,7 +74,7 @@ import "./chunk-5JILQMRS.js";
|
|
|
74
74
|
import "./chunk-YL5S6I3R.js";
|
|
75
75
|
import "./chunk-NPAGBSEN.js";
|
|
76
76
|
import "./chunk-MZ2MBZ3E.js";
|
|
77
|
-
import "./chunk-
|
|
77
|
+
import "./chunk-CASOKILE.js";
|
|
78
78
|
import "./chunk-AB4PAQYK.js";
|
|
79
79
|
import "./chunk-KKZPF6YI.js";
|
|
80
80
|
import "./chunk-CHCA3ZM2.js";
|
package/dist/hooks/manifest.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"generatedAt": "2026-07-
|
|
3
|
+
"generatedAt": "2026-07-04T10:55:40.183Z",
|
|
4
4
|
"hashes": {
|
|
5
5
|
"bug-report-worker.js": "36d324b0b6dd37b5ef17bdacd1210eca9e22e5c69fa5d84985e23e3ca05b1655",
|
|
6
6
|
"codex-stop-task-finalizer.js": "b949bec2ed64df279ac8264b399c1c82afc2ab563ac6253d2f86dd9ff0a473d2",
|
|
7
7
|
"commit-complete.js": "f08d57bfaf521308e1fe81a831d6f4c194524e066914fc5c5295983616c1c65b",
|
|
8
|
-
"error-recall.js": "
|
|
8
|
+
"error-recall.js": "82a9997a4747dd4a0333b04d54975507d7d8eb8584e96a9cdd1ab41d29793abf",
|
|
9
9
|
"exe-heartbeat-hook.js": "82642ced69749061da2cdf51ad1bd09ec856de8f4b11329a61901ab1295d7037",
|
|
10
10
|
"ingest-worker.js": "fb42110931002e4078cd2b85ce604ae9205e5c1511601e87ab38bfef6e6ed284",
|
|
11
11
|
"ingest.js": "62173d5fd6991231a489f60ed73308bb01abfbd0eda9443d50e8840cf4f24518",
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
"post-tool-combined.js": "77fc04d6fa31cb639169887afecf53ad98bc4f11eeb1fb38fc82ca0705dce190",
|
|
16
16
|
"pre-compact.js": "2f20d9892dfbd6f5aef08d7411835d6ec68d8e30af97e375f7eeff513fe5162e",
|
|
17
17
|
"pre-tool-use.js": "2023656f88812545ef58896b4f93d29317d10dcaa7a163d9d1a3745b9e44423c",
|
|
18
|
-
"prompt-submit.js": "
|
|
18
|
+
"prompt-submit.js": "6f650d0440370647a356d11803d5e90b118107e05b4189944c2477e3312d7deb",
|
|
19
19
|
"session-end.js": "56cba72a2e9f2b8a3359499d9f41809613a0060c5df5b89d7286b71a8ffd862f",
|
|
20
|
-
"session-start.js": "
|
|
20
|
+
"session-start.js": "77208d1ebc70bb5d5aa932dc8b48f468d866e6204606bcae12e5e8b6d1df6c98",
|
|
21
21
|
"stop.js": "bd88342775e9a7316e103b3c88f4813c7652224466cafb16b8ec9c281c12012e",
|
|
22
22
|
"subagent-stop.js": "83b0ad1b8750c0e749d7eb9675989475319fccaf16757b71f9ec329e5bfe570a",
|
|
23
23
|
"summary-worker.js": "9627db9fa9e75055ee992e82fedde1f8cd4de7150fb793cf155256ccfe553235"
|
|
@@ -226,7 +226,7 @@ You are **${ag.agentId}**. The daemon was degraded at boot \u2014 memory context
|
|
|
226
226
|
query = `last actions on ${projectName}`;
|
|
227
227
|
header = "## Resuming Session\nHere's where you left off:";
|
|
228
228
|
try {
|
|
229
|
-
const { buildCatchupBrief } = await import("../catchup-brief-
|
|
229
|
+
const { buildCatchupBrief } = await import("../catchup-brief-5ELWS6IF.js");
|
|
230
230
|
const brief = await buildCatchupBrief(
|
|
231
231
|
agentId,
|
|
232
232
|
projectName,
|
package/dist/lib/token-spend.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
|
+
evaluateGlobalSpendCap,
|
|
2
3
|
getAgentSpend,
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
getConfiguredGlobalSpendCap,
|
|
5
|
+
getPricing,
|
|
6
|
+
resolveGlobalSpendCapConfig
|
|
7
|
+
} from "../chunk-E5UHM2KN.js";
|
|
5
8
|
import "../chunk-BIM763ML.js";
|
|
6
9
|
import "../chunk-2I23RPSI.js";
|
|
7
10
|
import "../chunk-INT5PHNK.js";
|
|
@@ -13,6 +16,9 @@ import "../chunk-7Y5UDEVM.js";
|
|
|
13
16
|
import "../chunk-SHIICYJW.js";
|
|
14
17
|
import "../chunk-MLKGABMK.js";
|
|
15
18
|
export {
|
|
19
|
+
evaluateGlobalSpendCap,
|
|
16
20
|
getAgentSpend,
|
|
17
|
-
|
|
21
|
+
getConfiguredGlobalSpendCap,
|
|
22
|
+
getPricing,
|
|
23
|
+
resolveGlobalSpendCapConfig
|
|
18
24
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
registerAllTools
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-W7F3ZBHH.js";
|
|
4
4
|
import "../chunk-557C2IGL.js";
|
|
5
5
|
import "../chunk-JCBQQIUV.js";
|
|
6
6
|
import "../chunk-QQCZLNUC.js";
|
|
@@ -8,7 +8,7 @@ import "../chunk-CPXFQBBN.js";
|
|
|
8
8
|
import "../chunk-W7DHFGCB.js";
|
|
9
9
|
import "../chunk-ORU5LDIT.js";
|
|
10
10
|
import "../chunk-O6RMSGXQ.js";
|
|
11
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-TOEQZTYB.js";
|
|
12
12
|
import "../chunk-CRCB5S7I.js";
|
|
13
13
|
import "../chunk-MTHQR76V.js";
|
|
14
14
|
import "../chunk-RY7UV6CU.js";
|
|
@@ -26,7 +26,7 @@ import "../chunk-5EP4TCZ2.js";
|
|
|
26
26
|
import "../chunk-ZWWHEX3Y.js";
|
|
27
27
|
import "../chunk-IJTCNN5I.js";
|
|
28
28
|
import "../chunk-UJRZD77V.js";
|
|
29
|
-
import "../chunk-
|
|
29
|
+
import "../chunk-OLQYIAOQ.js";
|
|
30
30
|
import "../chunk-HMP5VT6A.js";
|
|
31
31
|
import "../chunk-QXXG2MCZ.js";
|
|
32
32
|
import "../chunk-MNLSPTWM.js";
|
|
@@ -34,7 +34,7 @@ import "../chunk-MTX3FQRR.js";
|
|
|
34
34
|
import "../chunk-SPCO7SNH.js";
|
|
35
35
|
import "../chunk-QAYGX7KA.js";
|
|
36
36
|
import "../chunk-DDA7IAWM.js";
|
|
37
|
-
import "../chunk-
|
|
37
|
+
import "../chunk-E5UHM2KN.js";
|
|
38
38
|
import "../chunk-3OEVDGIY.js";
|
|
39
39
|
import "../chunk-5QJFZYDD.js";
|
|
40
40
|
import "../chunk-67547XFJ.js";
|
|
@@ -42,8 +42,8 @@ import "../chunk-X2FHTDIU.js";
|
|
|
42
42
|
import "../chunk-SSC7EKY2.js";
|
|
43
43
|
import "../chunk-N5ACQ7C2.js";
|
|
44
44
|
import "../chunk-75H4R62K.js";
|
|
45
|
-
import "../chunk-
|
|
46
|
-
import "../chunk-
|
|
45
|
+
import "../chunk-IJYBKQDJ.js";
|
|
46
|
+
import "../chunk-TXUSQZLH.js";
|
|
47
47
|
import "../chunk-KQ4Z2G24.js";
|
|
48
48
|
import "../chunk-L3TB7CC3.js";
|
|
49
49
|
import "../chunk-FZALT2G7.js";
|
|
@@ -71,7 +71,7 @@ import "../chunk-5JILQMRS.js";
|
|
|
71
71
|
import "../chunk-YL5S6I3R.js";
|
|
72
72
|
import "../chunk-NPAGBSEN.js";
|
|
73
73
|
import "../chunk-MZ2MBZ3E.js";
|
|
74
|
-
import "../chunk-
|
|
74
|
+
import "../chunk-CASOKILE.js";
|
|
75
75
|
import "../chunk-AB4PAQYK.js";
|
|
76
76
|
import "../chunk-KKZPF6YI.js";
|
|
77
77
|
import "../chunk-CHCA3ZM2.js";
|
package/dist/mcp/server.js
CHANGED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from "../chunk-WCGNCH3Q.js";
|
|
11
11
|
import {
|
|
12
12
|
registerAllTools
|
|
13
|
-
} from "../chunk-
|
|
13
|
+
} from "../chunk-W7F3ZBHH.js";
|
|
14
14
|
import "../chunk-557C2IGL.js";
|
|
15
15
|
import "../chunk-JCBQQIUV.js";
|
|
16
16
|
import "../chunk-QQCZLNUC.js";
|
|
@@ -18,7 +18,7 @@ import "../chunk-CPXFQBBN.js";
|
|
|
18
18
|
import "../chunk-W7DHFGCB.js";
|
|
19
19
|
import "../chunk-ORU5LDIT.js";
|
|
20
20
|
import "../chunk-O6RMSGXQ.js";
|
|
21
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-TOEQZTYB.js";
|
|
22
22
|
import "../chunk-CRCB5S7I.js";
|
|
23
23
|
import "../chunk-MTHQR76V.js";
|
|
24
24
|
import "../chunk-RY7UV6CU.js";
|
|
@@ -41,7 +41,7 @@ import "../chunk-5EP4TCZ2.js";
|
|
|
41
41
|
import "../chunk-ZWWHEX3Y.js";
|
|
42
42
|
import "../chunk-IJTCNN5I.js";
|
|
43
43
|
import "../chunk-UJRZD77V.js";
|
|
44
|
-
import "../chunk-
|
|
44
|
+
import "../chunk-OLQYIAOQ.js";
|
|
45
45
|
import "../chunk-HMP5VT6A.js";
|
|
46
46
|
import "../chunk-QXXG2MCZ.js";
|
|
47
47
|
import "../chunk-MNLSPTWM.js";
|
|
@@ -49,7 +49,7 @@ import "../chunk-MTX3FQRR.js";
|
|
|
49
49
|
import "../chunk-SPCO7SNH.js";
|
|
50
50
|
import "../chunk-QAYGX7KA.js";
|
|
51
51
|
import "../chunk-DDA7IAWM.js";
|
|
52
|
-
import "../chunk-
|
|
52
|
+
import "../chunk-E5UHM2KN.js";
|
|
53
53
|
import "../chunk-3OEVDGIY.js";
|
|
54
54
|
import "../chunk-5QJFZYDD.js";
|
|
55
55
|
import "../chunk-67547XFJ.js";
|
|
@@ -57,8 +57,8 @@ import "../chunk-X2FHTDIU.js";
|
|
|
57
57
|
import "../chunk-SSC7EKY2.js";
|
|
58
58
|
import "../chunk-N5ACQ7C2.js";
|
|
59
59
|
import "../chunk-75H4R62K.js";
|
|
60
|
-
import "../chunk-
|
|
61
|
-
import "../chunk-
|
|
60
|
+
import "../chunk-IJYBKQDJ.js";
|
|
61
|
+
import "../chunk-TXUSQZLH.js";
|
|
62
62
|
import "../chunk-KQ4Z2G24.js";
|
|
63
63
|
import "../chunk-L3TB7CC3.js";
|
|
64
64
|
import "../chunk-FZALT2G7.js";
|
|
@@ -88,7 +88,7 @@ import "../chunk-5JILQMRS.js";
|
|
|
88
88
|
import "../chunk-YL5S6I3R.js";
|
|
89
89
|
import "../chunk-NPAGBSEN.js";
|
|
90
90
|
import "../chunk-MZ2MBZ3E.js";
|
|
91
|
-
import "../chunk-
|
|
91
|
+
import "../chunk-CASOKILE.js";
|
|
92
92
|
import "../chunk-AB4PAQYK.js";
|
|
93
93
|
import {
|
|
94
94
|
disposeStore,
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
journalDispatchIntent,
|
|
7
7
|
registerCreateTask,
|
|
8
8
|
updateDispatchJournalEntry
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-OLQYIAOQ.js";
|
|
10
10
|
import "../../chunk-HMP5VT6A.js";
|
|
11
11
|
import "../../chunk-5JILQMRS.js";
|
|
12
12
|
import "../../chunk-YL5S6I3R.js";
|
package/dist/tui/App.js
CHANGED
|
@@ -64,7 +64,7 @@ import process9 from "process";
|
|
|
64
64
|
import process8 from "process";
|
|
65
65
|
import React6 from "react";
|
|
66
66
|
|
|
67
|
-
// node_modules/es-toolkit/dist/function/debounce.mjs
|
|
67
|
+
// ../../../Users/exeai/exe-os/node_modules/es-toolkit/dist/function/debounce.mjs
|
|
68
68
|
function debounce(func, debounceMs, { signal, edges } = {}) {
|
|
69
69
|
let pendingThis = void 0;
|
|
70
70
|
let pendingArgs = null;
|
|
@@ -126,7 +126,7 @@ function debounce(func, debounceMs, { signal, edges } = {}) {
|
|
|
126
126
|
return debounced;
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
// node_modules/es-toolkit/dist/compat/function/debounce.mjs
|
|
129
|
+
// ../../../Users/exeai/exe-os/node_modules/es-toolkit/dist/compat/function/debounce.mjs
|
|
130
130
|
function debounce2(func, debounceMs = 0, options = {}) {
|
|
131
131
|
if (typeof options !== "object") {
|
|
132
132
|
options = {};
|
|
@@ -170,7 +170,7 @@ function debounce2(func, debounceMs = 0, options = {}) {
|
|
|
170
170
|
return debounced;
|
|
171
171
|
}
|
|
172
172
|
|
|
173
|
-
// node_modules/es-toolkit/dist/compat/function/throttle.mjs
|
|
173
|
+
// ../../../Users/exeai/exe-os/node_modules/es-toolkit/dist/compat/function/throttle.mjs
|
|
174
174
|
function throttle(func, throttleMs = 0, options = {}) {
|
|
175
175
|
const { leading = true, trailing = true } = options;
|
|
176
176
|
return debounce2(func, throttleMs, {
|
|
@@ -184,7 +184,7 @@ function throttle(func, throttleMs = 0, options = {}) {
|
|
|
184
184
|
import ansiEscapes3 from "ansi-escapes";
|
|
185
185
|
import isInCi2 from "is-in-ci";
|
|
186
186
|
|
|
187
|
-
// node_modules/auto-bind/index.js
|
|
187
|
+
// ../../../Users/exeai/exe-os/node_modules/auto-bind/index.js
|
|
188
188
|
var getAllProperties = (object) => {
|
|
189
189
|
const properties = /* @__PURE__ */ new Set();
|
|
190
190
|
do {
|
|
@@ -220,7 +220,7 @@ function autoBind(self, { include, exclude } = {}) {
|
|
|
220
220
|
// src/tui/ink/ink.js
|
|
221
221
|
import signalExit from "signal-exit";
|
|
222
222
|
|
|
223
|
-
// node_modules/patch-console/dist/index.js
|
|
223
|
+
// ../../../Users/exeai/exe-os/node_modules/patch-console/dist/index.js
|
|
224
224
|
import { PassThrough } from "stream";
|
|
225
225
|
var consoleMethods = [
|
|
226
226
|
"assert",
|
|
@@ -269,7 +269,7 @@ var dist_default = patchConsole;
|
|
|
269
269
|
// src/tui/ink/ink.js
|
|
270
270
|
import { LegacyRoot, ConcurrentRoot } from "react-reconciler/constants.js";
|
|
271
271
|
|
|
272
|
-
// node_modules/yoga-layout/dist/binaries/yoga-wasm-base64-esm.js
|
|
272
|
+
// ../../../Users/exeai/exe-os/node_modules/yoga-layout/dist/binaries/yoga-wasm-base64-esm.js
|
|
273
273
|
var loadYoga = (() => {
|
|
274
274
|
var _scriptDir = import.meta.url;
|
|
275
275
|
return (function(loadYoga2) {
|
|
@@ -1500,7 +1500,7 @@ var loadYoga = (() => {
|
|
|
1500
1500
|
})();
|
|
1501
1501
|
var yoga_wasm_base64_esm_default = loadYoga;
|
|
1502
1502
|
|
|
1503
|
-
// node_modules/yoga-layout/dist/src/generated/YGEnums.js
|
|
1503
|
+
// ../../../Users/exeai/exe-os/node_modules/yoga-layout/dist/src/generated/YGEnums.js
|
|
1504
1504
|
var Align = /* @__PURE__ */ (function(Align2) {
|
|
1505
1505
|
Align2[Align2["Auto"] = 0] = "Auto";
|
|
1506
1506
|
Align2[Align2["FlexStart"] = 1] = "FlexStart";
|
|
@@ -1703,7 +1703,7 @@ var constants = {
|
|
|
1703
1703
|
};
|
|
1704
1704
|
var YGEnums_default = constants;
|
|
1705
1705
|
|
|
1706
|
-
// node_modules/yoga-layout/dist/src/wrapAssembly.js
|
|
1706
|
+
// ../../../Users/exeai/exe-os/node_modules/yoga-layout/dist/src/wrapAssembly.js
|
|
1707
1707
|
function wrapAssembly(lib) {
|
|
1708
1708
|
function patch(prototype, name, fn) {
|
|
1709
1709
|
const original = prototype[name];
|
|
@@ -1804,14 +1804,14 @@ function wrapAssembly(lib) {
|
|
|
1804
1804
|
};
|
|
1805
1805
|
}
|
|
1806
1806
|
|
|
1807
|
-
// node_modules/yoga-layout/dist/src/index.js
|
|
1807
|
+
// ../../../Users/exeai/exe-os/node_modules/yoga-layout/dist/src/index.js
|
|
1808
1808
|
var Yoga = wrapAssembly(await yoga_wasm_base64_esm_default());
|
|
1809
1809
|
var src_default = Yoga;
|
|
1810
1810
|
|
|
1811
1811
|
// src/tui/ink/ink.js
|
|
1812
1812
|
import wrapAnsi2 from "wrap-ansi";
|
|
1813
1813
|
|
|
1814
|
-
// node_modules/terminal-size/index.js
|
|
1814
|
+
// ../../../Users/exeai/exe-os/node_modules/terminal-size/index.js
|
|
1815
1815
|
import process2 from "process";
|
|
1816
1816
|
import { execFileSync } from "child_process";
|
|
1817
1817
|
import fs from "fs";
|
|
@@ -2934,7 +2934,7 @@ var reconciler_default = createReconciler({
|
|
|
2934
2934
|
// src/tui/ink/render-node-to-output.js
|
|
2935
2935
|
import widestLine2 from "widest-line";
|
|
2936
2936
|
|
|
2937
|
-
// node_modules/indent-string/index.js
|
|
2937
|
+
// ../../../Users/exeai/exe-os/node_modules/indent-string/index.js
|
|
2938
2938
|
function indentString(string, count = 1, options = {}) {
|
|
2939
2939
|
const {
|
|
2940
2940
|
indent = " ",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askexenow/exe-os",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.331",
|
|
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,6 +1,20 @@
|
|
|
1
1
|
{
|
|
2
|
-
"current": "0.9.
|
|
2
|
+
"current": "0.9.331",
|
|
3
3
|
"notes": {
|
|
4
|
+
"0.9.331": {
|
|
5
|
+
"version": "0.9.331",
|
|
6
|
+
"date": "2026-07-04",
|
|
7
|
+
"features": [],
|
|
8
|
+
"fixes": [
|
|
9
|
+
"non-chat/non-build open bug batch"
|
|
10
|
+
],
|
|
11
|
+
"security": [],
|
|
12
|
+
"other": [
|
|
13
|
+
"release: bump exe-os to 0.9.331 (#324)",
|
|
14
|
+
"add Codex PR review workflow (self-hosted, no App/webhook)"
|
|
15
|
+
],
|
|
16
|
+
"migration_notes": []
|
|
17
|
+
},
|
|
4
18
|
"0.9.330": {
|
|
5
19
|
"version": "0.9.330",
|
|
6
20
|
"date": "2026-07-04",
|
|
@@ -113,20 +127,6 @@
|
|
|
113
127
|
],
|
|
114
128
|
"other": [],
|
|
115
129
|
"migration_notes": []
|
|
116
|
-
},
|
|
117
|
-
"0.9.326": {
|
|
118
|
-
"version": "0.9.326",
|
|
119
|
-
"date": "2026-07-04",
|
|
120
|
-
"features": [],
|
|
121
|
-
"fixes": [
|
|
122
|
-
"OTel collector now exports traces, metrics, and logs to ClickHouse otel_* tables with explicit credentials/env and clickhouse health dependency (bug aa22ce82)",
|
|
123
|
-
"Agent runtime config strips ANSI/style artifacts from model IDs and stores canonical Fable 5 model names (bug 9982d72d)",
|
|
124
|
-
"Customer-owned feature shipped/fixed status sync now uses the admin support route when an admin token is configured, so customer boot shipped notifications can fire (bug c4b2ffaf)",
|
|
125
|
-
"Daemon boot recovers from a deleted launch cwd and task enforcement treats getcwd/Auto-reconnect-exhausted panes as dead MCP zombies, killing and respawning instead of black-holing dispatch (bug 7ca6b08b)"
|
|
126
|
-
],
|
|
127
|
-
"security": [],
|
|
128
|
-
"other": [],
|
|
129
|
-
"migration_notes": []
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
}
|
|
File without changes
|