@duckcodeailabs/dql-agent 1.9.5 → 1.10.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 (94) hide show
  1. package/dist/agent-run-engine.d.ts +13 -0
  2. package/dist/agent-run-engine.d.ts.map +1 -1
  3. package/dist/agent-run-engine.js +65 -2
  4. package/dist/agent-run-engine.js.map +1 -1
  5. package/dist/analytical-compatibility.d.ts +61 -0
  6. package/dist/analytical-compatibility.d.ts.map +1 -0
  7. package/dist/analytical-compatibility.js +515 -0
  8. package/dist/analytical-compatibility.js.map +1 -0
  9. package/dist/analytical-execution-graph.d.ts +174 -0
  10. package/dist/analytical-execution-graph.d.ts.map +1 -0
  11. package/dist/analytical-execution-graph.js +599 -0
  12. package/dist/analytical-execution-graph.js.map +1 -0
  13. package/dist/analytical-failure-repair.d.ts +91 -0
  14. package/dist/analytical-failure-repair.d.ts.map +1 -0
  15. package/dist/analytical-failure-repair.js +325 -0
  16. package/dist/analytical-failure-repair.js.map +1 -0
  17. package/dist/analytical-frame.d.ts +19 -0
  18. package/dist/analytical-frame.d.ts.map +1 -0
  19. package/dist/analytical-frame.js +299 -0
  20. package/dist/analytical-frame.js.map +1 -0
  21. package/dist/analytical-period-resolution.d.ts +53 -0
  22. package/dist/analytical-period-resolution.d.ts.map +1 -0
  23. package/dist/analytical-period-resolution.js +218 -0
  24. package/dist/analytical-period-resolution.js.map +1 -0
  25. package/dist/analytical-readiness.d.ts +17 -0
  26. package/dist/analytical-readiness.d.ts.map +1 -0
  27. package/dist/analytical-readiness.js +95 -0
  28. package/dist/analytical-readiness.js.map +1 -0
  29. package/dist/analytical-result-facts.d.ts +79 -0
  30. package/dist/analytical-result-facts.d.ts.map +1 -0
  31. package/dist/analytical-result-facts.js +301 -0
  32. package/dist/analytical-result-facts.js.map +1 -0
  33. package/dist/answer-loop.d.ts +82 -2
  34. package/dist/answer-loop.d.ts.map +1 -1
  35. package/dist/answer-loop.js +1129 -38
  36. package/dist/answer-loop.js.map +1 -1
  37. package/dist/embeddings/provider.d.ts +1 -1
  38. package/dist/embeddings/provider.d.ts.map +1 -1
  39. package/dist/embeddings/provider.js.map +1 -1
  40. package/dist/governed-relational-compiler.d.ts +189 -0
  41. package/dist/governed-relational-compiler.d.ts.map +1 -0
  42. package/dist/governed-relational-compiler.js +458 -0
  43. package/dist/governed-relational-compiler.js.map +1 -0
  44. package/dist/index.d.ts +25 -5
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +15 -4
  47. package/dist/index.js.map +1 -1
  48. package/dist/intent-controller.d.ts +5 -0
  49. package/dist/intent-controller.d.ts.map +1 -1
  50. package/dist/intent-controller.js.map +1 -1
  51. package/dist/kg/build.d.ts +2 -2
  52. package/dist/kg/build.d.ts.map +1 -1
  53. package/dist/kg/build.js +329 -9
  54. package/dist/kg/build.js.map +1 -1
  55. package/dist/meaning-resolution.d.ts +17 -0
  56. package/dist/meaning-resolution.d.ts.map +1 -1
  57. package/dist/meaning-resolution.js +83 -4
  58. package/dist/meaning-resolution.js.map +1 -1
  59. package/dist/metadata/analysis-planner.d.ts.map +1 -1
  60. package/dist/metadata/analysis-planner.js +37 -7
  61. package/dist/metadata/analysis-planner.js.map +1 -1
  62. package/dist/metadata/catalog.d.ts +86 -3
  63. package/dist/metadata/catalog.d.ts.map +1 -1
  64. package/dist/metadata/catalog.js +607 -36
  65. package/dist/metadata/catalog.js.map +1 -1
  66. package/dist/metadata/meaning-evidence.d.ts +18 -2
  67. package/dist/metadata/meaning-evidence.d.ts.map +1 -1
  68. package/dist/metadata/meaning-evidence.js +182 -7
  69. package/dist/metadata/meaning-evidence.js.map +1 -1
  70. package/dist/plan-execution-adapter.d.ts +131 -0
  71. package/dist/plan-execution-adapter.d.ts.map +1 -0
  72. package/dist/plan-execution-adapter.js +447 -0
  73. package/dist/plan-execution-adapter.js.map +1 -0
  74. package/dist/research-governance.d.ts +56 -0
  75. package/dist/research-governance.d.ts.map +1 -0
  76. package/dist/research-governance.js +68 -0
  77. package/dist/research-governance.js.map +1 -0
  78. package/dist/research-loop.d.ts +14 -0
  79. package/dist/research-loop.d.ts.map +1 -1
  80. package/dist/research-loop.js +77 -23
  81. package/dist/research-loop.js.map +1 -1
  82. package/dist/resolved-analytical-plan.d.ts +123 -0
  83. package/dist/resolved-analytical-plan.d.ts.map +1 -0
  84. package/dist/resolved-analytical-plan.js +400 -0
  85. package/dist/resolved-analytical-plan.js.map +1 -0
  86. package/dist/router.d.ts +3 -0
  87. package/dist/router.d.ts.map +1 -1
  88. package/dist/router.js +195 -25
  89. package/dist/router.js.map +1 -1
  90. package/dist/skills/loader.d.ts +17 -0
  91. package/dist/skills/loader.d.ts.map +1 -1
  92. package/dist/skills/loader.js +62 -4
  93. package/dist/skills/loader.js.map +1 -1
  94. package/package.json +4 -4
@@ -0,0 +1,400 @@
1
+ /**
2
+ * Immutable, snapshot-bound analytical plan shared by every downstream route.
3
+ * The router emits it authoritatively by default. Shadow mode remains the
4
+ * bounded route-level rollback switch while integration verification closes.
5
+ *
6
+ * Acceptance: AGT-013, API-006.
7
+ */
8
+ import { createHash } from "node:crypto";
9
+ export function buildResolvedAnalyticalPlan(input) {
10
+ const byLegacyId = new Map(input.candidates.map((candidate) => [candidate.id, candidate]));
11
+ const selectedCandidates = input.resolution.selectedConceptIds
12
+ .flatMap((id) => byLegacyId.get(id) ? [byLegacyId.get(id)] : []);
13
+ const executionCandidate = input.resolution.recommendedExecutionId
14
+ ? byLegacyId.get(input.resolution.recommendedExecutionId)
15
+ : selectedCandidates[0];
16
+ const bindingCandidates = resolutionUsesRelationalEvidence(input.resolution)
17
+ ? input.candidates
18
+ : selectedCandidates.length > 0
19
+ ? selectedCandidates
20
+ : executionCandidate
21
+ ? [executionCandidate]
22
+ : input.candidates;
23
+ const canonicalId = (candidate) => candidate.qualifiedId ?? candidate.id;
24
+ const selectedConceptIds = selectedCandidates.map(canonicalId);
25
+ const executionId = executionCandidate ? canonicalId(executionCandidate) : undefined;
26
+ const measures = input.resolution.queryIntent.measures.length > 0
27
+ ? input.resolution.queryIntent.measures.map((requested) => bindRequestedMember(requested, bindingCandidates, 'measure'))
28
+ : selectedCandidates
29
+ .filter((candidate) => candidate.kind === 'semantic_metric')
30
+ .map((candidate) => ({
31
+ requested: candidate.name,
32
+ qualifiedId: canonicalId(candidate),
33
+ status: 'resolved',
34
+ candidateIds: [canonicalId(candidate)],
35
+ }));
36
+ const dimensions = input.resolution.queryIntent.dimensions
37
+ .map((requested) => bindRequestedMember(requested, bindingCandidates, 'dimension'));
38
+ const filters = input.resolution.queryIntent.filters.map((filter) => ({
39
+ ...filter,
40
+ binding: bindRequestedMember(filter.field, bindingCandidates, 'dimension'),
41
+ }));
42
+ const compatibilityProof = selectedCandidates.map((candidate) => ({
43
+ candidateId: canonicalId(candidate),
44
+ compatibility: candidate.compatibility,
45
+ facts: [...(candidate.compatibilityFacts ?? [])].sort(),
46
+ }));
47
+ const capability = resolveCapability(input.resolution, executionCandidate, measures, dimensions, filters);
48
+ const timeBounds = input.resolution.queryIntent.timeRange
49
+ ? resolvePlanTimeRange(input.resolution.queryIntent.timeRange, input.referenceTime ?? new Date())
50
+ : undefined;
51
+ const payload = {
52
+ schemaVersion: input.resolution.analyticalFrame
53
+ ? 2
54
+ : 1,
55
+ mode: input.mode ?? "shadow",
56
+ revision: 0,
57
+ snapshotId: input.evidence.knowledgeLens?.snapshotId
58
+ ?? input.evidence.snapshotId
59
+ ?? input.evidence.sourceFingerprint
60
+ ?? 'snapshot-unavailable',
61
+ sourceFingerprint: input.evidence.sourceFingerprint,
62
+ question: input.question,
63
+ interpretedQuestion: input.resolution.interpretedQuestion,
64
+ questionType: input.resolution.questionType,
65
+ confidence: input.resolution.confidence,
66
+ selectedConceptIds,
67
+ executionId,
68
+ recommendedRoute: input.resolution.recommendedRoute,
69
+ capability,
70
+ query: {
71
+ measures,
72
+ dimensions,
73
+ filters,
74
+ ...(input.resolution.queryIntent.timeRange ? { timeRange: input.resolution.queryIntent.timeRange } : {}),
75
+ ...(timeBounds ? { timeBounds } : {}),
76
+ ...(input.resolution.queryIntent.timeGrain ? { timeGrain: input.resolution.queryIntent.timeGrain } : {}),
77
+ ...(input.resolution.queryIntent.order ? { order: input.resolution.queryIntent.order } : {}),
78
+ ...(input.resolution.queryIntent.limit !== undefined ? { limit: input.resolution.queryIntent.limit } : {}),
79
+ },
80
+ entityGrain: input.resolution.analyticalFrame?.entityGrainIds[0] ??
81
+ executionCandidate?.primaryEntity,
82
+ sourceRelationIds: uniqueSorted(selectedCandidates.flatMap((candidate) => candidate.sourceObjects ?? [])),
83
+ relationshipPathIds: uniqueSorted(selectedCandidates.flatMap((candidate) => candidate.relationshipEvidence ?? [])),
84
+ compatibilityProof,
85
+ outputContract: {
86
+ measures: uniqueSorted(measures.flatMap((binding) => binding.qualifiedId ? [binding.qualifiedId] : [binding.requested])),
87
+ dimensions: uniqueSorted(dimensions.flatMap((binding) => binding.qualifiedId ? [binding.qualifiedId] : [binding.requested])),
88
+ ...(input.resolution.queryIntent.timeGrain
89
+ ? { timeGrain: input.resolution.queryIntent.timeGrain }
90
+ : {}),
91
+ ...(input.resolution.analyticalFrame
92
+ ? {
93
+ fields: input.resolution.analyticalFrame.requestedOutputs.map((output) => output.id),
94
+ periodIds: input.resolution.analyticalFrame.timeContext?.periods.map((period) => period.id) ?? [],
95
+ }
96
+ : {}),
97
+ },
98
+ evidenceIds: uniqueSorted(input.candidates.map(canonicalId)),
99
+ rejectedCandidates: input.resolution.rejectedCandidates.map((candidate) => {
100
+ const retrieved = byLegacyId.get(candidate.id);
101
+ return { id: retrieved ? canonicalId(retrieved) : candidate.id, reason: candidate.reason };
102
+ }),
103
+ missingInformation: [...input.resolution.missingInformation],
104
+ clarification: input.resolution.clarifyingQuestion,
105
+ knowledgeLens: input.evidence.knowledgeLens,
106
+ ...((input.resolution.analyticalPolicyIds?.length ?? 0) > 0
107
+ ? {
108
+ analyticalPolicies: input.resolution
109
+ .analyticalPolicyIds.flatMap((policyId) => {
110
+ const policy = input.evidence.analyticalPolicies?.find((candidate) => candidate.policyId === policyId);
111
+ return policy
112
+ ? [{ policyId, sourceHash: policy.sourceHash }]
113
+ : [];
114
+ })
115
+ .sort((left, right) => left.policyId.localeCompare(right.policyId)),
116
+ }
117
+ : {}),
118
+ ...(input.resolution.analyticalFrame
119
+ ? { analyticalFrame: structuredClone(input.resolution.analyticalFrame) }
120
+ : {}),
121
+ };
122
+ const fingerprint = sha256(stableStringify(payload));
123
+ return deepFreeze({
124
+ ...payload,
125
+ planId: `rap:${fingerprint.slice(0, 24)}`,
126
+ fingerprint,
127
+ });
128
+ }
129
+ /**
130
+ * Apply an explicitly typed follow-up delta. No prose, prior SQL, or answer text
131
+ * is inspected; every carried member remains a qualified binding from the root.
132
+ * Acceptance: CTX-003, AGT-013, AGT-016.
133
+ */
134
+ export function deriveResolvedAnalyticalPlan(parent, delta) {
135
+ const dimensions = delta.dimensions ? delta.dimensions.map(cloneBinding) : parent.query.dimensions.map(cloneBinding);
136
+ const measures = delta.measures ? delta.measures.map(cloneBinding) : parent.query.measures.map(cloneBinding);
137
+ const filters = delta.filters
138
+ ? delta.filters.map(cloneFilter)
139
+ : parent.query.filters.map(cloneFilter);
140
+ if (delta.selectedResultFilter) {
141
+ filters.push({
142
+ field: delta.selectedResultFilter.binding.requested,
143
+ value: delta.selectedResultFilter.value,
144
+ binding: cloneBinding(delta.selectedResultFilter.binding),
145
+ });
146
+ }
147
+ const timeRange = delta.timeRange !== undefined ? delta.timeRange : parent.query.timeRange;
148
+ // An inherited relative range is already bound to the root plan's captured
149
+ // clock. Re-resolving "last month" during a later turn would silently change
150
+ // the analytical contract, so only an explicit time delta gets a new clock.
151
+ const timeBounds = delta.timeRange !== undefined
152
+ ? (timeRange ? resolvePlanTimeRange(timeRange, delta.referenceTime ?? new Date()) : undefined)
153
+ : parent.query.timeBounds;
154
+ const unresolved = [...measures, ...dimensions, ...filters.map((filter) => filter.binding)]
155
+ .filter((binding) => binding.status !== 'resolved');
156
+ const payload = {
157
+ ...parent,
158
+ parentPlanId: parent.planId,
159
+ rootPlanId: parent.rootPlanId ?? parent.planId,
160
+ revision: parent.revision + 1,
161
+ question: delta.question,
162
+ interpretedQuestion: delta.question,
163
+ capability: unresolved.length > 0 ? 'blocked' : parent.capability,
164
+ query: {
165
+ measures,
166
+ dimensions,
167
+ filters,
168
+ ...(timeRange ? { timeRange } : {}),
169
+ ...(timeBounds ? { timeBounds } : {}),
170
+ ...((delta.timeGrain ?? parent.query.timeGrain) ? { timeGrain: delta.timeGrain ?? parent.query.timeGrain } : {}),
171
+ ...((delta.order ?? parent.query.order) ? { order: delta.order ?? parent.query.order } : {}),
172
+ ...(delta.limit !== undefined || parent.query.limit !== undefined ? { limit: delta.limit ?? parent.query.limit } : {}),
173
+ },
174
+ outputContract: {
175
+ measures: uniqueSorted(measures.flatMap((binding) => binding.qualifiedId ? [binding.qualifiedId] : [binding.requested])),
176
+ dimensions: uniqueSorted(dimensions.flatMap((binding) => binding.qualifiedId ? [binding.qualifiedId] : [binding.requested])),
177
+ ...((delta.timeGrain ?? parent.query.timeGrain)
178
+ ? { timeGrain: delta.timeGrain ?? parent.query.timeGrain }
179
+ : {}),
180
+ ...((delta.analyticalFrame ?? parent.analyticalFrame)
181
+ ? {
182
+ fields: (delta.analyticalFrame ??
183
+ parent.analyticalFrame).requestedOutputs.map((output) => output.id),
184
+ periodIds: (delta.analyticalFrame ??
185
+ parent.analyticalFrame).timeContext?.periods.map((period) => period.id) ?? [],
186
+ }
187
+ : {}),
188
+ },
189
+ missingInformation: unresolved.length > 0
190
+ ? uniqueSorted([
191
+ ...parent.missingInformation,
192
+ ...unresolved.map((binding) => `${binding.requested} is ${binding.status}.`),
193
+ ])
194
+ : [...parent.missingInformation],
195
+ ...(delta.analyticalFrame
196
+ ? {
197
+ schemaVersion: 2,
198
+ analyticalFrame: structuredClone(delta.analyticalFrame),
199
+ }
200
+ : {}),
201
+ };
202
+ const { planId: _oldPlanId, fingerprint: _oldFingerprint, ...fingerprintPayload } = payload;
203
+ const fingerprint = sha256(stableStringify(fingerprintPayload));
204
+ return deepFreeze({
205
+ ...fingerprintPayload,
206
+ planId: `rap:${fingerprint.slice(0, 24)}`,
207
+ fingerprint,
208
+ });
209
+ }
210
+ function cloneBinding(binding) {
211
+ return { ...binding, candidateIds: [...binding.candidateIds] };
212
+ }
213
+ function cloneFilter(filter) {
214
+ return { ...filter, binding: cloneBinding(filter.binding) };
215
+ }
216
+ function bindRequestedMember(requested, candidates, kind) {
217
+ const normalized = normalize(requested);
218
+ const directCandidates = candidates.filter((candidate) => {
219
+ const kindMatches = kind === 'measure'
220
+ ? candidate.kind === 'semantic_metric' || candidate.kind === 'sql_column'
221
+ : candidate.kind === 'semantic_member' || candidate.kind === 'sql_column';
222
+ return kindMatches
223
+ && candidateTerms(candidate).some((term) => memberTermMatches(term, normalized));
224
+ });
225
+ const ids = uniqueSorted([
226
+ ...directCandidates.map((candidate) => candidate.qualifiedId ?? candidate.id),
227
+ ...(kind === 'dimension' ? candidates.flatMap((candidate) => (candidate.dimensions ?? []).filter((dimension) => {
228
+ const value = normalize(dimension);
229
+ return value === normalized || value.endsWith(` ${normalized}`);
230
+ }).map((dimension) => qualifyDeclaredDimension(candidate, dimension))) : []),
231
+ ]);
232
+ if (ids.length === 0 && kind === 'measure' && candidates.length === 1) {
233
+ const certified = candidates[0];
234
+ if (certified.kind === 'certified_block' && certified.compatibility === 'compatible') {
235
+ const id = certified.qualifiedId ?? certified.id;
236
+ return {
237
+ requested,
238
+ qualifiedId: id,
239
+ status: 'resolved',
240
+ candidateIds: [id],
241
+ };
242
+ }
243
+ }
244
+ const direct = ids.length === 1
245
+ ? directCandidates.find((candidate) => (candidate.qualifiedId ?? candidate.id) === ids[0])
246
+ : undefined;
247
+ return {
248
+ requested,
249
+ ...(ids.length === 1 ? { qualifiedId: ids[0] } : {}),
250
+ ...(direct?.aggregation ? { aggregation: direct.aggregation } : {}),
251
+ status: ids.length === 1 ? 'resolved' : ids.length > 1 ? 'ambiguous' : 'unresolved',
252
+ candidateIds: ids,
253
+ };
254
+ }
255
+ function qualifyDeclaredDimension(candidate, dimension) {
256
+ if (/[:./]/.test(dimension) || !candidate.domain)
257
+ return dimension;
258
+ const domain = candidate.domain.toLowerCase().replace(/[^a-z0-9_-]+/g, '_');
259
+ const local = dimension.toLowerCase().replace(/[^a-z0-9_-]+/g, '_');
260
+ return `semantic:${domain}:dimension:${local}`;
261
+ }
262
+ function resolutionUsesRelationalEvidence(resolution) {
263
+ return resolution.recommendedRoute === 'governed_sql' || resolution.recommendedRoute === 'exploratory';
264
+ }
265
+ function memberTermMatches(candidateTerm, requested) {
266
+ if (candidateTerm === requested || candidateTerm.endsWith(` ${requested}`))
267
+ return true;
268
+ if (!requested)
269
+ return false;
270
+ return ` ${candidateTerm} `.includes(` ${requested} `);
271
+ }
272
+ function candidateTerms(candidate) {
273
+ return [candidate.name, ...(candidate.aliases ?? []), candidate.qualifiedId ?? '', candidate.id]
274
+ .map(normalize)
275
+ .filter(Boolean);
276
+ }
277
+ function resolveCapability(resolution, execution, measures, dimensions, filters) {
278
+ if (resolution.confidence === "low" ||
279
+ resolution.recommendedRoute === "clarify" ||
280
+ !execution ||
281
+ Boolean(resolution.analyticalFrame?.ambiguity.length))
282
+ return "blocked";
283
+ if (((measures.some((binding) => binding.status !== "resolved") &&
284
+ resolution.queryIntent.measures.length > 0) ||
285
+ (dimensions.some((binding) => binding.status !== "resolved") &&
286
+ resolution.queryIntent.dimensions.length > 0)) &&
287
+ (resolution.recommendedRoute === "certified" ||
288
+ resolution.recommendedRoute === "semantic"))
289
+ return "blocked";
290
+ if (filters.some((filter) => filter.binding.status !== "resolved") &&
291
+ (resolution.recommendedRoute === "certified" ||
292
+ resolution.recommendedRoute === "semantic"))
293
+ return "blocked";
294
+ if (execution.compatibility === "incompatible")
295
+ return "blocked";
296
+ if (resolution.recommendedRoute === "certified" &&
297
+ execution.kind === "certified_block" &&
298
+ execution.compatibility === "compatible") {
299
+ return "certified_execution";
300
+ }
301
+ if (resolution.recommendedRoute === 'semantic'
302
+ && (execution.kind === 'semantic_metric' || execution.kind === 'semantic_member')
303
+ && execution.compatibility === 'compatible')
304
+ return 'semantic_execution';
305
+ if (resolution.recommendedRoute === 'governed_sql')
306
+ return 'governed_relational';
307
+ if (resolution.recommendedRoute === 'exploratory')
308
+ return 'bounded_exploration';
309
+ return 'blocked';
310
+ }
311
+ function normalize(value) {
312
+ return value.toLowerCase().replace(/[_./:-]+/g, ' ').replace(/[^a-z0-9 ]+/g, ' ').replace(/\s+/g, ' ').trim();
313
+ }
314
+ /** Resolve common analytical ranges once so no executor reinterprets "last month". */
315
+ export function resolvePlanTimeRange(expression, referenceTime) {
316
+ const text = expression.trim().toLowerCase();
317
+ const reference = new Date(Date.UTC(referenceTime.getUTCFullYear(), referenceTime.getUTCMonth(), referenceTime.getUTCDate()));
318
+ const explicit = /^(\d{4}-\d{2}-\d{2})\s+(?:to|through)\s+(\d{4}-\d{2}-\d{2})$/.exec(text);
319
+ if (explicit) {
320
+ const start = new Date(`${explicit[1]}T00:00:00.000Z`);
321
+ const inclusiveEnd = new Date(`${explicit[2]}T00:00:00.000Z`);
322
+ if (!Number.isNaN(start.valueOf()) && !Number.isNaN(inclusiveEnd.valueOf()) && start <= inclusiveEnd) {
323
+ inclusiveEnd.setUTCDate(inclusiveEnd.getUTCDate() + 1);
324
+ return temporalBounds(expression, start, inclusiveEnd);
325
+ }
326
+ }
327
+ const match = /^(?:the\s+)?(last|this)\s+(?:(\d+)\s+)?(day|week|month|quarter|year)s?$/.exec(text);
328
+ if (!match)
329
+ return undefined;
330
+ const mode = match[1];
331
+ const count = Math.max(1, Number(match[2] ?? 1));
332
+ const unit = match[3];
333
+ if (mode === 'this') {
334
+ const start = startOfUnit(reference, unit);
335
+ return temporalBounds(expression, start, addUnits(start, unit, count));
336
+ }
337
+ if (match[2])
338
+ return temporalBounds(expression, addUnits(reference, unit, -count), reference);
339
+ const end = startOfUnit(reference, unit);
340
+ return temporalBounds(expression, addUnits(end, unit, -1), end);
341
+ }
342
+ function temporalBounds(expression, start, end) {
343
+ return {
344
+ expression,
345
+ startInclusive: start.toISOString(),
346
+ endExclusive: end.toISOString(),
347
+ timeZone: 'UTC',
348
+ };
349
+ }
350
+ function startOfUnit(value, unit) {
351
+ const out = new Date(value);
352
+ if (unit === 'year')
353
+ out.setUTCMonth(0, 1);
354
+ else if (unit === 'quarter')
355
+ out.setUTCMonth(Math.floor(out.getUTCMonth() / 3) * 3, 1);
356
+ else if (unit === 'month')
357
+ out.setUTCDate(1);
358
+ else if (unit === 'week')
359
+ out.setUTCDate(out.getUTCDate() - ((out.getUTCDay() + 6) % 7));
360
+ return out;
361
+ }
362
+ function addUnits(value, unit, count) {
363
+ const out = new Date(value);
364
+ if (unit === 'year')
365
+ out.setUTCFullYear(out.getUTCFullYear() + count);
366
+ else if (unit === 'quarter')
367
+ out.setUTCMonth(out.getUTCMonth() + count * 3);
368
+ else if (unit === 'month')
369
+ out.setUTCMonth(out.getUTCMonth() + count);
370
+ else if (unit === 'week')
371
+ out.setUTCDate(out.getUTCDate() + count * 7);
372
+ else
373
+ out.setUTCDate(out.getUTCDate() + count);
374
+ return out;
375
+ }
376
+ function uniqueSorted(values) {
377
+ return [...new Set(values.filter(Boolean))].sort();
378
+ }
379
+ function sha256(value) {
380
+ return createHash('sha256').update(value).digest('hex');
381
+ }
382
+ function stableStringify(value) {
383
+ if (value === undefined || value === null)
384
+ return 'null';
385
+ if (typeof value !== 'object')
386
+ return JSON.stringify(value);
387
+ if (Array.isArray(value))
388
+ return `[${value.map(stableStringify).join(',')}]`;
389
+ const record = value;
390
+ return `{${Object.keys(record).sort().map((key) => `${JSON.stringify(key)}:${stableStringify(record[key])}`).join(',')}}`;
391
+ }
392
+ function deepFreeze(value) {
393
+ if (!value || typeof value !== 'object' || Object.isFrozen(value))
394
+ return value;
395
+ Object.freeze(value);
396
+ for (const nested of Object.values(value))
397
+ deepFreeze(nested);
398
+ return value;
399
+ }
400
+ //# sourceMappingURL=resolved-analytical-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolved-analytical-plan.js","sourceRoot":"","sources":["../src/resolved-analytical-plan.ts"],"names":[],"mappings":"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"}
package/dist/router.d.ts CHANGED
@@ -17,6 +17,7 @@
17
17
  import type { AgentRunRequest, AgentRouter } from "./agent-run-engine.js";
18
18
  import type { MetadataAgentIntent } from "./metadata/catalog.js";
19
19
  import { type AgentMeaningResolver, type AgentRetrievalEvidence, type MeaningResolution } from "./meaning-resolution.js";
20
+ import { type ResolvedAnalyticalPlan } from "./resolved-analytical-plan.js";
20
21
  /** The router's fine-grained classification of a turn. */
21
22
  export interface RouterClassification {
22
23
  category: "conversational" | "capability" | "general_knowledge" | "data_lookup" | "data_analysis" | "authoring" | "app" | "unclear";
@@ -45,6 +46,8 @@ export interface HybridRouterOptions {
45
46
  resolveMeaning?: AgentMeaningResolver;
46
47
  /** Maximum candidate cards sent to meaning resolution. Default 12. */
47
48
  maxMeaningCandidates?: number;
49
+ /** Authoritative by default; `shadow` is the bounded rollback switch. */
50
+ resolvedPlanMode?: ResolvedAnalyticalPlan['mode'];
48
51
  /** Deterministic confidence at/above which the LLM is never called. Default 0.7. */
49
52
  llmThreshold?: number;
50
53
  /** Max cached classifications. Default 200. */
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAQL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAE3B,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EACJ,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,aAAa,GACb,eAAe,GACf,WAAW,GACX,KAAK,GACL,SAAS,CAAC;IACd,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mGAAmG;AACnG,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEtB,MAAM,WAAW,mBAAmB;IAClC,gGAAgG;IAChG,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,+FAA+F;IAC/F,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3E;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,sBAAsB,GAAG,SAAS,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;IAC7H,iFAAiF;IACjF,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAWD;;;;GAIG;AACH,iBAAS,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,GAAG,mBAAmB,GAAG,SAAS,CAWtG;AAkOD,iBAAS,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CA4D1E;AAwND;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,WAAW,CAmLjF;AAED,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAQL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAE3B,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,+BAA+B,CAAC;AAOvC,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EACJ,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,aAAa,GACb,eAAe,GACf,WAAW,GACX,KAAK,GACL,SAAS,CAAC;IACd,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mGAAmG;AACnG,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEtB,MAAM,WAAW,mBAAmB;IAClC,gGAAgG;IAChG,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,+FAA+F;IAC/F,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3E;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,sBAAsB,GAAG,SAAS,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;IAC7H,iFAAiF;IACjF,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAClD,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAWD;;;;GAIG;AACH,iBAAS,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,GAAG,mBAAmB,GAAG,SAAS,CAWtG;AAoOD,iBAAS,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAuE1E;AA+ZD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,WAAW,CA8MjF;AAED,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,CAAC"}