@duckcodeailabs/dql-agent 1.14.0 → 1.14.1

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 (146) hide show
  1. package/dist/agent-run-engine.d.ts +60 -2
  2. package/dist/agent-run-engine.d.ts.map +1 -1
  3. package/dist/agent-run-engine.js +333 -21
  4. package/dist/agent-run-engine.js.map +1 -1
  5. package/dist/agent-run-gates.d.ts.map +1 -1
  6. package/dist/agent-run-gates.js +13 -0
  7. package/dist/agent-run-gates.js.map +1 -1
  8. package/dist/agentic/analyst-loop.d.ts +91 -0
  9. package/dist/agentic/analyst-loop.d.ts.map +1 -0
  10. package/dist/agentic/analyst-loop.js +311 -0
  11. package/dist/agentic/analyst-loop.js.map +1 -0
  12. package/dist/agentic/assumptions.d.ts +62 -0
  13. package/dist/agentic/assumptions.d.ts.map +1 -0
  14. package/dist/agentic/assumptions.js +73 -0
  15. package/dist/agentic/assumptions.js.map +1 -0
  16. package/dist/agentic/business-explanation.d.ts +56 -0
  17. package/dist/agentic/business-explanation.d.ts.map +1 -0
  18. package/dist/agentic/business-explanation.js +130 -0
  19. package/dist/agentic/business-explanation.js.map +1 -0
  20. package/dist/agentic/identifier-ledger.d.ts +74 -0
  21. package/dist/agentic/identifier-ledger.d.ts.map +1 -0
  22. package/dist/agentic/identifier-ledger.js +151 -0
  23. package/dist/agentic/identifier-ledger.js.map +1 -0
  24. package/dist/agentic/ledger-tools.d.ts +68 -0
  25. package/dist/agentic/ledger-tools.d.ts.map +1 -0
  26. package/dist/agentic/ledger-tools.js +198 -0
  27. package/dist/agentic/ledger-tools.js.map +1 -0
  28. package/dist/agentic/orchestrator-policy.d.ts +60 -0
  29. package/dist/agentic/orchestrator-policy.d.ts.map +1 -0
  30. package/dist/agentic/orchestrator-policy.js +73 -0
  31. package/dist/agentic/orchestrator-policy.js.map +1 -0
  32. package/dist/agentic/orchestrator.d.ts +54 -0
  33. package/dist/agentic/orchestrator.d.ts.map +1 -0
  34. package/dist/agentic/orchestrator.js +67 -0
  35. package/dist/agentic/orchestrator.js.map +1 -0
  36. package/dist/agentic/preview-tool.d.ts +36 -0
  37. package/dist/agentic/preview-tool.d.ts.map +1 -0
  38. package/dist/agentic/preview-tool.js +71 -0
  39. package/dist/agentic/preview-tool.js.map +1 -0
  40. package/dist/agentic/rerank.d.ts +50 -0
  41. package/dist/agentic/rerank.d.ts.map +1 -0
  42. package/dist/agentic/rerank.js +140 -0
  43. package/dist/agentic/rerank.js.map +1 -0
  44. package/dist/agentic/research/hypothesis.d.ts +110 -0
  45. package/dist/agentic/research/hypothesis.d.ts.map +1 -0
  46. package/dist/agentic/research/hypothesis.js +125 -0
  47. package/dist/agentic/research/hypothesis.js.map +1 -0
  48. package/dist/agentic/research/synthesis.d.ts +32 -0
  49. package/dist/agentic/research/synthesis.d.ts.map +1 -0
  50. package/dist/agentic/research/synthesis.js +94 -0
  51. package/dist/agentic/research/synthesis.js.map +1 -0
  52. package/dist/agentic/research-agent.d.ts +54 -0
  53. package/dist/agentic/research-agent.d.ts.map +1 -0
  54. package/dist/agentic/research-agent.js +176 -0
  55. package/dist/agentic/research-agent.js.map +1 -0
  56. package/dist/agentic/sql-authorization.d.ts +131 -0
  57. package/dist/agentic/sql-authorization.d.ts.map +1 -0
  58. package/dist/agentic/sql-authorization.js +232 -0
  59. package/dist/agentic/sql-authorization.js.map +1 -0
  60. package/dist/agentic/tool-loop.d.ts +29 -0
  61. package/dist/agentic/tool-loop.d.ts.map +1 -1
  62. package/dist/agentic/tool-loop.js +129 -52
  63. package/dist/agentic/tool-loop.js.map +1 -1
  64. package/dist/agentic/toolset.d.ts.map +1 -1
  65. package/dist/agentic/toolset.js +155 -0
  66. package/dist/agentic/toolset.js.map +1 -1
  67. package/dist/agentic/turn-plan.d.ts +35 -0
  68. package/dist/agentic/turn-plan.d.ts.map +1 -0
  69. package/dist/agentic/turn-plan.js +108 -0
  70. package/dist/agentic/turn-plan.js.map +1 -0
  71. package/dist/agentic/value-probe.d.ts +89 -0
  72. package/dist/agentic/value-probe.d.ts.map +1 -0
  73. package/dist/agentic/value-probe.js +304 -0
  74. package/dist/agentic/value-probe.js.map +1 -0
  75. package/dist/analytical-orchestration.d.ts +80 -0
  76. package/dist/analytical-orchestration.d.ts.map +1 -1
  77. package/dist/analytical-orchestration.js +218 -6
  78. package/dist/analytical-orchestration.js.map +1 -1
  79. package/dist/analytical-request-policy.d.ts +26 -0
  80. package/dist/analytical-request-policy.d.ts.map +1 -0
  81. package/dist/analytical-request-policy.js +82 -0
  82. package/dist/analytical-request-policy.js.map +1 -0
  83. package/dist/analytical-result-facts.d.ts +13 -0
  84. package/dist/analytical-result-facts.d.ts.map +1 -1
  85. package/dist/analytical-result-facts.js +37 -1
  86. package/dist/analytical-result-facts.js.map +1 -1
  87. package/dist/answer-loop.d.ts +57 -16
  88. package/dist/answer-loop.d.ts.map +1 -1
  89. package/dist/answer-loop.js +161 -30
  90. package/dist/answer-loop.js.map +1 -1
  91. package/dist/cascade/budgets.d.ts.map +1 -1
  92. package/dist/cascade/budgets.js +8 -1
  93. package/dist/cascade/budgets.js.map +1 -1
  94. package/dist/cascade/packer.d.ts +88 -0
  95. package/dist/cascade/packer.d.ts.map +1 -0
  96. package/dist/cascade/packer.js +106 -0
  97. package/dist/cascade/packer.js.map +1 -0
  98. package/dist/conversation/result-ops.d.ts +18 -3
  99. package/dist/conversation/result-ops.d.ts.map +1 -1
  100. package/dist/conversation/result-ops.js +77 -5
  101. package/dist/conversation/result-ops.js.map +1 -1
  102. package/dist/conversation/rolling-summary.d.ts.map +1 -1
  103. package/dist/conversation/rolling-summary.js +7 -2
  104. package/dist/conversation/rolling-summary.js.map +1 -1
  105. package/dist/conversation/session-store.d.ts +3 -0
  106. package/dist/conversation/session-store.d.ts.map +1 -1
  107. package/dist/conversation/session-store.js +8 -4
  108. package/dist/conversation/session-store.js.map +1 -1
  109. package/dist/conversation/snapshot.d.ts.map +1 -1
  110. package/dist/conversation/snapshot.js +10 -1
  111. package/dist/conversation/snapshot.js.map +1 -1
  112. package/dist/hints/store.d.ts.map +1 -1
  113. package/dist/hints/store.js +15 -5
  114. package/dist/hints/store.js.map +1 -1
  115. package/dist/index.d.ts +27 -7
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +28 -5
  118. package/dist/index.js.map +1 -1
  119. package/dist/intent-controller.d.ts +8 -0
  120. package/dist/intent-controller.d.ts.map +1 -1
  121. package/dist/intent-controller.js +65 -0
  122. package/dist/intent-controller.js.map +1 -1
  123. package/dist/metadata/block-fit.d.ts +18 -0
  124. package/dist/metadata/block-fit.d.ts.map +1 -1
  125. package/dist/metadata/block-fit.js +41 -1
  126. package/dist/metadata/block-fit.js.map +1 -1
  127. package/dist/metadata/catalog.d.ts +20 -23
  128. package/dist/metadata/catalog.d.ts.map +1 -1
  129. package/dist/metadata/catalog.js +136 -11
  130. package/dist/metadata/catalog.js.map +1 -1
  131. package/dist/metadata/meaning-evidence.d.ts.map +1 -1
  132. package/dist/metadata/meaning-evidence.js +15 -7
  133. package/dist/metadata/meaning-evidence.js.map +1 -1
  134. package/dist/metadata/metric-match.d.ts +32 -0
  135. package/dist/metadata/metric-match.d.ts.map +1 -1
  136. package/dist/metadata/metric-match.js +120 -9
  137. package/dist/metadata/metric-match.js.map +1 -1
  138. package/dist/research-loop.d.ts +33 -2
  139. package/dist/research-loop.d.ts.map +1 -1
  140. package/dist/research-loop.js +44 -4
  141. package/dist/research-loop.js.map +1 -1
  142. package/dist/router.d.ts +28 -16
  143. package/dist/router.d.ts.map +1 -1
  144. package/dist/router.js +250 -17
  145. package/dist/router.js.map +1 -1
  146. package/package.json +4 -4
@@ -41,6 +41,13 @@ export function inferAnalyticalTurnKind(question) {
41
41
  return 'lookup';
42
42
  return 'aggregation';
43
43
  }
44
+ /**
45
+ * `Regarding: "Mr. Matthew Meyer"` and friends — a short label, a colon, and a
46
+ * quoted value, with nothing else in the clause. Deliberately narrow: it must
47
+ * be the WHOLE clause and the value must be quoted, so an ordinary question
48
+ * that happens to contain a colon is untouched.
49
+ */
50
+ const ANNOTATION_CLAUSE = /^\s*[A-Za-z][A-Za-z ]{0,24}:\s*["“'‘][^"”'’]*["”'’]\s*$/;
44
51
  export function splitAnalyticalTasks(question) {
45
52
  // The separator belongs to the SPLIT, not to the clause. Carrying it through
46
53
  // produced a child task whose question was literally
@@ -49,22 +56,36 @@ export function splitAnalyticalTasks(question) {
49
56
  // the task title.
50
57
  const leadingJunk = /^(?:[\s"'“”‘’,:;.\-]+|\b(?:then|and|also)\b)+/i;
51
58
  const trailingJunk = /[\s"'“”‘’,:;.\-]+$/;
52
- const parts = question
59
+ const raw = question
53
60
  .split(/\s*(?:\?|;|\band then\b|\balso\b)\s*/i)
54
- .flatMap((part) => part.split(/\s+\band\s+(?=(?:what|who|which|show|list|tell|give|how|why)\b)/i))
61
+ .flatMap((part) => part.split(/\s+\band\s+(?=(?:what|who|which|show|list|tell|give|how|why)\b)/i));
62
+ // A `Label: "value"` clause is an ANNOTATION, not a question. The composer
63
+ // appends `Regarding: "<selected row>"` when the reader follows up on
64
+ // something they clicked, and splitting on the `?` before it turned that
65
+ // referent into a task of its own — titled `Regarding: "Mr. Matthew Meyer`,
66
+ // which then "answered" by computing an unrelated maximum over the rows still
67
+ // on screen. Context says WHO the real task is about; it is never a task.
68
+ // Filtered before the junk strip, which would unbalance the quotes.
69
+ const asked = raw.filter((part) => !ANNOTATION_CLAUSE.test(part));
70
+ const parts = (asked.length > 0 ? asked : raw)
55
71
  .map((part) => part.replace(leadingJunk, '').replace(trailingJunk, '').trim())
56
72
  .filter(Boolean);
57
73
  return parts.length > 0 ? parts : [question.trim()];
58
74
  }
59
75
  export function buildAnalyticalTaskGraph(input) {
60
- const clauses = splitAnalyticalTasks(input.question).slice(0, Math.max(1, Math.min(6, input.maxTasks ?? 6)));
76
+ const rootKind = input.mode === 'research' ? 'research' : inferAnalyticalTurnKind(input.question);
77
+ // A research turn may later create bounded evidence branches, but that is a
78
+ // research planner's job. Splitting at ingress loses the surrounding story
79
+ // before it has an opportunity to reason about it.
80
+ const clauses = (rootKind === 'research' ? [input.question.trim()] : splitAnalyticalTasks(input.question))
81
+ .slice(0, Math.max(1, Math.min(6, input.maxTasks ?? 6)));
61
82
  const candidateIds = [...new Set((input.candidateIds ?? []).filter((id) => id.trim()))];
62
83
  const metrics = [...new Set((input.metrics ?? []).filter((metric) => metric.trim()))];
63
84
  const dimensions = [...new Set((input.dimensions ?? []).filter((dimension) => dimension.trim()))];
64
85
  const filters = input.filters ?? [];
65
86
  const inheritedBindings = input.inheritedBindings ?? [];
66
- const tasks = clauses.map((clause, index) => {
67
- const kind = inferAnalyticalTurnKind(clause);
87
+ const unboundTasks = clauses.map((clause, index) => {
88
+ const kind = rootKind === 'research' ? 'research' : inferAnalyticalTurnKind(clause);
68
89
  const research = kind === 'research' || kind === 'diagnosis';
69
90
  const taskKind = research
70
91
  ? 'research_branch'
@@ -96,12 +117,36 @@ export function buildAnalyticalTaskGraph(input) {
96
117
  inheritedBindings,
97
118
  };
98
119
  });
120
+ const tasks = bindTopRankedRegionDependencies(unboundTasks);
99
121
  return {
100
- kind: tasks.length > 1 ? 'compound' : inferAnalyticalTurnKind(input.question),
122
+ kind: rootKind === 'research' ? 'research' : tasks.length > 1 ? 'compound' : rootKind,
101
123
  tasks,
102
124
  partial: false,
103
125
  };
104
126
  }
127
+ const TOP_RANKED_REGION_RE = /(?:\b(?:top|highest|most)\b[^?.!]{0,72}\bregions?\b|\bregions?\b[^?.!]{0,72}\b(?:top|highest|most)\b)/i;
128
+ const DEPENDENT_REGION_CUSTOMERS_RE = /\b(?:that|this|same)\s+region\b/i;
129
+ /**
130
+ * Recognise only the demonstrated two-step dependency. Broader pronoun
131
+ * resolution belongs to the normal conversation layer; turning every compound
132
+ * question into a dependency would serialise unrelated work and invent filters.
133
+ */
134
+ function bindTopRankedRegionDependencies(tasks) {
135
+ return tasks.map((task, index) => {
136
+ if (!DEPENDENT_REGION_CUSTOMERS_RE.test(task.question) || !/\bcustomers?\b/i.test(task.question))
137
+ return task;
138
+ const parent = tasks.slice(0, index).reverse().find((candidate) => TOP_RANKED_REGION_RE.test(candidate.question));
139
+ if (!parent)
140
+ return task;
141
+ const dependency = {
142
+ version: 1,
143
+ kind: 'top_ranked_region',
144
+ sourceTaskId: parent.id,
145
+ targetDimension: 'region',
146
+ };
147
+ return { ...task, dependencies: [parent.id], dependency };
148
+ });
149
+ }
105
150
  export function buildAnalyticalTurnPlan(input) {
106
151
  const graph = buildAnalyticalTaskGraph(input);
107
152
  const zeroCall = input.zeroCallReason === 'explicit_binding'
@@ -134,6 +179,173 @@ export function summarizeTaskOutcomes(tasks) {
134
179
  : 'gap';
135
180
  return { status, completed, gaps };
136
181
  }
182
+ /** Stable scalar transport for a selected canonical result cell. */
183
+ export function canonicalResultBindingValue(value) {
184
+ if (typeof value === 'string')
185
+ return value;
186
+ if (typeof value === 'number' && Number.isFinite(value))
187
+ return String(value);
188
+ if (typeof value === 'boolean')
189
+ return String(value);
190
+ return undefined;
191
+ }
192
+ /** A row proof includes all canonical columns, not just the selected cell. */
193
+ export function canonicalResultRowFingerprint(result, row) {
194
+ return stableFingerprint({
195
+ columns: result.columns,
196
+ row: Object.fromEntries(result.columns.map((column) => [column, row[column]])),
197
+ });
198
+ }
199
+ /**
200
+ * Validate an untrusted selected-result reference against a persisted
201
+ * canonical result. The source run/artifact identities are checked by the
202
+ * host before calling this pure result-level validator.
203
+ */
204
+ export function validateSelectedResultBinding(binding, result) {
205
+ if (!binding
206
+ || binding.version !== 1
207
+ || !binding.sourceRunId.trim()
208
+ || !binding.sourceArtifactId.trim()
209
+ || !binding.canonicalColumn.trim()
210
+ || !binding.value.trim()
211
+ || !normalizeAnalyticalExecutionFingerprint(binding.rowFingerprint)
212
+ || !normalizeAnalyticalExecutionFingerprint(binding.resultFingerprint)) {
213
+ return {
214
+ ok: false,
215
+ code: 'RESULT_BINDING_INVALID',
216
+ message: 'The selected result reference is incomplete or malformed.',
217
+ };
218
+ }
219
+ if (!result || binding.resultFingerprint !== result.resultFingerprint) {
220
+ return {
221
+ ok: false,
222
+ code: 'RESULT_BINDING_RESULT_MISMATCH',
223
+ message: 'The selected result is no longer the persisted result for this run.',
224
+ };
225
+ }
226
+ if (!result.columns.includes(binding.canonicalColumn)) {
227
+ return {
228
+ ok: false,
229
+ code: 'RESULT_BINDING_ROW_MISMATCH',
230
+ message: `The selected column ${binding.canonicalColumn} is not present in the persisted result.`,
231
+ };
232
+ }
233
+ const matched = result.rows.some((row) => canonicalResultRowFingerprint(result, row) === binding.rowFingerprint
234
+ && canonicalResultBindingValue(row[binding.canonicalColumn]) === binding.value);
235
+ if (!matched) {
236
+ return {
237
+ ok: false,
238
+ code: 'RESULT_BINDING_ROW_MISMATCH',
239
+ message: 'The selected row/value does not match the persisted result.',
240
+ };
241
+ }
242
+ return { ok: true, binding: { ...binding, resultFingerprint: result.resultFingerprint } };
243
+ }
244
+ /**
245
+ * Derive the one value a `top region -> customers in that region` child may
246
+ * consume. A first row alone is never proof. The parent must either return an
247
+ * explicit rank, or be the server-computed descending ranking task and return
248
+ * at least two rows with one strictly-leading numeric measure. `rowCount` is
249
+ * the returned-row contract, not proof that a singleton is the complete group
250
+ * set. Ties and ambiguous result shapes remain a typed child gap.
251
+ */
252
+ export function resolveTopRankedRegionDependency(sourceTaskId, result, parentTask) {
253
+ if (!result || result.rows.length === 0) {
254
+ return {
255
+ ok: false,
256
+ code: 'RESULT_CONTRACT_MISMATCH',
257
+ message: 'The top-region task did not produce a canonical result that can bind the dependent customer task.',
258
+ };
259
+ }
260
+ const canonicalResultFingerprint = normalizeAnalyticalExecutionFingerprint(result.resultFingerprint);
261
+ const executionReceipt = normalizeAnalyticalExecutionReceipt(result.executionReceipt);
262
+ if (!executionReceipt) {
263
+ return {
264
+ ok: false,
265
+ code: 'RESULT_CONTRACT_MISMATCH',
266
+ message: 'The top-region result did not retain a complete normalized execution receipt, so the dependent customer task was not run.',
267
+ };
268
+ }
269
+ if (!canonicalResultFingerprint
270
+ || result.resultFingerprint !== canonicalResultFingerprint
271
+ || executionReceipt.resultFingerprint !== canonicalResultFingerprint) {
272
+ return {
273
+ ok: false,
274
+ code: 'RESULT_CONTRACT_MISMATCH',
275
+ message: 'The top-region execution receipt does not match the canonical result, so the dependent customer task was not run.',
276
+ };
277
+ }
278
+ const regionColumns = result.columns.filter((column) => /(?:^|_)region(?:_name)?$/i.test(column));
279
+ if (regionColumns.length !== 1) {
280
+ return {
281
+ ok: false,
282
+ code: 'RESULT_CONTRACT_MISMATCH',
283
+ message: 'The top-region result did not contain exactly one canonical region column.',
284
+ };
285
+ }
286
+ const canonicalColumn = regionColumns[0];
287
+ const first = result.rows[0];
288
+ const value = canonicalResultBindingValue(first[canonicalColumn]);
289
+ if (!value) {
290
+ return {
291
+ ok: false,
292
+ code: 'RESULT_CONTRACT_MISMATCH',
293
+ message: 'The leading top-region row did not contain a usable region value.',
294
+ };
295
+ }
296
+ if (!hasUnambiguousTopRow(result, parentTask)) {
297
+ return {
298
+ ok: false,
299
+ code: 'RESULT_CONTRACT_MISMATCH',
300
+ message: 'The top-region result did not prove a single leading region, so the dependent customer task was not run.',
301
+ };
302
+ }
303
+ return {
304
+ ok: true,
305
+ binding: {
306
+ version: 1,
307
+ sourceTaskId,
308
+ sourceResultFingerprint: canonicalResultFingerprint,
309
+ canonicalColumn,
310
+ value,
311
+ rowFingerprint: canonicalResultRowFingerprint(result, first),
312
+ },
313
+ };
314
+ }
315
+ function hasUnambiguousTopRow(result, parentTask) {
316
+ const rankColumn = result.columns.find((column) => /(?:^|_)(?:rank|row_number)$/i.test(column));
317
+ if (rankColumn) {
318
+ const ranks = result.rows.map((row) => numericCell(row[rankColumn]));
319
+ if (ranks[0] === 1 && ranks.slice(1).every((rank) => rank === undefined || rank > 1))
320
+ return true;
321
+ }
322
+ // A plain numerical result column does not say that its first row was ranked.
323
+ // It becomes a ranking proof only when the server's own parent task explicitly
324
+ // asked for a descending ranking AND the returned rows demonstrate a strictly
325
+ // leading value. A singleton needs an explicit rank = 1: it cannot establish
326
+ // that unreturned groups are lower.
327
+ if (parentTask?.kind !== 'ranking' || parentTask.output.order !== 'desc')
328
+ return false;
329
+ if (result.rows.length < 2)
330
+ return false;
331
+ const measures = result.columns.filter((column) => {
332
+ if (column === rankColumn)
333
+ return false;
334
+ const values = result.rows.map((row) => numericCell(row[column]));
335
+ return values.every((value) => value !== undefined);
336
+ });
337
+ if (measures.length !== 1)
338
+ return false;
339
+ const values = result.rows.map((row) => numericCell(row[measures[0]]));
340
+ return values.slice(1).every((value) => values[0] > value);
341
+ }
342
+ function numericCell(value) {
343
+ if (typeof value === 'number' && Number.isFinite(value))
344
+ return value;
345
+ if (typeof value === 'string' && value.trim() && Number.isFinite(Number(value)))
346
+ return Number(value);
347
+ return undefined;
348
+ }
137
349
  /**
138
350
  * Normalize connector, MetricFlow, and provider result shapes at one boundary.
139
351
  * Connectors may return `ColumnMeta[]` and rows as arrays; UI surfaces should
@@ -1 +1 @@
1
- {"version":3,"file":"analytical-orchestration.js","sourceRoot":"","sources":["../src/analytical-orchestration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytical-orchestration.js","sourceRoot":"","sources":["../src/analytical-orchestration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Deterministic Ask ingress policy.
3
+ *
4
+ * This runs before catalog retrieval, provider dispatch, value probing, tools,
5
+ * or SQL. It intentionally recognises a small set of direct disclosure
6
+ * requests instead of attempting to infer policy from the available schema:
7
+ * reaching a model or a warehouse is already too late for these requests.
8
+ */
9
+ export type AnalyticalRequestPolicyDecision = {
10
+ allowed: true;
11
+ } | {
12
+ allowed: false;
13
+ code: 'REGULATED_IDENTIFIER_REQUEST' | 'SENSITIVE_PERSONAL_DATA_REQUEST' | 'INDIVIDUAL_COMPENSATION_REQUEST';
14
+ message: string;
15
+ nextActions: string[];
16
+ };
17
+ /**
18
+ * Evaluate a raw Ask question at the ingress boundary.
19
+ *
20
+ * Direct personal data and compensation are unavailable before planning. A
21
+ * narrowly explicit population aggregate remains available, but aggregate
22
+ * words never turn a named or singular person's compensation into a safe
23
+ * request.
24
+ */
25
+ export declare function evaluateAnalyticalRequestPolicy(question: string): AnalyticalRequestPolicyDecision;
26
+ //# sourceMappingURL=analytical-request-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytical-request-policy.d.ts","sourceRoot":"","sources":["../src/analytical-request-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,+BAA+B,GACvC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IACE,OAAO,EAAE,KAAK,CAAC;IACf,IAAI,EACA,8BAA8B,GAC9B,iCAAiC,GACjC,iCAAiC,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAiDN;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,GAAG,+BAA+B,CAsCjG"}
@@ -0,0 +1,82 @@
1
+ const REGULATED_IDENTIFIER_RE = /\b(?:social\s+security(?:\s+(?:number|no\.?))?|ssn|tax(?:payer)?\s*(?:id|identifier|number|no\.?)|passport(?:\s+(?:id|number|no\.?))?|government\s*(?:id|identifier)|national\s*id|driver'?s?\s*licen[cs]e(?:\s+(?:number|no\.?))?|date\s+of\s+birth|birth\s*date|dob|aadhaar(?:\s+(?:number|id))?)\b/i;
2
+ /**
3
+ * A regulated identifier may appear in a question about DQL's safeguards, but
4
+ * that exception must be explicit about the system's behaviour and begin the
5
+ * entire request. Topic words such as "compliance" or "policy" are not
6
+ * enough: "For compliance, show Jessica Richard's SSN" is still a disclosure
7
+ * request. Likewise, a policy attached to a named person is not a system
8
+ * policy question.
9
+ */
10
+ const EXPLICIT_SYSTEM_POLICY_OR_CAPABILITY_QUESTION_RE = /^(?:(?:does|can|will|do)\s+(?:dql|you|this\s+(?:system|assistant|app(?:lication)?|product))\s+(?:support\b[^?.!]*\b(?:mask(?:ing)?|redact(?:ion|ed)?|tokeni[sz](?:e|ation)|protect(?:ion|ed)?|handling|storage|retention|access\s+control(?:s)?|safeguard(?:s)?)\b|handle|protect|mask|redact|store|retain|tokeni[sz]e)\b[^?.!]*|how\s+(?:does|do)\s+(?:dql|you|this\s+(?:system|assistant|app(?:lication)?|product))\s+(?:handle|protect|mask|redact|store|retain|tokeni[sz]e)\b[^?.!]*|(?:what\s+(?:is|are)|describe|explain)\s+(?:dql(?:'s)?|your|this\s+(?:system|assistant|app(?:lication)?|product)(?:'s)?)\s+[^?.!]*\b(?:privacy|security|data\s+retention|masking|redaction|tokenization|access)\s+(?:policy|capabilit(?:y|ies))\b[^?.!]*)[?!.]?$/i;
11
+ const DISCLOSURE_ACTION_RE = /\b(?:show(?:ing)?|give|giving|list(?:ing)?|retrieve|retrieving|get(?:ting)?|reveal(?:ing)?|display(?:ing)?|provide|providing|disclose|disclosing|return(?:ing)?|output(?:ting)?|expose|exposing|fetch(?:ing)?|look\s*up|lookup|tell\s+me|need)\b/i;
12
+ const VALUE_REQUEST_SEMANTICS_RE = /\b(?:actual|full|specific|individual)\s+(?:value|values|number|numbers|record|records|details?|information)|\b(?:value|values|number|numbers|record|records|details?|information)\s+(?:for|of)\b/i;
13
+ /** Direct literal categories that the value-probe deny policy also protects. */
14
+ const SENSITIVE_PERSONAL_DATA_RE = /\b(?:credit\s*card|debit\s*card|card\s*(?:number|no\.?|details?)|cvv|cvc|iban|swift|bic|routing\s*(?:number|no\.?)|bank\s*account|account\s*(?:number|no\.?)|sort\s*code|medical|diagnosis|patient|health\s*(?:condition|record|information|data)?|insurance|prescription|disability|biometric|fingerprint|home\s*address|street(?:\s*(?:address|name))?|postal\s*code|post\s*code|zip\s*code|zipcode|phone(?:\s*(?:number|no\.?))?|mobile(?:\s*(?:number|no\.?))?|telephone|email(?:\s*address)?|race|ethnicity|religion|gender|sexual\s*orientation)\b/i;
15
+ const COMPENSATION_RE = /\b(?:salary|compensation|pay|wage|bonus|earnings)\b/i;
16
+ const INDIVIDUAL_SUBJECT_RE = /\b(?:ceo|cfo|coo|cto|chief\s+\w+\s+officer|founder|employee|person|individual|manager|director|executive|their|his|her)\b/i;
17
+ const NAMED_INDIVIDUAL_REFERENCE_RE = /\b(?:for|to|of)\s+[A-Z][a-z]+(?:\s+[A-Z][a-z]+){0,2}\b|\b[A-Z][a-z]+(?:\s+[A-Z][a-z]+){0,2}(?:'s|’s)\b/;
18
+ // `number` only counts as an aggregate when it is the phrase "number of".
19
+ // Otherwise a literal such as "bank account number" would accidentally become
20
+ // a safe aggregate. The same rule excludes a bare `account` from the
21
+ // population list; a grouped account question still has an explicit `by …`.
22
+ const AGGREGATE_OPERATION_RE = /\b(?:average|avg|median|mean|total|sum|count|number\s+of|how\s+many|percentage|percent|rate|distribution|breakdown|aggregate|overall)\b/i;
23
+ const AGGREGATE_POPULATION_OR_GROUPING_RE = /\b(?:by\s+(?:department|team|role|level|location|region|country|segment|category|month|quarter|year)|across\s+(?:employees?|customers?|people|individuals?|patients?|members?|users?)|(?:employees?|customers?|people|individuals?|patients?|members?|users?)\b)/i;
24
+ const INDIVIDUAL_EARNINGS_QUESTION_RE = /\b(?:how\s+much\s+(?:does|did)\s+(?:the\s+)?(?:ceo|cfo|coo|cto|chief\s+\w+\s+officer|founder|employee|person|individual|manager|director|executive)|what\s+(?:does|did)\s+(?:the\s+)?(?:ceo|cfo|coo|cto|chief\s+\w+\s+officer|founder|employee|person|individual|manager|director|executive))\b[^?.!]{0,32}\b(?:make|earn)\b/i;
25
+ function isExplicitSystemPolicyOrCapabilityQuestion(question) {
26
+ // A question may start as a capability request and still smuggle in an
27
+ // individual disclosure request: "Does DQL support showing Jessica's SSN
28
+ // with masking?". System safeguards describe product behaviour; they never
29
+ // authorize a value, person, or disclosure verb in the same request.
30
+ return EXPLICIT_SYSTEM_POLICY_OR_CAPABILITY_QUESTION_RE.test(question)
31
+ && !DISCLOSURE_ACTION_RE.test(question)
32
+ && !VALUE_REQUEST_SEMANTICS_RE.test(question)
33
+ && !namesAnIndividual(question);
34
+ }
35
+ function isExplicitPopulationAggregate(question) {
36
+ return AGGREGATE_OPERATION_RE.test(question) && AGGREGATE_POPULATION_OR_GROUPING_RE.test(question);
37
+ }
38
+ function namesAnIndividual(question) {
39
+ return INDIVIDUAL_SUBJECT_RE.test(question) || NAMED_INDIVIDUAL_REFERENCE_RE.test(question);
40
+ }
41
+ /**
42
+ * Evaluate a raw Ask question at the ingress boundary.
43
+ *
44
+ * Direct personal data and compensation are unavailable before planning. A
45
+ * narrowly explicit population aggregate remains available, but aggregate
46
+ * words never turn a named or singular person's compensation into a safe
47
+ * request.
48
+ */
49
+ export function evaluateAnalyticalRequestPolicy(question) {
50
+ const normalized = question.trim();
51
+ if (!normalized)
52
+ return { allowed: true };
53
+ const isSystemPolicyQuestion = isExplicitSystemPolicyOrCapabilityQuestion(normalized);
54
+ const isPopulationAggregate = isExplicitPopulationAggregate(normalized);
55
+ if (REGULATED_IDENTIFIER_RE.test(normalized) && !isSystemPolicyQuestion) {
56
+ return {
57
+ allowed: false,
58
+ code: 'REGULATED_IDENTIFIER_REQUEST',
59
+ message: 'DQL cannot retrieve or disclose regulated personal identifiers such as government IDs or dates of birth.',
60
+ nextActions: ['ask_for_an_approved_aggregate', 'inspect_data_policy'],
61
+ };
62
+ }
63
+ if (SENSITIVE_PERSONAL_DATA_RE.test(normalized) && !isSystemPolicyQuestion && !isPopulationAggregate) {
64
+ return {
65
+ allowed: false,
66
+ code: 'SENSITIVE_PERSONAL_DATA_REQUEST',
67
+ message: 'DQL cannot retrieve or disclose direct payment, health, contact, or protected-attribute data about an individual.',
68
+ nextActions: ['ask_for_an_approved_aggregate', 'inspect_data_policy'],
69
+ };
70
+ }
71
+ if ((COMPENSATION_RE.test(normalized) || INDIVIDUAL_EARNINGS_QUESTION_RE.test(normalized))
72
+ && (!isPopulationAggregate || namesAnIndividual(normalized))) {
73
+ return {
74
+ allowed: false,
75
+ code: 'INDIVIDUAL_COMPENSATION_REQUEST',
76
+ message: 'DQL does not provide individual compensation. Ask for an approved aggregate if one is modeled.',
77
+ nextActions: ['ask_for_an_approved_aggregate', 'inspect_data_policy'],
78
+ };
79
+ }
80
+ return { allowed: true };
81
+ }
82
+ //# sourceMappingURL=analytical-request-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytical-request-policy.js","sourceRoot":"","sources":["../src/analytical-request-policy.ts"],"names":[],"mappings":"AAoBA,MAAM,uBAAuB,GAAG,wSAAwS,CAAC;AAEzU;;;;;;;GAOG;AACH,MAAM,gDAAgD,GAAG,4tBAA4tB,CAAC;AACtxB,MAAM,oBAAoB,GAAG,mPAAmP,CAAC;AACjR,MAAM,0BAA0B,GAAG,mMAAmM,CAAC;AAEvO,gFAAgF;AAChF,MAAM,0BAA0B,GAAG,2hBAA2hB,CAAC;AAE/jB,MAAM,eAAe,GAAG,sDAAsD,CAAC;AAC/E,MAAM,qBAAqB,GAAG,4HAA4H,CAAC;AAC3J,MAAM,6BAA6B,GAAG,wGAAwG,CAAC;AAC/I,0EAA0E;AAC1E,8EAA8E;AAC9E,sEAAsE;AACtE,4EAA4E;AAC5E,MAAM,sBAAsB,GAAG,0IAA0I,CAAC;AAC1K,MAAM,mCAAmC,GAAG,mQAAmQ,CAAC;AAChT,MAAM,+BAA+B,GAAG,+TAA+T,CAAC;AAExW,SAAS,0CAA0C,CAAC,QAAgB;IAClE,uEAAuE;IACvE,yEAAyE;IACzE,2EAA2E;IAC3E,qEAAqE;IACrE,OAAO,gDAAgD,CAAC,IAAI,CAAC,QAAQ,CAAC;WACjE,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;WACpC,CAAC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC;WAC1C,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,6BAA6B,CAAC,QAAgB;IACrD,OAAO,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,mCAAmC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrG,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,OAAO,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9F,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAAC,QAAgB;IAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE1C,MAAM,sBAAsB,GAAG,0CAA0C,CAAC,UAAU,CAAC,CAAC;IACtF,MAAM,qBAAqB,GAAG,6BAA6B,CAAC,UAAU,CAAC,CAAC;IAExE,IAAI,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACxE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,0GAA0G;YACnH,WAAW,EAAE,CAAC,+BAA+B,EAAE,qBAAqB,CAAC;SACtE,CAAC;IACJ,CAAC;IAED,IAAI,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACrG,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,iCAAiC;YACvC,OAAO,EAAE,mHAAmH;YAC5H,WAAW,EAAE,CAAC,+BAA+B,EAAE,qBAAqB,CAAC;SACtE,CAAC;IACJ,CAAC;IAED,IACE,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,+BAA+B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;WACnF,CAAC,CAAC,qBAAqB,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC,EAC5D,CAAC;QACD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,iCAAiC;YACvC,OAAO,EAAE,gGAAgG;YACzG,WAAW,EAAE,CAAC,+BAA+B,EAAE,qBAAqB,CAAC;SACtE,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
@@ -95,6 +95,19 @@ export declare function renderAnalyticalFactBrief(input: {
95
95
  * verified — the validator resolves every id against the fact map — so a strict
96
96
  * JSON contract is the only shape that can be checked rather than trusted.
97
97
  */
98
+ /**
99
+ * How many output tokens the verified-facts narrator needs for a result.
100
+ *
101
+ * The contract makes every claim echo the fact ids it rests on, and a fact id
102
+ * is a long hex string that tokenizes badly — so the ceiling has to grow with
103
+ * the result. At a flat 350 a ten-row answer was cut off mid-word
104
+ * ("...Elizabeth Shea (875), and Dyl"), the JSON never closed, BOTH attempts
105
+ * failed as UNPARSEABLE_CLAIMS, and the reader got the deterministic row dump
106
+ * under "Verified narration was unavailable". Nothing in CI caught it because
107
+ * the gate never reaches a model; this function exists so the arithmetic is
108
+ * testable without one.
109
+ */
110
+ export declare function narrationMaxTokensForFacts(factCount: number): number;
98
111
  export declare function parseAnalyticalNarrativeClaims(raw: string): AnalyticalNarrativeClaimV1[] | undefined;
99
112
  export interface ComposedAnalyticalNarrative {
100
113
  narrative: AnalyticalNarrativeV1;
@@ -1 +1 @@
1
- {"version":3,"file":"analytical-result-facts.d.ts","sourceRoot":"","sources":["../src/analytical-result-facts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytical-result-facts.d.ts","sourceRoot":"","sources":["../src/analytical-result-facts.ts"],"names":[],"mappings":"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"}
@@ -306,6 +306,21 @@ export function renderAnalyticalFactBrief(input) {
306
306
  * verified — the validator resolves every id against the fact map — so a strict
307
307
  * JSON contract is the only shape that can be checked rather than trusted.
308
308
  */
309
+ /**
310
+ * How many output tokens the verified-facts narrator needs for a result.
311
+ *
312
+ * The contract makes every claim echo the fact ids it rests on, and a fact id
313
+ * is a long hex string that tokenizes badly — so the ceiling has to grow with
314
+ * the result. At a flat 350 a ten-row answer was cut off mid-word
315
+ * ("...Elizabeth Shea (875), and Dyl"), the JSON never closed, BOTH attempts
316
+ * failed as UNPARSEABLE_CLAIMS, and the reader got the deterministic row dump
317
+ * under "Verified narration was unavailable". Nothing in CI caught it because
318
+ * the gate never reaches a model; this function exists so the arithmetic is
319
+ * testable without one.
320
+ */
321
+ export function narrationMaxTokensForFacts(factCount) {
322
+ return Math.min(1600, 350 + Math.max(0, factCount) * 45);
323
+ }
309
324
  export function parseAnalyticalNarrativeClaims(raw) {
310
325
  const fenced = raw.match(/```(?:json)?\s*([\s\S]*?)```/);
311
326
  const candidate = (fenced ? fenced[1] : raw).trim();
@@ -395,6 +410,9 @@ export async function composeVerifiedAnalyticalNarrative(input) {
395
410
  }
396
411
  const claims = parseAnalyticalNarrativeClaims(raw);
397
412
  if (!claims) {
413
+ if (process.env.DQL_ORCHESTRATOR_TRACE) {
414
+ console.warn(`[dql] narration unparseable (attempt ${attempt}) len=${raw.length} tail="${raw.slice(-220).replace(/\n/g, '\\n')}"`);
415
+ }
398
416
  correction = 'The response was not the required JSON claims object.';
399
417
  failures.push('UNPARSEABLE_CLAIMS');
400
418
  continue;
@@ -456,7 +474,25 @@ function isExactZero(value) {
456
474
  return (typeof value === 'number' && value === 0) || (typeof value === 'bigint' && value === 0n) || (typeof value === 'string' && /^[+-]?0+(?:\.0+)?$/.test(value.trim()));
457
475
  }
458
476
  function numericTokens(value) {
459
- return value.match(/-?\d+(?:,\d{3})*(?:\.\d+)?%?/g)?.map((token) => token.replace(/,/g, '').replace(/%$/, '')) ?? [];
477
+ return value.match(/-?\d+(?:,\d{3})*(?:\.\d+)?%?/g)
478
+ ?.map((token) => normalizeNumericToken(token.replace(/,/g, '').replace(/%$/, ''))) ?? [];
479
+ }
480
+ /**
481
+ * Compare numbers by VALUE, not by spelling.
482
+ *
483
+ * `2004` and `2004.00` are the same number, but string equality called the
484
+ * second one unsupported — so a narration written as "$2,004.00", which is
485
+ * exactly how the results table renders it, was rejected against a fact stored
486
+ * as `2004`. Two such rejections and the reader gets the deterministic row dump
487
+ * with "Verified narration was unavailable" on top, for a sentence whose
488
+ * numbers were all correct.
489
+ *
490
+ * This does not weaken the check: 2004 still fails against 2005. It only stops
491
+ * formatting from masquerading as a factual error.
492
+ */
493
+ function normalizeNumericToken(token) {
494
+ const parsed = Number(token);
495
+ return Number.isFinite(parsed) ? String(parsed) : token;
460
496
  }
461
497
  function hash(value) {
462
498
  return createHash('sha256').update(value).digest('hex');