nexus-agents 4.29.3 → 4.29.4
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-JKLMPBSL.js → chunk-4AIIPSOD.js} +2 -2
- package/dist/{chunk-MEU6YH4G.js → chunk-DTKGR6NY.js} +3 -3
- package/dist/chunk-FCCDE2MC.js +7 -0
- package/dist/{chunk-IFL7MZQT.js → chunk-JL52FIXV.js} +2 -2
- package/dist/{chunk-DDE4TLD6.js → chunk-NIEIQARS.js} +3 -3
- package/dist/{chunk-F3E6ZZO3.js → chunk-XKVMHHAI.js} +87 -9
- package/dist/chunk-XKVMHHAI.js.map +1 -0
- package/dist/cli.js +7 -7
- package/dist/{consensus-vote-X7GYVWC7.js → consensus-vote-4BCQ4GRD.js} +4 -4
- package/dist/{improvement-review-V3XULZA6.js → improvement-review-LF27HN4A.js} +4 -4
- package/dist/index.js +7 -7
- package/dist/{setup-data-dir-R26GPW7G.js → setup-data-dir-2PDBROZJ.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-F3E6ZZO3.js.map +0 -1
- package/dist/chunk-FXUZW7IY.js +0 -7
- /package/dist/{chunk-JKLMPBSL.js.map → chunk-4AIIPSOD.js.map} +0 -0
- /package/dist/{chunk-MEU6YH4G.js.map → chunk-DTKGR6NY.js.map} +0 -0
- /package/dist/{chunk-FXUZW7IY.js.map → chunk-FCCDE2MC.js.map} +0 -0
- /package/dist/{chunk-IFL7MZQT.js.map → chunk-JL52FIXV.js.map} +0 -0
- /package/dist/{chunk-DDE4TLD6.js.map → chunk-NIEIQARS.js.map} +0 -0
- /package/dist/{consensus-vote-X7GYVWC7.js.map → consensus-vote-4BCQ4GRD.js.map} +0 -0
- /package/dist/{improvement-review-V3XULZA6.js.map → improvement-review-LF27HN4A.js.map} +0 -0
- /package/dist/{setup-data-dir-R26GPW7G.js.map → setup-data-dir-2PDBROZJ.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
VERSION
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FCCDE2MC.js";
|
|
4
4
|
import {
|
|
5
5
|
emitClawGuardViolation
|
|
6
6
|
} from "./chunk-RV57MIQU.js";
|
|
@@ -2116,4 +2116,4 @@ export {
|
|
|
2116
2116
|
VOTING_THRESHOLDS,
|
|
2117
2117
|
ConsensusMetricsSchema
|
|
2118
2118
|
};
|
|
2119
|
-
//# sourceMappingURL=chunk-
|
|
2119
|
+
//# sourceMappingURL=chunk-4AIIPSOD.js.map
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
toolSuccessStructured,
|
|
24
24
|
withProgressHeartbeat,
|
|
25
25
|
wrapToolWithTimeout
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-4AIIPSOD.js";
|
|
27
27
|
import {
|
|
28
28
|
assessPanelIndependence,
|
|
29
29
|
countDistinctModels,
|
|
@@ -6720,6 +6720,7 @@ function registerConsensusVoteTool(server, deps) {
|
|
|
6720
6720
|
}
|
|
6721
6721
|
|
|
6722
6722
|
export {
|
|
6723
|
+
VOTER_ROLES,
|
|
6723
6724
|
JobStatusSchema,
|
|
6724
6725
|
isAbandonedJob,
|
|
6725
6726
|
writeJobCancelled,
|
|
@@ -6737,7 +6738,6 @@ export {
|
|
|
6737
6738
|
DEFAULT_VOTE_TIMEOUT_MS,
|
|
6738
6739
|
isRateLimitError,
|
|
6739
6740
|
PersistentOutcomeStore,
|
|
6740
|
-
VOTER_ROLES,
|
|
6741
6741
|
NoAdapterError,
|
|
6742
6742
|
collectRealVotes,
|
|
6743
6743
|
VotingRoundPhaseSchema,
|
|
@@ -6803,4 +6803,4 @@ export {
|
|
|
6803
6803
|
CONSENSUS_VOTE_TOOL_SCHEMA,
|
|
6804
6804
|
registerConsensusVoteTool
|
|
6805
6805
|
};
|
|
6806
|
-
//# sourceMappingURL=chunk-
|
|
6806
|
+
//# sourceMappingURL=chunk-DTKGR6NY.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
toolStructuredError,
|
|
8
8
|
toolSuccessStructured,
|
|
9
9
|
wrapToolWithTimeout
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-4AIIPSOD.js";
|
|
11
11
|
import {
|
|
12
12
|
JsonlStore,
|
|
13
13
|
SECURITY_KEYWORDS,
|
|
@@ -2133,4 +2133,4 @@ export {
|
|
|
2133
2133
|
runImprovementReview,
|
|
2134
2134
|
registerImprovementReviewTool
|
|
2135
2135
|
};
|
|
2136
|
-
//# sourceMappingURL=chunk-
|
|
2136
|
+
//# sourceMappingURL=chunk-JL52FIXV.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-OQB3XC5O.js";
|
|
7
7
|
import {
|
|
8
8
|
VERSION
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-FCCDE2MC.js";
|
|
10
10
|
import {
|
|
11
11
|
capitalize
|
|
12
12
|
} from "./chunk-6T3EPABN.js";
|
|
@@ -1201,7 +1201,7 @@ async function runDoctorFix(result) {
|
|
|
1201
1201
|
writeLine2("\u2500".repeat(40));
|
|
1202
1202
|
let fixCount = 0;
|
|
1203
1203
|
if (!result.dataDirectory.rootExists || result.dataDirectory.subdirectories.some((d) => !d.exists || !d.writable)) {
|
|
1204
|
-
const { initDataDirectories: initDataDirectories2, describeDataDirFix: describeDataDirFix2 } = await import("./setup-data-dir-
|
|
1204
|
+
const { initDataDirectories: initDataDirectories2, describeDataDirFix: describeDataDirFix2 } = await import("./setup-data-dir-2PDBROZJ.js");
|
|
1205
1205
|
const outcome = describeDataDirFix2(initDataDirectories2());
|
|
1206
1206
|
writeLine2(outcome.line);
|
|
1207
1207
|
if (outcome.counted) fixCount++;
|
|
@@ -1303,4 +1303,4 @@ export {
|
|
|
1303
1303
|
startStdioServer,
|
|
1304
1304
|
closeServer
|
|
1305
1305
|
};
|
|
1306
|
-
//# sourceMappingURL=chunk-
|
|
1306
|
+
//# sourceMappingURL=chunk-NIEIQARS.js.map
|
|
@@ -21,12 +21,13 @@ import {
|
|
|
21
21
|
import {
|
|
22
22
|
DEFAULT_TASK_TTL_MS,
|
|
23
23
|
clampTaskTtl
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-NIEIQARS.js";
|
|
25
25
|
import {
|
|
26
26
|
executeExpert
|
|
27
27
|
} from "./chunk-XEGZYUPX.js";
|
|
28
28
|
import {
|
|
29
29
|
JobStatusSchema,
|
|
30
|
+
VOTER_ROLES,
|
|
30
31
|
abortJob,
|
|
31
32
|
checkSimulationAllowed,
|
|
32
33
|
collectRealVotes,
|
|
@@ -46,7 +47,7 @@ import {
|
|
|
46
47
|
simulationDeniedResult,
|
|
47
48
|
toJobSummary,
|
|
48
49
|
writeJobCancelled
|
|
49
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-DTKGR6NY.js";
|
|
50
51
|
import {
|
|
51
52
|
allOf
|
|
52
53
|
} from "./chunk-OQB3XC5O.js";
|
|
@@ -63,7 +64,7 @@ import {
|
|
|
63
64
|
} from "./chunk-UBWHBW7S.js";
|
|
64
65
|
import {
|
|
65
66
|
withPrerequisite
|
|
66
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-JL52FIXV.js";
|
|
67
68
|
import {
|
|
68
69
|
NOOP_NOTIFIER,
|
|
69
70
|
RateLimiter,
|
|
@@ -87,7 +88,7 @@ import {
|
|
|
87
88
|
withAuditTrail,
|
|
88
89
|
withProgressHeartbeat,
|
|
89
90
|
wrapToolWithTimeout
|
|
90
|
-
} from "./chunk-
|
|
91
|
+
} from "./chunk-4AIIPSOD.js";
|
|
91
92
|
import {
|
|
92
93
|
createAuditTrail,
|
|
93
94
|
createGraphAuditBridge,
|
|
@@ -871,6 +872,9 @@ function levenshtein(a, b) {
|
|
|
871
872
|
var positiveIntStr = z10.string().regex(/^\d+$/, "Must be a positive integer string");
|
|
872
873
|
var boolStr = z10.enum(["true", "false"]);
|
|
873
874
|
var floatStr = z10.string().regex(/^\d+(\.\d+)?$/, "Must be a non-negative number string");
|
|
875
|
+
var boolLooseStr = z10.string().refine((v) => ["true", "1", "false", "0"].includes(v.toLowerCase()), {
|
|
876
|
+
message: "Must be one of: true, false, 1, 0"
|
|
877
|
+
});
|
|
874
878
|
var NexusEnvSchema = z10.object({
|
|
875
879
|
// --- Timeouts ---
|
|
876
880
|
NEXUS_TIMEOUT_CLI: positiveIntStr.optional(),
|
|
@@ -996,9 +1000,77 @@ var NexusEnvSchema = z10.object({
|
|
|
996
1000
|
NEXUS_HOOK_VERBOSE: boolStr.optional(),
|
|
997
1001
|
NEXUS_SESSIONS_DB: z10.string().optional(),
|
|
998
1002
|
NEXUS_DISABLE_SESSIONS: boolStr.optional(),
|
|
999
|
-
NEXUS_DISABLE_METRICS: boolStr.optional()
|
|
1003
|
+
NEXUS_DISABLE_METRICS: boolStr.optional(),
|
|
1004
|
+
// --- Read by production code but previously unregistered (#5142) ---
|
|
1005
|
+
// Each type below was verified against the consuming call site, not inferred
|
|
1006
|
+
// from the name. Registering with a wrong type would replace "unknown
|
|
1007
|
+
// variable" with "invalid value" on a value that actually works — trading one
|
|
1008
|
+
// misreport for a worse one. Variables whose accepted set needed a judgement
|
|
1009
|
+
// call are tracked in docs/ops/env-schema-coverage-baseline.json instead.
|
|
1010
|
+
// Paths, URLs, tokens and term lists: any non-empty string is legal, so
|
|
1011
|
+
// z.string() is the accurate type rather than a permissive stand-in.
|
|
1012
|
+
NEXUS_CODEPR_TOKEN: z10.string().optional(),
|
|
1013
|
+
NEXUS_CUSTOM_API_BASE_URL: z10.string().optional(),
|
|
1014
|
+
NEXUS_CUSTOM_API_KEY: z10.string().optional(),
|
|
1015
|
+
NEXUS_CUSTOM_MODEL: z10.string().optional(),
|
|
1016
|
+
NEXUS_MODEL_REGISTRY_OVERLAY: z10.string().optional(),
|
|
1017
|
+
NEXUS_OPENAI_COMPAT_KEY: z10.string().optional(),
|
|
1018
|
+
NEXUS_OPENAI_COMPAT_URL: z10.string().optional(),
|
|
1019
|
+
NEXUS_OPENCODE_CONFIG: z10.string().optional(),
|
|
1020
|
+
NEXUS_PR_REVIEW_RECORDS_PATH: z10.string().optional(),
|
|
1021
|
+
NEXUS_SENSITIVE_REFS: z10.string().optional(),
|
|
1022
|
+
NEXUS_SUBPROCESS_EXTRA_ENV: z10.string().optional(),
|
|
1023
|
+
NEXUS_VOTE_RECORDS_PATH: z10.string().optional(),
|
|
1024
|
+
// parseIntEnv / parseInt consumers: a non-integer is discarded in favour of
|
|
1025
|
+
// the default, so reporting it as invalid tells the user their setting was
|
|
1026
|
+
// ignored rather than letting it fail silently.
|
|
1027
|
+
NEXUS_CI_HEALTH_MAX_BYTES: positiveIntStr.optional(),
|
|
1028
|
+
NEXUS_IMPROVEMENT_REVIEW_INTERVAL_MS: positiveIntStr.optional(),
|
|
1029
|
+
NEXUS_MCP_DEPTH: positiveIntStr.optional(),
|
|
1030
|
+
NEXUS_SUBPROCESS_DEPTH: positiveIntStr.optional(),
|
|
1031
|
+
// `0` is meaningful here — it disables async job dispatch entirely — so this
|
|
1032
|
+
// is non-negative, not positive (job-concurrency.ts:106 accepts `>= 0`).
|
|
1033
|
+
NEXUS_JOB_MAX_CONCURRENT_TOTAL: z10.string().regex(/^\d+$/, "Must be a non-negative integer string").optional(),
|
|
1034
|
+
// parseBoolEnv consumers (config/defaults-env.ts:50). The helper accepts
|
|
1035
|
+
// exactly true|1|false|0, case-insensitively — NOT yes/no/on/off, which fall
|
|
1036
|
+
// through to the default. Accepting a wider set here would tell the user
|
|
1037
|
+
// `yes` works when the code silently ignores it.
|
|
1038
|
+
NEXUS_IMPROVEMENT_REVIEW_FILE_ISSUES: boolLooseStr.optional(),
|
|
1039
|
+
NEXUS_NO_SCAFFOLD: boolLooseStr.optional(),
|
|
1040
|
+
NEXUS_TUNE_ENFORCE: boolLooseStr.optional(),
|
|
1041
|
+
NEXUS_VERSION_CHECK: boolLooseStr.optional(),
|
|
1042
|
+
// Lowercased before parsing, so mixed case is genuinely accepted.
|
|
1043
|
+
NEXUS_REPUTATION_GATING: z10.string().refine((v) => ["off", "audit", "enforce"].includes(v.toLowerCase()), {
|
|
1044
|
+
message: "Must be one of: off, audit, enforce"
|
|
1045
|
+
}).optional()
|
|
1000
1046
|
});
|
|
1001
1047
|
var KNOWN_NAMES = Object.keys(NexusEnvSchema.shape);
|
|
1048
|
+
var DYNAMIC_FAMILIES = [
|
|
1049
|
+
{
|
|
1050
|
+
// cli/voter-model-overrides.ts:24 — `NEXUS_VOTER_MODEL_${role.toUpperCase()}`
|
|
1051
|
+
prefix: "NEXUS_VOTER_MODEL_",
|
|
1052
|
+
suffixes: Object.keys(VOTER_ROLES).map((r) => r.toUpperCase())
|
|
1053
|
+
},
|
|
1054
|
+
{
|
|
1055
|
+
// mcp/jobs/job-concurrency.ts:85 — `NEXUS_JOB_MAX_CONCURRENT_${tool.toUpperCase()}`
|
|
1056
|
+
// The suffix is an arbitrary MCP tool name. Importing the tool registry here
|
|
1057
|
+
// would couple config to MCP and risk an import cycle, so the suffix is
|
|
1058
|
+
// matched structurally. The cost is honest and bounded: a misspelt TOOL name
|
|
1059
|
+
// in this one family is not flagged. The alternative — leaving the whole
|
|
1060
|
+
// family unregistered — misreports every CORRECT use, which is worse.
|
|
1061
|
+
prefix: "NEXUS_JOB_MAX_CONCURRENT_",
|
|
1062
|
+
suffixes: "any-identifier"
|
|
1063
|
+
}
|
|
1064
|
+
];
|
|
1065
|
+
function isDynamicFamilyMember(name) {
|
|
1066
|
+
return DYNAMIC_FAMILIES.some((family) => {
|
|
1067
|
+
if (!name.startsWith(family.prefix)) return false;
|
|
1068
|
+
const suffix = name.slice(family.prefix.length);
|
|
1069
|
+
if (suffix === "") return false;
|
|
1070
|
+
if (family.suffixes === "any-identifier") return /^[A-Z][A-Z0-9_]*$/.test(suffix);
|
|
1071
|
+
return family.suffixes.includes(suffix);
|
|
1072
|
+
});
|
|
1073
|
+
}
|
|
1002
1074
|
function suggestSimilar(name, known) {
|
|
1003
1075
|
let best = null;
|
|
1004
1076
|
let bestDist = 4;
|
|
@@ -1015,6 +1087,9 @@ function classifyEnvKeys(nexusKeys, env) {
|
|
|
1015
1087
|
const knownRecord = {};
|
|
1016
1088
|
const unknownVars = [];
|
|
1017
1089
|
for (const key of nexusKeys) {
|
|
1090
|
+
if (isDynamicFamilyMember(key)) {
|
|
1091
|
+
continue;
|
|
1092
|
+
}
|
|
1018
1093
|
if (KNOWN_NAMES.includes(key)) {
|
|
1019
1094
|
const value = env[key];
|
|
1020
1095
|
if (value !== void 0) {
|
|
@@ -47448,7 +47523,7 @@ ${contextBlock}`;
|
|
|
47448
47523
|
const strategy = config.votingStrategy ?? "higher_order";
|
|
47449
47524
|
await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
|
|
47450
47525
|
try {
|
|
47451
|
-
const { executeVoting } = await import("./consensus-vote-
|
|
47526
|
+
const { executeVoting } = await import("./consensus-vote-4BCQ4GRD.js");
|
|
47452
47527
|
const votingResult = await executeVoting(
|
|
47453
47528
|
{
|
|
47454
47529
|
proposal: buildVoteProposal(plan, research),
|
|
@@ -51985,6 +52060,7 @@ async function probeSource(source, includeModelIds) {
|
|
|
51985
52060
|
return {
|
|
51986
52061
|
transport: source.name,
|
|
51987
52062
|
ok: true,
|
|
52063
|
+
servesModels: ids.length > 0,
|
|
51988
52064
|
modelCount: ids.length,
|
|
51989
52065
|
sampleModelIds: ids.slice(0, 5),
|
|
51990
52066
|
...includeModelIds ? { modelIds: ids } : {}
|
|
@@ -51993,6 +52069,7 @@ async function probeSource(source, includeModelIds) {
|
|
|
51993
52069
|
return {
|
|
51994
52070
|
transport: source.name,
|
|
51995
52071
|
ok: false,
|
|
52072
|
+
servesModels: false,
|
|
51996
52073
|
modelCount: 0,
|
|
51997
52074
|
sampleModelIds: [],
|
|
51998
52075
|
error: error instanceof Error ? error.message : String(error)
|
|
@@ -52020,10 +52097,11 @@ async function listAvailableModelsHandler(args, deps, logger59) {
|
|
|
52020
52097
|
const transports = await Promise.all(sources.map((s) => probeSource(s, includeModelIds)));
|
|
52021
52098
|
const response = {
|
|
52022
52099
|
transports,
|
|
52023
|
-
healthyTransports: transports.filter((t) => t.
|
|
52100
|
+
healthyTransports: transports.filter((t) => t.servesModels).length,
|
|
52101
|
+
reachableTransports: transports.filter((t) => t.ok).length,
|
|
52024
52102
|
totalTransports: transports.length,
|
|
52025
52103
|
totalModels: transports.reduce((sum, t) => sum + t.modelCount, 0),
|
|
52026
|
-
note: "Probe results \u2014 existence only; the in-tree registry remains authoritative for pricing/capability."
|
|
52104
|
+
note: "Probe results \u2014 existence only; the in-tree registry remains authoritative for pricing/capability. healthyTransports counts transports that can serve a model; reachableTransports counts probes that merely succeeded."
|
|
52027
52105
|
};
|
|
52028
52106
|
logger59.debug("list_available_models probed transports", {
|
|
52029
52107
|
healthy: response.healthyTransports,
|
|
@@ -56073,4 +56151,4 @@ export {
|
|
|
56073
56151
|
shutdownFeedbackSubscriber,
|
|
56074
56152
|
createEventBusBridge
|
|
56075
56153
|
};
|
|
56076
|
-
//# sourceMappingURL=chunk-
|
|
56154
|
+
//# sourceMappingURL=chunk-XKVMHHAI.js.map
|