@duckcodeailabs/dql-agent 1.7.1 → 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.
Files changed (92) hide show
  1. package/dist/agent-run-engine.d.ts +2 -0
  2. package/dist/agent-run-engine.d.ts.map +1 -1
  3. package/dist/agent-run-engine.js +67 -19
  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 +14 -50
  7. package/dist/agent-run-gates.js.map +1 -1
  8. package/dist/agent-run-planner.d.ts.map +1 -1
  9. package/dist/agent-run-planner.js +14 -4
  10. package/dist/agent-run-planner.js.map +1 -1
  11. package/dist/agentic/toolset.js +32 -2
  12. package/dist/agentic/toolset.js.map +1 -1
  13. package/dist/answer-loop.d.ts +24 -0
  14. package/dist/answer-loop.d.ts.map +1 -1
  15. package/dist/answer-loop.js +387 -55
  16. package/dist/answer-loop.js.map +1 -1
  17. package/dist/answer-shape.js +14 -1
  18. package/dist/answer-shape.js.map +1 -1
  19. package/dist/cascade/budgets.d.ts.map +1 -1
  20. package/dist/cascade/budgets.js +5 -2
  21. package/dist/cascade/budgets.js.map +1 -1
  22. package/dist/conversation/session-store.d.ts +3 -0
  23. package/dist/conversation/session-store.d.ts.map +1 -1
  24. package/dist/conversation/session-store.js +8 -3
  25. package/dist/conversation/session-store.js.map +1 -1
  26. package/dist/conversation/snapshot.d.ts +2 -0
  27. package/dist/conversation/snapshot.d.ts.map +1 -1
  28. package/dist/conversation/snapshot.js +1 -0
  29. package/dist/conversation/snapshot.js.map +1 -1
  30. package/dist/conversation/working-state.d.ts +3 -0
  31. package/dist/conversation/working-state.d.ts.map +1 -1
  32. package/dist/conversation/working-state.js +26 -0
  33. package/dist/conversation/working-state.js.map +1 -1
  34. package/dist/domain-context.d.ts +14 -0
  35. package/dist/domain-context.d.ts.map +1 -1
  36. package/dist/domain-context.js +10 -0
  37. package/dist/domain-context.js.map +1 -1
  38. package/dist/embeddings/provider.d.ts +3 -1
  39. package/dist/embeddings/provider.d.ts.map +1 -1
  40. package/dist/embeddings/provider.js +19 -8
  41. package/dist/embeddings/provider.js.map +1 -1
  42. package/dist/index.d.ts +6 -3
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +33 -4
  45. package/dist/index.js.map +1 -1
  46. package/dist/intent-controller.d.ts +15 -0
  47. package/dist/intent-controller.d.ts.map +1 -1
  48. package/dist/intent-controller.js +4 -1
  49. package/dist/intent-controller.js.map +1 -1
  50. package/dist/meaning-resolution.d.ts +110 -0
  51. package/dist/meaning-resolution.d.ts.map +1 -0
  52. package/dist/meaning-resolution.js +155 -0
  53. package/dist/meaning-resolution.js.map +1 -0
  54. package/dist/metadata/analysis-planner.d.ts +15 -1
  55. package/dist/metadata/analysis-planner.d.ts.map +1 -1
  56. package/dist/metadata/analysis-planner.js +169 -50
  57. package/dist/metadata/analysis-planner.js.map +1 -1
  58. package/dist/metadata/block-fit.d.ts.map +1 -1
  59. package/dist/metadata/block-fit.js +51 -5
  60. package/dist/metadata/block-fit.js.map +1 -1
  61. package/dist/metadata/catalog.d.ts +62 -3
  62. package/dist/metadata/catalog.d.ts.map +1 -1
  63. package/dist/metadata/catalog.js +911 -98
  64. package/dist/metadata/catalog.js.map +1 -1
  65. package/dist/metadata/grain-gate.js +27 -9
  66. package/dist/metadata/grain-gate.js.map +1 -1
  67. package/dist/metadata/meaning-evidence.d.ts +70 -0
  68. package/dist/metadata/meaning-evidence.d.ts.map +1 -0
  69. package/dist/metadata/meaning-evidence.js +333 -0
  70. package/dist/metadata/meaning-evidence.js.map +1 -0
  71. package/dist/metadata/metric-match.d.ts.map +1 -1
  72. package/dist/metadata/metric-match.js +5 -2
  73. package/dist/metadata/metric-match.js.map +1 -1
  74. package/dist/router.d.ts +16 -4
  75. package/dist/router.d.ts.map +1 -1
  76. package/dist/router.js +409 -21
  77. package/dist/router.js.map +1 -1
  78. package/dist/semantic-bridge/compose.d.ts +12 -0
  79. package/dist/semantic-bridge/compose.d.ts.map +1 -1
  80. package/dist/semantic-bridge/compose.js +177 -14
  81. package/dist/semantic-bridge/compose.js.map +1 -1
  82. package/dist/semantic-bridge/member-select.d.ts.map +1 -1
  83. package/dist/semantic-bridge/member-select.js +59 -10
  84. package/dist/semantic-bridge/member-select.js.map +1 -1
  85. package/dist/skills/loader.d.ts.map +1 -1
  86. package/dist/skills/loader.js +35 -33
  87. package/dist/skills/loader.js.map +1 -1
  88. package/dist/synthesize.d.ts +2 -0
  89. package/dist/synthesize.d.ts.map +1 -1
  90. package/dist/synthesize.js +84 -13
  91. package/dist/synthesize.js.map +1 -1
  92. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"metric-match.js","sourceRoot":"","sources":["../../src/metadata/metric-match.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metric-match.js","sourceRoot":"","sources":["../../src/metadata/metric-match.ts"],"names":[],"mappings":"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"}
package/dist/router.d.ts CHANGED
@@ -16,6 +16,7 @@
16
16
  */
17
17
  import type { AgentRunRequest, AgentRouter } from "./agent-run-engine.js";
18
18
  import type { MetadataAgentIntent } from "./metadata/catalog.js";
19
+ import { type AgentMeaningResolver, type AgentRetrievalEvidence, type MeaningResolution } from "./meaning-resolution.js";
19
20
  /** The router's fine-grained classification of a turn. */
20
21
  export interface RouterClassification {
21
22
  category: "conversational" | "capability" | "general_knowledge" | "data_lookup" | "data_analysis" | "authoring" | "app" | "unclear";
@@ -35,6 +36,15 @@ export interface HybridRouterOptions {
35
36
  complete?: RouterCompletion;
36
37
  /** Builds a compact catalog summary so the classifier can tell data from general knowledge. */
37
38
  getCatalogContext?: (request: AgentRunRequest) => string | Promise<string>;
39
+ /**
40
+ * Preferred structured retriever. It must return globally ranked, qualified
41
+ * evidence before the router is allowed to classify a turn as general knowledge.
42
+ */
43
+ getEvidence?: (request: AgentRunRequest) => AgentRetrievalEvidence | undefined | Promise<AgentRetrievalEvidence | undefined>;
44
+ /** Optional dedicated meaning resolver. When absent, `complete` is used once. */
45
+ resolveMeaning?: AgentMeaningResolver;
46
+ /** Maximum candidate cards sent to meaning resolution. Default 12. */
47
+ maxMeaningCandidates?: number;
38
48
  /** Deterministic confidence at/above which the LLM is never called. Default 0.7. */
39
49
  llmThreshold?: number;
40
50
  /** Max cached classifications. Default 200. */
@@ -51,11 +61,13 @@ export interface HybridRouterOptions {
51
61
  * decision — routing itself keys off `action`/`category`.
52
62
  */
53
63
  declare function intentForCategory(category: RouterClassification["category"]): MetadataAgentIntent | undefined;
64
+ declare function parseMeaningResolution(raw: string): MeaningResolution | undefined;
54
65
  /**
55
- * Build a hybrid router. Runs the deterministic cascade first and returns it
56
- * unchanged when confident; otherwise spends one cached LLM classification call,
57
- * falling back to the deterministic decision on any failure.
66
+ * Build a retrieval-first hybrid router. Narrow conversational/app preflight is
67
+ * deterministic. Every other turn loads structured evidence before any
68
+ * general-knowledge classification, then uses at most one bounded meaning call.
69
+ * The legacy string catalog path remains supported for hosts during migration.
58
70
  */
59
71
  export declare function createHybridRouter(options?: HybridRouterOptions): AgentRouter;
60
- export { intentForCategory };
72
+ export { intentForCategory, parseMeaningResolution };
61
73
  //# sourceMappingURL=router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EACJ,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,aAAa,GACb,eAAe,GACf,WAAW,GACX,KAAK,GACL,SAAS,CAAC;IACd,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mGAAmG;AACnG,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEtB,MAAM,WAAW,mBAAmB;IAClC,gGAAgG;IAChG,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,+FAA+F;IAC/F,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3E,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAWD;;;;GAIG;AACH,iBAAS,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,GAAG,mBAAmB,GAAG,SAAS,CAWtG;AAqJD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,WAAW,CAuDjF;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAQL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAE3B,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EACJ,gBAAgB,GAChB,YAAY,GACZ,mBAAmB,GACnB,aAAa,GACb,eAAe,GACf,WAAW,GACX,KAAK,GACL,SAAS,CAAC;IACd,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mGAAmG;AACnG,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEtB,MAAM,WAAW,mBAAmB;IAClC,gGAAgG;IAChG,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,+FAA+F;IAC/F,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3E;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,sBAAsB,GAAG,SAAS,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;IAC7H,iFAAiF;IACjF,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,sEAAsE;IACtE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAWD;;;;GAIG;AACH,iBAAS,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,GAAG,mBAAmB,GAAG,SAAS,CAWtG;AAkOD,iBAAS,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CA4D1E;AAuMD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,WAAW,CAyKjF;AAED,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,CAAC"}
package/dist/router.js CHANGED
@@ -15,6 +15,7 @@
15
15
  * question never pays twice.
16
16
  */
17
17
  import { classifyConversationalTurn, decideAgentAction, } from "./intent-controller.js";
18
+ import { buildMeaningEvidencePackage, defaultQueryIntent, findExplicitEvidenceReference, questionTypeFromText, routeForEvidenceCandidate, validateMeaningResolution, } from "./meaning-resolution.js";
18
19
  const DEFAULT_THRESHOLD = 0.7;
19
20
  const DEFAULT_CACHE_SIZE = 200;
20
21
  const DEFAULT_CACHE_TTL_MS = 10 * 60 * 1000;
@@ -177,16 +178,316 @@ function parseClassification(raw) {
177
178
  rationale,
178
179
  };
179
180
  }
181
+ function buildMeaningSystemPrompt() {
182
+ return [
183
+ "You resolve business meaning for DQL, a governed analytics system.",
184
+ "The host already performed broad retrieval. Compare ONLY the supplied candidate cards.",
185
+ "Select the concept that best matches the full question, entity, dimensions, filters, time grain, formula, aggregation, domain, and conversation context.",
186
+ "Trust is an execution preference only after relevance and compatibility. Never select an unrelated certified block over a relevant semantic metric.",
187
+ "You may reference ONLY candidate IDs supplied below. Never invent an ID, table, column, metric, relationship, or filter value.",
188
+ "Use low confidence and recommend clarify when material business meanings remain unresolved.",
189
+ "Respond with ONLY one JSON object matching this shape:",
190
+ '{"interpretedQuestion":string,"questionType":"definition"|"value"|"ranking"|"trend"|"comparison"|"diagnosis"|"research","selectedConceptIds":string[],"recommendedExecutionId"?:string,"queryIntent":{"measures":string[],"dimensions":string[],"filters":[{"field":string,"value":string}],"timeRange"?:string,"timeGrain"?:string,"order"?:"asc"|"desc","limit"?:number},"rejectedCandidates":[{"id":string,"reason":string}],"confidence":"high"|"medium"|"low","missingInformation":string[],"recommendedRoute":"certified"|"semantic"|"governed_sql"|"exploratory"|"clarify","clarifyingQuestion"?:string}',
191
+ ].join("\n");
192
+ }
193
+ function buildMeaningUserPrompt(request, evidence, candidates) {
194
+ const cards = candidates.map((candidate) => ({
195
+ id: candidate.id,
196
+ kind: candidate.kind,
197
+ trustTier: candidate.trustTier,
198
+ name: compactText(candidate.name, 160),
199
+ aliases: compactArray(candidate.aliases, 8, 120),
200
+ definition: compactText(candidate.definition, 800),
201
+ formula: compactText(candidate.formula, 500),
202
+ aggregation: compactText(candidate.aggregation, 120),
203
+ domain: compactText(candidate.domain, 120),
204
+ semanticModel: compactText(candidate.semanticModel, 160),
205
+ primaryEntity: compactText(candidate.primaryEntity, 160),
206
+ dimensions: compactArray(candidate.dimensions, 16, 120),
207
+ timeGrains: compactArray(candidate.timeGrains, 8, 80),
208
+ requiredParameters: compactArray(candidate.requiredParameters, 12, 120),
209
+ sourceObjects: compactArray(candidate.sourceObjects, 8, 160),
210
+ relationshipEvidence: compactArray(candidate.relationshipEvidence, 8, 240),
211
+ relevanceScore: candidate.relevanceScore,
212
+ matchReasons: compactArray(candidate.matchReasons, 8, 240),
213
+ compatibility: candidate.compatibility,
214
+ compatibilityFacts: compactArray(candidate.compatibilityFacts, 8, 240),
215
+ }));
216
+ const lines = [
217
+ `Question: ${compactText(request.question, 2_000)}`,
218
+ `Parsed request hints: ${JSON.stringify(compactQueryIntent(defaultQueryIntent(evidence)))}`,
219
+ `Candidate cards: ${JSON.stringify(cards)}`,
220
+ ];
221
+ if (request.history?.length) {
222
+ lines.push(`Recent conversation: ${JSON.stringify(request.history.slice(-4).map((turn) => ({
223
+ role: turn.role,
224
+ text: compactText(turn.text, 1_200),
225
+ })))}`);
226
+ }
227
+ lines.push("Resolve the intended meaning and return JSON only.");
228
+ return lines.join("\n");
229
+ }
230
+ function compactText(value, maxLength) {
231
+ if (value === undefined)
232
+ return undefined;
233
+ const normalized = value.trim().replace(/\s+/g, " ");
234
+ return normalized.length <= maxLength ? normalized : `${normalized.slice(0, Math.max(1, maxLength - 1))}…`;
235
+ }
236
+ function compactArray(value, maxItems, maxItemLength) {
237
+ return value?.slice(0, maxItems).map((item) => compactText(item, maxItemLength) ?? "");
238
+ }
239
+ function compactQueryIntent(intent) {
240
+ return {
241
+ measures: compactArray(intent.measures, 8, 160) ?? [],
242
+ dimensions: compactArray(intent.dimensions, 12, 160) ?? [],
243
+ filters: intent.filters.slice(0, 8).map((filter) => ({
244
+ field: compactText(filter.field, 160) ?? "",
245
+ value: compactText(filter.value, 240) ?? "",
246
+ })),
247
+ ...(intent.timeRange ? { timeRange: compactText(intent.timeRange, 160) } : {}),
248
+ ...(intent.timeGrain ? { timeGrain: compactText(intent.timeGrain, 80) } : {}),
249
+ ...(intent.order ? { order: intent.order } : {}),
250
+ ...(intent.limit !== undefined ? { limit: intent.limit } : {}),
251
+ };
252
+ }
253
+ const QUESTION_TYPES = new Set(["definition", "value", "ranking", "trend", "comparison", "diagnosis", "research"]);
254
+ const MEANING_CONFIDENCES = new Set(["high", "medium", "low"]);
255
+ const MEANING_ROUTES = new Set(["certified", "semantic", "governed_sql", "exploratory", "clarify"]);
256
+ function parseMeaningResolution(raw) {
257
+ const parsed = extractJsonObject(raw);
258
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
259
+ return undefined;
260
+ const record = parsed;
261
+ if (typeof record.interpretedQuestion !== "string" || !record.interpretedQuestion.trim())
262
+ return undefined;
263
+ if (typeof record.questionType !== "string" || !QUESTION_TYPES.has(record.questionType))
264
+ return undefined;
265
+ if (!Array.isArray(record.selectedConceptIds) || record.selectedConceptIds.some((id) => typeof id !== "string"))
266
+ return undefined;
267
+ if (typeof record.confidence !== "string" || !MEANING_CONFIDENCES.has(record.confidence))
268
+ return undefined;
269
+ if (typeof record.recommendedRoute !== "string" || !MEANING_ROUTES.has(record.recommendedRoute))
270
+ return undefined;
271
+ if (!record.queryIntent || typeof record.queryIntent !== "object" || Array.isArray(record.queryIntent))
272
+ return undefined;
273
+ const query = record.queryIntent;
274
+ const measures = stringArray(query.measures);
275
+ const dimensions = stringArray(query.dimensions);
276
+ const missingInformation = stringArray(record.missingInformation);
277
+ if (!measures || !dimensions || !missingInformation || !Array.isArray(query.filters))
278
+ return undefined;
279
+ const filters = query.filters.flatMap((filter) => {
280
+ if (!filter || typeof filter !== "object" || Array.isArray(filter))
281
+ return [];
282
+ const item = filter;
283
+ return typeof item.field === "string" && typeof item.value === "string"
284
+ ? [{ field: item.field, value: item.value }]
285
+ : [];
286
+ });
287
+ if (filters.length !== query.filters.length)
288
+ return undefined;
289
+ if (!Array.isArray(record.rejectedCandidates))
290
+ return undefined;
291
+ const rejectedCandidates = record.rejectedCandidates.flatMap((candidate) => {
292
+ if (!candidate || typeof candidate !== "object" || Array.isArray(candidate))
293
+ return [];
294
+ const item = candidate;
295
+ return typeof item.id === "string" && typeof item.reason === "string"
296
+ ? [{ id: item.id, reason: item.reason }]
297
+ : [];
298
+ });
299
+ if (rejectedCandidates.length !== record.rejectedCandidates.length)
300
+ return undefined;
301
+ const recommendedExecutionId = typeof record.recommendedExecutionId === "string"
302
+ ? record.recommendedExecutionId
303
+ : undefined;
304
+ const clarifyingQuestion = typeof record.clarifyingQuestion === "string" && record.clarifyingQuestion.trim()
305
+ ? record.clarifyingQuestion.trim()
306
+ : undefined;
307
+ return {
308
+ interpretedQuestion: record.interpretedQuestion.trim(),
309
+ questionType: record.questionType,
310
+ selectedConceptIds: record.selectedConceptIds,
311
+ ...(recommendedExecutionId ? { recommendedExecutionId } : {}),
312
+ queryIntent: {
313
+ measures,
314
+ dimensions,
315
+ filters,
316
+ ...(typeof query.timeRange === "string" ? { timeRange: query.timeRange } : {}),
317
+ ...(typeof query.timeGrain === "string" ? { timeGrain: query.timeGrain } : {}),
318
+ ...(query.order === "asc" || query.order === "desc" ? { order: query.order } : {}),
319
+ ...(typeof query.limit === "number" && Number.isFinite(query.limit) && query.limit > 0
320
+ ? { limit: Math.floor(query.limit) }
321
+ : {}),
322
+ },
323
+ rejectedCandidates,
324
+ confidence: record.confidence,
325
+ missingInformation,
326
+ recommendedRoute: record.recommendedRoute,
327
+ ...(clarifyingQuestion ? { clarifyingQuestion } : {}),
328
+ };
329
+ }
330
+ function stringArray(value) {
331
+ return Array.isArray(value) && value.every((item) => typeof item === "string") ? value : undefined;
332
+ }
180
333
  /** Normalize a question for cache keying (whitespace/case-insensitive). */
181
- function cacheKey(request) {
334
+ function cacheKey(request, evidence, catalogContext) {
182
335
  const q = request.question.trim().toLowerCase().replace(/\s+/g, " ");
183
336
  const last = request.history?.length ? request.history[request.history.length - 1].text.trim().toLowerCase() : "";
184
- return `${q}${last}`;
337
+ const evidenceVersion = evidence
338
+ ? evidence.sourceFingerprint
339
+ ?? evidence.snapshotId
340
+ ?? evidence.candidates.map((candidate) => `${candidate.id}:${candidate.relevanceScore}:${candidate.compatibility}`).join("|")
341
+ : catalogContext ?? "";
342
+ return `${q}${last}${evidenceVersion}`;
343
+ }
344
+ function retrievalTrace(evidence, candidates) {
345
+ return {
346
+ ...(evidence.snapshotId ? { snapshotId: evidence.snapshotId } : {}),
347
+ ...(evidence.sourceFingerprint ? { sourceFingerprint: evidence.sourceFingerprint } : {}),
348
+ candidateCount: candidates.length,
349
+ candidateIds: candidates.map((candidate) => candidate.id),
350
+ };
351
+ }
352
+ function routeDecisionForResolution(base, evidence, candidates, resolution, source) {
353
+ const needsClarification = resolution.confidence === "low" || resolution.recommendedRoute === "clarify";
354
+ const analytical = resolution.questionType === "diagnosis" || resolution.questionType === "research";
355
+ const reason = needsClarification
356
+ ? `The retrieved evidence supports multiple business meanings: ${resolution.interpretedQuestion}`
357
+ : `Resolved the question against ${resolution.selectedConceptIds.join(", ")}: ${resolution.interpretedQuestion}`;
358
+ return {
359
+ ...base,
360
+ action: needsClarification ? "clarify" : analytical ? "investigate" : "answer",
361
+ confidence: resolution.confidence === "high" ? 0.9 : resolution.confidence === "medium" ? 0.72 : 0.45,
362
+ reason,
363
+ source,
364
+ category: analytical ? "data_analysis" : needsClarification ? "unclear" : "data_lookup",
365
+ depth: analytical ? "deep" : "quick",
366
+ meaningResolution: resolution,
367
+ retrievalEvidence: retrievalTrace(evidence, candidates),
368
+ requiresClarification: needsClarification,
369
+ ...(needsClarification
370
+ ? { clarifyingQuestion: resolution.clarifyingQuestion ?? buildEvidenceClarification(candidates, resolution.missingInformation) }
371
+ : {}),
372
+ };
373
+ }
374
+ function buildEvidenceClarification(candidates, missing = []) {
375
+ const governedChoices = candidates.filter((candidate) => candidate.compatibility !== "incompatible"
376
+ && (candidate.kind === "certified_block" || candidate.kind === "semantic_metric" || candidate.kind === "semantic_member"));
377
+ const choicePool = governedChoices.length > 1
378
+ ? governedChoices
379
+ : candidates.filter((candidate) => candidate.compatibility !== "incompatible");
380
+ const choices = choicePool.slice(0, 3).map((candidate) => {
381
+ const meaning = candidate.definition?.trim() || candidate.name;
382
+ return `${candidate.name} — ${meaning}`;
383
+ });
384
+ if (choices.length > 1)
385
+ return `Which meaning do you want: ${choices.join("; or ")}?`;
386
+ if (missing.length > 0)
387
+ return `I found relevant governed context, but need ${missing.join(" and ")}. What should I use?`;
388
+ return "Which governed business meaning should I use for this question?";
389
+ }
390
+ function directResolution(request, evidence, candidate) {
391
+ return {
392
+ interpretedQuestion: request.question,
393
+ questionType: questionTypeFromText(request.question),
394
+ selectedConceptIds: [candidate.id],
395
+ recommendedExecutionId: candidate.id,
396
+ queryIntent: defaultQueryIntent(evidence),
397
+ rejectedCandidates: [],
398
+ confidence: "high",
399
+ missingInformation: [],
400
+ recommendedRoute: routeForEvidenceCandidate(candidate),
401
+ };
402
+ }
403
+ function routeWithoutMeaningModel(request, base, evidence, candidates) {
404
+ const exactCompatible = candidates.filter((candidate) => candidate.exactMatch && candidate.compatibility !== "incompatible");
405
+ if (exactCompatible.length === 1 && !hasMateriallyRelatedCompetitor(exactCompatible[0], candidates)) {
406
+ return routeDecisionForResolution(base, evidence, candidates, directResolution(request, evidence, exactCompatible[0]), "heuristic");
407
+ }
408
+ if (base.action === "investigate") {
409
+ return {
410
+ ...base,
411
+ category: "data_analysis",
412
+ retrievalEvidence: retrievalTrace(evidence, candidates),
413
+ };
414
+ }
415
+ return {
416
+ ...base,
417
+ action: "answer",
418
+ confidence: Math.max(base.confidence, 0.7),
419
+ reason: `Retrieved ${candidates.length} governed candidate${candidates.length === 1 ? "" : "s"}; the answer executor will resolve them without a router general-knowledge fallback.`,
420
+ category: "data_lookup",
421
+ retrievalEvidence: retrievalTrace(evidence, candidates),
422
+ };
423
+ }
424
+ function hasMateriallyRelatedCompetitor(exact, candidates) {
425
+ const floor = Math.max(0.55, exact.relevanceScore - 0.2);
426
+ return candidates.some((candidate) => candidate.id !== exact.id
427
+ && candidate.compatibility !== "incompatible"
428
+ && candidate.relevanceScore >= floor);
429
+ }
430
+ /**
431
+ * Skip the meaning-model call only when host-owned fit checks have already
432
+ * proven one strongly relevant governed execution path and no other executable
433
+ * governed meaning is close. Partial/raw context never forces a clarification
434
+ * against a uniquely compatible certified block; a second compatible block or
435
+ * metric still goes to the bounded AI resolver.
436
+ */
437
+ function dominantCompatibleGovernedCandidate(candidates) {
438
+ const compatible = candidates.filter((candidate) => candidate.compatibility === "compatible"
439
+ && (candidate.kind === "certified_block" || candidate.kind === "semantic_metric" || candidate.kind === "semantic_member"));
440
+ if (compatible.length === 0)
441
+ return undefined;
442
+ const best = compatible[0];
443
+ // Similar semantic metric names are exactly where the tiny evidence resolver
444
+ // adds value. This zero-call shortcut is reserved for an executable certified
445
+ // block whose complete output/filter/grain contract has already passed.
446
+ if (best.kind !== "certified_block")
447
+ return undefined;
448
+ if (best.relevanceScore < 0.82)
449
+ return undefined;
450
+ const competitorFloor = Math.max(0.7, best.relevanceScore - 0.12);
451
+ const hasExecutableCompetitor = compatible.some((candidate) => candidate.id !== best.id && candidate.relevanceScore >= competitorFloor);
452
+ return hasExecutableCompetitor ? undefined : best;
453
+ }
454
+ function shouldDeferCompositionalFollowUpToExecutor(base, candidates) {
455
+ if (!base.followsUp)
456
+ return false;
457
+ const executableKinds = new Set([
458
+ 'certified_block',
459
+ 'semantic_metric',
460
+ 'semantic_member',
461
+ 'dql_modeling',
462
+ 'dbt_model',
463
+ 'dbt_source',
464
+ 'sql_table',
465
+ 'sql_column',
466
+ ]);
467
+ const relevant = candidates.filter((candidate) => candidate.compatibility !== 'incompatible' && executableKinds.has(candidate.kind));
468
+ if (relevant.length === 0)
469
+ return false;
470
+ // If a complete governed executor exists, similar names still deserve the tiny
471
+ // meaning resolver. When every candidate is only partial, however, the turn is
472
+ // necessarily a composition. A separate resolver cannot authorize execution;
473
+ // it only duplicates the SQL agent's evidence decision and adds a full provider
474
+ // round trip. Let the single bounded executor select and compose from the same
475
+ // ranked cards plus the typed prior-result carrier.
476
+ return !relevant.some((candidate) => candidate.compatibility === 'compatible');
477
+ }
478
+ function rethrowCancellation(error, ...signals) {
479
+ for (const signal of signals) {
480
+ if (signal?.aborted)
481
+ throw signal.reason ?? error;
482
+ }
483
+ if (error instanceof Error && error.name === "AbortError")
484
+ throw error;
185
485
  }
186
486
  /**
187
- * Build a hybrid router. Runs the deterministic cascade first and returns it
188
- * unchanged when confident; otherwise spends one cached LLM classification call,
189
- * falling back to the deterministic decision on any failure.
487
+ * Build a retrieval-first hybrid router. Narrow conversational/app preflight is
488
+ * deterministic. Every other turn loads structured evidence before any
489
+ * general-knowledge classification, then uses at most one bounded meaning call.
490
+ * The legacy string catalog path remains supported for hosts during migration.
190
491
  */
191
492
  export function createHybridRouter(options = {}) {
192
493
  const threshold = options.llmThreshold ?? DEFAULT_THRESHOLD;
@@ -195,6 +496,15 @@ export function createHybridRouter(options = {}) {
195
496
  const cache = new Map();
196
497
  let tick = 0;
197
498
  const now = options.now ?? (() => { tick += 1; return tick; });
499
+ const remember = (key, decision) => {
500
+ cache.set(key, { decision, at: now() });
501
+ if (cache.size > cacheSize) {
502
+ const oldest = cache.keys().next().value;
503
+ if (oldest !== undefined)
504
+ cache.delete(oldest);
505
+ }
506
+ return decision;
507
+ };
198
508
  const deterministic = (request) => {
199
509
  const conversationalKind = classifyConversationalTurn(request.question, (request.history?.length ?? 0) > 0);
200
510
  return decideAgentAction({
@@ -207,40 +517,118 @@ export function createHybridRouter(options = {}) {
207
517
  return {
208
518
  async decide(request) {
209
519
  const base = deterministic(request);
210
- // Confident heuristic (or no LLM available) keep the fast, offline decision.
520
+ // The only pre-retrieval exits are deliberately narrow and unambiguously
521
+ // non-analytical. App composition has its own catalog-grounded workflow.
522
+ if (base.action === "converse" || base.action === "compose_app") {
523
+ return { ...base, source: base.source ?? "heuristic" };
524
+ }
525
+ let evidence;
526
+ if (options.getEvidence) {
527
+ try {
528
+ evidence = await options.getEvidence(request);
529
+ }
530
+ catch (error) {
531
+ rethrowCancellation(error, request.signal, options.signal);
532
+ // Retrieval failure must not prevent the existing fallback path. The
533
+ // answer executor can still return a specific index/configuration error.
534
+ }
535
+ }
536
+ if (evidence) {
537
+ const candidates = buildMeaningEvidencePackage(evidence, options.maxMeaningCandidates ?? 12);
538
+ if (candidates.length > 0) {
539
+ const explicit = findExplicitEvidenceReference(request.question, candidates);
540
+ if (explicit && explicit.compatibility !== "incompatible") {
541
+ return routeDecisionForResolution(base, evidence, candidates, directResolution(request, evidence, explicit), "heuristic");
542
+ }
543
+ const exactCompatible = candidates.filter((candidate) => candidate.exactMatch && candidate.compatibility !== "incompatible");
544
+ if (exactCompatible.length === 1 && !hasMateriallyRelatedCompetitor(exactCompatible[0], candidates)) {
545
+ return routeDecisionForResolution(base, evidence, candidates, directResolution(request, evidence, exactCompatible[0]), "heuristic");
546
+ }
547
+ const dominant = dominantCompatibleGovernedCandidate(candidates);
548
+ if (dominant) {
549
+ return routeDecisionForResolution(base, evidence, candidates, directResolution(request, evidence, dominant), "heuristic");
550
+ }
551
+ if (shouldDeferCompositionalFollowUpToExecutor(base, candidates)) {
552
+ return routeWithoutMeaningModel(request, base, evidence, candidates);
553
+ }
554
+ const key = cacheKey(request, evidence);
555
+ const cached = cache.get(key);
556
+ if (cached && (options.cacheTtlMs === undefined || now() - cached.at < cacheTtlMs)) {
557
+ return { ...cached.decision, source: "cache" };
558
+ }
559
+ try {
560
+ const resolution = options.resolveMeaning
561
+ ? await options.resolveMeaning({ question: request.question, history: request.history, evidence, candidates, signal: request.signal ?? options.signal })
562
+ : options.complete
563
+ ? parseMeaningResolution(await options.complete({
564
+ system: buildMeaningSystemPrompt(),
565
+ user: buildMeaningUserPrompt(request, evidence, candidates),
566
+ signal: request.signal ?? options.signal,
567
+ }))
568
+ : undefined;
569
+ if (resolution) {
570
+ const validated = validateMeaningResolution(resolution, candidates);
571
+ if (validated.ok) {
572
+ return remember(key, routeDecisionForResolution(base, evidence, candidates, validated.resolution, "llm"));
573
+ }
574
+ const invalidResolution = {
575
+ interpretedQuestion: request.question,
576
+ questionType: questionTypeFromText(request.question),
577
+ selectedConceptIds: [],
578
+ queryIntent: defaultQueryIntent(evidence),
579
+ rejectedCandidates: [],
580
+ confidence: "low",
581
+ missingInformation: [validated.reason],
582
+ recommendedRoute: "clarify",
583
+ clarifyingQuestion: buildEvidenceClarification(candidates, [validated.reason]),
584
+ };
585
+ return remember(key, routeDecisionForResolution(base, evidence, candidates, invalidResolution, "llm"));
586
+ }
587
+ }
588
+ catch (error) {
589
+ rethrowCancellation(error, request.signal, options.signal);
590
+ // A resolver transport/parse failure falls back without losing the
591
+ // retrieval signal or permitting a general-knowledge misroute.
592
+ }
593
+ return routeWithoutMeaningModel(request, base, evidence, candidates);
594
+ }
595
+ }
596
+ // Legacy/no-evidence path. A confident analytical heuristic stays offline;
597
+ // only the ambiguous middle pays the old classification call. Importantly,
598
+ // load the catalog context before the model may choose general knowledge.
211
599
  if (base.confidence >= threshold || !options.complete) {
212
600
  return { ...base, source: base.source ?? "heuristic" };
213
601
  }
214
- const key = cacheKey(request);
602
+ let catalogContext;
603
+ try {
604
+ catalogContext = options.getCatalogContext ? await options.getCatalogContext(request) : undefined;
605
+ }
606
+ catch (error) {
607
+ rethrowCancellation(error, request.signal, options.signal);
608
+ catalogContext = undefined;
609
+ }
610
+ const key = cacheKey(request, undefined, catalogContext);
215
611
  const cached = cache.get(key);
216
612
  if (cached && (options.cacheTtlMs === undefined || now() - cached.at < cacheTtlMs)) {
217
613
  return { ...cached.decision, source: "cache" };
218
614
  }
219
615
  try {
220
- const catalogContext = options.getCatalogContext ? await options.getCatalogContext(request) : undefined;
221
616
  const raw = await options.complete({
222
617
  system: buildSystemPrompt(),
223
618
  user: buildUserPrompt(request, catalogContext),
224
- signal: options.signal,
619
+ signal: request.signal ?? options.signal,
225
620
  });
226
621
  const classification = parseClassification(raw);
227
- if (classification) {
228
- const decision = classificationToDecision(classification, base);
229
- cache.set(key, { decision, at: now() });
230
- if (cache.size > cacheSize) {
231
- const oldest = cache.keys().next().value;
232
- if (oldest !== undefined)
233
- cache.delete(oldest);
234
- }
235
- return decision;
236
- }
622
+ if (classification)
623
+ return remember(key, classificationToDecision(classification, base));
237
624
  }
238
- catch {
625
+ catch (error) {
626
+ rethrowCancellation(error, request.signal, options.signal);
239
627
  // fall through to deterministic
240
628
  }
241
629
  return { ...base, source: "heuristic" };
242
630
  },
243
631
  };
244
632
  }
245
- export { intentForCategory };
633
+ export { intentForCategory, parseMeaningResolution };
246
634
  //# sourceMappingURL=router.js.map