nexus-agents 8.57.0 → 8.58.1
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-H3PRTTXF.js → chunk-CFQWCVDI.js} +2 -2
- package/dist/{chunk-W6VHVDZM.js → chunk-EQDO4IGT.js} +89 -73
- package/dist/{chunk-W6VHVDZM.js.map → chunk-EQDO4IGT.js.map} +1 -1
- package/dist/{chunk-VCLNGU3S.js → chunk-L2BSHP47.js} +2 -2
- package/dist/{chunk-XU72ZQ5Z.js → chunk-QRTJ7AAM.js} +454 -375
- package/dist/chunk-QRTJ7AAM.js.map +1 -0
- package/dist/{chunk-3KOCMFOK.js → chunk-T4SXP67G.js} +2 -2
- package/dist/{chunk-IJMAA7MV.js → chunk-YWG3G4OH.js} +3 -3
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +17 -11
- package/dist/cli.js.map +1 -1
- package/dist/{consensus-vote-ITVEKN2M.js → consensus-vote-XXT4XWAS.js} +4 -4
- package/dist/{consensus-vote-types-cDFfyFTQ.d.ts → consensus-vote-types-ClG_UKij.d.ts} +48 -18
- package/dist/{improvement-review-TTJVCUXN.js → improvement-review-XNB74NNC.js} +4 -4
- package/dist/index.d.ts +22 -76
- package/dist/index.js +6 -6
- package/dist/{setup-data-dir-3JC2SSZ4.js → setup-data-dir-YCNQMKID.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-XU72ZQ5Z.js.map +0 -1
- /package/dist/{chunk-H3PRTTXF.js.map → chunk-CFQWCVDI.js.map} +0 -0
- /package/dist/{chunk-VCLNGU3S.js.map → chunk-L2BSHP47.js.map} +0 -0
- /package/dist/{chunk-3KOCMFOK.js.map → chunk-T4SXP67G.js.map} +0 -0
- /package/dist/{chunk-IJMAA7MV.js.map → chunk-YWG3G4OH.js.map} +0 -0
- /package/dist/{consensus-vote-ITVEKN2M.js.map → consensus-vote-XXT4XWAS.js.map} +0 -0
- /package/dist/{improvement-review-TTJVCUXN.js.map → improvement-review-XNB74NNC.js.map} +0 -0
- /package/dist/{setup-data-dir-3JC2SSZ4.js.map → setup-data-dir-YCNQMKID.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/version.ts
|
|
2
2
|
import semver from "semver";
|
|
3
|
-
var VERSION = true ? "8.
|
|
3
|
+
var VERSION = true ? "8.58.1" : "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-CFQWCVDI.js.map
|
|
@@ -21,11 +21,12 @@ import {
|
|
|
21
21
|
import {
|
|
22
22
|
DEFAULT_TASK_TTL_MS,
|
|
23
23
|
clampTaskTtl
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-YWG3G4OH.js";
|
|
25
25
|
import {
|
|
26
26
|
executeExpert
|
|
27
27
|
} from "./chunk-QMGMD6JB.js";
|
|
28
28
|
import {
|
|
29
|
+
DEPRECATED_MODE_ALIAS_INPUT,
|
|
29
30
|
JobStatusSchema,
|
|
30
31
|
VOTER_ROLES,
|
|
31
32
|
VoterProjectInputSchema,
|
|
@@ -35,12 +36,16 @@ import {
|
|
|
35
36
|
appendResult,
|
|
36
37
|
assertNotSourceCheckoutWrite,
|
|
37
38
|
assignPanelSeats,
|
|
39
|
+
asyncDispatchInput,
|
|
40
|
+
asyncDispatchInputDefaultSync,
|
|
38
41
|
checkSimulationAllowed,
|
|
39
42
|
collectRealVotes,
|
|
40
43
|
defaultBusyEnvelope,
|
|
41
44
|
defaultCollisionEnvelope,
|
|
42
45
|
defaultPendingEnvelope,
|
|
43
46
|
defaultReplayEnvelope,
|
|
47
|
+
deprecatedModeWarning,
|
|
48
|
+
dispatchFieldDefaultSync,
|
|
44
49
|
initTaskState,
|
|
45
50
|
isAbandonedJob,
|
|
46
51
|
isAbsentSeat,
|
|
@@ -48,12 +53,15 @@ import {
|
|
|
48
53
|
isRateLimitError,
|
|
49
54
|
listJobsWithDiagnostics,
|
|
50
55
|
listTaskStateIds,
|
|
56
|
+
modeEnumErrorNamingDispatch,
|
|
51
57
|
readJobResult,
|
|
52
58
|
readTaskState,
|
|
53
59
|
recordDecisionCost,
|
|
60
|
+
refineDispatchModeAgreement,
|
|
54
61
|
registerIdempotentJob,
|
|
55
62
|
resolveAdapter,
|
|
56
63
|
resolveAndLogVoterProject,
|
|
64
|
+
resolveDispatch,
|
|
57
65
|
resolveIdempotency,
|
|
58
66
|
runAsJob,
|
|
59
67
|
runConsensusForGoal,
|
|
@@ -61,8 +69,9 @@ import {
|
|
|
61
69
|
simulationDeniedResult,
|
|
62
70
|
toJobSummary,
|
|
63
71
|
updateStage,
|
|
72
|
+
withWarnings,
|
|
64
73
|
writeJobCancelled
|
|
65
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-QRTJ7AAM.js";
|
|
66
75
|
import {
|
|
67
76
|
allOf,
|
|
68
77
|
anyOf
|
|
@@ -82,7 +91,7 @@ import {
|
|
|
82
91
|
} from "./chunk-RNWUIQTZ.js";
|
|
83
92
|
import {
|
|
84
93
|
withPrerequisite
|
|
85
|
-
} from "./chunk-
|
|
94
|
+
} from "./chunk-T4SXP67G.js";
|
|
86
95
|
import {
|
|
87
96
|
NOOP_NOTIFIER,
|
|
88
97
|
RateLimiter,
|
|
@@ -107,7 +116,7 @@ import {
|
|
|
107
116
|
withAuditTrail,
|
|
108
117
|
withProgressHeartbeat,
|
|
109
118
|
wrapToolWithTimeout
|
|
110
|
-
} from "./chunk-
|
|
119
|
+
} from "./chunk-L2BSHP47.js";
|
|
111
120
|
import {
|
|
112
121
|
createAuditTrail,
|
|
113
122
|
createGraphAuditBridge,
|
|
@@ -29169,11 +29178,14 @@ var RunWorkflowInputSchema = z57.object({
|
|
|
29169
29178
|
* cap is enforced in-process via NEXUS_JOB_MAX_CONCURRENT_RUN_WORKFLOW;
|
|
29170
29179
|
* over-cap returns `{ status: 'busy', retryAfterMs }` synchronously.
|
|
29171
29180
|
*
|
|
29172
|
-
*
|
|
29173
|
-
*
|
|
29174
|
-
*
|
|
29181
|
+
* The key is `dispatch` (#4968); `mode` is the deprecated alias this tool
|
|
29182
|
+
* used to spell it with, resolved as `dispatch ?? mode` by the handler and
|
|
29183
|
+
* rejected when the two disagree (the `superRefine` below). Both optional
|
|
29184
|
+
* (no `.default()`) so the inferred type doesn't force a value onto every
|
|
29185
|
+
* existing call site / test fixture; the handler treats `undefined` as
|
|
29186
|
+
* `'sync'`.
|
|
29175
29187
|
*/
|
|
29176
|
-
|
|
29188
|
+
...DEPRECATED_MODE_ALIAS_INPUT,
|
|
29177
29189
|
/**
|
|
29178
29190
|
* Idempotency key for async-mode replay-safety (#3042 Stage 1c / epic
|
|
29179
29191
|
* #2631). When set: identical (key, inputs) returns the existing job;
|
|
@@ -29183,7 +29195,8 @@ var RunWorkflowInputSchema = z57.object({
|
|
|
29183
29195
|
idempotencyKey: z57.string().min(1).max(256).optional().describe(
|
|
29184
29196
|
"Replay-safe key for async-mode dispatch (#3042 Stage 1c). Same (key, inputs) returns existing jobId."
|
|
29185
29197
|
)
|
|
29186
|
-
|
|
29198
|
+
// #4968: `dispatch` and the deprecated `mode` alias must agree when both are sent.
|
|
29199
|
+
}).superRefine(refineDispatchModeAgreement);
|
|
29187
29200
|
|
|
29188
29201
|
// src/mcp/tools/run-workflow-helpers.ts
|
|
29189
29202
|
import { resolve as resolve5, sep as sep2 } from "node:path";
|
|
@@ -29563,7 +29576,7 @@ function dispatchAsyncRunWorkflow(deps, args) {
|
|
|
29563
29576
|
busy: (retryAfterMs) => successResponse({
|
|
29564
29577
|
status: "busy",
|
|
29565
29578
|
retryAfterMs,
|
|
29566
|
-
note: 'Async-mode concurrency cap reached for run_workflow. Retry later or use
|
|
29579
|
+
note: 'Async-mode concurrency cap reached for run_workflow. Retry later or use dispatch: "sync".'
|
|
29567
29580
|
}),
|
|
29568
29581
|
replay: buildRunWorkflowReplayEnvelope,
|
|
29569
29582
|
collision: buildRunWorkflowCollisionEnvelope
|
|
@@ -29579,22 +29592,24 @@ function createRunWorkflowHandler(deps) {
|
|
|
29579
29592
|
const errorMessage2 = validated.error.issues.map((e) => `${e.path.join(".")}: ${e.message}`).join(", ");
|
|
29580
29593
|
return errorResponse(`Validation error: ${errorMessage2}`);
|
|
29581
29594
|
}
|
|
29595
|
+
const dispatch = resolveDispatch(validated.data);
|
|
29596
|
+
const modeWarning = deprecatedModeWarning(validated.data);
|
|
29582
29597
|
ctx.logger.debug("Running workflow", {
|
|
29583
29598
|
template: validated.data.template,
|
|
29584
29599
|
dryRun: validated.data.dryRun,
|
|
29585
|
-
...
|
|
29600
|
+
...dispatch !== void 0 ? { dispatch } : {}
|
|
29586
29601
|
});
|
|
29587
29602
|
notifier.info("run_workflow", { event: "workflow_start", template: validated.data.template });
|
|
29588
29603
|
const startMs = getTimeProvider().now();
|
|
29589
|
-
if (
|
|
29604
|
+
if (dispatch === "async" && !validated.data.dryRun) {
|
|
29590
29605
|
const asyncResult = dispatchAsyncRunWorkflow(deps, validated.data);
|
|
29591
29606
|
notifier.info("run_workflow", {
|
|
29592
29607
|
event: "workflow_dispatched_async",
|
|
29593
29608
|
template: validated.data.template
|
|
29594
29609
|
});
|
|
29595
|
-
return asyncResult;
|
|
29610
|
+
return withWarnings(asyncResult, [modeWarning]);
|
|
29596
29611
|
}
|
|
29597
|
-
const result = await handleRunWorkflow(deps, validated.data);
|
|
29612
|
+
const result = withWarnings(await handleRunWorkflow(deps, validated.data), [modeWarning]);
|
|
29598
29613
|
if (result.isError !== true) {
|
|
29599
29614
|
notifier.info("run_workflow", {
|
|
29600
29615
|
event: "workflow_complete",
|
|
@@ -29619,7 +29634,7 @@ function registerRunWorkflowTool(server, deps) {
|
|
|
29619
29634
|
server.registerTool(
|
|
29620
29635
|
"run_workflow",
|
|
29621
29636
|
{
|
|
29622
|
-
description: "Run a LINEAR (single-path) workflow template by name with typed inputs. For DAG-shaped workflows with branching, checkpoints, or rollback, use `run_graph_workflow` instead. Supports
|
|
29637
|
+
description: "Run a LINEAR (single-path) workflow template by name with typed inputs. For DAG-shaped workflows with branching, checkpoints, or rollback, use `run_graph_workflow` instead. Supports dispatch: 'async' (non-dryRun runs; `mode` is a deprecated alias) \u2014 returns a jobId immediately; poll get_job_result.",
|
|
29623
29638
|
inputSchema: toolInputSchema,
|
|
29624
29639
|
annotations: getToolAnnotations("run_workflow")
|
|
29625
29640
|
},
|
|
@@ -32965,11 +32980,14 @@ var OrchestrateInputSchema = z61.object({
|
|
|
32965
32980
|
* orchestrations (#2631 evidence: 28.6% timeout-shaped errors on
|
|
32966
32981
|
* `run_workflow` at the gate-firing measurement).
|
|
32967
32982
|
*
|
|
32968
|
-
*
|
|
32969
|
-
*
|
|
32970
|
-
*
|
|
32983
|
+
* The key is `dispatch` (#4968); `mode` is the deprecated alias this tool
|
|
32984
|
+
* used to spell it with, resolved as `dispatch ?? mode` by the handler and
|
|
32985
|
+
* rejected when the two disagree (the `superRefine` below). Both optional
|
|
32986
|
+
* (no `.default()`) so the inferred type doesn't force a value onto every
|
|
32987
|
+
* existing call site / test fixture; the handler treats `undefined` as
|
|
32988
|
+
* `'sync'`.
|
|
32971
32989
|
*/
|
|
32972
|
-
|
|
32990
|
+
...DEPRECATED_MODE_ALIAS_INPUT,
|
|
32973
32991
|
/**
|
|
32974
32992
|
* Idempotency key for async-mode replay-safety (#3042 Stage 1c / epic
|
|
32975
32993
|
* #2631). When set: identical (key, inputs) returns the existing job;
|
|
@@ -32981,7 +32999,8 @@ var OrchestrateInputSchema = z61.object({
|
|
|
32981
32999
|
idempotencyKey: z61.string().min(1).max(256).optional().describe(
|
|
32982
33000
|
"Replay-safe key for async-mode dispatch (#3042 Stage 1c). Same (key, inputs) returns existing jobId; same key + different inputs fails closed."
|
|
32983
33001
|
)
|
|
32984
|
-
|
|
33002
|
+
// #4968: `dispatch` and the deprecated `mode` alias must agree when both are sent.
|
|
33003
|
+
}).superRefine(refineDispatchModeAgreement);
|
|
32985
33004
|
var OrchestrateOutputSchema = z61.object({
|
|
32986
33005
|
taskId: z61.string().describe("Unique execution ID"),
|
|
32987
33006
|
analysis: z61.object({
|
|
@@ -33037,9 +33056,9 @@ var ORCHESTRATE_TOOL_SCHEMA = {
|
|
|
33037
33056
|
context: z61.record(z61.string(), z61.unknown()).optional().describe("Additional context for the task"),
|
|
33038
33057
|
maxIterations: z61.number().min(1).max(50).optional().describe("Maximum iterations for orchestration (default: 10)"),
|
|
33039
33058
|
timeout: z61.number().min(1e3).max(6e5).optional().describe("Timeout in milliseconds for orchestration (default: 300000)"),
|
|
33040
|
-
|
|
33041
|
-
|
|
33042
|
-
|
|
33059
|
+
// #4968: the same fragment the internal schema composes, so the advertised
|
|
33060
|
+
// shape cannot omit `dispatch` (the SDK strips what is not advertised).
|
|
33061
|
+
...DEPRECATED_MODE_ALIAS_INPUT,
|
|
33043
33062
|
idempotencyKey: z61.string().min(1).max(256).optional().describe(
|
|
33044
33063
|
"Replay-safe key for async-mode dispatch (#3042 Stage 1c). Same (key, inputs) returns existing jobId."
|
|
33045
33064
|
)
|
|
@@ -37235,17 +37254,22 @@ function createOrchestrateHandler(deps) {
|
|
|
37235
37254
|
message: `Validation error: ${formatZodError(validated.error)}`
|
|
37236
37255
|
});
|
|
37237
37256
|
}
|
|
37238
|
-
|
|
37239
|
-
|
|
37240
|
-
|
|
37241
|
-
|
|
37242
|
-
|
|
37243
|
-
|
|
37244
|
-
|
|
37245
|
-
|
|
37257
|
+
const dispatch = resolveDispatch(validated.data);
|
|
37258
|
+
const modeWarning = deprecatedModeWarning(validated.data);
|
|
37259
|
+
if (dispatch === "async") {
|
|
37260
|
+
return withWarnings(
|
|
37261
|
+
dispatchAsyncOrchestrate({
|
|
37262
|
+
input: validated.data,
|
|
37263
|
+
deps,
|
|
37264
|
+
notifier,
|
|
37265
|
+
logger: ctx.logger,
|
|
37266
|
+
trustTier: ctx.requestContext.trustTier
|
|
37267
|
+
}),
|
|
37268
|
+
[modeWarning]
|
|
37269
|
+
);
|
|
37246
37270
|
}
|
|
37247
37271
|
try {
|
|
37248
|
-
|
|
37272
|
+
const result = await withDepthGuard(
|
|
37249
37273
|
"orchestrate",
|
|
37250
37274
|
() => runOrchestratePipeline({
|
|
37251
37275
|
input: validated.data,
|
|
@@ -37256,6 +37280,7 @@ function createOrchestrateHandler(deps) {
|
|
|
37256
37280
|
trustTier: ctx.requestContext.trustTier
|
|
37257
37281
|
})
|
|
37258
37282
|
);
|
|
37283
|
+
return withWarnings(result, [modeWarning]);
|
|
37259
37284
|
} catch (depthError) {
|
|
37260
37285
|
const msg = depthError instanceof Error ? depthError.message : String(depthError);
|
|
37261
37286
|
ctx.logger.warn("Orchestration depth guard triggered", { error: msg });
|
|
@@ -41441,9 +41466,7 @@ var RunGraphWorkflowInputSchema = z80.object({
|
|
|
41441
41466
|
* envelope immediately and runs in the background; poll
|
|
41442
41467
|
* `get_job_result({ jobId })` for the result. Ignored for the `list` sentinel.
|
|
41443
41468
|
*/
|
|
41444
|
-
|
|
41445
|
-
"Dispatch mode (#3732). 'sync' (default): run inline. 'async': return a jobId immediately + run in background (poll get_job_result)."
|
|
41446
|
-
)
|
|
41469
|
+
...asyncDispatchInputDefaultSync("Ignored for the `list` sentinel.")
|
|
41447
41470
|
});
|
|
41448
41471
|
function resolveGraph(workflow, startTime) {
|
|
41449
41472
|
const registry = getGraphRegistry();
|
|
@@ -41536,9 +41559,9 @@ var GRAPH_WORKFLOW_SCHEMA = {
|
|
|
41536
41559
|
inputs: z80.record(z80.string(), z80.unknown()).optional().describe("Input values for the workflow"),
|
|
41537
41560
|
enableCheckpointing: z80.boolean().optional().describe("Enable checkpoint saving"),
|
|
41538
41561
|
enableAuditTrail: z80.boolean().optional().describe("Enable audit trail logging"),
|
|
41539
|
-
|
|
41540
|
-
|
|
41541
|
-
)
|
|
41562
|
+
// #4968: the same fragment the internal schema composes — the advertised
|
|
41563
|
+
// shape is what the SDK parses, so the wrong-key trap must be here too.
|
|
41564
|
+
...asyncDispatchInput("Ignored for the `list` sentinel.")
|
|
41542
41565
|
};
|
|
41543
41566
|
async function executeGraphWorkflowBody(input, logger57, notifier, auditLogger) {
|
|
41544
41567
|
const result = await handleRunGraphWorkflow(input, logger57, auditLogger);
|
|
@@ -42150,9 +42173,7 @@ var ExecuteSpecInputSchema = z81.object({
|
|
|
42150
42173
|
* background; poll `get_job_result({ jobId })` for the result. Ignored when
|
|
42151
42174
|
* `dryRun` is true (parse+decompose completes fast, so dry runs stay sync).
|
|
42152
42175
|
*/
|
|
42153
|
-
|
|
42154
|
-
"Dispatch mode (#3732). 'sync' (default): run inline. 'async': return a jobId immediately + run in background (poll get_job_result). Ignored for dryRun."
|
|
42155
|
-
)
|
|
42176
|
+
...asyncDispatchInputDefaultSync("Ignored for dryRun.")
|
|
42156
42177
|
});
|
|
42157
42178
|
var DRY_RUN_MODE = "dry_run";
|
|
42158
42179
|
function createDryRunResponse(input, logger57) {
|
|
@@ -42256,9 +42277,9 @@ function registerExecuteSpecTool(server, deps) {
|
|
|
42256
42277
|
'Markdown specification to execute. Must contain "## Requirements" and "## Acceptance Criteria" sections.'
|
|
42257
42278
|
),
|
|
42258
42279
|
dryRun: z81.boolean().optional().describe("Parse and decompose only (no execution)"),
|
|
42259
|
-
|
|
42260
|
-
|
|
42261
|
-
)
|
|
42280
|
+
// #4968: the same fragment the internal schema composes — the advertised
|
|
42281
|
+
// shape is what the SDK parses, so the wrong-key trap must be here too.
|
|
42282
|
+
...asyncDispatchInput("Ignored for dryRun.")
|
|
42262
42283
|
};
|
|
42263
42284
|
const description = "Execute a markdown specification through the full pipeline: parse, decompose into task DAG, compile to graph, execute, validate against acceptance criteria, and analyze failures. Without a configured handler factory, execute mode runs placeholder handlers and reports mode 'dry_run'.";
|
|
42264
42285
|
server.registerTool(
|
|
@@ -43980,7 +44001,7 @@ function resolveJobListing(customDir) {
|
|
|
43980
44001
|
|
|
43981
44002
|
// src/mcp/tools/get-job-result-tool.ts
|
|
43982
44003
|
var GetJobResultInputSchema = z96.object({
|
|
43983
|
-
jobId: z96.string().min(1).max(128).describe('Job ID returned by
|
|
44004
|
+
jobId: z96.string().min(1).max(128).describe('Job ID returned by any tool called with dispatch: "async" (e.g. orchestrate)')
|
|
43984
44005
|
});
|
|
43985
44006
|
function getJobResultHandler(args) {
|
|
43986
44007
|
const parsed = GetJobResultInputSchema.safeParse(args);
|
|
@@ -44019,7 +44040,7 @@ function getJobResultHandler(args) {
|
|
|
44019
44040
|
function registerGetJobResultTool(server, deps) {
|
|
44020
44041
|
const logger57 = deps.logger ?? createLogger({ tool: "get_job_result" });
|
|
44021
44042
|
const toolSchema = {
|
|
44022
|
-
jobId: z96.string().min(1).max(128).describe('Job ID returned by
|
|
44043
|
+
jobId: z96.string().min(1).max(128).describe('Job ID returned by any tool called with dispatch: "async" (e.g. orchestrate)')
|
|
44023
44044
|
};
|
|
44024
44045
|
const description = `Read the result of an async-mode tool invocation by jobId. Returns the structured record (status, result | error, timestamps, producerVersion) plus producerVersionMeasured \u2014 false when the producer was a dev build or the record predates the field, so its version must not be compared to this server's _meta build stamp \u2014 and producerVersionSource (sidecar | task_state; a task_state record never carries a version). Poll until status !== "pending". Stage-1 of epic #2631 \u2014 Stage 2 will fold this into query_task_state once StructuredTaskState gains the result field.`;
|
|
44025
44046
|
const secureHandler = createSecureHandler(getJobResultHandler, {
|
|
@@ -46182,7 +46203,7 @@ function buildVotingInput(plan, config) {
|
|
|
46182
46203
|
}
|
|
46183
46204
|
async function executeSingleVote(plan, config, log) {
|
|
46184
46205
|
try {
|
|
46185
|
-
const { executeVoting } = await import("./consensus-vote-
|
|
46206
|
+
const { executeVoting } = await import("./consensus-vote-XXT4XWAS.js");
|
|
46186
46207
|
const input = buildVotingInput(plan, config);
|
|
46187
46208
|
const result = await executeVoting(input, log);
|
|
46188
46209
|
return parseVotingResult(result);
|
|
@@ -47980,7 +48001,7 @@ ${contextBlock}`;
|
|
|
47980
48001
|
const strategy = config.votingStrategy ?? "higher_order";
|
|
47981
48002
|
await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
|
|
47982
48003
|
try {
|
|
47983
|
-
const { executeVoting } = await import("./consensus-vote-
|
|
48004
|
+
const { executeVoting } = await import("./consensus-vote-XXT4XWAS.js");
|
|
47984
48005
|
const votingResult = await executeVoting(
|
|
47985
48006
|
{
|
|
47986
48007
|
proposal: buildVoteProposal(plan, research),
|
|
@@ -49745,9 +49766,7 @@ var PrReviewInputSchema = z104.object({
|
|
|
49745
49766
|
* runs the panel in the background; poll `get_job_result({ jobId })` for the
|
|
49746
49767
|
* result.
|
|
49747
49768
|
*/
|
|
49748
|
-
|
|
49749
|
-
"Dispatch mode (#3731). 'sync' (default): run inline. 'async': return a jobId immediately + run the panel in background (poll get_job_result)."
|
|
49750
|
-
)
|
|
49769
|
+
...asyncDispatchInputDefaultSync()
|
|
49751
49770
|
});
|
|
49752
49771
|
function mapVoteDecisionToPrDecision(voteDecision) {
|
|
49753
49772
|
if (voteDecision === "reject") return "request_changes";
|
|
@@ -52343,21 +52362,24 @@ var DevPipelineInputSchema = z116.object({
|
|
|
52343
52362
|
quickMode: z116.boolean().default(false).describe("Use 3 agents instead of 6 for faster consensus voting"),
|
|
52344
52363
|
/** Maximum execution time per stage in milliseconds (min 30s, max 600s). */
|
|
52345
52364
|
timeoutMs: z116.number().int().min(3e4).max(6e5).optional().describe("Max time per stage in ms (30000-600000). Default: varies by stage complexity"),
|
|
52346
|
-
/** Pipeline execution mode. */
|
|
52347
|
-
mode: z116.enum(["autonomous", "harness"]).default("autonomous").describe(
|
|
52348
|
-
"'autonomous': full pipeline. 'harness': stops after decompose, returns tasks for caller to implement."
|
|
52349
|
-
),
|
|
52350
52365
|
/**
|
|
52351
|
-
*
|
|
52352
|
-
*
|
|
52353
|
-
*
|
|
52354
|
-
* envelope immediately and runs the pipeline in the background; poll
|
|
52355
|
-
* `get_job_result({ jobId })` for the result. Ignored when `dryRun` is
|
|
52356
|
-
* true (plan+vote completes fast, so dry runs always stay sync).
|
|
52366
|
+
* Pipeline execution mode — a REAL field on this tool, unrelated to async
|
|
52367
|
+
* dispatch. A caller who learned `mode: 'async'` elsewhere gets an error
|
|
52368
|
+
* naming `dispatch` rather than the bare enum message (#4968).
|
|
52357
52369
|
*/
|
|
52358
|
-
|
|
52359
|
-
"
|
|
52370
|
+
mode: z116.enum(["autonomous", "harness"], { error: modeEnumErrorNamingDispatch }).default("autonomous").describe(
|
|
52371
|
+
"'autonomous': full pipeline. 'harness': stops after decompose, returns tasks for caller to implement. (Not the async switch \u2014 that is `dispatch`.)"
|
|
52360
52372
|
),
|
|
52373
|
+
/**
|
|
52374
|
+
* Async dispatch (#3726, canonical key per #4968). `sync` (default) runs the
|
|
52375
|
+
* pipeline inline and returns the result — but a real autonomous run can
|
|
52376
|
+
* exceed the 900s MCP request timeout. `async` returns a
|
|
52377
|
+
* `{ status: 'pending', jobId }` envelope immediately and runs the pipeline
|
|
52378
|
+
* in the background; poll `get_job_result({ jobId })` for the result.
|
|
52379
|
+
* Ignored when `dryRun` is true (plan+vote completes fast, so dry runs
|
|
52380
|
+
* always stay sync).
|
|
52381
|
+
*/
|
|
52382
|
+
dispatch: dispatchFieldDefaultSync("Ignored for dryRun."),
|
|
52361
52383
|
/** Local pre-ship quality gate (typecheck/lint/tests) mode (#3356). */
|
|
52362
52384
|
qualityGate: z116.enum(["off", "advisory", "blocking"]).default("off").describe(
|
|
52363
52385
|
"Pre-ship local quality gate. 'off' (default): skip. 'advisory': run + record feedback, never fail. 'blocking': a red gate fails the pipeline."
|
|
@@ -52624,9 +52646,7 @@ var PipelineInputSchema = z117.object({
|
|
|
52624
52646
|
* `get_job_result({ jobId })` for the result. Ignored when `dryRun` is true
|
|
52625
52647
|
* (plan+vote completes fast, so dry runs always stay sync).
|
|
52626
52648
|
*/
|
|
52627
|
-
|
|
52628
|
-
"Dispatch mode (#3730). 'sync' (default): run inline. 'async': return a jobId immediately + run in background (poll get_job_result). Ignored for dryRun."
|
|
52629
|
-
),
|
|
52649
|
+
...asyncDispatchInputDefaultSync("Ignored for dryRun."),
|
|
52630
52650
|
/** TESTS ONLY — random output, must not be used for real decisions. (#2319) */
|
|
52631
52651
|
simulateVotes: z117.boolean().default(false).describe("TESTS ONLY \u2014 random output, must not be used for real decisions (#2319)")
|
|
52632
52652
|
});
|
|
@@ -52842,9 +52862,7 @@ var RunInputSchema = z118.object({
|
|
|
52842
52862
|
* envelope immediately and runs in the background; poll
|
|
52843
52863
|
* `get_job_result({ jobId })`. Ignored for read-only routing (execute:false).
|
|
52844
52864
|
*/
|
|
52845
|
-
|
|
52846
|
-
"Dispatch mode (#3732). 'sync' (default): run inline. 'async' (only with execute:true): return a jobId immediately + run in background (poll get_job_result)."
|
|
52847
|
-
)
|
|
52865
|
+
...asyncDispatchInput("Only with execute:true.")
|
|
52848
52866
|
});
|
|
52849
52867
|
var NOTE = "Routing decision only (read-only). Invoke the recommendedTool to execute, or re-run with execute: true for inline execution. The other pipeline tools remain available as advanced force-strategy paths.";
|
|
52850
52868
|
function toMetaInput(input, mode) {
|
|
@@ -53247,9 +53265,7 @@ var SupplyChainTradeoffPanelInputSchema = z121.object({
|
|
|
53247
53265
|
* immediately and runs the panel in the background; poll
|
|
53248
53266
|
* `get_job_result({ jobId })` for the result.
|
|
53249
53267
|
*/
|
|
53250
|
-
|
|
53251
|
-
"Dispatch mode (#3731). 'sync' (default): run inline. 'async': return a jobId immediately + run the panel in background (poll get_job_result)."
|
|
53252
|
-
)
|
|
53268
|
+
...asyncDispatchInputDefaultSync()
|
|
53253
53269
|
});
|
|
53254
53270
|
function buildTradeoffProposal(input) {
|
|
53255
53271
|
const axes = input.axes ?? DEFAULT_AXES;
|
|
@@ -57179,4 +57195,4 @@ export {
|
|
|
57179
57195
|
startPipelineEventBridge,
|
|
57180
57196
|
shutdownPipelineEventBridge
|
|
57181
57197
|
};
|
|
57182
|
-
//# sourceMappingURL=chunk-
|
|
57198
|
+
//# sourceMappingURL=chunk-EQDO4IGT.js.map
|