nexus-agents 8.47.8 → 8.47.10
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/{chunk-46MCNHNQ.js → chunk-CXT433H4.js} +3 -3
- package/dist/{chunk-4U4KH5AD.js → chunk-KNZKA3MI.js} +2 -2
- package/dist/{chunk-4U4KH5AD.js.map → chunk-KNZKA3MI.js.map} +1 -1
- package/dist/{chunk-3FKJFPCE.js → chunk-LBODVTW5.js} +41 -19
- package/dist/{chunk-3FKJFPCE.js.map → chunk-LBODVTW5.js.map} +1 -1
- package/dist/{chunk-OUJPQ5GT.js → chunk-OKPEXBOI.js} +2 -2
- package/dist/{chunk-OV6GG2BF.js → chunk-Y3FWKEHT.js} +43 -20
- package/dist/chunk-Y3FWKEHT.js.map +1 -0
- package/dist/{chunk-KUEOEFAT.js → chunk-YVXX6EN2.js} +2 -2
- package/dist/cli.js +11 -7
- package/dist/cli.js.map +1 -1
- package/dist/{consensus-vote-QQLNEPYL.js → consensus-vote-777WYHSY.js} +4 -4
- package/dist/{improvement-review-KTRSWZWK.js → improvement-review-UTVUJVBH.js} +4 -4
- package/dist/index.d.ts +10 -0
- package/dist/index.js +6 -6
- package/dist/{setup-data-dir-4SRJZ35Z.js → setup-data-dir-VK7WVGLP.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-OV6GG2BF.js.map +0 -1
- /package/dist/{chunk-46MCNHNQ.js.map → chunk-CXT433H4.js.map} +0 -0
- /package/dist/{chunk-OUJPQ5GT.js.map → chunk-OKPEXBOI.js.map} +0 -0
- /package/dist/{chunk-KUEOEFAT.js.map → chunk-YVXX6EN2.js.map} +0 -0
- /package/dist/{consensus-vote-QQLNEPYL.js.map → consensus-vote-777WYHSY.js.map} +0 -0
- /package/dist/{improvement-review-KTRSWZWK.js.map → improvement-review-UTVUJVBH.js.map} +0 -0
- /package/dist/{setup-data-dir-4SRJZ35Z.js.map → setup-data-dir-VK7WVGLP.js.map} +0 -0
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
NODE_ENGINE_RANGE,
|
|
9
9
|
VERSION,
|
|
10
10
|
isNodeVersionSupported
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-KNZKA3MI.js";
|
|
12
12
|
import {
|
|
13
13
|
claimGlobalRegistry
|
|
14
14
|
} from "./chunk-QOKB6MWY.js";
|
|
@@ -1247,7 +1247,7 @@ async function runDoctorFix(result) {
|
|
|
1247
1247
|
writeLine2("\u2500".repeat(40));
|
|
1248
1248
|
let fixCount = 0;
|
|
1249
1249
|
if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
|
|
1250
|
-
const { initDataDirectories: initDataDirectories2, describeDataDirFix: describeDataDirFix2 } = await import("./setup-data-dir-
|
|
1250
|
+
const { initDataDirectories: initDataDirectories2, describeDataDirFix: describeDataDirFix2 } = await import("./setup-data-dir-VK7WVGLP.js");
|
|
1251
1251
|
const outcome = describeDataDirFix2(initDataDirectories2());
|
|
1252
1252
|
writeLine2(outcome.line);
|
|
1253
1253
|
if (outcome.counted) fixCount++;
|
|
@@ -1349,4 +1349,4 @@ export {
|
|
|
1349
1349
|
startStdioServer,
|
|
1350
1350
|
closeServer
|
|
1351
1351
|
};
|
|
1352
|
-
//# sourceMappingURL=chunk-
|
|
1352
|
+
//# sourceMappingURL=chunk-CXT433H4.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/version.ts
|
|
2
2
|
import semver from "semver";
|
|
3
|
-
var VERSION = true ? "8.47.
|
|
3
|
+
var VERSION = true ? "8.47.10" : "dev";
|
|
4
4
|
var NODE_ENGINE_RANGE = ">=22.5.0";
|
|
5
5
|
function isNodeVersionSupported(version) {
|
|
6
6
|
return semver.satisfies(version, NODE_ENGINE_RANGE);
|
|
@@ -11,4 +11,4 @@ export {
|
|
|
11
11
|
NODE_ENGINE_RANGE,
|
|
12
12
|
isNodeVersionSupported
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=chunk-
|
|
14
|
+
//# sourceMappingURL=chunk-KNZKA3MI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/version.ts"],"sourcesContent":["/**\n * nexus-agents - Version constant\n *\n * Injected at build time via tsup define from package.json.\n * Do NOT edit VERSION manually — it is replaced during build.\n */\n\nimport semver from 'semver';\n\ndeclare const __NEXUS_VERSION__: string;\n\nexport const VERSION: string = typeof __NEXUS_VERSION__ !== 'undefined' ? __NEXUS_VERSION__ : 'dev';\n\n/** Supported Node.js versions. Pinned to package.json by a regression test. */\nexport const NODE_ENGINE_RANGE = '>=22.5.0';\n\n/** Returns whether a Node.js version satisfies the package engine requirement. */\nexport function isNodeVersionSupported(version: string): boolean {\n return semver.satisfies(version, NODE_ENGINE_RANGE);\n}\n"],"mappings":";AAOA,OAAO,YAAY;AAIZ,IAAM,UAAkB,OAA2C,
|
|
1
|
+
{"version":3,"sources":["../src/version.ts"],"sourcesContent":["/**\n * nexus-agents - Version constant\n *\n * Injected at build time via tsup define from package.json.\n * Do NOT edit VERSION manually — it is replaced during build.\n */\n\nimport semver from 'semver';\n\ndeclare const __NEXUS_VERSION__: string;\n\nexport const VERSION: string = typeof __NEXUS_VERSION__ !== 'undefined' ? __NEXUS_VERSION__ : 'dev';\n\n/** Supported Node.js versions. Pinned to package.json by a regression test. */\nexport const NODE_ENGINE_RANGE = '>=22.5.0';\n\n/** Returns whether a Node.js version satisfies the package engine requirement. */\nexport function isNodeVersionSupported(version: string): boolean {\n return semver.satisfies(version, NODE_ENGINE_RANGE);\n}\n"],"mappings":";AAOA,OAAO,YAAY;AAIZ,IAAM,UAAkB,OAA2C,YAAoB;AAGvF,IAAM,oBAAoB;AAG1B,SAAS,uBAAuB,SAA0B;AAC/D,SAAO,OAAO,UAAU,SAAS,iBAAiB;AACpD;","names":[]}
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
import {
|
|
22
22
|
DEFAULT_TASK_TTL_MS,
|
|
23
23
|
clampTaskTtl
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-CXT433H4.js";
|
|
25
25
|
import {
|
|
26
26
|
executeExpert
|
|
27
27
|
} from "./chunk-7QY3RIIY.js";
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
isAbandonedJob,
|
|
43
43
|
isMeasuredBuildVersion,
|
|
44
44
|
isRateLimitError,
|
|
45
|
-
|
|
45
|
+
listJobsWithDiagnostics,
|
|
46
46
|
listTaskStateIds,
|
|
47
47
|
readJobResult,
|
|
48
48
|
readTaskState,
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
toJobSummary,
|
|
56
56
|
updateStage,
|
|
57
57
|
writeJobCancelled
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-Y3FWKEHT.js";
|
|
59
59
|
import {
|
|
60
60
|
allOf,
|
|
61
61
|
anyOf
|
|
@@ -75,7 +75,7 @@ import {
|
|
|
75
75
|
} from "./chunk-7I3LY4HJ.js";
|
|
76
76
|
import {
|
|
77
77
|
withPrerequisite
|
|
78
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-OKPEXBOI.js";
|
|
79
79
|
import {
|
|
80
80
|
NOOP_NOTIFIER,
|
|
81
81
|
RateLimiter,
|
|
@@ -100,7 +100,7 @@ import {
|
|
|
100
100
|
withAuditTrail,
|
|
101
101
|
withProgressHeartbeat,
|
|
102
102
|
wrapToolWithTimeout
|
|
103
|
-
} from "./chunk-
|
|
103
|
+
} from "./chunk-YVXX6EN2.js";
|
|
104
104
|
import {
|
|
105
105
|
createAuditTrail,
|
|
106
106
|
createGraphAuditBridge,
|
|
@@ -43571,12 +43571,14 @@ async function resolveFileScope(input) {
|
|
|
43571
43571
|
async function collectUsages(input, scope, limit, ctx) {
|
|
43572
43572
|
const results = [];
|
|
43573
43573
|
let total = 0;
|
|
43574
|
+
let unreadable = 0;
|
|
43574
43575
|
for (const file of scope.files) {
|
|
43575
43576
|
let src;
|
|
43576
43577
|
try {
|
|
43577
43578
|
src = await readFile3(file, "utf8");
|
|
43578
43579
|
} catch {
|
|
43579
43580
|
ctx.logger.warn(`search_usages: skipped unreadable file ${file}`);
|
|
43581
|
+
unreadable += 1;
|
|
43580
43582
|
continue;
|
|
43581
43583
|
}
|
|
43582
43584
|
const lang = input.lang ?? inferLang(file);
|
|
@@ -43586,11 +43588,15 @@ async function collectUsages(input, scope, limit, ctx) {
|
|
|
43586
43588
|
if (results.length < limit) results.push({ file: rel, ...match });
|
|
43587
43589
|
}
|
|
43588
43590
|
}
|
|
43589
|
-
return { results, total };
|
|
43591
|
+
return { results, total, unreadable };
|
|
43590
43592
|
}
|
|
43591
|
-
function applyScopeTruncation(payload, scope) {
|
|
43592
|
-
if (scope.skippedDirs === 0 && scope.omittedFiles === 0) return;
|
|
43593
|
+
function applyScopeTruncation(payload, scope, unreadable) {
|
|
43594
|
+
if (scope.skippedDirs === 0 && scope.omittedFiles === 0 && unreadable === 0) return;
|
|
43593
43595
|
const reasons = [];
|
|
43596
|
+
if (unreadable > 0) {
|
|
43597
|
+
payload["filesUnreadable"] = unreadable;
|
|
43598
|
+
reasons.push(`${String(unreadable)} file(s) could not be read and were not searched`);
|
|
43599
|
+
}
|
|
43594
43600
|
if (scope.skippedDirs > 0) {
|
|
43595
43601
|
payload["skippedDirs"] = scope.skippedDirs;
|
|
43596
43602
|
const plural = scope.skippedDirs === 1 ? "y was" : "ies were";
|
|
@@ -43612,7 +43618,10 @@ function buildOutput2(input, scope, limit, collected) {
|
|
|
43612
43618
|
symbol: input.symbol,
|
|
43613
43619
|
scope: input.path !== void 0 ? { path: input.path } : { dir: input.dir ?? "." },
|
|
43614
43620
|
lang: input.lang ?? "inferred",
|
|
43615
|
-
|
|
43621
|
+
// Files actually READ, not files intended to be read (#6038). The old
|
|
43622
|
+
// value was the size of the candidate set, so it corroborated a zero-match
|
|
43623
|
+
// answer that came from never opening anything.
|
|
43624
|
+
filesScanned: scope.files.length - collected.unreadable,
|
|
43616
43625
|
totalMatches: collected.total,
|
|
43617
43626
|
results: collected.results
|
|
43618
43627
|
};
|
|
@@ -43621,7 +43630,7 @@ function buildOutput2(input, scope, limit, collected) {
|
|
|
43621
43630
|
payload["omittedMatches"] = collected.total - collected.results.length;
|
|
43622
43631
|
payload["limit"] = limit;
|
|
43623
43632
|
}
|
|
43624
|
-
applyScopeTruncation(payload, scope);
|
|
43633
|
+
applyScopeTruncation(payload, scope, collected.unreadable);
|
|
43625
43634
|
return JSON.stringify(payload, null, 2);
|
|
43626
43635
|
}
|
|
43627
43636
|
async function searchUsagesHandler(args, ctx) {
|
|
@@ -43937,13 +43946,16 @@ function listJobsFromTaskState(customDir) {
|
|
|
43937
43946
|
}
|
|
43938
43947
|
return summaries;
|
|
43939
43948
|
}
|
|
43940
|
-
function
|
|
43941
|
-
const sidecar =
|
|
43949
|
+
function resolveJobListing(customDir) {
|
|
43950
|
+
const sidecar = listJobsWithDiagnostics();
|
|
43942
43951
|
if (!isTaskStateJobSource()) return sidecar;
|
|
43943
43952
|
const byId = /* @__PURE__ */ new Map();
|
|
43944
|
-
for (const summary of sidecar) byId.set(summary.jobId, summary);
|
|
43953
|
+
for (const summary of sidecar.jobs) byId.set(summary.jobId, summary);
|
|
43945
43954
|
for (const summary of listJobsFromTaskState(customDir)) byId.set(summary.jobId, summary);
|
|
43946
|
-
return
|
|
43955
|
+
return {
|
|
43956
|
+
jobs: [...byId.values()].sort((a, b) => b.createdAt.localeCompare(a.createdAt)),
|
|
43957
|
+
diagnostics: sidecar.diagnostics
|
|
43958
|
+
};
|
|
43947
43959
|
}
|
|
43948
43960
|
|
|
43949
43961
|
// src/mcp/tools/get-job-result-tool.ts
|
|
@@ -44042,7 +44054,8 @@ function listJobsHandler(args) {
|
|
|
44042
44054
|
);
|
|
44043
44055
|
}
|
|
44044
44056
|
const { toolName, status, limit } = parsed.data;
|
|
44045
|
-
const
|
|
44057
|
+
const listing = resolveJobListing();
|
|
44058
|
+
const all = listing.jobs;
|
|
44046
44059
|
const filtered = all.filter((j) => {
|
|
44047
44060
|
if (toolName !== void 0 && j.toolName !== toolName) return false;
|
|
44048
44061
|
if (status !== void 0 && j.status !== status) return false;
|
|
@@ -44050,10 +44063,19 @@ function listJobsHandler(args) {
|
|
|
44050
44063
|
});
|
|
44051
44064
|
const cap = limit ?? MAX_LIST_JOBS_RESULTS;
|
|
44052
44065
|
const trimmed = filtered.slice(0, cap);
|
|
44066
|
+
const { dirUnreadable, unparseableRecords } = listing.diagnostics;
|
|
44053
44067
|
const response = {
|
|
44054
44068
|
count: trimmed.length,
|
|
44055
44069
|
truncated: filtered.length > trimmed.length,
|
|
44056
|
-
jobs: trimmed
|
|
44070
|
+
jobs: trimmed,
|
|
44071
|
+
// #6038: `truncated` describes the LIMIT CAP only, so it positively
|
|
44072
|
+
// asserted completeness over a silently lossy read. `count: 0,
|
|
44073
|
+
// truncated: false` was returned for an unreadable jobs directory and for
|
|
44074
|
+
// sidecars that failed schema validation alike, and a caller without the
|
|
44075
|
+
// jobId has nothing to cross-check against. get_job_result already hardens
|
|
44076
|
+
// the single-job path with `found: false`; this is its list-shaped twin.
|
|
44077
|
+
...dirUnreadable ? { jobsDirUnreadable: true } : {},
|
|
44078
|
+
...unparseableRecords > 0 ? { unparseableRecords } : {}
|
|
44057
44079
|
};
|
|
44058
44080
|
return Promise.resolve(toolSuccess(JSON.stringify(response, null, 2)));
|
|
44059
44081
|
}
|
|
@@ -46140,7 +46162,7 @@ function buildVotingInput(plan, config) {
|
|
|
46140
46162
|
}
|
|
46141
46163
|
async function executeSingleVote(plan, config, log) {
|
|
46142
46164
|
try {
|
|
46143
|
-
const { executeVoting } = await import("./consensus-vote-
|
|
46165
|
+
const { executeVoting } = await import("./consensus-vote-777WYHSY.js");
|
|
46144
46166
|
const input = buildVotingInput(plan, config);
|
|
46145
46167
|
const result = await executeVoting(input, log);
|
|
46146
46168
|
return parseVotingResult(result);
|
|
@@ -47935,7 +47957,7 @@ ${contextBlock}`;
|
|
|
47935
47957
|
const strategy = config.votingStrategy ?? "higher_order";
|
|
47936
47958
|
await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
|
|
47937
47959
|
try {
|
|
47938
|
-
const { executeVoting } = await import("./consensus-vote-
|
|
47960
|
+
const { executeVoting } = await import("./consensus-vote-777WYHSY.js");
|
|
47939
47961
|
const votingResult = await executeVoting(
|
|
47940
47962
|
{
|
|
47941
47963
|
proposal: buildVoteProposal(plan, research),
|
|
@@ -56676,4 +56698,4 @@ export {
|
|
|
56676
56698
|
startPipelineEventBridge,
|
|
56677
56699
|
shutdownPipelineEventBridge
|
|
56678
56700
|
};
|
|
56679
|
-
//# sourceMappingURL=chunk-
|
|
56701
|
+
//# sourceMappingURL=chunk-LBODVTW5.js.map
|