@duckcodeailabs/dql-agent 1.13.3 → 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.
Files changed (131) hide show
  1. package/dist/agent-run-engine.d.ts +66 -3
  2. package/dist/agent-run-engine.d.ts.map +1 -1
  3. package/dist/agent-run-engine.js +441 -28
  4. package/dist/agent-run-engine.js.map +1 -1
  5. package/dist/agentic/tool-loop.d.ts.map +1 -1
  6. package/dist/agentic/tool-loop.js +100 -32
  7. package/dist/agentic/tool-loop.js.map +1 -1
  8. package/dist/aggregation-safety-proof.d.ts +41 -0
  9. package/dist/aggregation-safety-proof.d.ts.map +1 -0
  10. package/dist/aggregation-safety-proof.js +511 -0
  11. package/dist/aggregation-safety-proof.js.map +1 -0
  12. package/dist/analytical-compatibility.d.ts.map +1 -1
  13. package/dist/analytical-compatibility.js +42 -25
  14. package/dist/analytical-compatibility.js.map +1 -1
  15. package/dist/analytical-execution-graph.d.ts +4 -21
  16. package/dist/analytical-execution-graph.d.ts.map +1 -1
  17. package/dist/analytical-execution-graph.js +27 -0
  18. package/dist/analytical-execution-graph.js.map +1 -1
  19. package/dist/analytical-frame.d.ts +12 -1
  20. package/dist/analytical-frame.d.ts.map +1 -1
  21. package/dist/analytical-frame.js +102 -2
  22. package/dist/analytical-frame.js.map +1 -1
  23. package/dist/analytical-result-facts.d.ts +53 -0
  24. package/dist/analytical-result-facts.d.ts.map +1 -1
  25. package/dist/analytical-result-facts.js +144 -0
  26. package/dist/analytical-result-facts.js.map +1 -1
  27. package/dist/answer-loop.d.ts +40 -3
  28. package/dist/answer-loop.d.ts.map +1 -1
  29. package/dist/answer-loop.js +681 -37
  30. package/dist/answer-loop.js.map +1 -1
  31. package/dist/app-builder-orchestrator.d.ts +2 -0
  32. package/dist/app-builder-orchestrator.d.ts.map +1 -1
  33. package/dist/app-builder-orchestrator.js +142 -7
  34. package/dist/app-builder-orchestrator.js.map +1 -1
  35. package/dist/app-source-policy.d.ts +14 -0
  36. package/dist/app-source-policy.d.ts.map +1 -0
  37. package/dist/app-source-policy.js +38 -0
  38. package/dist/app-source-policy.js.map +1 -0
  39. package/dist/cascade/budgets.js +1 -1
  40. package/dist/cascade/route-policy.d.ts +1 -1
  41. package/dist/cascade/route-policy.d.ts.map +1 -1
  42. package/dist/cascade/route-policy.js +2 -0
  43. package/dist/cascade/route-policy.js.map +1 -1
  44. package/dist/generated-analytical-proposal.d.ts +37 -0
  45. package/dist/generated-analytical-proposal.d.ts.map +1 -0
  46. package/dist/generated-analytical-proposal.js +219 -0
  47. package/dist/generated-analytical-proposal.js.map +1 -0
  48. package/dist/index.d.ts +15 -9
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +28 -18
  51. package/dist/index.js.map +1 -1
  52. package/dist/intent-controller.d.ts +8 -1
  53. package/dist/intent-controller.d.ts.map +1 -1
  54. package/dist/intent-controller.js.map +1 -1
  55. package/dist/kg/build.js +102 -6
  56. package/dist/kg/build.js.map +1 -1
  57. package/dist/meaning-resolution.d.ts +23 -0
  58. package/dist/meaning-resolution.d.ts.map +1 -1
  59. package/dist/meaning-resolution.js +61 -8
  60. package/dist/meaning-resolution.js.map +1 -1
  61. package/dist/metadata/analysis-planner.d.ts.map +1 -1
  62. package/dist/metadata/analysis-planner.js +46 -2
  63. package/dist/metadata/analysis-planner.js.map +1 -1
  64. package/dist/metadata/block-fit.d.ts.map +1 -1
  65. package/dist/metadata/block-fit.js +55 -2
  66. package/dist/metadata/block-fit.js.map +1 -1
  67. package/dist/metadata/catalog.d.ts.map +1 -1
  68. package/dist/metadata/catalog.js +9 -0
  69. package/dist/metadata/catalog.js.map +1 -1
  70. package/dist/metadata/meaning-evidence.d.ts.map +1 -1
  71. package/dist/metadata/meaning-evidence.js +323 -36
  72. package/dist/metadata/meaning-evidence.js.map +1 -1
  73. package/dist/metadata/sql-context-validation.d.ts +3 -0
  74. package/dist/metadata/sql-context-validation.d.ts.map +1 -1
  75. package/dist/metadata/sql-context-validation.js +16 -5
  76. package/dist/metadata/sql-context-validation.js.map +1 -1
  77. package/dist/plan-execution-adapter.d.ts +9 -1
  78. package/dist/plan-execution-adapter.d.ts.map +1 -1
  79. package/dist/plan-execution-adapter.js +81 -32
  80. package/dist/plan-execution-adapter.js.map +1 -1
  81. package/dist/provider-egress.d.ts +122 -0
  82. package/dist/provider-egress.d.ts.map +1 -0
  83. package/dist/provider-egress.js +504 -0
  84. package/dist/provider-egress.js.map +1 -0
  85. package/dist/providers/claude.d.ts.map +1 -1
  86. package/dist/providers/claude.js +76 -33
  87. package/dist/providers/claude.js.map +1 -1
  88. package/dist/providers/dispatch.d.ts +15 -0
  89. package/dist/providers/dispatch.d.ts.map +1 -0
  90. package/dist/providers/dispatch.js +25 -0
  91. package/dist/providers/dispatch.js.map +1 -0
  92. package/dist/providers/gemini.d.ts.map +1 -1
  93. package/dist/providers/gemini.js +16 -8
  94. package/dist/providers/gemini.js.map +1 -1
  95. package/dist/providers/index.d.ts +2 -1
  96. package/dist/providers/index.d.ts.map +1 -1
  97. package/dist/providers/index.js +1 -0
  98. package/dist/providers/index.js.map +1 -1
  99. package/dist/providers/ollama.d.ts.map +1 -1
  100. package/dist/providers/ollama.js +29 -10
  101. package/dist/providers/ollama.js.map +1 -1
  102. package/dist/providers/openai.d.ts.map +1 -1
  103. package/dist/providers/openai.js +92 -36
  104. package/dist/providers/openai.js.map +1 -1
  105. package/dist/providers/types.d.ts +43 -0
  106. package/dist/providers/types.d.ts.map +1 -1
  107. package/dist/providers/types.js.map +1 -1
  108. package/dist/relationship-proof.d.ts +19 -0
  109. package/dist/relationship-proof.d.ts.map +1 -0
  110. package/dist/relationship-proof.js +75 -0
  111. package/dist/relationship-proof.js.map +1 -0
  112. package/dist/research-loop.d.ts.map +1 -1
  113. package/dist/research-loop.js +17 -11
  114. package/dist/research-loop.js.map +1 -1
  115. package/dist/resolved-analytical-plan.d.ts +25 -3
  116. package/dist/resolved-analytical-plan.d.ts.map +1 -1
  117. package/dist/resolved-analytical-plan.js +369 -27
  118. package/dist/resolved-analytical-plan.js.map +1 -1
  119. package/dist/router.d.ts +30 -1
  120. package/dist/router.d.ts.map +1 -1
  121. package/dist/router.js +705 -44
  122. package/dist/router.js.map +1 -1
  123. package/dist/semantic-identities.d.ts +18 -0
  124. package/dist/semantic-identities.d.ts.map +1 -0
  125. package/dist/semantic-identities.js +60 -0
  126. package/dist/semantic-identities.js.map +1 -0
  127. package/dist/semantic-proof-authority.d.ts +29 -0
  128. package/dist/semantic-proof-authority.d.ts.map +1 -0
  129. package/dist/semantic-proof-authority.js +34 -0
  130. package/dist/semantic-proof-authority.js.map +1 -0
  131. 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,EACnB,MAAM,YAAY,CAAC;AA+CpB;;;;;;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;IAuCrF,iBAAiB,CACrB,QAAQ,EAAE,YAAY,EAAE,EACxB,KAAK,EAAE,mBAAmB,EAAE,EAC5B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,MAAM,CAAC;IAgJZ,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;CA2CnB;AAED,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"}
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"}