ghagga-core 3.1.0 → 3.2.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/embed.d.ts +140 -0
- package/dist/embed.d.ts.map +1 -1
- package/dist/embed.js +288 -0
- package/dist/embed.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/memory/backfill.d.ts +58 -0
- package/dist/memory/backfill.d.ts.map +1 -0
- package/dist/memory/backfill.js +85 -0
- package/dist/memory/backfill.js.map +1 -0
- package/dist/memory/sqlite.d.ts +78 -12
- package/dist/memory/sqlite.d.ts.map +1 -1
- package/dist/memory/sqlite.js +265 -85
- package/dist/memory/sqlite.js.map +1 -1
- package/dist/pipeline/gather-context.d.ts.map +1 -1
- package/dist/pipeline/gather-context.js +4 -2
- package/dist/pipeline/gather-context.js.map +1 -1
- package/dist/pipeline/gather-safe.d.ts +24 -4
- package/dist/pipeline/gather-safe.d.ts.map +1 -1
- package/dist/pipeline/gather-safe.js +42 -6
- package/dist/pipeline/gather-safe.js.map +1 -1
- package/dist/pipeline/prepare.d.ts.map +1 -1
- package/dist/pipeline/prepare.js +26 -0
- package/dist/pipeline/prepare.js.map +1 -1
- package/dist/pipeline/state.d.ts +3 -1
- package/dist/pipeline/state.d.ts.map +1 -1
- package/dist/providers/gateway-discovery.d.ts +5 -5
- package/dist/providers/gateway-discovery.d.ts.map +1 -1
- package/dist/providers/gateway-discovery.js +11 -9
- package/dist/providers/gateway-discovery.js.map +1 -1
- package/dist/providers/gateway.d.ts +87 -0
- package/dist/providers/gateway.d.ts.map +1 -1
- package/dist/providers/gateway.js +386 -8
- package/dist/providers/gateway.js.map +1 -1
- package/dist/types.d.ts +40 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/concurrency.d.ts.map +1 -1
- package/dist/utils/concurrency.js +37 -1
- package/dist/utils/concurrency.js.map +1 -1
- package/dist/utils/llm-timeout.d.ts +1 -1
- package/dist/utils/llm-timeout.d.ts.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gather-context.js","sourceRoot":"","sources":["../../src/pipeline/gather-context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gather-context.js","sourceRoot":"","sources":["../../src/pipeline/gather-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,12 @@
|
|
|
5
5
|
* `export` was added and relative import paths adjusted. They are
|
|
6
6
|
* private to the gather-context phase.
|
|
7
7
|
*
|
|
8
|
-
* ⚠️ queryCodeIntelSafe's catch is UNREACHABLE via provider failures
|
|
8
|
+
* ⚠️ queryCodeIntelSafe's OUTER catch is UNREACHABLE via provider failures
|
|
9
9
|
* (Promise.allSettled swallows per-file rejections); it only fires when
|
|
10
10
|
* the emit callback throws on the success message. Pinned by the golden
|
|
11
|
-
* suite — preserve the catch literally.
|
|
11
|
+
* suite — preserve the catch literally. Per-file rejections ARE now counted
|
|
12
|
+
* in the success path (CORE-INTEL-003): they feed `filesFailed` and, when
|
|
13
|
+
* every query fails, record their own `failedStep`.
|
|
12
14
|
*/
|
|
13
15
|
import type { CodeIntelResult } from '../code-intel/types.js';
|
|
14
16
|
import type { ReviewInput } from '../types.js';
|
|
@@ -28,12 +30,30 @@ export declare function searchMemorySafe(input: ReviewInput, fileList: string[],
|
|
|
28
30
|
step: string;
|
|
29
31
|
error: string;
|
|
30
32
|
}[]): Promise<string | null>;
|
|
33
|
+
/**
|
|
34
|
+
* Outcome of a code-intelligence query, carrying enough telemetry for the
|
|
35
|
+
* caller to build accurate metadata (CORE-INTEL-003). `filesFailed` counts
|
|
36
|
+
* per-file queries that rejected (previously discarded by allSettled), and
|
|
37
|
+
* `durationMs` is the real wall-clock duration of the step.
|
|
38
|
+
*/
|
|
39
|
+
export interface CodeIntelQueryOutcome {
|
|
40
|
+
results: CodeIntelResult[];
|
|
41
|
+
/** Number of per-file queries that rejected. */
|
|
42
|
+
filesFailed: number;
|
|
43
|
+
/** Real wall-clock duration of the code-intel step in ms. */
|
|
44
|
+
durationMs: number;
|
|
45
|
+
}
|
|
31
46
|
/**
|
|
32
47
|
* Query the code intelligence provider for structural context.
|
|
33
|
-
*
|
|
48
|
+
*
|
|
49
|
+
* Returns an empty outcome when disabled or unavailable. Per-file rejections
|
|
50
|
+
* are no longer silently discarded: they are counted (`filesFailed`) and, when
|
|
51
|
+
* EVERY query fails, a `failedStep` is recorded so `coverageComplete` flips and
|
|
52
|
+
* the degradation is visible to the user and observability. Partial failures
|
|
53
|
+
* surface via `filesFailed` and a warning emit without downgrading the review.
|
|
34
54
|
*/
|
|
35
55
|
export declare function queryCodeIntelSafe(input: ReviewInput, fileList: string[], emit: (event: import('../types.js').ProgressEvent) => void, failedSteps: {
|
|
36
56
|
step: string;
|
|
37
57
|
error: string;
|
|
38
|
-
}[]): Promise<
|
|
58
|
+
}[]): Promise<CodeIntelQueryOutcome>;
|
|
39
59
|
//# sourceMappingURL=gather-safe.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gather-safe.d.ts","sourceRoot":"","sources":["../../src/pipeline/gather-safe.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gather-safe.d.ts","sourceRoot":"","sources":["../../src/pipeline/gather-safe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,uDAwC/C;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,EAAE,EAClB,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,GAC7C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkBxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,aAAa,EAAE,aAAa,KAAK,IAAI,EAC1D,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,GAC7C,OAAO,CAAC,qBAAqB,CAAC,CAuGhC"}
|
|
@@ -5,10 +5,12 @@
|
|
|
5
5
|
* `export` was added and relative import paths adjusted. They are
|
|
6
6
|
* private to the gather-context phase.
|
|
7
7
|
*
|
|
8
|
-
* ⚠️ queryCodeIntelSafe's catch is UNREACHABLE via provider failures
|
|
8
|
+
* ⚠️ queryCodeIntelSafe's OUTER catch is UNREACHABLE via provider failures
|
|
9
9
|
* (Promise.allSettled swallows per-file rejections); it only fires when
|
|
10
10
|
* the emit callback throws on the success message. Pinned by the golden
|
|
11
|
-
* suite — preserve the catch literally.
|
|
11
|
+
* suite — preserve the catch literally. Per-file rejections ARE now counted
|
|
12
|
+
* in the success path (CORE-INTEL-003): they feed `filesFailed` and, when
|
|
13
|
+
* every query fails, record their own `failedStep`.
|
|
12
14
|
*/
|
|
13
15
|
import { searchMemoryForContext } from '../memory/search.js';
|
|
14
16
|
import { runStaticAnalysis } from '../tools/runner.js';
|
|
@@ -73,11 +75,16 @@ export async function searchMemorySafe(input, fileList, failedSteps) {
|
|
|
73
75
|
}
|
|
74
76
|
/**
|
|
75
77
|
* Query the code intelligence provider for structural context.
|
|
76
|
-
*
|
|
78
|
+
*
|
|
79
|
+
* Returns an empty outcome when disabled or unavailable. Per-file rejections
|
|
80
|
+
* are no longer silently discarded: they are counted (`filesFailed`) and, when
|
|
81
|
+
* EVERY query fails, a `failedStep` is recorded so `coverageComplete` flips and
|
|
82
|
+
* the degradation is visible to the user and observability. Partial failures
|
|
83
|
+
* surface via `filesFailed` and a warning emit without downgrading the review.
|
|
77
84
|
*/
|
|
78
85
|
export async function queryCodeIntelSafe(input, fileList, emit, failedSteps) {
|
|
79
86
|
if (!input.settings.enableCodeIntel || !input.codeIntelProvider) {
|
|
80
|
-
return [];
|
|
87
|
+
return { results: [], filesFailed: 0, durationMs: 0 };
|
|
81
88
|
}
|
|
82
89
|
const startTime = Date.now();
|
|
83
90
|
emit({
|
|
@@ -86,6 +93,7 @@ export async function queryCodeIntelSafe(input, fileList, emit, failedSteps) {
|
|
|
86
93
|
});
|
|
87
94
|
try {
|
|
88
95
|
const results = [];
|
|
96
|
+
const failureReasons = [];
|
|
89
97
|
const provider = input.codeIntelProvider;
|
|
90
98
|
// Query each changed file for structural data (parallel)
|
|
91
99
|
const queries = fileList.map(async (file) => {
|
|
@@ -105,14 +113,42 @@ export async function queryCodeIntelSafe(input, fileList, emit, failedSteps) {
|
|
|
105
113
|
if (outcome.status === 'fulfilled') {
|
|
106
114
|
results.push(outcome.value);
|
|
107
115
|
}
|
|
116
|
+
else {
|
|
117
|
+
failureReasons.push(outcome.reason instanceof Error ? outcome.reason.message : String(outcome.reason));
|
|
118
|
+
}
|
|
108
119
|
}
|
|
120
|
+
const filesFailed = failureReasons.length;
|
|
109
121
|
const durationMs = Date.now() - startTime;
|
|
110
122
|
const withData = results.filter((r) => r.callers.length > 0 || r.callees.length > 0 || r.imports.length > 0).length;
|
|
123
|
+
// All queries failed → the step produced no structural data. Mark it as a
|
|
124
|
+
// real failure so coverageComplete flips and PASSED downgrades to PARTIAL.
|
|
125
|
+
if (filesFailed > 0 && results.length === 0) {
|
|
126
|
+
const aggregated = failureReasons.slice(0, 3).join('; ');
|
|
127
|
+
console.warn('[ghagga] Code intelligence query failed (all files, degrading gracefully):', aggregated);
|
|
128
|
+
failedSteps.push({
|
|
129
|
+
step: 'code-intel',
|
|
130
|
+
error: `all ${filesFailed} code-intel queries failed: ${aggregated}`,
|
|
131
|
+
});
|
|
132
|
+
emit({
|
|
133
|
+
step: 'code-intel',
|
|
134
|
+
message: `Code intelligence: all ${filesFailed} file query(ies) failed (${durationMs}ms) — continuing without`,
|
|
135
|
+
});
|
|
136
|
+
return { results, filesFailed, durationMs };
|
|
137
|
+
}
|
|
138
|
+
// Partial failure → visible via filesFailed + warning, but not a hard fail.
|
|
139
|
+
if (filesFailed > 0) {
|
|
140
|
+
console.warn(`[ghagga] Code intelligence: ${filesFailed} of ${fileList.length} file query(ies) failed (degrading gracefully)`);
|
|
141
|
+
emit({
|
|
142
|
+
step: 'code-intel',
|
|
143
|
+
message: `Code intelligence: ${withData}/${results.length} files with structural data, ${filesFailed} query(ies) failed (${durationMs}ms)`,
|
|
144
|
+
});
|
|
145
|
+
return { results, filesFailed, durationMs };
|
|
146
|
+
}
|
|
111
147
|
emit({
|
|
112
148
|
step: 'code-intel',
|
|
113
149
|
message: `Code intelligence: ${withData}/${results.length} files with structural data (${durationMs}ms)`,
|
|
114
150
|
});
|
|
115
|
-
return results;
|
|
151
|
+
return { results, filesFailed: 0, durationMs };
|
|
116
152
|
}
|
|
117
153
|
catch (error) {
|
|
118
154
|
console.warn('[ghagga] Code intelligence query failed (degrading gracefully):', error instanceof Error ? error.message : String(error));
|
|
@@ -121,7 +157,7 @@ export async function queryCodeIntelSafe(input, fileList, emit, failedSteps) {
|
|
|
121
157
|
error: error instanceof Error ? error.message : String(error),
|
|
122
158
|
});
|
|
123
159
|
emit({ step: 'code-intel', message: 'Code intelligence: failed — continuing without' });
|
|
124
|
-
return [];
|
|
160
|
+
return { results: [], filesFailed: fileList.length, durationMs: Date.now() - startTime };
|
|
125
161
|
}
|
|
126
162
|
}
|
|
127
163
|
//# sourceMappingURL=gather-safe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gather-safe.js","sourceRoot":"","sources":["../../src/pipeline/gather-safe.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gather-safe.js","sourceRoot":"","sources":["../../src/pipeline/gather-safe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../src/pipeline/prepare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAe,WAAW,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AAOtF,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"prepare.d.ts","sourceRoot":"","sources":["../../src/pipeline/prepare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAe,WAAW,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AAOtF,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAiGpE;;GAEG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CA8KzE"}
|
package/dist/pipeline/prepare.js
CHANGED
|
@@ -26,6 +26,27 @@ import { applyBlastRadius, buildCallChainContext } from './prepare-graph.js';
|
|
|
26
26
|
import { resolveAiEnabled, resolvePrimaryModel } from './providers.js';
|
|
27
27
|
import { createSkippedResult } from './results.js';
|
|
28
28
|
// ─── Validation ─────────────────────────────────────────────────
|
|
29
|
+
/**
|
|
30
|
+
* Validate the numeric concurrency/delay knobs on ReviewSettings.
|
|
31
|
+
*
|
|
32
|
+
* `reviewConcurrency` must be a finite integer >= 1 (it drives the
|
|
33
|
+
* `i += concurrency` batch loop in runWithConcurrency); `reviewDelayMs`
|
|
34
|
+
* must be a finite integer >= 0. Undefined values fall back to defaults
|
|
35
|
+
* downstream and are accepted here. Throws on any invalid value.
|
|
36
|
+
*/
|
|
37
|
+
function validateReviewSettings(settings) {
|
|
38
|
+
const { reviewConcurrency, reviewDelayMs } = settings;
|
|
39
|
+
if (reviewConcurrency !== undefined) {
|
|
40
|
+
if (!Number.isInteger(reviewConcurrency) || reviewConcurrency < 1) {
|
|
41
|
+
throw new Error(`reviewConcurrency must be a finite integer >= 1, received: ${reviewConcurrency}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (reviewDelayMs !== undefined) {
|
|
45
|
+
if (!Number.isFinite(reviewDelayMs) || reviewDelayMs < 0) {
|
|
46
|
+
throw new Error(`reviewDelayMs must be a finite number >= 0, received: ${reviewDelayMs}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
29
50
|
/**
|
|
30
51
|
* Validate the review input for required fields.
|
|
31
52
|
* Throws descriptive errors for misconfiguration.
|
|
@@ -34,6 +55,11 @@ function validateInput(input) {
|
|
|
34
55
|
if (!input.diff || input.diff.trim().length === 0) {
|
|
35
56
|
throw new Error('Review input must include a non-empty diff');
|
|
36
57
|
}
|
|
58
|
+
// Central boundary validation for public tuning knobs. These flow from the
|
|
59
|
+
// API straight into runWithConcurrency; an invalid concurrency would make
|
|
60
|
+
// the batch loop stall (0) or run backwards (negatives), and a negative
|
|
61
|
+
// delay is nonsensical for setTimeout. Reject early with a clear message.
|
|
62
|
+
validateReviewSettings(input.settings);
|
|
37
63
|
// If AI review is explicitly disabled, no provider/model/key needed
|
|
38
64
|
if (input.aiReviewEnabled === false) {
|
|
39
65
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../src/pipeline/prepare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAcnD,mEAAmE;AAEnE;;;GAGG;AACH,SAAS,aAAa,CAAC,KAAkB;IACvC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,oEAAoE;IACpE,IAAI,KAAK,CAAC,eAAe,KAAK,KAAK,EAAE,CAAC;QACpC,OAAO;IACT,CAAC;IAED,sDAAsD;IACtD,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,uDAAuD;IACvD,IAAI,KAAK,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACpC,OAAO;IACT,CAAC;IAED,kFAAkF;IAClF,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,oDAAoD;IACpD,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,kEAAkE;IAClE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,SAAS,GAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CACb,aAAa,KAAK,CAAC,QAAQ,qCAAqC;gBAC9D,uEAAuE;gBACvE,uDAAuD,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,YAAY,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACpF,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,mEAAmE;AAEnE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAkB;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAE5C,uDAAuD;IACvD,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,oEAAoE;IACpE,mEAAmE;IACnE,MAAM,oBAAoB,GAAa,EAAE,CAAC;IAE1C,uCAAuC;IACvC,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE1C,8DAA8D;IAC9D,aAAa,CAAC,KAAK,CAAC,CAAC;IACrB,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAEvD,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,EACF,QAAQ,EAAE,aAAa,EACvB,OAAO,EACP,QAAQ,GACT,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAE7D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,WAAW,OAAO,CAAC,MAAM,gCAAgC;YAClE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,YAAY,QAAQ,CAAC,MAAM,0CAA0C;YAC9E,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,UAAU,QAAQ,CAAC,MAAM,qBAAqB,aAAa,CAAC,MAAM,qBAAqB,OAAO,CAAC,MAAM,aAAa,QAAQ,CAAC,MAAM,YAAY;QACtJ,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;KAC3D,CAAC,CAAC;IAEH,6DAA6D;IAC7D,8DAA8D;IAC9D,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACrF,MAAM,WAAW,GAAG,WAAW,CAAC;QAC9B,WAAW,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;QAC/B,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE;QAC/C,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI;QACjE,YAAY;QACZ,aAAa,EAAE,SAAS;KACzB,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,mBAAmB,WAAW,CAAC,cAAc,EAAE;YACxD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACtD,OAAO;YACL,IAAI,EAAE,OAAO;YACb,MAAM,EAAE;gBACN,GAAG,OAAO;gBACV,OAAO,EAAE,0DAA0D;aACpE;SACF,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED,8CAA8C;IAC9C,IAAI,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAElD,6DAA6D;IAC7D,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC;QACnC,KAAK;QACL,IAAI;QACJ,WAAW;QACX,QAAQ;QACR,aAAa;QACb,YAAY;KACb,CAAC,CAAC;IACH,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IACpC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IAClC,MAAM,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,CAAC;IAEtD,uFAAuF;IACvF,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAAC;QACnD,KAAK;QACL,IAAI;QACJ,WAAW;QACX,oBAAoB;QACpB,QAAQ;QACR,YAAY;KACb,CAAC,CAAC;IAEH,8DAA8D;IAC9D,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,YAAY,MAAM,CAAC,MAAM,gBAAgB;QAClD,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB;KACzF,CAAC,CAAC;IAEH,8DAA8D;IAC9D,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACzE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC5E,IAAI,CAAC;QACH,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,iBAAiB,UAAU,CAAC,cAAc,EAAE,qBAAqB,aAAa,CAAC,cAAc,EAAE,qBAAqB;KAC9H,CAAC,CAAC;IAEH,+DAA+D;IAC/D,8DAA8D;IAC9D,sEAAsE;IACtE,oEAAoE;IACpE,gEAAgE;IAChE,gEAAgE;IAChE,kCAAkC;IAClC,MAAM,WAAW,GAAG,GAAe,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;IAChG,MAAM,IAAI,GAAsB;QAC9B,KAAK;QACL,SAAS;QACT,IAAI;QACJ,SAAS;QACT,QAAQ;QACR,QAAQ;QACR,aAAa;QACb,YAAY;QACZ,mBAAmB;QACnB,gBAAgB;QAChB,MAAM;QACN,UAAU;QACV,aAAa;QACb,UAAU;QACV,aAAa;QACb,kEAAkE;QAClE,0BAA0B;QAC1B,YAAY,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE;QAClF,gBAAgB,EAAE,IAAI;QACtB,gBAAgB,EAAE,EAAE;QACpB,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE,EAAE;QACpB,gBAAgB,EAAE,EAAE;QACpB,iBAAiB,EAAE,IAAI;QACvB,sBAAsB,EAAE,EAAE;QAC1B,sBAAsB,EAAE,EAAE;QAC1B,2DAA2D;QAC3D,cAAc,EAAE,EAAE;QAClB,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,KAAK;QACf,iBAAiB,EAAE,KAAK,CAAC,IAAI,EAAE,sCAAsC;QACrE,WAAW;QACX,oBAAoB;KACrB,CAAC;IAEF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../src/pipeline/prepare.ts"],"names":[],"mappings":"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"}
|
package/dist/pipeline/state.d.ts
CHANGED
|
@@ -58,7 +58,9 @@ export interface PipelineStateBase {
|
|
|
58
58
|
staticResult: StaticAnalysisResult;
|
|
59
59
|
rawMemoryContext: string | null;
|
|
60
60
|
codeIntelResults: CodeIntelResult[];
|
|
61
|
-
codeIntelMetadata?: CodeIntelMetadata
|
|
61
|
+
codeIntelMetadata?: CodeIntelMetadata & {
|
|
62
|
+
filesFailed?: number;
|
|
63
|
+
};
|
|
62
64
|
staticContext: string;
|
|
63
65
|
memoryContext: string | null;
|
|
64
66
|
codeIntelContext: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/pipeline/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,YAAY,EACZ,oBAAoB,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAEhC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAG5B,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC9B;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAI5B,aAAa,EAAE,QAAQ,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IAMtB,YAAY,EAAE,oBAAoB,CAAC;IACnC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/pipeline/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,YAAY,EACZ,oBAAoB,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAEhC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAG5B,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC9B;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAI5B,aAAa,EAAE,QAAQ,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IAMtB,YAAY,EAAE,oBAAoB,CAAC;IACnC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IAIpC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,eAAe,GAAG,IAAI,CAAC;IAC1C,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAI/B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAGlB,sBAAsB,CAAC,EAAE,aAAa,EAAE,CAAC;IACzC,eAAe,CAAC,EAAE,eAAe,CAAC;IAKlC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,iBAAiB,EAAE,UAAU,CAAC;IAE9B,WAAW,EAAE,UAAU,EAAE,CAAC;IAE1B;;;;;;;;OAQG;IACH,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IAGtD,MAAM,EAAE,YAAY,CAAC;CACtB"}
|
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
* wiring lands the chain is sent unvalidated (tracked as a follow-up).
|
|
12
12
|
*
|
|
13
13
|
* SECURITY: the fetch helpers take a raw gatewayUrl and attach the bearer
|
|
14
|
-
* token.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
14
|
+
* token. They route through `pinnedFetch` (gateway.ts) — the SAME SSRF /
|
|
15
|
+
* DNS-rebinding-pinning policy as the generation path (SEC-001): the hostname
|
|
16
|
+
* is resolved ONCE, every A/AAAA answer is validated, and the socket is pinned
|
|
17
|
+
* to an approved IP with Host header + TLS SNI preserved. Discovery and generate
|
|
18
|
+
* therefore share one pinning policy; a rebound host can never receive the token.
|
|
19
19
|
*/
|
|
20
20
|
import type { ProviderChainEntry } from '../types.js';
|
|
21
21
|
/** One entry from GET /v1/models (`data[]`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-discovery.d.ts","sourceRoot":"","sources":["../../src/providers/gateway-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"gateway-discovery.d.ts","sourceRoot":"","sources":["../../src/providers/gateway-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKtD,gDAAgD;AAChD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wDAAwD;AACxD,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAoCD,6DAA6D;AAC7D,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAS9B;AAED,gEAAgE;AAChE,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CASlC;AAID,MAAM,WAAW,qBAAqB;IACpC,4BAA4B;IAC5B,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,qEAAqE;IACrE,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,kBAAkB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,EAAE,EAC3B,MAAM,EAAE,iBAAiB,EAAE,EAC3B,SAAS,EAAE,qBAAqB,EAAE,GACjC,qBAAqB,CAkBvB"}
|
|
@@ -11,12 +11,13 @@
|
|
|
11
11
|
* wiring lands the chain is sent unvalidated (tracked as a follow-up).
|
|
12
12
|
*
|
|
13
13
|
* SECURITY: the fetch helpers take a raw gatewayUrl and attach the bearer
|
|
14
|
-
* token.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
14
|
+
* token. They route through `pinnedFetch` (gateway.ts) — the SAME SSRF /
|
|
15
|
+
* DNS-rebinding-pinning policy as the generation path (SEC-001): the hostname
|
|
16
|
+
* is resolved ONCE, every A/AAAA answer is validated, and the socket is pinned
|
|
17
|
+
* to an approved IP with Host header + TLS SNI preserved. Discovery and generate
|
|
18
|
+
* therefore share one pinning policy; a rebound host can never receive the token.
|
|
19
19
|
*/
|
|
20
|
+
import { pinnedFetch } from './gateway.js';
|
|
20
21
|
// ─── Fetch helpers ──────────────────────────────────────────────
|
|
21
22
|
async function gatewayGet(gatewayUrl, gatewayToken, path) {
|
|
22
23
|
if (!gatewayUrl) {
|
|
@@ -25,13 +26,14 @@ async function gatewayGet(gatewayUrl, gatewayToken, path) {
|
|
|
25
26
|
if (!gatewayToken) {
|
|
26
27
|
throw new Error('Gateway token not configured — set the API key in the dashboard provider chain settings');
|
|
27
28
|
}
|
|
28
|
-
|
|
29
|
+
// SSRF: pinnedFetch resolves once, validates every DNS answer, and pins the
|
|
30
|
+
// socket to a non-forbidden IP (same policy as generateViaGateway). Node's
|
|
31
|
+
// http/https client never follows a 3xx, so a redirect surfaces as a non-ok
|
|
32
|
+
// response below and can never chase a Location to an unvalidated host.
|
|
33
|
+
const response = await pinnedFetch(`${gatewayUrl}${path}`, {
|
|
29
34
|
method: 'GET',
|
|
30
35
|
headers: { Authorization: `Bearer ${gatewayToken}` },
|
|
31
36
|
signal: AbortSignal.timeout(30_000),
|
|
32
|
-
// SSRF defense: same rationale as generateViaGateway — never chase a 3xx
|
|
33
|
-
// to an unvalidated host. A redirect surfaces as a non-ok response below.
|
|
34
|
-
redirect: 'manual',
|
|
35
37
|
});
|
|
36
38
|
if (!response.ok) {
|
|
37
39
|
const error = await response.text().catch(() => 'unknown error');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-discovery.js","sourceRoot":"","sources":["../../src/providers/gateway-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"gateway-discovery.js","sourceRoot":"","sources":["../../src/providers/gateway-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAoB3C,mEAAmE;AAEnE,KAAK,UAAU,UAAU,CACvB,UAAkB,EAClB,YAAoB,EACpB,IAAY;IAEZ,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,wEAAwE;IACxE,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,UAAU,GAAG,IAAI,EAAE,EAAE;QACzD,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,YAAY,EAAE,EAAE;QACpD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,kBAAkB,QAAQ,CAAC,MAAM,MAAM,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB,EAClB,YAAoB;IAEpB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACtE,MAAM,IAAI,GAAI,IAA2B,CAAC,IAAI,CAAC;IAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,2EAA2E;IAC3E,4DAA4D;IAC5D,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,CAAC,EAA0B,EAAE,CAAC,OAAQ,CAAuB,EAAE,EAAE,KAAK,QAAQ,CAChF,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAkB,EAClB,YAAoB;IAEpB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IACzE,MAAM,SAAS,GAAI,IAAgC,CAAC,SAAS,CAAC;IAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACzC,OAAO,SAAS,CAAC,MAAM,CACrB,CAAC,CAAC,EAA8B,EAAE,CAChC,OAAQ,CAA2B,EAAE,EAAE,KAAK,QAAQ;QACpD,OAAQ,CAA2B,EAAE,SAAS,KAAK,SAAS,CAC/D,CAAC;AACJ,CAAC;AAWD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAA2B,EAC3B,MAA2B,EAC3B,SAAkC;IAElC,MAAM,MAAM,GAA0B,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAEjE,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC9D,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAAyB,EACzB,MAA2B,EAC3B,SAAkC;IAElC,6EAA6E;IAC7E,2EAA2E;IAC3E,6DAA6D;IAC7D,IAAI,KAAK,CAAC,cAAc,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,cAAc,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,4BAA4B,KAAK,CAAC,cAAc,GAAG,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,oBAAoB,KAAK,CAAC,cAAc,kBAAkB,CAAC;QACpE,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/D,4EAA4E;QAC5E,wEAAwE;QACxE,oDAAoD;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,cAAc,CAAC,CAC9F,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC,cAAc;gBACzB,CAAC,CAAC,UAAU,KAAK,CAAC,KAAK,iCAAiC,KAAK,CAAC,cAAc,GAAG;gBAC/E,CAAC,CAAC,UAAU,KAAK,CAAC,KAAK,gCAAgC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -14,6 +14,31 @@
|
|
|
14
14
|
*
|
|
15
15
|
* This provider bypasses the AI SDK entirely — the gateway handles model
|
|
16
16
|
* selection, provider routing, and token management internally.
|
|
17
|
+
*
|
|
18
|
+
* ─── SSRF / DNS-rebinding defense (SEC-001) ─────────────────────────────────
|
|
19
|
+
*
|
|
20
|
+
* The gateway URL is user-supplied (dashboard provider chain). A naive
|
|
21
|
+
* `fetch(url)` re-resolves the hostname at connection time, so an attacker who
|
|
22
|
+
* controls the hostname's DNS can pass a persist-time/validation-time check
|
|
23
|
+
* (resolving to a public IP) and then rebind the record to loopback, cloud
|
|
24
|
+
* metadata (169.254.169.254), or an RFC-1918 host before the actual request.
|
|
25
|
+
*
|
|
26
|
+
* `pinnedFetch` (below) closes that TOCTOU: it resolves the hostname EXACTLY
|
|
27
|
+
* ONCE, validates EVERY A/AAAA answer against the forbidden ranges, rejects
|
|
28
|
+
* mixed public/private answer sets, picks one approved IP, and PINS the socket
|
|
29
|
+
* to that IP via a custom `lookup` fed to Node's built-in http/https client —
|
|
30
|
+
* while preserving the original Host header and TLS SNI (servername). Both the
|
|
31
|
+
* generation path (this file) AND the discovery path (gateway-discovery.ts)
|
|
32
|
+
* route through the SAME `pinnedFetch`, so they share one pinning policy.
|
|
33
|
+
*
|
|
34
|
+
* Node's http/https client never auto-follows redirects, so a 3xx surfaces as a
|
|
35
|
+
* non-ok response (the old `redirect: 'manual'` posture) and can never chase a
|
|
36
|
+
* Location header to an unvalidated address.
|
|
37
|
+
*
|
|
38
|
+
* Self-hosted escape hatch: `GHAGGA_ALLOW_PRIVATE_GATEWAY=true` skips the
|
|
39
|
+
* IP-range checks (for gateways that legitimately live on a private network) —
|
|
40
|
+
* the connection is STILL pinned to the resolved address, and the protocol /
|
|
41
|
+
* userinfo checks are always enforced.
|
|
17
42
|
*/
|
|
18
43
|
export interface GatewayOptions {
|
|
19
44
|
/** Gateway base URL (e.g., "https://llm-gateway.javierzader.com") */
|
|
@@ -36,6 +61,67 @@ export interface GatewayResponse {
|
|
|
36
61
|
model: string;
|
|
37
62
|
tokensUsed?: number;
|
|
38
63
|
}
|
|
64
|
+
/** A hostname resolved and validated to a single approved, pinned address. */
|
|
65
|
+
export interface PinnedHost {
|
|
66
|
+
/** Parsed, protocol-checked URL. */
|
|
67
|
+
url: URL;
|
|
68
|
+
/** Hostname (brackets stripped for IPv6) — used for Host header + SNI. */
|
|
69
|
+
hostname: string;
|
|
70
|
+
/** The approved IP the socket is pinned to. */
|
|
71
|
+
ip: string;
|
|
72
|
+
/** IP family of the pinned address (4 or 6). */
|
|
73
|
+
family: 4 | 6;
|
|
74
|
+
/** Effective port. */
|
|
75
|
+
port: number;
|
|
76
|
+
}
|
|
77
|
+
/** An address record returned by DNS lookup. */
|
|
78
|
+
interface LookupAddress {
|
|
79
|
+
address: string;
|
|
80
|
+
family: number;
|
|
81
|
+
}
|
|
82
|
+
/** DNS resolver signature — injectable for tests. */
|
|
83
|
+
export type ResolveAllFn = (hostname: string) => Promise<LookupAddress[]>;
|
|
84
|
+
/**
|
|
85
|
+
* Resolve a user-supplied gateway URL to exactly ONE approved, pinned IP.
|
|
86
|
+
*
|
|
87
|
+
* SECURITY: never echoes the hostname/address in thrown messages — the URL IS
|
|
88
|
+
* the SSRF target. Callers log the category only.
|
|
89
|
+
*
|
|
90
|
+
* @throws {Error} with a generic reason if the URL is unusable or forbidden.
|
|
91
|
+
*/
|
|
92
|
+
export declare function resolveAndPinHost(rawUrl: string, resolveAll?: ResolveAllFn, opts?: {
|
|
93
|
+
signal?: AbortSignal;
|
|
94
|
+
dnsTimeoutMs?: number;
|
|
95
|
+
}): Promise<PinnedHost>;
|
|
96
|
+
/** Minimal fetch-like response returned by pinnedFetch. */
|
|
97
|
+
export interface PinnedResponse {
|
|
98
|
+
ok: boolean;
|
|
99
|
+
status: number;
|
|
100
|
+
text(): Promise<string>;
|
|
101
|
+
json(): Promise<unknown>;
|
|
102
|
+
}
|
|
103
|
+
interface PinnedRequestInit {
|
|
104
|
+
method: string;
|
|
105
|
+
headers: Record<string, string>;
|
|
106
|
+
body?: string;
|
|
107
|
+
/** Abort signal (e.g. AbortSignal.timeout(...)). */
|
|
108
|
+
signal?: AbortSignal;
|
|
109
|
+
/** Injectable resolver for tests. */
|
|
110
|
+
resolveAll?: ResolveAllFn;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Perform an HTTP(S) request to a user-supplied gateway URL with the connection
|
|
114
|
+
* PINNED to a validated, non-forbidden IP (SEC-001). See the module header.
|
|
115
|
+
*
|
|
116
|
+
* Both the generation and discovery paths call this, so they share one policy.
|
|
117
|
+
*
|
|
118
|
+
* ERROR SHAPE: on failure this rejects with a PLAIN `Error` (e.g. 'request
|
|
119
|
+
* aborted', 'request timed out', 'gateway host DNS resolution timed out'), NOT a
|
|
120
|
+
* fetch-shaped `TypeError`/`AbortError`. Callers must not branch on error type
|
|
121
|
+
* (`err.name === 'AbortError'`); inspect the message or treat any rejection as a
|
|
122
|
+
* failed request.
|
|
123
|
+
*/
|
|
124
|
+
export declare function pinnedFetch(rawUrl: string, init: PinnedRequestInit): Promise<PinnedResponse>;
|
|
39
125
|
/**
|
|
40
126
|
* Generate text via the LLM Gateway.
|
|
41
127
|
*
|
|
@@ -45,4 +131,5 @@ export interface GatewayResponse {
|
|
|
45
131
|
* @returns Gateway response with generated text and metadata
|
|
46
132
|
*/
|
|
47
133
|
export declare function generateViaGateway(prompt: string, systemPrompt?: string, options?: GatewayOptions): Promise<GatewayResponse>;
|
|
134
|
+
export {};
|
|
48
135
|
//# sourceMappingURL=gateway.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/providers/gateway.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/providers/gateway.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AASH,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAkID,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,oCAAoC;IACpC,GAAG,EAAE,GAAG,CAAC;IACT,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,gDAAgD;IAChD,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;IACd,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,gDAAgD;AAChD,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qDAAqD;AACrD,MAAM,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;AA8D1E;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,YAAgC,EAC5C,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD,OAAO,CAAC,UAAU,CAAC,CA+ErB;AAID,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1B;AAED,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,qCAAqC;IACrC,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,cAAc,CAAC,CAwFzB;AAID;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,eAAe,CAAC,CAsC1B"}
|