nexus-agents 8.3.0 → 8.3.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-R5F7Y5UY.js → chunk-3OU7XMEP.js} +2 -2
- package/dist/{chunk-K5GYF2LP.js → chunk-3RMLDTUF.js} +3 -3
- package/dist/{chunk-LY2FJKYX.js → chunk-44I4XVRU.js} +2 -2
- package/dist/{chunk-PDROJ5FZ.js → chunk-JGBXLELL.js} +2 -2
- package/dist/chunk-LZBARHPR.js +7 -0
- package/dist/{chunk-S7UZUGS7.js → chunk-ONSYYUB4.js} +107 -93
- package/dist/chunk-ONSYYUB4.js.map +1 -0
- package/dist/{chunk-ULQFMQE7.js → chunk-PGUZPMT4.js} +10 -4
- package/dist/{chunk-ULQFMQE7.js.map → chunk-PGUZPMT4.js.map} +1 -1
- package/dist/{chunk-UPEBXNNC.js → chunk-PSAXQXL5.js} +2 -2
- package/dist/{chunk-L2BM3TGM.js → chunk-VULYVX6X.js} +24 -9
- package/dist/chunk-VULYVX6X.js.map +1 -0
- package/dist/cli.js +11 -11
- package/dist/{consensus-vote-ZDBL2EA4.js → consensus-vote-H67IAMI2.js} +4 -4
- package/dist/{improvement-review-ZTF544Y7.js → improvement-review-UECHDBER.js} +4 -4
- package/dist/index.d.ts +45 -25
- package/dist/index.js +21 -10
- package/dist/index.js.map +1 -1
- package/dist/{issue-triage-MGYUQ7WN.js → issue-triage-6W5G6LC6.js} +3 -3
- package/dist/{pr-reviewer-helpers-74SUOXOV.js → pr-reviewer-helpers-NRVB6RVY.js} +3 -3
- package/dist/{setup-data-dir-GQ4QQKHZ.js → setup-data-dir-HJCC6U4N.js} +3 -3
- package/package.json +2 -2
- package/dist/chunk-7IDMD4IN.js +0 -7
- package/dist/chunk-L2BM3TGM.js.map +0 -1
- package/dist/chunk-S7UZUGS7.js.map +0 -1
- /package/dist/{chunk-R5F7Y5UY.js.map → chunk-3OU7XMEP.js.map} +0 -0
- /package/dist/{chunk-K5GYF2LP.js.map → chunk-3RMLDTUF.js.map} +0 -0
- /package/dist/{chunk-LY2FJKYX.js.map → chunk-44I4XVRU.js.map} +0 -0
- /package/dist/{chunk-PDROJ5FZ.js.map → chunk-JGBXLELL.js.map} +0 -0
- /package/dist/{chunk-7IDMD4IN.js.map → chunk-LZBARHPR.js.map} +0 -0
- /package/dist/{chunk-UPEBXNNC.js.map → chunk-PSAXQXL5.js.map} +0 -0
- /package/dist/{consensus-vote-ZDBL2EA4.js.map → consensus-vote-H67IAMI2.js.map} +0 -0
- /package/dist/{improvement-review-ZTF544Y7.js.map → improvement-review-UECHDBER.js.map} +0 -0
- /package/dist/{issue-triage-MGYUQ7WN.js.map → issue-triage-6W5G6LC6.js.map} +0 -0
- /package/dist/{pr-reviewer-helpers-74SUOXOV.js.map → pr-reviewer-helpers-NRVB6RVY.js.map} +0 -0
- /package/dist/{setup-data-dir-GQ4QQKHZ.js.map → setup-data-dir-HJCC6U4N.js.map} +0 -0
package/dist/cli.js
CHANGED
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
parseFindings,
|
|
20
20
|
reviewPostingBlock,
|
|
21
21
|
sumFindings
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-PSAXQXL5.js";
|
|
23
23
|
import "./chunk-6MPT2NRF.js";
|
|
24
24
|
import {
|
|
25
25
|
runConfigInitSync
|
|
@@ -153,7 +153,7 @@ import {
|
|
|
153
153
|
validateNexusEnv,
|
|
154
154
|
validateWorkflow,
|
|
155
155
|
wrapInMarkdownFence
|
|
156
|
-
} from "./chunk-
|
|
156
|
+
} from "./chunk-ONSYYUB4.js";
|
|
157
157
|
import "./chunk-ZYPEHPRM.js";
|
|
158
158
|
import "./chunk-DGWT7DXX.js";
|
|
159
159
|
import "./chunk-64GMIUM5.js";
|
|
@@ -172,7 +172,7 @@ import {
|
|
|
172
172
|
doctorCommand,
|
|
173
173
|
initDataDirectories,
|
|
174
174
|
runDoctor
|
|
175
|
-
} from "./chunk-
|
|
175
|
+
} from "./chunk-3RMLDTUF.js";
|
|
176
176
|
import {
|
|
177
177
|
buildOpenAICompatAdapters,
|
|
178
178
|
readOpenAICompatEnv
|
|
@@ -191,7 +191,7 @@ import {
|
|
|
191
191
|
recordAuthenticVote,
|
|
192
192
|
registerConsensusVoteTool,
|
|
193
193
|
toRecordDecision
|
|
194
|
-
} from "./chunk-
|
|
194
|
+
} from "./chunk-44I4XVRU.js";
|
|
195
195
|
import {
|
|
196
196
|
loadUsageEvents,
|
|
197
197
|
rollupByModel
|
|
@@ -208,12 +208,12 @@ import {
|
|
|
208
208
|
createFullGitHubProvider,
|
|
209
209
|
evaluatePolicy,
|
|
210
210
|
parsePRUrl
|
|
211
|
-
} from "./chunk-
|
|
211
|
+
} from "./chunk-JGBXLELL.js";
|
|
212
212
|
import "./chunk-QP423I4T.js";
|
|
213
213
|
import {
|
|
214
214
|
ReputationCache,
|
|
215
215
|
sanitizeInput
|
|
216
|
-
} from "./chunk-
|
|
216
|
+
} from "./chunk-PGUZPMT4.js";
|
|
217
217
|
import {
|
|
218
218
|
ImprovementReviewInputSchema,
|
|
219
219
|
calculateFitnessScore,
|
|
@@ -227,15 +227,15 @@ import {
|
|
|
227
227
|
registerImprovementReviewTool,
|
|
228
228
|
runImprovementReview,
|
|
229
229
|
scanForSecrets
|
|
230
|
-
} from "./chunk-
|
|
230
|
+
} from "./chunk-3OU7XMEP.js";
|
|
231
231
|
import {
|
|
232
232
|
createDefaultPolicyFirewall,
|
|
233
233
|
setGlobalPolicyFirewall,
|
|
234
234
|
stagePolicyFirewallForRollout
|
|
235
|
-
} from "./chunk-
|
|
235
|
+
} from "./chunk-VULYVX6X.js";
|
|
236
236
|
import {
|
|
237
237
|
VERSION
|
|
238
|
-
} from "./chunk-
|
|
238
|
+
} from "./chunk-LZBARHPR.js";
|
|
239
239
|
import "./chunk-U5YJKJK2.js";
|
|
240
240
|
import {
|
|
241
241
|
createUnifiedRegistry,
|
|
@@ -4459,7 +4459,7 @@ ${file.patch}
|
|
|
4459
4459
|
violations: policyResult.violations
|
|
4460
4460
|
});
|
|
4461
4461
|
}
|
|
4462
|
-
const { formatReviewComment: formatReviewComment2 } = await import("./pr-reviewer-helpers-
|
|
4462
|
+
const { formatReviewComment: formatReviewComment2 } = await import("./pr-reviewer-helpers-NRVB6RVY.js");
|
|
4463
4463
|
const body = formatReviewComment2(result);
|
|
4464
4464
|
const postResult = await provider.createReview(pr.prNumber, body, result.decision);
|
|
4465
4465
|
if (!postResult.ok) {
|
|
@@ -19586,7 +19586,7 @@ function startImprovementReviewScheduler(options) {
|
|
|
19586
19586
|
let running = false;
|
|
19587
19587
|
const runOnce = async () => {
|
|
19588
19588
|
try {
|
|
19589
|
-
const { runImprovementReview: runImprovementReview2, ImprovementReviewInputSchema: ImprovementReviewInputSchema2 } = await import("./improvement-review-
|
|
19589
|
+
const { runImprovementReview: runImprovementReview2, ImprovementReviewInputSchema: ImprovementReviewInputSchema2 } = await import("./improvement-review-UECHDBER.js");
|
|
19590
19590
|
const input = ImprovementReviewInputSchema2.parse({ fileIssues });
|
|
19591
19591
|
const result = await runImprovementReview2(input, { logger: logger22 });
|
|
19592
19592
|
logger22.info("Scheduled improvement_review complete", {
|
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
resetCorrelationTracker,
|
|
12
12
|
runConsensusForGoal,
|
|
13
13
|
unwrapVoteOrThrow
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-44I4XVRU.js";
|
|
15
15
|
import "./chunk-6LDUEA4I.js";
|
|
16
16
|
import "./chunk-OQB3XC5O.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-VULYVX6X.js";
|
|
18
|
+
import "./chunk-LZBARHPR.js";
|
|
19
19
|
import "./chunk-U5YJKJK2.js";
|
|
20
20
|
import "./chunk-F4AT3BCP.js";
|
|
21
21
|
import "./chunk-4U62WRPL.js";
|
|
@@ -50,4 +50,4 @@ export {
|
|
|
50
50
|
runConsensusForGoal,
|
|
51
51
|
unwrapVoteOrThrow
|
|
52
52
|
};
|
|
53
|
-
//# sourceMappingURL=consensus-vote-
|
|
53
|
+
//# sourceMappingURL=consensus-vote-H67IAMI2.js.map
|
|
@@ -11,9 +11,9 @@ import {
|
|
|
11
11
|
loadSelfEvalSignals,
|
|
12
12
|
registerImprovementReviewTool,
|
|
13
13
|
runImprovementReview
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-3OU7XMEP.js";
|
|
15
|
+
import "./chunk-VULYVX6X.js";
|
|
16
|
+
import "./chunk-LZBARHPR.js";
|
|
17
17
|
import "./chunk-U5YJKJK2.js";
|
|
18
18
|
import "./chunk-3MBGQAO2.js";
|
|
19
19
|
import "./chunk-ITCKXMOH.js";
|
|
@@ -33,4 +33,4 @@ export {
|
|
|
33
33
|
registerImprovementReviewTool,
|
|
34
34
|
runImprovementReview
|
|
35
35
|
};
|
|
36
|
-
//# sourceMappingURL=improvement-review-
|
|
36
|
+
//# sourceMappingURL=improvement-review-UECHDBER.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -27268,6 +27268,46 @@ interface PrReviewCoverage {
|
|
|
27268
27268
|
readonly strategy: 'budget';
|
|
27269
27269
|
}
|
|
27270
27270
|
|
|
27271
|
+
/**
|
|
27272
|
+
* Proposal construction for `pr_review`.
|
|
27273
|
+
*
|
|
27274
|
+
* Extracted from `pr-review-tool.ts` (#5385), which sat at 398 of its 400-line
|
|
27275
|
+
* budget — threading the sanitization disclosure through pushed it over, and
|
|
27276
|
+
* this is the cohesive piece to move, because the builder IS the sanitization
|
|
27277
|
+
* concern. A pure move apart from the `removedBeforeThisCall` parameter that
|
|
27278
|
+
* issue adds.
|
|
27279
|
+
*
|
|
27280
|
+
* `pr-review-tool.ts` re-exports the symbol, so both barrels
|
|
27281
|
+
* (`mcp/index.ts`, `mcp/tools/index.ts`), the published `exports/mcp.ts`, and
|
|
27282
|
+
* `scripts/pr-review-local.ts` / `scripts/pr-review-eval-run.ts` keep importing
|
|
27283
|
+
* it unchanged. The `PrReviewInput` import is type-only and therefore erased,
|
|
27284
|
+
* so the re-export creates no runtime cycle.
|
|
27285
|
+
*
|
|
27286
|
+
* @module mcp/tools/pr-review-proposal
|
|
27287
|
+
*/
|
|
27288
|
+
|
|
27289
|
+
/** Builds the proposal text passed to voters. The voters are designed for
|
|
27290
|
+
* yes/no proposals — by framing the diff as "should this PR be merged?" we
|
|
27291
|
+
* get usable output without needing new system prompts (Child 3 will add
|
|
27292
|
+
* those).
|
|
27293
|
+
*
|
|
27294
|
+
* **Sanitization lives HERE, not at the tool boundary (#5258 item B).** The
|
|
27295
|
+
* `securityTier: 'external'` declared on the registered tool only protects the
|
|
27296
|
+
* MCP path, because the middleware is constructed inside `registerPrReviewTool`.
|
|
27297
|
+
* Three other callers reach the voters without it — `.github/workflows/
|
|
27298
|
+
* pr-review.yml`, `scripts/pr-review-local.ts` (the documented default path)
|
|
27299
|
+
* and `scripts/pr-review-eval-run.ts` — each importing this builder directly
|
|
27300
|
+
* from `dist/index.js`. On those paths a hostile PR body reached five voters
|
|
27301
|
+
* unfenced, next to the words "should it be merged as-is?".
|
|
27302
|
+
*
|
|
27303
|
+
* This function is the one chokepoint all four callers pass through, so the
|
|
27304
|
+
* protection is attached to the data rather than to one entry point. The MCP
|
|
27305
|
+
* tier check still runs earlier and still refuses; this is the floor beneath
|
|
27306
|
+
* it, and it strips rather than refuses so the script paths degrade instead of
|
|
27307
|
+
* failing shut. Double-sanitizing on the MCP path is idempotent and harmless.
|
|
27308
|
+
*/
|
|
27309
|
+
declare function buildPrReviewProposal(input: Pick<PrReviewInput, 'prTitle' | 'prDescription' | 'prDiff' | 'repoContext' | 'baseRef' | 'headRef'>, removedBeforeThisCall?: number): string;
|
|
27310
|
+
|
|
27271
27311
|
/**
|
|
27272
27312
|
* nexus-agents/mcp - PR Review Tool (#2233 Child 1)
|
|
27273
27313
|
*
|
|
@@ -27418,27 +27458,7 @@ declare function mapVoteDecisionToPrDecision(voteDecision: 'approve' | 'reject'
|
|
|
27418
27458
|
* the baseline behavior.
|
|
27419
27459
|
*/
|
|
27420
27460
|
declare function aggregatePrDecisions(reviews: readonly PrReviewVote[], errorPolicy?: 'standard' | 'absolute_quorum'): PrReviewAggregate;
|
|
27421
|
-
|
|
27422
|
-
* yes/no proposals — by framing the diff as "should this PR be merged?" we
|
|
27423
|
-
* get usable output without needing new system prompts (Child 3 will add
|
|
27424
|
-
* those).
|
|
27425
|
-
*
|
|
27426
|
-
* **Sanitization lives HERE, not at the tool boundary (#5258 item B).** The
|
|
27427
|
-
* `securityTier: 'external'` declared on the registered tool only protects the
|
|
27428
|
-
* MCP path, because the middleware is constructed inside `registerPrReviewTool`.
|
|
27429
|
-
* Three other callers reach the voters without it — `.github/workflows/
|
|
27430
|
-
* pr-review.yml`, `scripts/pr-review-local.ts` (the documented default path)
|
|
27431
|
-
* and `scripts/pr-review-eval-run.ts` — each importing this builder directly
|
|
27432
|
-
* from `dist/index.js`. On those paths a hostile PR body reached five voters
|
|
27433
|
-
* unfenced, next to the words "should it be merged as-is?".
|
|
27434
|
-
*
|
|
27435
|
-
* This function is the one chokepoint all four callers pass through, so the
|
|
27436
|
-
* protection is attached to the data rather than to one entry point. The MCP
|
|
27437
|
-
* tier check still runs earlier and still refuses; this is the floor beneath
|
|
27438
|
-
* it, and it strips rather than refuses so the script paths degrade instead of
|
|
27439
|
-
* failing shut. Double-sanitizing on the MCP path is idempotent and harmless.
|
|
27440
|
-
*/
|
|
27441
|
-
declare function buildPrReviewProposal(input: Pick<PrReviewInput, 'prTitle' | 'prDescription' | 'prDiff' | 'repoContext' | 'baseRef' | 'headRef'>): string;
|
|
27461
|
+
|
|
27442
27462
|
/** @category MCP */
|
|
27443
27463
|
declare function registerPrReviewTool(server: McpServer, deps: PrReviewDeps): void;
|
|
27444
27464
|
|
|
@@ -31361,10 +31381,10 @@ declare const FIREWALL_POLICY_ENV_VAR = "NEXUS_FIREWALL_POLICY";
|
|
|
31361
31381
|
/**
|
|
31362
31382
|
* Resolve the firewall policy mode from the environment.
|
|
31363
31383
|
*
|
|
31364
|
-
* Never throws
|
|
31365
|
-
*
|
|
31366
|
-
*
|
|
31367
|
-
*
|
|
31384
|
+
* Never throws, because a security layer must not fail-closed at startup on an
|
|
31385
|
+
* operator typo (#3130). The two non-happy paths resolve DIFFERENTLY, though:
|
|
31386
|
+
* unset or empty resolves silently to `off` (absence is the normal state), while
|
|
31387
|
+
* an explicit-but-invalid value resolves to `audit` and emits one `warn`.
|
|
31368
31388
|
*
|
|
31369
31389
|
* @param env Environment to read (injectable for tests).
|
|
31370
31390
|
* @param logger Injectable for tests; defaults to the shared module logger.
|
package/dist/index.js
CHANGED
|
@@ -553,7 +553,7 @@ import {
|
|
|
553
553
|
withLogging,
|
|
554
554
|
withRetry,
|
|
555
555
|
withRetryWrapper
|
|
556
|
-
} from "./chunk-
|
|
556
|
+
} from "./chunk-ONSYYUB4.js";
|
|
557
557
|
import {
|
|
558
558
|
FALLBACK_SCANNER_DATA,
|
|
559
559
|
buildPlanFromAnalysis,
|
|
@@ -574,7 +574,7 @@ import {
|
|
|
574
574
|
connectTransport,
|
|
575
575
|
createServer,
|
|
576
576
|
startStdioServer
|
|
577
|
-
} from "./chunk-
|
|
577
|
+
} from "./chunk-3RMLDTUF.js";
|
|
578
578
|
import {
|
|
579
579
|
OPENAI_MODELS,
|
|
580
580
|
OPENAI_MODEL_ALIASES,
|
|
@@ -632,7 +632,7 @@ import {
|
|
|
632
632
|
generateProposalId,
|
|
633
633
|
parseAgentPairKey,
|
|
634
634
|
registerConsensusVoteTool
|
|
635
|
-
} from "./chunk-
|
|
635
|
+
} from "./chunk-44I4XVRU.js";
|
|
636
636
|
import "./chunk-6LDUEA4I.js";
|
|
637
637
|
import {
|
|
638
638
|
allOf
|
|
@@ -660,7 +660,7 @@ import {
|
|
|
660
660
|
requiresHumanApproval,
|
|
661
661
|
validateAgentAction,
|
|
662
662
|
validateCorroboration
|
|
663
|
-
} from "./chunk-
|
|
663
|
+
} from "./chunk-JGBXLELL.js";
|
|
664
664
|
import {
|
|
665
665
|
GitHubProvider,
|
|
666
666
|
ScmError
|
|
@@ -681,11 +681,11 @@ import {
|
|
|
681
681
|
resolveEnvMode,
|
|
682
682
|
resolveReputationGatingMode,
|
|
683
683
|
sanitizeInput
|
|
684
|
-
} from "./chunk-
|
|
684
|
+
} from "./chunk-PGUZPMT4.js";
|
|
685
685
|
import {
|
|
686
686
|
ImprovementReviewInputSchema,
|
|
687
687
|
registerImprovementReviewTool
|
|
688
|
-
} from "./chunk-
|
|
688
|
+
} from "./chunk-3OU7XMEP.js";
|
|
689
689
|
import {
|
|
690
690
|
AgentPerformanceSchema,
|
|
691
691
|
ConsensusAlgorithmSchema,
|
|
@@ -721,10 +721,10 @@ import {
|
|
|
721
721
|
toolSuccess,
|
|
722
722
|
toolSuccessStructured,
|
|
723
723
|
validateToolInput
|
|
724
|
-
} from "./chunk-
|
|
724
|
+
} from "./chunk-VULYVX6X.js";
|
|
725
725
|
import {
|
|
726
726
|
VERSION
|
|
727
|
-
} from "./chunk-
|
|
727
|
+
} from "./chunk-LZBARHPR.js";
|
|
728
728
|
import {
|
|
729
729
|
AuditTrail,
|
|
730
730
|
MAX_STRIPPED_ELEMENTS_PER_EVENT,
|
|
@@ -2589,7 +2589,18 @@ function resolveFirewallPolicyMode(env = process.env, logger12) {
|
|
|
2589
2589
|
FirewallPolicyModeSchema,
|
|
2590
2590
|
DEFAULT_FIREWALL_POLICY_MODE,
|
|
2591
2591
|
FIREWALL_POLICY_ENV_VAR,
|
|
2592
|
-
|
|
2592
|
+
{
|
|
2593
|
+
...logger12 !== void 0 ? { logger: logger12 } : {},
|
|
2594
|
+
// An explicit-but-invalid value lands on `audit`, NOT on the unset
|
|
2595
|
+
// default `off`. Unset means "the operator has not opted in" and `off` is
|
|
2596
|
+
// right for it; a typo means "the operator opted in and mistyped how",
|
|
2597
|
+
// and answering that with the most permissive mode hands them a firewall
|
|
2598
|
+
// that refuses nothing while they believe it is on. `audit` reports
|
|
2599
|
+
// without refusing, so it cannot break an external caller any more than
|
|
2600
|
+
// `off` can, and it emits the `wouldRefuse` telemetry the rollout is
|
|
2601
|
+
// supposed to be collecting — which `off` does not.
|
|
2602
|
+
invalidFallback: "audit"
|
|
2603
|
+
}
|
|
2593
2604
|
);
|
|
2594
2605
|
}
|
|
2595
2606
|
|
|
@@ -4879,7 +4890,7 @@ function buildVotingInput(plan, config) {
|
|
|
4879
4890
|
}
|
|
4880
4891
|
async function executeSingleVote(plan, config, log) {
|
|
4881
4892
|
try {
|
|
4882
|
-
const { executeVoting } = await import("./consensus-vote-
|
|
4893
|
+
const { executeVoting } = await import("./consensus-vote-H67IAMI2.js");
|
|
4883
4894
|
const input = buildVotingInput(plan, config);
|
|
4884
4895
|
const result = await executeVoting(input, log);
|
|
4885
4896
|
return parseVotingResult(result);
|