@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,4 +1,4 @@
1
- import { listAsStored, promptTableName } from "../schema/v2/format.js";
1
+ import { columnAnnotation, listAsStored, promptTableName, promptTextGate, tableAliasNote, } from "../schema/v2/format.js";
2
2
  /**
3
3
  * Build a focused DDL block for NL→SQL prompts from retrieved chunks.
4
4
  *
@@ -13,12 +13,26 @@ import { listAsStored, promptTableName } from "../schema/v2/format.js";
13
13
  * the bottom (before the question).
14
14
  *
15
15
  * Sensitive identifiers retain their `(sensitive)` tagging exactly as
16
- * `formatSchemaV2ForNlToSql` does.
16
+ * `formatSchemaV2ForNlToSql` does. With `omitSensitiveIdentifiersFromPrompt`,
17
+ * schema text is withheld by the same rule, and so is the text of every
18
+ * retrieved chunk that names a sensitive column or is flagged `sensitive`
19
+ * (ADR 0022): core can't vouch for the retriever. A withheld chunk still
20
+ * picks its tables.
17
21
  */
18
22
  export function synthesizeRetrievedDdl(args) {
19
23
  const { schema, results } = args;
20
24
  const omit = args.omitSensitiveIdentifiersFromPrompt === true;
21
25
  const quoteIdentifier = args.quoteIdentifier ?? listAsStored;
26
+ const gate = promptTextGate(schema, omit);
27
+ /** Renders a retrieved chunk's text as the prompt shows it, then lets the gate check exactly that. */
28
+ const shown = (p, render, into) => {
29
+ const text = render(stripHeaderLine(p.text));
30
+ if (gate.allows(text, p.sensitive))
31
+ into.push(text);
32
+ };
33
+ const asIs = (body) => body;
34
+ const oneLine = (body) => body.replace(/\n+/g, " ");
35
+ const joinedLines = (body) => body.replace(/\n+/g, "; ");
22
36
  const tableIds = new Set();
23
37
  const cqlPerTable = new Map();
24
38
  const concepts = [];
@@ -45,19 +59,19 @@ export function synthesizeRetrievedDdl(args) {
45
59
  if (tid) {
46
60
  tableIds.add(tid);
47
61
  const list = cqlPerTable.get(tid) ?? [];
48
- list.push(p);
62
+ shown(p, asIs, list);
49
63
  cqlPerTable.set(tid, list);
50
64
  }
51
65
  break;
52
66
  }
53
67
  case "question": {
54
- questions.push(p);
68
+ shown(p, oneLine, questions);
55
69
  if (p.refs[0])
56
70
  tableIds.add(p.refs[0]);
57
71
  break;
58
72
  }
59
73
  case "concept": {
60
- concepts.push(p);
74
+ shown(p, joinedLines, concepts);
61
75
  for (const ref of p.refs) {
62
76
  if (ref.startsWith("table:")) {
63
77
  const hash = ref.indexOf("#");
@@ -67,7 +81,7 @@ export function synthesizeRetrievedDdl(args) {
67
81
  break;
68
82
  }
69
83
  case "relationship": {
70
- relationships.push(p);
84
+ shown(p, oneLine, relationships);
71
85
  for (const ref of p.refs) {
72
86
  if (ref.startsWith("table:") && !ref.includes("#"))
73
87
  tableIds.add(ref);
@@ -75,7 +89,7 @@ export function synthesizeRetrievedDdl(args) {
75
89
  break;
76
90
  }
77
91
  case "tenant-policy": {
78
- tenantPolicyChunks.push(p);
92
+ shown(p, joinedLines, tenantPolicyChunks);
79
93
  break;
80
94
  }
81
95
  }
@@ -87,9 +101,8 @@ export function synthesizeRetrievedDdl(args) {
87
101
  continue;
88
102
  tablesEmitted++;
89
103
  const listedName = promptTableName(t, args.unqualifiedNamespace, quoteIdentifier);
90
- const aliasNote = !t.sensitive && t.aliases?.length ? ` -- aliases: ${t.aliases.join(", ")}` : "";
91
- lines.push(`TABLE ${listedName}${aliasNote}`);
92
- if (!t.sensitive && t.description)
104
+ lines.push(`TABLE ${listedName}${tableAliasNote(t, gate)}`);
105
+ if (!t.sensitive && t.description && gate.allows(t.description))
93
106
  lines.push(`-- ${t.description}`);
94
107
  if (omit && t.sensitive) {
95
108
  lines.push(` (sensitive table — column definitions withheld from model context)`);
@@ -106,23 +119,16 @@ export function synthesizeRetrievedDdl(args) {
106
119
  const sensitiveTag = c.sensitive || t.sensitive ? " (sensitive)" : "";
107
120
  let line = ` - ${quoteIdentifier(c.name)} ${c.type} (${flags.join(" ")})${sensitiveTag}`;
108
121
  if (!c.sensitive && !t.sensitive) {
109
- const extras = [];
110
- if (c.aliases?.length)
111
- extras.push(`aliases: ${c.aliases.join(", ")}`);
112
- if (c.enum?.length)
113
- extras.push(`values: ${c.enum.join("|")}`);
114
- if (c.description)
115
- extras.push(c.description);
116
- if (extras.length)
117
- line += ` -- ${extras.join("; ")}`;
122
+ const annotation = columnAnnotation(c, gate);
123
+ if (annotation)
124
+ line += ` -- ${annotation}`;
118
125
  }
119
126
  lines.push(line);
120
127
  }
121
128
  const cqlList = cqlPerTable.get(t.id);
122
129
  if (cqlList && cqlList.length > 0 && !t.sensitive) {
123
130
  lines.push(`-- common query language --`);
124
- for (const cql of cqlList) {
125
- const body = stripHeaderLine(cql.text);
131
+ for (const body of cqlList) {
126
132
  for (const cqlLine of body.split("\n")) {
127
133
  lines.push(`-- ${cqlLine}`);
128
134
  }
@@ -132,36 +138,33 @@ export function synthesizeRetrievedDdl(args) {
132
138
  }
133
139
  if (relationships.length > 0) {
134
140
  lines.push("-- relationships --");
135
- for (const r of relationships) {
136
- lines.push(`-- ${stripHeaderLine(r.text).replace(/\n+/g, " ")}`);
137
- }
141
+ for (const r of relationships)
142
+ lines.push(`-- ${r}`);
138
143
  lines.push("");
139
144
  }
140
145
  if (concepts.length > 0) {
141
146
  lines.push("-- concepts --");
142
- for (const c of concepts) {
143
- lines.push(`-- ${stripHeaderLine(c.text).replace(/\n+/g, "; ")}`);
144
- }
147
+ for (const c of concepts)
148
+ lines.push(`-- ${c}`);
145
149
  lines.push("");
146
150
  }
147
151
  if (questions.length > 0) {
148
152
  lines.push("-- example questions for context --");
149
- for (const q of questions) {
150
- lines.push(`-- ${stripHeaderLine(q.text).replace(/\n+/g, " ")}`);
151
- }
153
+ for (const q of questions)
154
+ lines.push(`-- ${q}`);
152
155
  lines.push("");
153
156
  }
154
157
  if (tenantPolicyChunks.length > 0) {
155
158
  lines.push("-- tenant policy context --");
156
- for (const tp of tenantPolicyChunks) {
157
- lines.push(`-- ${stripHeaderLine(tp.text).replace(/\n+/g, "; ")}`);
158
- }
159
+ for (const tp of tenantPolicyChunks)
160
+ lines.push(`-- ${tp}`);
159
161
  lines.push("");
160
162
  }
161
163
  return {
162
164
  ddl: lines.join("\n").trimEnd(),
163
165
  tablesEmitted,
164
166
  chunksUsed: results.length,
167
+ mentionDroppedCount: gate.withheld,
165
168
  };
166
169
  }
167
170
  function stripHeaderLine(text) {
@@ -1 +1 @@
1
- {"version":3,"file":"synthesize-ddl.js","sourceRoot":"","sources":["../../src/retrieval/synthesize-ddl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"synthesize-ddl.js","sourceRoot":"","sources":["../../src/retrieval/synthesize-ddl.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,12 @@ export type NlToSqlSchemaFormatStats = {
29
29
  listedSensitiveColumnCount: number;
30
30
  /** Tables excluded from the DDL because they are marked as untracked. */
31
31
  untrackedTableCount: number;
32
+ /**
33
+ * When omitting (schema v2): describable texts withheld because they name a sensitive column (a
34
+ * description, an alias, a column's annotation, a common query language block). When including,
35
+ * and for a v1 schema: always 0.
36
+ */
37
+ mentionDroppedCount: number;
32
38
  };
33
39
  /**
34
40
  * Format schema for LLM prompts. By default, **includes** sensitive column/table names (tagged) so NL→SQL can
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/schema/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,CAc9E;AAED,kDAAkD;AAClD,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;OAGG;IACH,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C,CAAC;AAEF,+HAA+H;AAC/H,MAAM,MAAM,wBAAwB,GAAG;IACrC,kCAAkC,EAAE,OAAO,CAAC;IAC5C,0EAA0E;IAC1E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qEAAqE;IACrE,uBAAuB,EAAE,MAAM,CAAC;IAChC,4GAA4G;IAC5G,0BAA0B,EAAE,MAAM,CAAC;IACnC,yEAAyE;IACzE,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAmBF;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,oBAAyB,GACjC;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,wBAAwB,CAAC;CACjC,CAuDA;AAED,0GAA0G;AAC1G,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAEtG"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/schema/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,CAc9E;AAED,kDAAkD;AAClD,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;OAGG;IACH,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC5C,CAAC;AAEF,+HAA+H;AAC/H,MAAM,MAAM,wBAAwB,GAAG;IACrC,kCAAkC,EAAE,OAAO,CAAC;IAC5C,0EAA0E;IAC1E,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qEAAqE;IACrE,uBAAuB,EAAE,MAAM,CAAC;IAChC,4GAA4G;IAC5G,0BAA0B,EAAE,MAAM,CAAC;IACnC,yEAAyE;IACzE,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAmBF;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,oBAAyB,GACjC;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,wBAAwB,CAAC;CACjC,CAwDA;AAED,0GAA0G;AAC1G,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAEtG"}
@@ -80,6 +80,7 @@ export function formatSchemaForNlToSql(schema, options = {}) {
80
80
  sensitiveTableStubCount,
81
81
  listedSensitiveColumnCount,
82
82
  untrackedTableCount: 0,
83
+ mentionDroppedCount: 0,
83
84
  },
84
85
  };
85
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/schema/normalize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/schema/normalize.ts"],"names":[],"mappings":"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"}
@@ -6,12 +6,39 @@ import type { FormatNlToSqlOptions, NlToSqlSchemaFormatStats } from "../normaliz
6
6
  * Interleaves table descriptions, aliases, column descriptions, and
7
7
  * `Common query language` blocks when present in the describable layer.
8
8
  * Sensitive describable-layer fields (descriptions/aliases/enum) are
9
- * excluded per the schema-v2 contract.
9
+ * excluded per the schema-v2 contract. With `omitSensitiveIdentifiersFromPrompt`,
10
+ * describable text that names a sensitive column is withheld too
11
+ * ({@link promptTextGate}).
10
12
  */
11
13
  export declare function formatSchemaV2ForNlToSql(schema: NormalizedSchemaV2, options?: FormatNlToSqlOptions): {
12
14
  ddl: string;
13
15
  stats: NlToSqlSchemaFormatStats;
14
16
  };
17
+ /**
18
+ * Decides which describable text an NL→SQL prompt may show. With sensitive identifiers
19
+ * omitted, text that names a sensitive column (ADR 0017's names, the schema v2 contract's
20
+ * mention rule) is withheld and counted; otherwise every text is shown.
21
+ */
22
+ export type PromptTextGate = {
23
+ /**
24
+ * Whether `text`, as the prompt renders it, may go in. With omission on, a text that names a
25
+ * sensitive column is withheld, and so is one whose source is `flagged` sensitive (a retrieved
26
+ * chunk's `sensitive`). Each withheld text counts once.
27
+ */
28
+ allows(text: string, flagged?: boolean): boolean;
29
+ /** How many texts were withheld so far. */
30
+ readonly withheld: number;
31
+ };
32
+ /** The {@link PromptTextGate} both NL→SQL prompt builders use for `schema`. */
33
+ export declare function promptTextGate(schema: NormalizedSchemaV2, omit: boolean): PromptTextGate;
34
+ /** A non-sensitive table's ` -- aliases: …` header note, each alias shown only when the gate allows it. */
35
+ export declare function tableAliasNote(t: NormalizedSchemaV2["tables"][0], gate: PromptTextGate): string;
36
+ /**
37
+ * A non-sensitive column's annotation (`aliases: …; values: …; description`), or `""`.
38
+ * The three are one unit, checked as rendered: when they name a sensitive column, the gate
39
+ * withholds all of them.
40
+ */
41
+ export declare function columnAnnotation(c: NormalizedSchemaV2["tables"][0]["columns"][0], gate: PromptTextGate): string;
15
42
  /**
16
43
  * A table's name as the NL→SQL prompt lists it: `schema.name`, or `name` in the unqualified
17
44
  * namespace, each part passed through `quoteIdentifier`.
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/schema/v2/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAEtF;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE,oBAAyB,GACjC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,wBAAwB,CAAA;CAAE,CA8ElD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,EAC/D,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,eAAe,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAqB,GACvD,MAAM,CAGR;AAED,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/schema/v2/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAGtF;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE,oBAAyB,GACjC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,wBAAwB,CAAA;CAAE,CA4ElD;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACjD,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,GAAG,cAAc,CAaxF;AAED,2GAA2G;AAC3G,wBAAgB,cAAc,CAAC,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAI/F;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAQ/G;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,EAC/D,oBAAoB,EAAE,MAAM,GAAG,SAAS,EACxC,eAAe,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAqB,GACvD,MAAM,CAGR;AAED,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD"}
@@ -1,14 +1,18 @@
1
+ import { createMentionMatcher, sensitiveMentionNames } from "./mentions.js";
1
2
  /**
2
3
  * Format a NormalizedSchemaV2 for NL→SQL prompts.
3
4
  *
4
5
  * Interleaves table descriptions, aliases, column descriptions, and
5
6
  * `Common query language` blocks when present in the describable layer.
6
7
  * Sensitive describable-layer fields (descriptions/aliases/enum) are
7
- * excluded per the schema-v2 contract.
8
+ * excluded per the schema-v2 contract. With `omitSensitiveIdentifiersFromPrompt`,
9
+ * describable text that names a sensitive column is withheld too
10
+ * ({@link promptTextGate}).
8
11
  */
9
12
  export function formatSchemaV2ForNlToSql(schema, options = {}) {
10
13
  const omit = options.omitSensitiveIdentifiersFromPrompt === true;
11
14
  const quoteIdentifier = options.quoteIdentifier ?? listAsStored;
15
+ const gate = promptTextGate(schema, omit);
12
16
  let redactedColumnCount = 0;
13
17
  let sensitiveTableStubCount = 0;
14
18
  let listedSensitiveColumnCount = 0;
@@ -21,12 +25,9 @@ export function formatSchemaV2ForNlToSql(schema, options = {}) {
21
25
  }
22
26
  // Table header — qualified with its schema unless that namespace isn't one; alias annotation when present
23
27
  const listedName = promptTableName(t, options.unqualifiedNamespace, quoteIdentifier);
24
- const aliasNote = !t.sensitive && t.aliases?.length
25
- ? ` -- aliases: ${t.aliases.join(", ")}`
26
- : "";
27
- lines.push(`TABLE ${listedName}${aliasNote}`);
28
+ lines.push(`TABLE ${listedName}${tableAliasNote(t, gate)}`);
28
29
  // Table description as a comment line
29
- if (!t.sensitive && t.description) {
30
+ if (!t.sensitive && t.description && gate.allows(t.description)) {
30
31
  lines.push(`-- ${t.description}`);
31
32
  }
32
33
  if (omit && t.sensitive) {
@@ -44,7 +45,7 @@ export function formatSchemaV2ForNlToSql(schema, options = {}) {
44
45
  continue;
45
46
  }
46
47
  visibleColumns++;
47
- lines.push(buildColumnLine(c, false, false, quoteIdentifier));
48
+ lines.push(buildColumnLine(c, false, false, quoteIdentifier, gate));
48
49
  }
49
50
  if (visibleColumns === 0 && t.columns.length > 0) {
50
51
  lines.push(` (all columns marked sensitive — definitions withheld from model context)`);
@@ -54,11 +55,11 @@ export function formatSchemaV2ForNlToSql(schema, options = {}) {
54
55
  for (const c of t.columns) {
55
56
  if (c.sensitive)
56
57
  listedSensitiveColumnCount++;
57
- lines.push(buildColumnLine(c, c.sensitive, t.sensitive, quoteIdentifier));
58
+ lines.push(buildColumnLine(c, c.sensitive, t.sensitive, quoteIdentifier, gate));
58
59
  }
59
60
  }
60
61
  // Common query language block
61
- if (!t.sensitive && t.commonQueryLanguage) {
62
+ if (!t.sensitive && t.commonQueryLanguage && gate.allows(t.commonQueryLanguage)) {
62
63
  lines.push(`-- common query language --`);
63
64
  for (const cqlLine of t.commonQueryLanguage.split("\n")) {
64
65
  lines.push(`-- ${cqlLine}`);
@@ -75,9 +76,48 @@ export function formatSchemaV2ForNlToSql(schema, options = {}) {
75
76
  sensitiveTableStubCount,
76
77
  listedSensitiveColumnCount,
77
78
  untrackedTableCount,
79
+ mentionDroppedCount: gate.withheld,
78
80
  },
79
81
  };
80
82
  }
83
+ /** The {@link PromptTextGate} both NL→SQL prompt builders use for `schema`. */
84
+ export function promptTextGate(schema, omit) {
85
+ const matcher = omit ? createMentionMatcher(sensitiveMentionNames(schema)) : undefined;
86
+ let withheld = 0;
87
+ return {
88
+ allows(text, flagged = false) {
89
+ if (!matcher || (!flagged && !matcher.mentionsAny(text)))
90
+ return true;
91
+ withheld++;
92
+ return false;
93
+ },
94
+ get withheld() {
95
+ return withheld;
96
+ },
97
+ };
98
+ }
99
+ /** A non-sensitive table's ` -- aliases: …` header note, each alias shown only when the gate allows it. */
100
+ export function tableAliasNote(t, gate) {
101
+ if (t.sensitive || !t.aliases?.length)
102
+ return "";
103
+ const aliases = t.aliases.filter((alias) => gate.allows(alias));
104
+ return aliases.length ? ` -- aliases: ${aliases.join(", ")}` : "";
105
+ }
106
+ /**
107
+ * A non-sensitive column's annotation (`aliases: …; values: …; description`), or `""`.
108
+ * The three are one unit, checked as rendered: when they name a sensitive column, the gate
109
+ * withholds all of them.
110
+ */
111
+ export function columnAnnotation(c, gate) {
112
+ const aliases = c.aliases?.length ? c.aliases.join(", ") : "";
113
+ const values = c.enum?.length ? c.enum.join("|") : "";
114
+ const description = c.description ?? "";
115
+ const shown = [aliases, values, description].filter(Boolean);
116
+ // The fixed labels stay out of the check: a sensitive column named `values` names no annotation.
117
+ if (shown.length === 0 || !gate.allows(shown.join("; ")))
118
+ return "";
119
+ return [aliases && `aliases: ${aliases}`, values && `values: ${values}`, description].filter(Boolean).join("; ");
120
+ }
81
121
  /**
82
122
  * A table's name as the NL→SQL prompt lists it: `schema.name`, or `name` in the unqualified
83
123
  * namespace, each part passed through `quoteIdentifier`.
@@ -90,7 +130,7 @@ export function promptTableName(table, unqualifiedNamespace, quoteIdentifier = l
90
130
  export function listAsStored(name) {
91
131
  return name;
92
132
  }
93
- function buildColumnLine(c, colSensitive, tableSensitive, quoteIdentifier) {
133
+ function buildColumnLine(c, colSensitive, tableSensitive, quoteIdentifier, gate) {
94
134
  const effective = colSensitive || tableSensitive;
95
135
  const flags = [c.primaryKey ? "PK" : "", c.nullable ? "NULL" : "NOT NULL"]
96
136
  .filter(Boolean)
@@ -101,15 +141,9 @@ function buildColumnLine(c, colSensitive, tableSensitive, quoteIdentifier) {
101
141
  }
102
142
  else {
103
143
  // Append column description when present (describable-layer enrichment)
104
- const extras = [];
105
- if (c.aliases?.length)
106
- extras.push(`aliases: ${c.aliases.join(", ")}`);
107
- if (c.enum?.length)
108
- extras.push(`values: ${c.enum.join("|")}`);
109
- if (c.description)
110
- extras.push(c.description);
111
- if (extras.length)
112
- line += ` -- ${extras.join("; ")}`;
144
+ const annotation = columnAnnotation(c, gate);
145
+ if (annotation)
146
+ line += ` -- ${annotation}`;
113
147
  }
114
148
  return line;
115
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/schema/v2/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/schema/v2/format.ts"],"names":[],"mappings":"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"}
@@ -11,5 +11,5 @@ export type { NormalizedSchemaV2, NormalizedV2Table, NormalizedV2Column, SchemaV
11
11
  export { parseTenantPolicyMarkdown, normalizeTenantPolicy } from "./tenant-policy-loader.js";
12
12
  export { tenantPolicyFrontmatterSchema, tenantRootSchema, hierarchyEdgeSchema, scopedTableSchema, polymorphicTableSchema, enforcementModeSchema, tenantScopeSchema, tenantAccessSchema, TENANT_POLICY_H2_SECTIONS, } from "./tenant-policy.js";
13
13
  export type { TenantPolicyFrontmatter, TenantRoot, HierarchyEdge, ScopedTable, ScopeThrough, PolymorphicTable, EnforcementMode, TenantScope, TenantAccess, TenantAccessIds, TenantAccessSubtree, TenantAccessMultiRoot, TenantAccessGlobal, TenantScopeContext, ParsedTenantPolicyMarkdown, NormalizedTenantPolicy, TenantPolicyWarning, TableCoverageEntry, TableTenantClassification, TenantPolicyH2Section, } from "./tenant-policy.js";
14
- export { createMentionMatcher, findMentionedNames, type MentionMatcher, type MentionName, } from "./mentions.js";
14
+ export { createMentionMatcher, findMentionedNames, sensitiveMentionNames, type MentionMatcher, type MentionName, } from "./mentions.js";
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schema/v2/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAClF,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,SAAS,EACT,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schema/v2/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAClF,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,SAAS,EACT,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,uBAAuB,EACvB,UAAU,EACV,aAAa,EACb,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,eAAe,CAAC"}
@@ -6,5 +6,5 @@ export { v2SchemaJsonSchema, v2TableSchema, v2ColumnSchema } from "./physical.js
6
6
  export { v2TableFrontmatterSchema, v2ColumnFrontmatterSchema, v2ConceptsFrontmatterSchema, v2ConceptSchema, RECOGNIZED_H2_SECTIONS, } from "./describable.js";
7
7
  export { parseTenantPolicyMarkdown, normalizeTenantPolicy } from "./tenant-policy-loader.js";
8
8
  export { tenantPolicyFrontmatterSchema, tenantRootSchema, hierarchyEdgeSchema, scopedTableSchema, polymorphicTableSchema, enforcementModeSchema, tenantScopeSchema, tenantAccessSchema, TENANT_POLICY_H2_SECTIONS, } from "./tenant-policy.js";
9
- export { createMentionMatcher, findMentionedNames, } from "./mentions.js";
9
+ export { createMentionMatcher, findMentionedNames, sensitiveMentionNames, } from "./mentions.js";
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schema/v2/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAElF,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAgB1B,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAwB5B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GAGnB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schema/v2/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAElF,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAgB1B,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAwB5B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,GAGtB,MAAM,eAAe,CAAC"}
@@ -35,11 +35,14 @@ export declare function loadSchemaFromJson(raw: string): NormalizedSchemaV2;
35
35
  * Autodetects between:
36
36
  * - A v2 directory (`<schemaId>.schema/`) containing `schema.json`
37
37
  * - A bundled JSON file (`*.bundle.json` or any JSON with `bundled: true`)
38
- * - A direct path to a `schema.json` inside a directory — loaded exactly like the
39
- * enclosing directory, including sibling `tables/*.md`, `concepts.md`, and
40
- * `tenant-policy.md`
38
+ * - A direct path to a `schema.json` inside a directory, matched in any case
39
+ * (`Schema.json` too) — loaded exactly like the enclosing directory, including
40
+ * sibling `tables/*.md`, `concepts.md`, and `tenant-policy.md`
41
41
  *
42
- * Any other JSON file is treated as a standalone physical layer.
42
+ * Any other JSON file is treated as a standalone physical layer, unless its
43
+ * directory also holds `tenant-policy.md`, `tables/` or `concepts.md`: loading it
44
+ * alone would ignore them, so that throws `SchemaParseError`. To load only the
45
+ * physical layer of such a file, pass its content to `loadSchemaFromJson()`.
43
46
  *
44
47
  * Optional sibling files may be absent, but a present file that cannot be read
45
48
  * or parsed (e.g. malformed YAML front-matter in `tenant-policy.md`) throws
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/schema/v2/loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,iBAAiB,CAAC;AAezB;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,IAAI,CAAC;IACd,qBAAqB;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAYlE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CA+B3D"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/schema/v2/loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,iBAAiB,CAAC;AAezB;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,IAAI,CAAC;IACd,qBAAqB;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAYlE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAqC3D"}