@askdb/core 0.5.0-beta.0 → 0.5.0-beta.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/ai/provider.d.ts +2 -8
  2. package/dist/ai/provider.d.ts.map +1 -1
  3. package/dist/ai/provider.js +42 -11
  4. package/dist/ai/provider.js.map +1 -1
  5. package/dist/ask.d.ts +22 -3
  6. package/dist/ask.d.ts.map +1 -1
  7. package/dist/ask.js +28 -1
  8. package/dist/ask.js.map +1 -1
  9. package/dist/index.d.ts +6 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +5 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/schema/v2/loader.js +1 -0
  14. package/dist/schema/v2/loader.js.map +1 -1
  15. package/dist/schema/v2/normalized.d.ts +6 -0
  16. package/dist/schema/v2/normalized.d.ts.map +1 -1
  17. package/dist/schema/v2/physical.d.ts +9 -0
  18. package/dist/schema/v2/physical.d.ts.map +1 -1
  19. package/dist/schema/v2/physical.js +7 -0
  20. package/dist/schema/v2/physical.js.map +1 -1
  21. package/dist/sql/dialect-spec.d.ts +65 -0
  22. package/dist/sql/dialect-spec.d.ts.map +1 -0
  23. package/dist/sql/dialect-spec.js +108 -0
  24. package/dist/sql/dialect-spec.js.map +1 -0
  25. package/dist/sql/generate.d.ts +36 -0
  26. package/dist/sql/generate.d.ts.map +1 -0
  27. package/dist/sql/generate.js +60 -0
  28. package/dist/sql/generate.js.map +1 -0
  29. package/dist/sql/index.d.ts +7 -0
  30. package/dist/sql/index.d.ts.map +1 -0
  31. package/dist/sql/index.js +7 -0
  32. package/dist/sql/index.js.map +1 -0
  33. package/dist/sql/prompt.d.ts +21 -0
  34. package/dist/sql/prompt.d.ts.map +1 -0
  35. package/dist/sql/prompt.js +68 -0
  36. package/dist/sql/prompt.js.map +1 -0
  37. package/dist/sql/schema-question-precheck.d.ts +7 -0
  38. package/dist/sql/schema-question-precheck.d.ts.map +1 -0
  39. package/dist/sql/schema-question-precheck.js +37 -0
  40. package/dist/sql/schema-question-precheck.js.map +1 -0
  41. package/dist/sql/validate.d.ts +16 -0
  42. package/dist/sql/validate.d.ts.map +1 -0
  43. package/dist/sql/validate.js +130 -0
  44. package/dist/sql/validate.js.map +1 -0
  45. package/package.json +2 -1
@@ -12,7 +12,7 @@ import type { EmbeddingModel, LanguageModel } from "ai";
12
12
  * `@ai-sdk/azure`. Uses the `resourceName` + deployment-name
13
13
  * URL shape with the `api-key` header.
14
14
  */
15
- export type AskDbAiProvider = "openai" | "azure";
15
+ export type AskDbAiProvider = "openai" | "azure" | "google";
16
16
  export type AskDbAiConfig = {
17
17
  provider: AskDbAiProvider;
18
18
  apiKey: string;
@@ -29,11 +29,6 @@ export type AskDbAiEnv = Record<string, string | undefined>;
29
29
  export type ResolveAskDbAiConfigOptions = {
30
30
  /** Default model when no env override is set. */
31
31
  modelDefault?: string;
32
- /**
33
- * Per-app model env var checked first (e.g. `ASKDB_TUI_MODEL`, `ASKDB_STUDIO_MODEL`).
34
- * Falls through to `ASKDB_AI_MODEL`, `ASKDB_MODEL`, `OPENAI_MODEL`, `modelDefault`.
35
- */
36
- modelEnvVar?: string;
37
32
  };
38
33
  /**
39
34
  * Resolves a provider config from environment variables. Returns `undefined`
@@ -63,8 +58,7 @@ export type ResolveAskDbEmbeddingConfigOptions = {
63
58
  /** Default embedding model/deployment when no env override is set. */
64
59
  modelDefault?: string;
65
60
  /**
66
- * Per-app embedding model env var checked first
67
- * (e.g. `ASKDB_STUDIO_RAG_EMBEDDER_MODEL`).
61
+ * Embedding model env var (e.g. `ASKDB_RAG_EMBEDDER_MODEL`).
68
62
  */
69
63
  modelEnvVar?: string;
70
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/ai/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAGxD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oGAAoG;IACpG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE5D,MAAM,MAAM,2BAA2B,GAAG;IACxC,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAcF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,2BAAgC,GACxC,aAAa,GAAG,SAAS,CA0D3B;AAED,MAAM,MAAM,kCAAkC,GAAG;IAC/C,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,kCAAuC,GAC/C,aAAa,GAAG,SAAS,CA2D3B;AAED,qEAAqE;AACrE,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,aAAa,CAAC,CAiBxB;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,4EAA4E;AAC5E,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAsBjC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAIpC;AAED;;;;;;;;GAQG;AACH,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,kCAAkC,GAAG,gCAAqC,GAClF,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAI7C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAShE"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/ai/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAGxD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oGAAoG;IACpG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE5D,MAAM,MAAM,2BAA2B,GAAG;IACxC,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAeF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,2BAAgC,GACxC,aAAa,GAAG,SAAS,CA8D3B;AAED,MAAM,MAAM,kCAAkC,GAAG;IAC/C,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,kCAAuC,GAC/C,aAAa,GAAG,SAAS,CAiE3B;AAED,qEAAqE;AACrE,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,aAAa,CAAC,CA0BxB;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,4EAA4E;AAC5E,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CA8BjC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAIpC;AAED;;;;;;;;GAQG;AACH,wBAAsB,gCAAgC,CACpD,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,kCAAkC,GAAG,gCAAqC,GAClF,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAI7C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWhE"}
@@ -7,7 +7,9 @@ function readProvider(env) {
7
7
  return "openai";
8
8
  if (raw === "azure" || raw === "azure-openai" || raw === "foundry")
9
9
  return "azure";
10
- throw new Error(`Unknown ASKDB_AI_PROVIDER "${env.ASKDB_AI_PROVIDER}". Expected "openai" or "azure".`);
10
+ if (raw === "google")
11
+ return "google";
12
+ throw new Error(`Unknown ASKDB_AI_PROVIDER "${env.ASKDB_AI_PROVIDER}". Expected "openai", "azure", or "google".`);
11
13
  }
12
14
  /**
13
15
  * Resolves a provider config from environment variables. Returns `undefined`
@@ -36,7 +38,9 @@ export function resolveAskDbAiConfig(env, options = {}) {
36
38
  const provider = readProvider(env);
37
39
  const providerNativeKey = provider === "azure"
38
40
  ? env.AZURE_OPENAI_API_KEY || env.AZURE_API_KEY
39
- : env.OPENAI_API_KEY;
41
+ : provider === "google"
42
+ ? env.GOOGLE_GENERATIVE_AI_API_KEY || env.GOOGLE_AI_API_KEY
43
+ : env.OPENAI_API_KEY;
40
44
  const providerNativeKeySecondary = provider === "azure"
41
45
  ? env.AZURE_OPENAI_API_KEY_SECONDARY || env.AZURE_API_KEY_SECONDARY
42
46
  : env.OPENAI_API_KEY_SECONDARY;
@@ -47,19 +51,21 @@ export function resolveAskDbAiConfig(env, options = {}) {
47
51
  undefined;
48
52
  if (!apiKey)
49
53
  return undefined;
50
- const perAppModel = options.modelEnvVar ? env[options.modelEnvVar] : undefined;
51
54
  const providerNativeModel = provider === "azure"
52
55
  ? env.AZURE_OPENAI_DEPLOYMENT || env.AZURE_DEPLOYMENT_NAME
53
- : env.OPENAI_MODEL;
54
- const model = perAppModel ||
55
- env.ASKDB_AI_MODEL ||
56
+ : provider === "google"
57
+ ? env.GOOGLE_AI_MODEL
58
+ : env.OPENAI_MODEL;
59
+ const model = env.ASKDB_AI_MODEL ||
56
60
  env.ASKDB_MODEL ||
57
61
  providerNativeModel ||
58
62
  options.modelDefault ||
59
63
  DEFAULT_MODEL;
60
64
  const providerNativeBaseURL = provider === "azure"
61
65
  ? env.AZURE_OPENAI_BASE_URL || env.AZURE_OPENAI_ENDPOINT || env.AZURE_BASE_URL
62
- : env.OPENAI_BASE_URL;
66
+ : provider === "google"
67
+ ? env.GOOGLE_AI_BASE_URL
68
+ : env.OPENAI_BASE_URL;
63
69
  const baseURL = env.ASKDB_AI_BASE_URL || providerNativeBaseURL || undefined;
64
70
  const resourceName = env.ASKDB_AI_AZURE_RESOURCE_NAME || env.AZURE_RESOURCE_NAME || undefined;
65
71
  const apiVersion = env.ASKDB_AI_AZURE_API_VERSION || env.AZURE_OPENAI_API_VERSION || env.AZURE_API_VERSION || undefined;
@@ -93,7 +99,9 @@ export function resolveAskDbEmbeddingConfig(env, options = {}) {
93
99
  const provider = readProvider(env);
94
100
  const providerNativeKey = provider === "azure"
95
101
  ? env.AZURE_OPENAI_API_KEY || env.AZURE_API_KEY
96
- : env.OPENAI_API_KEY;
102
+ : provider === "google"
103
+ ? env.GOOGLE_GENERATIVE_AI_API_KEY || env.GOOGLE_AI_API_KEY
104
+ : env.OPENAI_API_KEY;
97
105
  const providerNativeKeySecondary = provider === "azure"
98
106
  ? env.AZURE_OPENAI_API_KEY_SECONDARY || env.AZURE_API_KEY_SECONDARY
99
107
  : env.OPENAI_API_KEY_SECONDARY;
@@ -108,7 +116,9 @@ export function resolveAskDbEmbeddingConfig(env, options = {}) {
108
116
  const providerNativeModel = provider === "azure"
109
117
  ? env.AZURE_OPENAI_EMBEDDING_DEPLOYMENT ||
110
118
  env.AZURE_EMBEDDING_DEPLOYMENT_NAME
111
- : env.OPENAI_EMBEDDING_MODEL;
119
+ : provider === "google"
120
+ ? env.GOOGLE_AI_EMBEDDING_MODEL
121
+ : env.OPENAI_EMBEDDING_MODEL;
112
122
  const model = perAppModel ||
113
123
  env.ASKDB_AI_EMBEDDING_MODEL ||
114
124
  env.ASKDB_EMBEDDING_MODEL ||
@@ -117,7 +127,9 @@ export function resolveAskDbEmbeddingConfig(env, options = {}) {
117
127
  DEFAULT_EMBEDDING_MODEL;
118
128
  const providerNativeBaseURL = provider === "azure"
119
129
  ? env.AZURE_OPENAI_BASE_URL || env.AZURE_OPENAI_ENDPOINT || env.AZURE_BASE_URL
120
- : env.OPENAI_BASE_URL;
130
+ : provider === "google"
131
+ ? env.GOOGLE_AI_BASE_URL
132
+ : env.OPENAI_BASE_URL;
121
133
  const baseURL = env.ASKDB_AI_BASE_URL || providerNativeBaseURL || undefined;
122
134
  const resourceName = env.ASKDB_AI_AZURE_RESOURCE_NAME || env.AZURE_RESOURCE_NAME || undefined;
123
135
  const apiVersion = env.ASKDB_AI_AZURE_API_VERSION || env.AZURE_OPENAI_API_VERSION || env.AZURE_API_VERSION || undefined;
@@ -147,6 +159,15 @@ export async function createAskDbLanguageModel(config) {
147
159
  });
148
160
  return azure(config.model);
149
161
  }
162
+ if (config.provider === "google") {
163
+ // Lazy-loaded so `@ai-sdk/google` is only required when actually used.
164
+ const { createGoogleGenerativeAI } = await import("@ai-sdk/google");
165
+ const google = createGoogleGenerativeAI({
166
+ apiKey: config.apiKey,
167
+ ...(config.baseURL ? { baseURL: config.baseURL } : {}),
168
+ });
169
+ return google(config.model);
170
+ }
150
171
  const openai = createOpenAI({
151
172
  apiKey: config.apiKey,
152
173
  ...(config.baseURL ? { baseURL: config.baseURL } : {}),
@@ -168,6 +189,14 @@ export async function createAskDbEmbeddingModel(config, options = {}) {
168
189
  user: options.user,
169
190
  });
170
191
  }
192
+ if (config.provider === "google") {
193
+ const { createGoogleGenerativeAI } = await import("@ai-sdk/google");
194
+ const google = createGoogleGenerativeAI({
195
+ apiKey: config.apiKey,
196
+ ...(config.baseURL ? { baseURL: config.baseURL } : {}),
197
+ });
198
+ return google.textEmbeddingModel(config.model);
199
+ }
171
200
  const openai = createOpenAI({
172
201
  apiKey: config.apiKey,
173
202
  ...(config.baseURL ? { baseURL: config.baseURL } : {}),
@@ -219,6 +248,8 @@ export function askDbAiKeyMissingMessage(context) {
219
248
  `For Azure / Microsoft Foundry, set ASKDB_AI_PROVIDER=azure plus ` +
220
249
  `AZURE_OPENAI_API_KEY (or ASKDB_AI_API_KEY), ` +
221
250
  `ASKDB_AI_AZURE_RESOURCE_NAME (or ASKDB_AI_BASE_URL), and a deployment name ` +
222
- `via ASKDB_AI_MODEL.`);
251
+ `via ASKDB_AI_MODEL. ` +
252
+ `For Google Gemini, set ASKDB_AI_PROVIDER=google plus ` +
253
+ `GOOGLE_GENERATIVE_AI_API_KEY (or ASKDB_AI_API_KEY).`);
223
254
  }
224
255
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/ai/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/ai/provider.ts"],"names":[],"mappings":"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"}
package/dist/ask.d.ts CHANGED
@@ -3,6 +3,7 @@ import type { AskDbLogger } from "./logging/askdb-logger.js";
3
3
  import type { AnyNormalizedSchema } from "./schema/types.js";
4
4
  import { type AskDbModeV1 } from "./modes/types.js";
5
5
  import type { Retriever } from "./retrieval/types.js";
6
+ import { type BuiltInDialectId, type DialectSpec } from "./sql/dialect-spec.js";
6
7
  /** Options forwarded to a dialect's generator. Stable across dialects. */
7
8
  export type AskDialectGenerateOptions = {
8
9
  logger?: AskDbLogger;
@@ -16,10 +17,25 @@ export type AskDialectGenerateResult = {
16
17
  sql: string;
17
18
  explain?: unknown;
18
19
  };
19
- /** Adapter that knows how to turn a question + schema + model into validated dialect-specific SQL. */
20
+ /**
21
+ * Escape-hatch interface for fully custom NL→SQL generators (agentic flows,
22
+ * tool-calling, non-SELECT targets, fine-tuned models with bespoke prompts).
23
+ *
24
+ * 95% of consumers should pass a {@link BuiltInDialectId} (e.g. `"postgres"`) or
25
+ * a {@link DialectSpec} to `ask({ dialect })` and let the centralized pipeline
26
+ * handle prompt assembly + validation. Implement `AskDialect` only when those
27
+ * defaults won't fit.
28
+ */
20
29
  export type AskDialect = {
21
30
  generate(question: string, schema: AnyNormalizedSchema, model: LanguageModel, options?: AskDialectGenerateOptions): Promise<AskDialectGenerateResult>;
22
31
  };
32
+ /**
33
+ * Anything `ask()` accepts as a dialect:
34
+ * - A {@link BuiltInDialectId} string (e.g. `"postgres"`) — looked up in the registry.
35
+ * - A {@link DialectSpec} object — descriptive; uses the centralized generator.
36
+ * - An {@link AskDialect} object — full escape hatch.
37
+ */
38
+ export type AskDialectInput = BuiltInDialectId | DialectSpec | AskDialect;
23
39
  /** Generic deps the pipeline forwards into the dialect (test-time mock for `generateText`, etc.). */
24
40
  export type AskGenerateDeps = {
25
41
  generateText?: typeof defaultGenerateText;
@@ -28,8 +44,11 @@ export type AskPipelineOptions = {
28
44
  question: string;
29
45
  schema: AnyNormalizedSchema;
30
46
  model: LanguageModel;
31
- /** Required: the SQL dialect adapter to use (e.g. `postgresDialect` from `@askdb/postgres`). */
32
- dialect: AskDialect;
47
+ /**
48
+ * Required: the SQL dialect. Accepts a {@link BuiltInDialectId} (e.g. `"postgres"`),
49
+ * a {@link DialectSpec} descriptor, or a fully custom {@link AskDialect} adapter.
50
+ */
51
+ dialect: AskDialectInput;
33
52
  /** When true, callers may inspect heuristic guardrail metadata (hosts/CLI). */
34
53
  explain?: boolean;
35
54
  /**
package/dist/ask.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../src/ask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,IAAI,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAItD,0EAA0E;AAC1E,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yCAAyC,CAAC,EAAE,OAAO,CAAC;IACpD,YAAY,CAAC,EAAE,OAAO,mBAAmB,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,sGAAsG;AACtG,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,sGAAsG;AACtG,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,aAAa,EACpB,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACtC,CAAC;AAEF,qGAAqG;AACrG,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,CAAC,EAAE,OAAO,mBAAmB,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,aAAa,CAAC;IACrB,gGAAgG;IAChG,OAAO,EAAE,UAAU,CAAC;IACpB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,yCAAyC,CAAC,EAAE,OAAO,CAAC;IACpD,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,wFAAwF;IACxF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAsB,GAAG,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2BjF"}
1
+ {"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../src/ask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,IAAI,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAGjB,MAAM,uBAAuB,CAAC;AAG/B,0EAA0E;AAC1E,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yCAAyC,CAAC,EAAE,OAAO,CAAC;IACpD,YAAY,CAAC,EAAE,OAAO,mBAAmB,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,sGAAsG;AACtG,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,aAAa,EACpB,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACtC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,WAAW,GAAG,UAAU,CAAC;AAE1E,qGAAqG;AACrG,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,CAAC,EAAE,OAAO,mBAAmB,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,aAAa,CAAC;IACrB;;;OAGG;IACH,OAAO,EAAE,eAAe,CAAC;IACzB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,yCAAyC,CAAC,EAAE,OAAO,CAAC;IACpD,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,wFAAwF;IACxF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAsB,GAAG,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4BjF"}
package/dist/ask.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { AskDbLogEvent } from "./logging/log-events.js";
2
2
  import { DEFAULT_ASKDB_MODE } from "./modes/types.js";
3
3
  import { synthesizeRetrievedDdl } from "./retrieval/synthesize-ddl.js";
4
+ import { getDialectSpec, isBuiltInDialectId, } from "./sql/dialect-spec.js";
5
+ import { generateSelectSql } from "./sql/generate.js";
4
6
  export async function ask(options) {
5
7
  const logger = options.logger;
6
8
  const mode = options.mode ?? DEFAULT_ASKDB_MODE;
@@ -12,7 +14,8 @@ export async function ask(options) {
12
14
  logger,
13
15
  omitSensitive,
14
16
  });
15
- const generated = await options.dialect.generate(options.question, options.schema, options.model, {
17
+ const dialect = resolveDialect(options.dialect);
18
+ const generated = await dialect.generate(options.question, options.schema, options.model, {
16
19
  logger,
17
20
  explain: explainRequested,
18
21
  omitSensitiveIdentifiersFromNlToSqlPrompt: omitSensitive || undefined,
@@ -23,6 +26,30 @@ export async function ask(options) {
23
26
  const explain = generated.explain;
24
27
  return explain !== undefined ? { sql, explain } : { sql };
25
28
  }
29
+ function isAskDialect(value) {
30
+ return typeof value.generate === "function";
31
+ }
32
+ /**
33
+ * Normalize an {@link AskDialectInput} to an {@link AskDialect}. Built-in ids
34
+ * and {@link DialectSpec}s are wrapped around the centralized
35
+ * {@link generateSelectSql} generator; an {@link AskDialect} is passed through.
36
+ */
37
+ function resolveDialect(input) {
38
+ if (typeof input === "string") {
39
+ if (!isBuiltInDialectId(input)) {
40
+ throw new Error(`Unknown dialect id '${input}'. Pass a built-in DialectId, a DialectSpec object, or a custom AskDialect.`);
41
+ }
42
+ return specToDialect(getDialectSpec(input));
43
+ }
44
+ if (isAskDialect(input))
45
+ return input;
46
+ return specToDialect(input);
47
+ }
48
+ function specToDialect(spec) {
49
+ return {
50
+ generate: (question, schema, model, options) => generateSelectSql(spec, question, schema, model, options),
51
+ };
52
+ }
26
53
  /** Default chunk-count threshold below which the full DDL is preferred. */
27
54
  const DEFAULT_RETRIEVAL_THRESHOLD_CHUNKS = 30;
28
55
  const DEFAULT_RETRIEVAL_K = 8;
package/dist/ask.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ask.js","sourceRoot":"","sources":["../src/ask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ask.js","sourceRoot":"","sources":["../src/ask.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from "./errors.js";
2
- export { ask, type AskPipelineOptions, type AskPipelineResult, type AskDialect, type AskDialectGenerateOptions, type AskDialectGenerateResult, type AskGenerateDeps, } from "./ask.js";
2
+ export { ask, type AskPipelineOptions, type AskPipelineResult, type AskDialect, type AskDialectInput, type AskDialectGenerateOptions, type AskDialectGenerateResult, type AskGenerateDeps, } from "./ask.js";
3
3
  export { parseAskDbModeV1, formatAskDbModesV1, DEFAULT_ASKDB_MODE, ASKDB_MODES_V1, type AskDbModeV1, } from "./modes/types.js";
4
4
  export { AskDbLogEvent } from "./logging/log-events.js";
5
5
  export type { AskDbLogger } from "./logging/askdb-logger.js";
@@ -14,6 +14,11 @@ export { ENRICHMENT_SYSTEM_PROMPT, buildEnrichmentUserPrompt, parseCandidates, s
14
14
  export type { EnrichmentCandidate, EnrichmentContext, EnrichmentTarget, SuggestEnrichmentDeps, } from "./enrichment/index.js";
15
15
  export { formatSchemaForNlToSql, formatSchemaForPrompt, normalizeAskDbSchema, type FormatNlToSqlOptions, type NlToSqlSchemaFormatStats, } from "./schema/normalize.js";
16
16
  export { extractSqlFromModelText } from "./sql/extract-sql.js";
17
+ export { type DialectId, type DialectSpec, type BuiltInDialectId, POSTGRES_DIALECT, COCKROACHDB_DIALECT, MYSQL_DIALECT, MARIADB_DIALECT, SQLITE_DIALECT, SQLSERVER_DIALECT, BUILT_IN_DIALECTS, SUPPORTED_DIALECT_IDS, isBuiltInDialectId, getDialectSpec, } from "./sql/dialect-spec.js";
18
+ export { generateSelectSql, type GenerateSelectSqlResult, type GenerateSqlDeps, } from "./sql/generate.js";
19
+ export { validateSelectSql, buildSelectGuardrailExplanation, type SelectGuardrailExplain, } from "./sql/validate.js";
20
+ export { buildNlToSqlUserPrompt, buildNlToSqlSystemPrompt, } from "./sql/prompt.js";
21
+ export { assertNlToSqlInputs, nlToSqlAmbiguityNotes, } from "./sql/schema-question-precheck.js";
17
22
  export { resolveAskDbAiConfig, resolveAskDbEmbeddingConfig, createAskDbLanguageModel, createAskDbLanguageModelFromEnv, createAskDbEmbeddingModel, createAskDbEmbeddingModelFromEnv, askDbAiKeyMissingMessage, type AskDbAiProvider, type AskDbAiConfig, type AskDbAiEnv, type ResolveAskDbAiConfigOptions, type ResolveAskDbEmbeddingConfigOptions, type CreateAskDbEmbeddingModelOptions, } from "./ai/provider.js";
18
23
  export type { Retriever, RetrievedChunk, RetrievedChunkType, RetrievedResult, } from "./retrieval/types.js";
19
24
  export { synthesizeRetrievedDdl } from "./retrieval/synthesize-ddl.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,GAAG,EACH,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,eAAe,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,wBAAwB,GAC9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACvF,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,SAAS,EACT,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,+BAA+B,EAC/B,yBAAyB,EACzB,gCAAgC,EAChC,wBAAwB,EACxB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,GACtC,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,6 +10,11 @@ export { loadSchema, loadSchemaFromJson, parseTableMarkdown, parseConceptsMarkdo
10
10
  export { ENRICHMENT_SYSTEM_PROMPT, buildEnrichmentUserPrompt, parseCandidates, suggestEnrichment, } from "./enrichment/index.js";
11
11
  export { formatSchemaForNlToSql, formatSchemaForPrompt, normalizeAskDbSchema, } from "./schema/normalize.js";
12
12
  export { extractSqlFromModelText } from "./sql/extract-sql.js";
13
+ export { POSTGRES_DIALECT, COCKROACHDB_DIALECT, MYSQL_DIALECT, MARIADB_DIALECT, SQLITE_DIALECT, SQLSERVER_DIALECT, BUILT_IN_DIALECTS, SUPPORTED_DIALECT_IDS, isBuiltInDialectId, getDialectSpec, } from "./sql/dialect-spec.js";
14
+ export { generateSelectSql, } from "./sql/generate.js";
15
+ export { validateSelectSql, buildSelectGuardrailExplanation, } from "./sql/validate.js";
16
+ export { buildNlToSqlUserPrompt, buildNlToSqlSystemPrompt, } from "./sql/prompt.js";
17
+ export { assertNlToSqlInputs, nlToSqlAmbiguityNotes, } from "./sql/schema-question-precheck.js";
13
18
  export { resolveAskDbAiConfig, resolveAskDbEmbeddingConfig, createAskDbLanguageModel, createAskDbLanguageModelFromEnv, createAskDbEmbeddingModel, createAskDbEmbeddingModelFromEnv, askDbAiKeyMissingMessage, } from "./ai/provider.js";
14
19
  export { synthesizeRetrievedDdl } from "./retrieval/synthesize-ddl.js";
15
20
  //# 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,EACL,GAAG,GAOJ,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iBAAiB,GAGlB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMvF,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAiB9B,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,+BAA+B,EAC/B,yBAAyB,EACzB,gCAAgC,EAChC,wBAAwB,GAOzB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,GAAG,GAQJ,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iBAAiB,GAGlB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMvF,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAiB9B,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAIL,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,+BAA+B,GAEhC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,+BAA+B,EAC/B,yBAAyB,EACzB,gCAAgC,EAChC,wBAAwB,GAOzB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -197,6 +197,7 @@ function buildNormalized(physical, tableMarkdowns, concepts, extraWarnings) {
197
197
  });
198
198
  return {
199
199
  schemaId: physical.schemaId,
200
+ provider: physical.provider,
200
201
  tables,
201
202
  concepts: concepts?.concepts,
202
203
  warnings,
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/schema/v2/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/schema/v2/loader.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,12 @@ export type NormalizedV2Table = {
34
34
  /** Fully normalized Schema v2 artifact — physical + describable layers merged. */
35
35
  export type NormalizedSchemaV2 = {
36
36
  schemaId: string;
37
+ /**
38
+ * SQL dialect identifier the connector inferred when introspection produced
39
+ * this schema (e.g. `"postgres"`, `"mysql"`). Hosts may use this to auto-
40
+ * select the NL→SQL dialect; `askdb.config.dialect` overrides it.
41
+ */
42
+ provider?: string;
37
43
  tables: NormalizedV2Table[];
38
44
  concepts?: V2Concept[];
39
45
  /** Structured warnings from ID validation (orphaned/missing ids). */
@@ -1 +1 @@
1
- {"version":3,"file":"normalized.d.ts","sourceRoot":"","sources":["../../../src/schema/v2/normalized.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,mEAAmE;AACnE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IACvB,qEAAqE;IACrE,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"normalized.d.ts","sourceRoot":"","sources":["../../../src/schema/v2/normalized.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,mEAAmE;AACnE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IACvB,qEAAqE;IACrE,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -107,6 +107,13 @@ export declare const v2TableSchema: z.ZodObject<{
107
107
  export declare const v2SchemaJsonSchema: z.ZodObject<{
108
108
  version: z.ZodLiteral<2>;
109
109
  schemaId: z.ZodString;
110
+ /**
111
+ * Optional SQL dialect the connector inferred when introspection produced
112
+ * this file (e.g. `"postgres"`, `"mysql"`, `"sqlite"`). Hosts use this to
113
+ * auto-select the NL→SQL dialect; `askdb.config.dialect` overrides it.
114
+ * Matches `DialectId` in `@askdb/core` — kept loose to forward-allow new ids.
115
+ */
116
+ provider: z.ZodOptional<z.ZodString>;
110
117
  tables: z.ZodArray<z.ZodObject<{
111
118
  id: z.ZodString;
112
119
  name: z.ZodString;
@@ -201,6 +208,7 @@ export declare const v2SchemaJsonSchema: z.ZodObject<{
201
208
  }[] | undefined;
202
209
  }[];
203
210
  schemaId: string;
211
+ provider?: string | undefined;
204
212
  }, {
205
213
  version: 2;
206
214
  tables: {
@@ -222,6 +230,7 @@ export declare const v2SchemaJsonSchema: z.ZodObject<{
222
230
  }[] | undefined;
223
231
  }[];
224
232
  schemaId: string;
233
+ provider?: string | undefined;
225
234
  }>;
226
235
  export type V2SchemaJson = z.infer<typeof v2SchemaJsonSchema>;
227
236
  export type V2Table = z.infer<typeof v2TableSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"physical.d.ts","sourceRoot":"","sources":["../../../src/schema/v2/physical.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;EAOzB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AAEH,eAAO,MAAM,aAAa;;;IAGxB,6FAA6F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK7F,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;QAP7B,6FAA6F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW7F,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"physical.d.ts","sourceRoot":"","sources":["../../../src/schema/v2/physical.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;EAOzB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AAEH,eAAO,MAAM,aAAa;;;IAGxB,6FAA6F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK7F,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;IAG7B;;;;;OAKG;;;;;QAfH,6FAA6F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB7F,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -23,6 +23,13 @@ export const v2TableSchema = z.object({
23
23
  export const v2SchemaJsonSchema = z.object({
24
24
  version: z.literal(2),
25
25
  schemaId: z.string().min(1),
26
+ /**
27
+ * Optional SQL dialect the connector inferred when introspection produced
28
+ * this file (e.g. `"postgres"`, `"mysql"`, `"sqlite"`). Hosts use this to
29
+ * auto-select the NL→SQL dialect; `askdb.config.dialect` overrides it.
30
+ * Matches `DialectId` in `@askdb/core` — kept loose to forward-allow new ids.
31
+ */
32
+ provider: z.string().min(1).optional(),
26
33
  tables: z.array(v2TableSchema).min(1),
27
34
  });
28
35
  //# sourceMappingURL=physical.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"physical.js","sourceRoot":"","sources":["../../../src/schema/v2/physical.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,6FAA6F;IAC7F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;CACxD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACtC,CAAC,CAAC"}
1
+ {"version":3,"file":"physical.js","sourceRoot":"","sources":["../../../src/schema/v2/physical.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,6FAA6F;IAC7F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;CACxD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACtC,CAAC,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * `DialectSpec` — a small descriptor each SQL engine supplies so the centralized
3
+ * NL→SQL pipeline (in this package) can generate dialect-correct SELECT queries
4
+ * without each integration package re-implementing the prompt / validator.
5
+ *
6
+ * Authoring guidance:
7
+ * - Keep `promptBrief` to one short paragraph; surfaced in the model's user prompt.
8
+ * - `extraForbiddenKeywords` is additive on top of the dialect-agnostic read-only
9
+ * denylist (`insert`, `update`, `delete`, `drop`, …) baked into `validateSelectSql`.
10
+ * - `extraValidate` runs *after* the base validator passes; throw a
11
+ * `SqlValidationError` to reject dialect-specific shapes.
12
+ */
13
+ /** Stable identifier for a built-in dialect. Connectors may surface this via `IntrospectionResult.provider`. */
14
+ export type DialectId = "postgres" | "cockroachdb" | "mysql" | "mariadb" | "sqlite" | "sqlserver";
15
+ export type DialectSpec = {
16
+ id: DialectId;
17
+ displayName: string;
18
+ /** One short paragraph injected into the NL→SQL user prompt. */
19
+ promptBrief: string;
20
+ /** Identifier quoting style — informational; mainly steers `promptBrief`. */
21
+ identifierQuote: '"' | '`';
22
+ /** Extra keywords to forbid on top of the dialect-agnostic base denylist. */
23
+ extraForbiddenKeywords?: readonly string[];
24
+ /** Optional engine-specific post-validator. Receives SQL already passing the base shape checks. */
25
+ extraValidate?: (sql: string) => void;
26
+ };
27
+ /** PostgreSQL — the original AskDB target. */
28
+ export declare const POSTGRES_DIALECT: DialectSpec;
29
+ /** CockroachDB — PostgreSQL-wire-compatible; reuses the Postgres prompt brief. */
30
+ export declare const COCKROACHDB_DIALECT: DialectSpec;
31
+ /** MySQL — backtick identifiers, CONCAT() for concat, no ILIKE. */
32
+ export declare const MYSQL_DIALECT: DialectSpec;
33
+ /**
34
+ * MariaDB — MySQL-protocol-compatible; the SELECT surface is functionally
35
+ * identical for AskDB's purposes, so we reuse the MySQL prompt brief and
36
+ * keep a distinct id for connectors that report `"mariadb"` explicitly.
37
+ */
38
+ export declare const MARIADB_DIALECT: DialectSpec;
39
+ /** SQLite — single-file DBs with dynamic typing and a smaller function set. */
40
+ export declare const SQLITE_DIALECT: DialectSpec;
41
+ /** Microsoft SQL Server (T-SQL). */
42
+ export declare const SQLSERVER_DIALECT: DialectSpec;
43
+ /**
44
+ * Registry of dialect specs shipped with `@askdb/core`. Connectors that
45
+ * surface `provider` (`@askdb/postgres`, `@askdb/prisma`, …) auto-pick the
46
+ * matching spec; users can override via `askdb.config.dialect`.
47
+ */
48
+ export declare const BUILT_IN_DIALECTS: {
49
+ readonly postgres: DialectSpec;
50
+ readonly cockroachdb: DialectSpec;
51
+ readonly mysql: DialectSpec;
52
+ readonly mariadb: DialectSpec;
53
+ readonly sqlite: DialectSpec;
54
+ readonly sqlserver: DialectSpec;
55
+ };
56
+ export type BuiltInDialectId = keyof typeof BUILT_IN_DIALECTS;
57
+ export declare const SUPPORTED_DIALECT_IDS: readonly BuiltInDialectId[];
58
+ export declare function isBuiltInDialectId(value: unknown): value is BuiltInDialectId;
59
+ /**
60
+ * Look up a built-in dialect by id. Throws when no spec ships for the id —
61
+ * tell callers (e.g. Prisma auto-detection) to surface a helpful "set
62
+ * `config.dialect` explicitly" message in that case.
63
+ */
64
+ export declare function getDialectSpec(id: BuiltInDialectId): DialectSpec;
65
+ //# sourceMappingURL=dialect-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect-spec.d.ts","sourceRoot":"","sources":["../../src/sql/dialect-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,gHAAgH;AAChH,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,aAAa,GACb,OAAO,GACP,SAAS,GACT,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,SAAS,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,eAAe,EAAE,GAAG,GAAG,GAAG,CAAC;IAC3B,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,mGAAmG;IACnG,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB,EAAE,WAQ9B,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,mBAAmB,EAAE,WAIjC,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,aAAa,EAAE,WAU3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,WAI7B,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,cAAc,EAAE,WAc5B,CAAC;AAEF,oCAAoC;AACpC,eAAO,MAAM,iBAAiB,EAAE,WAc/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;;CAOqB,CAAC;AAEpD,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE9D,eAAO,MAAM,qBAAqB,EAAE,SAAS,gBAAgB,EAE7B,CAAC;AAEjC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,WAAW,CAQhE"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * `DialectSpec` — a small descriptor each SQL engine supplies so the centralized
3
+ * NL→SQL pipeline (in this package) can generate dialect-correct SELECT queries
4
+ * without each integration package re-implementing the prompt / validator.
5
+ *
6
+ * Authoring guidance:
7
+ * - Keep `promptBrief` to one short paragraph; surfaced in the model's user prompt.
8
+ * - `extraForbiddenKeywords` is additive on top of the dialect-agnostic read-only
9
+ * denylist (`insert`, `update`, `delete`, `drop`, …) baked into `validateSelectSql`.
10
+ * - `extraValidate` runs *after* the base validator passes; throw a
11
+ * `SqlValidationError` to reject dialect-specific shapes.
12
+ */
13
+ /** PostgreSQL — the original AskDB target. */
14
+ export const POSTGRES_DIALECT = {
15
+ id: "postgres",
16
+ displayName: "PostgreSQL",
17
+ promptBrief: "Target PostgreSQL. Use ILIKE for case-insensitive matching. " +
18
+ "Quote identifiers with double quotes when they collide with keywords or contain mixed case. " +
19
+ 'Cast with `value::type`. Use NOW(), CURRENT_DATE, date_trunc(). Concatenate with `||`.',
20
+ identifierQuote: '"',
21
+ };
22
+ /** CockroachDB — PostgreSQL-wire-compatible; reuses the Postgres prompt brief. */
23
+ export const COCKROACHDB_DIALECT = {
24
+ ...POSTGRES_DIALECT,
25
+ id: "cockroachdb",
26
+ displayName: "CockroachDB",
27
+ };
28
+ /** MySQL — backtick identifiers, CONCAT() for concat, no ILIKE. */
29
+ export const MYSQL_DIALECT = {
30
+ id: "mysql",
31
+ displayName: "MySQL",
32
+ promptBrief: "Target MySQL. Use LIKE (case-insensitive by default on common collations); for case-sensitive matching use BINARY or a `_bin` collation. " +
33
+ "Quote identifiers with backticks when they collide with reserved words. " +
34
+ "Cast with `CAST(value AS type)`. Use NOW(), CURDATE(), DATE_FORMAT(), DATE_SUB(), DATE_ADD(). " +
35
+ "Concatenate with `CONCAT(a, b)` — `||` is logical OR in MySQL, not string concat. " +
36
+ "Limit rows with `LIMIT n` (or `LIMIT offset, n`).",
37
+ identifierQuote: "`",
38
+ };
39
+ /**
40
+ * MariaDB — MySQL-protocol-compatible; the SELECT surface is functionally
41
+ * identical for AskDB's purposes, so we reuse the MySQL prompt brief and
42
+ * keep a distinct id for connectors that report `"mariadb"` explicitly.
43
+ */
44
+ export const MARIADB_DIALECT = {
45
+ ...MYSQL_DIALECT,
46
+ id: "mariadb",
47
+ displayName: "MariaDB",
48
+ };
49
+ /** SQLite — single-file DBs with dynamic typing and a smaller function set. */
50
+ export const SQLITE_DIALECT = {
51
+ id: "sqlite",
52
+ displayName: "SQLite",
53
+ promptBrief: "Target SQLite. Use LIKE (case-insensitive for ASCII by default; for full Unicode case-insensitivity wrap operands in LOWER()). " +
54
+ "Quote identifiers with double quotes when they collide with reserved words. " +
55
+ "Cast with `CAST(value AS type)`. Date/time helpers: date('now'), datetime('now'), strftime('%Y-%m', col). " +
56
+ "Concatenate with `||`. Limit rows with `LIMIT n` (optionally `LIMIT n OFFSET m`). " +
57
+ "SQLite uses dynamic typing — keep CAST conservative and prefer text/integer/real over engine-specific types.",
58
+ identifierQuote: '"',
59
+ // ATTACH/DETACH bring other DBs into scope; PRAGMA is configuration; REINDEX
60
+ // is maintenance. None belong in a generated read-only SELECT. (`vacuum` is
61
+ // already in the dialect-agnostic base denylist.)
62
+ extraForbiddenKeywords: ["attach", "detach", "pragma", "reindex"],
63
+ };
64
+ /** Microsoft SQL Server (T-SQL). */
65
+ export const SQLSERVER_DIALECT = {
66
+ id: "sqlserver",
67
+ displayName: "Microsoft SQL Server",
68
+ promptBrief: "Target Microsoft SQL Server (T-SQL). Use LIKE with LOWER() for case-insensitive matching when the collation is case-sensitive (no ILIKE in T-SQL). " +
69
+ "Quote identifiers with [square brackets] or double quotes. " +
70
+ "Cast with `CAST(value AS type)` or `CONVERT(type, value)`. " +
71
+ "Use GETDATE(), SYSUTCDATETIME(), DATEADD(), DATEDIFF(), FORMAT(). " +
72
+ "Concatenate with `+` (strings only — use ISNULL/COALESCE around nullable operands) or `CONCAT(a, b)`. " +
73
+ "Limit rows with `SELECT TOP (n) …` or `ORDER BY … OFFSET m ROWS FETCH NEXT n ROWS ONLY` — there is no LIMIT keyword.",
74
+ identifierQuote: '"',
75
+ // T-SQL keywords that shouldn't appear in read-only analytics SQL. (`call`
76
+ // is already in the base denylist; T-SQL uses EXEC / EXECUTE for procs.)
77
+ extraForbiddenKeywords: ["exec", "execute", "merge", "openrowset", "openquery"],
78
+ };
79
+ /**
80
+ * Registry of dialect specs shipped with `@askdb/core`. Connectors that
81
+ * surface `provider` (`@askdb/postgres`, `@askdb/prisma`, …) auto-pick the
82
+ * matching spec; users can override via `askdb.config.dialect`.
83
+ */
84
+ export const BUILT_IN_DIALECTS = {
85
+ postgres: POSTGRES_DIALECT,
86
+ cockroachdb: COCKROACHDB_DIALECT,
87
+ mysql: MYSQL_DIALECT,
88
+ mariadb: MARIADB_DIALECT,
89
+ sqlite: SQLITE_DIALECT,
90
+ sqlserver: SQLSERVER_DIALECT,
91
+ };
92
+ export const SUPPORTED_DIALECT_IDS = Object.keys(BUILT_IN_DIALECTS);
93
+ export function isBuiltInDialectId(value) {
94
+ return typeof value === "string" && value in BUILT_IN_DIALECTS;
95
+ }
96
+ /**
97
+ * Look up a built-in dialect by id. Throws when no spec ships for the id —
98
+ * tell callers (e.g. Prisma auto-detection) to surface a helpful "set
99
+ * `config.dialect` explicitly" message in that case.
100
+ */
101
+ export function getDialectSpec(id) {
102
+ const spec = BUILT_IN_DIALECTS[id];
103
+ if (!spec) {
104
+ throw new Error(`No DialectSpec is registered for '${id}'. Supported: ${SUPPORTED_DIALECT_IDS.join(", ")}.`);
105
+ }
106
+ return spec;
107
+ }
108
+ //# sourceMappingURL=dialect-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect-spec.js","sourceRoot":"","sources":["../../src/sql/dialect-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAwBH,8CAA8C;AAC9C,MAAM,CAAC,MAAM,gBAAgB,GAAgB;IAC3C,EAAE,EAAE,UAAU;IACd,WAAW,EAAE,YAAY;IACzB,WAAW,EACT,8DAA8D;QAC9D,8FAA8F;QAC9F,wFAAwF;IAC1F,eAAe,EAAE,GAAG;CACrB,CAAC;AAEF,kFAAkF;AAClF,MAAM,CAAC,MAAM,mBAAmB,GAAgB;IAC9C,GAAG,gBAAgB;IACnB,EAAE,EAAE,aAAa;IACjB,WAAW,EAAE,aAAa;CAC3B,CAAC;AAEF,mEAAmE;AACnE,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,OAAO;IACpB,WAAW,EACT,2IAA2I;QAC3I,0EAA0E;QAC1E,gGAAgG;QAChG,oFAAoF;QACpF,mDAAmD;IACrD,eAAe,EAAE,GAAG;CACrB,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAgB;IAC1C,GAAG,aAAa;IAChB,EAAE,EAAE,SAAS;IACb,WAAW,EAAE,SAAS;CACvB,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,EAAE,EAAE,QAAQ;IACZ,WAAW,EAAE,QAAQ;IACrB,WAAW,EACT,iIAAiI;QACjI,8EAA8E;QAC9E,4GAA4G;QAC5G,oFAAoF;QACpF,8GAA8G;IAChH,eAAe,EAAE,GAAG;IACpB,6EAA6E;IAC7E,4EAA4E;IAC5E,kDAAkD;IAClD,sBAAsB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;CAClE,CAAC;AAEF,oCAAoC;AACpC,MAAM,CAAC,MAAM,iBAAiB,GAAgB;IAC5C,EAAE,EAAE,WAAW;IACf,WAAW,EAAE,sBAAsB;IACnC,WAAW,EACT,qJAAqJ;QACrJ,6DAA6D;QAC7D,6DAA6D;QAC7D,oEAAoE;QACpE,wGAAwG;QACxG,sHAAsH;IACxH,eAAe,EAAE,GAAG;IACpB,2EAA2E;IAC3E,yEAAyE;IACzE,sBAAsB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC;CAChF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,gBAAgB;IAC1B,WAAW,EAAE,mBAAmB;IAChC,KAAK,EAAE,aAAa;IACpB,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,cAAc;IACtB,SAAS,EAAE,iBAAiB;CACqB,CAAC;AAIpD,MAAM,CAAC,MAAM,qBAAqB,GAAgC,MAAM,CAAC,IAAI,CAC3E,iBAAiB,CACa,CAAC;AAEjC,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,iBAAiB,CAAC;AACjE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,EAAoB;IACjD,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,qCAAqC,EAAE,iBAAiB,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { LanguageModel } from "ai";
2
+ import { generateText as defaultGenerateText } from "ai";
3
+ import type { AskDbLogger } from "../logging/askdb-logger.js";
4
+ import type { AnyNormalizedSchema } from "../schema/types.js";
5
+ import type { DialectSpec } from "./dialect-spec.js";
6
+ import { type SelectGuardrailExplain } from "./validate.js";
7
+ export type GenerateSqlDeps = {
8
+ generateText?: typeof defaultGenerateText;
9
+ logger?: AskDbLogger;
10
+ /** When true, include heuristic guardrail explanation in {@link GenerateSelectSqlResult.explain}. */
11
+ explain?: boolean;
12
+ /**
13
+ * When true, omit sensitive identifiers from NL→SQL DDL (stricter). Default false — names are listed
14
+ * with `(sensitive)` so the model can ground queries (see `docs/contracts/sensitive-fields-and-modes.md`).
15
+ */
16
+ omitSensitiveIdentifiersFromNlToSqlPrompt?: boolean;
17
+ /**
18
+ * Pre-synthesized DDL block. When supplied, replaces the formatter output
19
+ * in the NL→SQL prompt. Used by `ask({ retriever })` to inject a focused
20
+ * DDL synthesized from retrieved chunks; consumers usually don't set this
21
+ * directly.
22
+ */
23
+ prebuiltDdl?: string;
24
+ };
25
+ /** Result of NL→SQL generation (always includes `sql`; `explain` when {@link GenerateSqlDeps.explain}). */
26
+ export type GenerateSelectSqlResult = {
27
+ sql: string;
28
+ explain?: SelectGuardrailExplain;
29
+ };
30
+ /**
31
+ * Dialect-parameterized NL→SQL generator. Validates inputs, builds the user/system
32
+ * prompt with the dialect's syntax brief, calls the model, extracts the fenced SQL,
33
+ * and runs the shared read-only validator (plus any dialect-specific `extraValidate`).
34
+ */
35
+ export declare function generateSelectSql(dialect: DialectSpec, question: string, schema: AnyNormalizedSchema, model: LanguageModel, deps?: GenerateSqlDeps): Promise<GenerateSelectSqlResult>;
36
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/sql/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,IAAI,CAAC;AAGzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,CAAC,EAAE,OAAO,mBAAmB,CAAC;IAC1C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,qGAAqG;IACrG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,yCAAyC,CAAC,EAAE,OAAO,CAAC;IACpD;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,2GAA2G;AAC3G,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,uBAAuB,CAAC,CAgElC"}
@@ -0,0 +1,60 @@
1
+ import { generateText as defaultGenerateText } from "ai";
2
+ import { SqlGenerationError } from "../errors.js";
3
+ import { AskDbLogEvent } from "../logging/log-events.js";
4
+ import { extractSqlFromModelText } from "./extract-sql.js";
5
+ import { buildNlToSqlSystemPrompt, buildNlToSqlUserPrompt } from "./prompt.js";
6
+ import { assertNlToSqlInputs, nlToSqlAmbiguityNotes } from "./schema-question-precheck.js";
7
+ import { buildSelectGuardrailExplanation, validateSelectSql, } from "./validate.js";
8
+ /**
9
+ * Dialect-parameterized NL→SQL generator. Validates inputs, builds the user/system
10
+ * prompt with the dialect's syntax brief, calls the model, extracts the fenced SQL,
11
+ * and runs the shared read-only validator (plus any dialect-specific `extraValidate`).
12
+ */
13
+ export async function generateSelectSql(dialect, question, schema, model, deps = {}) {
14
+ assertNlToSqlInputs(schema, question);
15
+ const ambiguityNotes = nlToSqlAmbiguityNotes(question, schema);
16
+ const generateText = deps.generateText ?? defaultGenerateText;
17
+ const logger = deps.logger;
18
+ const nlToSqlSchemaOptions = deps.omitSensitiveIdentifiersFromNlToSqlPrompt === true
19
+ ? { omitSensitiveIdentifiersFromPrompt: true }
20
+ : undefined;
21
+ logger?.info({
22
+ event: AskDbLogEvent.PipelineGenerateStart,
23
+ questionLength: question.length,
24
+ tableCount: schema.tables.length,
25
+ }, "nl-to-sql generate start");
26
+ try {
27
+ let text;
28
+ try {
29
+ const result = await generateText({
30
+ model,
31
+ system: buildNlToSqlSystemPrompt(dialect),
32
+ prompt: buildNlToSqlUserPrompt(dialect, question, schema, ambiguityNotes, logger, nlToSqlSchemaOptions, deps.prebuiltDdl),
33
+ temperature: 0,
34
+ });
35
+ text = result.text;
36
+ }
37
+ catch (e) {
38
+ const message = e instanceof Error ? e.message : String(e);
39
+ throw new SqlGenerationError(`Model call failed: ${message}`, e);
40
+ }
41
+ const extracted = extractSqlFromModelText(text);
42
+ const sql = validateSelectSql(dialect, extracted);
43
+ const explain = deps.explain ? buildSelectGuardrailExplanation(sql) : undefined;
44
+ logger?.info({
45
+ event: AskDbLogEvent.PipelineGenerateComplete,
46
+ sqlCharCount: sql.length,
47
+ }, "nl-to-sql generate complete");
48
+ return explain !== undefined ? { sql, explain } : { sql };
49
+ }
50
+ catch (e) {
51
+ const msg = e instanceof Error ? e.message : String(e);
52
+ logger?.error({
53
+ event: AskDbLogEvent.PipelineFailed,
54
+ phase: "generate",
55
+ errMessage: msg,
56
+ }, "nl-to-sql generate failed");
57
+ throw e;
58
+ }
59
+ }
60
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/sql/generate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,IAAI,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EACL,+BAA+B,EAC/B,iBAAiB,GAElB,MAAM,eAAe,CAAC;AA2BvB;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAoB,EACpB,QAAgB,EAChB,MAA2B,EAC3B,KAAoB,EACpB,OAAwB,EAAE;IAE1B,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtC,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,mBAAmB,CAAC;IAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,MAAM,oBAAoB,GACxB,IAAI,CAAC,yCAAyC,KAAK,IAAI;QACrD,CAAC,CAAC,EAAE,kCAAkC,EAAE,IAAI,EAAE;QAC9C,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,EAAE,IAAI,CACV;QACE,KAAK,EAAE,aAAa,CAAC,qBAAqB;QAC1C,cAAc,EAAE,QAAQ,CAAC,MAAM;QAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;KACjC,EACD,0BAA0B,CAC3B,CAAC;IAEF,IAAI,CAAC;QACH,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;gBAChC,KAAK;gBACL,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC;gBACzC,MAAM,EAAE,sBAAsB,CAC5B,OAAO,EACP,QAAQ,EACR,MAAM,EACN,cAAc,EACd,MAAM,EACN,oBAAoB,EACpB,IAAI,CAAC,WAAW,CACjB;gBACD,WAAW,EAAE,CAAC;aACf,CAAC,CAAC;YACH,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,MAAM,EAAE,IAAI,CACV;YACE,KAAK,EAAE,aAAa,CAAC,wBAAwB;YAC7C,YAAY,EAAE,GAAG,CAAC,MAAM;SACzB,EACD,6BAA6B,CAC9B,CAAC;QACF,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,EAAE,KAAK,CACX;YACE,KAAK,EAAE,aAAa,CAAC,cAAc;YACnC,KAAK,EAAE,UAAU;YACjB,UAAU,EAAE,GAAG;SAChB,EACD,2BAA2B,CAC5B,CAAC;QACF,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { type DialectId, type DialectSpec, type BuiltInDialectId, POSTGRES_DIALECT, COCKROACHDB_DIALECT, MYSQL_DIALECT, MARIADB_DIALECT, SQLITE_DIALECT, SQLSERVER_DIALECT, BUILT_IN_DIALECTS, SUPPORTED_DIALECT_IDS, isBuiltInDialectId, getDialectSpec, } from "./dialect-spec.js";
2
+ export { generateSelectSql, type GenerateSelectSqlResult, type GenerateSqlDeps, } from "./generate.js";
3
+ export { validateSelectSql, buildSelectGuardrailExplanation, type SelectGuardrailExplain, } from "./validate.js";
4
+ export { buildNlToSqlUserPrompt, buildNlToSqlSystemPrompt, } from "./prompt.js";
5
+ export { assertNlToSqlInputs, nlToSqlAmbiguityNotes, } from "./schema-question-precheck.js";
6
+ export { extractSqlFromModelText } from "./extract-sql.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sql/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,+BAA+B,EAC/B,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { POSTGRES_DIALECT, COCKROACHDB_DIALECT, MYSQL_DIALECT, MARIADB_DIALECT, SQLITE_DIALECT, SQLSERVER_DIALECT, BUILT_IN_DIALECTS, SUPPORTED_DIALECT_IDS, isBuiltInDialectId, getDialectSpec, } from "./dialect-spec.js";
2
+ export { generateSelectSql, } from "./generate.js";
3
+ export { validateSelectSql, buildSelectGuardrailExplanation, } from "./validate.js";
4
+ export { buildNlToSqlUserPrompt, buildNlToSqlSystemPrompt, } from "./prompt.js";
5
+ export { assertNlToSqlInputs, nlToSqlAmbiguityNotes, } from "./schema-question-precheck.js";
6
+ export { extractSqlFromModelText } from "./extract-sql.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sql/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,GAGlB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,+BAA+B,GAEhC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { AskDbLogger } from "../logging/askdb-logger.js";
2
+ import { type FormatNlToSqlOptions } from "../schema/normalize.js";
3
+ import type { AnyNormalizedSchema } from "../schema/types.js";
4
+ import type { DialectSpec } from "./dialect-spec.js";
5
+ /**
6
+ * Build the dialect-parameterized NL→SQL user prompt. The same scaffolding is used
7
+ * for every dialect; the dialect's `displayName` and `promptBrief` are interpolated
8
+ * to steer the model toward dialect-correct syntax.
9
+ */
10
+ export declare function buildNlToSqlUserPrompt(dialect: DialectSpec, question: string, schema: AnyNormalizedSchema, ambiguityNotes?: readonly string[], logger?: AskDbLogger, nlToSqlSchemaOptions?: FormatNlToSqlOptions,
11
+ /**
12
+ * Optional pre-synthesized DDL block. When supplied, this replaces the
13
+ * formatter output verbatim — used by `ask({ retriever })` to inject a
14
+ * focused DDL built from retrieved chunks. Sensitive-redaction logging
15
+ * still fires using the consumer-supplied `nlToSqlSchemaOptions` to keep
16
+ * observability consistent.
17
+ */
18
+ prebuiltDdl?: string): string;
19
+ /** Dialect-parameterized system prompt for the NL→SQL generator. */
20
+ export declare function buildNlToSqlSystemPrompt(dialect: DialectSpec): string;
21
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/sql/prompt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAK9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMrD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,cAAc,GAAE,SAAS,MAAM,EAAO,EACtC,MAAM,CAAC,EAAE,WAAW,EACpB,oBAAoB,CAAC,EAAE,oBAAoB;AAC3C;;;;;;GAMG;AACH,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAuDR;AAED,oEAAoE;AACpE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAErE"}
@@ -0,0 +1,68 @@
1
+ import { AskDbLogEvent } from "../logging/log-events.js";
2
+ import { formatSchemaForNlToSql, } from "../schema/normalize.js";
3
+ import { formatSchemaV2ForNlToSql, } from "../schema/v2/index.js";
4
+ function isV2(schema) {
5
+ return "schemaId" in schema;
6
+ }
7
+ /**
8
+ * Build the dialect-parameterized NL→SQL user prompt. The same scaffolding is used
9
+ * for every dialect; the dialect's `displayName` and `promptBrief` are interpolated
10
+ * to steer the model toward dialect-correct syntax.
11
+ */
12
+ export function buildNlToSqlUserPrompt(dialect, question, schema, ambiguityNotes = [], logger, nlToSqlSchemaOptions,
13
+ /**
14
+ * Optional pre-synthesized DDL block. When supplied, this replaces the
15
+ * formatter output verbatim — used by `ask({ retriever })` to inject a
16
+ * focused DDL built from retrieved chunks. Sensitive-redaction logging
17
+ * still fires using the consumer-supplied `nlToSqlSchemaOptions` to keep
18
+ * observability consistent.
19
+ */
20
+ prebuiltDdl) {
21
+ const formatted = isV2(schema)
22
+ ? formatSchemaV2ForNlToSql(schema, nlToSqlSchemaOptions)
23
+ : formatSchemaForNlToSql(schema, nlToSqlSchemaOptions);
24
+ const ddl = prebuiltDdl ?? formatted.ddl;
25
+ const stats = formatted.stats;
26
+ if (stats.omitSensitiveIdentifiersFromPrompt &&
27
+ (stats.redactedColumnCount > 0 || stats.sensitiveTableStubCount > 0)) {
28
+ logger?.debug?.({
29
+ event: AskDbLogEvent.PromptSensitiveRedacted,
30
+ redactedColumnCount: stats.redactedColumnCount,
31
+ sensitiveTableStubCount: stats.sensitiveTableStubCount,
32
+ }, "nl-to-sql prompt omitted sensitive schema metadata from DDL");
33
+ }
34
+ if (!stats.omitSensitiveIdentifiersFromPrompt &&
35
+ stats.listedSensitiveColumnCount > 0) {
36
+ logger?.debug?.({
37
+ event: AskDbLogEvent.PromptSensitiveIdentifiersListed,
38
+ listedSensitiveColumnCount: stats.listedSensitiveColumnCount,
39
+ }, "nl-to-sql prompt lists sensitive schema identifiers for SQL grounding (names only)");
40
+ }
41
+ const lines = [
42
+ `You translate natural language questions into a single ${dialect.displayName} SELECT (or WITH ... SELECT).`,
43
+ "Rules:",
44
+ `- Output exactly one ${dialect.displayName} SELECT query (CTE WITH is ok). End with optional semicolon.`,
45
+ '- Put the SQL only inside one markdown fenced block labelled ```sql (preferred). No extra commentary.',
46
+ "- Use identifiers from the schema below; qualify table names where it helps readability.",
47
+ "- Do NOT use DDL or write statements (INSERT, UPDATE, DELETE, etc.). SELECT-only.",
48
+ `- Dialect notes: ${dialect.promptBrief}`,
49
+ "",
50
+ "Database schema:",
51
+ ddl,
52
+ "",
53
+ ];
54
+ if (ambiguityNotes.length > 0) {
55
+ lines.push("Context (deterministic checks from AskDB—these hints may be irrelevant; weigh them against the question):");
56
+ for (const note of ambiguityNotes) {
57
+ lines.push(`- ${note}`);
58
+ }
59
+ lines.push("");
60
+ }
61
+ lines.push(`Question: ${question}`);
62
+ return lines.join("\n");
63
+ }
64
+ /** Dialect-parameterized system prompt for the NL→SQL generator. */
65
+ export function buildNlToSqlSystemPrompt(dialect) {
66
+ return `You are AskDB SQL generator—correct, deterministic ${dialect.displayName} for analytics. Produce one SELECT (or WITH) only.`;
67
+ }
68
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/sql/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EACL,sBAAsB,GAEvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,wBAAwB,GAEzB,MAAM,uBAAuB,CAAC;AAG/B,SAAS,IAAI,CAAC,MAA2B;IACvC,OAAO,UAAU,IAAI,MAAM,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAoB,EACpB,QAAgB,EAChB,MAA2B,EAC3B,iBAAoC,EAAE,EACtC,MAAoB,EACpB,oBAA2C;AAC3C;;;;;;GAMG;AACH,WAAoB;IAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,CAAC,CAAC,wBAAwB,CAAC,MAAM,EAAE,oBAAoB,CAAC;QACxD,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,WAAW,IAAI,SAAS,CAAC,GAAG,CAAC;IACzC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAC9B,IACE,KAAK,CAAC,kCAAkC;QACxC,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC,CAAC,EACpE,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,CACb;YACE,KAAK,EAAE,aAAa,CAAC,uBAAuB;YAC5C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;SACvD,EACD,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IACD,IACE,CAAC,KAAK,CAAC,kCAAkC;QACzC,KAAK,CAAC,0BAA0B,GAAG,CAAC,EACpC,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,CACb;YACE,KAAK,EAAE,aAAa,CAAC,gCAAgC;YACrD,0BAA0B,EAAE,KAAK,CAAC,0BAA0B;SAC7D,EACD,oFAAoF,CACrF,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG;QACZ,0DAA0D,OAAO,CAAC,WAAW,+BAA+B;QAC5G,QAAQ;QACR,wBAAwB,OAAO,CAAC,WAAW,8DAA8D;QACzG,uGAAuG;QACvG,0FAA0F;QAC1F,mFAAmF;QACnF,oBAAoB,OAAO,CAAC,WAAW,EAAE;QACzC,EAAE;QACF,kBAAkB;QAClB,GAAG;QACH,EAAE;KACH,CAAC;IACF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CACR,2GAA2G,CAC5G,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,wBAAwB,CAAC,OAAoB;IAC3D,OAAO,sDAAsD,OAAO,CAAC,WAAW,oDAAoD,CAAC;AACvI,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { AnyNormalizedSchema } from "../schema/types.js";
2
+ export declare function assertNlToSqlInputs(schema: AnyNormalizedSchema, question: string): void;
3
+ /**
4
+ * Deterministic notes appended to the NL→SQL user prompt when the question and schema look misaligned.
5
+ */
6
+ export declare function nlToSqlAmbiguityNotes(question: string, schema: AnyNormalizedSchema): string[];
7
+ //# sourceMappingURL=schema-question-precheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-question-precheck.d.ts","sourceRoot":"","sources":["../../src/sql/schema-question-precheck.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAQ9D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CASvF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,EAAE,CA0B7F"}
@@ -0,0 +1,37 @@
1
+ import { AskDbError } from "../errors.js";
2
+ const JOIN_RELATION_HINT = /\b(join|joined|joins|inner\s+join|left\s+join|right\s+join|full\s+join|together\s+with|along\s+with|versus|vs\.?|compare|both\s+tables|each\s+other|relationship\s+between|how\s+they\s+relate)\b/i;
3
+ /** FROM / JOIN table names in the question (simple identifier; no schema-qualified names in v1). */
4
+ const FROM_JOIN_TABLE = /\b(?:from|join)\s+([a-zA-Z_][\w]*)\b/gi;
5
+ export function assertNlToSqlInputs(schema, question) {
6
+ if (schema.tables.length === 0) {
7
+ throw new AskDbError("Schema has no tables. Add at least one table to the AskDB schema JSON (see fixtures/schemas/ in this repo).");
8
+ }
9
+ if (!question.trim()) {
10
+ throw new AskDbError("Question is empty. Pass a non-blank natural-language question with -q / --question.");
11
+ }
12
+ }
13
+ /**
14
+ * Deterministic notes appended to the NL→SQL user prompt when the question and schema look misaligned.
15
+ */
16
+ export function nlToSqlAmbiguityNotes(question, schema) {
17
+ const notes = [];
18
+ const tableNames = new Set(schema.tables.map((t) => t.name.toLowerCase()));
19
+ if (schema.tables.length === 1 && JOIN_RELATION_HINT.test(question)) {
20
+ const only = schema.tables[0].name;
21
+ notes.push(`The schema lists only one table (${only}). Do not invent joins to other tables unless their names appear explicitly in the schema excerpt.`);
22
+ }
23
+ const seen = new Set();
24
+ for (const m of question.matchAll(FROM_JOIN_TABLE)) {
25
+ const raw = m[1];
26
+ const low = raw.toLowerCase();
27
+ if (seen.has(low))
28
+ continue;
29
+ seen.add(low);
30
+ if (!tableNames.has(low)) {
31
+ const known = [...tableNames].sort().join(", ");
32
+ notes.push(`The question mentions table "${raw}" which is not in the schema. Known tables: ${known || "(none)"}.`);
33
+ }
34
+ }
35
+ return notes;
36
+ }
37
+ //# sourceMappingURL=schema-question-precheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-question-precheck.js","sourceRoot":"","sources":["../../src/sql/schema-question-precheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,kBAAkB,GACtB,oMAAoM,CAAC;AAEvM,oGAAoG;AACpG,MAAM,eAAe,GAAG,wCAAwC,CAAC;AAEjE,MAAM,UAAU,mBAAmB,CAAC,MAA2B,EAAE,QAAgB;IAC/E,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,UAAU,CAClB,6GAA6G,CAC9G,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,UAAU,CAAC,qFAAqF,CAAC,CAAC;IAC9G,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,MAA2B;IACjF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAE3E,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC;QACpC,KAAK,CAAC,IAAI,CACR,oCAAoC,IAAI,oGAAoG,CAC7I,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACnD,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QAClB,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,KAAK,CAAC,IAAI,CACR,gCAAgC,GAAG,+CAA+C,KAAK,IAAI,QAAQ,GAAG,CACvG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { DialectSpec } from "./dialect-spec.js";
2
+ /**
3
+ * Dialect-agnostic read-only SELECT guardrail. Not a SQL parser — blocks obvious
4
+ * foot-guns and multi-statement abuse. The dialect's `extraForbiddenKeywords`
5
+ * augment the base list; `extraValidate` runs after base checks pass.
6
+ */
7
+ export declare function validateSelectSql(dialect: DialectSpec, sql: string): string;
8
+ /** Explanation of guardrails satisfied by a string already passing {@link validateSelectSql}. */
9
+ export type SelectGuardrailExplain = {
10
+ statementKind: "select" | "with";
11
+ checksVerified: readonly string[];
12
+ remediationNote: string;
13
+ };
14
+ /** Build a structured summary for hosts/CLI `--explain`; input must already be validated. */
15
+ export declare function buildSelectGuardrailExplanation(validatedSql: string): SelectGuardrailExplain;
16
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/sql/validate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAsBrD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAqD3E;AAED,iGAAiG;AACjG,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,6FAA6F;AAC7F,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,GAAG,sBAAsB,CAgB5F"}
@@ -0,0 +1,130 @@
1
+ import { SqlValidationError } from "../errors.js";
2
+ const BASE_FORBIDDEN = [
3
+ "insert",
4
+ "update",
5
+ "delete",
6
+ "drop",
7
+ "truncate",
8
+ "alter",
9
+ "create",
10
+ "grant",
11
+ "revoke",
12
+ "vacuum",
13
+ "analyze",
14
+ "copy",
15
+ "call",
16
+ ];
17
+ function validationError(rule, summary, hint) {
18
+ return new SqlValidationError(summary, rule, hint);
19
+ }
20
+ /**
21
+ * Dialect-agnostic read-only SELECT guardrail. Not a SQL parser — blocks obvious
22
+ * foot-guns and multi-statement abuse. The dialect's `extraForbiddenKeywords`
23
+ * augment the base list; `extraValidate` runs after base checks pass.
24
+ */
25
+ export function validateSelectSql(dialect, sql) {
26
+ const trimmed = sql.trim();
27
+ if (!trimmed) {
28
+ throw validationError("SQL_EMPTY", "Generated SQL is empty after extraction.", "The model reply had no usable ```sql fenced block or the block was blank. Retry with a clearer question or inspect the raw model output with logging.");
29
+ }
30
+ const withoutStrings = stripSqlStringLiterals(trimmed);
31
+ if (/;/.test(withoutStrings)) {
32
+ const parts = withoutStrings.split(";").map((p) => p.trim()).filter(Boolean);
33
+ if (parts.length > 1) {
34
+ throw validationError("SQL_MULTI_STATEMENT", "Multiple SQL statements are not allowed (semicolon separates more than one statement).", "Ask for a single SELECT (WITH … SELECT allowed). Split analytical steps into separate questions or use a CTE instead of multiple statements.");
35
+ }
36
+ }
37
+ if (/--|\/\*/.test(withoutStrings)) {
38
+ throw validationError("SQL_COMMENT", "SQL comments (-- or /* … */) are not allowed under current guardrails.", "Remove comments from generated SQL; rely on clear column aliases and CTE names instead.");
39
+ }
40
+ const head = firstMeaningfulToken(withoutStrings);
41
+ if (head !== "select" && head !== "with") {
42
+ throw validationError("SQL_NOT_SELECT_OR_WITH", `SQL must start with SELECT or WITH (got '${head || "none"}').`, "Regenerate as a read-only SELECT (optionally with WITH). INSERT/UPDATE/DELETE and procedural calls are blocked in dev guardrails.");
43
+ }
44
+ const lower = withoutStrings.toLowerCase();
45
+ const forbidden = [...BASE_FORBIDDEN, ...(dialect.extraForbiddenKeywords ?? [])];
46
+ for (const word of forbidden) {
47
+ const re = new RegExp(`\\b${word}\\b`, "i");
48
+ if (re.test(lower)) {
49
+ throw validationError("SQL_FORBIDDEN_KEYWORD", `Forbidden keyword in generated SQL: ${word.toUpperCase()}.`, `Matched whole-word guardrail keyword "${word}". This build allows read-only SELECT shape only; DDL/DML and similar verbs are rejected.`);
50
+ }
51
+ }
52
+ const normalized = trimmed.replace(/;\s*$/, "").trim();
53
+ dialect.extraValidate?.(normalized);
54
+ return normalized;
55
+ }
56
+ /** Build a structured summary for hosts/CLI `--explain`; input must already be validated. */
57
+ export function buildSelectGuardrailExplanation(validatedSql) {
58
+ const trimmed = validatedSql.trim();
59
+ const head = firstMeaningfulToken(stripSqlStringLiterals(trimmed));
60
+ const statementKind = head === "with" ? "with" : "select";
61
+ return {
62
+ statementKind,
63
+ checksVerified: [
64
+ "non_empty_sql",
65
+ "single_statement",
66
+ "no_line_or_block_comments",
67
+ "leading_select_or_with",
68
+ "no_blocked_write_or_ddl_keywords",
69
+ ],
70
+ remediationNote: "Heuristic Phase-2 checks only—not a full SQL parser or production policy engine. Always review before trusted execution.",
71
+ };
72
+ }
73
+ function stripSqlStringLiterals(sql) {
74
+ let out = "";
75
+ let i = 0;
76
+ while (i < sql.length) {
77
+ const ch = sql[i];
78
+ if (ch === "'") {
79
+ i++;
80
+ while (i < sql.length) {
81
+ if (sql[i] === "'" && sql[i + 1] === "'") {
82
+ i += 2;
83
+ continue;
84
+ }
85
+ if (sql[i] === "'") {
86
+ i++;
87
+ break;
88
+ }
89
+ i++;
90
+ }
91
+ out += "''";
92
+ continue;
93
+ }
94
+ if (ch === '"') {
95
+ i++;
96
+ while (i < sql.length && sql[i] !== '"') {
97
+ if (sql[i] === "\\")
98
+ i++;
99
+ i++;
100
+ }
101
+ if (i < sql.length)
102
+ i++;
103
+ out += '""';
104
+ continue;
105
+ }
106
+ if (ch === "$" && /^\$\w*\$/.test(sql.slice(i))) {
107
+ const end = sql.indexOf("$", i + 1);
108
+ const tagEnd = sql.indexOf("$", end + 1);
109
+ if (tagEnd === -1)
110
+ return out + sql.slice(i);
111
+ i = tagEnd + 1;
112
+ out += "$$";
113
+ continue;
114
+ }
115
+ out += ch;
116
+ i++;
117
+ }
118
+ return out;
119
+ }
120
+ function firstMeaningfulToken(withoutStrings) {
121
+ const token = /([a-zA-Z_][\w$]*|"[^"]*")/.exec(withoutStrings.trim());
122
+ if (!token)
123
+ return "";
124
+ let t = token[1];
125
+ if (t.startsWith('"') && t.endsWith('"')) {
126
+ t = t.slice(1, -1);
127
+ }
128
+ return t.toLowerCase();
129
+ }
130
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/sql/validate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askdb/core",
3
- "version": "0.5.0-beta.0",
3
+ "version": "0.5.0-beta.12",
4
4
  "description": "AskDB core: dialect-agnostic NL→SQL pipeline. Provides ask() orchestration, schema/IR types, modes, logging, and retrieval input. Bring your own dialect (e.g. @askdb/postgres).",
5
5
  "keywords": [
6
6
  "askdb",
@@ -42,6 +42,7 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "@ai-sdk/azure": "^1.3.25",
45
+ "@ai-sdk/google": "^1.2.22",
45
46
  "@ai-sdk/openai": "^1.3.21",
46
47
  "ai": "^4.3.19",
47
48
  "gray-matter": "^4.0.3",