nexus-agents 8.60.1 → 8.60.2
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-HMKX2LPT.js → chunk-3UAEJN4N.js} +2 -2
- package/dist/{chunk-L6ZP2JI4.js → chunk-426AIY5F.js} +2 -2
- package/dist/{chunk-C5CRQ5EH.js → chunk-7JA62DNM.js} +2 -2
- package/dist/{chunk-GAEQEVSJ.js → chunk-Q3LSWYM5.js} +56 -21
- package/dist/{chunk-GAEQEVSJ.js.map → chunk-Q3LSWYM5.js.map} +1 -1
- package/dist/{chunk-O24AWSIT.js → chunk-RTEZ6OJY.js} +3 -3
- package/dist/{chunk-Y5V2ZZOL.js → chunk-TCEMOFIM.js} +3 -3
- package/dist/cli.js +7 -7
- package/dist/{consensus-vote-2G4X4JVF.js → consensus-vote-QMDRIAM7.js} +4 -4
- package/dist/{improvement-review-UG7RUEUT.js → improvement-review-GFC6TLLK.js} +4 -4
- package/dist/index.js +6 -6
- package/dist/{setup-data-dir-LLB3HLXF.js → setup-data-dir-CVZAQ4R6.js} +3 -3
- package/package.json +1 -1
- /package/dist/{chunk-HMKX2LPT.js.map → chunk-3UAEJN4N.js.map} +0 -0
- /package/dist/{chunk-L6ZP2JI4.js.map → chunk-426AIY5F.js.map} +0 -0
- /package/dist/{chunk-C5CRQ5EH.js.map → chunk-7JA62DNM.js.map} +0 -0
- /package/dist/{chunk-O24AWSIT.js.map → chunk-RTEZ6OJY.js.map} +0 -0
- /package/dist/{chunk-Y5V2ZZOL.js.map → chunk-TCEMOFIM.js.map} +0 -0
- /package/dist/{consensus-vote-2G4X4JVF.js.map → consensus-vote-QMDRIAM7.js.map} +0 -0
- /package/dist/{improvement-review-UG7RUEUT.js.map → improvement-review-GFC6TLLK.js.map} +0 -0
- /package/dist/{setup-data-dir-LLB3HLXF.js.map → setup-data-dir-CVZAQ4R6.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
VERSION
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7JA62DNM.js";
|
|
4
4
|
import {
|
|
5
5
|
CACHE_TIMEOUTS,
|
|
6
6
|
MCP_TIMEOUTS,
|
|
@@ -2115,4 +2115,4 @@ export {
|
|
|
2115
2115
|
DEFAULT_CONSENSUS_CONFIG,
|
|
2116
2116
|
ConsensusMetricsSchema
|
|
2117
2117
|
};
|
|
2118
|
-
//# sourceMappingURL=chunk-
|
|
2118
|
+
//# sourceMappingURL=chunk-3UAEJN4N.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
toolStructuredError,
|
|
8
8
|
toolSuccessStructured,
|
|
9
9
|
wrapToolWithTimeout
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-3UAEJN4N.js";
|
|
11
11
|
import {
|
|
12
12
|
JsonlStore,
|
|
13
13
|
SECURITY_KEYWORDS,
|
|
@@ -2282,4 +2282,4 @@ export {
|
|
|
2282
2282
|
runImprovementReview,
|
|
2283
2283
|
registerImprovementReviewTool
|
|
2284
2284
|
};
|
|
2285
|
-
//# sourceMappingURL=chunk-
|
|
2285
|
+
//# sourceMappingURL=chunk-426AIY5F.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/version.ts
|
|
2
2
|
import semver from "semver";
|
|
3
|
-
var VERSION = true ? "8.60.
|
|
3
|
+
var VERSION = true ? "8.60.2" : "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-7JA62DNM.js.map
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
import {
|
|
22
22
|
DEFAULT_TASK_TTL_MS,
|
|
23
23
|
clampTaskTtl
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-RTEZ6OJY.js";
|
|
25
25
|
import {
|
|
26
26
|
executeExpert
|
|
27
27
|
} from "./chunk-QBVYOOEI.js";
|
|
@@ -71,7 +71,7 @@ import {
|
|
|
71
71
|
updateStage,
|
|
72
72
|
withWarnings,
|
|
73
73
|
writeJobCancelled
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-TCEMOFIM.js";
|
|
75
75
|
import {
|
|
76
76
|
allOf,
|
|
77
77
|
anyOf
|
|
@@ -94,7 +94,7 @@ import {
|
|
|
94
94
|
} from "./chunk-DIV6TBCN.js";
|
|
95
95
|
import {
|
|
96
96
|
withPrerequisite
|
|
97
|
-
} from "./chunk-
|
|
97
|
+
} from "./chunk-426AIY5F.js";
|
|
98
98
|
import {
|
|
99
99
|
NOOP_NOTIFIER,
|
|
100
100
|
RateLimiter,
|
|
@@ -117,7 +117,7 @@ import {
|
|
|
117
117
|
toolSuccessStructured,
|
|
118
118
|
withProgressHeartbeat,
|
|
119
119
|
wrapToolWithTimeout
|
|
120
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-3UAEJN4N.js";
|
|
121
121
|
import {
|
|
122
122
|
EventTopics,
|
|
123
123
|
UNRESOLVED_MODEL_ID,
|
|
@@ -29561,6 +29561,10 @@ function dispatchAsyncRunWorkflow(deps, args) {
|
|
|
29561
29561
|
// `handleRunWorkflow` already encapsulates the full sync path (dry-run +
|
|
29562
29562
|
// validation + recording); recording its whole envelope as the job result
|
|
29563
29563
|
// preserves the success/error discriminator + stepResults for polling.
|
|
29564
|
+
// #5393: deliberately arity-2 — `handleRunWorkflow` drives
|
|
29565
|
+
// `executionEngine.execute`, which has no AbortSignal option, so taking the
|
|
29566
|
+
// signal here would flip `signalAccepted` to true with nothing reading it.
|
|
29567
|
+
// Threading it needs a phase-boundary gate in the engine first: #6305.
|
|
29564
29568
|
run: (_jobId, input) => handleRunWorkflow(deps, input),
|
|
29565
29569
|
toEnvelope: {
|
|
29566
29570
|
pending: (jobId) => successResponse({
|
|
@@ -37360,6 +37364,10 @@ function dispatchAsyncOrchestrate(params) {
|
|
|
37360
37364
|
// taskId, so get_job_result(jobId) resolves directly from the task-state
|
|
37361
37365
|
// log (orch-<ts>-<rand>) under the Stage-2 reader.
|
|
37362
37366
|
freshJobId: () => generateTaskId(),
|
|
37367
|
+
// #5393: deliberately arity-1 — the orchestrator pipeline behind
|
|
37368
|
+
// `runOrchestratePipelineAsJob` has no AbortSignal surface, so taking the
|
|
37369
|
+
// signal would flip `signalAccepted` to true with nothing reading it.
|
|
37370
|
+
// Stage-boundary gate first: #6305.
|
|
37363
37371
|
run: (jobId) => runOrchestratePipelineAsJob(jobId, params),
|
|
37364
37372
|
toEnvelope: {
|
|
37365
37373
|
pending: defaultPendingEnvelope,
|
|
@@ -41555,7 +41563,10 @@ function createEventCollector(events, enableAuditTrail, logger57, auditLogger) {
|
|
|
41555
41563
|
auditBridge?.(event);
|
|
41556
41564
|
};
|
|
41557
41565
|
}
|
|
41558
|
-
|
|
41566
|
+
function nodeStatusOf(nodeResults) {
|
|
41567
|
+
return nodeResults.some((n) => n.status === "failed") ? "failed" : "completed";
|
|
41568
|
+
}
|
|
41569
|
+
async function handleRunGraphWorkflow(input, logger57, auditLogger, signal) {
|
|
41559
41570
|
const startTime = getTimeProvider().now();
|
|
41560
41571
|
const resolved = resolveGraph(input.workflow, startTime);
|
|
41561
41572
|
if (!resolved.ok) return resolved.error;
|
|
@@ -41573,7 +41584,8 @@ async function handleRunGraphWorkflow(input, logger57, auditLogger) {
|
|
|
41573
41584
|
...checkpointStore !== void 0 ? { checkpointStore } : {},
|
|
41574
41585
|
executionId,
|
|
41575
41586
|
onEvent,
|
|
41576
|
-
timeout: CLI_SUBPROCESS_TIMEOUTS.graphWorkflowMs
|
|
41587
|
+
timeout: CLI_SUBPROCESS_TIMEOUTS.graphWorkflowMs,
|
|
41588
|
+
...signal !== void 0 ? { signal } : {}
|
|
41577
41589
|
});
|
|
41578
41590
|
const durationMs = getTimeProvider().now() - startTime;
|
|
41579
41591
|
const checkpointCount = checkpointStore?.size() ?? 0;
|
|
@@ -41586,10 +41598,9 @@ async function handleRunGraphWorkflow(input, logger57, auditLogger) {
|
|
|
41586
41598
|
checkpointCount
|
|
41587
41599
|
});
|
|
41588
41600
|
}
|
|
41589
|
-
const nodeStatus = result.value.nodeResults.some((n) => n.status === "failed") ? "failed" : "completed";
|
|
41590
41601
|
return {
|
|
41591
41602
|
workflow: input.workflow,
|
|
41592
|
-
status:
|
|
41603
|
+
status: nodeStatusOf(result.value.nodeResults),
|
|
41593
41604
|
finalState: result.value.finalState,
|
|
41594
41605
|
stepsExecuted: result.value.stepsExecuted,
|
|
41595
41606
|
nodesExecuted: result.value.nodeResults.length,
|
|
@@ -41610,8 +41621,8 @@ var GRAPH_WORKFLOW_SCHEMA = {
|
|
|
41610
41621
|
// shape is what the SDK parses, so the wrong-key trap must be here too.
|
|
41611
41622
|
...asyncDispatchInput("Ignored for the `list` sentinel.")
|
|
41612
41623
|
};
|
|
41613
|
-
async function executeGraphWorkflowBody(input, logger57, notifier, auditLogger) {
|
|
41614
|
-
const result = await handleRunGraphWorkflow(input, logger57, auditLogger);
|
|
41624
|
+
async function executeGraphWorkflowBody(input, logger57, notifier, auditLogger, signal) {
|
|
41625
|
+
const result = await handleRunGraphWorkflow(input, logger57, auditLogger, signal);
|
|
41615
41626
|
const succeeded = result.status === "completed";
|
|
41616
41627
|
notifier.info("run_graph_workflow", {
|
|
41617
41628
|
event: succeeded ? "graph_workflow_complete" : "graph_workflow_failed",
|
|
@@ -41648,7 +41659,9 @@ function createGraphWorkflowHandler(logger57, notifier, auditLogger) {
|
|
|
41648
41659
|
toolName: "run_graph_workflow",
|
|
41649
41660
|
input,
|
|
41650
41661
|
freshJobId: () => `gw-${randomUUID11()}`,
|
|
41651
|
-
|
|
41662
|
+
// #5393: arity 3 — `runAsJob` derives `signalAccepted` from `run.length`.
|
|
41663
|
+
// The signal reaches `executeGraph`, which gates every super-step on it.
|
|
41664
|
+
run: (_jobId, _input, signal) => executeGraphWorkflowBody(input, logger57, notifier, auditLogger, signal),
|
|
41652
41665
|
logger: logger57
|
|
41653
41666
|
});
|
|
41654
41667
|
}
|
|
@@ -42302,6 +42315,9 @@ function createExecuteSpecHandler(logger57) {
|
|
|
42302
42315
|
toolName: "execute_spec",
|
|
42303
42316
|
input,
|
|
42304
42317
|
freshJobId: () => `es-${randomUUID12()}`,
|
|
42318
|
+
// #5393: deliberately arity-0 — `executeSpec` has no AbortSignal option,
|
|
42319
|
+
// so taking the signal would flip `signalAccepted` to true with nothing
|
|
42320
|
+
// reading it. Step-boundary gate first: #6305.
|
|
42305
42321
|
run: () => createFullResponse(input, logger57),
|
|
42306
42322
|
logger: logger57
|
|
42307
42323
|
});
|
|
@@ -46250,7 +46266,7 @@ function buildVotingInput(plan, config) {
|
|
|
46250
46266
|
}
|
|
46251
46267
|
async function executeSingleVote(plan, config, log) {
|
|
46252
46268
|
try {
|
|
46253
|
-
const { executeVoting } = await import("./consensus-vote-
|
|
46269
|
+
const { executeVoting } = await import("./consensus-vote-QMDRIAM7.js");
|
|
46254
46270
|
const input = buildVotingInput(plan, config);
|
|
46255
46271
|
const result = await executeVoting(input, log);
|
|
46256
46272
|
return parseVotingResult(result);
|
|
@@ -48048,7 +48064,7 @@ ${contextBlock}`;
|
|
|
48048
48064
|
const strategy = config.votingStrategy ?? "higher_order";
|
|
48049
48065
|
await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
|
|
48050
48066
|
try {
|
|
48051
|
-
const { executeVoting } = await import("./consensus-vote-
|
|
48067
|
+
const { executeVoting } = await import("./consensus-vote-QMDRIAM7.js");
|
|
48052
48068
|
const votingResult = await executeVoting(
|
|
48053
48069
|
{
|
|
48054
48070
|
proposal: buildVoteProposal(plan, research),
|
|
@@ -49895,7 +49911,7 @@ function rollUpDecisionCost(voteResults, logger57) {
|
|
|
49895
49911
|
}
|
|
49896
49912
|
async function executePrReviewBody(input, logger57, opts = {}) {
|
|
49897
49913
|
const start = Date.now();
|
|
49898
|
-
const { gatewayAdapters: adapters, sanitization } = opts;
|
|
49914
|
+
const { gatewayAdapters: adapters, sanitization, signal } = opts;
|
|
49899
49915
|
const panel = await preparePanelForReview(input, PR_REVIEW_ROLES, opts, logger57);
|
|
49900
49916
|
const project = resolveAndLogVoterProject(input.project, logger57);
|
|
49901
49917
|
const voteResults = await collectRealVotes({
|
|
@@ -49905,7 +49921,8 @@ async function executePrReviewBody(input, logger57, opts = {}) {
|
|
|
49905
49921
|
logger: logger57,
|
|
49906
49922
|
project: project.name,
|
|
49907
49923
|
...adapters !== void 0 && { gatewayAdapters: adapters },
|
|
49908
|
-
...panel.seats?.ok === true && { roleAdapters: panel.seats.seats }
|
|
49924
|
+
...panel.seats?.ok === true && { roleAdapters: panel.seats.seats },
|
|
49925
|
+
signal
|
|
49909
49926
|
});
|
|
49910
49927
|
const reviews = voteResults.map(toPrReviewVote);
|
|
49911
49928
|
const counts = summarizeReviews(reviews);
|
|
@@ -49960,9 +49977,14 @@ function makePrReviewHandler(gatewayAdapters) {
|
|
|
49960
49977
|
toolName: "pr_review",
|
|
49961
49978
|
input,
|
|
49962
49979
|
freshJobId: () => `pr-${randomUUID13()}`,
|
|
49963
|
-
|
|
49980
|
+
// #5393: arity 3. `runAsJob` derives `signalAccepted` from `run.length`,
|
|
49981
|
+
// so taking the signal is what makes the job record say cancellation
|
|
49982
|
+
// works — the claim follows the capability. The signal reaches
|
|
49983
|
+
// `collectRealVotes`, so `cancel_job` stops the seats not yet launched.
|
|
49984
|
+
run: (_jobId, _input, signal) => executePrReviewBody(input, ctx.logger, {
|
|
49964
49985
|
...adapterOpt,
|
|
49965
|
-
sanitization: sanitizationViewOf(ctx)
|
|
49986
|
+
sanitization: sanitizationViewOf(ctx),
|
|
49987
|
+
signal
|
|
49966
49988
|
}),
|
|
49967
49989
|
logger: ctx.logger
|
|
49968
49990
|
});
|
|
@@ -52609,6 +52631,9 @@ function dispatchAsyncDevPipeline(input, run, logger57) {
|
|
|
52609
52631
|
toolName: "run_dev_pipeline",
|
|
52610
52632
|
input,
|
|
52611
52633
|
freshJobId: () => `dp-${randomUUID15()}`,
|
|
52634
|
+
// #5393: deliberately arity-0 — `runDevPipeline` has no AbortSignal
|
|
52635
|
+
// option, so taking the signal would flip `signalAccepted` to true with
|
|
52636
|
+
// nothing reading it. Stage-boundary gate first: #6305.
|
|
52612
52637
|
run,
|
|
52613
52638
|
logger: logger57
|
|
52614
52639
|
});
|
|
@@ -52631,6 +52656,7 @@ function dispatchAsyncDevPipeline(input, run, logger57) {
|
|
|
52631
52656
|
toolName: "run_dev_pipeline",
|
|
52632
52657
|
input,
|
|
52633
52658
|
freshJobId: () => sessionId,
|
|
52659
|
+
// #5393: deliberately arity-0 — same body as the keyless dispatch above; see #6305.
|
|
52634
52660
|
run,
|
|
52635
52661
|
logger: logger57
|
|
52636
52662
|
});
|
|
@@ -52830,6 +52856,9 @@ async function runPipelineHandler(args, logger57, trustTier) {
|
|
|
52830
52856
|
toolName: "run_pipeline",
|
|
52831
52857
|
input,
|
|
52832
52858
|
freshJobId: () => `rp-${randomUUID16()}`,
|
|
52859
|
+
// #5393: deliberately arity-0 — `runAdaptiveOrchestrator` has no
|
|
52860
|
+
// AbortSignal option, so taking the signal would flip `signalAccepted`
|
|
52861
|
+
// to true with nothing reading it. Stage-boundary gate first: #6305.
|
|
52833
52862
|
run: () => executePipelineBody(task, stages, input.template, input.dryRun, simulated),
|
|
52834
52863
|
logger: logger57
|
|
52835
52864
|
});
|
|
@@ -53089,6 +53118,9 @@ async function runHandler(args, logger57, trustTier, gatewayAdapters) {
|
|
|
53089
53118
|
toolName: "run",
|
|
53090
53119
|
input,
|
|
53091
53120
|
freshJobId: () => `rn-${randomUUID17()}`,
|
|
53121
|
+
// #5393: deliberately arity-0 — `executeGoal`'s strategy executors take
|
|
53122
|
+
// no AbortSignal, so taking the signal would flip `signalAccepted` to
|
|
53123
|
+
// true with nothing reading it. Executor-level gate first: #6305.
|
|
53092
53124
|
run: () => executeRunBodyOrThrow(input, logger57, trustTier, gatewayAdapters),
|
|
53093
53125
|
logger: logger57
|
|
53094
53126
|
});
|
|
@@ -53490,7 +53522,7 @@ function toPanelVote(result, axes) {
|
|
|
53490
53522
|
...result.error !== void 0 && { errorMessage: result.error }
|
|
53491
53523
|
};
|
|
53492
53524
|
}
|
|
53493
|
-
async function executeTradeoffPanelBody(input, logger57) {
|
|
53525
|
+
async function executeTradeoffPanelBody(input, logger57, signal) {
|
|
53494
53526
|
const axes = input.axes ?? DEFAULT_AXES;
|
|
53495
53527
|
const roles = input.quickMode ? QUICK_PANEL : FULL_PANEL;
|
|
53496
53528
|
const start = Date.now();
|
|
@@ -53501,7 +53533,8 @@ async function executeTradeoffPanelBody(input, logger57) {
|
|
|
53501
53533
|
proposal,
|
|
53502
53534
|
simulate: input.simulate,
|
|
53503
53535
|
logger: logger57,
|
|
53504
|
-
project: project.name
|
|
53536
|
+
project: project.name,
|
|
53537
|
+
signal
|
|
53505
53538
|
});
|
|
53506
53539
|
const votes = voteResults.map((r) => toPanelVote(r, axes));
|
|
53507
53540
|
const axisVerdicts = axes.map((a) => aggregateAxis(a, votes));
|
|
@@ -53542,7 +53575,9 @@ async function tradeoffPanelHandler(args, ctx) {
|
|
|
53542
53575
|
toolName: "supply_chain_tradeoff_panel",
|
|
53543
53576
|
input,
|
|
53544
53577
|
freshJobId: () => `sc-${randomUUID18()}`,
|
|
53545
|
-
|
|
53578
|
+
// #5393: arity 3 — `runAsJob` derives `signalAccepted` from `run.length`.
|
|
53579
|
+
// The signal reaches `collectRealVotes`, so a cancel stops the un-launched seats.
|
|
53580
|
+
run: (_jobId, _input, signal) => executeTradeoffPanelBody(input, ctx.logger, signal),
|
|
53546
53581
|
logger: ctx.logger
|
|
53547
53582
|
});
|
|
53548
53583
|
}
|
|
@@ -57242,4 +57277,4 @@ export {
|
|
|
57242
57277
|
startPipelineEventBridge,
|
|
57243
57278
|
shutdownPipelineEventBridge
|
|
57244
57279
|
};
|
|
57245
|
-
//# sourceMappingURL=chunk-
|
|
57280
|
+
//# sourceMappingURL=chunk-Q3LSWYM5.js.map
|