nexus-agents 8.82.2 → 8.84.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/{ast-rule-runner-6O4S36DX.js → ast-rule-runner-O2UYBG74.js} +3 -3
- package/dist/{child-mcp-config-MLVCPG3Y.js → child-mcp-config-W2EPNDEU.js} +2 -2
- package/dist/{chunk-FJRVXEYP.js → chunk-256K77ED.js} +5 -5
- package/dist/chunk-2NDA4DHW.js +65 -0
- package/dist/chunk-2NDA4DHW.js.map +1 -0
- package/dist/{chunk-53JFWRL4.js → chunk-3NPRFOSH.js} +7 -7
- package/dist/{chunk-IDV4V5UL.js → chunk-3VZCDTK5.js} +41 -37
- package/dist/{chunk-IDV4V5UL.js.map → chunk-3VZCDTK5.js.map} +1 -1
- package/dist/{chunk-N33SRZRW.js → chunk-4NH3RNU6.js} +2 -2
- package/dist/{chunk-AERTVBCZ.js → chunk-6W4KJFPT.js} +2 -2
- package/dist/{chunk-HXIN7YWW.js → chunk-6YQTQYKD.js} +10 -10
- package/dist/{chunk-2TR3B7MN.js → chunk-7WJIC7H6.js} +2 -2
- package/dist/{chunk-KF45ROST.js → chunk-ALCCX5DS.js} +2 -59
- package/dist/chunk-ALCCX5DS.js.map +1 -0
- package/dist/{chunk-KOH6JEZI.js → chunk-APF7COQN.js} +2 -2
- package/dist/{chunk-F2A24T2G.js → chunk-AQVSAPQD.js} +4 -4
- package/dist/{chunk-XOQEJXZI.js → chunk-B5C5IMIV.js} +4 -4
- package/dist/{chunk-TIYLC4CO.js → chunk-BTFOWREE.js} +2 -2
- package/dist/{chunk-5EOIYZDU.js → chunk-BZPRF4SJ.js} +3 -3
- package/dist/{chunk-HD6ZDDJ6.js → chunk-C4SNSFBV.js} +2 -2
- package/dist/{chunk-WDYKG5O4.js → chunk-FMN3QH3O.js} +2 -2
- package/dist/{chunk-7F2FCMQ4.js → chunk-H4X7QDTB.js} +144 -9
- package/dist/chunk-H4X7QDTB.js.map +1 -0
- package/dist/{chunk-SV2TOCSR.js → chunk-IPZC5BXM.js} +3 -3
- package/dist/{chunk-OHBE6HR2.js → chunk-JM7Z4XKP.js} +280 -175
- package/dist/chunk-JM7Z4XKP.js.map +1 -0
- package/dist/{chunk-NMZREDJU.js → chunk-KJHB4KH2.js} +3 -3
- package/dist/{chunk-FBEFRZVN.js → chunk-LWVRXNCL.js} +2 -2
- package/dist/{chunk-U3INGOUL.js → chunk-NO55AP2L.js} +7 -5
- package/dist/{chunk-U3INGOUL.js.map → chunk-NO55AP2L.js.map} +1 -1
- package/dist/{chunk-UMC4ZQD3.js → chunk-NYF2WZAK.js} +2 -2
- package/dist/{chunk-RRTISAC5.js → chunk-OY27GVJ4.js} +35 -25
- package/dist/chunk-OY27GVJ4.js.map +1 -0
- package/dist/{chunk-PI4IEWV7.js → chunk-PD2GZQYH.js} +2 -2
- package/dist/{chunk-GNEEMEFT.js → chunk-PW4DLY5W.js} +2 -2
- package/dist/{chunk-AOGHVE7R.js → chunk-QOJS3KCM.js} +3 -3
- package/dist/{chunk-XTAQB2Q7.js → chunk-TURGEY3I.js} +2 -2
- package/dist/{chunk-UENTSMG4.js → chunk-U53CKPED.js} +2 -2
- package/dist/{chunk-QMPGR6OV.js → chunk-UFO5A53B.js} +2 -2
- package/dist/{chunk-QZDAUREE.js → chunk-UMFQ52XI.js} +11 -9
- package/dist/{chunk-QZDAUREE.js.map → chunk-UMFQ52XI.js.map} +1 -1
- package/dist/{chunk-IKE2GXXX.js → chunk-XNX4SH4O.js} +2 -2
- package/dist/{chunk-3V2D36A4.js → chunk-YRTHZDTO.js} +2 -2
- package/dist/{chunk-AVF7O3PL.js → chunk-YWEZ7W4K.js} +4 -4
- package/dist/{cli-circuit-breaker-FXQH22KK.js → cli-circuit-breaker-2T4GGSUE.js} +3 -3
- package/dist/cli.js +52 -47
- package/dist/cli.js.map +1 -1
- package/dist/{composite-router-APJYUPW4.js → composite-router-DH2S2IVK.js} +2 -2
- package/dist/{consensus-vote-2OADIAQL.js → consensus-vote-TV7NW6HD.js} +17 -16
- package/dist/{context-retriever-3XWQNB5L.js → context-retriever-5NGYA4JC.js} +8 -8
- package/dist/{doctor-deep-FCD7FJ3V.js → doctor-deep-535NDUD2.js} +3 -3
- package/dist/{doctor-live-Z7MLIFKZ.js → doctor-live-CAREILU5.js} +11 -10
- package/dist/{doctor-live-Z7MLIFKZ.js.map → doctor-live-CAREILU5.js.map} +1 -1
- package/dist/{expert-bridge-MTEI4DDI.js → expert-bridge-7WAFFJWN.js} +4 -4
- package/dist/{factory-MPBBQ4FK.js → factory-L2OVYRN4.js} +10 -9
- package/dist/{factory-ZNMNAIZA.js → factory-ZU75VK4Z.js} +5 -5
- package/dist/{improvement-review-WOR3EFIY.js → improvement-review-6D6LV5H5.js} +6 -5
- package/dist/index.d.ts +129 -68
- package/dist/index.js +31 -30
- package/dist/index.js.map +1 -1
- package/dist/{init-opencode-ODHQ4XBO.js → init-opencode-SHNOT2CZ.js} +6 -5
- package/dist/{init-opencode-ODHQ4XBO.js.map → init-opencode-SHNOT2CZ.js.map} +1 -1
- package/dist/issue-triage-XG2AISLY.js +16 -0
- package/dist/model-registry.generated.json +7269 -3654
- package/dist/models-dev-snapshot.json +98 -2
- package/dist/{pr-reviewer-helpers-QQZOOUTR.js → pr-reviewer-helpers-P6DXUMTO.js} +4 -4
- package/dist/{registry-command-L737NQV4.js → registry-command-R336DHZS.js} +2 -2
- package/dist/{repo-security-plan-VH3TC2PF.js → repo-security-plan-LLTLKJWF.js} +3 -3
- package/dist/{research-helpers-synthesize-447FYLA6.js → research-helpers-synthesize-N7NYBAKW.js} +4 -4
- package/dist/{routing-memory-GIBMSJ3G.js → routing-memory-YLQPO5OH.js} +2 -2
- package/dist/{session-memory-FCUX7KDT.js → session-memory-6PNSAPG4.js} +3 -3
- package/dist/{setup-config-VASKDBCD.js → setup-config-SY3HM5OH.js} +3 -3
- package/dist/{setup-custom-api-7UZRT3HI.js → setup-custom-api-ZEGB745O.js} +4 -4
- package/dist/setup-data-dir-Y6FMGFGP.js +32 -0
- package/dist/{tool-memory-LKD4XXNT.js → tool-memory-3GBF2OOW.js} +5 -5
- package/dist/{unified-registry-5Q4CHKFW.js → unified-registry-SCYTXNHW.js} +11 -10
- package/dist/{weather-report-NZDS5BLK.js → weather-report-NGBJYVS6.js} +2 -2
- package/package.json +4 -4
- package/dist/chunk-7F2FCMQ4.js.map +0 -1
- package/dist/chunk-KF45ROST.js.map +0 -1
- package/dist/chunk-OHBE6HR2.js.map +0 -1
- package/dist/chunk-RRTISAC5.js.map +0 -1
- package/dist/issue-triage-2EG4ARA4.js +0 -16
- package/dist/setup-data-dir-ZHSJ3AQ5.js +0 -31
- /package/dist/{ast-rule-runner-6O4S36DX.js.map → ast-rule-runner-O2UYBG74.js.map} +0 -0
- /package/dist/{child-mcp-config-MLVCPG3Y.js.map → child-mcp-config-W2EPNDEU.js.map} +0 -0
- /package/dist/{chunk-FJRVXEYP.js.map → chunk-256K77ED.js.map} +0 -0
- /package/dist/{chunk-53JFWRL4.js.map → chunk-3NPRFOSH.js.map} +0 -0
- /package/dist/{chunk-N33SRZRW.js.map → chunk-4NH3RNU6.js.map} +0 -0
- /package/dist/{chunk-AERTVBCZ.js.map → chunk-6W4KJFPT.js.map} +0 -0
- /package/dist/{chunk-HXIN7YWW.js.map → chunk-6YQTQYKD.js.map} +0 -0
- /package/dist/{chunk-2TR3B7MN.js.map → chunk-7WJIC7H6.js.map} +0 -0
- /package/dist/{chunk-KOH6JEZI.js.map → chunk-APF7COQN.js.map} +0 -0
- /package/dist/{chunk-F2A24T2G.js.map → chunk-AQVSAPQD.js.map} +0 -0
- /package/dist/{chunk-XOQEJXZI.js.map → chunk-B5C5IMIV.js.map} +0 -0
- /package/dist/{chunk-TIYLC4CO.js.map → chunk-BTFOWREE.js.map} +0 -0
- /package/dist/{chunk-5EOIYZDU.js.map → chunk-BZPRF4SJ.js.map} +0 -0
- /package/dist/{chunk-HD6ZDDJ6.js.map → chunk-C4SNSFBV.js.map} +0 -0
- /package/dist/{chunk-WDYKG5O4.js.map → chunk-FMN3QH3O.js.map} +0 -0
- /package/dist/{chunk-SV2TOCSR.js.map → chunk-IPZC5BXM.js.map} +0 -0
- /package/dist/{chunk-NMZREDJU.js.map → chunk-KJHB4KH2.js.map} +0 -0
- /package/dist/{chunk-FBEFRZVN.js.map → chunk-LWVRXNCL.js.map} +0 -0
- /package/dist/{chunk-UMC4ZQD3.js.map → chunk-NYF2WZAK.js.map} +0 -0
- /package/dist/{chunk-PI4IEWV7.js.map → chunk-PD2GZQYH.js.map} +0 -0
- /package/dist/{chunk-GNEEMEFT.js.map → chunk-PW4DLY5W.js.map} +0 -0
- /package/dist/{chunk-AOGHVE7R.js.map → chunk-QOJS3KCM.js.map} +0 -0
- /package/dist/{chunk-XTAQB2Q7.js.map → chunk-TURGEY3I.js.map} +0 -0
- /package/dist/{chunk-UENTSMG4.js.map → chunk-U53CKPED.js.map} +0 -0
- /package/dist/{chunk-QMPGR6OV.js.map → chunk-UFO5A53B.js.map} +0 -0
- /package/dist/{chunk-IKE2GXXX.js.map → chunk-XNX4SH4O.js.map} +0 -0
- /package/dist/{chunk-3V2D36A4.js.map → chunk-YRTHZDTO.js.map} +0 -0
- /package/dist/{chunk-AVF7O3PL.js.map → chunk-YWEZ7W4K.js.map} +0 -0
- /package/dist/{cli-circuit-breaker-FXQH22KK.js.map → cli-circuit-breaker-2T4GGSUE.js.map} +0 -0
- /package/dist/{composite-router-APJYUPW4.js.map → composite-router-DH2S2IVK.js.map} +0 -0
- /package/dist/{consensus-vote-2OADIAQL.js.map → consensus-vote-TV7NW6HD.js.map} +0 -0
- /package/dist/{context-retriever-3XWQNB5L.js.map → context-retriever-5NGYA4JC.js.map} +0 -0
- /package/dist/{doctor-deep-FCD7FJ3V.js.map → doctor-deep-535NDUD2.js.map} +0 -0
- /package/dist/{expert-bridge-MTEI4DDI.js.map → expert-bridge-7WAFFJWN.js.map} +0 -0
- /package/dist/{factory-MPBBQ4FK.js.map → factory-L2OVYRN4.js.map} +0 -0
- /package/dist/{factory-ZNMNAIZA.js.map → factory-ZU75VK4Z.js.map} +0 -0
- /package/dist/{improvement-review-WOR3EFIY.js.map → improvement-review-6D6LV5H5.js.map} +0 -0
- /package/dist/{issue-triage-2EG4ARA4.js.map → issue-triage-XG2AISLY.js.map} +0 -0
- /package/dist/{pr-reviewer-helpers-QQZOOUTR.js.map → pr-reviewer-helpers-P6DXUMTO.js.map} +0 -0
- /package/dist/{registry-command-L737NQV4.js.map → registry-command-R336DHZS.js.map} +0 -0
- /package/dist/{repo-security-plan-VH3TC2PF.js.map → repo-security-plan-LLTLKJWF.js.map} +0 -0
- /package/dist/{research-helpers-synthesize-447FYLA6.js.map → research-helpers-synthesize-N7NYBAKW.js.map} +0 -0
- /package/dist/{routing-memory-GIBMSJ3G.js.map → routing-memory-YLQPO5OH.js.map} +0 -0
- /package/dist/{session-memory-FCUX7KDT.js.map → session-memory-6PNSAPG4.js.map} +0 -0
- /package/dist/{setup-config-VASKDBCD.js.map → setup-config-SY3HM5OH.js.map} +0 -0
- /package/dist/{setup-custom-api-7UZRT3HI.js.map → setup-custom-api-ZEGB745O.js.map} +0 -0
- /package/dist/{setup-data-dir-ZHSJ3AQ5.js.map → setup-data-dir-Y6FMGFGP.js.map} +0 -0
- /package/dist/{tool-memory-LKD4XXNT.js.map → tool-memory-3GBF2OOW.js.map} +0 -0
- /package/dist/{unified-registry-5Q4CHKFW.js.map → unified-registry-SCYTXNHW.js.map} +0 -0
- /package/dist/{weather-report-NZDS5BLK.js.map → weather-report-NGBJYVS6.js.map} +0 -0
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
getBuiltInAstRulesPath,
|
|
10
10
|
loadRules,
|
|
11
11
|
runAstQaRules
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-BTFOWREE.js";
|
|
13
|
+
import "./chunk-IPZC5BXM.js";
|
|
14
14
|
import "./chunk-4UHDDCRB.js";
|
|
15
15
|
import "./chunk-RNDHNRSX.js";
|
|
16
16
|
import "./chunk-PX6F3LHL.js";
|
|
@@ -26,4 +26,4 @@ export {
|
|
|
26
26
|
loadRules,
|
|
27
27
|
runAstQaRules
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=ast-rule-runner-
|
|
29
|
+
//# sourceMappingURL=ast-rule-runner-O2UYBG74.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-HERI7LXN.js";
|
|
4
4
|
import {
|
|
5
5
|
createLogger
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-IPZC5BXM.js";
|
|
7
7
|
import "./chunk-4UHDDCRB.js";
|
|
8
8
|
import "./chunk-RNDHNRSX.js";
|
|
9
9
|
import "./chunk-PX6F3LHL.js";
|
|
@@ -56,4 +56,4 @@ async function generateMcpConfig(options) {
|
|
|
56
56
|
export {
|
|
57
57
|
generateMcpConfig
|
|
58
58
|
};
|
|
59
|
-
//# sourceMappingURL=child-mcp-config-
|
|
59
|
+
//# sourceMappingURL=child-mcp-config-W2EPNDEU.js.map
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
loadTechniquesRegistry,
|
|
9
9
|
resolveInsideRoot,
|
|
10
10
|
savePapersRegistry
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-LWVRXNCL.js";
|
|
12
12
|
import {
|
|
13
13
|
resolveToken
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-APF7COQN.js";
|
|
15
15
|
import {
|
|
16
16
|
getToolMemory
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-AQVSAPQD.js";
|
|
18
18
|
import {
|
|
19
19
|
capitalizeWords,
|
|
20
20
|
tokenizeFiltered,
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
ok,
|
|
44
44
|
registerPersistentDistillerFactory,
|
|
45
45
|
sigmoidConfidence
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-IPZC5BXM.js";
|
|
47
47
|
import {
|
|
48
48
|
ensureLearningDir,
|
|
49
49
|
getRulesFile
|
|
@@ -4241,4 +4241,4 @@ export {
|
|
|
4241
4241
|
DEFAULT_CONTEXT_BUDGET_TOKENS,
|
|
4242
4242
|
getContextPromptPrefix
|
|
4243
4243
|
};
|
|
4244
|
-
//# sourceMappingURL=chunk-
|
|
4244
|
+
//# sourceMappingURL=chunk-256K77ED.js.map
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// src/security/output-sanitizer.ts
|
|
2
|
+
var REDACTED_KEY_PLACEHOLDER = "[REDACTED_KEY]";
|
|
3
|
+
var KEY_PATTERNS = [
|
|
4
|
+
// Anthropic: sk-ant-api03-... (at least 20 chars after prefix)
|
|
5
|
+
/sk-ant-[A-Za-z0-9_-]{20,}/g,
|
|
6
|
+
// OpenAI project: sk-proj-... (at least 20 chars after prefix)
|
|
7
|
+
/sk-proj-[A-Za-z0-9_-]{20,}/g,
|
|
8
|
+
// Generic OpenAI: sk-... (at least 20 chars after prefix)
|
|
9
|
+
/sk-[A-Za-z0-9_-]{20,}/g,
|
|
10
|
+
// Public keys: pk-...
|
|
11
|
+
/pk-[A-Za-z0-9_-]{20,}/g,
|
|
12
|
+
// AWS access key ID
|
|
13
|
+
/\bAKIA[A-Z0-9]{16}\b/g,
|
|
14
|
+
// Google AI / Gemini: AIzaSy... (at least 30 chars total)
|
|
15
|
+
/AIzaSy[A-Za-z0-9_-]{24,}/g,
|
|
16
|
+
// GitHub PAT: ghp_...
|
|
17
|
+
/ghp_[A-Za-z0-9]{20,}/g,
|
|
18
|
+
// GitHub OAuth: gho_...
|
|
19
|
+
/gho_[A-Za-z0-9]{20,}/g,
|
|
20
|
+
// GitLab PAT: glpat-...
|
|
21
|
+
/glpat-[A-Za-z0-9_-]{10,}/g,
|
|
22
|
+
// npm token: npm_...
|
|
23
|
+
/npm_[A-Za-z0-9]{20,}/g,
|
|
24
|
+
// PyPI token: pypi-...
|
|
25
|
+
/pypi-[A-Za-z0-9_-]{20,}/g
|
|
26
|
+
];
|
|
27
|
+
function sanitizeOutput(text, placeholder = REDACTED_KEY_PLACEHOLDER) {
|
|
28
|
+
if (text === "") return text;
|
|
29
|
+
let result = text;
|
|
30
|
+
for (const pattern of KEY_PATTERNS) {
|
|
31
|
+
pattern.lastIndex = 0;
|
|
32
|
+
result = result.replace(pattern, placeholder);
|
|
33
|
+
}
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
function sanitizeErrorDetails(text, apiKey, placeholder = REDACTED_KEY_PLACEHOLDER) {
|
|
37
|
+
if (text === "") return "";
|
|
38
|
+
let result = text;
|
|
39
|
+
if (apiKey !== void 0 && apiKey.trim() !== "") {
|
|
40
|
+
result = result.replaceAll(apiKey.trim(), placeholder);
|
|
41
|
+
}
|
|
42
|
+
result = sanitizeOutput(result, placeholder);
|
|
43
|
+
result = result.replace(/https?:\/\/[^\s/@]+@[^\s/]+/g, (match) => {
|
|
44
|
+
return match.replace(/https?:\/\/[^\s/@]+@/, `https://${placeholder}@`);
|
|
45
|
+
});
|
|
46
|
+
result = result.replace(/(authorization:\s*bearer\s+)\S+/gi, `$1${placeholder}`);
|
|
47
|
+
result = result.replace(/(authorization:\s*basic\s+)\S+/gi, `$1${placeholder}`);
|
|
48
|
+
result = result.replace(/(bearer\s+)[A-Za-z0-9._~+/-]+=*/gi, `$1${placeholder}`);
|
|
49
|
+
result = result.replace(/(\b(?:password|passwd|secret)\s*[=:]\s*)\S{4,}/gi, `$1${placeholder}`);
|
|
50
|
+
result = result.replace(
|
|
51
|
+
/([?&](?:api[_-]?key|token|access[_-]?token|secret|password|prompt|system_prompt|user_prompt)=)[^&\s]+/gi,
|
|
52
|
+
`$1${placeholder}`
|
|
53
|
+
);
|
|
54
|
+
result = result.replace(
|
|
55
|
+
/"(api[_-]?key|access[_-]?token|token|secret|password|prompt|system_prompt|user_prompt)"\s*:\s*"(?:[^"\\]|\\.)*"/gi,
|
|
56
|
+
`"$1": "${placeholder}"`
|
|
57
|
+
);
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export {
|
|
62
|
+
sanitizeOutput,
|
|
63
|
+
sanitizeErrorDetails
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=chunk-2NDA4DHW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/security/output-sanitizer.ts"],"sourcesContent":["/**\n * nexus-agents/security - Output Sanitizer\n *\n * Redacts API keys and tokens from CLI subprocess stdout/stderr\n * before the output is returned, logged, or traced.\n *\n * @module security/output-sanitizer\n * (Source: Issue #1597 — subprocess output scrubbing gap)\n */\n\n/** Placeholder text that replaces redacted keys. */\nexport const REDACTED_KEY_PLACEHOLDER = '[REDACTED_KEY]';\n\n/**\n * Patterns matching known API key formats.\n *\n * Order matters: more-specific prefixes (sk-ant-, sk-proj-) come before\n * the generic sk-* pattern so they match first.\n *\n * Each pattern requires a minimum token length after the prefix to avoid\n * false positives on short strings like \"sk-ab\".\n */\nconst KEY_PATTERNS: readonly RegExp[] = [\n // Anthropic: sk-ant-api03-... (at least 20 chars after prefix)\n /sk-ant-[A-Za-z0-9_-]{20,}/g,\n // OpenAI project: sk-proj-... (at least 20 chars after prefix)\n /sk-proj-[A-Za-z0-9_-]{20,}/g,\n // Generic OpenAI: sk-... (at least 20 chars after prefix)\n /sk-[A-Za-z0-9_-]{20,}/g,\n // Public keys: pk-...\n /pk-[A-Za-z0-9_-]{20,}/g,\n // AWS access key ID\n /\\bAKIA[A-Z0-9]{16}\\b/g,\n // Google AI / Gemini: AIzaSy... (at least 30 chars total)\n /AIzaSy[A-Za-z0-9_-]{24,}/g,\n // GitHub PAT: ghp_...\n /ghp_[A-Za-z0-9]{20,}/g,\n // GitHub OAuth: gho_...\n /gho_[A-Za-z0-9]{20,}/g,\n // GitLab PAT: glpat-...\n /glpat-[A-Za-z0-9_-]{10,}/g,\n // npm token: npm_...\n /npm_[A-Za-z0-9]{20,}/g,\n // PyPI token: pypi-...\n /pypi-[A-Za-z0-9_-]{20,}/g,\n];\n\n/**\n * Redacts known API key patterns from a string.\n *\n * Designed to be called on subprocess stdout/stderr before the output\n * is returned to callers, written to logs, or included in trace data.\n *\n * @param text - Raw subprocess output\n * @param placeholder - Replacement placeholder (default: [REDACTED_KEY])\n * @returns The same text with API keys replaced by placeholder\n */\nexport function sanitizeOutput(\n text: string,\n placeholder: string = REDACTED_KEY_PLACEHOLDER\n): string {\n if (text === '') return text;\n\n let result = text;\n for (const pattern of KEY_PATTERNS) {\n // Reset lastIndex for global regex reuse\n pattern.lastIndex = 0;\n result = result.replace(pattern, placeholder);\n }\n return result;\n}\n\n/**\n * Redacts credentials (API keys, authorization headers, Bearer tokens, URL credentials,\n * and sensitive JSON fields) from error messages and response bodies.\n *\n * Designed to be called on upstream API error representations before they are\n * attached to error envelopes, logged, or returned to callers.\n *\n * @param text - Raw error message or serialized error body\n * @param apiKey - Optional configured API key to redact by exact match\n * @returns The sanitized text with credentials redacted\n */\nexport function sanitizeErrorDetails(\n text: string,\n apiKey?: string,\n placeholder: string = REDACTED_KEY_PLACEHOLDER\n): string {\n if (text === '') return '';\n\n let result = text;\n if (apiKey !== undefined && apiKey.trim() !== '') {\n result = result.replaceAll(apiKey.trim(), placeholder);\n }\n\n // Redact known key patterns\n result = sanitizeOutput(result, placeholder);\n\n // Redact URL credentials like https://user:pass@host or https://token@host\n result = result.replace(/https?:\\/\\/[^\\s/@]+@[^\\s/]+/g, (match) => {\n return match.replace(/https?:\\/\\/[^\\s/@]+@/, `https://${placeholder}@`);\n });\n\n // Redact Authorization headers: Bearer and Basic tokens\n result = result.replace(/(authorization:\\s*bearer\\s+)\\S+/gi, `$1${placeholder}`);\n result = result.replace(/(authorization:\\s*basic\\s+)\\S+/gi, `$1${placeholder}`);\n result = result.replace(/(bearer\\s+)[A-Za-z0-9._~+/-]+=*/gi, `$1${placeholder}`);\n\n // Redact plain text assignments like password=... or secret: ...\n result = result.replace(/(\\b(?:password|passwd|secret)\\s*[=:]\\s*)\\S{4,}/gi, `$1${placeholder}`);\n\n // Redact sensitive query parameters in URLs or logs (?api_key=..., &token=..., &prompt=...)\n result = result.replace(\n /([?&](?:api[_-]?key|token|access[_-]?token|secret|password|prompt|system_prompt|user_prompt)=)[^&\\s]+/gi,\n `$1${placeholder}`\n );\n\n // Redact sensitive JSON keys: \"api_key\": \"...\", \"token\": \"...\", \"prompt\": \"...\", etc.\n result = result.replace(\n /\"(api[_-]?key|access[_-]?token|token|secret|password|prompt|system_prompt|user_prompt)\"\\s*:\\s*\"(?:[^\"\\\\]|\\\\.)*\"/gi,\n `\"$1\": \"${placeholder}\"`\n );\n\n return result;\n}\n"],"mappings":";AAWO,IAAM,2BAA2B;AAWxC,IAAM,eAAkC;AAAA;AAAA,EAEtC;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AACF;AAYO,SAAS,eACd,MACA,cAAsB,0BACd;AACR,MAAI,SAAS,GAAI,QAAO;AAExB,MAAI,SAAS;AACb,aAAW,WAAW,cAAc;AAElC,YAAQ,YAAY;AACpB,aAAS,OAAO,QAAQ,SAAS,WAAW;AAAA,EAC9C;AACA,SAAO;AACT;AAaO,SAAS,qBACd,MACA,QACA,cAAsB,0BACd;AACR,MAAI,SAAS,GAAI,QAAO;AAExB,MAAI,SAAS;AACb,MAAI,WAAW,UAAa,OAAO,KAAK,MAAM,IAAI;AAChD,aAAS,OAAO,WAAW,OAAO,KAAK,GAAG,WAAW;AAAA,EACvD;AAGA,WAAS,eAAe,QAAQ,WAAW;AAG3C,WAAS,OAAO,QAAQ,gCAAgC,CAAC,UAAU;AACjE,WAAO,MAAM,QAAQ,wBAAwB,WAAW,WAAW,GAAG;AAAA,EACxE,CAAC;AAGD,WAAS,OAAO,QAAQ,qCAAqC,KAAK,WAAW,EAAE;AAC/E,WAAS,OAAO,QAAQ,oCAAoC,KAAK,WAAW,EAAE;AAC9E,WAAS,OAAO,QAAQ,qCAAqC,KAAK,WAAW,EAAE;AAG/E,WAAS,OAAO,QAAQ,oDAAoD,KAAK,WAAW,EAAE;AAG9F,WAAS,OAAO;AAAA,IACd;AAAA,IACA,KAAK,WAAW;AAAA,EAClB;AAGA,WAAS,OAAO;AAAA,IACd;AAAA,IACA,UAAU,WAAW;AAAA,EACvB;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveCliSlot
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NYF2WZAK.js";
|
|
4
4
|
import {
|
|
5
5
|
createLogger,
|
|
6
6
|
getTimeProvider,
|
|
7
7
|
isRateLimitText
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-IPZC5BXM.js";
|
|
9
9
|
|
|
10
10
|
// src/pipeline/expert-bridge.ts
|
|
11
11
|
function resolveCliFromModelString(model) {
|
|
@@ -21,7 +21,7 @@ async function getMcpConfigPath() {
|
|
|
21
21
|
if (cachedMcpConfigPath !== null) return cachedMcpConfigPath;
|
|
22
22
|
mcpConfigInitPromise ??= (async () => {
|
|
23
23
|
try {
|
|
24
|
-
const { generateMcpConfig } = await import("./child-mcp-config-
|
|
24
|
+
const { generateMcpConfig } = await import("./child-mcp-config-W2EPNDEU.js");
|
|
25
25
|
const config = await generateMcpConfig();
|
|
26
26
|
cachedMcpConfigPath = config.configPath;
|
|
27
27
|
cachedMcpConfigCleanup = config.cleanup;
|
|
@@ -93,8 +93,8 @@ var routerInitPromise = null;
|
|
|
93
93
|
async function getRouter() {
|
|
94
94
|
if (cachedRouter !== null) return cachedRouter;
|
|
95
95
|
routerInitPromise ??= (async () => {
|
|
96
|
-
const { createAllAdapters } = await import("./factory-
|
|
97
|
-
const { createCompositeRouter } = await import("./composite-router-
|
|
96
|
+
const { createAllAdapters } = await import("./factory-L2OVYRN4.js");
|
|
97
|
+
const { createCompositeRouter } = await import("./composite-router-DH2S2IVK.js");
|
|
98
98
|
const adapters = createAllAdapters();
|
|
99
99
|
if (adapters.size === 0) {
|
|
100
100
|
routerInitPromise = null;
|
|
@@ -102,7 +102,7 @@ async function getRouter() {
|
|
|
102
102
|
}
|
|
103
103
|
cachedRouter = adaptCompositeRouter(createCompositeRouter(adapters));
|
|
104
104
|
try {
|
|
105
|
-
const { createCliCircuitBreakerIntegration } = await import("./cli-circuit-breaker-
|
|
105
|
+
const { createCliCircuitBreakerIntegration } = await import("./cli-circuit-breaker-2T4GGSUE.js");
|
|
106
106
|
cachedCircuitBreaker = createCliCircuitBreakerIntegration([...adapters.values()]);
|
|
107
107
|
} catch (error) {
|
|
108
108
|
const msg = error instanceof Error ? error.message : String(error);
|
|
@@ -216,4 +216,4 @@ export {
|
|
|
216
216
|
tokenSplitFromUsage,
|
|
217
217
|
executeExpert
|
|
218
218
|
};
|
|
219
|
-
//# sourceMappingURL=chunk-
|
|
219
|
+
//# sourceMappingURL=chunk-3NPRFOSH.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
generateSecurityPlan
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YRTHZDTO.js";
|
|
4
4
|
import {
|
|
5
5
|
analyzeGitHubRepo
|
|
6
6
|
} from "./chunk-4GDMHCKX.js";
|
|
@@ -21,10 +21,10 @@ import {
|
|
|
21
21
|
import {
|
|
22
22
|
DEFAULT_TASK_TTL_MS,
|
|
23
23
|
clampTaskTtl
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-6YQTQYKD.js";
|
|
25
25
|
import {
|
|
26
26
|
executeExpert
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-3NPRFOSH.js";
|
|
28
28
|
import {
|
|
29
29
|
DEPRECATED_MODE_ALIAS_INPUT,
|
|
30
30
|
JobStatusSchema,
|
|
@@ -72,7 +72,7 @@ import {
|
|
|
72
72
|
updateStage,
|
|
73
73
|
withWarnings,
|
|
74
74
|
writeJobCancelled
|
|
75
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-JM7Z4XKP.js";
|
|
76
76
|
import {
|
|
77
77
|
allOf,
|
|
78
78
|
anyOf
|
|
@@ -80,7 +80,7 @@ import {
|
|
|
80
80
|
import {
|
|
81
81
|
normalizeTopicToCanonical,
|
|
82
82
|
synthesizeResearch
|
|
83
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-BZPRF4SJ.js";
|
|
84
84
|
import {
|
|
85
85
|
IssueTriage,
|
|
86
86
|
createAuditTrail,
|
|
@@ -89,13 +89,13 @@ import {
|
|
|
89
89
|
createGraphAuditBridge,
|
|
90
90
|
emitPipelinePolicyEvent,
|
|
91
91
|
readActionRefusal
|
|
92
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-H4X7QDTB.js";
|
|
93
93
|
import {
|
|
94
94
|
sanitizeInput
|
|
95
|
-
} from "./chunk-
|
|
95
|
+
} from "./chunk-U53CKPED.js";
|
|
96
96
|
import {
|
|
97
97
|
withPrerequisite
|
|
98
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-QOJS3KCM.js";
|
|
99
99
|
import {
|
|
100
100
|
NOOP_NOTIFIER,
|
|
101
101
|
RateLimiter,
|
|
@@ -120,14 +120,14 @@ import {
|
|
|
120
120
|
toolSuccessStructured,
|
|
121
121
|
withProgressHeartbeat,
|
|
122
122
|
wrapToolWithTimeout
|
|
123
|
-
} from "./chunk-
|
|
123
|
+
} from "./chunk-OY27GVJ4.js";
|
|
124
124
|
import {
|
|
125
125
|
EventTopics,
|
|
126
126
|
UNRESOLVED_MODEL_ID,
|
|
127
127
|
createEvent,
|
|
128
128
|
getGlobalEventBus,
|
|
129
129
|
getGlobalRegistry
|
|
130
|
-
} from "./chunk-
|
|
130
|
+
} from "./chunk-YWEZ7W4K.js";
|
|
131
131
|
import {
|
|
132
132
|
IDENTIFIER_RE,
|
|
133
133
|
LANG_VALUES,
|
|
@@ -160,7 +160,7 @@ import {
|
|
|
160
160
|
parseRegistry,
|
|
161
161
|
sourceExistsInRegistry,
|
|
162
162
|
summarizeContextForPrompt
|
|
163
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-256K77ED.js";
|
|
164
164
|
import {
|
|
165
165
|
REGISTRY_PATH,
|
|
166
166
|
getProjectRoot,
|
|
@@ -168,25 +168,25 @@ import {
|
|
|
168
168
|
loadTechniquesRegistry,
|
|
169
169
|
resolveInsideRoot,
|
|
170
170
|
resolveRegistryRoot
|
|
171
|
-
} from "./chunk-
|
|
171
|
+
} from "./chunk-LWVRXNCL.js";
|
|
172
172
|
import {
|
|
173
173
|
getTokenEnvVars,
|
|
174
174
|
resolveToken
|
|
175
|
-
} from "./chunk-
|
|
175
|
+
} from "./chunk-APF7COQN.js";
|
|
176
176
|
import {
|
|
177
177
|
DEFAULT_RELEVANCE_CONFIG,
|
|
178
178
|
MemoryImportance,
|
|
179
179
|
MemoryType,
|
|
180
180
|
calculateTextJaccardSimilarity,
|
|
181
181
|
getToolMemory
|
|
182
|
-
} from "./chunk-
|
|
182
|
+
} from "./chunk-AQVSAPQD.js";
|
|
183
183
|
import {
|
|
184
184
|
STOPWORDS,
|
|
185
185
|
truncateWithInfo
|
|
186
186
|
} from "./chunk-7LP6VJRP.js";
|
|
187
187
|
import {
|
|
188
188
|
createSessionMemory
|
|
189
|
-
} from "./chunk-
|
|
189
|
+
} from "./chunk-UFO5A53B.js";
|
|
190
190
|
import {
|
|
191
191
|
BUILT_IN_EXPERTS,
|
|
192
192
|
BuiltInExpertTypeSchema,
|
|
@@ -204,24 +204,27 @@ import {
|
|
|
204
204
|
getAvailableClis,
|
|
205
205
|
sleep,
|
|
206
206
|
withTimeout
|
|
207
|
-
} from "./chunk-
|
|
207
|
+
} from "./chunk-UMFQ52XI.js";
|
|
208
208
|
import {
|
|
209
209
|
BaseAdapter,
|
|
210
210
|
createStream,
|
|
211
211
|
requireApiKey,
|
|
212
212
|
validateApiKeyPresence
|
|
213
|
-
} from "./chunk-
|
|
213
|
+
} from "./chunk-ALCCX5DS.js";
|
|
214
214
|
import {
|
|
215
215
|
DEFAULTS
|
|
216
|
-
} from "./chunk-
|
|
216
|
+
} from "./chunk-PW4DLY5W.js";
|
|
217
217
|
import {
|
|
218
218
|
resolveGatewayEnv
|
|
219
|
-
} from "./chunk-
|
|
219
|
+
} from "./chunk-PD2GZQYH.js";
|
|
220
220
|
import {
|
|
221
221
|
getAvailabilityCache,
|
|
222
222
|
getCliForModelId,
|
|
223
223
|
resolveFallback
|
|
224
|
-
} from "./chunk-
|
|
224
|
+
} from "./chunk-NYF2WZAK.js";
|
|
225
|
+
import {
|
|
226
|
+
sanitizeErrorDetails
|
|
227
|
+
} from "./chunk-2NDA4DHW.js";
|
|
225
228
|
import {
|
|
226
229
|
DEFAULT_EXECUTION_MODE,
|
|
227
230
|
DEFAULT_TOOL_RATE_LIMITS,
|
|
@@ -230,7 +233,7 @@ import {
|
|
|
230
233
|
import {
|
|
231
234
|
generateHyphenId,
|
|
232
235
|
generateUUID
|
|
233
|
-
} from "./chunk-
|
|
236
|
+
} from "./chunk-XNX4SH4O.js";
|
|
234
237
|
import {
|
|
235
238
|
AGENT_ROUTER_TIMEOUTS,
|
|
236
239
|
API_TIMEOUTS,
|
|
@@ -343,7 +346,7 @@ import {
|
|
|
343
346
|
selectStrategyByManifest,
|
|
344
347
|
toExpertTaskAnalysisResult,
|
|
345
348
|
withStep
|
|
346
|
-
} from "./chunk-
|
|
349
|
+
} from "./chunk-IPZC5BXM.js";
|
|
347
350
|
import {
|
|
348
351
|
ensureLearningDir,
|
|
349
352
|
getMetaOutcomesFile,
|
|
@@ -25604,7 +25607,8 @@ var AuthHandler = class {
|
|
|
25604
25607
|
|
|
25605
25608
|
// src/mcp/middleware/tool-error-handler.ts
|
|
25606
25609
|
function toolErrorResponse(prefix, error, logger60) {
|
|
25607
|
-
const
|
|
25610
|
+
const rawMessage = getErrorMessage(error);
|
|
25611
|
+
const message = sanitizeErrorDetails(rawMessage);
|
|
25608
25612
|
if (logger60 !== void 0) {
|
|
25609
25613
|
const errorObj = error instanceof Error ? error : new Error(message);
|
|
25610
25614
|
logger60.error(prefix, errorObj);
|
|
@@ -30030,7 +30034,7 @@ function execIdFields(executionId) {
|
|
|
30030
30034
|
async function populateUnifiedContextOnState(state, options) {
|
|
30031
30035
|
const taskCandidate = state["task"];
|
|
30032
30036
|
if (typeof taskCandidate !== "string" || taskCandidate === "") return;
|
|
30033
|
-
const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-
|
|
30037
|
+
const { getContextForTask: getContextForTask2, inferTaskCategory: inferTaskCategory2 } = await import("./context-retriever-5NGYA4JC.js");
|
|
30034
30038
|
const category = inferTaskCategory2(taskCandidate);
|
|
30035
30039
|
const executionId = options?.executionId;
|
|
30036
30040
|
const execFields = execIdFields(executionId);
|
|
@@ -45457,7 +45461,7 @@ async function tryIssueTriage(task) {
|
|
|
45457
45461
|
try {
|
|
45458
45462
|
const issueMatch = task.match(/github\.com\/([^/]+\/[^/]+)\/issues\/(\d+)/);
|
|
45459
45463
|
if (issueMatch === null) return null;
|
|
45460
|
-
const { createIssueTriage } = await import("./issue-triage-
|
|
45464
|
+
const { createIssueTriage } = await import("./issue-triage-XG2AISLY.js");
|
|
45461
45465
|
const triage = createIssueTriage();
|
|
45462
45466
|
const owner = issueMatch[1] ?? "";
|
|
45463
45467
|
const num2 = issueMatch[2] ?? "";
|
|
@@ -45485,7 +45489,7 @@ var VALID_TEMPLATES = /* @__PURE__ */ new Set([
|
|
|
45485
45489
|
]);
|
|
45486
45490
|
async function classifyWithLLM(task) {
|
|
45487
45491
|
try {
|
|
45488
|
-
const { executeExpert: executeExpert2 } = await import("./expert-bridge-
|
|
45492
|
+
const { executeExpert: executeExpert2 } = await import("./expert-bridge-7WAFFJWN.js");
|
|
45489
45493
|
const prompt = [
|
|
45490
45494
|
"Classify this task into exactly one pipeline template.",
|
|
45491
45495
|
"Templates: dev (implementation/bug fix/refactor), research (investigate/evaluate/compare),",
|
|
@@ -45859,7 +45863,7 @@ function buildVotingInput(plan, config) {
|
|
|
45859
45863
|
}
|
|
45860
45864
|
async function executeSingleVote(plan, config, log) {
|
|
45861
45865
|
try {
|
|
45862
|
-
const { executeVoting } = await import("./consensus-vote-
|
|
45866
|
+
const { executeVoting } = await import("./consensus-vote-TV7NW6HD.js");
|
|
45863
45867
|
const input = buildVotingInput(plan, config);
|
|
45864
45868
|
const result = await executeVoting(input, log);
|
|
45865
45869
|
return parseVotingResult(result);
|
|
@@ -46563,7 +46567,7 @@ var memoryInitPromise = null;
|
|
|
46563
46567
|
async function initPipelineMemory() {
|
|
46564
46568
|
if (cachedMemory !== null) return cachedMemory;
|
|
46565
46569
|
try {
|
|
46566
|
-
const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-
|
|
46570
|
+
const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-6PNSAPG4.js");
|
|
46567
46571
|
const { getLearningDir } = await import("./learning-persistence-7BEPQEGN.js");
|
|
46568
46572
|
const mem = createSessionMemory2(getLearningDir());
|
|
46569
46573
|
mem.startSession(`pipeline-${String(getTimeProvider().now())}`);
|
|
@@ -46625,7 +46629,7 @@ function recordRoutingExperience(category, success, durationMs, tokensUsed = 0,
|
|
|
46625
46629
|
callRecord(routingMemoryCache);
|
|
46626
46630
|
return;
|
|
46627
46631
|
}
|
|
46628
|
-
routingMemoryInitPromise ??= import("./routing-memory-
|
|
46632
|
+
routingMemoryInitPromise ??= import("./routing-memory-YLQPO5OH.js").then(({ createRoutingMemory }) => {
|
|
46629
46633
|
routingMemoryCache ??= createRoutingMemory();
|
|
46630
46634
|
return routingMemoryCache;
|
|
46631
46635
|
}).catch((error) => {
|
|
@@ -46826,7 +46830,7 @@ function createVoteStage({ config, startStage }) {
|
|
|
46826
46830
|
const strategy = config.votingStrategy ?? "higher_order";
|
|
46827
46831
|
await postProgress(config, "Vote", `Running consensus with ${strategy} strategy...`);
|
|
46828
46832
|
try {
|
|
46829
|
-
const { executeVoting } = await import("./consensus-vote-
|
|
46833
|
+
const { executeVoting } = await import("./consensus-vote-TV7NW6HD.js");
|
|
46830
46834
|
const votingResult = await executeVoting(
|
|
46831
46835
|
{
|
|
46832
46836
|
proposal: buildVoteProposal(plan, research),
|
|
@@ -47585,7 +47589,7 @@ ${text}` : "";
|
|
|
47585
47589
|
}
|
|
47586
47590
|
async function getWeatherContext() {
|
|
47587
47591
|
try {
|
|
47588
|
-
const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-
|
|
47592
|
+
const { generateWeatherReport: generateWeatherReport2 } = await import("./weather-report-NGBJYVS6.js");
|
|
47589
47593
|
const report = generateWeatherReport2({ includeAdaptive: true });
|
|
47590
47594
|
const mappings = "recommendedMappings" in report ? report.recommendedMappings : [];
|
|
47591
47595
|
if (!Array.isArray(mappings) || mappings.length === 0) return "";
|
|
@@ -47603,7 +47607,7 @@ ${lines}
|
|
|
47603
47607
|
}
|
|
47604
47608
|
async function getMemoryContext(task) {
|
|
47605
47609
|
try {
|
|
47606
|
-
const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-
|
|
47610
|
+
const { createSessionMemory: createSessionMemory2 } = await import("./session-memory-6PNSAPG4.js");
|
|
47607
47611
|
const { getLearningDir } = await import("./learning-persistence-7BEPQEGN.js");
|
|
47608
47612
|
const memory = createSessionMemory2(getLearningDir(), { maxLearningsInContext: 10 });
|
|
47609
47613
|
const learnings = memory.searchLearnings(task.slice(0, 200));
|
|
@@ -48170,7 +48174,7 @@ async function searchCodebaseForTask(task) {
|
|
|
48170
48174
|
}
|
|
48171
48175
|
async function queryResearchRegistry(task) {
|
|
48172
48176
|
try {
|
|
48173
|
-
const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-
|
|
48177
|
+
const { synthesizeResearch: synthesizeResearch2 } = await import("./research-helpers-synthesize-N7NYBAKW.js");
|
|
48174
48178
|
const topic = task.split(/[.!?\n]/).filter((s) => s.trim().length > 10)[0]?.trim();
|
|
48175
48179
|
if (topic === void 0) return null;
|
|
48176
48180
|
const result = await synthesizeResearch2(topic.slice(0, 50));
|
|
@@ -48241,7 +48245,7 @@ function createScanStageWrapper() {
|
|
|
48241
48245
|
try {
|
|
48242
48246
|
const slug = ctx.task.match(/([a-zA-Z0-9._-]+\/[a-zA-Z0-9._-]+)/)?.[1];
|
|
48243
48247
|
if (slug !== void 0) {
|
|
48244
|
-
const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-
|
|
48248
|
+
const { generateSecurityPlan: generateSecurityPlan2 } = await import("./repo-security-plan-LLTLKJWF.js");
|
|
48245
48249
|
const plan = await generateSecurityPlan2({ repo: slug, maxScanners: 10 });
|
|
48246
48250
|
const recs = plan.recommendations.slice(0, 5).map((r) => `${r.priority}: ${r.displayName} (${r.category})`).join("; ");
|
|
48247
48251
|
return output(PIPELINE_STATE_KEYS.FINDINGS, recs, getTimeProvider().now() - start, true);
|
|
@@ -51983,7 +51987,7 @@ var GitHubTaskTracker = class {
|
|
|
51983
51987
|
cachedProvider = null;
|
|
51984
51988
|
async getProvider() {
|
|
51985
51989
|
if (this.cachedProvider !== null) return this.cachedProvider;
|
|
51986
|
-
const { createScmProvider } = await import("./factory-
|
|
51990
|
+
const { createScmProvider } = await import("./factory-ZU75VK4Z.js");
|
|
51987
51991
|
const result = await createScmProvider({ repo: this.config.repo ?? "" });
|
|
51988
51992
|
if (!result.ok) throw new Error(`SCM provider error: ${result.error.message}`);
|
|
51989
51993
|
this.cachedProvider = result.value;
|
|
@@ -52963,7 +52967,7 @@ async function probeSource(source, includeModelIds) {
|
|
|
52963
52967
|
}
|
|
52964
52968
|
}
|
|
52965
52969
|
async function defaultSources(includeOpenRouter) {
|
|
52966
|
-
const { createAllAdapters: createAllAdapters2 } = await import("./factory-
|
|
52970
|
+
const { createAllAdapters: createAllAdapters2 } = await import("./factory-L2OVYRN4.js");
|
|
52967
52971
|
const adapters = createAllAdapters2();
|
|
52968
52972
|
return buildDefaultModelSources(adapters, { includeOpenRouter });
|
|
52969
52973
|
}
|
|
@@ -56288,4 +56292,4 @@ export {
|
|
|
56288
56292
|
startPipelineEventBridge,
|
|
56289
56293
|
shutdownPipelineEventBridge
|
|
56290
56294
|
};
|
|
56291
|
-
//# sourceMappingURL=chunk-
|
|
56295
|
+
//# sourceMappingURL=chunk-3VZCDTK5.js.map
|