nexus-agents 8.46.15 → 8.47.0
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-P6LLNTKM.js → chunk-6GGWO4B3.js} +49 -18
- package/dist/{chunk-P6LLNTKM.js.map → chunk-6GGWO4B3.js.map} +1 -1
- package/dist/{chunk-AOVMGKUI.js → chunk-AR3RVMX7.js} +3 -3
- package/dist/{chunk-GUS6PTRG.js → chunk-CEB525JC.js} +2 -2
- package/dist/{chunk-HHMW3EAQ.js → chunk-HM7AVNC7.js} +2 -2
- package/dist/{chunk-HHMW3EAQ.js.map → chunk-HM7AVNC7.js.map} +1 -1
- package/dist/{chunk-R2MAX7UL.js → chunk-ISUPN5U4.js} +3 -3
- package/dist/{chunk-L4EZIS3F.js → chunk-RSC54OHX.js} +2 -2
- package/dist/cli.js +7 -7
- package/dist/{consensus-vote-ATICPOXQ.js → consensus-vote-7GGJYVBF.js} +4 -4
- package/dist/{improvement-review-6476KFCO.js → improvement-review-OPYFAZZS.js} +4 -4
- package/dist/index.d.ts +49 -22
- package/dist/index.js +6 -6
- package/dist/{setup-data-dir-FHYAOHOP.js → setup-data-dir-J7RMJCLJ.js} +3 -3
- package/package.json +1 -1
- /package/dist/{chunk-AOVMGKUI.js.map → chunk-AR3RVMX7.js.map} +0 -0
- /package/dist/{chunk-GUS6PTRG.js.map → chunk-CEB525JC.js.map} +0 -0
- /package/dist/{chunk-R2MAX7UL.js.map → chunk-ISUPN5U4.js.map} +0 -0
- /package/dist/{chunk-L4EZIS3F.js.map → chunk-RSC54OHX.js.map} +0 -0
- /package/dist/{consensus-vote-ATICPOXQ.js.map → consensus-vote-7GGJYVBF.js.map} +0 -0
- /package/dist/{improvement-review-6476KFCO.js.map → improvement-review-OPYFAZZS.js.map} +0 -0
- /package/dist/{setup-data-dir-FHYAOHOP.js.map → setup-data-dir-J7RMJCLJ.js.map} +0 -0
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
import {
|
|
22
22
|
DEFAULT_TASK_TTL_MS,
|
|
23
23
|
clampTaskTtl
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-AR3RVMX7.js";
|
|
25
25
|
import {
|
|
26
26
|
executeExpert
|
|
27
27
|
} from "./chunk-QLF22ILR.js";
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
toJobSummary,
|
|
56
56
|
updateStage,
|
|
57
57
|
writeJobCancelled
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-ISUPN5U4.js";
|
|
59
59
|
import {
|
|
60
60
|
allOf,
|
|
61
61
|
anyOf
|
|
@@ -75,7 +75,7 @@ import {
|
|
|
75
75
|
} from "./chunk-43ONDTAK.js";
|
|
76
76
|
import {
|
|
77
77
|
withPrerequisite
|
|
78
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-CEB525JC.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-RSC54OHX.js";
|
|
104
104
|
import {
|
|
105
105
|
createAuditTrail,
|
|
106
106
|
createGraphAuditBridge,
|
|
@@ -29636,7 +29636,7 @@ function formatCompileError(error) {
|
|
|
29636
29636
|
case "no_entry":
|
|
29637
29637
|
return `No entry point: ${error.message}`;
|
|
29638
29638
|
case "unreachable_node":
|
|
29639
|
-
return `Node '${error.nodeId}' is unreachable from START`;
|
|
29639
|
+
return `Node '${error.nodeId}' is unreachable from START. If it is entered by Command.goto, declare it: addNode(source, fn, { gotoTargets: ['${error.nodeId}'] })`;
|
|
29640
29640
|
case "missing_reducer":
|
|
29641
29641
|
return `State field '${error.field}' has no reducer defined`;
|
|
29642
29642
|
}
|
|
@@ -30562,6 +30562,9 @@ async function withTimeout3(promise, ms) {
|
|
|
30562
30562
|
}
|
|
30563
30563
|
|
|
30564
30564
|
// src/orchestration/graph/graph-builder.ts
|
|
30565
|
+
function definedNodeOptions(opts) {
|
|
30566
|
+
return Object.fromEntries(Object.entries(opts ?? {}).filter(([, value]) => value !== void 0));
|
|
30567
|
+
}
|
|
30565
30568
|
var GraphBuilder = class {
|
|
30566
30569
|
nodes = /* @__PURE__ */ new Map();
|
|
30567
30570
|
edges = [];
|
|
@@ -30578,14 +30581,7 @@ var GraphBuilder = class {
|
|
|
30578
30581
|
* Supports optional precondition hooks (Issue #997) and verify hook (Issue #994).
|
|
30579
30582
|
*/
|
|
30580
30583
|
addNode(id, handler3, opts) {
|
|
30581
|
-
const node = {
|
|
30582
|
-
id,
|
|
30583
|
-
handler: handler3,
|
|
30584
|
-
...opts?.timeout !== void 0 ? { timeout: opts.timeout } : {},
|
|
30585
|
-
...opts?.retries !== void 0 ? { retries: opts.retries } : {},
|
|
30586
|
-
...opts?.preconditions !== void 0 ? { preconditions: opts.preconditions } : {},
|
|
30587
|
-
...opts?.verify !== void 0 ? { verify: opts.verify } : {}
|
|
30588
|
-
};
|
|
30584
|
+
const node = { id, handler: handler3, ...definedNodeOptions(opts) };
|
|
30589
30585
|
this.nodes.set(id, node);
|
|
30590
30586
|
return this;
|
|
30591
30587
|
}
|
|
@@ -30623,6 +30619,8 @@ var GraphBuilder = class {
|
|
|
30623
30619
|
if (entryError !== void 0) return err(entryError);
|
|
30624
30620
|
const cycleError = this.checkCycles();
|
|
30625
30621
|
if (cycleError !== void 0) return err(cycleError);
|
|
30622
|
+
const gotoError = this.checkGotoTargets();
|
|
30623
|
+
if (gotoError !== void 0) return err(gotoError);
|
|
30626
30624
|
const reachError = this.checkReachability();
|
|
30627
30625
|
if (reachError !== void 0) return err(reachError);
|
|
30628
30626
|
const entryEdges = this.edges.filter((e) => e.from === START);
|
|
@@ -30722,7 +30720,39 @@ var GraphBuilder = class {
|
|
|
30722
30720
|
}
|
|
30723
30721
|
return void 0;
|
|
30724
30722
|
}
|
|
30725
|
-
/**
|
|
30723
|
+
/**
|
|
30724
|
+
* Every declared `gotoTargets` entry must name a real node (#5727). Checked
|
|
30725
|
+
* before reachability so the error names the DECLARING node, rather than
|
|
30726
|
+
* surfacing later as a confusing `unreachable_node` about something else.
|
|
30727
|
+
*
|
|
30728
|
+
* Reports the EXISTING `missing_node` rather than a new error variant: a
|
|
30729
|
+
* declared goto target is an edge reference, so `missing_node`'s own message
|
|
30730
|
+
* ("Edge references non-existent node 'x' (from 'y')") already reads correctly.
|
|
30731
|
+
* Adding a variant would widen a union the library RETURNS, which breaks any
|
|
30732
|
+
* consumer switching exhaustively over `GraphCompileError` — a breaking change
|
|
30733
|
+
* needing a unanimous panel, for a diagnostic distinction nothing consumes.
|
|
30734
|
+
*/
|
|
30735
|
+
checkGotoTargets() {
|
|
30736
|
+
for (const [nodeId, node] of this.nodes) {
|
|
30737
|
+
for (const target of node.gotoTargets ?? []) {
|
|
30738
|
+
if (target === END) continue;
|
|
30739
|
+
if (!this.nodes.has(target)) {
|
|
30740
|
+
return { type: "missing_node", nodeId: target, referencedBy: nodeId };
|
|
30741
|
+
}
|
|
30742
|
+
}
|
|
30743
|
+
}
|
|
30744
|
+
return void 0;
|
|
30745
|
+
}
|
|
30746
|
+
/**
|
|
30747
|
+
* BFS from START over static edges PLUS declared `Command.goto` targets
|
|
30748
|
+
* (#5727).
|
|
30749
|
+
*
|
|
30750
|
+
* Goto targets are followed from the DECLARING node, exactly like an edge —
|
|
30751
|
+
* not seeded from START. That distinction is load-bearing: seeding would make
|
|
30752
|
+
* a target declared on an itself-unreachable node read as reachable, so a
|
|
30753
|
+
* whole orphaned subgraph could bless itself and `unreachable_node` would stop
|
|
30754
|
+
* being able to fail for the graphs that use goto.
|
|
30755
|
+
*/
|
|
30726
30756
|
findReachableNodes() {
|
|
30727
30757
|
const reachable = /* @__PURE__ */ new Set();
|
|
30728
30758
|
const queue = this.getStartTargets();
|
|
@@ -30731,6 +30761,7 @@ var GraphBuilder = class {
|
|
|
30731
30761
|
if (current === void 0 || current === END || reachable.has(current)) continue;
|
|
30732
30762
|
reachable.add(current);
|
|
30733
30763
|
queue.push(...this.getEdgeTargets(current, reachable));
|
|
30764
|
+
queue.push(...this.nodes.get(current)?.gotoTargets ?? []);
|
|
30734
30765
|
}
|
|
30735
30766
|
return reachable;
|
|
30736
30767
|
}
|
|
@@ -46107,7 +46138,7 @@ function buildVotingInput(plan, config) {
|
|
|
46107
46138
|
}
|
|
46108
46139
|
async function executeSingleVote(plan, config, log) {
|
|
46109
46140
|
try {
|
|
46110
|
-
const { executeVoting } = await import("./consensus-vote-
|
|
46141
|
+
const { executeVoting } = await import("./consensus-vote-7GGJYVBF.js");
|
|
46111
46142
|
const input = buildVotingInput(plan, config);
|
|
46112
46143
|
const result = await executeVoting(input, log);
|
|
46113
46144
|
return parseVotingResult(result);
|
|
@@ -47902,7 +47933,7 @@ ${contextBlock}`;
|
|
|
47902
47933
|
const strategy = config.votingStrategy ?? "higher_order";
|
|
47903
47934
|
await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
|
|
47904
47935
|
try {
|
|
47905
|
-
const { executeVoting } = await import("./consensus-vote-
|
|
47936
|
+
const { executeVoting } = await import("./consensus-vote-7GGJYVBF.js");
|
|
47906
47937
|
const votingResult = await executeVoting(
|
|
47907
47938
|
{
|
|
47908
47939
|
proposal: buildVoteProposal(plan, research),
|
|
@@ -48994,7 +49025,7 @@ function securityFirstPack(files, budget) {
|
|
|
48994
49025
|
};
|
|
48995
49026
|
}
|
|
48996
49027
|
function packDiffForReview(prDiff, budget) {
|
|
48997
|
-
if (prDiff
|
|
49028
|
+
if (byteLen(prDiff) <= budget) {
|
|
48998
49029
|
return { coverage: void 0, packedDiff: prDiff, note: "" };
|
|
48999
49030
|
}
|
|
49000
49031
|
const pack = securityFirstPack(splitByFile(prDiff), budget);
|
|
@@ -56643,4 +56674,4 @@ export {
|
|
|
56643
56674
|
startPipelineEventBridge,
|
|
56644
56675
|
shutdownPipelineEventBridge
|
|
56645
56676
|
};
|
|
56646
|
-
//# sourceMappingURL=chunk-
|
|
56677
|
+
//# sourceMappingURL=chunk-6GGWO4B3.js.map
|