@askdb/core 1.0.0-beta.44 → 1.0.0-beta.46
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.
- package/README.md +20 -19
- package/dist/ask.d.ts +45 -45
- package/dist/ask.d.ts.map +1 -1
- package/dist/ask.js +153 -310
- package/dist/ask.js.map +1 -1
- package/dist/enrichment/index.d.ts +1 -1
- package/dist/enrichment/index.d.ts.map +1 -1
- package/dist/enrichment/prompt.d.ts +3 -3
- package/dist/enrichment/prompt.d.ts.map +1 -1
- package/dist/enrichment/prompt.js +43 -17
- package/dist/enrichment/prompt.js.map +1 -1
- package/dist/enrichment/suggest.d.ts +2 -2
- package/dist/enrichment/suggest.d.ts.map +1 -1
- package/dist/enrichment/suggest.js +3 -1
- package/dist/enrichment/suggest.js.map +1 -1
- package/dist/enrichment/types.d.ts +29 -9
- package/dist/enrichment/types.d.ts.map +1 -1
- package/dist/errors.d.ts +97 -6
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +21 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/logging/askdb-logger.d.ts +2 -0
- package/dist/logging/askdb-logger.d.ts.map +1 -1
- package/dist/logging/create-askdb-logger.d.ts.map +1 -1
- package/dist/logging/create-askdb-logger.js +3 -0
- package/dist/logging/create-askdb-logger.js.map +1 -1
- package/dist/logging/log-events.d.ts +8 -0
- package/dist/logging/log-events.d.ts.map +1 -1
- package/dist/logging/log-events.js +8 -0
- package/dist/logging/log-events.js.map +1 -1
- package/dist/retrieval/synthesize-ddl.d.ts +7 -1
- package/dist/retrieval/synthesize-ddl.d.ts.map +1 -1
- package/dist/retrieval/synthesize-ddl.js +36 -33
- package/dist/retrieval/synthesize-ddl.js.map +1 -1
- package/dist/schema/normalize.d.ts +6 -2
- package/dist/schema/normalize.d.ts.map +1 -1
- package/dist/schema/normalize.js +1 -4
- package/dist/schema/normalize.js.map +1 -1
- package/dist/schema/v2/format.d.ts +28 -1
- package/dist/schema/v2/format.d.ts.map +1 -1
- package/dist/schema/v2/format.js +53 -19
- package/dist/schema/v2/format.js.map +1 -1
- package/dist/schema/v2/index.d.ts +4 -3
- package/dist/schema/v2/index.d.ts.map +1 -1
- package/dist/schema/v2/index.js +4 -3
- package/dist/schema/v2/index.js.map +1 -1
- package/dist/schema/v2/loader.d.ts +28 -7
- package/dist/schema/v2/loader.d.ts.map +1 -1
- package/dist/schema/v2/loader.js +220 -96
- package/dist/schema/v2/loader.js.map +1 -1
- package/dist/schema/v2/mentions.d.ts +12 -0
- package/dist/schema/v2/mentions.d.ts.map +1 -1
- package/dist/schema/v2/mentions.js +65 -11
- package/dist/schema/v2/mentions.js.map +1 -1
- package/dist/schema/v2/save-file.d.ts +56 -0
- package/dist/schema/v2/save-file.d.ts.map +1 -0
- package/dist/schema/v2/save-file.js +138 -0
- package/dist/schema/v2/save-file.js.map +1 -0
- package/dist/schema/v2/tenant-policy-loader.d.ts +1 -10
- package/dist/schema/v2/tenant-policy-loader.d.ts.map +1 -1
- package/dist/schema/v2/tenant-policy-loader.js +65 -51
- package/dist/schema/v2/tenant-policy-loader.js.map +1 -1
- package/dist/schema/v2/tenant-policy.d.ts +7 -2
- package/dist/schema/v2/tenant-policy.d.ts.map +1 -1
- package/dist/schema/v2/tenant-policy.js +26 -0
- package/dist/schema/v2/tenant-policy.js.map +1 -1
- package/dist/sql/bind.d.ts +27 -7
- package/dist/sql/bind.d.ts.map +1 -1
- package/dist/sql/bind.js +33 -18
- package/dist/sql/bind.js.map +1 -1
- package/dist/sql/dialect-spec.d.ts +1 -0
- package/dist/sql/dialect-spec.d.ts.map +1 -1
- package/dist/sql/dialect-spec.js +7 -2
- package/dist/sql/dialect-spec.js.map +1 -1
- package/dist/sql/generate.d.ts +17 -11
- package/dist/sql/generate.d.ts.map +1 -1
- package/dist/sql/generate.js +65 -33
- package/dist/sql/generate.js.map +1 -1
- package/dist/sql/guardrail-decide.d.ts +58 -0
- package/dist/sql/guardrail-decide.d.ts.map +1 -0
- package/dist/sql/guardrail-decide.js +161 -0
- package/dist/sql/guardrail-decide.js.map +1 -0
- package/dist/sql/guardrails.d.ts +52 -0
- package/dist/sql/guardrails.d.ts.map +1 -0
- package/dist/sql/guardrails.js +100 -0
- package/dist/sql/guardrails.js.map +1 -0
- package/dist/sql/index.d.ts +2 -1
- package/dist/sql/index.d.ts.map +1 -1
- package/dist/sql/index.js +2 -1
- package/dist/sql/index.js.map +1 -1
- package/dist/sql/lexer.d.ts +13 -0
- package/dist/sql/lexer.d.ts.map +1 -1
- package/dist/sql/lexer.js +42 -7
- package/dist/sql/lexer.js.map +1 -1
- package/dist/sql/prompt-identifiers.d.ts +9 -0
- package/dist/sql/prompt-identifiers.d.ts.map +1 -1
- package/dist/sql/prompt-identifiers.js +22 -3
- package/dist/sql/prompt-identifiers.js.map +1 -1
- package/dist/sql/prompt.d.ts.map +1 -1
- package/dist/sql/prompt.js +5 -2
- package/dist/sql/prompt.js.map +1 -1
- package/dist/sql/rebind.d.ts +116 -0
- package/dist/sql/rebind.d.ts.map +1 -0
- package/dist/sql/rebind.js +215 -0
- package/dist/sql/rebind.js.map +1 -0
- package/dist/sql/sensitive-guardrail.d.ts +7 -2
- package/dist/sql/sensitive-guardrail.d.ts.map +1 -1
- package/dist/sql/sensitive-guardrail.js +14 -33
- package/dist/sql/sensitive-guardrail.js.map +1 -1
- package/dist/sql/tenant-guardrail.d.ts +3 -14
- package/dist/sql/tenant-guardrail.d.ts.map +1 -1
- package/dist/sql/tenant-guardrail.js +16 -65
- package/dist/sql/tenant-guardrail.js.map +1 -1
- package/dist/sql/tenant-placeholders.d.ts +40 -14
- package/dist/sql/tenant-placeholders.d.ts.map +1 -1
- package/dist/sql/tenant-placeholders.js +92 -48
- package/dist/sql/tenant-placeholders.js.map +1 -1
- package/dist/sql/tenant-policy-warnings.d.ts +8 -0
- package/dist/sql/tenant-policy-warnings.d.ts.map +1 -0
- package/dist/sql/tenant-policy-warnings.js +21 -0
- package/dist/sql/tenant-policy-warnings.js.map +1 -0
- package/dist/sql/tenant-scope-expand.d.ts +46 -0
- package/dist/sql/tenant-scope-expand.d.ts.map +1 -0
- package/dist/sql/tenant-scope-expand.js +101 -0
- package/dist/sql/tenant-scope-expand.js.map +1 -0
- package/dist/sql/tsql-batch.d.ts +56 -0
- package/dist/sql/tsql-batch.d.ts.map +1 -0
- package/dist/sql/tsql-batch.js +246 -0
- package/dist/sql/tsql-batch.js.map +1 -0
- package/dist/sql/validate.d.ts +18 -3
- package/dist/sql/validate.d.ts.map +1 -1
- package/dist/sql/validate.js +127 -8
- package/dist/sql/validate.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-askdb-logger.js","sourceRoot":"","sources":["../../src/logging/create-askdb-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAuBxB,SAAS,qBAAqB,CAAC,UAAsB;IACnD,OAAO;QACL,IAAI,CAAC,OAAgC,EAAE,OAAe;YACpD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,CAAC,OAAgC,EAAE,OAAe;YACrD,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,CAAC,OAAgC,EAAE,OAAe;YACrD,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAiC;IACjE,MAAM,KAAK,GAAkB,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;IACvD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC;IAC1C,MAAM,YAAY,GAA6B,EAAE,CAAC;IAClD,IAAI,QAAQ,EAAE,CAAC;QACb,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,IAAI,GACR,YAAY,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAE;QAClB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACzF,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC"}
|
|
1
|
+
{"version":3,"file":"create-askdb-logger.js","sourceRoot":"","sources":["../../src/logging/create-askdb-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAuBxB,SAAS,qBAAqB,CAAC,UAAsB;IACnD,OAAO;QACL,IAAI,CAAC,OAAgC,EAAE,OAAe;YACpD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,CAAC,OAAgC,EAAE,OAAe;YACrD,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,OAAgC,EAAE,OAAe;YACpD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,CAAC,OAAgC,EAAE,OAAe;YACrD,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAiC;IACjE,MAAM,KAAK,GAAkB,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;IACvD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC;IAC1C,MAAM,YAAY,GAA6B,EAAE,CAAC;IAClD,IAAI,QAAQ,EAAE,CAAC;QACb,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,IAAI,GACR,YAAY,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAE;QAClB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACzF,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -31,6 +31,14 @@ export declare const AskDbLogEvent: {
|
|
|
31
31
|
readonly TenantScopeValidated: "askdb.tenant.scope_validated";
|
|
32
32
|
/** Tenant scope validation failed. Includes `reason`. */
|
|
33
33
|
readonly TenantScopeRejected: "askdb.tenant.scope_rejected";
|
|
34
|
+
/**
|
|
35
|
+
* The loaded tenant policy doesn't fully match `schema.json` (ADR 0023). Logged at
|
|
36
|
+
* `warn` level, once per loaded schema, by the first `ask()` that receives it.
|
|
37
|
+
* Includes `enforcement`, `warningCount` and `warnings`: schema artifact metadata only
|
|
38
|
+
* (table and column IDs, and a polymorphic `mapping` key from the policy), never query
|
|
39
|
+
* text or row values.
|
|
40
|
+
*/
|
|
41
|
+
readonly TenantPolicyWarnings: "askdb.tenant.policy_warnings";
|
|
34
42
|
/**
|
|
35
43
|
* Generated (or replayed) SQL was found to reference identifiers marked
|
|
36
44
|
* `sensitive` in the schema artifact. Emitted by `ask()` in both `warn` and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-events.d.ts","sourceRoot":"","sources":["../../src/logging/log-events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;IAIxB,kFAAkF;;;;IAIlF,yFAAyF;;IAEzF,4GAA4G;;IAE5G,yEAAyE;;IAEzE;;;OAGG;;IAEH;;;;OAIG;;IAEH,mFAAmF;;IAEnF,yDAAyD;;IAEzD;;;;;OAKG;;IAEH,yCAAyC;;IAEzC,iFAAiF;;IAEjF;;;;OAIG;;CAEK,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"log-events.d.ts","sourceRoot":"","sources":["../../src/logging/log-events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;IAIxB,kFAAkF;;;;IAIlF,yFAAyF;;IAEzF,4GAA4G;;IAE5G,yEAAyE;;IAEzE;;;OAGG;;IAEH;;;;OAIG;;IAEH,mFAAmF;;IAEnF,yDAAyD;;IAEzD;;;;;;OAMG;;IAEH;;;;;OAKG;;IAEH,yCAAyC;;IAEzC,iFAAiF;;IAEjF;;;;OAIG;;CAEK,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC"}
|
|
@@ -31,6 +31,14 @@ export const AskDbLogEvent = {
|
|
|
31
31
|
TenantScopeValidated: "askdb.tenant.scope_validated",
|
|
32
32
|
/** Tenant scope validation failed. Includes `reason`. */
|
|
33
33
|
TenantScopeRejected: "askdb.tenant.scope_rejected",
|
|
34
|
+
/**
|
|
35
|
+
* The loaded tenant policy doesn't fully match `schema.json` (ADR 0023). Logged at
|
|
36
|
+
* `warn` level, once per loaded schema, by the first `ask()` that receives it.
|
|
37
|
+
* Includes `enforcement`, `warningCount` and `warnings`: schema artifact metadata only
|
|
38
|
+
* (table and column IDs, and a polymorphic `mapping` key from the policy), never query
|
|
39
|
+
* text or row values.
|
|
40
|
+
*/
|
|
41
|
+
TenantPolicyWarnings: "askdb.tenant.policy_warnings",
|
|
34
42
|
/**
|
|
35
43
|
* Generated (or replayed) SQL was found to reference identifiers marked
|
|
36
44
|
* `sensitive` in the schema artifact. Emitted by `ask()` in both `warn` and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-events.js","sourceRoot":"","sources":["../../src/logging/log-events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,eAAe;IACvB,QAAQ,EAAE,iBAAiB;IAC3B,kFAAkF;IAClF,YAAY,EAAE,qBAAqB;IACnC,qBAAqB,EAAE,+BAA+B;IACtD,wBAAwB,EAAE,kCAAkC;IAC5D,yFAAyF;IACzF,uBAAuB,EAAE,iCAAiC;IAC1D,4GAA4G;IAC5G,gCAAgC,EAAE,2CAA2C;IAC7E,yEAAyE;IACzE,cAAc,EAAE,uBAAuB;IACvC;;;OAGG;IACH,qBAAqB,EAAE,+BAA+B;IACtD;;;;OAIG;IACH,wBAAwB,EAAE,kCAAkC;IAC5D,mFAAmF;IACnF,oBAAoB,EAAE,8BAA8B;IACpD,yDAAyD;IACzD,mBAAmB,EAAE,6BAA6B;IAClD;;;;;OAKG;IACH,2BAA2B,EAAE,sCAAsC;IACnE,yCAAyC;IACzC,qBAAqB,EAAE,+BAA+B;IACtD,iFAAiF;IACjF,qBAAqB,EAAE,+BAA+B;IACtD;;;;OAIG;IACH,qBAAqB,EAAE,8BAA8B;CAC7C,CAAC"}
|
|
1
|
+
{"version":3,"file":"log-events.js","sourceRoot":"","sources":["../../src/logging/log-events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,eAAe;IACvB,QAAQ,EAAE,iBAAiB;IAC3B,kFAAkF;IAClF,YAAY,EAAE,qBAAqB;IACnC,qBAAqB,EAAE,+BAA+B;IACtD,wBAAwB,EAAE,kCAAkC;IAC5D,yFAAyF;IACzF,uBAAuB,EAAE,iCAAiC;IAC1D,4GAA4G;IAC5G,gCAAgC,EAAE,2CAA2C;IAC7E,yEAAyE;IACzE,cAAc,EAAE,uBAAuB;IACvC;;;OAGG;IACH,qBAAqB,EAAE,+BAA+B;IACtD;;;;OAIG;IACH,wBAAwB,EAAE,kCAAkC;IAC5D,mFAAmF;IACnF,oBAAoB,EAAE,8BAA8B;IACpD,yDAAyD;IACzD,mBAAmB,EAAE,6BAA6B;IAClD;;;;;;OAMG;IACH,oBAAoB,EAAE,8BAA8B;IACpD;;;;;OAKG;IACH,2BAA2B,EAAE,sCAAsC;IACnE,yCAAyC;IACzC,qBAAqB,EAAE,+BAA+B;IACtD,iFAAiF;IACjF,qBAAqB,EAAE,+BAA+B;IACtD;;;;OAIG;IACH,qBAAqB,EAAE,8BAA8B;CAC7C,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":"
|
|
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"}
|
|
@@ -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
|
-
|
|
62
|
+
shown(p, asIs, list);
|
|
49
63
|
cqlPerTable.set(tid, list);
|
|
50
64
|
}
|
|
51
65
|
break;
|
|
52
66
|
}
|
|
53
67
|
case "question": {
|
|
54
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
91
|
-
|
|
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
|
|
110
|
-
if (
|
|
111
|
-
|
|
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
|
|
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(`-- ${
|
|
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(`-- ${
|
|
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(`-- ${
|
|
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(`-- ${
|
|
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":"AAAA,OAAO,
|
|
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
|
|
@@ -38,6 +44,4 @@ export declare function formatSchemaForNlToSql(schema: NormalizedSchema, options
|
|
|
38
44
|
ddl: string;
|
|
39
45
|
stats: NlToSqlSchemaFormatStats;
|
|
40
46
|
};
|
|
41
|
-
/** Same DDL as {@link formatSchemaForNlToSql} with default options (sensitive names included, tagged). */
|
|
42
|
-
export declare function formatSchemaForPrompt(schema: NormalizedSchema, options?: FormatNlToSqlOptions): string;
|
|
43
47
|
//# sourceMappingURL=normalize.d.ts.map
|
|
@@ -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,
|
|
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"}
|
package/dist/schema/normalize.js
CHANGED
|
@@ -80,11 +80,8 @@ export function formatSchemaForNlToSql(schema, options = {}) {
|
|
|
80
80
|
sensitiveTableStubCount,
|
|
81
81
|
listedSensitiveColumnCount,
|
|
82
82
|
untrackedTableCount: 0,
|
|
83
|
+
mentionDroppedCount: 0,
|
|
83
84
|
},
|
|
84
85
|
};
|
|
85
86
|
}
|
|
86
|
-
/** Same DDL as {@link formatSchemaForNlToSql} with default options (sensitive names included, tagged). */
|
|
87
|
-
export function formatSchemaForPrompt(schema, options) {
|
|
88
|
-
return formatSchemaForNlToSql(schema, options).ddl;
|
|
89
|
-
}
|
|
90
87
|
//# sourceMappingURL=normalize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/schema/normalize.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,MAAuB;IAC1D,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI;gBAC5B,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,KAAK;gBACjC,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;
|
|
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;
|
|
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"}
|
package/dist/schema/v2/format.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
105
|
-
if (
|
|
106
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/schema/v2/format.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export { loadSchema, loadSchemaFromJson } from "./loader.js";
|
|
1
|
+
export { loadSchema, loadSchemaFromJson, readSchemaDirectory } from "./loader.js";
|
|
2
2
|
export type { BundledSchemaV2 } from "./loader.js";
|
|
3
3
|
export { parseTableMarkdown, parseConceptsMarkdown } from "./parser.js";
|
|
4
4
|
export { writeTableMarkdown, writeConceptsMarkdown, writeTenantPolicyMarkdown } from "./writer.js";
|
|
5
|
+
export { saveSchemaFile } from "./save-file.js";
|
|
5
6
|
export { formatSchemaV2ForNlToSql } from "./format.js";
|
|
6
7
|
export { v2SchemaJsonSchema, v2TableSchema, v2ColumnSchema } from "./physical.js";
|
|
7
8
|
export type { V2SchemaJson, V2Table, V2Column } from "./physical.js";
|
|
@@ -9,7 +10,7 @@ export { v2TableFrontmatterSchema, v2ColumnFrontmatterSchema, v2ConceptsFrontmat
|
|
|
9
10
|
export type { V2TableFrontmatter, V2ColumnFrontmatter, V2ConceptsFrontmatter, V2Concept, ParsedTableMarkdown, ParsedConceptsMarkdown, RecognizedH2Section, } from "./describable.js";
|
|
10
11
|
export type { NormalizedSchemaV2, NormalizedV2Table, NormalizedV2Column, SchemaV2Warning, } from "./normalized.js";
|
|
11
12
|
export { parseTenantPolicyMarkdown, normalizeTenantPolicy } from "./tenant-policy-loader.js";
|
|
12
|
-
export { tenantPolicyFrontmatterSchema, tenantRootSchema, hierarchyEdgeSchema, scopedTableSchema, polymorphicTableSchema, enforcementModeSchema, tenantScopeSchema, tenantAccessSchema, TENANT_POLICY_H2_SECTIONS, } from "./tenant-policy.js";
|
|
13
|
+
export { tenantPolicyFrontmatterSchema, tenantRootSchema, hierarchyEdgeSchema, scopedTableSchema, polymorphicTableSchema, enforcementModeSchema, formatTenantPolicyWarning, tenantScopeSchema, tenantAccessSchema, TENANT_POLICY_H2_SECTIONS, } from "./tenant-policy.js";
|
|
13
14
|
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";
|
|
15
|
+
export { createMentionMatcher, findMentionedNames, sensitiveMentionNames, type MentionMatcher, type MentionName, } from "./mentions.js";
|
|
15
16
|
//# 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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schema/v2/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClF,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,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,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,yBAAyB,EACzB,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"}
|
package/dist/schema/v2/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
export { loadSchema, loadSchemaFromJson } from "./loader.js";
|
|
1
|
+
export { loadSchema, loadSchemaFromJson, readSchemaDirectory } from "./loader.js";
|
|
2
2
|
export { parseTableMarkdown, parseConceptsMarkdown } from "./parser.js";
|
|
3
3
|
export { writeTableMarkdown, writeConceptsMarkdown, writeTenantPolicyMarkdown } from "./writer.js";
|
|
4
|
+
export { saveSchemaFile } from "./save-file.js";
|
|
4
5
|
export { formatSchemaV2ForNlToSql } from "./format.js";
|
|
5
6
|
export { v2SchemaJsonSchema, v2TableSchema, v2ColumnSchema } from "./physical.js";
|
|
6
7
|
export { v2TableFrontmatterSchema, v2ColumnFrontmatterSchema, v2ConceptsFrontmatterSchema, v2ConceptSchema, RECOGNIZED_H2_SECTIONS, } from "./describable.js";
|
|
7
8
|
export { parseTenantPolicyMarkdown, normalizeTenantPolicy } from "./tenant-policy-loader.js";
|
|
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 { tenantPolicyFrontmatterSchema, tenantRootSchema, hierarchyEdgeSchema, scopedTableSchema, polymorphicTableSchema, enforcementModeSchema, formatTenantPolicyWarning, tenantScopeSchema, tenantAccessSchema, TENANT_POLICY_H2_SECTIONS, } from "./tenant-policy.js";
|
|
10
|
+
export { createMentionMatcher, findMentionedNames, sensitiveMentionNames, } from "./mentions.js";
|
|
10
11
|
//# 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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schema/v2/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElF,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,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,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAwB5B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,GAGtB,MAAM,eAAe,CAAC"}
|