@clear-capabilities/agentic-security-scanner 0.149.4 → 0.150.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/CHANGELOG.md +138 -0
- package/bin/agentic-security.js +533 -2
- package/dist/1122.index.js +16 -16
- package/dist/1208.index.js +23 -0
- package/dist/1301.index.js +3 -3
- package/dist/1310.index.js +3161 -0
- package/dist/1379.index.js +3 -3
- package/dist/1444.index.js +3 -3
- package/dist/1660.index.js +1 -1
- package/dist/1700.index.js +5 -5
- package/dist/1905.index.js +107 -12
- package/dist/1920.index.js +10 -10
- package/dist/2238.index.js +4 -4
- package/dist/2271.index.js +3 -3
- package/dist/2432.index.js +8 -8
- package/dist/2659.index.js +1 -1
- package/dist/2826.index.js +2 -2
- package/dist/2830.index.js +3 -3
- package/dist/2923.index.js +1 -1
- package/dist/3001.index.js +4 -4
- package/dist/3117.index.js +4 -4
- package/dist/3180.index.js +9 -9
- package/dist/3276.index.js +1 -1
- package/dist/3415.index.js +1 -1
- package/dist/3499.index.js +1 -1
- package/dist/3518.index.js +4 -4
- package/dist/3736.index.js +7 -7
- package/dist/3839.index.js +4 -4
- package/dist/4113.index.js +441 -418
- package/dist/4265.index.js +4 -4
- package/dist/4384.index.js +8 -3
- package/dist/4399.index.js +292 -0
- package/dist/4547.index.js +2 -2
- package/dist/4863.index.js +6 -6
- package/dist/4970.index.js +2 -2
- package/dist/5051.index.js +15 -15
- package/dist/5144.index.js +4 -4
- package/dist/5333.index.js +8 -8
- package/dist/5343.index.js +2 -2
- package/dist/5350.index.js +6 -6
- package/dist/5561.index.js +1 -1
- package/dist/5637.index.js +10 -5
- package/dist/5724.index.js +21642 -0
- package/dist/5756.index.js +588 -0
- package/dist/5830.index.js +3 -3
- package/dist/6257.index.js +170 -0
- package/dist/6626.index.js +5 -5
- package/dist/6662.index.js +1 -1
- package/dist/6675.index.js +4 -4
- package/dist/6730.index.js +10 -10
- package/dist/6829.index.js +4 -4
- package/dist/6944.index.js +2 -2
- package/dist/6994.index.js +143 -0
- package/dist/7039.index.js +541 -0
- package/dist/7178.index.js +11 -6
- package/dist/7227.index.js +3 -3
- package/dist/7552.index.js +2 -2
- package/dist/7709.index.js +2 -2
- package/dist/7838.index.js +1037 -0
- package/dist/8218.index.js +4 -4
- package/dist/8476.index.js +4 -4
- package/dist/8513.index.js +8 -8
- package/dist/8520.index.js +1 -1
- package/dist/8752.index.js +4 -4
- package/dist/9207.index.js +2 -2
- package/dist/9220.index.js +5 -5
- package/dist/9390.index.js +6 -6
- package/dist/9503.index.js +2 -2
- package/dist/9560.index.js +3221 -0
- package/dist/957.index.js +127 -0
- package/dist/9801.index.js +1 -1
- package/dist/9824.index.js +5 -5
- package/dist/agentic-security.mjs +23 -23
- package/dist/agentic-security.mjs.sha256 +1 -1
- package/package.json +4 -3
- package/src/discovery/disprove.js +6 -1
- package/src/discovery/hunter.js +10 -1
- package/src/discovery/llm-invoke.js +77 -0
- package/src/egress/policy.js +11 -1
- package/src/egress/redact.js +1 -1
- package/src/engine.js +37 -1
- package/src/llm-validator/agent-loop.js +215 -0
- package/src/llm-validator/agent-tools.js +271 -0
- package/src/llm-validator/explain-proposal.js +106 -0
- package/src/llm-validator/fix-proposal.js +149 -0
- package/src/llm-validator/index.js +51 -3
- package/src/llm-validator/model-capabilities.js +269 -0
- package/src/llm-validator/model-probe.js +232 -0
- package/src/llm-validator/model-status.js +27 -0
- package/src/llm-validator/ollama-provider.js +382 -0
- package/src/llm-validator/oom-feedback.js +69 -0
- package/src/llm-validator/poc-proposal.js +122 -0
- package/src/llm-validator/providers.js +75 -0
- package/src/llm-validator/redact.js +177 -11
- package/src/report/index.js +33 -0
- package/src/sast/java-ast-folding.js +18 -2
package/dist/4265.index.js
CHANGED
|
@@ -2,16 +2,16 @@ export const id = 4265;
|
|
|
2
2
|
export const ids = [4265];
|
|
3
3
|
export const modules = {
|
|
4
4
|
|
|
5
|
-
/***/
|
|
5
|
+
/***/ 84265:
|
|
6
6
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
7
7
|
|
|
8
8
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
9
9
|
/* harmony export */ createCascadePool: () => (/* binding */ createCascadePool)
|
|
10
10
|
/* harmony export */ });
|
|
11
11
|
/* unused harmony export DEFAULT_GRACE_MS */
|
|
12
|
-
/* harmony import */ var node_worker_threads__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
13
|
-
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
14
|
-
/* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
12
|
+
/* harmony import */ var node_worker_threads__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75919);
|
|
13
|
+
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(76760);
|
|
14
|
+
/* harmony import */ var node_url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73136);
|
|
15
15
|
// FR-202 phase 3b (D-0050): a pool of long-lived workers, each running engine.js's
|
|
16
16
|
// _runFileCascade for many files over its lifetime, instead of the one-shot-per-call
|
|
17
17
|
// model runWithDeadline/analyzer-supervisor.js uses (which is correct for FR-202's
|
package/dist/4384.index.js
CHANGED
|
@@ -2,16 +2,21 @@ export const id = 4384;
|
|
|
2
2
|
export const ids = [4384];
|
|
3
3
|
export const modules = {
|
|
4
4
|
|
|
5
|
-
/***/
|
|
6
|
-
/***/ ((
|
|
5
|
+
/***/ 74384:
|
|
6
|
+
/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
7
7
|
|
|
8
|
+
__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
8
9
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
9
10
|
/* harmony export */ scanCredentials: () => (/* reexport safe */ _engine_js__WEBPACK_IMPORTED_MODULE_0__.Sv)
|
|
10
11
|
/* harmony export */ });
|
|
11
|
-
/* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
12
|
+
/* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67198);
|
|
13
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_engine_js__WEBPACK_IMPORTED_MODULE_0__]);
|
|
14
|
+
_engine_js__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
12
15
|
// Secrets submodule view of the engine — credential + entropy + TODO scanning.
|
|
13
16
|
|
|
14
17
|
|
|
18
|
+
__webpack_async_result__();
|
|
19
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
15
20
|
|
|
16
21
|
/***/ })
|
|
17
22
|
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
export const id = 4399;
|
|
2
|
+
export const ids = [4399];
|
|
3
|
+
export const modules = {
|
|
4
|
+
|
|
5
|
+
/***/ 54399:
|
|
6
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
7
|
+
|
|
8
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
9
|
+
/* harmony export */ MEMORY_PROFILES: () => (/* binding */ MEMORY_PROFILES),
|
|
10
|
+
/* harmony export */ capabilitiesFromFamilyHint: () => (/* binding */ capabilitiesFromFamilyHint),
|
|
11
|
+
/* harmony export */ classifyModelFamily: () => (/* binding */ classifyModelFamily),
|
|
12
|
+
/* harmony export */ detectMemoryTier: () => (/* binding */ detectMemoryTier),
|
|
13
|
+
/* harmony export */ detectSystemMemory: () => (/* binding */ detectSystemMemory),
|
|
14
|
+
/* harmony export */ recommendAdmission: () => (/* binding */ recommendAdmission)
|
|
15
|
+
/* harmony export */ });
|
|
16
|
+
/* unused harmony exports KNOWN_MODEL_SIZE_GB, evaluateMemoryAdmission */
|
|
17
|
+
/* harmony import */ var node_os__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48161);
|
|
18
|
+
/* harmony import */ var _oom_feedback_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6782);
|
|
19
|
+
// Model family hints, RAM-aware memory profiles, and the memory-admission
|
|
20
|
+
// check for the Ollama provider (agentic-security-ollama-offline-prd.md
|
|
21
|
+
// §13, §14, §15, §22.3, §30).
|
|
22
|
+
//
|
|
23
|
+
// FAMILY HINTS ARE DEFAULTS, NEVER AUTHORITY (PRD §12/§13). A name like
|
|
24
|
+
// `gemma4:e2b` tells us nothing Ollama itself won't confirm — it only lets the
|
|
25
|
+
// harness suggest a sane default before any network call. If a model actually
|
|
26
|
+
// installed under a family-hinted name lacks a capability the hint implied,
|
|
27
|
+
// the runtime probe (model-probe.js, added when tool-calling/structured-output
|
|
28
|
+
// probing lands) always wins. This module only classifies and estimates; it
|
|
29
|
+
// never asserts a capability is present.
|
|
30
|
+
//
|
|
31
|
+
// MEMORY NUMBERS ARE ESTIMATES, NOT PROMISES (PRD §22.3, §14.1). Ollama
|
|
32
|
+
// artifact sizes and this module's headroom reserves are best-effort figures
|
|
33
|
+
// sourced from what Ollama currently publishes; they exist so the harness can
|
|
34
|
+
// fail BEFORE an OS-level OOM, not so it can claim an exact answer. Every
|
|
35
|
+
// admission decision leaves a stated safety margin rather than trying to pack
|
|
36
|
+
// memory to the byte.
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
// PRD §12/§13 FR-1203 — non-authoritative family hint from a model name.
|
|
42
|
+
// Longest/most-specific pattern first so `qwen3.5:4b` doesn't fall through to
|
|
43
|
+
// the bare `qwen` bucket.
|
|
44
|
+
const FAMILY_PATTERNS = [
|
|
45
|
+
[/^qwen3\.5/i, 'qwen3.5'],
|
|
46
|
+
[/^qwen3-coder-next/i, 'qwen3-coder-next'],
|
|
47
|
+
[/^qwen3-coder/i, 'qwen3-coder'],
|
|
48
|
+
[/^qwen2\.5-coder/i, 'qwen2.5-coder'],
|
|
49
|
+
[/^qwen3/i, 'qwen3'],
|
|
50
|
+
[/^qwen/i, 'qwen'],
|
|
51
|
+
[/^gemma4/i, 'gemma4'],
|
|
52
|
+
[/^functiongemma/i, 'functiongemma'],
|
|
53
|
+
[/^gemma3/i, 'gemma3'],
|
|
54
|
+
[/^gemma/i, 'gemma'],
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
/** Non-authoritative family classification for defaults/messaging only. */
|
|
58
|
+
function classifyModelFamily(modelName) {
|
|
59
|
+
const name = String(modelName || '').trim();
|
|
60
|
+
for (const [re, family] of FAMILY_PATTERNS) if (re.test(name)) return family;
|
|
61
|
+
return 'unknown';
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// PRD §13.1 — non-authoritative defaults per family, overridden by any real
|
|
65
|
+
// runtime probe result (model-probe.js). `tools`/`structuredJson`/`thinking`
|
|
66
|
+
// are 'unknown' where Ollama's own behavior varies by specific tag/quant
|
|
67
|
+
// rather than by family alone.
|
|
68
|
+
const FAMILY_CAPABILITY_HINTS = {
|
|
69
|
+
'qwen3.5': { chat: true, structuredJson: true, tools: true, thinking: 'unknown' },
|
|
70
|
+
qwen3: { chat: true, structuredJson: true, tools: true, thinking: 'unknown' },
|
|
71
|
+
'qwen3-coder': { chat: true, structuredJson: true, tools: true, thinking: false },
|
|
72
|
+
'qwen3-coder-next': { chat: true, structuredJson: true, tools: true, thinking: false },
|
|
73
|
+
'qwen2.5-coder': { chat: true, structuredJson: true, tools: 'unknown', thinking: false },
|
|
74
|
+
qwen: { chat: true, structuredJson: 'unknown', tools: 'unknown', thinking: 'unknown' },
|
|
75
|
+
gemma4: { chat: true, structuredJson: true, tools: true, thinking: 'unknown' },
|
|
76
|
+
functiongemma: { chat: true, structuredJson: 'unknown', tools: true, thinking: false },
|
|
77
|
+
gemma3: { chat: true, structuredJson: true, tools: false, thinking: false },
|
|
78
|
+
gemma: { chat: true, structuredJson: 'unknown', tools: 'unknown', thinking: 'unknown' },
|
|
79
|
+
unknown: { chat: true, structuredJson: 'unknown', tools: 'unknown', thinking: 'unknown' },
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Build the PRD §13.1 ModelCapabilities object from a family hint alone
|
|
84
|
+
* (Layer B). Layer A (Ollama's own /api/show metadata) and Layer C (runtime
|
|
85
|
+
* probes) are applied by the caller and override these fields — this
|
|
86
|
+
* function only ever sets `source.familyHint: true`.
|
|
87
|
+
*/
|
|
88
|
+
function capabilitiesFromFamilyHint(modelName) {
|
|
89
|
+
const family = classifyModelFamily(modelName);
|
|
90
|
+
const hint = FAMILY_CAPABILITY_HINTS[family] || FAMILY_CAPABILITY_HINTS.unknown;
|
|
91
|
+
return {
|
|
92
|
+
chat: hint.chat,
|
|
93
|
+
structuredJson: hint.structuredJson,
|
|
94
|
+
tools: hint.tools,
|
|
95
|
+
thinking: hint.thinking,
|
|
96
|
+
vision: false,
|
|
97
|
+
contextTokens: undefined,
|
|
98
|
+
source: { metadata: false, familyHint: true, runtimeProbe: false },
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// ── RAM-aware memory profiles (PRD §14.4, §15.2, §22.3, §30) ───────────────
|
|
103
|
+
|
|
104
|
+
const MB = 1024 * 1024;
|
|
105
|
+
const GB = 1024 * MB;
|
|
106
|
+
|
|
107
|
+
// Best-effort artifact sizes as currently distributed by Ollama, used only to
|
|
108
|
+
// pick a SENSIBLE STARTING recommendation — the real admission decision below
|
|
109
|
+
// uses actually-free memory, not this table. Keep in sync with the PRD's own
|
|
110
|
+
// cited figures; a stale entry only affects the suggested default, never the
|
|
111
|
+
// admission math (which reads real os.freemem()).
|
|
112
|
+
const KNOWN_MODEL_SIZE_GB = Object.freeze({
|
|
113
|
+
'qwen3.5:2b': 1.7,
|
|
114
|
+
'qwen3.5:4b': 3.4,
|
|
115
|
+
'qwen3.5:9b': 6.6,
|
|
116
|
+
'gemma4:e2b': 7.2,
|
|
117
|
+
'gemma4:12b': 7.6,
|
|
118
|
+
'gemma4:latest': 9.6,
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
/** PRD §30 profile presets. `auto` picks between these by detected RAM. */
|
|
122
|
+
const MEMORY_PROFILES = Object.freeze({
|
|
123
|
+
'8gb': {
|
|
124
|
+
label: '8gb',
|
|
125
|
+
preferredModel: 'qwen3.5:4b',
|
|
126
|
+
fallbackModel: 'qwen3.5:2b',
|
|
127
|
+
initialContextTokens: 4096,
|
|
128
|
+
targetContextTokens: 8192,
|
|
129
|
+
maxConcurrency: 1,
|
|
130
|
+
minFreeRamMb: 1536,
|
|
131
|
+
},
|
|
132
|
+
'16gb-qwen': {
|
|
133
|
+
label: '16gb-qwen',
|
|
134
|
+
preferredModel: 'qwen3.5:9b',
|
|
135
|
+
fallbackModel: 'qwen3.5:4b',
|
|
136
|
+
initialContextTokens: 16384,
|
|
137
|
+
targetContextTokens: 32768,
|
|
138
|
+
maxConcurrency: 1,
|
|
139
|
+
minFreeRamMb: 2048,
|
|
140
|
+
},
|
|
141
|
+
'16gb-gemma': {
|
|
142
|
+
label: '16gb-gemma',
|
|
143
|
+
preferredModel: 'gemma4:e2b',
|
|
144
|
+
fallbackModel: 'qwen3.5:4b',
|
|
145
|
+
initialContextTokens: 8192,
|
|
146
|
+
targetContextTokens: 16384,
|
|
147
|
+
maxConcurrency: 1,
|
|
148
|
+
minFreeRamMb: 2048,
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* PRD §22.3 — detect total/available system RAM. Thin wrapper over `os` so
|
|
154
|
+
* tests can inject fake values without mocking the `os` module globally.
|
|
155
|
+
*/
|
|
156
|
+
function detectSystemMemory({ totalBytes, freeBytes } = {}) {
|
|
157
|
+
return {
|
|
158
|
+
totalBytes: Number.isFinite(totalBytes) ? totalBytes : node_os__WEBPACK_IMPORTED_MODULE_0__.totalmem(),
|
|
159
|
+
freeBytes: Number.isFinite(freeBytes) ? freeBytes : node_os__WEBPACK_IMPORTED_MODULE_0__.freemem(),
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Pick the RAM tier ('8gb' | '16gb') a machine falls into. Anything under
|
|
165
|
+
* ~9 GB total is treated as the 8 GB tier — real "8 GB" machines report
|
|
166
|
+
* slightly less than 8*1024^3 bytes to userspace (firmware/GPU reservations),
|
|
167
|
+
* so a hard `< 8*GB` cutoff would misclassify real 8 GB hardware as unknown.
|
|
168
|
+
*/
|
|
169
|
+
function detectMemoryTier(totalBytes) {
|
|
170
|
+
if (!Number.isFinite(totalBytes) || totalBytes <= 0) return 'unknown';
|
|
171
|
+
if (totalBytes < 9 * GB) return '8gb';
|
|
172
|
+
return '16gb';
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* PRD §22.3 admission algorithm: does `contextTokens` at `model` fit in
|
|
177
|
+
* currently-free memory with the configured reserve intact?
|
|
178
|
+
*
|
|
179
|
+
* This is deliberately conservative and coarse (PRD "avoid pretending memory
|
|
180
|
+
* estimates are exact"): model residency is estimated from KNOWN_MODEL_SIZE_GB
|
|
181
|
+
* when available (falling back to a pessimistic 8 GB assumption for an
|
|
182
|
+
* unrecognized tag so an unknown model never LOOKS safer than a known large
|
|
183
|
+
* one), and KV-cache growth is approximated as a fixed per-1K-token cost
|
|
184
|
+
* rather than modeled per-architecture — real KV cache size depends on layer
|
|
185
|
+
* count/head count/quantization the harness cannot know without Ollama's own
|
|
186
|
+
* runtime numbers.
|
|
187
|
+
*/
|
|
188
|
+
const ESTIMATED_KV_CACHE_MB_PER_1K_TOKENS = 32; // conservative, model-independent approximation
|
|
189
|
+
const RUNTIME_OVERHEAD_MB = 512; // Ollama server + OS scheduler slack, independent of model size
|
|
190
|
+
|
|
191
|
+
function evaluateMemoryAdmission({
|
|
192
|
+
modelName,
|
|
193
|
+
contextTokens,
|
|
194
|
+
freeBytes,
|
|
195
|
+
minFreeRamMb,
|
|
196
|
+
modelSizeGb,
|
|
197
|
+
} = {}) {
|
|
198
|
+
const sizeGb = Number.isFinite(modelSizeGb) ? modelSizeGb : (KNOWN_MODEL_SIZE_GB[modelName] ?? 8);
|
|
199
|
+
const modelMb = sizeGb * 1024;
|
|
200
|
+
const kvCacheMb = (Number(contextTokens) || 0) / 1000 * ESTIMATED_KV_CACHE_MB_PER_1K_TOKENS;
|
|
201
|
+
const requiredMb = modelMb + kvCacheMb + RUNTIME_OVERHEAD_MB + (Number(minFreeRamMb) || 0);
|
|
202
|
+
const freeMb = (Number(freeBytes) || 0) / MB;
|
|
203
|
+
const admitted = freeMb >= requiredMb;
|
|
204
|
+
return {
|
|
205
|
+
admitted,
|
|
206
|
+
freeMb: Math.round(freeMb),
|
|
207
|
+
requiredMb: Math.round(requiredMb),
|
|
208
|
+
modelEstimateMb: Math.round(modelMb),
|
|
209
|
+
kvCacheEstimateMb: Math.round(kvCacheMb),
|
|
210
|
+
reserveMb: Number(minFreeRamMb) || 0,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Full recommendation flow (PRD §22 "Memory admission algorithm"):
|
|
216
|
+
* try the profile's preferred context, shrink it, then fall back to the
|
|
217
|
+
* profile's smaller model, before ever declaring the profile unusable.
|
|
218
|
+
* Never recommends cloud — the worst outcome this function can return is
|
|
219
|
+
* `{admitted:false}` with a human-readable explanation, which callers treat
|
|
220
|
+
* as "run deterministic-only" (PRD §23.4).
|
|
221
|
+
*/
|
|
222
|
+
function recommendAdmission(opts = {}) {
|
|
223
|
+
const result = _recommendAdmissionCore(opts);
|
|
224
|
+
// Adversarial-review fix (2026-09): a memory-admission ESTIMATE that
|
|
225
|
+
// actually caused a real OOM (ollama-provider.js's callOllamaChat now
|
|
226
|
+
// records this via oom-feedback.js) used to have no way to affect a
|
|
227
|
+
// future admission decision for the SAME model on the SAME machine — the
|
|
228
|
+
// exact same "admitted: true" would repeat forever. This does not
|
|
229
|
+
// recalibrate the underlying estimate (that needs real hardware variety
|
|
230
|
+
// one machine's observed failures can't substitute for); it attaches an
|
|
231
|
+
// honest warning so the decision is no longer presented with unqualified
|
|
232
|
+
// confidence.
|
|
233
|
+
const chosenModel = result.model || opts.requestedModel;
|
|
234
|
+
const prior = chosenModel ? (0,_oom_feedback_js__WEBPACK_IMPORTED_MODULE_1__/* .priorOOMFor */ .NL)(chosenModel) : null;
|
|
235
|
+
if (prior) {
|
|
236
|
+
return {
|
|
237
|
+
...result,
|
|
238
|
+
priorOOMWarning: `'${chosenModel}' has previously failed with an out-of-memory error on this machine ` +
|
|
239
|
+
`(${prior.count} time${prior.count === 1 ? '' : 's'}, most recently ${new Date(prior.lastAt).toISOString()}). ` +
|
|
240
|
+
'The memory estimate below may be optimistic for your hardware.',
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
return result;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
function _recommendAdmissionCore({ profile, freeBytes, requestedContextTokens, requestedModel } = {}) {
|
|
247
|
+
const p = MEMORY_PROFILES[profile];
|
|
248
|
+
if (!p) return { admitted: false, reason: `unknown memory profile '${profile}'` };
|
|
249
|
+
|
|
250
|
+
const model = requestedModel || p.preferredModel;
|
|
251
|
+
const attempts = [];
|
|
252
|
+
|
|
253
|
+
// 1. Requested (or target) context at the requested/preferred model.
|
|
254
|
+
const primaryContext = Number.isFinite(requestedContextTokens) ? requestedContextTokens : p.targetContextTokens;
|
|
255
|
+
let check = evaluateMemoryAdmission({ modelName: model, contextTokens: primaryContext, freeBytes, minFreeRamMb: p.minFreeRamMb });
|
|
256
|
+
attempts.push({ model, contextTokens: primaryContext, ...check });
|
|
257
|
+
if (check.admitted) return { admitted: true, model, contextTokens: primaryContext, attempts };
|
|
258
|
+
|
|
259
|
+
// 2. Reduce context to the profile's conservative initial value first —
|
|
260
|
+
// PRD FR-2104: "shrink context before declaring an otherwise compatible
|
|
261
|
+
// model unusable."
|
|
262
|
+
if (primaryContext !== p.initialContextTokens) {
|
|
263
|
+
check = evaluateMemoryAdmission({ modelName: model, contextTokens: p.initialContextTokens, freeBytes, minFreeRamMb: p.minFreeRamMb });
|
|
264
|
+
attempts.push({ model, contextTokens: p.initialContextTokens, ...check });
|
|
265
|
+
if (check.admitted) return { admitted: true, model, contextTokens: p.initialContextTokens, attempts, reducedContext: true };
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
// 3. Fall back to the profile's smaller model at its initial context.
|
|
269
|
+
if (p.fallbackModel && p.fallbackModel !== model) {
|
|
270
|
+
check = evaluateMemoryAdmission({ modelName: p.fallbackModel, contextTokens: p.initialContextTokens, freeBytes, minFreeRamMb: p.minFreeRamMb });
|
|
271
|
+
attempts.push({ model: p.fallbackModel, contextTokens: p.initialContextTokens, ...check });
|
|
272
|
+
if (check.admitted) {
|
|
273
|
+
return {
|
|
274
|
+
admitted: true, model: p.fallbackModel, contextTokens: p.initialContextTokens, attempts,
|
|
275
|
+
reducedContext: true, fellBackToSmallerModel: true,
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
// 4. Nothing fits — deterministic-only, never cloud.
|
|
281
|
+
return {
|
|
282
|
+
admitted: false,
|
|
283
|
+
attempts,
|
|
284
|
+
reason: `No local model/context combination fit in available memory with the configured reserve. ` +
|
|
285
|
+
`Recommend deterministic-only scanning, or free memory before retrying.`,
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
/***/ })
|
|
291
|
+
|
|
292
|
+
};
|
package/dist/4547.index.js
CHANGED
|
@@ -2,13 +2,13 @@ export const id = 4547;
|
|
|
2
2
|
export const ids = [4547];
|
|
3
3
|
export const modules = {
|
|
4
4
|
|
|
5
|
-
/***/
|
|
5
|
+
/***/ 24547:
|
|
6
6
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
7
7
|
|
|
8
8
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
9
9
|
/* harmony export */ applyScenario: () => (/* binding */ applyScenario)
|
|
10
10
|
/* harmony export */ });
|
|
11
|
-
/* harmony import */ var _protection_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
11
|
+
/* harmony import */ var _protection_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80965);
|
|
12
12
|
/* harmony import */ var _dataflow_privacy_sink_policy_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3138);
|
|
13
13
|
// scenario-engine.js — M5 deliverable #3a (FR-502): the clone-and-
|
|
14
14
|
// override engine. Deep-clones the base graph, applies each declared
|
package/dist/4863.index.js
CHANGED
|
@@ -2,7 +2,7 @@ export const id = 4863;
|
|
|
2
2
|
export const ids = [4863];
|
|
3
3
|
export const modules = {
|
|
4
4
|
|
|
5
|
-
/***/
|
|
5
|
+
/***/ 54863:
|
|
6
6
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
7
7
|
|
|
8
8
|
|
|
@@ -12,13 +12,13 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
12
12
|
});
|
|
13
13
|
|
|
14
14
|
// EXTERNAL MODULE: external "node:fs"
|
|
15
|
-
var external_node_fs_ = __webpack_require__(
|
|
15
|
+
var external_node_fs_ = __webpack_require__(73024);
|
|
16
16
|
// EXTERNAL MODULE: ./src/lineage/schema.js
|
|
17
|
-
var schema = __webpack_require__(
|
|
17
|
+
var schema = __webpack_require__(84073);
|
|
18
18
|
// EXTERNAL MODULE: ./src/lineage/protection.js
|
|
19
|
-
var protection = __webpack_require__(
|
|
19
|
+
var protection = __webpack_require__(80965);
|
|
20
20
|
// EXTERNAL MODULE: ./src/lineage/classification.js
|
|
21
|
-
var classification = __webpack_require__(
|
|
21
|
+
var classification = __webpack_require__(42602);
|
|
22
22
|
;// CONCATENATED MODULE: ./src/lineage/validate.js
|
|
23
23
|
//
|
|
24
24
|
// Structural validator for DataFlowGraph v1 (PRD section 10). Hand-rolled
|
|
@@ -302,7 +302,7 @@ function validateGraph(graph) {
|
|
|
302
302
|
}
|
|
303
303
|
|
|
304
304
|
// EXTERNAL MODULE: ./src/lineage/export-json.js
|
|
305
|
-
var export_json = __webpack_require__(
|
|
305
|
+
var export_json = __webpack_require__(40859);
|
|
306
306
|
;// CONCATENATED MODULE: ./src/lineage/federation-loader.js
|
|
307
307
|
// federation-loader.js — M5 deliverable #8 (FR-304's "declared" half):
|
|
308
308
|
// loadRemoteGraphExport(filePath) reads an exportGraphJSON-shaped file
|
package/dist/4970.index.js
CHANGED
|
@@ -2,7 +2,7 @@ export const id = 4970;
|
|
|
2
2
|
export const ids = [4970];
|
|
3
3
|
export const modules = {
|
|
4
4
|
|
|
5
|
-
/***/
|
|
5
|
+
/***/ 94970:
|
|
6
6
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
7
7
|
|
|
8
8
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
@@ -11,7 +11,7 @@ export const modules = {
|
|
|
11
11
|
/* harmony export */ evaluateAssuranceMode: () => (/* binding */ evaluateAssuranceMode)
|
|
12
12
|
/* harmony export */ });
|
|
13
13
|
/* unused harmony export _internals */
|
|
14
|
-
/* harmony import */ var _posture_provenance_schema_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
14
|
+
/* harmony import */ var _posture_provenance_schema_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(34594);
|
|
15
15
|
// Assurance modes (assurance-hardening PRD FR-204).
|
|
16
16
|
//
|
|
17
17
|
// "Add assurance modes: advisory, standard, and strict | Strict mode fails
|
package/dist/5051.index.js
CHANGED
|
@@ -2,7 +2,7 @@ export const id = 5051;
|
|
|
2
2
|
export const ids = [5051,6944];
|
|
3
3
|
export const modules = {
|
|
4
4
|
|
|
5
|
-
/***/
|
|
5
|
+
/***/ 55051:
|
|
6
6
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
7
7
|
|
|
8
8
|
|
|
@@ -14,19 +14,19 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
14
14
|
// UNUSED EXPORTS: DEFAULT_IDLE_TIMEOUT_MS, MAX_REQUEST_BODY_BYTES, TOKEN_HEADER
|
|
15
15
|
|
|
16
16
|
// EXTERNAL MODULE: external "node:http"
|
|
17
|
-
var external_node_http_ = __webpack_require__(
|
|
17
|
+
var external_node_http_ = __webpack_require__(37067);
|
|
18
18
|
// EXTERNAL MODULE: external "node:fs"
|
|
19
|
-
var external_node_fs_ = __webpack_require__(
|
|
19
|
+
var external_node_fs_ = __webpack_require__(73024);
|
|
20
20
|
// EXTERNAL MODULE: external "node:path"
|
|
21
|
-
var external_node_path_ = __webpack_require__(
|
|
21
|
+
var external_node_path_ = __webpack_require__(76760);
|
|
22
22
|
// EXTERNAL MODULE: ./src/server/security.js
|
|
23
|
-
var security = __webpack_require__(
|
|
23
|
+
var security = __webpack_require__(86944);
|
|
24
24
|
// EXTERNAL MODULE: ./src/server/routes.js
|
|
25
|
-
var routes = __webpack_require__(
|
|
25
|
+
var routes = __webpack_require__(84268);
|
|
26
26
|
// EXTERNAL MODULE: external "node:url"
|
|
27
|
-
var external_node_url_ = __webpack_require__(
|
|
27
|
+
var external_node_url_ = __webpack_require__(73136);
|
|
28
28
|
// EXTERNAL MODULE: ./src/shared/frontend-root.js
|
|
29
|
-
var frontend_root = __webpack_require__(
|
|
29
|
+
var frontend_root = __webpack_require__(61185);
|
|
30
30
|
;// CONCATENATED MODULE: ./src/server/static-assets.js
|
|
31
31
|
// static-assets.js — Milestone 3, sub-project Wire.
|
|
32
32
|
//
|
|
@@ -503,7 +503,7 @@ function createExploreServer({
|
|
|
503
503
|
|
|
504
504
|
/***/ }),
|
|
505
505
|
|
|
506
|
-
/***/
|
|
506
|
+
/***/ 84268:
|
|
507
507
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
508
508
|
|
|
509
509
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
@@ -515,7 +515,7 @@ function createExploreServer({
|
|
|
515
515
|
/* harmony export */ rR: () => (/* binding */ handleQuery)
|
|
516
516
|
/* harmony export */ });
|
|
517
517
|
/* unused harmony export wrapResponse */
|
|
518
|
-
/* harmony import */ var _lineage_export_json_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
518
|
+
/* harmony import */ var _lineage_export_json_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40859);
|
|
519
519
|
// routes.js — Milestone 3, sub-project Server, increment 1.
|
|
520
520
|
//
|
|
521
521
|
// Five pure GET-endpoint handlers, each `(graph, ...) -> {status, body}`.
|
|
@@ -649,7 +649,7 @@ function handleFlow(graph, id) {
|
|
|
649
649
|
|
|
650
650
|
/***/ }),
|
|
651
651
|
|
|
652
|
-
/***/
|
|
652
|
+
/***/ 86944:
|
|
653
653
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
654
654
|
|
|
655
655
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
@@ -658,7 +658,7 @@ function handleFlow(graph, id) {
|
|
|
658
658
|
/* harmony export */ Xv: () => (/* binding */ CSP_HEADER_VALUE),
|
|
659
659
|
/* harmony export */ generateSessionToken: () => (/* binding */ generateSessionToken)
|
|
660
660
|
/* harmony export */ });
|
|
661
|
-
/* harmony import */ var node_crypto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
661
|
+
/* harmony import */ var node_crypto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77598);
|
|
662
662
|
// security.js — Milestone 3, sub-project Server, increment 1.
|
|
663
663
|
//
|
|
664
664
|
// Security primitives for the `explore` loopback HTTP server: session-token
|
|
@@ -774,14 +774,14 @@ const CSP_HEADER_VALUE = "default-src 'none'; frame-ancestors 'none'";
|
|
|
774
774
|
|
|
775
775
|
/***/ }),
|
|
776
776
|
|
|
777
|
-
/***/
|
|
777
|
+
/***/ 61185:
|
|
778
778
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
779
779
|
|
|
780
780
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
781
781
|
/* harmony export */ D: () => (/* binding */ resolveFrontendRoot)
|
|
782
782
|
/* harmony export */ });
|
|
783
|
-
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
784
|
-
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
783
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73024);
|
|
784
|
+
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(76760);
|
|
785
785
|
// frontend-root.js — locates the Data Flow Explorer's `frontend/` assets
|
|
786
786
|
// (index.html/src/styles) regardless of whether this code is running:
|
|
787
787
|
// - unbundled, straight out of scanner/src/ or scanner/scripts/ (dev/test —
|
package/dist/5144.index.js
CHANGED
|
@@ -2,7 +2,7 @@ export const id = 5144;
|
|
|
2
2
|
export const ids = [5144];
|
|
3
3
|
export const modules = {
|
|
4
4
|
|
|
5
|
-
/***/
|
|
5
|
+
/***/ 45144:
|
|
6
6
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
7
7
|
|
|
8
8
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
@@ -13,9 +13,9 @@ export const modules = {
|
|
|
13
13
|
/* harmony export */ removeLegalHold: () => (/* binding */ removeLegalHold)
|
|
14
14
|
/* harmony export */ });
|
|
15
15
|
/* unused harmony export LEGAL_HOLD_FILE */
|
|
16
|
-
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
17
|
-
/* harmony import */ var _state_dir_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
18
|
-
/* harmony import */ var _artifact_registry_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
16
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73024);
|
|
17
|
+
/* harmony import */ var _state_dir_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31174);
|
|
18
|
+
/* harmony import */ var _artifact_registry_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(70471);
|
|
19
19
|
// FR-707 (assurance-hardening PRD): "Support legal hold and policy-
|
|
20
20
|
// authorized retention exceptions | Legal hold is identity-bound, reasoned,
|
|
21
21
|
// time-bounded where applicable, and auditable."
|
package/dist/5333.index.js
CHANGED
|
@@ -2,7 +2,7 @@ export const id = 5333;
|
|
|
2
2
|
export const ids = [5333];
|
|
3
3
|
export const modules = {
|
|
4
4
|
|
|
5
|
-
/***/
|
|
5
|
+
/***/ 35333:
|
|
6
6
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
7
7
|
|
|
8
8
|
__webpack_require__.r(__webpack_exports__);
|
|
@@ -10,13 +10,13 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
10
10
|
/* harmony export */ applyScaUpgrade: () => (/* binding */ applyScaUpgrade),
|
|
11
11
|
/* harmony export */ planScaUpgrade: () => (/* binding */ planScaUpgrade)
|
|
12
12
|
/* harmony export */ });
|
|
13
|
-
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
14
|
-
/* harmony import */ var node_fs_promises__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
15
|
-
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
16
|
-
/* harmony import */ var node_crypto__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
|
|
17
|
-
/* harmony import */ var node_child_process__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
18
|
-
/* harmony import */ var node_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
19
|
-
/* harmony import */ var _state_dir_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
|
|
13
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73024);
|
|
14
|
+
/* harmony import */ var node_fs_promises__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51455);
|
|
15
|
+
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(76760);
|
|
16
|
+
/* harmony import */ var node_crypto__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(77598);
|
|
17
|
+
/* harmony import */ var node_child_process__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(31421);
|
|
18
|
+
/* harmony import */ var node_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(57975);
|
|
19
|
+
/* harmony import */ var _state_dir_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(31174);
|
|
20
20
|
// SCA upgrade engine: dry-run plan + worktree-isolated apply.
|
|
21
21
|
//
|
|
22
22
|
// Phase 3 / Item 5 of the SCA improvement plan. The MCP `apply_fix` path
|
package/dist/5343.index.js
CHANGED
|
@@ -2,13 +2,13 @@ export const id = 5343;
|
|
|
2
2
|
export const ids = [5343];
|
|
3
3
|
export const modules = {
|
|
4
4
|
|
|
5
|
-
/***/
|
|
5
|
+
/***/ 65343:
|
|
6
6
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
7
7
|
|
|
8
8
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
9
9
|
/* harmony export */ proposeGovernanceEdit: () => (/* binding */ proposeGovernanceEdit)
|
|
10
10
|
/* harmony export */ });
|
|
11
|
-
/* harmony import */ var _recipient_registry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
11
|
+
/* harmony import */ var _recipient_registry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(96703);
|
|
12
12
|
// governance-edit.js — M5 deliverable #5 (PRD line 1324's 5-part write
|
|
13
13
|
// contract: preview, validation, backup/version guard, confirmation,
|
|
14
14
|
// audit event). A CLI-only workflow for proposing a validated,
|
package/dist/5350.index.js
CHANGED
|
@@ -2,7 +2,7 @@ export const id = 5350;
|
|
|
2
2
|
export const ids = [5350];
|
|
3
3
|
export const modules = {
|
|
4
4
|
|
|
5
|
-
/***/
|
|
5
|
+
/***/ 55350:
|
|
6
6
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
7
7
|
|
|
8
8
|
|
|
@@ -13,7 +13,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
13
13
|
});
|
|
14
14
|
|
|
15
15
|
// EXTERNAL MODULE: ./src/dataflow/privacy-taxonomy.js
|
|
16
|
-
var privacy_taxonomy = __webpack_require__(
|
|
16
|
+
var privacy_taxonomy = __webpack_require__(47451);
|
|
17
17
|
;// CONCATENATED MODULE: ./src/lineage/decision-story.js
|
|
18
18
|
// decision-story.js — M4 deliverable #7 (FR-501 §14, DFG-035): the
|
|
19
19
|
// DecisionStory extension contract (§10.10) + a transparent 9-factor
|
|
@@ -223,13 +223,13 @@ function rankFlows(graph, opts = {}) {
|
|
|
223
223
|
}
|
|
224
224
|
|
|
225
225
|
// EXTERNAL MODULE: ./src/lineage/export-json.js
|
|
226
|
-
var export_json = __webpack_require__(
|
|
226
|
+
var export_json = __webpack_require__(40859);
|
|
227
227
|
// EXTERNAL MODULE: ./src/lineage/ids.js
|
|
228
|
-
var ids = __webpack_require__(
|
|
228
|
+
var ids = __webpack_require__(45034);
|
|
229
229
|
// EXTERNAL MODULE: ./src/lineage/protection.js
|
|
230
|
-
var protection = __webpack_require__(
|
|
230
|
+
var protection = __webpack_require__(80965);
|
|
231
231
|
// EXTERNAL MODULE: ./src/dataflow/privacy-governance.js
|
|
232
|
-
var privacy_governance = __webpack_require__(
|
|
232
|
+
var privacy_governance = __webpack_require__(63308);
|
|
233
233
|
;// CONCATENATED MODULE: ./src/lineage/export-briefing.js
|
|
234
234
|
// export-briefing.js — M4 deliverable #7 (FR-501 §14, DFG-035): Executive
|
|
235
235
|
// Risk Story Mode. Turns Task 1's decision-story.js#rankFlows output into a
|
package/dist/5561.index.js
CHANGED
|
@@ -2,7 +2,7 @@ export const id = 5561;
|
|
|
2
2
|
export const ids = [5561];
|
|
3
3
|
export const modules = {
|
|
4
4
|
|
|
5
|
-
/***/
|
|
5
|
+
/***/ 75561:
|
|
6
6
|
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
7
7
|
|
|
8
8
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
package/dist/5637.index.js
CHANGED
|
@@ -2,17 +2,20 @@ export const id = 5637;
|
|
|
2
2
|
export const ids = [5637];
|
|
3
3
|
export const modules = {
|
|
4
4
|
|
|
5
|
-
/***/
|
|
6
|
-
/***/ ((
|
|
5
|
+
/***/ 55637:
|
|
6
|
+
/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
7
7
|
|
|
8
|
+
__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
8
9
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
9
10
|
/* harmony export */ computePrDelta: () => (/* binding */ computePrDelta),
|
|
10
11
|
/* harmony export */ netNewGate: () => (/* binding */ netNewGate),
|
|
11
12
|
/* harmony export */ renderPrDeltaText: () => (/* binding */ renderPrDeltaText)
|
|
12
13
|
/* harmony export */ });
|
|
13
|
-
/* harmony import */ var node_child_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
14
|
-
/* harmony import */ var _util_git_hardening_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
15
|
-
/* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
14
|
+
/* harmony import */ var node_child_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31421);
|
|
15
|
+
/* harmony import */ var _util_git_hardening_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(78844);
|
|
16
|
+
/* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67198);
|
|
17
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_engine_js__WEBPACK_IMPORTED_MODULE_2__]);
|
|
18
|
+
_engine_js__WEBPACK_IMPORTED_MODULE_2__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
16
19
|
// Shadowscan / security-DELTA on PR (v0.72).
|
|
17
20
|
//
|
|
18
21
|
// Most SAST PR-comment integrations show absolute counts — "12 findings
|
|
@@ -246,6 +249,8 @@ function renderPrDeltaText(delta) {
|
|
|
246
249
|
return lines.join('\n');
|
|
247
250
|
}
|
|
248
251
|
|
|
252
|
+
__webpack_async_result__();
|
|
253
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
249
254
|
|
|
250
255
|
/***/ })
|
|
251
256
|
|