@duckcodeailabs/dql-agent 1.13.4 → 1.13.5
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/agent-run-engine.d.ts +66 -3
- package/dist/agent-run-engine.d.ts.map +1 -1
- package/dist/agent-run-engine.js +441 -28
- package/dist/agent-run-engine.js.map +1 -1
- package/dist/agentic/tool-loop.d.ts.map +1 -1
- package/dist/agentic/tool-loop.js +100 -32
- package/dist/agentic/tool-loop.js.map +1 -1
- package/dist/aggregation-safety-proof.d.ts +41 -0
- package/dist/aggregation-safety-proof.d.ts.map +1 -0
- package/dist/aggregation-safety-proof.js +511 -0
- package/dist/aggregation-safety-proof.js.map +1 -0
- package/dist/analytical-compatibility.d.ts.map +1 -1
- package/dist/analytical-compatibility.js +42 -25
- package/dist/analytical-compatibility.js.map +1 -1
- package/dist/analytical-execution-graph.d.ts +4 -21
- package/dist/analytical-execution-graph.d.ts.map +1 -1
- package/dist/analytical-execution-graph.js +27 -0
- package/dist/analytical-execution-graph.js.map +1 -1
- package/dist/analytical-frame.d.ts +12 -1
- package/dist/analytical-frame.d.ts.map +1 -1
- package/dist/analytical-frame.js +102 -2
- package/dist/analytical-frame.js.map +1 -1
- package/dist/analytical-result-facts.d.ts +53 -0
- package/dist/analytical-result-facts.d.ts.map +1 -1
- package/dist/analytical-result-facts.js +144 -0
- package/dist/analytical-result-facts.js.map +1 -1
- package/dist/answer-loop.d.ts +40 -3
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +681 -37
- package/dist/answer-loop.js.map +1 -1
- package/dist/cascade/budgets.js +1 -1
- package/dist/cascade/route-policy.d.ts +1 -1
- package/dist/cascade/route-policy.d.ts.map +1 -1
- package/dist/cascade/route-policy.js +2 -0
- package/dist/cascade/route-policy.js.map +1 -1
- package/dist/generated-analytical-proposal.d.ts +37 -0
- package/dist/generated-analytical-proposal.d.ts.map +1 -0
- package/dist/generated-analytical-proposal.js +219 -0
- package/dist/generated-analytical-proposal.js.map +1 -0
- package/dist/index.d.ts +9 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/intent-controller.d.ts +8 -1
- package/dist/intent-controller.d.ts.map +1 -1
- package/dist/intent-controller.js.map +1 -1
- package/dist/kg/build.js +102 -6
- package/dist/kg/build.js.map +1 -1
- package/dist/meaning-resolution.d.ts +23 -0
- package/dist/meaning-resolution.d.ts.map +1 -1
- package/dist/meaning-resolution.js +61 -8
- package/dist/meaning-resolution.js.map +1 -1
- package/dist/metadata/analysis-planner.d.ts.map +1 -1
- package/dist/metadata/analysis-planner.js +46 -2
- package/dist/metadata/analysis-planner.js.map +1 -1
- package/dist/metadata/block-fit.d.ts.map +1 -1
- package/dist/metadata/block-fit.js +55 -2
- package/dist/metadata/block-fit.js.map +1 -1
- package/dist/metadata/meaning-evidence.d.ts.map +1 -1
- package/dist/metadata/meaning-evidence.js +323 -36
- package/dist/metadata/meaning-evidence.js.map +1 -1
- package/dist/metadata/sql-context-validation.d.ts +3 -0
- package/dist/metadata/sql-context-validation.d.ts.map +1 -1
- package/dist/metadata/sql-context-validation.js +16 -5
- package/dist/metadata/sql-context-validation.js.map +1 -1
- package/dist/plan-execution-adapter.d.ts +9 -1
- package/dist/plan-execution-adapter.d.ts.map +1 -1
- package/dist/plan-execution-adapter.js +81 -32
- package/dist/plan-execution-adapter.js.map +1 -1
- package/dist/provider-egress.d.ts +122 -0
- package/dist/provider-egress.d.ts.map +1 -0
- package/dist/provider-egress.js +504 -0
- package/dist/provider-egress.js.map +1 -0
- package/dist/providers/claude.d.ts.map +1 -1
- package/dist/providers/claude.js +76 -33
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/dispatch.d.ts +15 -0
- package/dist/providers/dispatch.d.ts.map +1 -0
- package/dist/providers/dispatch.js +25 -0
- package/dist/providers/dispatch.js.map +1 -0
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +16 -8
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/index.d.ts +2 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/ollama.d.ts.map +1 -1
- package/dist/providers/ollama.js +29 -10
- package/dist/providers/ollama.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +92 -36
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/types.d.ts +43 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/relationship-proof.d.ts +19 -0
- package/dist/relationship-proof.d.ts.map +1 -0
- package/dist/relationship-proof.js +75 -0
- package/dist/relationship-proof.js.map +1 -0
- package/dist/research-loop.d.ts.map +1 -1
- package/dist/research-loop.js +17 -11
- package/dist/research-loop.js.map +1 -1
- package/dist/resolved-analytical-plan.d.ts +25 -3
- package/dist/resolved-analytical-plan.d.ts.map +1 -1
- package/dist/resolved-analytical-plan.js +369 -27
- package/dist/resolved-analytical-plan.js.map +1 -1
- package/dist/router.d.ts +30 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +705 -44
- package/dist/router.js.map +1 -1
- package/dist/semantic-identities.d.ts +18 -0
- package/dist/semantic-identities.d.ts.map +1 -0
- package/dist/semantic-identities.js +60 -0
- package/dist/semantic-identities.js.map +1 -0
- package/dist/semantic-proof-authority.d.ts +29 -0
- package/dist/semantic-proof-authority.d.ts.map +1 -0
- package/dist/semantic-proof-authority.js +34 -0
- package/dist/semantic-proof-authority.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,504 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
export const PROVIDER_RESULT_ROW_REDACTION_POLICY_ID = 'research-result-rows-v1';
|
|
3
|
+
export const PROVIDER_ZERO_RESULT_ROWS_POLICY_ID = 'no-result-rows-v1';
|
|
4
|
+
export const ASK_NARRATION_RESULT_ROW_POLICY_ID = 'ask-narration-rows-v1';
|
|
5
|
+
/** Hard ceiling on rows any narration policy may release, whatever the config says. */
|
|
6
|
+
export const MAX_ASK_NARRATION_RESULT_ROWS = 20;
|
|
7
|
+
export const DEFAULT_ASK_ROW_EGRESS_POLICY = Object.freeze({
|
|
8
|
+
maxNarrationRows: MAX_ASK_NARRATION_RESULT_ROWS,
|
|
9
|
+
maxToolRows: 0,
|
|
10
|
+
source: 'default',
|
|
11
|
+
policyId: ASK_NARRATION_RESULT_ROW_POLICY_ID,
|
|
12
|
+
});
|
|
13
|
+
export const ZERO_ROW_EGRESS_POLICY = Object.freeze({
|
|
14
|
+
maxNarrationRows: 0,
|
|
15
|
+
maxToolRows: 0,
|
|
16
|
+
source: 'project_config',
|
|
17
|
+
policyId: PROVIDER_ZERO_RESULT_ROWS_POLICY_ID,
|
|
18
|
+
});
|
|
19
|
+
export const RESEARCH_ROW_EGRESS_POLICY = Object.freeze({
|
|
20
|
+
maxNarrationRows: MAX_ASK_NARRATION_RESULT_ROWS,
|
|
21
|
+
maxToolRows: 200,
|
|
22
|
+
source: 'request_opt_in',
|
|
23
|
+
policyId: PROVIDER_RESULT_ROW_REDACTION_POLICY_ID,
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* Resolve the row-egress policy for one run. The admin kill-switch wins over the
|
|
27
|
+
* default; an explicit Research opt-in is the only thing that widens tool rows.
|
|
28
|
+
*/
|
|
29
|
+
export function resolveProviderResultRowEgressPolicy(input) {
|
|
30
|
+
if (input.projectSetting?.mode === 'disabled')
|
|
31
|
+
return ZERO_ROW_EGRESS_POLICY;
|
|
32
|
+
const configured = input.projectSetting?.maxNarrationRows;
|
|
33
|
+
const maxNarrationRows = typeof configured === 'number' && Number.isFinite(configured)
|
|
34
|
+
? Math.max(0, Math.min(MAX_ASK_NARRATION_RESULT_ROWS, Math.trunc(configured)))
|
|
35
|
+
: MAX_ASK_NARRATION_RESULT_ROWS;
|
|
36
|
+
// A zero ceiling from config is the kill-switch by another name: report it as
|
|
37
|
+
// such so receipts carry the honest policy id.
|
|
38
|
+
if (maxNarrationRows === 0)
|
|
39
|
+
return ZERO_ROW_EGRESS_POLICY;
|
|
40
|
+
if (input.researchOptIn)
|
|
41
|
+
return { ...RESEARCH_ROW_EGRESS_POLICY, maxNarrationRows };
|
|
42
|
+
return {
|
|
43
|
+
maxNarrationRows,
|
|
44
|
+
maxToolRows: 0,
|
|
45
|
+
source: configured === undefined ? 'default' : 'project_config',
|
|
46
|
+
policyId: ASK_NARRATION_RESULT_ROW_POLICY_ID,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Process-local provenance marker for metadata arrays/objects assembled by a
|
|
51
|
+
* trusted DQL serializer. The marker cannot be supplied by JSON, a provider,
|
|
52
|
+
* or warehouse data and deliberately does not depend on field names.
|
|
53
|
+
*/
|
|
54
|
+
const providerMetadata = new WeakSet();
|
|
55
|
+
export function markProviderMetadata(value) {
|
|
56
|
+
providerMetadata.add(value);
|
|
57
|
+
return value;
|
|
58
|
+
}
|
|
59
|
+
export function markProviderMetadataArray(value) {
|
|
60
|
+
providerMetadata.add(value);
|
|
61
|
+
return value;
|
|
62
|
+
}
|
|
63
|
+
const RESULT_ROW_CONTAINER_KEYS = new Set([
|
|
64
|
+
'rows', 'row', 'rowsample', 'rowssample', 'rowsample', 'resultrows', 'records', 'recordsample',
|
|
65
|
+
]);
|
|
66
|
+
const TYPED_METADATA_ARRAY_KEYS = new Set([
|
|
67
|
+
'tables', 'columns', 'resultcolumns', 'outputcolumns',
|
|
68
|
+
'measures', 'priormeasures', 'measurecolumns', 'metrics', 'dimensions', 'filters', 'values',
|
|
69
|
+
'skills', 'turns', 'recentturns', 'recalledturns', 'drafts', 'components', 'tags', 'outputs',
|
|
70
|
+
'keys', 'relationships', 'candidates', 'objects', 'citations', 'lineage', 'sourerefs', 'sourcerefs',
|
|
71
|
+
'preferredmetrics', 'preferredblocks', 'preferreddimensions', 'requiredfilters', 'examples',
|
|
72
|
+
'vocabulary', 'selectedconceptids', 'resultgrainids', 'tabledependencies', 'workloadidentityimpersonationpath',
|
|
73
|
+
]);
|
|
74
|
+
const TYPED_METADATA_MAP_KEYS = new Set(['dimensionvalues', 'resultdimensionvalues', 'membervalues']);
|
|
75
|
+
const TYPED_CONTEXT_PATH_SEGMENTS = new Set([
|
|
76
|
+
'allowedsqlcontext', 'contextpack', 'conversationsnapshot', 'dqlartifact',
|
|
77
|
+
'followup', 'memorycontext', 'projectsnapshot', 'questionplan', 'requestedshape', 'result',
|
|
78
|
+
'semanticlayer', 'serversnapshot', 'turn', 'turns',
|
|
79
|
+
'recentturns', 'recalledturns', 'objects', 'relations', 'sourceblocksql', 'schema', 'tables',
|
|
80
|
+
'columns', 'drafts', 'components', 'outputs', 'relationships', 'candidates', 'lineage',
|
|
81
|
+
]);
|
|
82
|
+
/**
|
|
83
|
+
* Clone one governed context immediately before prompt/transport construction.
|
|
84
|
+
* Result-row containers and unclassified arrays are stripped; only arrays in a
|
|
85
|
+
* typed metadata field receive process-local provenance. JSON cannot forge the
|
|
86
|
+
* marker because every input value is cloned before marking.
|
|
87
|
+
*/
|
|
88
|
+
export function prepareProviderContextForDispatch(value) {
|
|
89
|
+
return prepareProviderContextValue(value, '', '', [], 0, new Set());
|
|
90
|
+
}
|
|
91
|
+
function prepareProviderContextValue(value, key, parentKey, path, depth, seen) {
|
|
92
|
+
if (value === null || value === undefined || typeof value !== 'object')
|
|
93
|
+
return value;
|
|
94
|
+
if (depth > 12 || seen.has(value))
|
|
95
|
+
return undefined;
|
|
96
|
+
const normalizedKey = normalizePayloadKey(key);
|
|
97
|
+
const normalizedParent = normalizePayloadKey(parentKey);
|
|
98
|
+
if (Array.isArray(value)) {
|
|
99
|
+
if (providerMetadata.has(value))
|
|
100
|
+
return value;
|
|
101
|
+
if (RESULT_ROW_CONTAINER_KEYS.has(normalizedKey))
|
|
102
|
+
return markProviderMetadataArray([]);
|
|
103
|
+
const typed = isTrustedGovernedContextArray(path, normalizedKey, normalizedParent);
|
|
104
|
+
if (!typed)
|
|
105
|
+
return markProviderMetadataArray([]);
|
|
106
|
+
seen.add(value);
|
|
107
|
+
const cloned = value.map((item) => prepareProviderContextValue(item, '', key, [...path, '*'], depth + 1, seen));
|
|
108
|
+
return markProviderMetadataArray(cloned);
|
|
109
|
+
}
|
|
110
|
+
seen.add(value);
|
|
111
|
+
const entries = Object.entries(value).map(([nestedKey, nested]) => [
|
|
112
|
+
nestedKey,
|
|
113
|
+
prepareProviderContextValue(nested, nestedKey, key, [...path, normalizePayloadKey(nestedKey)], depth + 1, seen),
|
|
114
|
+
]);
|
|
115
|
+
return Object.fromEntries(entries);
|
|
116
|
+
}
|
|
117
|
+
/** Validate and mark runtime-acquired schema at its server-owned construction site. */
|
|
118
|
+
export function prepareServerOwnedProviderSchemaContext(value) {
|
|
119
|
+
if (!Array.isArray(value))
|
|
120
|
+
return markProviderMetadataArray([]);
|
|
121
|
+
const tables = value.flatMap((candidate) => {
|
|
122
|
+
if (!isPlainRecord(candidate))
|
|
123
|
+
return [];
|
|
124
|
+
const relation = cleanProviderSchemaString(candidate.relation ?? candidate.table ?? candidate.name);
|
|
125
|
+
if (!relation || !Array.isArray(candidate.columns))
|
|
126
|
+
return [];
|
|
127
|
+
const columns = candidate.columns.flatMap((column) => {
|
|
128
|
+
if (!isPlainRecord(column))
|
|
129
|
+
return [];
|
|
130
|
+
const name = cleanProviderSchemaString(column.name);
|
|
131
|
+
const type = cleanProviderSchemaString(column.type);
|
|
132
|
+
return name && type ? [{ name, type }] : [];
|
|
133
|
+
});
|
|
134
|
+
if (columns.length === 0)
|
|
135
|
+
return [];
|
|
136
|
+
return [{ relation, columns: markProviderMetadataArray(columns) }];
|
|
137
|
+
});
|
|
138
|
+
return markProviderMetadataArray(tables);
|
|
139
|
+
}
|
|
140
|
+
function cleanProviderSchemaString(value) {
|
|
141
|
+
if (typeof value !== 'string')
|
|
142
|
+
return undefined;
|
|
143
|
+
const clean = value.trim();
|
|
144
|
+
return clean && clean.length <= 512 ? clean : undefined;
|
|
145
|
+
}
|
|
146
|
+
function isTrustedGovernedContextArray(path, key, parentKey) {
|
|
147
|
+
if (path.length === 1 && TYPED_METADATA_ARRAY_KEYS.has(key))
|
|
148
|
+
return true;
|
|
149
|
+
if (TYPED_METADATA_MAP_KEYS.has(parentKey)) {
|
|
150
|
+
return path.slice(0, -1).every((segment) => segment === '*' || TYPED_CONTEXT_PATH_SEGMENTS.has(segment)
|
|
151
|
+
|| TYPED_METADATA_MAP_KEYS.has(segment));
|
|
152
|
+
}
|
|
153
|
+
if (!TYPED_METADATA_ARRAY_KEYS.has(key))
|
|
154
|
+
return false;
|
|
155
|
+
return path.slice(0, -1).every((segment) => segment === '*' || TYPED_CONTEXT_PATH_SEGMENTS.has(segment)
|
|
156
|
+
|| TYPED_METADATA_ARRAY_KEYS.has(segment) || TYPED_METADATA_MAP_KEYS.has(segment));
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Clone an exact provider-native request envelope at the physical dispatch
|
|
160
|
+
* boundary. Unlike governed-context normalization, this trusts arrays only at
|
|
161
|
+
* provider wire paths with validated item shapes; a matching leaf name inside
|
|
162
|
+
* arbitrary context never grants provenance.
|
|
163
|
+
*/
|
|
164
|
+
export function prepareProviderWireEnvelopeForDispatch(provider, value) {
|
|
165
|
+
if (!isPlainRecord(value)) {
|
|
166
|
+
throw Object.assign(new Error(`${provider}: provider dispatch envelope must be an object`), {
|
|
167
|
+
code: 'PROVIDER_WIRE_ENVELOPE_INVALID',
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
return prepareProviderWireValue(provider, value, [], 0, new Set());
|
|
171
|
+
}
|
|
172
|
+
function prepareProviderWireValue(provider, value, path, depth, seen) {
|
|
173
|
+
if (value === null || value === undefined || typeof value !== 'object')
|
|
174
|
+
return value;
|
|
175
|
+
if (depth > 20 || seen.has(value)) {
|
|
176
|
+
throw Object.assign(new Error(`${provider}: provider wire envelope is cyclic or too deeply nested`), {
|
|
177
|
+
code: 'PROVIDER_WIRE_ENVELOPE_INVALID',
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
if (Array.isArray(value)) {
|
|
181
|
+
if (!isTrustedProviderWireArray(path, value))
|
|
182
|
+
return markProviderMetadataArray([]);
|
|
183
|
+
seen.add(value);
|
|
184
|
+
return markProviderMetadataArray(value.map((item) => (prepareProviderWireValue(provider, item, [...path, '*'], depth + 1, seen))));
|
|
185
|
+
}
|
|
186
|
+
seen.add(value);
|
|
187
|
+
return Object.fromEntries(Object.entries(value).map(([key, nested]) => [
|
|
188
|
+
key,
|
|
189
|
+
prepareProviderWireValue(provider, nested, [...path, normalizePayloadKey(key)], depth + 1, seen),
|
|
190
|
+
]));
|
|
191
|
+
}
|
|
192
|
+
function isTrustedProviderWireArray(path, value) {
|
|
193
|
+
const joined = path.join('.');
|
|
194
|
+
if (joined === 'messages')
|
|
195
|
+
return value.every(isProviderMessage);
|
|
196
|
+
if (joined === 'contents')
|
|
197
|
+
return value.every(isGeminiContent);
|
|
198
|
+
if (joined === 'tools')
|
|
199
|
+
return value.every(isProviderTool);
|
|
200
|
+
if (joined === 'input')
|
|
201
|
+
return value.every(isProviderInputItem);
|
|
202
|
+
if (joined === 'system')
|
|
203
|
+
return value.every(isProviderContentBlock);
|
|
204
|
+
if (joined === 'include')
|
|
205
|
+
return value.every((item) => typeof item === 'string');
|
|
206
|
+
if (/^(?:messages|input)\.\*\.content$/.test(joined))
|
|
207
|
+
return value.every(isProviderContentBlock);
|
|
208
|
+
if (/^contents\.\*\.parts$/.test(joined))
|
|
209
|
+
return value.every(isGeminiPart);
|
|
210
|
+
if (/^(?:messages|input)\.\*\.toolcalls$/.test(joined))
|
|
211
|
+
return value.every(isProviderToolCall);
|
|
212
|
+
if (/^(?:messages|input)\.\*\.content\.\*\.content$/.test(joined))
|
|
213
|
+
return value.every(isProviderContentBlock);
|
|
214
|
+
if (isProviderToolSchemaPath(path)) {
|
|
215
|
+
if (path.includes('examples') || path.includes('enum'))
|
|
216
|
+
return value.every(isJsonSchemaExampleValue);
|
|
217
|
+
return isValidProviderToolSchemaArray(path.at(-1) ?? '', value);
|
|
218
|
+
}
|
|
219
|
+
return false;
|
|
220
|
+
}
|
|
221
|
+
function isProviderToolSchemaPath(path) {
|
|
222
|
+
const joined = path.join('.');
|
|
223
|
+
return /^tools\.\*\.(?:function\.parameters|inputschema)(?:\.|$)/.test(joined);
|
|
224
|
+
}
|
|
225
|
+
function isValidProviderToolSchemaArray(keyword, value) {
|
|
226
|
+
if (keyword === 'required')
|
|
227
|
+
return value.every((item) => typeof item === 'string' && item.length > 0);
|
|
228
|
+
if (keyword === 'anyof' || keyword === 'oneof' || keyword === 'allof' || keyword === 'prefixitems') {
|
|
229
|
+
return value.every(isPlainRecord);
|
|
230
|
+
}
|
|
231
|
+
if (keyword === 'items')
|
|
232
|
+
return value.every(isPlainRecord);
|
|
233
|
+
if (keyword === 'enum' || keyword === 'examples')
|
|
234
|
+
return value.every(isJsonSchemaExampleValue);
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
function isJsonSchemaExampleValue(value) {
|
|
238
|
+
if (value === null || ['string', 'number', 'boolean'].includes(typeof value))
|
|
239
|
+
return true;
|
|
240
|
+
if (Array.isArray(value))
|
|
241
|
+
return value.every(isJsonSchemaExampleValue);
|
|
242
|
+
return isPlainRecord(value) && Object.values(value).every(isJsonSchemaExampleValue);
|
|
243
|
+
}
|
|
244
|
+
function isProviderMessage(value) {
|
|
245
|
+
return isPlainRecord(value) && typeof value.role === 'string'
|
|
246
|
+
&& (typeof value.content === 'string' || Array.isArray(value.content) || value.content === null);
|
|
247
|
+
}
|
|
248
|
+
function isGeminiContent(value) {
|
|
249
|
+
return isPlainRecord(value) && typeof value.role === 'string' && Array.isArray(value.parts);
|
|
250
|
+
}
|
|
251
|
+
function isGeminiPart(value) {
|
|
252
|
+
return isPlainRecord(value) && (typeof value.text === 'string' || isPlainRecord(value.functionCall) || isPlainRecord(value.functionResponse));
|
|
253
|
+
}
|
|
254
|
+
function isProviderTool(value) {
|
|
255
|
+
if (!isPlainRecord(value))
|
|
256
|
+
return false;
|
|
257
|
+
return typeof value.type === 'string' || typeof value.name === 'string' || isPlainRecord(value.function);
|
|
258
|
+
}
|
|
259
|
+
function isProviderToolCall(value) {
|
|
260
|
+
return isPlainRecord(value) && (typeof value.type === 'string' || typeof value.id === 'string' || isPlainRecord(value.function));
|
|
261
|
+
}
|
|
262
|
+
function isProviderContentBlock(value) {
|
|
263
|
+
return typeof value === 'string' || (isPlainRecord(value) && typeof value.type === 'string');
|
|
264
|
+
}
|
|
265
|
+
function isProviderInputItem(value) {
|
|
266
|
+
return typeof value === 'string' || (isPlainRecord(value) && (typeof value.role === 'string' || typeof value.type === 'string'));
|
|
267
|
+
}
|
|
268
|
+
function normalizePayloadKey(value) {
|
|
269
|
+
return value.replace(/[^a-z0-9]/gi, '').toLowerCase();
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Inspect a provider-bound payload recursively. Detection is structural rather
|
|
273
|
+
* than dependent on a `rows` field, so a nested or renamed result cannot bypass
|
|
274
|
+
* the guard. Known schema/catalog descriptor arrays remain metadata.
|
|
275
|
+
*/
|
|
276
|
+
export function inspectProviderPayloadRowShape(value) {
|
|
277
|
+
return inspectProviderPayload(value).shape;
|
|
278
|
+
}
|
|
279
|
+
function inspectProviderPayload(value) {
|
|
280
|
+
const seen = new Set();
|
|
281
|
+
let resultRowCount = 0;
|
|
282
|
+
let columnCount = 0;
|
|
283
|
+
let unsafeContainerCount = 0;
|
|
284
|
+
let traversalComplete = true;
|
|
285
|
+
const visit = (candidate, depth) => {
|
|
286
|
+
if (candidate === null || candidate === undefined)
|
|
287
|
+
return;
|
|
288
|
+
if (depth > 12) {
|
|
289
|
+
traversalComplete = false;
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
if (Array.isArray(candidate)) {
|
|
293
|
+
if (providerMetadata.has(candidate))
|
|
294
|
+
return;
|
|
295
|
+
unsafeContainerCount += 1;
|
|
296
|
+
resultRowCount += candidate.length;
|
|
297
|
+
columnCount = Math.max(columnCount, resultRowColumnCount(candidate));
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
if (typeof candidate !== 'object')
|
|
301
|
+
return;
|
|
302
|
+
if (providerMetadata.has(candidate))
|
|
303
|
+
return;
|
|
304
|
+
if (seen.has(candidate)) {
|
|
305
|
+
traversalComplete = false;
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
seen.add(candidate);
|
|
309
|
+
for (const nested of Object.values(candidate))
|
|
310
|
+
visit(nested, depth + 1);
|
|
311
|
+
};
|
|
312
|
+
visit(value, 0);
|
|
313
|
+
return {
|
|
314
|
+
shape: { resultRowCount, columnCount },
|
|
315
|
+
unsafeContainerCount,
|
|
316
|
+
traversalComplete,
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
/** Throw before any row-shaped payload reaches a provider. */
|
|
320
|
+
export function assertProviderPayloadAllowed(value, policy) {
|
|
321
|
+
const inspected = inspectProviderPayload(value);
|
|
322
|
+
const shape = inspected.shape;
|
|
323
|
+
if (!inspected.traversalComplete) {
|
|
324
|
+
throw Object.assign(new Error('Provider egress could not completely inspect a cyclic or excessively deep payload.'), {
|
|
325
|
+
code: 'PROVIDER_PAYLOAD_INSPECTION_INCOMPLETE',
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
if (inspected.unsafeContainerCount === 0)
|
|
329
|
+
return shape;
|
|
330
|
+
if (!policy.allowResultRows) {
|
|
331
|
+
throw Object.assign(new Error('Provider egress blocked a row-shaped result payload.'), {
|
|
332
|
+
code: 'PROVIDER_RESULT_ROWS_BLOCKED',
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
if (shape.resultRowCount > policy.maxResultRows) {
|
|
336
|
+
throw Object.assign(new Error(`Provider egress blocked ${shape.resultRowCount} result rows; the per-run limit is ${policy.maxResultRows}.`), {
|
|
337
|
+
code: 'PROVIDER_RESULT_ROWS_LIMIT_EXCEEDED',
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
return shape;
|
|
341
|
+
}
|
|
342
|
+
/** Remove row-shaped arrays while preserving surrounding metadata. */
|
|
343
|
+
export function stripProviderResultRows(value, depth = 0) {
|
|
344
|
+
return stripProviderValue(value, depth, new Set());
|
|
345
|
+
}
|
|
346
|
+
/** Bound every untrusted row container against one shared remaining allowance. */
|
|
347
|
+
export function boundProviderResultRows(value, maxRows) {
|
|
348
|
+
let remaining = Math.max(0, Math.floor(maxRows));
|
|
349
|
+
let resultRowCount = 0;
|
|
350
|
+
let columnCount = 0;
|
|
351
|
+
let exhausted = false;
|
|
352
|
+
const seen = new Set();
|
|
353
|
+
const visit = (candidate, depth) => {
|
|
354
|
+
if (candidate === null || candidate === undefined || typeof candidate !== 'object')
|
|
355
|
+
return candidate;
|
|
356
|
+
if (depth > 12 || seen.has(candidate)) {
|
|
357
|
+
exhausted = true;
|
|
358
|
+
return undefined;
|
|
359
|
+
}
|
|
360
|
+
if (Array.isArray(candidate)) {
|
|
361
|
+
if (providerMetadata.has(candidate))
|
|
362
|
+
return candidate;
|
|
363
|
+
const kept = candidate.slice(0, remaining);
|
|
364
|
+
resultRowCount += kept.length;
|
|
365
|
+
columnCount = Math.max(columnCount, resultRowColumnCount(kept));
|
|
366
|
+
remaining -= kept.length;
|
|
367
|
+
if (kept.length < candidate.length)
|
|
368
|
+
exhausted = true;
|
|
369
|
+
return kept;
|
|
370
|
+
}
|
|
371
|
+
seen.add(candidate);
|
|
372
|
+
const bounded = Object.fromEntries(Object.entries(candidate).map(([key, nested]) => [
|
|
373
|
+
key,
|
|
374
|
+
visit(nested, depth + 1),
|
|
375
|
+
]));
|
|
376
|
+
if (depth === 0 && exhausted) {
|
|
377
|
+
bounded.providerEgressNotice = {
|
|
378
|
+
code: 'PROVIDER_RESULT_ROWS_CUMULATIVE_LIMIT',
|
|
379
|
+
message: 'The per-run Research result-row allowance is exhausted; no additional rows were disclosed.',
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
return bounded;
|
|
383
|
+
};
|
|
384
|
+
return { value: visit(value, 0), shape: { resultRowCount, columnCount }, exhausted };
|
|
385
|
+
}
|
|
386
|
+
function stripProviderValue(value, depth, seen) {
|
|
387
|
+
if (value === null || value === undefined)
|
|
388
|
+
return value;
|
|
389
|
+
if (depth > 12)
|
|
390
|
+
return undefined;
|
|
391
|
+
if (Array.isArray(value)) {
|
|
392
|
+
if (providerMetadata.has(value))
|
|
393
|
+
return value;
|
|
394
|
+
return [];
|
|
395
|
+
}
|
|
396
|
+
if (!isPlainRecord(value))
|
|
397
|
+
return value;
|
|
398
|
+
if (providerMetadata.has(value))
|
|
399
|
+
return value;
|
|
400
|
+
if (seen.has(value))
|
|
401
|
+
return undefined;
|
|
402
|
+
seen.add(value);
|
|
403
|
+
return Object.fromEntries(Object.entries(value).map(([key, nested]) => [
|
|
404
|
+
key,
|
|
405
|
+
stripProviderValue(nested, depth + 1, seen),
|
|
406
|
+
]));
|
|
407
|
+
}
|
|
408
|
+
/** Redact and bound explicitly opted-in Research rows before prompt/tool use. */
|
|
409
|
+
export function redactProviderResultRows(rows, limit) {
|
|
410
|
+
return rows.slice(0, Math.max(0, limit)).map((row) => Object.fromEntries(Object.entries(row).map(([key, value]) => [key, redactProviderCell(key, value)])));
|
|
411
|
+
}
|
|
412
|
+
export function createProviderEgressReceipt(input) {
|
|
413
|
+
const inspected = inspectProviderPayload(input.payload);
|
|
414
|
+
return {
|
|
415
|
+
version: 1,
|
|
416
|
+
purpose: input.purpose,
|
|
417
|
+
provider: input.provider,
|
|
418
|
+
permittedCategories: [...input.permittedCategories],
|
|
419
|
+
// Counts always come from the payload actually fingerprinted. Optional
|
|
420
|
+
// caller projections remain accepted for wire compatibility but cannot
|
|
421
|
+
// override inspected evidence.
|
|
422
|
+
resultRowCount: inspected.shape.resultRowCount,
|
|
423
|
+
...(typeof input.cumulativeResultRowCount === 'number'
|
|
424
|
+
? { cumulativeResultRowCount: Math.max(inspected.shape.resultRowCount, input.cumulativeResultRowCount) }
|
|
425
|
+
: {}),
|
|
426
|
+
columnCount: inspected.shape.columnCount,
|
|
427
|
+
redactionPolicyId: input.redactionPolicyId
|
|
428
|
+
?? (input.optIn ? PROVIDER_RESULT_ROW_REDACTION_POLICY_ID : PROVIDER_ZERO_RESULT_ROWS_POLICY_ID),
|
|
429
|
+
optIn: input.optIn,
|
|
430
|
+
payloadFingerprint: `sha256:${createHash('sha256').update(stableJson(input.payload)).digest('hex')}`,
|
|
431
|
+
};
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Content-free receipt for one exact provider-native HTTP envelope. Tool
|
|
435
|
+
* results are strings in the OpenAI/Claude wire formats, so their row shape is
|
|
436
|
+
* carried from the recursive pre-serialization inspection that produced those
|
|
437
|
+
* strings. Any still-structural row array in the envelope wins over that
|
|
438
|
+
* projection and can never be hidden with a caller-supplied zero.
|
|
439
|
+
*/
|
|
440
|
+
export function createProviderDispatchEgressReceipt(input) {
|
|
441
|
+
const inspected = inspectProviderPayload(input.envelope);
|
|
442
|
+
const serialized = input.serializedResultShape ?? { resultRowCount: 0, columnCount: 0 };
|
|
443
|
+
return {
|
|
444
|
+
version: 1,
|
|
445
|
+
purpose: input.purpose,
|
|
446
|
+
...(input.dispatchPhase ? { dispatchPhase: input.dispatchPhase } : {}),
|
|
447
|
+
provider: input.provider,
|
|
448
|
+
...(input.model ? { model: input.model } : {}),
|
|
449
|
+
...(input.operation ? { operation: input.operation } : {}),
|
|
450
|
+
...(input.attemptIndex !== undefined ? { attemptIndex: input.attemptIndex } : {}),
|
|
451
|
+
...(input.options ? { options: { ...input.options } } : {}),
|
|
452
|
+
permittedCategories: [...input.permittedCategories],
|
|
453
|
+
resultRowCount: Math.max(inspected.shape.resultRowCount, serialized.resultRowCount),
|
|
454
|
+
...(typeof input.cumulativeResultRowCount === 'number'
|
|
455
|
+
? { cumulativeResultRowCount: Math.max(inspected.shape.resultRowCount, serialized.resultRowCount, input.cumulativeResultRowCount) }
|
|
456
|
+
: {}),
|
|
457
|
+
columnCount: Math.max(inspected.shape.columnCount, serialized.columnCount),
|
|
458
|
+
redactionPolicyId: input.redactionPolicyId
|
|
459
|
+
?? (input.optIn ? PROVIDER_RESULT_ROW_REDACTION_POLICY_ID : PROVIDER_ZERO_RESULT_ROWS_POLICY_ID),
|
|
460
|
+
optIn: input.optIn,
|
|
461
|
+
payloadFingerprint: providerPayloadFingerprint(input.envelope),
|
|
462
|
+
};
|
|
463
|
+
}
|
|
464
|
+
export function providerPayloadFingerprint(payload) {
|
|
465
|
+
return `sha256:${createHash('sha256').update(stableJson(payload)).digest('hex')}`;
|
|
466
|
+
}
|
|
467
|
+
function resultRowColumnCount(rows) {
|
|
468
|
+
const first = rows[0];
|
|
469
|
+
return Array.isArray(first)
|
|
470
|
+
? first.length
|
|
471
|
+
: isPlainRecord(first)
|
|
472
|
+
? Object.keys(first).length
|
|
473
|
+
: rows.length > 0 ? 1 : 0;
|
|
474
|
+
}
|
|
475
|
+
function isPlainRecord(value) {
|
|
476
|
+
return Boolean(value) && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date);
|
|
477
|
+
}
|
|
478
|
+
function redactProviderCell(key, value) {
|
|
479
|
+
if (/(?:^|_)(?:name|email|phone|address|ssn|secret|token|credential|password)(?:$|_)/i.test(key))
|
|
480
|
+
return '[REDACTED]';
|
|
481
|
+
if (typeof value !== 'string')
|
|
482
|
+
return value;
|
|
483
|
+
if (/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/i.test(value))
|
|
484
|
+
return '[REDACTED]';
|
|
485
|
+
if (/\b(?:sk|pk|api|token)[-_][A-Za-z0-9_-]{12,}\b/i.test(value))
|
|
486
|
+
return '[REDACTED]';
|
|
487
|
+
return value.length > 256 ? `${value.slice(0, 256)}…` : value;
|
|
488
|
+
}
|
|
489
|
+
function stableJson(value) {
|
|
490
|
+
const normalize = (candidate) => {
|
|
491
|
+
if (Array.isArray(candidate))
|
|
492
|
+
return candidate.map(normalize);
|
|
493
|
+
if (!isPlainRecord(candidate))
|
|
494
|
+
return candidate;
|
|
495
|
+
return Object.fromEntries(Object.keys(candidate).sort().map((key) => [key, normalize(candidate[key])]));
|
|
496
|
+
};
|
|
497
|
+
try {
|
|
498
|
+
return JSON.stringify(normalize(value)) ?? 'null';
|
|
499
|
+
}
|
|
500
|
+
catch {
|
|
501
|
+
return String(value);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
//# sourceMappingURL=provider-egress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-egress.js","sourceRoot":"","sources":["../src/provider-egress.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AA8DpB;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAIlE;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,YAAW,aAAa;IAClD,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO;IAMtE,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAwCrF,iBAAiB,CACrB,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE,mBAAmB,EAAE,EAC5B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,CAAC;IAqKZ,cAAc,CAClB,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,OAAO,CAAC,MAAM,CAAC;CA4CnB;AAUD,yFAAyF;AACzF,wBAAsB,UAAU,CAC9B,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,IAAI,CAAC,CAsBf"}
|