@duckcodeailabs/dql-agent 1.13.5 → 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 (158) hide show
  1. package/dist/agent-run-engine.d.ts +79 -4
  2. package/dist/agent-run-engine.d.ts.map +1 -1
  3. package/dist/agent-run-engine.js +457 -39
  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/agent-run-store.d.ts.map +1 -1
  9. package/dist/agent-run-store.js +42 -25
  10. package/dist/agent-run-store.js.map +1 -1
  11. package/dist/agentic/analyst-loop.d.ts +91 -0
  12. package/dist/agentic/analyst-loop.d.ts.map +1 -0
  13. package/dist/agentic/analyst-loop.js +311 -0
  14. package/dist/agentic/analyst-loop.js.map +1 -0
  15. package/dist/agentic/assumptions.d.ts +62 -0
  16. package/dist/agentic/assumptions.d.ts.map +1 -0
  17. package/dist/agentic/assumptions.js +73 -0
  18. package/dist/agentic/assumptions.js.map +1 -0
  19. package/dist/agentic/business-explanation.d.ts +56 -0
  20. package/dist/agentic/business-explanation.d.ts.map +1 -0
  21. package/dist/agentic/business-explanation.js +130 -0
  22. package/dist/agentic/business-explanation.js.map +1 -0
  23. package/dist/agentic/identifier-ledger.d.ts +74 -0
  24. package/dist/agentic/identifier-ledger.d.ts.map +1 -0
  25. package/dist/agentic/identifier-ledger.js +151 -0
  26. package/dist/agentic/identifier-ledger.js.map +1 -0
  27. package/dist/agentic/ledger-tools.d.ts +68 -0
  28. package/dist/agentic/ledger-tools.d.ts.map +1 -0
  29. package/dist/agentic/ledger-tools.js +198 -0
  30. package/dist/agentic/ledger-tools.js.map +1 -0
  31. package/dist/agentic/orchestrator-policy.d.ts +60 -0
  32. package/dist/agentic/orchestrator-policy.d.ts.map +1 -0
  33. package/dist/agentic/orchestrator-policy.js +73 -0
  34. package/dist/agentic/orchestrator-policy.js.map +1 -0
  35. package/dist/agentic/orchestrator.d.ts +54 -0
  36. package/dist/agentic/orchestrator.d.ts.map +1 -0
  37. package/dist/agentic/orchestrator.js +67 -0
  38. package/dist/agentic/orchestrator.js.map +1 -0
  39. package/dist/agentic/preview-tool.d.ts +36 -0
  40. package/dist/agentic/preview-tool.d.ts.map +1 -0
  41. package/dist/agentic/preview-tool.js +71 -0
  42. package/dist/agentic/preview-tool.js.map +1 -0
  43. package/dist/agentic/rerank.d.ts +50 -0
  44. package/dist/agentic/rerank.d.ts.map +1 -0
  45. package/dist/agentic/rerank.js +140 -0
  46. package/dist/agentic/rerank.js.map +1 -0
  47. package/dist/agentic/research/hypothesis.d.ts +110 -0
  48. package/dist/agentic/research/hypothesis.d.ts.map +1 -0
  49. package/dist/agentic/research/hypothesis.js +125 -0
  50. package/dist/agentic/research/hypothesis.js.map +1 -0
  51. package/dist/agentic/research/synthesis.d.ts +32 -0
  52. package/dist/agentic/research/synthesis.d.ts.map +1 -0
  53. package/dist/agentic/research/synthesis.js +94 -0
  54. package/dist/agentic/research/synthesis.js.map +1 -0
  55. package/dist/agentic/research-agent.d.ts +54 -0
  56. package/dist/agentic/research-agent.d.ts.map +1 -0
  57. package/dist/agentic/research-agent.js +176 -0
  58. package/dist/agentic/research-agent.js.map +1 -0
  59. package/dist/agentic/sql-authorization.d.ts +131 -0
  60. package/dist/agentic/sql-authorization.d.ts.map +1 -0
  61. package/dist/agentic/sql-authorization.js +232 -0
  62. package/dist/agentic/sql-authorization.js.map +1 -0
  63. package/dist/agentic/tool-loop.d.ts +29 -0
  64. package/dist/agentic/tool-loop.d.ts.map +1 -1
  65. package/dist/agentic/tool-loop.js +129 -52
  66. package/dist/agentic/tool-loop.js.map +1 -1
  67. package/dist/agentic/toolset.d.ts.map +1 -1
  68. package/dist/agentic/toolset.js +155 -0
  69. package/dist/agentic/toolset.js.map +1 -1
  70. package/dist/agentic/turn-plan.d.ts +35 -0
  71. package/dist/agentic/turn-plan.d.ts.map +1 -0
  72. package/dist/agentic/turn-plan.js +108 -0
  73. package/dist/agentic/turn-plan.js.map +1 -0
  74. package/dist/agentic/value-probe.d.ts +89 -0
  75. package/dist/agentic/value-probe.d.ts.map +1 -0
  76. package/dist/agentic/value-probe.js +304 -0
  77. package/dist/agentic/value-probe.js.map +1 -0
  78. package/dist/analytical-orchestration.d.ts +336 -0
  79. package/dist/analytical-orchestration.d.ts.map +1 -0
  80. package/dist/analytical-orchestration.js +631 -0
  81. package/dist/analytical-orchestration.js.map +1 -0
  82. package/dist/analytical-request-policy.d.ts +26 -0
  83. package/dist/analytical-request-policy.d.ts.map +1 -0
  84. package/dist/analytical-request-policy.js +82 -0
  85. package/dist/analytical-request-policy.js.map +1 -0
  86. package/dist/analytical-result-facts.d.ts +14 -1
  87. package/dist/analytical-result-facts.d.ts.map +1 -1
  88. package/dist/analytical-result-facts.js +76 -1
  89. package/dist/analytical-result-facts.js.map +1 -1
  90. package/dist/answer-loop.d.ts +61 -16
  91. package/dist/answer-loop.d.ts.map +1 -1
  92. package/dist/answer-loop.js +256 -36
  93. package/dist/answer-loop.js.map +1 -1
  94. package/dist/cascade/budgets.d.ts.map +1 -1
  95. package/dist/cascade/budgets.js +8 -1
  96. package/dist/cascade/budgets.js.map +1 -1
  97. package/dist/cascade/packer.d.ts +88 -0
  98. package/dist/cascade/packer.d.ts.map +1 -0
  99. package/dist/cascade/packer.js +106 -0
  100. package/dist/cascade/packer.js.map +1 -0
  101. package/dist/conversation/result-ops.d.ts +18 -3
  102. package/dist/conversation/result-ops.d.ts.map +1 -1
  103. package/dist/conversation/result-ops.js +77 -5
  104. package/dist/conversation/result-ops.js.map +1 -1
  105. package/dist/conversation/rolling-summary.d.ts.map +1 -1
  106. package/dist/conversation/rolling-summary.js +7 -2
  107. package/dist/conversation/rolling-summary.js.map +1 -1
  108. package/dist/conversation/session-store.d.ts +3 -0
  109. package/dist/conversation/session-store.d.ts.map +1 -1
  110. package/dist/conversation/session-store.js +8 -4
  111. package/dist/conversation/session-store.js.map +1 -1
  112. package/dist/conversation/snapshot.d.ts.map +1 -1
  113. package/dist/conversation/snapshot.js +13 -1
  114. package/dist/conversation/snapshot.js.map +1 -1
  115. package/dist/conversation/turn-trust.d.ts.map +1 -1
  116. package/dist/conversation/turn-trust.js +6 -0
  117. package/dist/conversation/turn-trust.js.map +1 -1
  118. package/dist/hints/store.d.ts.map +1 -1
  119. package/dist/hints/store.js +15 -5
  120. package/dist/hints/store.js.map +1 -1
  121. package/dist/index.d.ts +27 -5
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +28 -4
  124. package/dist/index.js.map +1 -1
  125. package/dist/intent-controller.d.ts +8 -0
  126. package/dist/intent-controller.d.ts.map +1 -1
  127. package/dist/intent-controller.js +65 -0
  128. package/dist/intent-controller.js.map +1 -1
  129. package/dist/meaning-resolution.d.ts +7 -0
  130. package/dist/meaning-resolution.d.ts.map +1 -1
  131. package/dist/meaning-resolution.js.map +1 -1
  132. package/dist/metadata/block-fit.d.ts +18 -0
  133. package/dist/metadata/block-fit.d.ts.map +1 -1
  134. package/dist/metadata/block-fit.js +41 -1
  135. package/dist/metadata/block-fit.js.map +1 -1
  136. package/dist/metadata/catalog.d.ts +44 -23
  137. package/dist/metadata/catalog.d.ts.map +1 -1
  138. package/dist/metadata/catalog.js +363 -53
  139. package/dist/metadata/catalog.js.map +1 -1
  140. package/dist/metadata/meaning-evidence.d.ts.map +1 -1
  141. package/dist/metadata/meaning-evidence.js +101 -8
  142. package/dist/metadata/meaning-evidence.js.map +1 -1
  143. package/dist/metadata/metric-match.d.ts +32 -0
  144. package/dist/metadata/metric-match.d.ts.map +1 -1
  145. package/dist/metadata/metric-match.js +120 -9
  146. package/dist/metadata/metric-match.js.map +1 -1
  147. package/dist/research-loop.d.ts +33 -2
  148. package/dist/research-loop.d.ts.map +1 -1
  149. package/dist/research-loop.js +44 -4
  150. package/dist/research-loop.js.map +1 -1
  151. package/dist/resolved-analytical-plan.d.ts.map +1 -1
  152. package/dist/resolved-analytical-plan.js +92 -5
  153. package/dist/resolved-analytical-plan.js.map +1 -1
  154. package/dist/router.d.ts +36 -16
  155. package/dist/router.d.ts.map +1 -1
  156. package/dist/router.js +604 -25
  157. package/dist/router.js.map +1 -1
  158. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"answer-loop.d.ts","sourceRoot":"","sources":["../src/answer-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"answer-loop.d.ts","sourceRoot":"","sources":["../src/answer-loop.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { packContext } from './cascade/packer.js';
1
2
  /**
2
3
  * Dynamic-first governed answer loop.
3
4
  *
@@ -26,7 +27,7 @@ import { domainContextSearchDomains } from './domain-context.js';
26
27
  import { deriveGeneratedDraftSlug, renderGeneratedSqlDqlArtifact } from './metadata/drafts.js';
27
28
  import { buildAnalysisQuestionPlan } from './metadata/analysis-planner.js';
28
29
  import { certifiedFitAllowsTier1, certifiedTerminationVerdict, evaluateCertifiedBlockFit } from './metadata/block-fit.js';
29
- import { buildGovernedMetricFirstSql, matchSemanticMetric, resolveGovernedMetricDefinition, resolveGovernedMetricSql } from './metadata/metric-match.js';
30
+ import { buildGovernedMetricFirstSql, matchSemanticMetric, resolveGovernedMetricDefinition, resolveGovernedMetricSql, semanticMetricEmbeddingOptions } from './metadata/metric-match.js';
30
31
  import { decideAgentAction } from './intent-controller.js';
31
32
  import { createContextLedger } from './grounding/context-ledger.js';
32
33
  import { validateAnswerResultShape } from './answer-shape.js';
@@ -421,7 +422,35 @@ const MANIFEST_KINDS = ['dbt_model', 'dbt_source'];
421
422
  * surface shows THIS; the validator's machine message (relation ids, repair
422
423
  * tool guidance) belongs in refusalDetails/validationWarnings only.
423
424
  */
424
- function renderContextValidationRefusalForUser(code, machineError, memberBindings) {
425
+ /**
426
+ * Name the ONE aggregation check that actually fired.
427
+ *
428
+ * The refusal used to list all four possible causes — "rounding too early,
429
+ * losing decimal precision, summing a non-additive value, or multiplying rows
430
+ * across a join" — because the specific one was never plumbed into the message.
431
+ * The system knows: `aggregationIntegrityIssuesForSql` classifies each issue and
432
+ * the proof carries the codes. A menu of four causes reads as "something is
433
+ * wrong somewhere", which is exactly the report a user cannot act on.
434
+ */
435
+ function aggregationRefusalReason(issueCodes = []) {
436
+ const codes = new Set(issueCodes.map((code) => code.toUpperCase()));
437
+ // Ordered by how badly each distorts the number, so a query tripping several
438
+ // leads with the one that matters most.
439
+ if (codes.has('FANOUT')) {
440
+ return 'joining those tables multiplies rows, so the total would be inflated. Aggregate at the row-level grain first, then join';
441
+ }
442
+ if (codes.has('NON_ADDITIVE_MEASURE')) {
443
+ return 'it sums a measure that is not additive (an average or a ratio cannot be added up). Ask for the governed metric, which carries the right rule';
444
+ }
445
+ if (codes.has('PREMATURE_ROUNDING')) {
446
+ return 'it rounds each value before adding them, which loses money at scale. Rounding belongs on the final total';
447
+ }
448
+ if (codes.has('LOSSY_NUMERIC_CAST')) {
449
+ return 'it converts amounts to floating point before adding them, which drifts on decimal currency';
450
+ }
451
+ return undefined;
452
+ }
453
+ export function renderContextValidationRefusalForUser(code, machineError, memberBindings, aggregationIssueCodes) {
425
454
  switch (code) {
426
455
  case 'unknown_relation':
427
456
  return 'I drafted a query, but it uses a table that was not part of the metadata retrieved for this question, so I did not run it. Ask again (retrieval usually finds it on a follow-up), name the table or metric explicitly, or re-sync the dbt metadata.';
@@ -438,8 +467,15 @@ function renderContextValidationRefusalForUser(code, machineError, memberBinding
438
467
  return 'This comparison needs a baseline period or value that the drafted query did not include. Say what to compare against (for example, the prior month) and I will run it.';
439
468
  case 'unsafe_sql':
440
469
  return 'The drafted query used a statement type that is not allowed in this governed preview, so I did not run it.';
441
- case 'unsafe_aggregation':
442
- return 'I drafted a query, but it could change the metric meaning by rounding too early, losing decimal precision, summing a non-additive value, or multiplying rows across a join. I did not run it. Use the governed semantic metric, or review the native grain and join keys before retrying.';
470
+ case 'unsafe_aggregation': {
471
+ const reason = aggregationRefusalReason(aggregationIssueCodes);
472
+ if (reason) {
473
+ return `I drafted a query but did not run it, because ${reason}. Ask for the governed metric and I will use the safe version.`;
474
+ }
475
+ // No classified code reached us — say that plainly rather than listing
476
+ // every cause as if one of them were known to apply.
477
+ return 'I drafted a query, but it would change how the metric is calculated, so I did not run it. Ask for the governed semantic metric and I will use the safe version.';
478
+ }
443
479
  case 'insufficient_context':
444
480
  if (/could not be parsed|parse error|syntax/i.test(machineError)) {
445
481
  return 'I drafted a query, but its SQL syntax did not match the connected warehouse, so I did not run it. The failed draft is available in Inspect; retrying will generate a warehouse-specific query.';
@@ -601,7 +637,10 @@ function tryCrossResultAnswer(input) {
601
637
  const prior = input.followUp?.priorResult;
602
638
  if (!prior || !Array.isArray(prior.rows) || prior.rows.length === 0)
603
639
  return null;
604
- const op = detectResultSetOperation(input.question);
640
+ // Pass the prior result's shape so a follow-up that names one of its columns
641
+ // ("what's the average lifetime_spend?") is recognised without requiring a
642
+ // demonstrative pronoun.
643
+ const op = detectResultSetOperation(input.question, prior);
605
644
  if (!op)
606
645
  return null;
607
646
  const computed = computeResultSetOperation(op, prior);
@@ -696,6 +735,10 @@ async function freezeLegacySemanticSelection(input) {
696
735
  const match = await matchSemanticMetric(input.question, metricNodes, {
697
736
  measureTerms: [...questionPlan.requestedShape.measures, ...questionPlan.metricTerms],
698
737
  ...(semanticLayer ? { canExecute: (name) => semanticLayer.canComposeMetric(name) } : {}),
738
+ ...(snapshotVectorMetricShortlist(input.contextPack).length
739
+ ? { vectorMetricShortlist: snapshotVectorMetricShortlist(input.contextPack) }
740
+ : {}),
741
+ ...semanticMetricEmbeddingOptions(input.embeddingProvider),
699
742
  }).catch(() => null);
700
743
  if (!match)
701
744
  return undefined;
@@ -813,6 +856,26 @@ async function freezeLegacySemanticSelection(input) {
813
856
  mode: 'authoritative',
814
857
  });
815
858
  }
859
+ /**
860
+ * Reuse the immutable context pack's independent vector lane. Metric matching
861
+ * never opens the catalog or runs a second metadata retrieval pass; it only
862
+ * narrows its vector-only candidate admission to IDs already retrieved for this
863
+ * request snapshot.
864
+ */
865
+ function snapshotVectorMetricShortlist(contextPack) {
866
+ const lane = contextPack?.retrievalDiagnostics.lanes?.find((item) => item.lane === 'vector');
867
+ if (!lane?.candidates.length || !contextPack)
868
+ return [];
869
+ const objects = new Map(contextPack.objects.map((object) => [object.objectKey, object]));
870
+ const result = [];
871
+ for (const candidate of lane.candidates) {
872
+ const object = objects.get(candidate.objectKey);
873
+ if (!object || (object.objectType !== 'semantic_metric' && object.objectType !== 'semantic_measure'))
874
+ continue;
875
+ result.push(candidate.objectKey, object.name);
876
+ }
877
+ return [...new Set(result)];
878
+ }
816
879
  export async function answer(input) {
817
880
  const inheritedPlan = !input.resolvedAnalyticalPlan
818
881
  && input.followUp?.priorResolvedAnalyticalPlan
@@ -1543,6 +1606,10 @@ async function runAnswerLoop(input) {
1543
1606
  : await matchSemanticMetric(semanticQuestion, semanticMetricNodes, {
1544
1607
  measureTerms: [...questionPlan.requestedShape.measures, ...questionPlan.metricTerms],
1545
1608
  ...(canExecuteSemanticMetricForMatch ? { canExecute: canExecuteSemanticMetricForMatch } : {}),
1609
+ ...(snapshotVectorMetricShortlist(input.contextPack).length
1610
+ ? { vectorMetricShortlist: snapshotVectorMetricShortlist(input.contextPack) }
1611
+ : {}),
1612
+ ...semanticMetricEmbeddingOptions(input.embeddingProvider),
1546
1613
  }).catch(() => null);
1547
1614
  // Stage 1: certified artifact match. Blocks can be executed; dashboards,
1548
1615
  // Apps, and notebooks are returned as governed citations/navigation targets.
@@ -1942,6 +2009,13 @@ async function runAnswerLoop(input) {
1942
2009
  ?? renderSingleEntityModelingPrompt(analyticalPlan, input.manifest);
1943
2010
  if (analyticalPlanPrompt)
1944
2011
  messages.push({ role: 'system', content: analyticalPlanPrompt });
2012
+ const attributeLookup = isMetricIndependentAttributeLookup(question, questionPlan, input.followUp);
2013
+ if (attributeLookup) {
2014
+ messages.push({
2015
+ role: 'system',
2016
+ content: renderAttributeLookupInstruction(questionPlan, input.followUp),
2017
+ });
2018
+ }
1945
2019
  if (questionDomainScope.length > 0) {
1946
2020
  messages.push({
1947
2021
  role: 'system',
@@ -2310,7 +2384,18 @@ async function runAnswerLoop(input) {
2310
2384
  onCompiled: (record) => compiledSemanticRecords.push(record),
2311
2385
  }),
2312
2386
  ];
2313
- if (semanticBridgeAnswer) {
2387
+ if (input.forcedGeneratedProposal) {
2388
+ // The analyst loop already did its provider/tool work. Re-entering ordinary
2389
+ // generation here would create a second proposal whose SQL is not covered
2390
+ // by the request-scoped execution capability.
2391
+ parsed = {
2392
+ sql: input.forcedGeneratedProposal.sql,
2393
+ text: input.forcedGeneratedProposal.summary
2394
+ ?? 'Prepared from identifiers observed during this bounded analyst run. Review-required until an analyst promotes it.',
2395
+ ...(input.forcedGeneratedProposal.suggestedViz ? { viz: input.forcedGeneratedProposal.suggestedViz } : {}),
2396
+ };
2397
+ }
2398
+ else if (semanticBridgeAnswer) {
2314
2399
  governedMetricAnswer = true;
2315
2400
  parsed = {
2316
2401
  sql: semanticBridgeAnswer.sql,
@@ -2415,12 +2500,21 @@ async function runAnswerLoop(input) {
2415
2500
  const budgetCode = err && typeof err === 'object' && 'code' in err
2416
2501
  ? String(err.code)
2417
2502
  : '';
2503
+ // Admission control is NOT an exhausted clock. `RUN_DEADLINE_INSUFFICIENT`
2504
+ // means DQL declined to START a call it predicted would not fit in the
2505
+ // remaining budget — it can fire seconds into a run, and a compound turn's
2506
+ // second task hit it after 6.4s of a 45s budget. Sharing the "stopped at
2507
+ // its own time budget" wording with the genuine soft-target codes told the
2508
+ // reader the run ran out of time when most of it remained, sending them to
2509
+ // debug latency instead of the estimate.
2510
+ const admissionDeclined = budgetCode === 'RUN_DEADLINE_INSUFFICIENT';
2418
2511
  const orchestrationBudget = budgetCode === 'RUN_SOFT_TARGET_EXCEEDED'
2419
- || budgetCode === 'PROVIDER_DISPATCH_BUDGET_EXHAUSTED'
2420
- || budgetCode === 'RUN_DEADLINE_INSUFFICIENT';
2421
- const text = orchestrationBudget
2422
- ? 'DQL stopped this run at its own time budget before the query could be settled. The AI provider did not fail. Retry, or use Research for a longer budget.'
2423
- : `Provider error: ${err.message}`;
2512
+ || budgetCode === 'PROVIDER_DISPATCH_BUDGET_EXHAUSTED';
2513
+ const text = admissionDeclined
2514
+ ? `DQL did not start another AI call because it estimated the call would not finish inside this run's remaining budget, so the run stopped early rather than mid-flight. The AI provider did not fail and the time limit was not necessarily reached. ${err.message} Retry, or use Research for a longer budget.`
2515
+ : orchestrationBudget
2516
+ ? 'DQL stopped this run at its own time budget before the query could be settled. The AI provider did not fail. Retry, or use Research for a longer budget.'
2517
+ : `Provider error: ${err.message}`;
2424
2518
  return {
2425
2519
  kind: 'no_answer',
2426
2520
  sourceTier: 'no_answer',
@@ -2487,7 +2581,7 @@ async function runAnswerLoop(input) {
2487
2581
  let deepCandidateResult;
2488
2582
  let deepCandidateExecutionError;
2489
2583
  let deepCandidateNotes = [];
2490
- if (!governedMetricAnswer && input.analysisDepth === 'deep' && parsed.sql) {
2584
+ if (!input.forcedGeneratedProposal && !governedMetricAnswer && input.analysisDepth === 'deep' && parsed.sql) {
2491
2585
  const selection = await selectDeepGeneratedProposalCandidate({
2492
2586
  provider,
2493
2587
  messages,
@@ -2605,7 +2699,9 @@ async function runAnswerLoop(input) {
2605
2699
  ? analyticalPlan.userFacingReason
2606
2700
  ?? analyticalPolicyUserFacingReason(analyticalPlan.code ?? 'unsafe_relationship', analyticalPlan.entities)
2607
2701
  : declinedDespiteContext
2608
- ? 'I could not compose a governed query for this from the available tables and metrics. This usually needs a clearer join path or an explicit metric and grouping — name the specific measure and how to break it down, and I can generate a review-required draft.'
2702
+ ? attributeLookup
2703
+ ? 'I could not resolve the requested attribute from the available metadata. I preserved the conversation member, but the inspected models do not prove a relationship to that attribute. Tell me the exact field or table, or re-sync the dbt metadata, and I can prepare a review-required lookup.'
2704
+ : 'I could not compose a governed query for this from the available tables and metrics. This usually needs a clearer join path or an explicit metric and grouping — name the specific measure and how to break it down, and I can generate a review-required draft.'
2609
2705
  : parsed.text || 'No answer (the model declined to propose SQL).';
2610
2706
  return {
2611
2707
  kind: 'no_answer',
@@ -2687,7 +2783,12 @@ async function runAnswerLoop(input) {
2687
2783
  };
2688
2784
  }
2689
2785
  }
2690
- const tightenedFlow = tightenSourceTargetFlowProjection(parsed.sql, question, questionPlan);
2786
+ // The analyst capability binds the exact composed bytes. Any projection
2787
+ // tightening is a new SQL proposal and therefore must wait for a fresh
2788
+ // analyst pass/capability rather than silently rewriting this one.
2789
+ const tightenedFlow = input.forcedGeneratedProposal
2790
+ ? undefined
2791
+ : tightenSourceTargetFlowProjection(parsed.sql, question, questionPlan);
2691
2792
  if (tightenedFlow && tightenedFlow.sql !== parsed.sql) {
2692
2793
  parsed.sql = tightenedFlow.sql;
2693
2794
  parsed.outputs = tightenedFlow.outputs;
@@ -2705,7 +2806,7 @@ async function runAnswerLoop(input) {
2705
2806
  // model emitted to its real warehouse relation from the runtime schema BEFORE
2706
2807
  // governance validation. Same resolver the build path uses — one grounding,
2707
2808
  // no weak path. `allowedSqlContext` relations are already qualified.
2708
- if (parsed.sql) {
2809
+ if (parsed.sql && !input.forcedGeneratedProposal) {
2709
2810
  parsed.sql = contextLedger.qualifySql(parsed.sql).sql;
2710
2811
  }
2711
2812
  // Validation gate. Governed metric SQL synthesized from the semantic layer is
@@ -2822,7 +2923,8 @@ async function runAnswerLoop(input) {
2822
2923
  // that predicate entirely, inject it deterministically before spending the
2823
2924
  // bounded AI validation repair. Misbound or ambiguous predicates are never
2824
2925
  // rewritten here; they continue through the guarded correction/refusal path.
2825
- if (!contextValidation.ok
2926
+ if (!input.forcedGeneratedProposal
2927
+ && !contextValidation.ok
2826
2928
  && contextValidation.code === 'misbound_filter'
2827
2929
  && !contextValidation.offending?.relation
2828
2930
  && !contextValidation.offending?.column
@@ -2874,7 +2976,8 @@ async function runAnswerLoop(input) {
2874
2976
  // stands instead of guessing a measure.
2875
2977
  // 2) Otherwise fall back to a CLEAN governed-metric definition (direct or exact
2876
2978
  // leaf-measure; no fuzzy family guess that could answer the wrong measure).
2877
- if (!contextValidation.ok && contextValidation.code !== 'unsafe_aggregation' && semanticMetricRoute && semanticMetricMatch && !rankedGrainGap) {
2979
+ if (!input.forcedGeneratedProposal
2980
+ && !contextValidation.ok && contextValidation.code !== 'unsafe_aggregation' && semanticMetricRoute && semanticMetricMatch && !rankedGrainGap) {
2878
2981
  const grounded = contextLedger.validateRuntimeGrounding(parsed.sql);
2879
2982
  // Runtime grounding proves that relations and columns exist; it cannot prove
2880
2983
  // that a resolved business member was bound to the right dimension. Never
@@ -2904,7 +3007,8 @@ async function runAnswerLoop(input) {
2904
3007
  // nothing, or found the table and something else rejected the SQL — which are
2905
3008
  // three different fixes.
2906
3009
  let regroundDiagnostic;
2907
- if (!contextValidation.ok && contextValidation.code !== 'unsafe_aggregation' && !governedMetricAnswer && input.expandGroundingContext && canUseLaneRepair(repairBudgetState, 'reground')) {
3010
+ if (!input.forcedGeneratedProposal
3011
+ && !contextValidation.ok && contextValidation.code !== 'unsafe_aggregation' && !governedMetricAnswer && input.expandGroundingContext && canUseLaneRepair(repairBudgetState, 'reground')) {
2908
3012
  recordLaneRepair(repairBudgetState, 'reground');
2909
3013
  try {
2910
3014
  const expansion = await input.expandGroundingContext({
@@ -3001,6 +3105,7 @@ async function runAnswerLoop(input) {
3001
3105
  && input.resolvedAnalyticalPlan?.mode !== 'authoritative'
3002
3106
  && !semanticAggregationAuthorityBlocked
3003
3107
  && !governedMetricAnswer
3108
+ && !input.forcedGeneratedProposal
3004
3109
  && canUseLaneRepair(repairBudgetState, 'validation')) {
3005
3110
  recordLaneRepair(repairBudgetState, 'validation');
3006
3111
  try {
@@ -3076,7 +3181,7 @@ async function runAnswerLoop(input) {
3076
3181
  // Business-language chat text; the validator's machine message (with
3077
3182
  // relation ids and tool guidance for the repair prompt) stays in
3078
3183
  // refusalDetails + validationWarnings for the Inspect surface.
3079
- const text = renderContextValidationRefusalForUser(contextValidation.code, contextValidation.error, input.followUp?.memberBindings);
3184
+ const text = renderContextValidationRefusalForUser(contextValidation.code, contextValidation.error, input.followUp?.memberBindings, contextValidation.aggregationSafetyProof?.issueCodes);
3080
3185
  const analysisPlan = buildAnalysisPlan({
3081
3186
  question,
3082
3187
  intent,
@@ -3265,8 +3370,6 @@ async function runAnswerLoop(input) {
3265
3370
  && semanticBridgeAnswer?.sql.trim() === parsed.sql?.trim()) {
3266
3371
  return input.executeDqlArtifact({ ...semanticArtifact, limit: requestedLimit });
3267
3372
  }
3268
- if (!input.executeGeneratedSql)
3269
- throw new Error('No generated SQL executor is configured.');
3270
3373
  const artifact = buildGeneratedSqlDqlArtifact({
3271
3374
  question,
3272
3375
  sql: parsed.sql,
@@ -3282,9 +3385,20 @@ async function runAnswerLoop(input) {
3282
3385
  validationWarnings: [...contextValidation.warnings, ...deepCandidateNotes],
3283
3386
  outputs: parsed.outputs,
3284
3387
  });
3285
- return input.executeGeneratedSql(parsed.sql, artifact ? { ...artifact, limit: requestedLimit } : undefined);
3388
+ const boundedArtifact = artifact ? { ...artifact, limit: requestedLimit } : undefined;
3389
+ if (input.forcedGeneratedProposal) {
3390
+ if (!input.agenticSqlExecutionCapability || !input.executeAgenticGeneratedSql) {
3391
+ throw Object.assign(new Error('The analyst-approved SQL has no live execution capability, so DQL did not execute it.'), {
3392
+ code: 'AGENTIC_EXECUTION_CAPABILITY_REQUIRED',
3393
+ });
3394
+ }
3395
+ return input.executeAgenticGeneratedSql(input.agenticSqlExecutionCapability, parsed.sql, boundedArtifact);
3396
+ }
3397
+ if (!input.executeGeneratedSql)
3398
+ throw new Error('No generated SQL executor is configured.');
3399
+ return input.executeGeneratedSql(parsed.sql, boundedArtifact);
3286
3400
  };
3287
- if (input.executeGeneratedSql && !result) {
3401
+ if ((input.executeGeneratedSql || (input.forcedGeneratedProposal && input.executeAgenticGeneratedSql)) && !result) {
3288
3402
  // Fanout gate for native semantic direct-joins: a duplicate join-key row on
3289
3403
  // the joined side multiplies fact rows BEFORE aggregation, so every summed
3290
3404
  // value inflates silently (seen in the field as trillions-scale "governed"
@@ -3293,6 +3407,8 @@ async function runAnswerLoop(input) {
3293
3407
  // repair, which would regenerate the same multiplying join.
3294
3408
  let fanoutContradiction = false;
3295
3409
  if (!executionError
3410
+ && !input.forcedGeneratedProposal
3411
+ && input.executeGeneratedSql
3296
3412
  && semanticBridgeAnswer?.composeResult?.fanoutProbeSql
3297
3413
  && semanticBridgeAnswer.sql.trim() === parsed.sql?.trim()) {
3298
3414
  const inflationError = await probeSemanticJoinFanout(semanticBridgeAnswer.composeResult.fanoutProbeSql, semanticBridgeAnswer.composeResult.tables, input.executeGeneratedSql);
@@ -3309,7 +3425,7 @@ async function runAnswerLoop(input) {
3309
3425
  warehouseFailure = normalizeWarehouseSqlFailure(err, input.semanticDriver);
3310
3426
  executionError = warehouseFailure.redactedMessage;
3311
3427
  }
3312
- if (executionError && !fanoutContradiction && !authoritativeSemanticBinding) {
3428
+ if (executionError && !input.forcedGeneratedProposal && !fanoutContradiction && !authoritativeSemanticBinding) {
3313
3429
  warehouseFailure ??= normalizeWarehouseSqlFailure(executionError, input.semanticDriver);
3314
3430
  if (isRetryableGeneratedSqlError(warehouseFailure)) {
3315
3431
  const localRepairSql = repairGeneratedSqlLocally(parsed.sql, executionError, schemaContext);
@@ -5033,6 +5149,77 @@ function renderContextPrompt(blocks, businessContext, others, activeTier, memory
5033
5149
  : '';
5034
5150
  return `${intentSection}${budgetSection}${dialectSection}\n\n${blockSection}${businessSection}${otherSection}${kgJoinSection}${schemaSection}${contextPackSection}${memorySection}${hintsSection}${conversationSection}${extraSection}${followUpSection}`;
5035
5151
  }
5152
+ const ATTRIBUTE_LOOKUP_CONCEPTS = new Set([
5153
+ 'account', 'category', 'channel', 'city', 'country', 'department', 'description',
5154
+ 'industry', 'label', 'location', 'market', 'name', 'owner', 'region', 'segment',
5155
+ 'state', 'status', 'team', 'tier', 'title', 'type', 'user',
5156
+ ]);
5157
+ /**
5158
+ * Attribute questions are valid analytical asks even when they have no
5159
+ * measure. A conversational reference such as "what region does he belong to?"
5160
+ * carries a typed member binding from the prior result; forcing a metric here
5161
+ * turns a straightforward dimensional lookup into the old generic governed
5162
+ * error. Keep this as a generation hint, not a deterministic semantic match:
5163
+ * the provider still has to choose a relation and the SQL guard still proves
5164
+ * the resulting query. AGT-031.
5165
+ */
5166
+ function isMetricIndependentAttributeLookup(question, questionPlan, followUp) {
5167
+ if (questionPlan.mode === 'ranking' || questionPlan.mode === 'comparison' || questionPlan.mode === 'definition')
5168
+ return false;
5169
+ const lower = question.toLowerCase();
5170
+ // Follow-up planning intentionally carries the previous measure so that a
5171
+ // refinement such as "and by region?" remains grounded. That carry must not
5172
+ // turn a new attribute request into a metric request. Only a measure named in
5173
+ // this question (or a non-carried custom term) disables this lane.
5174
+ const carriedTerms = new Set([
5175
+ ...(followUp?.priorMeasures ?? []),
5176
+ ...(followUp?.priorResultColumns ?? []),
5177
+ ...(followUp?.priorDqlArtifact?.metrics ?? []),
5178
+ ].map((term) => term.toLowerCase().replace(/[_-]+/g, ' ').trim()));
5179
+ const carriedOnly = (term) => carriedTerms.has(term.toLowerCase().replace(/[_-]+/g, ' ').trim());
5180
+ const directMeasures = questionPlan.requestedShape.measures.filter((term) => !carriedOnly(term));
5181
+ const directMetricTerms = questionPlan.metricTerms.filter((term) => !carriedOnly(term));
5182
+ if (directMeasures.length > 0 || directMetricTerms.length > 0)
5183
+ return false;
5184
+ if (/\b(?:revenue|sales?|amount|spend|cost|margin|profit|orders?|count|quantity|units?|value|rate|score|usage|growth|churn|conversion|tax)\b/i.test(lower))
5185
+ return false;
5186
+ const attributeTerms = new Set([
5187
+ ...questionPlan.dimensionTerms,
5188
+ ...questionPlan.requestedShape.dimensions,
5189
+ ...questionPlan.requestedShape.requiredOutputs,
5190
+ ].map((term) => term.toLowerCase().replace(/[_-]+/g, ' ').trim()));
5191
+ const hasAttribute = Array.from(attributeTerms).some((term) => {
5192
+ if (!term)
5193
+ return false;
5194
+ return ATTRIBUTE_LOOKUP_CONCEPTS.has(term) || Array.from(ATTRIBUTE_LOOKUP_CONCEPTS).some((concept) => new RegExp(`\\b${concept}\\b`, 'i').test(term));
5195
+ }) || /\b(?:region|segment|category|channel|location|country|state|city|status|type|name|label|title|description)\b/i.test(lower);
5196
+ if (!hasAttribute)
5197
+ return false;
5198
+ const asksForAttribute = /\b(?:what|which|where|who|show|give|tell|find|list)\b/i.test(lower)
5199
+ || /\b(?:belongs?|assigned|associated|located|based|part\s+of)\b/i.test(lower);
5200
+ if (!asksForAttribute)
5201
+ return false;
5202
+ const hasTarget = Boolean(followUp?.memberBindings?.length)
5203
+ || questionPlan.entities.length > 0
5204
+ || /\b(?:he|she|him|his|her|hers|this|that|these|those|same|above|previous|prior)\b/i.test(lower);
5205
+ return hasTarget;
5206
+ }
5207
+ function renderAttributeLookupInstruction(questionPlan, followUp) {
5208
+ const requested = Array.from(new Set([
5209
+ ...questionPlan.dimensionTerms,
5210
+ ...questionPlan.requestedShape.dimensions,
5211
+ ...questionPlan.requestedShape.requiredOutputs,
5212
+ ].filter((term) => ATTRIBUTE_LOOKUP_CONCEPTS.has(term.toLowerCase().replace(/[_-]+/g, ' ').trim()))));
5213
+ const bindings = followUp?.memberBindings?.map((binding) => `${binding.dimension} = ${binding.values.join(' | ')}`).join('; ');
5214
+ return [
5215
+ 'METRIC-INDEPENDENT ATTRIBUTE LOOKUP (authoritative for this turn):',
5216
+ 'This is a valid lookup of an entity attribute; it does not require a revenue, count, or other measure.',
5217
+ requested.length > 0 ? `Return the requested attribute column(s): ${requested.join(', ')}.` : 'Return the requested descriptive attribute column.',
5218
+ bindings ? `Preserve the typed conversation member binding exactly: ${bindings}.` : 'Preserve the explicitly named entity/member exactly.',
5219
+ 'Use the inspected metadata and documented join keys to find the owning relation, select the attribute, and apply the member predicate. Do not invent a metric, add an arbitrary aggregate, or broaden a singular member to all prior rows.',
5220
+ 'If the attribute or relationship is absent from inspected metadata, return no SQL and state the precise missing relation/column so the host can surface a typed gap.',
5221
+ ].join('\n');
5222
+ }
5036
5223
  function buildKgJoinPathHints(kg, nodes, questionPlan) {
5037
5224
  const candidates = nodes
5038
5225
  .filter((node) => ['block', 'business_view', 'metric', 'entity', 'semantic_model', 'dbt_model', 'dbt_source'].includes(node.kind))
@@ -5162,15 +5349,26 @@ function renderContextPackForPrompt(contextPack, budget) {
5162
5349
  const warnings = contextPack.warnings.length
5163
5350
  ? `Warnings:\n${contextPack.warnings.slice(0, budget.warningLimit).map((warning) => `- ${warning}`).join('\n')}\n`
5164
5351
  : '';
5165
- const objects = contextPack.objects.slice(0, budget.contextObjectLimit).map((object) => {
5166
- const detail = [
5167
- object.objectType,
5168
- object.domain ? `domain: ${object.domain}` : '',
5169
- object.status ? `status: ${object.status}` : '',
5170
- object.description ? `description: ${object.description}` : '',
5171
- ].filter(Boolean).join('; ');
5172
- return `- ${object.objectKey} (${detail})`;
5173
- }).join('\n');
5352
+ // Pack by value per token instead of truncating at a fixed position. The
5353
+ // objects arrive already ranked, so position IS the value — but cost is not
5354
+ // uniform: one object with a long description can crowd out several cheap
5355
+ // ones that rank just below it, and the old `slice` cut by rank alone. This
5356
+ // keeps the same ordering pressure while letting an inexpensive object that
5357
+ // ranked 19th still fit. The budget is derived from the existing item limit
5358
+ // so the window stays the size the caller already tuned for.
5359
+ const objects = packContext(contextPack.objects.map((object, index) => ({
5360
+ id: object.objectKey,
5361
+ score: contextPack.objects.length - index,
5362
+ render: () => {
5363
+ const detail = [
5364
+ object.objectType,
5365
+ object.domain ? `domain: ${object.domain}` : '',
5366
+ object.status ? `status: ${object.status}` : '',
5367
+ object.description ? `description: ${object.description}` : '',
5368
+ ].filter(Boolean).join('; ');
5369
+ return `- ${object.objectKey} (${detail})`;
5370
+ },
5371
+ })), Math.max(1, budget.contextObjectLimit) * 45).text;
5174
5372
  const conflicts = contextPack.retrievalDiagnostics.candidateConflicts.length
5175
5373
  ? `\nCandidate conflicts:\n${contextPack.retrievalDiagnostics.candidateConflicts.slice(0, 4).map((conflict) => `- ${conflict.reason} ${conflict.prompt}`).join('\n')}`
5176
5374
  : '';
@@ -5696,6 +5894,28 @@ function flowFieldCovers(field, term) {
5696
5894
  function normalizeFlowField(value) {
5697
5895
  return value.toLowerCase().replace(/[_-]+/g, ' ').replace(/[^a-z0-9 ]+/g, ' ').replace(/\s+/g, ' ').trim();
5698
5896
  }
5897
+ /**
5898
+ * Remove the model's QUERY PLAN scaffolding from user-facing prose.
5899
+ *
5900
+ * Rule 4 of the SQL prompt tells the model to state its grain, measures, join
5901
+ * path, and join keys BEFORE writing SQL. That instruction is load-bearing —
5902
+ * it is what prevents wrong-grain answers and fan-out joins — but it is
5903
+ * reasoning, not an answer, and it was reaching the reader verbatim:
5904
+ *
5905
+ * "QUERY PLAN: grain = one row per customer, filtered to the named customer
5906
+ * (Matthew Meyer, honorific stripped) ... FROM dev.customers c, filtered on
5907
+ * c.customer_name ILIKE '%Matthew Meyer%'."
5908
+ *
5909
+ * Someone who asked why a customer tops a list should not be handed a join
5910
+ * plan. The plan stays in the artifact and the trace; it leaves the prose.
5911
+ */
5912
+ export function stripQueryPlanScaffolding(text) {
5913
+ return text
5914
+ // A QUERY PLAN section runs to the next blank line or the end of the prose.
5915
+ .replace(/(?:^|\n)\s*(?:\*\*)?QUERY PLAN(?:\*\*)?\s*[::][\s\S]*?(?=\n\s*\n|$)/gi, '')
5916
+ .replace(/\n{3,}/g, '\n\n')
5917
+ .trim();
5918
+ }
5699
5919
  /**
5700
5920
  * Public for tests. Prefer the structured W2.7 JSON proposal contract, then
5701
5921
  * fall back to the legacy prose + ```sql block + Viz line format.
@@ -5709,11 +5929,11 @@ export function parseProposal(raw) {
5709
5929
  const vizMatch = raw.match(/^Viz:\s*([a-z_]+)/im);
5710
5930
  const viz = vizMatch ? vizMatch[1].trim().toLowerCase() : undefined;
5711
5931
  // Strip the SQL block + Viz line from the prose to keep the summary clean.
5712
- const text = raw
5932
+ const text = stripQueryPlanScaffolding(raw
5713
5933
  .replace(/```json[\s\S]*?```/gi, '')
5714
5934
  .replace(/```sql[\s\S]*?```/gi, '')
5715
5935
  .replace(/^Viz:.*$/gim, '')
5716
- .trim();
5936
+ .trim());
5717
5937
  return { text, sql, viz };
5718
5938
  }
5719
5939
  function parseStructuredProposal(raw) {
@@ -5741,7 +5961,7 @@ function parsedProposalFromJson(value) {
5741
5961
  return undefined;
5742
5962
  const record = value;
5743
5963
  const sql = firstJsonString(record.sql, record.query)?.trim();
5744
- const text = firstJsonString(record.summary, record.text, record.answer, record.description)?.trim() ?? '';
5964
+ const text = stripQueryPlanScaffolding(firstJsonString(record.summary, record.text, record.answer, record.description)?.trim() ?? '');
5745
5965
  const viz = firstJsonString(record.viz, record.visualization, record.chartType)
5746
5966
  ?.trim()
5747
5967
  .toLowerCase()