@askdb/core 1.0.0-beta.44 → 1.0.0-beta.45

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 (109) hide show
  1. package/README.md +6 -7
  2. package/dist/ask.d.ts +30 -38
  3. package/dist/ask.d.ts.map +1 -1
  4. package/dist/ask.js +126 -307
  5. package/dist/ask.js.map +1 -1
  6. package/dist/enrichment/index.d.ts +1 -1
  7. package/dist/enrichment/index.d.ts.map +1 -1
  8. package/dist/enrichment/prompt.d.ts +3 -3
  9. package/dist/enrichment/prompt.d.ts.map +1 -1
  10. package/dist/enrichment/prompt.js +41 -17
  11. package/dist/enrichment/prompt.js.map +1 -1
  12. package/dist/enrichment/suggest.d.ts +2 -2
  13. package/dist/enrichment/suggest.d.ts.map +1 -1
  14. package/dist/enrichment/suggest.js +3 -1
  15. package/dist/enrichment/suggest.js.map +1 -1
  16. package/dist/enrichment/types.d.ts +20 -1
  17. package/dist/enrichment/types.d.ts.map +1 -1
  18. package/dist/errors.d.ts +68 -1
  19. package/dist/errors.d.ts.map +1 -1
  20. package/dist/errors.js +21 -0
  21. package/dist/errors.js.map +1 -1
  22. package/dist/index.d.ts +5 -3
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +4 -2
  25. package/dist/index.js.map +1 -1
  26. package/dist/retrieval/synthesize-ddl.d.ts +7 -1
  27. package/dist/retrieval/synthesize-ddl.d.ts.map +1 -1
  28. package/dist/retrieval/synthesize-ddl.js +36 -33
  29. package/dist/retrieval/synthesize-ddl.js.map +1 -1
  30. package/dist/schema/normalize.d.ts +6 -0
  31. package/dist/schema/normalize.d.ts.map +1 -1
  32. package/dist/schema/normalize.js +1 -0
  33. package/dist/schema/normalize.js.map +1 -1
  34. package/dist/schema/v2/format.d.ts +28 -1
  35. package/dist/schema/v2/format.d.ts.map +1 -1
  36. package/dist/schema/v2/format.js +53 -19
  37. package/dist/schema/v2/format.js.map +1 -1
  38. package/dist/schema/v2/index.d.ts +1 -1
  39. package/dist/schema/v2/index.d.ts.map +1 -1
  40. package/dist/schema/v2/index.js +1 -1
  41. package/dist/schema/v2/index.js.map +1 -1
  42. package/dist/schema/v2/loader.d.ts +7 -4
  43. package/dist/schema/v2/loader.d.ts.map +1 -1
  44. package/dist/schema/v2/loader.js +87 -27
  45. package/dist/schema/v2/loader.js.map +1 -1
  46. package/dist/schema/v2/mentions.d.ts +12 -0
  47. package/dist/schema/v2/mentions.d.ts.map +1 -1
  48. package/dist/schema/v2/mentions.js +65 -11
  49. package/dist/schema/v2/mentions.js.map +1 -1
  50. package/dist/schema/v2/tenant-policy.d.ts +2 -2
  51. package/dist/sql/bind.d.ts +18 -5
  52. package/dist/sql/bind.d.ts.map +1 -1
  53. package/dist/sql/bind.js +32 -14
  54. package/dist/sql/bind.js.map +1 -1
  55. package/dist/sql/dialect-spec.d.ts.map +1 -1
  56. package/dist/sql/dialect-spec.js +5 -1
  57. package/dist/sql/dialect-spec.js.map +1 -1
  58. package/dist/sql/generate.d.ts +17 -11
  59. package/dist/sql/generate.d.ts.map +1 -1
  60. package/dist/sql/generate.js +65 -33
  61. package/dist/sql/generate.js.map +1 -1
  62. package/dist/sql/guardrail-decide.d.ts +56 -0
  63. package/dist/sql/guardrail-decide.d.ts.map +1 -0
  64. package/dist/sql/guardrail-decide.js +161 -0
  65. package/dist/sql/guardrail-decide.js.map +1 -0
  66. package/dist/sql/guardrails.d.ts +52 -0
  67. package/dist/sql/guardrails.d.ts.map +1 -0
  68. package/dist/sql/guardrails.js +100 -0
  69. package/dist/sql/guardrails.js.map +1 -0
  70. package/dist/sql/index.d.ts +2 -1
  71. package/dist/sql/index.d.ts.map +1 -1
  72. package/dist/sql/index.js +2 -1
  73. package/dist/sql/index.js.map +1 -1
  74. package/dist/sql/lexer.d.ts +13 -0
  75. package/dist/sql/lexer.d.ts.map +1 -1
  76. package/dist/sql/lexer.js +42 -7
  77. package/dist/sql/lexer.js.map +1 -1
  78. package/dist/sql/prompt.d.ts.map +1 -1
  79. package/dist/sql/prompt.js +2 -1
  80. package/dist/sql/prompt.js.map +1 -1
  81. package/dist/sql/rebind.d.ts +89 -0
  82. package/dist/sql/rebind.d.ts.map +1 -0
  83. package/dist/sql/rebind.js +175 -0
  84. package/dist/sql/rebind.js.map +1 -0
  85. package/dist/sql/sensitive-guardrail.d.ts +7 -2
  86. package/dist/sql/sensitive-guardrail.d.ts.map +1 -1
  87. package/dist/sql/sensitive-guardrail.js +14 -33
  88. package/dist/sql/sensitive-guardrail.js.map +1 -1
  89. package/dist/sql/tenant-guardrail.d.ts +3 -14
  90. package/dist/sql/tenant-guardrail.d.ts.map +1 -1
  91. package/dist/sql/tenant-guardrail.js +16 -65
  92. package/dist/sql/tenant-guardrail.js.map +1 -1
  93. package/dist/sql/tenant-placeholders.d.ts +14 -3
  94. package/dist/sql/tenant-placeholders.d.ts.map +1 -1
  95. package/dist/sql/tenant-placeholders.js +43 -24
  96. package/dist/sql/tenant-placeholders.js.map +1 -1
  97. package/dist/sql/tenant-scope-expand.d.ts +46 -0
  98. package/dist/sql/tenant-scope-expand.d.ts.map +1 -0
  99. package/dist/sql/tenant-scope-expand.js +101 -0
  100. package/dist/sql/tenant-scope-expand.js.map +1 -0
  101. package/dist/sql/tsql-batch.d.ts +56 -0
  102. package/dist/sql/tsql-batch.d.ts.map +1 -0
  103. package/dist/sql/tsql-batch.js +246 -0
  104. package/dist/sql/tsql-batch.js.map +1 -0
  105. package/dist/sql/validate.d.ts +5 -2
  106. package/dist/sql/validate.d.ts.map +1 -1
  107. package/dist/sql/validate.js +22 -2
  108. package/dist/sql/validate.js.map +1 -1
  109. package/package.json +1 -1
@@ -1,3 +1,5 @@
1
+ import { SensitiveEnrichmentTargetError } from "../errors.js";
2
+ import { formatSchemaV2ForNlToSql } from "../schema/v2/format.js";
1
3
  export const ENRICHMENT_SYSTEM_PROMPT = `You enrich AskDB Schema v2 describable metadata.
2
4
 
3
5
  Rules:
@@ -7,18 +9,21 @@ Rules:
7
9
  - Common query language: 2–4 short bullet lines mapping a colloquial term
8
10
  to the SQL filter or aggregation it implies.
9
11
  - Never invent columns, tables, or relationships not in the schema.
10
- - Never suggest values for sensitive columns (they will be excluded by RAG).
12
+ - Never suggest values for a column tagged (sensitive), and don't name one in
13
+ other text: AskDB keeps text that names a sensitive column out of its index.
11
14
  - Reply with 1–3 candidate options separated by exactly the line "---".
12
15
  Do not number, prefix, or label the candidates.`;
13
- export function buildEnrichmentUserPrompt(target, ctx) {
16
+ export function buildEnrichmentUserPrompt(target, ctx, options = {}) {
17
+ const omit = options.omitSensitiveIdentifiersFromPrompt === true;
18
+ if (omit && "columnId" in target) {
19
+ const column = findColumn(target.table, target.columnId);
20
+ if (column.sensitive === true || target.table.sensitive === true) {
21
+ throw new SensitiveEnrichmentTargetError();
22
+ }
23
+ }
14
24
  const lines = [];
15
25
  lines.push(`Schema: ${ctx.schemaId}`);
16
- lines.push(`Table: ${qualifiedName(target.table)}`);
17
- // Always include the column list for context.
18
- lines.push("Columns:");
19
- for (const c of target.table.columns) {
20
- lines.push(` - ${describeColumn(c)}`);
21
- }
26
+ lines.push(tableForPrompt(target.table, ctx.schemaId, omit));
22
27
  if (ctx.neighbors && ctx.neighbors.length > 0) {
23
28
  lines.push("");
24
29
  lines.push("Related tables (FK neighbors):");
@@ -50,15 +55,34 @@ function targetInstruction(target) {
50
55
  return `Suggest 2–4 "common query language" bullet lines for \`${target.table.name}\` that map colloquial business terms to the SQL conditions they imply.`;
51
56
  }
52
57
  }
53
- function describeColumn(c) {
54
- const parts = [c.name, c.type];
55
- if (c.primaryKey)
56
- parts.push("[pk]");
57
- if (c.sensitive)
58
- parts.push("[sensitive]");
59
- if (c.nullable)
60
- parts.push("[nullable]");
61
- return parts.join(" ");
58
+ /**
59
+ * The target table's physical layer as `ask()`'s prompt lists it (ADR 0026):
60
+ * `formatSchemaV2ForNlToSql` tags sensitive columns, or withholds them under omission, and
61
+ * lists a sensitive table's columns as sensitive, or only its name under omission. The copy
62
+ * carries no describable text.
63
+ */
64
+ function tableForPrompt(table, schemaId, omit) {
65
+ const physical = {
66
+ schemaId,
67
+ warnings: [],
68
+ tables: [
69
+ {
70
+ id: table.id,
71
+ name: table.name,
72
+ schema: table.schema,
73
+ sensitive: table.sensitive === true,
74
+ columns: table.columns.map((column) => ({
75
+ id: column.id,
76
+ name: column.name,
77
+ type: column.type,
78
+ nullable: column.nullable,
79
+ primaryKey: column.primaryKey === true,
80
+ sensitive: column.sensitive === true,
81
+ })),
82
+ },
83
+ ],
84
+ };
85
+ return formatSchemaV2ForNlToSql(physical, { omitSensitiveIdentifiersFromPrompt: omit }).ddl;
62
86
  }
63
87
  function findColumn(table, columnId) {
64
88
  const col = table.columns.find((c) => c.id === columnId);
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/enrichment/prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/enrichment/prompt.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { LanguageModel } from "ai";
2
2
  import { generateText as defaultGenerateText } from "ai";
3
- import type { EnrichmentCandidate, EnrichmentContext, EnrichmentTarget } from "./types.js";
4
- export type SuggestEnrichmentDeps = {
3
+ import type { EnrichmentCandidate, EnrichmentContext, EnrichmentPromptOptions, EnrichmentTarget } from "./types.js";
4
+ export type SuggestEnrichmentDeps = EnrichmentPromptOptions & {
5
5
  generateText?: typeof defaultGenerateText;
6
6
  /** Optional cap on the number of candidates returned. Default 3. */
7
7
  maxCandidates?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"suggest.d.ts","sourceRoot":"","sources":["../../src/enrichment/suggest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,IAAI,CAAC;AAKzD,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,qBAAqB,GAAG;IAClC,YAAY,CAAC,EAAE,OAAO,mBAAmB,CAAC;IAC1C,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAoBhC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAU/E"}
1
+ {"version":3,"file":"suggest.d.ts","sourceRoot":"","sources":["../../src/enrichment/suggest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,IAAI,CAAC;AAKzD,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,qBAAqB,GAAG,uBAAuB,GAAG;IAC5D,YAAY,CAAC,EAAE,OAAO,mBAAmB,CAAC;IAC1C,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAsBhC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAU/E"}
@@ -14,7 +14,9 @@ export async function suggestEnrichment(target, context, model, deps = {}) {
14
14
  // `system`, not `instructions`: works on both AI SDK 6 and 7 (see the
15
15
  // matching comment in `sql/generate.ts`).
16
16
  system: ENRICHMENT_SYSTEM_PROMPT,
17
- prompt: buildEnrichmentUserPrompt(target, context),
17
+ prompt: buildEnrichmentUserPrompt(target, context, {
18
+ omitSensitiveIdentifiersFromPrompt: deps.omitSensitiveIdentifiersFromPrompt,
19
+ }),
18
20
  temperature: deps.temperature ?? 0.4,
19
21
  // Cast: AskDB's public `providerOptions` type is a plain opaque bag
20
22
  // (`Record<string, unknown>`) so callers don't need AI SDK JSON types.
@@ -1 +1 @@
1
- {"version":3,"file":"suggest.js","sourceRoot":"","sources":["../../src/enrichment/suggest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAsBrB;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAwB,EACxB,OAA0B,EAC1B,KAAoB,EACpB,OAA8B,EAAE;IAEhC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,mBAAmB,CAAC;IAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,KAAK;QACL,sEAAsE;QACtE,0CAA0C;QAC1C,MAAM,EAAE,wBAAwB;QAChC,MAAM,EAAE,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC;QAClD,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,GAAG;QACpC,oEAAoE;QACpE,uEAAuE;QACvE,4DAA4D;QAC5D,GAAG,CAAC,IAAI,CAAC,eAAe;YACtB,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAwE,EAAE;YACpG,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,MAAM,IAAI,GAAI,MAA2B,CAAC,IAAI,CAAC;IAC/C,OAAO,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,GAAW;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvC,MAAM,UAAU,GAA0B,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1B,IAAI,UAAU,CAAC,MAAM,IAAI,GAAG;YAAE,MAAM;IACtC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"suggest.js","sourceRoot":"","sources":["../../src/enrichment/suggest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAuBrB;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAwB,EACxB,OAA0B,EAC1B,KAAoB,EACpB,OAA8B,EAAE;IAEhC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,mBAAmB,CAAC;IAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,KAAK;QACL,sEAAsE;QACtE,0CAA0C;QAC1C,MAAM,EAAE,wBAAwB;QAChC,MAAM,EAAE,yBAAyB,CAAC,MAAM,EAAE,OAAO,EAAE;YACjD,kCAAkC,EAAE,IAAI,CAAC,kCAAkC;SAC5E,CAAC;QACF,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,GAAG;QACpC,oEAAoE;QACpE,uEAAuE;QACvE,4DAA4D;QAC5D,GAAG,CAAC,IAAI,CAAC,eAAe;YACtB,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAwE,EAAE;YACpG,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,MAAM,IAAI,GAAI,MAA2B,CAAC,IAAI,CAAC;IAC/C,OAAO,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,GAAW;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvC,MAAM,UAAU,GAA0B,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1B,IAAI,UAAU,CAAC,MAAM,IAAI,GAAG;YAAE,MAAM;IACtC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -3,6 +3,11 @@ import type { V2Table } from "../schema/v2/physical.js";
3
3
  * What to suggest for. An authoring surface (Studio) builds one of these per
4
4
  * active prompt and asks `suggestEnrichment` for 1–3 candidates the user
5
5
  * reviews and confirms.
6
+ *
7
+ * `table` must carry effective sensitivity: pass a table from `loadSchema()`'s
8
+ * result, as `@askdb/enrich`'s `buildSuggestionTarget` does. A table read straight
9
+ * from `schema.json` lacks front-matter escalation, so a column marked sensitive
10
+ * only there would be listed untagged, and not withheld under omission.
6
11
  */
7
12
  export type EnrichmentTarget = {
8
13
  kind: "table-description";
@@ -33,13 +38,27 @@ export type EnrichmentCandidate = {
33
38
  /** The suggested text. Whitespace at the ends is stripped. */
34
39
  text: string;
35
40
  };
41
+ /** How the enrichment prompt treats sensitive columns. */
42
+ export type EnrichmentPromptOptions = {
43
+ /**
44
+ * When true, sensitive columns and every column of a sensitive table are left out of the
45
+ * prompt, by the same rule as `ask()`'s `omitSensitiveIdentifiersFromNlToSqlPrompt`; a
46
+ * sensitive table keeps its name. A target that is itself a sensitive column is refused with
47
+ * `SensitiveEnrichmentTargetError`. Hosts pass their `modes.omitSensitiveFromPrompt` here.
48
+ * Default false: sensitive columns are listed, tagged `(sensitive)`.
49
+ */
50
+ omitSensitiveIdentifiersFromPrompt?: boolean;
51
+ };
36
52
  /**
37
53
  * Optional context: neighboring tables (joined via FK) and the schema id, so
38
54
  * the model can ground suggestions beyond the immediate table.
39
55
  */
40
56
  export type EnrichmentContext = {
41
57
  schemaId: string;
42
- /** Tables linked to the target table by foreign keys. Capped by the caller. */
58
+ /**
59
+ * Tables linked to the target table by foreign keys, from `loadSchema()`'s result
60
+ * like the target. Capped by the caller; untracked tables are the caller's to leave out.
61
+ */
43
62
  neighbors?: V2Table[];
44
63
  };
45
64
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/enrichment/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;CACvB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/enrichment/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExD;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,uBAAuB,GAAG;IACpC;;;;;;OAMG;IACH,kCAAkC,CAAC,EAAE,OAAO,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;CACvB,CAAC"}
package/dist/errors.d.ts CHANGED
@@ -15,6 +15,12 @@ export declare class SqlValidationError extends AskDbError {
15
15
  readonly rule: SqlValidationRuleCode;
16
16
  /** Extra human context (why the rule exists, remediation). */
17
17
  readonly hint?: string | undefined;
18
+ /**
19
+ * Every guardrail finding for the statement, when the error comes from an enforcement
20
+ * point (`ask()`, `generateSelectSql()`, `bindPreparedQuery()`). Absent when thrown by a
21
+ * direct `validateSelectSql()` call.
22
+ */
23
+ verdict?: GuardrailVerdict;
18
24
  constructor(message: string, rule: SqlValidationRuleCode,
19
25
  /** Extra human context (why the rule exists, remediation). */
20
26
  hint?: string | undefined);
@@ -50,7 +56,13 @@ export declare class TenantScopeError extends AskDbError {
50
56
  readonly reason: TenantScopeRejectionReason;
51
57
  constructor(message: string, reason: TenantScopeRejectionReason);
52
58
  }
53
- export type QueryParameterRejectionReason = "INVALID_NAME" | "RESERVED_NAME" | "INVALID_VALUE" | "MISSING_VALUE" | "UNRESOLVED_PLACEHOLDER" | "INVALID_LIST_CONTEXT" | "DIALECT_UNSUPPORTED";
59
+ export type QueryParameterRejectionReason = "INVALID_NAME" | "RESERVED_NAME" | "INVALID_VALUE" | "MISSING_VALUE" | "UNRESOLVED_PLACEHOLDER" | "INVALID_LIST_CONTEXT" | "DIALECT_UNSUPPORTED"
60
+ /** `bindPreparedQuery()` was called without its third argument (`BindGuardrails`), or without `schema` in it. */
61
+ | "MISSING_GUARDRAIL_CONTEXT"
62
+ /** `values` has a `:tenant_*` key. Tenant IDs come from `tenantScope` only. */
63
+ | "TENANT_VALUE_SUPPLIED"
64
+ /** The tenant markers in `unboundSql` can't be lined up with the business parameters. */
65
+ | "TENANT_PARAM_ALIGNMENT";
54
66
  export declare class QueryParameterError extends AskDbError {
55
67
  readonly reason: QueryParameterRejectionReason;
56
68
  constructor(message: string, reason: QueryParameterRejectionReason);
@@ -63,6 +75,8 @@ export type TenantGuardrailWarning = {
63
75
  };
64
76
  export declare class TenantGuardrailError extends AskDbError {
65
77
  readonly warnings: TenantGuardrailWarning[];
78
+ /** Every guardrail finding for the statement, when thrown by an enforcement point. */
79
+ verdict?: GuardrailVerdict;
66
80
  constructor(message: string, warnings: TenantGuardrailWarning[]);
67
81
  }
68
82
  /** How a sensitive identifier was matched inside a statement. */
@@ -116,6 +130,59 @@ export declare class SensitiveReferenceError extends AskDbError {
116
130
  readonly rule: SensitiveReferenceRuleCode;
117
131
  readonly references: SensitiveReference[];
118
132
  readonly unresolvedScope?: SensitiveScopeReport | undefined;
133
+ /** Every guardrail finding for the statement, when thrown by an enforcement point. */
134
+ verdict?: GuardrailVerdict;
119
135
  constructor(message: string, rule: SensitiveReferenceRuleCode, references: SensitiveReference[], unresolvedScope?: SensitiveScopeReport | undefined);
120
136
  }
137
+ /**
138
+ * An enrichment suggestion was asked for a sensitive column while
139
+ * `omitSensitiveIdentifiersFromPrompt` is on: the prompt can't name the column, so no model is
140
+ * called (ADR 0026). The message names no identifier.
141
+ */
142
+ export declare class SensitiveEnrichmentTargetError extends AskDbError {
143
+ constructor();
144
+ }
145
+ /** The SQL checks AskDB runs on model-generated SQL. */
146
+ export type GuardrailCheckId = "read-only" | "tenant" | "sensitive";
147
+ /**
148
+ * Which form of the statement a finding is about, before AskDB renders it: `sql` is the
149
+ * model's bound SQL, `template` is its `sql-unbound` block (`preparedQuery.namedSql`),
150
+ * both with their `:tenant_<root>_ids` placeholders in place.
151
+ */
152
+ export type GuardrailForm = "sql" | "template";
153
+ /** `allow`: no findings. `warn`: returned (or bound) and reported. `deny`: refused with a typed error. */
154
+ export type GuardrailOutcome = "allow" | "warn" | "deny";
155
+ /** One problem a check found. The `check` field says which check, and which detail fields are set. */
156
+ export type GuardrailFinding = {
157
+ check: "read-only";
158
+ form: GuardrailForm;
159
+ rule: SqlValidationRuleCode;
160
+ message: string;
161
+ hint?: string;
162
+ } | {
163
+ check: "tenant";
164
+ /** `"generator"`: reported by a custom `AskDialect`'s `tenantGuardrail`. */
165
+ form: GuardrailForm | "generator";
166
+ rule: TenantGuardrailRuleCode;
167
+ message: string;
168
+ /** The table the finding is about; empty for a custom generator's failure with no details. */
169
+ tableId: string;
170
+ } | {
171
+ check: "sensitive";
172
+ form: GuardrailForm;
173
+ rule: SensitiveReferenceRuleCode;
174
+ message: string;
175
+ /** The sensitive table or column referenced (`SENSITIVE_TABLE_REFERENCED` / `SENSITIVE_COLUMN_REFERENCED`). */
176
+ reference?: SensitiveReference;
177
+ /** Why the table scope couldn't be resolved (`UNRESOLVED_TABLE_SCOPE`). */
178
+ unresolvedScope?: SensitiveScopeReport;
179
+ };
180
+ /**
181
+ * The decision for one statement: the most severe outcome across its findings, and every
182
+ * finding. In-memory only: AskDB doesn't persist it, so it carries no format version.
183
+ */
184
+ export type GuardrailVerdict = {
185
+ outcome: GuardrailOutcome;
186
+ findings: GuardrailFinding[];
187
+ };
121
188
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;aAGjB,KAAK,CAAC,EAAE,OAAO;gBAD/B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,OAAO,YAAA;CAKlC;AAED,qBAAa,gBAAiB,SAAQ,UAAU;gBAClC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAI7C;AAED,kEAAkE;AAClE,MAAM,MAAM,qBAAqB,GAC7B,WAAW,GACX,qBAAqB,GACrB,aAAa,GACb,wBAAwB,GACxB,uBAAuB;AACzB,iGAAiG;GAC/F,wBAAwB;AAC1B,wFAAwF;GACtF,kBAAkB,CAAC;AAEvB,qBAAa,kBAAmB,SAAQ,UAAU;aAG9B,IAAI,EAAE,qBAAqB;IAC3C,8DAA8D;aAC9C,IAAI,CAAC,EAAE,MAAM;gBAH7B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,qBAAqB;IAC3C,8DAA8D;IAC9C,IAAI,CAAC,EAAE,MAAM,YAAA;CAKhC;AAED,qBAAa,kBAAmB,SAAQ,UAAU;gBACpC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAI7C;AAED,8EAA8E;AAC9E,qBAAa,mBAAoB,SAAQ,UAAU;aAG/B,SAAS,EAAE,MAAM;gBADjC,OAAO,EAAE,MAAM,EACC,SAAS,EAAE,MAAM;CAKpC;AAED,MAAM,MAAM,0BAA0B,GAClC,eAAe,GACf,qBAAqB,GACrB,uBAAuB,GACvB,qBAAqB;AACvB;;;;;;GAMG;GACD,wBAAwB;AAC1B,mFAAmF;GACjF,+BAA+B;AACjC,6EAA6E;GAC3E,8BAA8B;AAChC;;;;GAIG;GACD,uBAAuB,CAAC;AAE5B,qBAAa,gBAAiB,SAAQ,UAAU;aAG5B,MAAM,EAAE,0BAA0B;gBADlD,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,0BAA0B;CAKrD;AAED,MAAM,MAAM,6BAA6B,GACrC,cAAc,GACd,eAAe,GACf,eAAe,GACf,eAAe,GACf,wBAAwB,GACxB,sBAAsB,GACtB,qBAAqB,CAAC;AAE1B,qBAAa,mBAAoB,SAAQ,UAAU;aAG/B,MAAM,EAAE,6BAA6B;gBADrD,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,6BAA6B;CAKxD;AAED,MAAM,MAAM,uBAAuB,GAC/B,0BAA0B,GAC1B,4BAA4B,GAC5B,0BAA0B,GAC1B,0BAA0B,GAC1B,6BAA6B,GAC7B,kBAAkB,CAAC;AAEvB,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qBAAa,oBAAqB,SAAQ,UAAU;aAGhC,QAAQ,EAAE,sBAAsB,EAAE;gBADlD,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,sBAAsB,EAAE;CAKrD;AAED,iEAAiE;AACjE,MAAM,MAAM,kBAAkB;AAC5B;;;;GAIG;AACD,WAAW;AACb;;;GAGG;GACD,aAAa;AACf,wFAAwF;GACtF,OAAO,CAAC;AAEZ,qEAAqE;AACrE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,kBAAkB,CAAC;CAC/B,CAAC;AAEF,6EAA6E;AAC7E,MAAM,MAAM,mBAAmB;AAC7B,yFAAyF;AACvF,iBAAiB;AACnB,+FAA+F;GAC7F,mBAAmB;AACrB,gFAAgF;GAC9E,qBAAqB;AACvB,+GAA+G;GAC7G,oBAAoB,CAAC;AAEzB,iFAAiF;AACjF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,6GAA6G;AAC7G,MAAM,MAAM,0BAA0B,GAClC,4BAA4B,GAC5B,6BAA6B,GAC7B,wBAAwB,CAAC;AAE7B,qBAAa,uBAAwB,SAAQ,UAAU;aAGnC,IAAI,EAAE,0BAA0B;aAChC,UAAU,EAAE,kBAAkB,EAAE;aAChC,eAAe,CAAC,EAAE,oBAAoB;gBAHtD,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,0BAA0B,EAChC,UAAU,EAAE,kBAAkB,EAAE,EAChC,eAAe,CAAC,EAAE,oBAAoB,YAAA;CAKzD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/errors.js CHANGED
@@ -15,6 +15,12 @@ export class SchemaParseError extends AskDbError {
15
15
  export class SqlValidationError extends AskDbError {
16
16
  rule;
17
17
  hint;
18
+ /**
19
+ * Every guardrail finding for the statement, when the error comes from an enforcement
20
+ * point (`ask()`, `generateSelectSql()`, `bindPreparedQuery()`). Absent when thrown by a
21
+ * direct `validateSelectSql()` call.
22
+ */
23
+ verdict;
18
24
  constructor(message, rule,
19
25
  /** Extra human context (why the rule exists, remediation). */
20
26
  hint) {
@@ -57,6 +63,8 @@ export class QueryParameterError extends AskDbError {
57
63
  }
58
64
  export class TenantGuardrailError extends AskDbError {
59
65
  warnings;
66
+ /** Every guardrail finding for the statement, when thrown by an enforcement point. */
67
+ verdict;
60
68
  constructor(message, warnings) {
61
69
  super(message);
62
70
  this.warnings = warnings;
@@ -67,6 +75,8 @@ export class SensitiveReferenceError extends AskDbError {
67
75
  rule;
68
76
  references;
69
77
  unresolvedScope;
78
+ /** Every guardrail finding for the statement, when thrown by an enforcement point. */
79
+ verdict;
70
80
  constructor(message, rule, references, unresolvedScope) {
71
81
  super(message);
72
82
  this.rule = rule;
@@ -75,4 +85,15 @@ export class SensitiveReferenceError extends AskDbError {
75
85
  this.name = "SensitiveReferenceError";
76
86
  }
77
87
  }
88
+ /**
89
+ * An enrichment suggestion was asked for a sensitive column while
90
+ * `omitSensitiveIdentifiersFromPrompt` is on: the prompt can't name the column, so no model is
91
+ * called (ADR 0026). The message names no identifier.
92
+ */
93
+ export class SensitiveEnrichmentTargetError extends AskDbError {
94
+ constructor() {
95
+ super("The suggestion is for a sensitive column, and omitSensitiveIdentifiersFromPrompt keeps sensitive columns out of the prompt.");
96
+ this.name = "SensitiveEnrichmentTargetError";
97
+ }
98
+ }
78
99
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAGjB;IAFlB,YACE,OAAe,EACC,KAAe;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,UAAK,GAAL,KAAK,CAAU;QAG/B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAC9C,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAcD,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAG9B;IAEA;IAJlB,YACE,OAAe,EACC,IAA2B;IAC3C,8DAA8D;IAC9C,IAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAAuB;QAE3B,SAAI,GAAJ,IAAI,CAAS;QAG7B,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAChD,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,8EAA8E;AAC9E,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IAG/B;IAFlB,YACE,OAAe,EACC,SAAiB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,cAAS,GAAT,SAAS,CAAQ;QAGjC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AA0BD,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAG5B;IAFlB,YACE,OAAe,EACC,MAAkC;QAElD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,WAAM,GAAN,MAAM,CAA4B;QAGlD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAWD,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IAG/B;IAFlB,YACE,OAAe,EACC,MAAqC;QAErD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,WAAM,GAAN,MAAM,CAA+B;QAGrD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAgBD,MAAM,OAAO,oBAAqB,SAAQ,UAAU;IAGhC;IAFlB,YACE,OAAe,EACC,QAAkC;QAElD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,aAAQ,GAAR,QAAQ,CAA0B;QAGlD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAyDD,MAAM,OAAO,uBAAwB,SAAQ,UAAU;IAGnC;IACA;IACA;IAJlB,YACE,OAAe,EACC,IAAgC,EAChC,UAAgC,EAChC,eAAsC;QAEtD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAA4B;QAChC,eAAU,GAAV,UAAU,CAAsB;QAChC,oBAAe,GAAf,eAAe,CAAuB;QAGtD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAW,SAAQ,KAAK;IAGjB;IAFlB,YACE,OAAe,EACC,KAAe;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,UAAK,GAAL,KAAK,CAAU;QAG/B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAC9C,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAcD,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAU9B;IAEA;IAXlB;;;;OAIG;IACH,OAAO,CAAoB;IAE3B,YACE,OAAe,EACC,IAA2B;IAC3C,8DAA8D;IAC9C,IAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAAuB;QAE3B,SAAI,GAAJ,IAAI,CAAS;QAG7B,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,UAAU;IAChD,YAAY,OAAe,EAAE,KAAe;QAC1C,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,8EAA8E;AAC9E,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IAG/B;IAFlB,YACE,OAAe,EACC,SAAiB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,cAAS,GAAT,SAAS,CAAQ;QAGjC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AA0BD,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAG5B;IAFlB,YACE,OAAe,EACC,MAAkC;QAElD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,WAAM,GAAN,MAAM,CAA4B;QAGlD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAiBD,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IAG/B;IAFlB,YACE,OAAe,EACC,MAAqC;QAErD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,WAAM,GAAN,MAAM,CAA+B;QAGrD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAgBD,MAAM,OAAO,oBAAqB,SAAQ,UAAU;IAMhC;IALlB,sFAAsF;IACtF,OAAO,CAAoB;IAE3B,YACE,OAAe,EACC,QAAkC;QAElD,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,aAAQ,GAAR,QAAQ,CAA0B;QAGlD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAyDD,MAAM,OAAO,uBAAwB,SAAQ,UAAU;IAMnC;IACA;IACA;IAPlB,sFAAsF;IACtF,OAAO,CAAoB;IAE3B,YACE,OAAe,EACC,IAAgC,EAChC,UAAgC,EAChC,eAAsC;QAEtD,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAA4B;QAChC,eAAU,GAAV,UAAU,CAAsB;QAChC,oBAAe,GAAf,eAAe,CAAuB;QAGtD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,8BAA+B,SAAQ,UAAU;IAC5D;QACE,KAAK,CACH,6HAA6H,CAC9H,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;IAC/C,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export { validateTenantGuardrails, type TenantGuardrailResult, type ValidateTena
5
5
  export { validateSensitiveReferences, schemaHasSensitiveIdentifiers, formatSensitiveReference, type SensitiveGuardrailMode, type SensitiveGuardrailResult, type ValidateSensitiveReferencesOptions, } from "./sql/sensitive-guardrail.js";
6
6
  export { resolveTenantSql, extractTenantPlaceholders, placeholderForRoot, placeholderForTenantRoot, type TenantSqlOutputMode, type TenantPlaceholderResult, type TenantBinding, type TenantSqlDialect, } from "./sql/tenant-placeholders.js";
7
7
  export { expandClosure } from "./sql/tenant-hierarchy.js";
8
+ export { expandTenantScope } from "./sql/tenant-scope-expand.js";
8
9
  export { ask, type AskPipelineOptions, type AskPipelineResult, type AskDialect, type AskDialectInput, type AskDialectGenerateOptions, type AskUsage, type AskDialectGenerateResult, type AskGenerateDeps, type ResolveTenantDescendants, type TenantIdsByRoot, } from "./ask.js";
9
10
  export { parseAskDbModeV1, formatAskDbModesV1, DEFAULT_ASKDB_MODE, ASKDB_MODES_V1, type AskDbModeV1, } from "./modes/types.js";
10
11
  export { AskDbLogEvent } from "./logging/log-events.js";
@@ -14,13 +15,14 @@ export { createAskDbLogger, type AskDbLogLevel, type CreateAskDbLoggerOptions, }
14
15
  export { formatSupportedAskDbLogLevels, isSupportedAskDbLogLevel, SUPPORTED_ASKDB_LOG_LEVELS, } from "./logging/pino-supported-levels.js";
15
16
  export { loadNormalizedSchemaFromJson, parseAskDbSchemaJson } from "./schema/parse.js";
16
17
  export type { AskDbSchemaFile, NormalizedSchema, AnyNormalizedSchema, } from "./schema/types.js";
17
- export { loadSchema, loadSchemaFromJson, parseTableMarkdown, parseConceptsMarkdown, writeTableMarkdown, writeConceptsMarkdown, writeTenantPolicyMarkdown, formatSchemaV2ForNlToSql, v2SchemaJsonSchema, v2TableSchema, v2ColumnSchema, v2TableFrontmatterSchema, v2ColumnFrontmatterSchema, v2ConceptsFrontmatterSchema, v2ConceptSchema, RECOGNIZED_H2_SECTIONS, parseTenantPolicyMarkdown, normalizeTenantPolicy, tenantPolicyFrontmatterSchema, tenantRootSchema, hierarchyEdgeSchema, scopedTableSchema, polymorphicTableSchema, enforcementModeSchema, tenantScopeSchema, tenantAccessSchema, TENANT_POLICY_H2_SECTIONS, createMentionMatcher, findMentionedNames, type MentionMatcher, type MentionName, } from "./schema/v2/index.js";
18
+ export { loadSchema, loadSchemaFromJson, parseTableMarkdown, parseConceptsMarkdown, writeTableMarkdown, writeConceptsMarkdown, writeTenantPolicyMarkdown, formatSchemaV2ForNlToSql, v2SchemaJsonSchema, v2TableSchema, v2ColumnSchema, v2TableFrontmatterSchema, v2ColumnFrontmatterSchema, v2ConceptsFrontmatterSchema, v2ConceptSchema, RECOGNIZED_H2_SECTIONS, parseTenantPolicyMarkdown, normalizeTenantPolicy, tenantPolicyFrontmatterSchema, tenantRootSchema, hierarchyEdgeSchema, scopedTableSchema, polymorphicTableSchema, enforcementModeSchema, tenantScopeSchema, tenantAccessSchema, TENANT_POLICY_H2_SECTIONS, createMentionMatcher, findMentionedNames, sensitiveMentionNames, type MentionMatcher, type MentionName, } from "./schema/v2/index.js";
18
19
  export type { V2SchemaJson, V2Table, V2Column, V2TableFrontmatter, V2ColumnFrontmatter, V2ConceptsFrontmatter, V2Concept, ParsedTableMarkdown, ParsedConceptsMarkdown, RecognizedH2Section, NormalizedSchemaV2, BundledSchemaV2, NormalizedV2Table, NormalizedV2Column, SchemaV2Warning, TenantPolicyFrontmatter, TenantRoot, HierarchyEdge, ScopedTable, ScopeThrough, PolymorphicTable, EnforcementMode, TenantScope, TenantAccess, TenantAccessIds, TenantAccessSubtree, TenantAccessMultiRoot, TenantAccessGlobal, TenantScopeContext, ParsedTenantPolicyMarkdown, NormalizedTenantPolicy, TenantPolicyWarning, TableCoverageEntry, TableTenantClassification, TenantPolicyH2Section, } from "./schema/v2/index.js";
19
20
  export { ENRICHMENT_SYSTEM_PROMPT, buildEnrichmentUserPrompt, parseCandidates, suggestEnrichment, } from "./enrichment/index.js";
20
- export type { EnrichmentCandidate, EnrichmentContext, EnrichmentTarget, SuggestEnrichmentDeps, } from "./enrichment/index.js";
21
+ export type { EnrichmentCandidate, EnrichmentContext, EnrichmentPromptOptions, EnrichmentTarget, SuggestEnrichmentDeps, } from "./enrichment/index.js";
21
22
  export { formatSchemaForNlToSql, formatSchemaForPrompt, normalizeAskDbSchema, type FormatNlToSqlOptions, type NlToSqlSchemaFormatStats, } from "./schema/normalize.js";
22
23
  export { extractSqlFromModelText, extractUnboundSqlFromModelText } from "./sql/extract-sql.js";
23
- export { bindPreparedQuery, escapeSqlLiteral, type QueryParameterType, type QueryParameterValue, type QueryParamSlot, type QueryParameterBinding, type PreparedQuery, type BoundQuery, } from "./sql/bind.js";
24
+ export { escapeSqlLiteral, type QueryParameterType, type QueryParameterValue, type QueryParamSlot, type QueryParameterBinding, type PreparedQuery, } from "./sql/bind.js";
25
+ export { bindPreparedQuery, type BindGuardrails, type BoundQuery } from "./sql/rebind.js";
24
26
  export { type DialectId, type DialectSpec, type BuiltInDialectId, POSTGRES_DIALECT, COCKROACHDB_DIALECT, MYSQL_DIALECT, MARIADB_DIALECT, SQLITE_DIALECT, SQLSERVER_DIALECT, SINGLE_NAMESPACE_LABEL, BUILT_IN_DIALECTS, SUPPORTED_DIALECT_IDS, isBuiltInDialectId, getDialectSpec, } from "./sql/dialect-spec.js";
25
27
  export { generateSelectSql, type GenerateSelectSqlResult, type GenerateSqlDeps, } from "./sql/generate.js";
26
28
  export { validateSelectSql, buildSelectGuardrailExplanation, type SelectGuardrailExplain, } from "./sql/validate.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ export { validateTenantGuardrails, } from "./sql/tenant-guardrail.js";
5
5
  export { validateSensitiveReferences, schemaHasSensitiveIdentifiers, formatSensitiveReference, } from "./sql/sensitive-guardrail.js";
6
6
  export { resolveTenantSql, extractTenantPlaceholders, placeholderForRoot, placeholderForTenantRoot, } from "./sql/tenant-placeholders.js";
7
7
  export { expandClosure } from "./sql/tenant-hierarchy.js";
8
+ export { expandTenantScope } from "./sql/tenant-scope-expand.js";
8
9
  export { ask, } from "./ask.js";
9
10
  export { parseAskDbModeV1, formatAskDbModesV1, DEFAULT_ASKDB_MODE, ASKDB_MODES_V1, } from "./modes/types.js";
10
11
  export { AskDbLogEvent } from "./logging/log-events.js";
@@ -12,11 +13,12 @@ export { ASKDB_LOG_REQUIRED_EVENTS, ASKDB_LOG_REQUIRED_FIELDS, } from "./logging
12
13
  export { createAskDbLogger, } from "./logging/create-askdb-logger.js";
13
14
  export { formatSupportedAskDbLogLevels, isSupportedAskDbLogLevel, SUPPORTED_ASKDB_LOG_LEVELS, } from "./logging/pino-supported-levels.js";
14
15
  export { loadNormalizedSchemaFromJson, parseAskDbSchemaJson } from "./schema/parse.js";
15
- export { loadSchema, loadSchemaFromJson, parseTableMarkdown, parseConceptsMarkdown, writeTableMarkdown, writeConceptsMarkdown, writeTenantPolicyMarkdown, formatSchemaV2ForNlToSql, v2SchemaJsonSchema, v2TableSchema, v2ColumnSchema, v2TableFrontmatterSchema, v2ColumnFrontmatterSchema, v2ConceptsFrontmatterSchema, v2ConceptSchema, RECOGNIZED_H2_SECTIONS, parseTenantPolicyMarkdown, normalizeTenantPolicy, tenantPolicyFrontmatterSchema, tenantRootSchema, hierarchyEdgeSchema, scopedTableSchema, polymorphicTableSchema, enforcementModeSchema, tenantScopeSchema, tenantAccessSchema, TENANT_POLICY_H2_SECTIONS, createMentionMatcher, findMentionedNames, } from "./schema/v2/index.js";
16
+ export { loadSchema, loadSchemaFromJson, parseTableMarkdown, parseConceptsMarkdown, writeTableMarkdown, writeConceptsMarkdown, writeTenantPolicyMarkdown, formatSchemaV2ForNlToSql, v2SchemaJsonSchema, v2TableSchema, v2ColumnSchema, v2TableFrontmatterSchema, v2ColumnFrontmatterSchema, v2ConceptsFrontmatterSchema, v2ConceptSchema, RECOGNIZED_H2_SECTIONS, parseTenantPolicyMarkdown, normalizeTenantPolicy, tenantPolicyFrontmatterSchema, tenantRootSchema, hierarchyEdgeSchema, scopedTableSchema, polymorphicTableSchema, enforcementModeSchema, tenantScopeSchema, tenantAccessSchema, TENANT_POLICY_H2_SECTIONS, createMentionMatcher, findMentionedNames, sensitiveMentionNames, } from "./schema/v2/index.js";
16
17
  export { ENRICHMENT_SYSTEM_PROMPT, buildEnrichmentUserPrompt, parseCandidates, suggestEnrichment, } from "./enrichment/index.js";
17
18
  export { formatSchemaForNlToSql, formatSchemaForPrompt, normalizeAskDbSchema, } from "./schema/normalize.js";
18
19
  export { extractSqlFromModelText, extractUnboundSqlFromModelText } from "./sql/extract-sql.js";
19
- export { bindPreparedQuery, escapeSqlLiteral, } from "./sql/bind.js";
20
+ export { escapeSqlLiteral, } from "./sql/bind.js";
21
+ export { bindPreparedQuery } from "./sql/rebind.js";
20
22
  export { POSTGRES_DIALECT, COCKROACHDB_DIALECT, MYSQL_DIALECT, MARIADB_DIALECT, SQLITE_DIALECT, SQLSERVER_DIALECT, SINGLE_NAMESPACE_LABEL, BUILT_IN_DIALECTS, SUPPORTED_DIALECT_IDS, isBuiltInDialectId, getDialectSpec, } from "./sql/dialect-spec.js";
21
23
  export { generateSelectSql, } from "./sql/generate.js";
22
24
  export { validateSelectSql, buildSelectGuardrailExplanation, } from "./sql/validate.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EACL,wBAAwB,GAGzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,wBAAwB,GAIzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,GAKzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EACL,GAAG,GAYJ,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iBAAiB,GAGlB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMvF,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,GAGnB,MAAM,sBAAsB,CAAC;AAsC9B,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GAOjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAIL,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,+BAA+B,GAEhC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAU3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EACL,wBAAwB,GAGzB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,wBAAwB,GAIzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,GAKzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EACL,GAAG,GAYJ,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iBAAiB,GAGlB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMvF,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,GAGtB,MAAM,sBAAsB,CAAC;AAsC9B,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EACL,gBAAgB,GAMjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAwC,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAIL,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,+BAA+B,GAEhC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAU3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -14,7 +14,11 @@ import type { RetrievedResult } from "./types.js";
14
14
  * the bottom (before the question).
15
15
  *
16
16
  * Sensitive identifiers retain their `(sensitive)` tagging exactly as
17
- * `formatSchemaV2ForNlToSql` does.
17
+ * `formatSchemaV2ForNlToSql` does. With `omitSensitiveIdentifiersFromPrompt`,
18
+ * schema text is withheld by the same rule, and so is the text of every
19
+ * retrieved chunk that names a sensitive column or is flagged `sensitive`
20
+ * (ADR 0022): core can't vouch for the retriever. A withheld chunk still
21
+ * picks its tables.
18
22
  */
19
23
  export declare function synthesizeRetrievedDdl(args: {
20
24
  schema: NormalizedSchemaV2;
@@ -29,5 +33,7 @@ export declare function synthesizeRetrievedDdl(args: {
29
33
  ddl: string;
30
34
  tablesEmitted: number;
31
35
  chunksUsed: number;
36
+ /** With omission on: schema texts and chunks withheld because they name a sensitive column or are flagged `sensitive`. */
37
+ mentionDroppedCount: number;
32
38
  };
33
39
  //# sourceMappingURL=synthesize-ddl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"synthesize-ddl.d.ts","sourceRoot":"","sources":["../../src/retrieval/synthesize-ddl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,iFAAiF;IACjF,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8DAA8D;IAC9D,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAqJ7D"}
1
+ {"version":3,"file":"synthesize-ddl.d.ts","sourceRoot":"","sources":["../../src/retrieval/synthesize-ddl.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,iFAAiF;IACjF,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8DAA8D;IAC9D,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C,GAAG;IACF,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,0HAA0H;IAC1H,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAiJA"}