@duckcodeailabs/dql-agent 1.12.1 → 1.12.2

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 (48) hide show
  1. package/dist/agent-run-engine.d.ts +8 -0
  2. package/dist/agent-run-engine.d.ts.map +1 -1
  3. package/dist/agent-run-engine.js +4 -19
  4. package/dist/agent-run-engine.js.map +1 -1
  5. package/dist/answer-loop.d.ts +1 -1
  6. package/dist/answer-loop.d.ts.map +1 -1
  7. package/dist/answer-loop.js +22 -6
  8. package/dist/answer-loop.js.map +1 -1
  9. package/dist/conversation/snapshot.d.ts +6 -0
  10. package/dist/conversation/snapshot.d.ts.map +1 -1
  11. package/dist/conversation/snapshot.js +49 -3
  12. package/dist/conversation/snapshot.js.map +1 -1
  13. package/dist/governed-relational-compiler.js +64 -5
  14. package/dist/governed-relational-compiler.js.map +1 -1
  15. package/dist/hints/git-store.d.ts +4 -1
  16. package/dist/hints/git-store.d.ts.map +1 -1
  17. package/dist/hints/git-store.js +38 -4
  18. package/dist/hints/git-store.js.map +1 -1
  19. package/dist/hints/lesson.d.ts +23 -0
  20. package/dist/hints/lesson.d.ts.map +1 -0
  21. package/dist/hints/lesson.js +120 -0
  22. package/dist/hints/lesson.js.map +1 -0
  23. package/dist/hints/lifecycle.d.ts +2 -1
  24. package/dist/hints/lifecycle.d.ts.map +1 -1
  25. package/dist/hints/lifecycle.js +1 -0
  26. package/dist/hints/lifecycle.js.map +1 -1
  27. package/dist/hints/retrieval.d.ts +7 -0
  28. package/dist/hints/retrieval.d.ts.map +1 -1
  29. package/dist/hints/retrieval.js +3 -0
  30. package/dist/hints/retrieval.js.map +1 -1
  31. package/dist/hints/store.d.ts.map +1 -1
  32. package/dist/hints/store.js +29 -12
  33. package/dist/hints/store.js.map +1 -1
  34. package/dist/hints/types.d.ts +30 -0
  35. package/dist/hints/types.d.ts.map +1 -1
  36. package/dist/hints/types.js.map +1 -1
  37. package/dist/index.d.ts +4 -3
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +2 -1
  40. package/dist/index.js.map +1 -1
  41. package/dist/metadata/catalog.d.ts +6 -0
  42. package/dist/metadata/catalog.d.ts.map +1 -1
  43. package/dist/metadata/catalog.js +2 -2
  44. package/dist/metadata/catalog.js.map +1 -1
  45. package/dist/tools/registry.d.ts.map +1 -1
  46. package/dist/tools/registry.js +15 -0
  47. package/dist/tools/registry.js.map +1 -1
  48. package/package.json +4 -4
@@ -54,6 +54,12 @@ export interface ConversationHistoryMessage {
54
54
  role: 'user' | 'assistant';
55
55
  text: string;
56
56
  }
57
+ /**
58
+ * A pending clarification is deliberately one-shot. Only a short, incomplete
59
+ * value/choice should bind to it; a complete analytical request starts a fresh
60
+ * turn even when the previous turn asked for clarification.
61
+ */
62
+ export declare function isLikelyClarificationReply(value: string): boolean;
57
63
  /**
58
64
  * Build the snapshot for a new question. When the question starts a genuinely
59
65
  * new topic (shift), the carried filters are deterministically cleared in the
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/conversation/snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/conversation/snapshot.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,35 @@ import { renderStructuredConversationSummary, updateRollingSummary, updateStruct
8
8
  import { buildAnalysisQuestionPlan } from '../metadata/analysis-planner.js';
9
9
  import { envEmbeddingProvider, hybridRank } from '../embeddings/provider.js';
10
10
  const RECENT_TURNS = 4;
11
+ const STANDALONE_QUESTION_START_RE = /^(?:who|what|why|where|when|how|show|give|list|compare|build|create|which|calculate|find|tell)\b/i;
12
+ /**
13
+ * A pending clarification is deliberately one-shot. Only a short, incomplete
14
+ * value/choice should bind to it; a complete analytical request starts a fresh
15
+ * turn even when the previous turn asked for clarification.
16
+ */
17
+ export function isLikelyClarificationReply(value) {
18
+ const normalized = value.replace(/\s+/g, ' ').trim();
19
+ if (!normalized)
20
+ return false;
21
+ const words = normalized.split(' ').filter(Boolean);
22
+ if (words.length > 40)
23
+ return false;
24
+ if (words.length >= 4 && STANDALONE_QUESTION_START_RE.test(normalized))
25
+ return false;
26
+ if (words.length >= 7 && /\?\s*$/.test(normalized))
27
+ return false;
28
+ // Compact analytical phrases such as "revenue by region" are complete Ask
29
+ // turns even without a verb or question mark. A terse choice such as
30
+ // "by region", "last quarter", or "use order date" remains a clarification.
31
+ if (words.length >= 3) {
32
+ const plan = buildAnalysisQuestionPlan(normalized);
33
+ const hasMeasure = plan.metricTerms.length > 0;
34
+ const hasSubject = plan.entities.length > 0 || plan.dimensionTerms.length > 0;
35
+ if ((hasMeasure && hasSubject) || plan.entities.length >= 2)
36
+ return false;
37
+ }
38
+ return true;
39
+ }
11
40
  /**
12
41
  * Build the snapshot for a new question. When the question starts a genuinely
13
42
  * new topic (shift), the carried filters are deterministically cleared in the
@@ -27,6 +56,9 @@ export function buildConversationSnapshot(store, threadId, options = {}) {
27
56
  }
28
57
  }
29
58
  const latest = recent[recent.length - 1];
59
+ const latestNeedsClarification = Boolean(latest && (latest.route === 'clarify' || latest.runStatus === 'needs_clarification'));
60
+ const carryPendingClarification = latestNeedsClarification
61
+ && (!options.question || isLikelyClarificationReply(options.question));
30
62
  return {
31
63
  version: 1,
32
64
  threadId,
@@ -36,7 +68,7 @@ export function buildConversationSnapshot(store, threadId, options = {}) {
36
68
  workingState: hasWorkingState(workingState) ? workingState : undefined,
37
69
  recentTurns: recent.map(snapshotTurn),
38
70
  topicRelation,
39
- pendingClarification: latest && (latest.route === 'clarify' || latest.runStatus === 'needs_clarification')
71
+ pendingClarification: latest && carryPendingClarification
40
72
  ? {
41
73
  sourceTurnId: latest.id,
42
74
  question: latest.answerSummary ?? latest.answerText ?? latest.question,
@@ -93,7 +125,8 @@ export async function recallRelevantTurns(store, threadId, question, options = {
93
125
  try {
94
126
  const excluded = new Set(options.excludeTurnIds ?? []);
95
127
  const candidates = store.searchTurns({ query: question, threadId, limit: 24 })
96
- .filter((turn) => !excluded.has(turn.id));
128
+ .filter((turn) => !excluded.has(turn.id))
129
+ .filter((turn) => isUsableAnalyticalContextTurn(snapshotTurn(turn)));
97
130
  if (candidates.length === 0)
98
131
  return [];
99
132
  const ranked = await hybridRank(question, candidates.map((turn, index) => ({
@@ -135,7 +168,10 @@ export function conversationHistoryFromContext(context, limit = 6) {
135
168
  const envelope = conversationEnvelopeFromContext(context);
136
169
  if (!envelope)
137
170
  return [];
138
- return envelope.recentTurns.slice(-Math.max(1, limit)).flatMap((turn) => {
171
+ return envelope.recentTurns
172
+ .filter(isUsableAnalyticalContextTurn)
173
+ .slice(-Math.max(1, limit))
174
+ .flatMap((turn) => {
139
175
  const answer = turn.answerSummary?.trim();
140
176
  return [
141
177
  { role: 'user', text: turn.question },
@@ -250,6 +286,16 @@ export function conversationTurnContextState(turn) {
250
286
  }
251
287
  return 'context';
252
288
  }
289
+ function isUsableAnalyticalContextTurn(turn) {
290
+ const state = conversationTurnContextState(turn);
291
+ if (state === 'blocked' || state === 'unresolved')
292
+ return false;
293
+ if (turn.runStatus
294
+ && turn.runStatus !== 'completed'
295
+ && turn.runStatus !== 'needs_review')
296
+ return false;
297
+ return true;
298
+ }
253
299
  function hasWorkingState(state) {
254
300
  return state.entities.length > 0
255
301
  || state.measures.length > 0
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/conversation/snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/conversation/snapshot.ts"],"names":[],"mappings":"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"}
@@ -320,7 +320,7 @@ export function renderGovernedRelationalAst(ast, registry, driver) {
320
320
  };
321
321
  const expression = (columnId) => {
322
322
  const { relation, column } = locateColumn(columnId);
323
- return `${aliases.get(relation.qualifiedId)}.${dialect.quoteIdentifier(column.name)}`;
323
+ return `${aliases.get(relation.qualifiedId)}.${renderPhysicalIdentifier(column.name, driver, dialect.quoteIdentifier.bind(dialect))}`;
324
324
  };
325
325
  const selections = [
326
326
  ...ast.dimensions.map((item) => {
@@ -333,13 +333,13 @@ export function renderGovernedRelationalAst(ast, registry, driver) {
333
333
  return `${aggregate} AS ${dialect.quoteIdentifier(item.alias)}`;
334
334
  }),
335
335
  ];
336
- let sql = `SELECT\n ${selections.join(',\n ')}\nFROM ${quoteRelation(relations.get(ast.fromRelationId).sqlName, dialect.quoteIdentifier.bind(dialect))} AS r0`;
336
+ let sql = `SELECT\n ${selections.join(',\n ')}\nFROM ${renderPhysicalRelation(relations.get(ast.fromRelationId).sqlName, driver, dialect.quoteIdentifier.bind(dialect))} AS r0`;
337
337
  const joined = new Set([ast.fromRelationId]);
338
338
  for (const join of ast.joins) {
339
339
  const relationship = registry.relationships.find((candidate) => candidate.qualifiedId === join.relationshipId);
340
340
  const relation = relations.get(join.relationId);
341
341
  const conditions = relationship.keys.map((key) => `${expression(key.fromColumnId)} = ${expression(key.toColumnId)}`);
342
- sql += `\n${join.joinType.toUpperCase()} JOIN ${quoteRelation(relation.sqlName, dialect.quoteIdentifier.bind(dialect))} AS ${aliases.get(relation.qualifiedId)} ON ${conditions.join(' AND ')}`;
342
+ sql += `\n${join.joinType.toUpperCase()} JOIN ${renderPhysicalRelation(relation.sqlName, driver, dialect.quoteIdentifier.bind(dialect))} AS ${aliases.get(relation.qualifiedId)} ON ${conditions.join(' AND ')}`;
343
343
  joined.add(relation.qualifiedId);
344
344
  }
345
345
  if (ast.filters.length) {
@@ -435,8 +435,67 @@ function blocked(code, reason, candidateIds) {
435
435
  function safeAlias(value, fallback) {
436
436
  return value.toLowerCase().replace(/[^a-z0-9_]+/g, '_').replace(/^_+|_+$/g, '') || fallback;
437
437
  }
438
- function quoteRelation(value, quote) {
439
- return value.split('.').map(quote).join('.');
438
+ function isExplicitlyQuotedIdentifier(value) {
439
+ return value.length >= 2 && (value.startsWith('"') && value.endsWith('"')
440
+ || value.startsWith('`') && value.endsWith('`')
441
+ || value.startsWith('[') && value.endsWith(']'));
442
+ }
443
+ function splitQualifiedRelation(value) {
444
+ const segments = [];
445
+ let current = '';
446
+ let quote = null;
447
+ for (let index = 0; index < value.length; index += 1) {
448
+ const char = value[index];
449
+ if (quote) {
450
+ current += char;
451
+ if (char === quote) {
452
+ // SQL doubles quote characters inside quoted identifiers.
453
+ if (value[index + 1] === quote && quote !== ']') {
454
+ current += value[index + 1];
455
+ index += 1;
456
+ }
457
+ else {
458
+ quote = null;
459
+ }
460
+ }
461
+ continue;
462
+ }
463
+ if (char === '"' || char === '`' || char === '[') {
464
+ quote = char === '[' ? ']' : char;
465
+ current += char;
466
+ continue;
467
+ }
468
+ if (char === '.') {
469
+ if (current.trim())
470
+ segments.push(current.trim());
471
+ current = '';
472
+ continue;
473
+ }
474
+ current += char;
475
+ }
476
+ if (current.trim())
477
+ segments.push(current.trim());
478
+ return segments;
479
+ }
480
+ function renderPhysicalIdentifier(value, driver, quote) {
481
+ const trimmed = value.trim();
482
+ if (isExplicitlyQuotedIdentifier(trimmed))
483
+ return trimmed;
484
+ // dbt manifests commonly contain lowercase logical names for unquoted
485
+ // Snowflake objects. Quoting those names changes their meaning because
486
+ // Snowflake otherwise folds them to uppercase. Preserve normal unquoted
487
+ // physical identifiers and quote only names that actually require it.
488
+ if (driver?.toLowerCase() === 'snowflake'
489
+ && /^[A-Za-z_][A-Za-z0-9_$]*$/.test(trimmed)
490
+ && (trimmed === trimmed.toLowerCase() || trimmed === trimmed.toUpperCase())) {
491
+ return trimmed;
492
+ }
493
+ return quote(trimmed);
494
+ }
495
+ function renderPhysicalRelation(value, driver, quote) {
496
+ return splitQualifiedRelation(value)
497
+ .map((segment) => renderPhysicalIdentifier(segment, driver, quote))
498
+ .join('.');
440
499
  }
441
500
  function unique(values) {
442
501
  return [...new Set(values.filter((value) => Boolean(value)))]
@@ -1 +1 @@
1
- {"version":3,"file":"governed-relational-compiler.js","sourceRoot":"","sources":["../src/governed-relational-compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"governed-relational-compiler.js","sourceRoot":"","sources":["../src/governed-relational-compiler.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@
16
16
  * flips status, writes the review, and reindexes SQLite
17
17
  * Approved-only is enforced at retrieval; nothing here auto-applies a hint.
18
18
  */
19
- import type { CorrectionTrace, Hint, HintEvaluation, HintEvaluationCheck, HintDependency, HintLifecycleFailure, HintReview, HintScope } from './types.js';
19
+ import type { CorrectionTrace, Hint, HintEvaluation, HintEvaluationCheck, HintDependency, HintLifecycleFailure, HintLesson, HintReview, HintScope } from './types.js';
20
20
  export declare function tracesDir(projectRoot: string): string;
21
21
  export declare function hintsDir(projectRoot: string): string;
22
22
  export declare function evaluationsDir(projectRoot: string): string;
@@ -46,6 +46,8 @@ export interface RecordCorrectionTraceInput {
46
46
  hintTitle?: string;
47
47
  /** Override the derived candidate hint's guidance (defaults to the correction). */
48
48
  hintGuidance?: string;
49
+ /** Structured reusable experience. New writers keep its rule aligned to guidance. */
50
+ lesson?: Partial<HintLesson>;
49
51
  correctedSql?: string;
50
52
  tags?: string[];
51
53
  }
@@ -104,6 +106,7 @@ export interface UpdateHintCandidateInput {
104
106
  hintId: string;
105
107
  title?: string;
106
108
  guidance?: string;
109
+ lesson?: Partial<HintLesson>;
107
110
  correctedSql?: string;
108
111
  scope?: HintScope;
109
112
  snapshotId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"git-store.d.ts","sourceRoot":"","sources":["../../src/hints/git-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-store.d.ts","sourceRoot":"","sources":["../../src/hints/git-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAcH,OAAO,KAAK,EACV,eAAe,EACf,IAAI,EACJ,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,SAAS,EACV,MAAM,YAAY,CAAC;AASpB,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErD;AACD,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpD;AACD,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE1D;AACD,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhE;AAYD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;IAChC,mEAAmE;IACnE,eAAe,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACzC,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpF;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAStG;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,0BAA0B,GAChC,2BAA2B,CA+E7B;AAID,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CA6BnE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAwC3E;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,CAW5D;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAG/E;AAID,qBAAa,kBAAmB,SAAQ,KAAK;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAInD;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAExF;AAED,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAqE9F;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAuB1E;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAGzG;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,CAQjG;AAID,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,eAAe,EAAE,oBAAoB,EAAE,CAAC;CACzC;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,wBAAwB,GAC9B,IAAI,CAoCN;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,gBAAgB,GAAG,IAAI,CA+C/F;AAED,wBAAgB,UAAU,CACxB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,gBAAgB,CAuBlB;AAED,wBAAgB,UAAU,CACxB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE;IACL,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,eAAe,EAAE,oBAAoB,EAAE,CAAC;CACzC,GACA,gBAAgB,CA+BlB;AAED,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/E,gBAAgB,CA8BlB;AAkBD,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAQ1E;AAED,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,SAAoC,GAAG,MAAM,CAUvG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,SAAS,SAAoC,GAC5C,0BAA0B,CAa5B;AA0CD,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAOtE"}
@@ -22,11 +22,12 @@ import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync, } from
22
22
  import * as yaml from 'js-yaml';
23
23
  import { loadProjectConfig } from '@duckcodeailabs/dql-core';
24
24
  import { HintStore } from './store.js';
25
+ import { deriveHintLesson, normalizeHintLesson } from './lesson.js';
25
26
  const TRACES_DIR = ['.dql', 'traces'];
26
27
  const HINTS_DIR = ['.dql', 'hints'];
27
28
  const EVALUATIONS_DIR = ['.dql', 'evaluations'];
28
29
  const REVIEWS_DIR = ['.dql', 'reviews'];
29
- const HINT_INDEX_PROJECTION_VERSION = 'hint-graph-v1';
30
+ const HINT_INDEX_PROJECTION_VERSION = 'hint-graph-v2-lessons';
30
31
  export function tracesDir(projectRoot) {
31
32
  return join(projectRoot, ...TRACES_DIR);
32
33
  }
@@ -82,6 +83,14 @@ export function recordCorrectionTrace(projectRoot, input) {
82
83
  const traceId = genId('trace');
83
84
  const hintId = genId('hint');
84
85
  const createdAt = nowIso();
86
+ const guidance = (input.hintGuidance ?? input.correction).trim();
87
+ const lesson = deriveHintLesson({
88
+ question: input.question,
89
+ wrongAnswer: input.wrongAnswer,
90
+ correctedSql: input.correctedSql,
91
+ guidance,
92
+ lesson: input.lesson,
93
+ });
85
94
  const trace = {
86
95
  id: traceId,
87
96
  createdAt,
@@ -89,6 +98,7 @@ export function recordCorrectionTrace(projectRoot, input) {
89
98
  scope: cleanScope(input.scope),
90
99
  wrongAnswer: input.wrongAnswer,
91
100
  correction: input.correction,
101
+ lesson,
92
102
  rationale: input.rationale,
93
103
  author: input.author,
94
104
  anchorObjectKey: input.anchorObjectKey,
@@ -103,7 +113,8 @@ export function recordCorrectionTrace(projectRoot, input) {
103
113
  const hint = {
104
114
  id: hintId,
105
115
  title: input.hintTitle?.trim() || deriveTitle(input.question, input.scope),
106
- guidance: (input.hintGuidance ?? input.correction).trim(),
116
+ guidance: lesson.rule,
117
+ lesson,
107
118
  scope: cleanScope(input.scope),
108
119
  status: 'candidate',
109
120
  traceId,
@@ -136,6 +147,7 @@ export function writeHintFile(projectRoot, hint) {
136
147
  id: hint.id,
137
148
  title: hint.title,
138
149
  guidance: hint.guidance,
150
+ lesson: hint.lesson,
139
151
  status: hint.status,
140
152
  scope: cleanScope(hint.scope),
141
153
  traceId: hint.traceId,
@@ -165,6 +177,7 @@ export function readHintFile(path, sourcePath) {
165
177
  id: String(raw.id ?? ''),
166
178
  title: String(raw.title ?? ''),
167
179
  guidance: String(raw.guidance ?? ''),
180
+ lesson: lessonFromRaw(raw.lesson, String(raw.guidance ?? '')),
168
181
  status: raw.status ?? 'candidate',
169
182
  scope: {
170
183
  metric: strOrUndef(scope.metric),
@@ -337,15 +350,22 @@ export function updateHintCandidate(projectRoot, input) {
337
350
  throw new HintLifecycleError('HINT_NOT_CANDIDATE', `Hint ${input.hintId} is ${hint.status}; only candidates can be edited.`);
338
351
  }
339
352
  const title = input.title?.trim() || hint.title;
340
- const guidance = input.guidance?.trim() || hint.guidance;
353
+ const guidance = input.guidance?.trim() || input.lesson?.rule?.trim() || hint.guidance;
341
354
  const correctedSql = input.correctedSql?.trim() || hint.correctedSql;
342
355
  if (!title || !guidance) {
343
356
  throw new HintLifecycleError('HINT_CONTENT_REQUIRED', 'A candidate requires a title and guidance.');
344
357
  }
358
+ const lesson = normalizeHintLesson(input.lesson ?? hint.lesson, {
359
+ rule: guidance,
360
+ category: hint.lesson?.category ?? 'semantic_rule',
361
+ intentExamples: hint.lesson?.intentExamples ?? [],
362
+ });
363
+ lesson.rule = guidance;
345
364
  const updated = {
346
365
  ...hint,
347
366
  title,
348
- guidance,
367
+ guidance: lesson.rule,
368
+ lesson,
349
369
  correctedSql,
350
370
  scope: input.scope ? cleanScope(input.scope) : hint.scope,
351
371
  snapshotId: input.snapshotId,
@@ -631,6 +651,20 @@ function cleanLifecycleErrors(value) {
631
651
  function appendLifecycleError(existing, next) {
632
652
  return [...(existing ?? []), next].slice(-20);
633
653
  }
654
+ function lessonFromRaw(raw, guidance) {
655
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
656
+ return undefined;
657
+ try {
658
+ return normalizeHintLesson(raw, {
659
+ rule: guidance,
660
+ category: 'semantic_rule',
661
+ intentExamples: [],
662
+ });
663
+ }
664
+ catch {
665
+ return undefined;
666
+ }
667
+ }
634
668
  function stripUndefined(obj) {
635
669
  const out = {};
636
670
  for (const [key, value] of Object.entries(obj)) {