@askdb/core 1.0.0-beta.51 → 1.0.0-beta.53
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 +6 -6
- package/dist/errors.d.ts +13 -8
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -9
- package/dist/index.js.map +1 -1
- package/dist/logging/pino-supported-levels.d.ts +1 -1
- package/dist/logging/pino-supported-levels.js +1 -1
- package/dist/retrieval/synthesize-ddl.d.ts +19 -4
- package/dist/retrieval/synthesize-ddl.d.ts.map +1 -1
- package/dist/retrieval/synthesize-ddl.js +82 -19
- package/dist/retrieval/synthesize-ddl.js.map +1 -1
- package/dist/schema/v2/format.d.ts +55 -9
- package/dist/schema/v2/format.d.ts.map +1 -1
- package/dist/schema/v2/format.js +131 -11
- package/dist/schema/v2/format.js.map +1 -1
- package/dist/schema/v2/loader.js +37 -2
- package/dist/schema/v2/loader.js.map +1 -1
- package/dist/schema/v2/normalized.d.ts +4 -0
- package/dist/schema/v2/normalized.d.ts.map +1 -1
- package/dist/schema/v2/tenant-policy.d.ts +0 -9
- package/dist/schema/v2/tenant-policy.d.ts.map +1 -1
- package/dist/schema/v2/tenant-policy.js +0 -11
- package/dist/schema/v2/tenant-policy.js.map +1 -1
- package/dist/sql/bind.d.ts.map +1 -1
- package/dist/sql/bind.js +3 -2
- package/dist/sql/bind.js.map +1 -1
- package/dist/sql/guardrails.d.ts.map +1 -1
- package/dist/sql/guardrails.js +2 -2
- package/dist/sql/guardrails.js.map +1 -1
- package/dist/sql/lexer.d.ts +12 -2
- package/dist/sql/lexer.d.ts.map +1 -1
- package/dist/sql/lexer.js +17 -4
- package/dist/sql/lexer.js.map +1 -1
- package/dist/sql/prompt.js +1 -1
- package/dist/sql/prompt.js.map +1 -1
- package/dist/sql/readings.d.ts +113 -0
- package/dist/sql/readings.d.ts.map +1 -0
- package/dist/sql/readings.js +310 -0
- package/dist/sql/readings.js.map +1 -0
- package/dist/sql/schema-question-precheck.d.ts.map +1 -1
- package/dist/sql/schema-question-precheck.js +2 -2
- package/dist/sql/schema-question-precheck.js.map +1 -1
- package/dist/sql/sensitive-guardrail.d.ts +5 -0
- package/dist/sql/sensitive-guardrail.d.ts.map +1 -1
- package/dist/sql/sensitive-guardrail.js +49 -24
- package/dist/sql/sensitive-guardrail.js.map +1 -1
- package/dist/sql/tenant-guardrail.d.ts +12 -5
- package/dist/sql/tenant-guardrail.d.ts.map +1 -1
- package/dist/sql/tenant-guardrail.js +1179 -372
- package/dist/sql/tenant-guardrail.js.map +1 -1
- package/dist/sql/tenant-placeholders.d.ts +2 -2
- package/dist/sql/tenant-placeholders.d.ts.map +1 -1
- package/dist/sql/tenant-placeholders.js +2 -2
- package/dist/sql/tenant-placeholders.js.map +1 -1
- package/dist/sql/validate.d.ts +8 -5
- package/dist/sql/validate.d.ts.map +1 -1
- package/dist/sql/validate.js +33 -21
- package/dist/sql/validate.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ NL→SQL pipeline for AskDB. Provides `ask()` orchestration, schema/IR types, mo
|
|
|
4
4
|
|
|
5
5
|
> **Status:** pre-release beta (`1.0.0-beta.x`); public APIs may still change before 1.0. `0.3.0` moved the Postgres dialect and `@askdb/core/postgres` to `@askdb/postgres`. Runtime AI provider construction lives in `@askdb/ai`; core remains BYO-model and does not read `process.env`. See [`docs/adrs/0002-integration-package-layout.md`](https://github.com/Ygilany/AskDB/blob/main/docs/adrs/0002-integration-package-layout.md), [`docs/adrs/0005-askdb-config-and-env-bootstrap.md`](https://github.com/Ygilany/AskDB/blob/main/docs/adrs/0005-askdb-config-and-env-bootstrap.md), and [`docs/adrs/0006-ai-provider-integration-strategy.md`](https://github.com/Ygilany/AskDB/blob/main/docs/adrs/0006-ai-provider-integration-strategy.md).
|
|
6
6
|
|
|
7
|
-
> **Security model:** `ask()` returns SQL and never executes it. Its SQL checks (single `SELECT`/`WITH` statement (with a SQL Server caveat), no comments, no write/DDL keywords, no locking reads, no known side-effecting functions, no Unicode-escaped `U&"…"` names on Postgres, and the tenant and sensitive-column checks) are heuristic defense in depth that catch common model mistakes. The read-only
|
|
7
|
+
> **Security model:** `ask()` returns SQL and never executes it. Its SQL checks (single `SELECT`/`WITH` statement (with a SQL Server caveat), no comments, no write/DDL keywords, no locking reads, no known side-effecting functions, no Unicode-escaped `U&"…"` names on Postgres, and the tenant and sensitive-column checks) are heuristic defense in depth that catch common model mistakes. The read-only, sensitive-column and tenant checks all read SQL through one dialect-aware lexer, under readings that one module sets for each check and dialect ([#815](https://github.com/Ygilany/AskDB/issues/815), which replaced the tenant check's separate scanner, [#342](https://github.com/Ygilany/AskDB/issues/342)). They are not a SQL parser and not a security boundary. Run generated SQL under a read-only, least-privilege database role and enforce tenant isolation in the database. See [Safety boundaries](https://askdb.tools/concepts/safety-boundaries/).
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
@@ -29,7 +29,7 @@ Runtime AI configuration helpers live in `@askdb/ai`, which has built-in provide
|
|
|
29
29
|
|
|
30
30
|
## Schema format
|
|
31
31
|
|
|
32
|
-
`@askdb/core`
|
|
32
|
+
`@askdb/core` reads the **schema artifact**: a split format designed for business-context enrichment and RAG chunking. See the [schema artifact format](https://askdb.tools/reference/schema-artifact-format/) for the full contract.
|
|
33
33
|
|
|
34
34
|
### Directory layout
|
|
35
35
|
|
|
@@ -42,7 +42,7 @@ my-app.schema/
|
|
|
42
42
|
concepts.md # optional — cross-table vocabulary
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
### Load a
|
|
45
|
+
### Load a schema directory
|
|
46
46
|
|
|
47
47
|
```ts
|
|
48
48
|
import { loadSchema } from "@askdb/core";
|
|
@@ -109,9 +109,9 @@ Key rules:
|
|
|
109
109
|
- `AskDbLanguageModel` — AskDB's public name for the AI SDK language model contract.
|
|
110
110
|
- `DialectSpec` and the built-in specs (`POSTGRES_DIALECT`, `MYSQL_DIALECT`, …, `BUILT_IN_DIALECTS`) — the SQL rules for each built-in engine. The engine packages re-export them.
|
|
111
111
|
- `AskDialect` — the escape-hatch contract for a fully custom generator.
|
|
112
|
-
- `loadSchema(path)` — load a
|
|
113
|
-
- `loadSchemaFromJson(raw)` — parse a
|
|
114
|
-
- `readSchemaDirectory(dir)` — read a
|
|
112
|
+
- `loadSchema(path)` — load a schema directory, bundled JSON, or `schema.json` path.
|
|
113
|
+
- `loadSchemaFromJson(raw)` — parse a bundled schema artifact JSON string (e.g. from an env var).
|
|
114
|
+
- `readSchemaDirectory(dir)` — read a schema directory into its bundle form (what `askdb bundle` writes).
|
|
115
115
|
- `saveSchemaFile(schemaDir, relativePath, content)` — write one file inside a schema directory; refuses a symbolic link and replaces the target through a temp file.
|
|
116
116
|
- `parseTableMarkdown` / `writeTableMarkdown` — round-trippable describable-layer parser/writer.
|
|
117
117
|
- `extractSqlFromModelText` — generic fenced-code extractor (dialect-agnostic).
|
package/dist/errors.d.ts
CHANGED
|
@@ -141,11 +141,13 @@ export type TenantGuardrailRuleCode = "MISSING_TENANT_PREDICATE" | "MISSING_TYPE
|
|
|
141
141
|
*/
|
|
142
142
|
| "UNCHECKABLE_FUNCTION"
|
|
143
143
|
/**
|
|
144
|
-
* A
|
|
145
|
-
* function.
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
144
|
+
* A name the tenant check can't match as written, in any position: a table, a column or a
|
|
145
|
+
* function. Either a Postgres Unicode-escaped name (`U&"\006Frders"`), which Postgres decodes,
|
|
146
|
+
* reported whenever the SQL is read as Postgres (postgres, cockroachdb, a custom `AskDialect`, or
|
|
147
|
+
* no dialect; #704, #692); or a name, quoted or not, that holds a character outside printable
|
|
148
|
+
* ASCII and that the schema doesn't spell exactly, which SQL Server's collation may read as
|
|
149
|
+
* another name (`[orders]` reads `orders`), reported under sqlserver, a custom `AskDialect`
|
|
150
|
+
* or id, or no dialect. Reported for the whole SQL, with `tableId: ""`; not under a `global` scope.
|
|
149
151
|
*/
|
|
150
152
|
| "UNICODE_ESCAPED_IDENTIFIER"
|
|
151
153
|
/**
|
|
@@ -210,9 +212,12 @@ export type SensitiveScopeIssue =
|
|
|
210
212
|
/** A string, quoted identifier, or comment never closes, so the rest of the statement could not be scanned. */
|
|
211
213
|
| "UNTERMINATED_TOKEN"
|
|
212
214
|
/**
|
|
213
|
-
* A
|
|
214
|
-
*
|
|
215
|
-
* read as Postgres
|
|
215
|
+
* A name the check can't match as written, so it can't tell which column it names: a Postgres
|
|
216
|
+
* Unicode-escaped name (`U&"p\0061ssword"`), which Postgres decodes, raised whenever the SQL may
|
|
217
|
+
* be read as Postgres (postgres, cockroachdb, a custom `AskDialect`, or no dialect; #707, #692);
|
|
218
|
+
* or a name, quoted or not, that holds a character outside printable ASCII and that the schema
|
|
219
|
+
* doesn't spell exactly, which SQL Server's collation may read as another name (`[ssn]` reads
|
|
220
|
+
* `ssn`), raised under sqlserver, a custom `AskDialect` or id, or no dialect.
|
|
216
221
|
*/
|
|
217
222
|
| "UNICODE_ESCAPED_IDENTIFIER"
|
|
218
223
|
/**
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -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;;;GAGG;GACD,wBAAwB;AAC1B,wFAAwF;GACtF,kBAAkB;AACpB;;;;GAIG;GACD,yBAAyB;AAC3B;;;;GAIG;GACD,yBAAyB;AAC3B;;;GAGG;GACD,gCAAgC;AAClC;;;;GAIG;GACD,kBAAkB,CAAC;AAEvB,qBAAa,kBAAmB,SAAQ,UAAU;aAU9B,IAAI,EAAE,qBAAqB;IAC3C,8DAA8D;aAC9C,IAAI,CAAC,EAAE,MAAM;IAX/B;;;;OAIG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC;gBAGzB,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;;;GAGG;AACH,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;AACvB,sGAAsG;GACpG,uBAAuB,GACvB,qBAAqB;AACvB;;;;;;GAMG;GACD,wBAAwB;AAC1B,mFAAmF;GACjF,+BAA+B;AACjC,6EAA6E;GAC3E,8BAA8B;AAChC;;;;;;;;GAQG;GACD,uBAAuB;AACzB;;;;;;GAMG;GACD,0BAA0B,CAAC;AAE/B,qBAAa,gBAAiB,SAAQ,UAAU;aAG5B,MAAM,EAAE,0BAA0B;gBADlD,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,0BAA0B;CAKrD;AAED,MAAM,MAAM,6BAA6B,GACrC,eAAe,GACf,eAAe,GACf,wBAAwB,GACxB,sBAAsB,GACtB,qBAAqB;AACvB,iHAAiH;GAC/G,2BAA2B;AAC7B,+EAA+E;GAC7E,uBAAuB;AACzB,yFAAyF;GACvF,wBAAwB;AAC1B;;;GAGG;GACD,uBAAuB;AACzB;;;GAGG;GACD,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,kBAAkB;AACpB;;;;;;;GAOG;GACD,oBAAoB;AACtB;;;;;;;;GAQG;GACD,sBAAsB;AACxB
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.js.map
CHANGED
|
@@ -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;AAwCD,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;;;GAGG;AACH,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;AAuCD,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;AAyBD,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;
|
|
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;AAwCD,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;;;GAGG;AACH,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;AAuCD,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;AAyBD,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;AA0DD,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;AA8ED,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
|
@@ -3,7 +3,7 @@ export { validateTenantScope } from "./sql/tenant-scope-validate.js";
|
|
|
3
3
|
export { buildTenantPromptBlock } from "./sql/tenant-prompt.js";
|
|
4
4
|
export { validateTenantGuardrails, type TenantGuardrailResult, type ValidateTenantGuardrailsOptions, } from "./sql/tenant-guardrail.js";
|
|
5
5
|
export { validateSensitiveReferences, schemaHasSensitiveIdentifiers, formatSensitiveReference, type SensitiveGuardrailMode, type SensitiveGuardrailResult, type ValidateSensitiveReferencesOptions, } from "./sql/sensitive-guardrail.js";
|
|
6
|
-
export { DEFAULT_TENANT_SQL_MODE, resolveTenantSql,
|
|
6
|
+
export { DEFAULT_TENANT_SQL_MODE, resolveTenantSql, placeholderForTenantRoot, type TenantSqlOutputMode, type TenantPlaceholderResult, type TenantBinding, type TenantSqlDialect, } from "./sql/tenant-placeholders.js";
|
|
7
7
|
export { expandClosure } from "./sql/tenant-hierarchy.js";
|
|
8
8
|
export { expandTenantScope } from "./sql/tenant-scope-expand.js";
|
|
9
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";
|
|
@@ -13,22 +13,22 @@ export type { AskDbLogger } from "./logging/askdb-logger.js";
|
|
|
13
13
|
export { ASKDB_LOG_REQUIRED_EVENTS, ASKDB_LOG_REQUIRED_FIELDS, } from "./logging/log-contract.js";
|
|
14
14
|
export { createAskDbLogger, type AskDbLogLevel, type CreateAskDbLoggerOptions, } from "./logging/create-askdb-logger.js";
|
|
15
15
|
export { formatSupportedAskDbLogLevels, isSupportedAskDbLogLevel, SUPPORTED_ASKDB_LOG_LEVELS, } from "./logging/pino-supported-levels.js";
|
|
16
|
-
export { loadNormalizedSchemaFromJson
|
|
16
|
+
export { loadNormalizedSchemaFromJson } from "./schema/parse.js";
|
|
17
17
|
export type { AskDbSchemaFile, NormalizedSchema, AnyNormalizedSchema, } from "./schema/types.js";
|
|
18
|
-
export { loadSchema, loadSchemaFromJson, readSchemaDirectory, parseTableMarkdown, parseConceptsMarkdown, writeTableMarkdown, writeConceptsMarkdown, writeTenantPolicyMarkdown, saveSchemaFile, formatSchemaV2ForNlToSql, v2SchemaJsonSchema,
|
|
18
|
+
export { loadSchema, loadSchemaFromJson, readSchemaDirectory, parseTableMarkdown, parseConceptsMarkdown, writeTableMarkdown, writeConceptsMarkdown, writeTenantPolicyMarkdown, saveSchemaFile, formatSchemaV2ForNlToSql, v2SchemaJsonSchema, parseTenantPolicyMarkdown, normalizeTenantPolicy, formatTenantPolicyWarning, tenantPolicyFrontmatterSchema, tenantScopeSchema, createMentionMatcher, findMentionedNames, sensitiveMentionNames, type MentionMatcher, type MentionName, } from "./schema/v2/index.js";
|
|
19
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";
|
|
20
|
-
export {
|
|
20
|
+
export { suggestEnrichment } from "./enrichment/index.js";
|
|
21
21
|
export type { EnrichmentCandidate, EnrichmentContext, EnrichmentPromptOptions, EnrichmentTarget, SuggestEnrichmentDeps, } from "./enrichment/index.js";
|
|
22
|
-
export { formatSchemaForNlToSql,
|
|
22
|
+
export { formatSchemaForNlToSql, type FormatNlToSqlOptions, type NlToSqlSchemaFormatStats, } from "./schema/normalize.js";
|
|
23
23
|
export { extractSqlFromModelText, extractUnboundSqlFromModelText } from "./sql/extract-sql.js";
|
|
24
|
-
export {
|
|
24
|
+
export type { QueryParameterType, QueryParameterValue, QueryParamSlot, QueryParameterBinding, PreparedQuery, } from "./sql/bind.js";
|
|
25
25
|
export { bindPreparedQuery, type BindGuardrails, type BoundQuery } from "./sql/rebind.js";
|
|
26
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";
|
|
27
27
|
export { generateSelectSql, type GenerateSelectSqlResult, type GenerateSqlDeps, } from "./sql/generate.js";
|
|
28
|
-
export { validateSelectSql,
|
|
29
|
-
export { buildNlToSqlUserPrompt
|
|
28
|
+
export { validateSelectSql, type SelectGuardrailExplain, } from "./sql/validate.js";
|
|
29
|
+
export { buildNlToSqlUserPrompt } from "./sql/prompt.js";
|
|
30
30
|
export { promptIdentifierQuoter } from "./sql/prompt-identifiers.js";
|
|
31
|
-
export {
|
|
31
|
+
export { nlToSqlAmbiguityNotes } from "./sql/schema-question-precheck.js";
|
|
32
32
|
export { type AskDbLanguageModel, } from "./ai/types.js";
|
|
33
33
|
export type { Retriever, RetrievedChunk, RetrievedChunkType, RetrievedResult, } from "./retrieval/types.js";
|
|
34
34
|
export { synthesizeRetrievedDdl } from "./retrieval/synthesize-ddl.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","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,EACxB,KAAK,qBAAqB,EAC1B,KAAK,+BAA+B,GACrC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,wBAAwB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,kCAAkC,GACxC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ export { validateTenantScope } from "./sql/tenant-scope-validate.js";
|
|
|
3
3
|
export { buildTenantPromptBlock } from "./sql/tenant-prompt.js";
|
|
4
4
|
export { validateTenantGuardrails, } from "./sql/tenant-guardrail.js";
|
|
5
5
|
export { validateSensitiveReferences, schemaHasSensitiveIdentifiers, formatSensitiveReference, } from "./sql/sensitive-guardrail.js";
|
|
6
|
-
export { DEFAULT_TENANT_SQL_MODE, resolveTenantSql,
|
|
6
|
+
export { DEFAULT_TENANT_SQL_MODE, resolveTenantSql, placeholderForTenantRoot, } from "./sql/tenant-placeholders.js";
|
|
7
7
|
export { expandClosure } from "./sql/tenant-hierarchy.js";
|
|
8
8
|
export { expandTenantScope } from "./sql/tenant-scope-expand.js";
|
|
9
9
|
export { ask, } from "./ask.js";
|
|
@@ -12,18 +12,17 @@ export { AskDbLogEvent } from "./logging/log-events.js";
|
|
|
12
12
|
export { ASKDB_LOG_REQUIRED_EVENTS, ASKDB_LOG_REQUIRED_FIELDS, } from "./logging/log-contract.js";
|
|
13
13
|
export { createAskDbLogger, } from "./logging/create-askdb-logger.js";
|
|
14
14
|
export { formatSupportedAskDbLogLevels, isSupportedAskDbLogLevel, SUPPORTED_ASKDB_LOG_LEVELS, } from "./logging/pino-supported-levels.js";
|
|
15
|
-
export { loadNormalizedSchemaFromJson
|
|
16
|
-
export { loadSchema, loadSchemaFromJson, readSchemaDirectory, parseTableMarkdown, parseConceptsMarkdown, writeTableMarkdown, writeConceptsMarkdown, writeTenantPolicyMarkdown, saveSchemaFile, formatSchemaV2ForNlToSql, v2SchemaJsonSchema,
|
|
17
|
-
export {
|
|
18
|
-
export { formatSchemaForNlToSql,
|
|
15
|
+
export { loadNormalizedSchemaFromJson } from "./schema/parse.js";
|
|
16
|
+
export { loadSchema, loadSchemaFromJson, readSchemaDirectory, parseTableMarkdown, parseConceptsMarkdown, writeTableMarkdown, writeConceptsMarkdown, writeTenantPolicyMarkdown, saveSchemaFile, formatSchemaV2ForNlToSql, v2SchemaJsonSchema, parseTenantPolicyMarkdown, normalizeTenantPolicy, formatTenantPolicyWarning, tenantPolicyFrontmatterSchema, tenantScopeSchema, createMentionMatcher, findMentionedNames, sensitiveMentionNames, } from "./schema/v2/index.js";
|
|
17
|
+
export { suggestEnrichment } from "./enrichment/index.js";
|
|
18
|
+
export { formatSchemaForNlToSql, } from "./schema/normalize.js";
|
|
19
19
|
export { extractSqlFromModelText, extractUnboundSqlFromModelText } from "./sql/extract-sql.js";
|
|
20
|
-
export { escapeSqlLiteral, } from "./sql/bind.js";
|
|
21
20
|
export { bindPreparedQuery } from "./sql/rebind.js";
|
|
22
21
|
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";
|
|
23
22
|
export { generateSelectSql, } from "./sql/generate.js";
|
|
24
|
-
export { validateSelectSql,
|
|
25
|
-
export { buildNlToSqlUserPrompt
|
|
23
|
+
export { validateSelectSql, } from "./sql/validate.js";
|
|
24
|
+
export { buildNlToSqlUserPrompt } from "./sql/prompt.js";
|
|
26
25
|
export { promptIdentifierQuoter } from "./sql/prompt-identifiers.js";
|
|
27
|
-
export {
|
|
26
|
+
export { nlToSqlAmbiguityNotes } from "./sql/schema-question-precheck.js";
|
|
28
27
|
export { synthesizeRetrievedDdl } from "./retrieval/synthesize-ddl.js";
|
|
29
28
|
//# sourceMappingURL=index.js.map
|
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,uBAAuB,EACvB,gBAAgB,EAChB,
|
|
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,uBAAuB,EACvB,gBAAgB,EAChB,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,MAAM,mBAAmB,CAAC;AAMjE,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,6BAA6B,EAC7B,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,GAGtB,MAAM,sBAAsB,CAAC;AAsC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAQ1D,OAAO,EACL,sBAAsB,GAGvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAQ/F,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,GAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAU1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AskDbLogLevel } from "./create-askdb-logger.js";
|
|
2
2
|
/**
|
|
3
|
-
* Valid `--log-level` / `
|
|
3
|
+
* Valid `--log-level` / `logging.level` strings: Pino's default levels from
|
|
4
4
|
* `pino.levels.values` plus `silent` (accepted by `LoggerOptions.level` but not a numeric level).
|
|
5
5
|
*/
|
|
6
6
|
export declare const SUPPORTED_ASKDB_LOG_LEVELS: ReadonlySet<string>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import pino from "pino";
|
|
2
2
|
/**
|
|
3
|
-
* Valid `--log-level` / `
|
|
3
|
+
* Valid `--log-level` / `logging.level` strings: Pino's default levels from
|
|
4
4
|
* `pino.levels.values` plus `silent` (accepted by `LoggerOptions.level` but not a numeric level).
|
|
5
5
|
*/
|
|
6
6
|
export const SUPPORTED_ASKDB_LOG_LEVELS = new Set([
|
|
@@ -7,11 +7,26 @@ import type { RetrievedResult } from "./types.js";
|
|
|
7
7
|
* 1. Each table referenced by any retrieved chunk gets a TABLE block with
|
|
8
8
|
* its full column definitions (so the model has complete column lists).
|
|
9
9
|
* Each column line carries the schema's own `-- aliases / values / desc`
|
|
10
|
-
* annotation
|
|
10
|
+
* annotation, with the column's note (ADR 0042, amended for #898); a
|
|
11
|
+
* retrieved column chunk only picks its table.
|
|
12
|
+
* Then the table's foreign keys to other shown tables, as the
|
|
13
|
+
* full-schema prompt prints them (#898).
|
|
11
14
|
* 2. CQL chunks land as a `-- common query language --` block under the
|
|
12
|
-
* table
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
+
* table, then `Business context` chunks as a `-- business context --`
|
|
16
|
+
* block, its parts in body order (#894).
|
|
17
|
+
* 3. Concept, example-question and tenant-policy chunks follow the tables,
|
|
18
|
+
* each kind as its own `-- … --` block, in that order. A concept the
|
|
19
|
+
* schema has prints as the full-schema prompt prints it
|
|
20
|
+
* (`conceptRenderer`); another keeps its chunk text and heading, as a
|
|
21
|
+
* tenant-policy chunk does (the policy section's name). A relationship
|
|
22
|
+
* chunk only picks its two tables: their foreign key prints from the
|
|
23
|
+
* schema (#898).
|
|
24
|
+
*
|
|
25
|
+
* `@askdb/rag` types a `Business context` chunk `table`; its id
|
|
26
|
+
* (`…<table-id>#biz`, `…#biz#bc:<n>` for part n of a long body; the schema v2
|
|
27
|
+
* contract's chunking rules) tells it apart from the table chunk. A sensitive
|
|
28
|
+
* table's CQL and business context never show, like the schema's own
|
|
29
|
+
* describable text.
|
|
15
30
|
*
|
|
16
31
|
* Sensitive identifiers retain their `(sensitive)` tagging exactly as
|
|
17
32
|
* `formatSchemaV2ForNlToSql` does. With `omitSensitiveIdentifiersFromPrompt`,
|
|
@@ -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":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;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,sGAAsG;IACtG,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,0HAA0H;IAC1H,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAgLA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { columnAnnotation, listAsStored, promptTableName, promptTextGate, tableAliasNote, } from "../schema/v2/format.js";
|
|
1
|
+
import { businessContextLines, columnAnnotation, conceptRenderer, foreignKeyLinesByTable, 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
|
*
|
|
@@ -6,11 +6,26 @@ import { columnAnnotation, listAsStored, promptTableName, promptTextGate, tableA
|
|
|
6
6
|
* 1. Each table referenced by any retrieved chunk gets a TABLE block with
|
|
7
7
|
* its full column definitions (so the model has complete column lists).
|
|
8
8
|
* Each column line carries the schema's own `-- aliases / values / desc`
|
|
9
|
-
* annotation
|
|
9
|
+
* annotation, with the column's note (ADR 0042, amended for #898); a
|
|
10
|
+
* retrieved column chunk only picks its table.
|
|
11
|
+
* Then the table's foreign keys to other shown tables, as the
|
|
12
|
+
* full-schema prompt prints them (#898).
|
|
10
13
|
* 2. CQL chunks land as a `-- common query language --` block under the
|
|
11
|
-
* table
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
+
* table, then `Business context` chunks as a `-- business context --`
|
|
15
|
+
* block, its parts in body order (#894).
|
|
16
|
+
* 3. Concept, example-question and tenant-policy chunks follow the tables,
|
|
17
|
+
* each kind as its own `-- … --` block, in that order. A concept the
|
|
18
|
+
* schema has prints as the full-schema prompt prints it
|
|
19
|
+
* (`conceptRenderer`); another keeps its chunk text and heading, as a
|
|
20
|
+
* tenant-policy chunk does (the policy section's name). A relationship
|
|
21
|
+
* chunk only picks its two tables: their foreign key prints from the
|
|
22
|
+
* schema (#898).
|
|
23
|
+
*
|
|
24
|
+
* `@askdb/rag` types a `Business context` chunk `table`; its id
|
|
25
|
+
* (`…<table-id>#biz`, `…#biz#bc:<n>` for part n of a long body; the schema v2
|
|
26
|
+
* contract's chunking rules) tells it apart from the table chunk. A sensitive
|
|
27
|
+
* table's CQL and business context never show, like the schema's own
|
|
28
|
+
* describable text.
|
|
14
29
|
*
|
|
15
30
|
* Sensitive identifiers retain their `(sensitive)` tagging exactly as
|
|
16
31
|
* `formatSchemaV2ForNlToSql` does. With `omitSensitiveIdentifiersFromPrompt`,
|
|
@@ -24,9 +39,12 @@ export function synthesizeRetrievedDdl(args) {
|
|
|
24
39
|
const omit = args.omitSensitiveIdentifiersFromPrompt === true;
|
|
25
40
|
const quoteIdentifier = args.quoteIdentifier ?? listAsStored;
|
|
26
41
|
const gate = promptTextGate(schema, omit);
|
|
27
|
-
/**
|
|
28
|
-
|
|
29
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Renders a retrieved chunk's text as the prompt shows it, then lets the gate check exactly that.
|
|
44
|
+
* `keepHeading` keeps the chunk's `# heading` line, without its `#`.
|
|
45
|
+
*/
|
|
46
|
+
const shown = (p, render, into, keepHeading = false) => {
|
|
47
|
+
const text = render(keepHeading ? headingKept(p.text) : stripHeaderLine(p.text));
|
|
30
48
|
if (gate.allows(text, p.sensitive))
|
|
31
49
|
into.push(text);
|
|
32
50
|
};
|
|
@@ -35,14 +53,30 @@ export function synthesizeRetrievedDdl(args) {
|
|
|
35
53
|
const joinedLines = (body) => body.replace(/\n+/g, "; ");
|
|
36
54
|
const tableIds = new Set();
|
|
37
55
|
const cqlPerTable = new Map();
|
|
56
|
+
const businessPerTable = new Map();
|
|
38
57
|
const concepts = [];
|
|
39
58
|
const questions = [];
|
|
40
|
-
const relationships = [];
|
|
41
59
|
const tenantPolicyChunks = [];
|
|
60
|
+
const renderConcept = conceptRenderer(schema, { unqualifiedNamespace: args.unqualifiedNamespace, quoteIdentifier });
|
|
42
61
|
for (const r of results) {
|
|
43
62
|
const p = r.payload;
|
|
44
63
|
switch (p.type) {
|
|
45
|
-
case "table":
|
|
64
|
+
case "table": {
|
|
65
|
+
const tid = p.refs[0];
|
|
66
|
+
if (!tid)
|
|
67
|
+
break;
|
|
68
|
+
tableIds.add(tid);
|
|
69
|
+
const part = businessContextPart(p.id, tid);
|
|
70
|
+
if (part !== undefined) {
|
|
71
|
+
const kept = [];
|
|
72
|
+
shown(p, asIs, kept);
|
|
73
|
+
const list = businessPerTable.get(tid) ?? [];
|
|
74
|
+
for (const text of kept)
|
|
75
|
+
list.push({ part, text });
|
|
76
|
+
businessPerTable.set(tid, list);
|
|
77
|
+
}
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
46
80
|
case "column": {
|
|
47
81
|
const tid = p.refs[0];
|
|
48
82
|
if (tid)
|
|
@@ -66,7 +100,15 @@ export function synthesizeRetrievedDdl(args) {
|
|
|
66
100
|
break;
|
|
67
101
|
}
|
|
68
102
|
case "concept": {
|
|
69
|
-
|
|
103
|
+
const concept = schema.concepts?.find((c) => c.id === p.refs[0]);
|
|
104
|
+
if (concept) {
|
|
105
|
+
const rendered = renderConcept(concept);
|
|
106
|
+
if (rendered && gate.allows(rendered.text, p.sensitive || rendered.linksSensitive))
|
|
107
|
+
concepts.push(rendered.body);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
shown(p, joinedLines, concepts, true);
|
|
111
|
+
}
|
|
70
112
|
for (const ref of p.refs) {
|
|
71
113
|
if (ref.startsWith("table:")) {
|
|
72
114
|
const hash = ref.indexOf("#");
|
|
@@ -76,7 +118,6 @@ export function synthesizeRetrievedDdl(args) {
|
|
|
76
118
|
break;
|
|
77
119
|
}
|
|
78
120
|
case "relationship": {
|
|
79
|
-
shown(p, oneLine, relationships);
|
|
80
121
|
for (const ref of p.refs) {
|
|
81
122
|
if (ref.startsWith("table:") && !ref.includes("#"))
|
|
82
123
|
tableIds.add(ref);
|
|
@@ -84,13 +125,19 @@ export function synthesizeRetrievedDdl(args) {
|
|
|
84
125
|
break;
|
|
85
126
|
}
|
|
86
127
|
case "tenant-policy": {
|
|
87
|
-
shown(p, joinedLines, tenantPolicyChunks);
|
|
128
|
+
shown(p, joinedLines, tenantPolicyChunks, true);
|
|
88
129
|
break;
|
|
89
130
|
}
|
|
90
131
|
}
|
|
91
132
|
}
|
|
92
133
|
const lines = [];
|
|
93
134
|
const emittedIds = [];
|
|
135
|
+
const foreignKeys = foreignKeyLinesByTable(schema, {
|
|
136
|
+
omit,
|
|
137
|
+
shown: (tableId) => tableIds.has(tableId),
|
|
138
|
+
unqualifiedNamespace: args.unqualifiedNamespace,
|
|
139
|
+
quoteIdentifier,
|
|
140
|
+
});
|
|
94
141
|
for (const t of schema.tables) {
|
|
95
142
|
if (!tableIds.has(t.id))
|
|
96
143
|
continue;
|
|
@@ -120,6 +167,7 @@ export function synthesizeRetrievedDdl(args) {
|
|
|
120
167
|
}
|
|
121
168
|
lines.push(line);
|
|
122
169
|
}
|
|
170
|
+
lines.push(...(foreignKeys.get(t.id) ?? []));
|
|
123
171
|
const cqlList = cqlPerTable.get(t.id);
|
|
124
172
|
if (cqlList && cqlList.length > 0 && !t.sensitive) {
|
|
125
173
|
lines.push(`-- common query language --`);
|
|
@@ -129,12 +177,10 @@ export function synthesizeRetrievedDdl(args) {
|
|
|
129
177
|
}
|
|
130
178
|
}
|
|
131
179
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
for (const r of relationships)
|
|
137
|
-
lines.push(`-- ${r}`);
|
|
180
|
+
const businessList = businessPerTable.get(t.id);
|
|
181
|
+
if (businessList && !t.sensitive) {
|
|
182
|
+
lines.push(...businessContextLines([...businessList].sort((a, b) => a.part - b.part).map(({ text }) => text)));
|
|
183
|
+
}
|
|
138
184
|
lines.push("");
|
|
139
185
|
}
|
|
140
186
|
if (concepts.length > 0) {
|
|
@@ -163,6 +209,23 @@ export function synthesizeRetrievedDdl(args) {
|
|
|
163
209
|
mentionDroppedCount: gate.withheld,
|
|
164
210
|
};
|
|
165
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* For a `table` chunk built from `tableId`'s `Business context` section, the part's position in
|
|
214
|
+
* the body (0 when the body wasn't split); `undefined` for any other chunk, the table chunk included.
|
|
215
|
+
*/
|
|
216
|
+
function businessContextPart(chunkId, tableId) {
|
|
217
|
+
const marker = `${tableId}#biz`;
|
|
218
|
+
if (chunkId.endsWith(marker))
|
|
219
|
+
return 0;
|
|
220
|
+
const split = /#bc:(\d+)$/.exec(chunkId);
|
|
221
|
+
if (split && chunkId.slice(0, split.index).endsWith(marker))
|
|
222
|
+
return Number(split[1]);
|
|
223
|
+
return undefined;
|
|
224
|
+
}
|
|
225
|
+
/** The chunk's text with its `# heading` line kept as a plain line. */
|
|
226
|
+
function headingKept(text) {
|
|
227
|
+
return text.trim().replace(/^#+\s*/, "");
|
|
228
|
+
}
|
|
166
229
|
function stripHeaderLine(text) {
|
|
167
230
|
if (text.startsWith("#")) {
|
|
168
231
|
const nl = text.indexOf("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synthesize-ddl.js","sourceRoot":"","sources":["../../src/retrieval/synthesize-ddl.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,GACf,MAAM,wBAAwB,CAAC;AAIhC
|
|
1
|
+
{"version":3,"file":"synthesize-ddl.js","sourceRoot":"","sources":["../../src/retrieval/synthesize-ddl.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,13 @@ import type { FormatNlToSqlOptions, NlToSqlSchemaFormatStats } from "../normaliz
|
|
|
3
3
|
/**
|
|
4
4
|
* Format a NormalizedSchemaV2 for NL→SQL prompts.
|
|
5
5
|
*
|
|
6
|
-
* Interleaves table descriptions, aliases, column descriptions,
|
|
7
|
-
* `Common query language`
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
6
|
+
* Interleaves table descriptions, aliases, column descriptions and notes, each
|
|
7
|
+
* table's foreign keys ({@link foreignKeyLinesByTable}), `Common query language`
|
|
8
|
+
* and `Business context` blocks when present in the describable layer, then the
|
|
9
|
+
* schema's concepts ({@link conceptLines}). Sensitive describable-layer fields
|
|
10
|
+
* (descriptions/aliases/enum) are excluded per the schema-v2 contract. With
|
|
11
|
+
* `omitSensitiveIdentifiersFromPrompt`, describable text that names a sensitive
|
|
12
|
+
* column is withheld too ({@link promptTextGate}).
|
|
12
13
|
*/
|
|
13
14
|
export declare function formatSchemaV2ForNlToSql(schema: NormalizedSchemaV2, options?: FormatNlToSqlOptions): {
|
|
14
15
|
ddl: string;
|
|
@@ -34,9 +35,10 @@ export declare function promptTextGate(schema: NormalizedSchemaV2, omit: boolean
|
|
|
34
35
|
/** A non-sensitive table's ` -- aliases: …` header note, each alias shown only when the gate allows it. */
|
|
35
36
|
export declare function tableAliasNote(t: NormalizedSchemaV2["tables"][0], gate: PromptTextGate): string;
|
|
36
37
|
/**
|
|
37
|
-
* A non-sensitive column's annotation (`aliases: …; values: …; description
|
|
38
|
-
* The
|
|
39
|
-
* withholds all of them.
|
|
38
|
+
* A non-sensitive column's annotation (`aliases: …; values: …; description; note: …`), or `""`.
|
|
39
|
+
* The parts are one unit, checked as rendered: when they name a sensitive column, the gate
|
|
40
|
+
* withholds all of them. The note joins the unit, as it joins the column's describable layer in
|
|
41
|
+
* `@askdb/rag`'s chunker (ADR 0042).
|
|
40
42
|
*/
|
|
41
43
|
export declare function columnAnnotation(c: NormalizedSchemaV2["tables"][0]["columns"][0], gate: PromptTextGate): string;
|
|
42
44
|
/**
|
|
@@ -44,6 +46,50 @@ export declare function columnAnnotation(c: NormalizedSchemaV2["tables"][0]["col
|
|
|
44
46
|
* namespace, each part passed through `quoteIdentifier`.
|
|
45
47
|
*/
|
|
46
48
|
export declare function promptTableName(table: Pick<NormalizedSchemaV2["tables"][0], "schema" | "name">, unqualifiedNamespace: string | undefined, quoteIdentifier?: (name: string) => string): string;
|
|
49
|
+
/** How a prompt names tables and columns: the options both NL→SQL prompt builders take. */
|
|
50
|
+
export type PromptNaming = {
|
|
51
|
+
unqualifiedNamespace: string | undefined;
|
|
52
|
+
quoteIdentifier: (name: string) => string;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* The schema's foreign keys as both NL→SQL prompts print them (#898), keyed by the id of the
|
|
56
|
+
* table that owns each key's column: ` FK (user_id) -> public.users (id)`, after the table's
|
|
57
|
+
* column lines. Each key prints once, from any table's `relationships`. A key is left out when
|
|
58
|
+
* either column doesn't resolve, either table is untracked or not `shown`, or, with `omit`,
|
|
59
|
+
* either column or table is sensitive, so a key never names a column the prompt withholds. A
|
|
60
|
+
* composite key prints one line per column pair until the artifact groups them (#349).
|
|
61
|
+
*/
|
|
62
|
+
export declare function foreignKeyLinesByTable(schema: NormalizedSchemaV2, options: PromptNaming & {
|
|
63
|
+
omit: boolean;
|
|
64
|
+
shown?: (tableId: string) => boolean;
|
|
65
|
+
}): Map<string, string[]>;
|
|
66
|
+
/** A concept as both NL→SQL prompts list it: the line's text, what the gate checks, and whether it links anything sensitive. */
|
|
67
|
+
export type RenderedConcept = {
|
|
68
|
+
body: string;
|
|
69
|
+
text: string;
|
|
70
|
+
linksSensitive: boolean;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Renders a concept as both NL→SQL prompts list it (#898): its label, synonyms, links (named as
|
|
74
|
+
* the prompt names tables and columns) and description, as one line. A link to an untracked
|
|
75
|
+
* table, or to a column of one, is dropped, and a concept whose links were all untracked
|
|
76
|
+
* renders as `undefined`; a link to a table or column the schema doesn't have is dropped too.
|
|
77
|
+
* `text` is the line without its fixed labels, for the gate (see {@link columnAnnotation});
|
|
78
|
+
* `linksSensitive` flags a concept that links a sensitive table or column.
|
|
79
|
+
*/
|
|
80
|
+
export declare function conceptRenderer(schema: NormalizedSchemaV2, naming: PromptNaming): (concept: NonNullable<NormalizedSchemaV2["concepts"]>[number]) => RenderedConcept | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* The schema's concepts as the full-schema prompt lists them after the tables (#898): a
|
|
83
|
+
* `-- concepts --` block, one {@link conceptRenderer} line per concept the gate allows (a
|
|
84
|
+
* concept that links a sensitive table or column is flagged, so omission withholds it too).
|
|
85
|
+
* `[]` when no concept is left.
|
|
86
|
+
*/
|
|
87
|
+
export declare function conceptLines(schema: NormalizedSchemaV2, gate: PromptTextGate, naming: PromptNaming): string[];
|
|
88
|
+
/**
|
|
89
|
+
* A table's `-- business context --` block: each body's lines as `--` comments, blank lines
|
|
90
|
+
* dropped (paragraphs are separated by them; an empty `--` line adds nothing). `[]` for none.
|
|
91
|
+
*/
|
|
92
|
+
export declare function businessContextLines(bodies: string[]): string[];
|
|
47
93
|
/** The default `quoteIdentifier`: a name listed exactly as stored. */
|
|
48
94
|
export declare function listAsStored(name: string): string;
|
|
49
95
|
export {};
|
|
@@ -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;AAGtF
|
|
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;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE,oBAAyB,GACjC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,wBAAwB,CAAA;CAAE,CAuFlD;AAED;;;;GAIG;AACH,KAAK,cAAc,GAAG;IACpB;;;;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;;;;;GAKG;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,CAW/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,2FAA2F;AAC3F,MAAM,MAAM,YAAY,GAAG;IACzB,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C,CAAC;AAUF;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,GAC9E,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAsBvB;AAED,gIAAgI;AAChI,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtF;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,YAAY,GACnB,CAAC,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,eAAe,GAAG,SAAS,CAkC/F;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAQ7G;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAG/D;AAED,sEAAsE;AACtE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD"}
|