@duckcodeailabs/dql-cli 1.7.2 → 1.8.0

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.
@@ -7,7 +7,7 @@
7
7
  <link rel="preconnect" href="https://fonts.googleapis.com" />
8
8
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
9
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&family=Kalam:wght@400;700&family=Caveat:wght@400;600;700&display=swap" rel="stylesheet" />
10
- <script type="module" crossorigin src="/assets/index-BgD9b9Om.js"></script>
10
+ <script type="module" crossorigin src="/assets/index-siDRLswd.js"></script>
11
11
  <link rel="modulepreload" crossorigin href="/assets/react-BRY8hXab.js">
12
12
  <link rel="modulepreload" crossorigin href="/assets/codemirror-Co0dCEDr.js">
13
13
  <link rel="stylesheet" crossorigin href="/assets/index-dSyhu_eU.css">
@@ -275,7 +275,12 @@ async function runRipgrep(projectRoot, pattern, limit) {
275
275
  '--line-number', '--no-heading', '--color', 'never', '--ignore-case', '--max-count', '5',
276
276
  '--glob', '*.{dql,sql,yml,yaml,json,md}',
277
277
  '--glob', '!.git/**', '--glob', '!node_modules/**', '--glob', '!dist/**', '--glob', '!target/**',
278
- '--glob', '!.dql/cache/**',
278
+ // `.dql` contains provider/connection settings and other runtime-local state.
279
+ // Source repair must never make those files available to a model, even when
280
+ // a user question happens to contain a word such as "api" or "token".
281
+ '--glob', '!.dql/**',
282
+ '--glob', '!**/.env*', '--glob', '!**/profiles.yml', '--glob', '!**/profiles.yaml',
283
+ '--glob', '!**/*credential*.json', '--glob', '!**/*secret*.json', '--glob', '!**/*provider-settings*.json',
279
284
  pattern, '.',
280
285
  ];
281
286
  return new Promise((resolveSearch) => {
@@ -309,7 +314,7 @@ async function runRipgrep(projectRoot, pattern, limit) {
309
314
  child.on('close', () => {
310
315
  const matches = output.split(/\r?\n/).flatMap((raw) => {
311
316
  const match = raw.match(/^(.*?):(\d+):(.*)$/);
312
- return match ? [{ path: match[1], line: Number(match[2]), text: match[3].trim().slice(0, 500) }] : [];
317
+ return match ? [{ path: match[1], line: Number(match[2]), text: redactSourceSearchLine(match[3]) }] : [];
313
318
  }).slice(0, limit);
314
319
  finish(matches);
315
320
  });
@@ -317,6 +322,13 @@ async function runRipgrep(projectRoot, pattern, limit) {
317
322
  }
318
323
  const SOURCE_FILE_PATTERN = /\.(dql|sql|yml|yaml|json|md)$/i;
319
324
  const SOURCE_SEARCH_IGNORED_DIRECTORIES = new Set(['.git', 'node_modules', 'dist', 'target', '.dql']);
325
+ const SOURCE_SEARCH_DENIED_FILE = /(?:^|\/)(?:\.env(?:\..*)?|profiles\.ya?ml|[^/]*(?:credential|secret|provider-settings)[^/]*\.(?:json|ya?ml))$/i;
326
+ function redactSourceSearchLine(value) {
327
+ return value
328
+ .trim()
329
+ .slice(0, 500)
330
+ .replace(/((?:api[_-]?key|access[_-]?token|password|secret|private[_-]?key|client[_-]?secret)\s*[=:]\s*)([^\s,}\]]+)/gi, '$1[REDACTED]');
331
+ }
320
332
  function runNativeSourceSearch(projectRoot, pattern, limit) {
321
333
  const matcher = new RegExp(pattern, 'i');
322
334
  const matches = [];
@@ -342,7 +354,8 @@ function runNativeSourceSearch(projectRoot, pattern, limit) {
342
354
  directories.push(filePath);
343
355
  continue;
344
356
  }
345
- if (!entry.isFile() || !SOURCE_FILE_PATTERN.test(entry.name))
357
+ const relativePath = relative(projectRoot, filePath).replaceAll('\\', '/');
358
+ if (!entry.isFile() || !SOURCE_FILE_PATTERN.test(entry.name) || SOURCE_SEARCH_DENIED_FILE.test(relativePath))
346
359
  continue;
347
360
  scannedFiles += 1;
348
361
  if (scannedFiles > 5_000)
@@ -357,7 +370,7 @@ function runNativeSourceSearch(projectRoot, pattern, limit) {
357
370
  for (const [index, line] of source.split(/\r?\n/).entries()) {
358
371
  if (!matcher.test(line))
359
372
  continue;
360
- matches.push({ path: filePath, line: index + 1, text: line.trim().slice(0, 500) });
373
+ matches.push({ path: filePath, line: index + 1, text: redactSourceSearchLine(line) });
361
374
  if (matches.length >= limit)
362
375
  break;
363
376
  }
@@ -1 +1 @@
1
- {"version":3,"file":"answer-loop-tools.js","sourceRoot":"","sources":["../../src/llm/answer-loop-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"answer-loop-tools.js","sourceRoot":"","sources":["../../src/llm/answer-loop-tools.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,7 @@ declare function inferFollowUpContext(req: AgentRunRequest, question: string): A
40
40
  * genuinely new topic). Question-derived filters are kept; carried ones drop.
41
41
  */
42
42
  declare function applyTopicShiftGuard(followUp: AgentFollowUpContext | undefined, snapshot: ConversationSnapshot | undefined): AgentFollowUpContext | undefined;
43
+ export declare function resolveAgentFollowUpContext(rawContext: Record<string, unknown> | undefined, question: string): AgentFollowUpContext | undefined;
43
44
  declare function followUpFromConversationContext(req: AgentRunRequest, question: string): AgentFollowUpContext | undefined;
44
45
  export declare const __test__: {
45
46
  applyTopicShiftGuard: typeof applyTopicShiftGuard;
@@ -1 +1 @@
1
- {"version":3,"file":"dql-agent-provider.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/dql-agent-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAgBL,KAAK,WAAW,EAEhB,KAAK,wBAAwB,EAE7B,KAAK,oBAAoB,EAEzB,KAAK,aAAa,EAElB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAA4B,UAAU,EAAE,MAAM,aAAa,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAkC,MAAM,yBAAyB,CAAC;AAO/F;;;;GAIG;AACH,KAAK,gBAAgB,GACjB,OAAO,CAAC,UAAU,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,eAAe,CAAC,GACnF,aAAa,GACb,OAAO,CAAC;AAwEZ,iBAAS,8BAA8B,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,wBAAwB,CAmC/G;AAED;;;;;GAKG;AACH,iBAAS,uBAAuB,CAC9B,WAAW,EAAE,gBAAgB,GAAG,SAAS,EACzC,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAeT;AAED,iBAAS,wBAAwB,CAAC,WAAW,EAAE,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAYpF;AAED,iBAAS,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAarE;AAqBD,iBAAS,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAkBhI;AAqDD,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,gBAAgB,GAAG,WAAW,CAsM9E;AAmBD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAkBrE;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAGjG;AA6KD,iBAAS,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAkBtG;AAuBD;;;;;GAKG;AACH,iBAAS,oBAAoB,CAC3B,QAAQ,EAAE,oBAAoB,GAAG,SAAS,EAC1C,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GACzC,oBAAoB,GAAG,SAAS,CAYlC;AAED,iBAAS,+BAA+B,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAqEjH;AAsaD,eAAO,MAAM,QAAQ;;;;;;;;;;;;CAYpB,CAAC;AAiFF,iBAAS,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAKjF"}
1
+ {"version":3,"file":"dql-agent-provider.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/dql-agent-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAeL,KAAK,WAAW,EAEhB,KAAK,wBAAwB,EAE7B,KAAK,oBAAoB,EAEzB,KAAK,aAAa,EAElB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EAEtB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAA4B,UAAU,EAAE,MAAM,aAAa,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAkC,MAAM,yBAAyB,CAAC;AAO/F;;;;GAIG;AACH,KAAK,gBAAgB,GACjB,OAAO,CAAC,UAAU,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,eAAe,CAAC,GACnF,aAAa,GACb,OAAO,CAAC;AAwEZ,iBAAS,8BAA8B,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,wBAAwB,CAmC/G;AAED;;;;;GAKG;AACH,iBAAS,uBAAuB,CAC9B,WAAW,EAAE,gBAAgB,GAAG,SAAS,EACzC,gBAAgB,EAAE,OAAO,GACxB,OAAO,CAeT;AAED,iBAAS,wBAAwB,CAAC,WAAW,EAAE,gBAAgB,GAAG,SAAS,GAAG,OAAO,CAYpF;AAED,iBAAS,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAarE;AAqBD,iBAAS,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAkBhI;AAqDD,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,gBAAgB,GAAG,WAAW,CAmO9E;AAmBD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAkBrE;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAGjG;AA6KD,iBAAS,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAkBtG;AAuBD;;;;;GAKG;AACH,iBAAS,oBAAoB,CAC3B,QAAQ,EAAE,oBAAoB,GAAG,SAAS,EAC1C,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GACzC,oBAAoB,GAAG,SAAS,CAYlC;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC/C,QAAQ,EAAE,MAAM,GACf,oBAAoB,GAAG,SAAS,CAoFlC;AAED,iBAAS,+BAA+B,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAEjH;AA2fD,eAAO,MAAM,QAAQ;;;;;;;;;;;;CAYpB,CAAC;AAkFF,iBAAS,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAKjF"}
@@ -1,4 +1,4 @@
1
- import { ClaudeProvider, KGStore, MemoryStore, defaultKgPath, defaultMemoryPath, GeminiProvider, loadAgentSemanticLayer, OllamaProvider, OpenAIProvider, answer, buildAnalysisQuestionPlan, buildLocalContextPack, contextRetrievalBudgetForQuestion, ensureAgentProjectReady, loadSkills, } from '@duckcodeailabs/dql-agent';
1
+ import { ClaudeProvider, KGStore, MemoryStore, defaultKgPath, defaultMemoryPath, GeminiProvider, loadAgentSemanticLayer, OllamaProvider, OpenAIProvider, answer, buildAnalysisQuestionPlan, buildLocalContextPack, contextRetrievalBudgetForQuestion, ensureAgentProjectReady, } from '@duckcodeailabs/dql-agent';
2
2
  import { buildManifest, normalizeDqlArtifactReference, resolveDbtManifestPath } from '@duckcodeailabs/dql-core';
3
3
  import { existsSync } from 'node:fs';
4
4
  import { buildAnswerLoopTools, createGroundingContextExpander } from '../answer-loop-tools.js';
@@ -297,7 +297,6 @@ export function createDqlAgentProviderRunner(id) {
297
297
  scopeId: req.upstream?.cellId,
298
298
  limit: 6,
299
299
  });
300
- const skills = loadSkills(req.projectRoot).skills;
301
300
  const semanticLayer = loadAgentSemanticLayer(req.projectRoot);
302
301
  const questionPlan = buildAnalysisQuestionPlan(question, followUp);
303
302
  const contextBudget = contextRetrievalBudgetForQuestion({
@@ -308,7 +307,7 @@ export function createDqlAgentProviderRunner(id) {
308
307
  const selectedContext = selectedContextForMetadata(req, question);
309
308
  emit({ kind: 'thinking', text: 'Searching certified blocks, semantic metrics, relevant domains, and skills.' });
310
309
  const contextStartedAt = Date.now();
311
- const contextPack = await buildLocalContextPack(req.projectRoot, {
310
+ const contextPack = req.preparedContextPack ?? await buildLocalContextPack(req.projectRoot, {
312
311
  question,
313
312
  surface: 'notebook',
314
313
  followUp,
@@ -324,6 +323,34 @@ export function createDqlAgentProviderRunner(id) {
324
323
  preparedMetadataFingerprint: projectState.metadataFingerprint,
325
324
  })
326
325
  .catch(() => undefined);
326
+ // CTX-002/SKILL-003: the immutable context pack is the single skill
327
+ // selection for this turn. Never re-read mutable skill files after
328
+ // the project snapshot has been acquired.
329
+ const skills = (contextPack?.skills ?? []).map((skill) => ({
330
+ id: skill.id,
331
+ localId: skill.id,
332
+ qualifiedId: skill.qualifiedId,
333
+ scope: 'project',
334
+ domain: skill.domain,
335
+ domains: skill.domains,
336
+ modelAreaRefs: skill.modelAreaRefs,
337
+ kind: skill.kind,
338
+ status: skill.status,
339
+ owner: skill.owner,
340
+ triggers: skill.triggers,
341
+ exclusions: skill.exclusions,
342
+ description: skill.description,
343
+ preferredMetrics: skill.preferredMetrics,
344
+ preferredBlocks: skill.preferredBlocks,
345
+ preferredDimensions: skill.preferredDimensions,
346
+ requiredFilters: skill.requiredFilters,
347
+ clarifyWhen: skill.clarifyWhen,
348
+ examples: [],
349
+ sourceRefs: skill.sourceRefs,
350
+ vocabulary: skill.vocabulary,
351
+ body: skill.guidance,
352
+ sourcePath: skill.sourcePath ?? '',
353
+ }));
327
354
  const contextDurationMs = Date.now() - contextStartedAt;
328
355
  const answerLoopTools = buildAnswerLoopTools(req.projectRoot);
329
356
  const sourceSearchTool = answerLoopTools.find((tool) => tool.name === 'search_project_files');
@@ -390,6 +417,8 @@ export function createDqlAgentProviderRunner(id) {
390
417
  analysisDepth: contextBudget.analysisDepth,
391
418
  ...(req.semanticDriver ? { semanticDriver: req.semanticDriver } : {}),
392
419
  ...(req.semanticTableMapping ? { semanticTableMapping: req.semanticTableMapping } : {}),
420
+ ...(req.preferredEvidenceIds?.length ? { preferredEvidenceIds: req.preferredEvidenceIds } : {}),
421
+ ...(req.preferredExecutionId ? { preferredExecutionId: req.preferredExecutionId } : {}),
393
422
  executeCertifiedBlock: req.executeCertifiedBlock
394
423
  ? async (...args) => { guardSnapshot(); return req.executeCertifiedBlock(...args); }
395
424
  : undefined,
@@ -728,8 +757,8 @@ function applyTopicShiftGuard(followUp, snapshot) {
728
757
  priorLimit: undefined,
729
758
  };
730
759
  }
731
- function followUpFromConversationContext(req, question) {
732
- const context = req.conversationContext;
760
+ export function resolveAgentFollowUpContext(rawContext, question) {
761
+ const context = rawContext;
733
762
  if (!context)
734
763
  return undefined;
735
764
  const turns = conversationTurnsFromContext(context);
@@ -743,7 +772,10 @@ function followUpFromConversationContext(req, question) {
743
772
  const priorResultRef = priorResultRefFromTurn(activeTurn, activeResult, priorResultColumns);
744
773
  const priorDqlArtifact = cleanDqlArtifactReference(activeTurn?.dqlArtifact) ?? cleanDqlArtifactReference(context.dqlArtifact);
745
774
  const resolvedReferences = resolveConversationReferences(question, turns, priorResultValues);
746
- const hasUsefulContext = Boolean(sourceBlockName || priorResultColumns?.length || priorResultValues || priorDqlArtifact);
775
+ const focusedPriorResultValues = resolvedReferences.valuesByDimension ?? priorResultValues;
776
+ const hasFocusedReference = Boolean(resolvedReferences.valuesByDimension);
777
+ const relativeComparison = isEntityRelativeComparisonQuestion(question);
778
+ const hasUsefulContext = Boolean(sourceBlockName || priorResultColumns?.length || focusedPriorResultValues || priorDqlArtifact);
747
779
  if (!hasUsefulContext)
748
780
  return undefined;
749
781
  const inferredKind = isGenericFollowUp(question)
@@ -761,25 +793,40 @@ function followUpFromConversationContext(req, question) {
761
793
  return {
762
794
  kind,
763
795
  sourceTurnId: cleanOptionalString(activeTurn?.id) ?? cleanOptionalString(context.sourceAnswerId),
764
- sourceBlockName,
765
- sourceQuestion: cleanOptionalString(activeTurn?.question) ?? cleanOptionalString(context.sourceQuestion),
766
- sourceAnswer: cleanOptionalString(activeTurn?.answerSummary) ?? cleanOptionalString(context.sourceAnswerSummary),
796
+ // A relative comparison needs the named member from history, not the prior
797
+ // block's result contract. Carrying a beverage-ranking block into "less tax
798
+ // than Melissa" biases retrieval toward the same technical artifact and is
799
+ // exactly how the old loop produced a global tax KPI or all customer rows.
800
+ sourceBlockName: relativeComparison ? undefined : sourceBlockName,
801
+ sourceQuestion: relativeComparison
802
+ ? undefined
803
+ : cleanOptionalString(activeTurn?.question) ?? cleanOptionalString(context.sourceQuestion),
804
+ sourceAnswer: relativeComparison
805
+ ? undefined
806
+ : cleanOptionalString(activeTurn?.answerSummary) ?? cleanOptionalString(context.sourceAnswerSummary),
767
807
  filters: kind === 'drilldown'
768
- ? mergeStrings(activeTurnStringArray(activeTurn, 'requestedFilters'), context.requestedFilters, extractDrilldownFilters(question), resolvedReferences.filters)
808
+ ? mergeStrings(hasFocusedReference ? undefined : activeTurnStringArray(activeTurn, 'requestedFilters'), hasFocusedReference ? undefined : context.requestedFilters, extractDrilldownFilters(question), resolvedReferences.filters)
769
809
  : undefined,
770
810
  dimensions: kind === 'drilldown'
771
- ? mergeStrings(activeTurnStringArray(activeTurn, 'requestedDimensions'), context.requestedDimensions, extractDrilldownDimensions(question), resolvedReferences.dimensions)
811
+ ? mergeStrings(hasFocusedReference ? undefined : activeTurnStringArray(activeTurn, 'requestedDimensions'), hasFocusedReference ? undefined : context.requestedDimensions, extractDrilldownDimensions(question), resolvedReferences.dimensions)
772
812
  : undefined,
773
- priorResultColumns,
774
- priorResultValues,
775
- priorResultRef,
776
- priorDqlArtifact,
777
- priorLimit: activeTurnNumber(activeTurn, 'topN') ?? (typeof context.priorLimit === 'number' ? context.priorLimit : undefined),
778
- priorMeasures: mergeStrings(activeTurnStringArray(activeTurn, 'requestedMeasures'), arrayValue(activeResult?.measureColumns), context.priorMeasures, inferredMeasuresFromAnswerContract(context.answerContract), inferredMeasureColumns(priorResultColumns)),
813
+ priorResultColumns: relativeComparison ? undefined : priorResultColumns,
814
+ priorResultValues: focusedPriorResultValues,
815
+ priorResultRef: relativeComparison ? undefined : priorResultRef,
816
+ priorDqlArtifact: relativeComparison ? undefined : priorDqlArtifact,
817
+ priorLimit: relativeComparison
818
+ ? undefined
819
+ : activeTurnNumber(activeTurn, 'topN') ?? (typeof context.priorLimit === 'number' ? context.priorLimit : undefined),
820
+ priorMeasures: relativeComparison
821
+ ? undefined
822
+ : mergeStrings(activeTurnStringArray(activeTurn, 'requestedMeasures'), arrayValue(activeResult?.measureColumns), context.priorMeasures, inferredMeasuresFromAnswerContract(context.answerContract), inferredMeasureColumns(priorResultColumns)),
779
823
  resolvedReferences: resolvedReferences.labels,
780
824
  unresolvedReferences: resolvedReferences.unresolved,
781
825
  };
782
826
  }
827
+ function followUpFromConversationContext(req, question) {
828
+ return resolveAgentFollowUpContext(req.conversationContext, question);
829
+ }
783
830
  function conversationTurnsFromContext(context) {
784
831
  const explicit = Array.isArray(context?.turns)
785
832
  ? context.turns.map(cleanRecord).filter((turn) => Boolean(turn))
@@ -942,10 +989,14 @@ function priorResultRefFromTurn(activeTurn, activeResult, priorResultColumns) {
942
989
  };
943
990
  }
944
991
  function resolveConversationReferences(question, turns, activeValues) {
945
- const dimensions = resolveDeicticDimensions(question, activeValues) ?? [];
992
+ const namedValues = resolveNamedConversationValues(question, turns, activeValues);
993
+ const dimensions = [
994
+ ...(resolveDeicticDimensions(question, activeValues) ?? []),
995
+ ...Object.keys(namedValues ?? {}).map(normalizePriorValueDimension),
996
+ ];
946
997
  let filters = resolveDeicticFilters(question, activeValues) ?? [];
947
998
  const labels = [];
948
- if (dimensions.length > 0 && filters.length === 0) {
999
+ if (!namedValues && dimensions.length > 0 && filters.length === 0) {
949
1000
  for (const turn of [...turns].reverse()) {
950
1001
  const values = cleanStringRecordArray(cleanRecord(turn.result)?.dimensionValues);
951
1002
  if (!values)
@@ -956,19 +1007,77 @@ function resolveConversationReferences(question, turns, activeValues) {
956
1007
  }
957
1008
  }
958
1009
  for (const dimension of dimensions) {
959
- const values = (activeValues ? valuesForPriorDimension(activeValues, dimension) : []).slice(0, 5);
1010
+ const values = (namedValues
1011
+ ? valuesForPriorDimension(namedValues, dimension)
1012
+ : activeValues
1013
+ ? valuesForPriorDimension(activeValues, dimension)
1014
+ : []).slice(0, 5);
960
1015
  labels.push(values.length ? `${dimension}: ${values.join(', ')}` : `${dimension}: unresolved`);
961
1016
  }
1017
+ if (namedValues)
1018
+ filters.push(...Object.values(namedValues).flat());
962
1019
  const unresolved = referencesNeedValues(question) && filters.length === 0
963
1020
  ? ['Could not resolve the referenced prior result values from conversation state.']
964
1021
  : undefined;
965
1022
  return {
966
1023
  filters: filters.length > 0 ? Array.from(new Set(filters)).slice(0, 24) : undefined,
967
- dimensions: dimensions.length > 0 ? dimensions : undefined,
968
- labels: labels.length > 0 ? labels : undefined,
1024
+ dimensions: dimensions.length > 0 ? Array.from(new Set(dimensions)) : undefined,
1025
+ labels: labels.length > 0 ? Array.from(new Set(labels)) : undefined,
969
1026
  unresolved,
1027
+ valuesByDimension: namedValues,
970
1028
  };
971
1029
  }
1030
+ /**
1031
+ * Resolve explicit mentions against bounded values from recent result sets. Full
1032
+ * phrases win; otherwise a unique member token may resolve a shortened name
1033
+ * ("Melissa" → "Melissa Lopez"). Ambiguous partials are deliberately left for
1034
+ * clarification instead of guessing between two real warehouse members.
1035
+ */
1036
+ function resolveNamedConversationValues(question, turns, activeValues) {
1037
+ const questionText = normalizeConversationValueText(question);
1038
+ const questionTokens = new Set(questionText.split(' ').filter((token) => token.length >= 3 && !GENERIC_FOLLOW_UP_WORDS.has(token)));
1039
+ if (!questionText || questionTokens.size === 0)
1040
+ return undefined;
1041
+ const candidates = new Map();
1042
+ const addValues = (values) => {
1043
+ for (const [dimension, members] of Object.entries(values ?? {})) {
1044
+ for (const value of members) {
1045
+ const normalized = normalizeConversationValueText(value);
1046
+ if (!normalized)
1047
+ continue;
1048
+ const exact = (` ${questionText} `).includes(` ${normalized} `);
1049
+ const memberTokens = normalized.split(' ').filter((token) => token.length >= 3 && !GENERIC_FOLLOW_UP_WORDS.has(token));
1050
+ const partial = memberTokens.some((token) => questionTokens.has(token));
1051
+ if (!exact && !partial)
1052
+ continue;
1053
+ candidates.set(`${dimension}\u0000${normalized}`, { dimension, value, exact });
1054
+ }
1055
+ }
1056
+ };
1057
+ addValues(activeValues);
1058
+ for (const turn of [...turns].reverse()) {
1059
+ addValues(cleanStringRecordArray(cleanRecord(turn.result)?.dimensionValues));
1060
+ }
1061
+ const all = [...candidates.values()];
1062
+ const exact = all.filter((candidate) => candidate.exact);
1063
+ const selected = exact.length > 0 ? exact : all;
1064
+ const distinctValues = new Set(selected.map((candidate) => normalizeConversationValueText(candidate.value)));
1065
+ if (distinctValues.size !== 1)
1066
+ return undefined;
1067
+ const out = {};
1068
+ for (const candidate of selected) {
1069
+ out[candidate.dimension] = Array.from(new Set([...(out[candidate.dimension] ?? []), candidate.value])).slice(0, 4);
1070
+ }
1071
+ return Object.keys(out).length > 0 ? out : undefined;
1072
+ }
1073
+ function normalizeConversationValueText(value) {
1074
+ return value.toLowerCase().replace(/[^a-z0-9@._'-]+/g, ' ').replace(/\s+/g, ' ').trim();
1075
+ }
1076
+ function isEntityRelativeComparisonQuestion(question) {
1077
+ return /\b(?:less|lower|fewer|more|higher|greater)\b[^?.!]{0,80}\bthan\b\s+[a-z0-9@._'-]+/i.test(question)
1078
+ || /\b(?:below|under|above|over)\b\s+that\s+of\s+[a-z0-9@._'-]+/i.test(question)
1079
+ || /\b(?:below|under|above|over)\b\s+[A-Z][A-Za-z0-9@._'-]+/.test(question);
1080
+ }
972
1081
  function cleanRecord(value) {
973
1082
  return value && typeof value === 'object' && !Array.isArray(value)
974
1083
  ? value
@@ -1008,7 +1117,7 @@ function activeTurnNumber(turn, key) {
1008
1117
  return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
1009
1118
  }
1010
1119
  function referencesNeedValues(question) {
1011
- return /\b(?:this|that|these|those|same|above|previous|prior)\b/i.test(question);
1120
+ return /\b(?:it|its|they|their|them|this|that|these|those|same|above|previous|prior)\b/i.test(question);
1012
1121
  }
1013
1122
  function extractCertifiedBlockName(content) {
1014
1123
  const fromAnswer = content.match(/Answered by certified block \*\*([^*]+)\*\*/i)?.[1];
@@ -1096,7 +1205,14 @@ function resolveDeicticDimensions(question, priorValues) {
1096
1205
  if (valuesForPriorDimension(priorValues, dim).length)
1097
1206
  dims.push(dim);
1098
1207
  }
1099
- if (dims.length === 0 && /\b(?:these|those|that|them|same|above|previous|prior)\b/.test(lower)) {
1208
+ // Subject/object pronouns usually refer to people/accounts when paired with
1209
+ // purchasing verbs. Resolve that entity before broad object retrieval so a
1210
+ // prior customer row does not become a fresh catalog search for "they".
1211
+ if (dims.length === 0
1212
+ && /\b(?:they|their|them)\b[^.?!]{0,48}\b(?:buy|bought|purchase|purchased|order|ordered|spend|spent|use|used)\b/.test(lower)
1213
+ && valuesForPriorDimension(priorValues, 'customer').length > 0)
1214
+ dims.push('customer');
1215
+ if (dims.length === 0 && /\b(?:it|its|they|their|them|this|these|those|that|same|above|previous|prior)\b/.test(lower)) {
1100
1216
  const single = singlePriorValueDimension(priorValues);
1101
1217
  if (single)
1102
1218
  dims.push(single);
@@ -1213,8 +1329,9 @@ function isGenericFollowUp(question) {
1213
1329
  }
1214
1330
  function isDrilldownFollowUp(question) {
1215
1331
  const lower = question.toLowerCase();
1216
- const deicticDrilldown = /\b(?:this|that|these|those|same|above|previous|prior)\s+(?:orders?|results?|rows?|customers?|products?|cat(?:egor|agor|ogor)(?:y|ies)|segments?|regions?)\b/.test(lower);
1217
- return /\b(drill|break\s*down|slice|segment|filter|compare|split|why|changed?|change|driver|root cause|increase|decrease|drop|spike|variance|by|for|only|where|last week|this week|last month|this month|enterprise|region|customer|channel|product|category|categories|catagor(?:y|ies)|catogor(?:y|ies))\b/.test(lower)
1332
+ const deicticDrilldown = /\b(?:this|that|these|those|same|above|previous|prior)\s+(?:amount|value|orders?|results?|rows?|customers?|products?|cat(?:egor|agor|ogor)(?:y|ies)|segments?|regions?)\b/.test(lower)
1333
+ || /\b(?:they|their|them)\b/.test(lower);
1334
+ return /\b(drill|break\s*down|slice|segment|filter|compare|split|why|changed?|change|driver|root cause|increase|decrease|drop|spike|variance|by|for|only|where|last week|this week|last month|this month|enterprise|regions?|customers?|channels?|products?|category|categories|catagor(?:y|ies)|catogor(?:y|ies))\b/.test(lower)
1218
1335
  && (deicticDrilldown || !/\b(what is|what are|define|definition|meaning of)\b/.test(lower));
1219
1336
  }
1220
1337
  function extractDrilldownFilters(question) {