@askdb/core 1.0.0-beta.41 → 1.0.0-beta.42

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 (57) hide show
  1. package/README.md +39 -1
  2. package/dist/ask.d.ts +39 -0
  3. package/dist/ask.d.ts.map +1 -1
  4. package/dist/ask.js +175 -10
  5. package/dist/ask.js.map +1 -1
  6. package/dist/errors.d.ts +49 -0
  7. package/dist/errors.d.ts.map +1 -1
  8. package/dist/errors.js +20 -0
  9. package/dist/errors.js.map +1 -1
  10. package/dist/index.d.ts +3 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +3 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/logging/log-events.d.ts +13 -0
  15. package/dist/logging/log-events.d.ts.map +1 -1
  16. package/dist/logging/log-events.js +13 -0
  17. package/dist/logging/log-events.js.map +1 -1
  18. package/dist/sql/bind.d.ts +100 -0
  19. package/dist/sql/bind.d.ts.map +1 -0
  20. package/dist/sql/bind.js +560 -0
  21. package/dist/sql/bind.js.map +1 -0
  22. package/dist/sql/dialect-spec.d.ts +4 -0
  23. package/dist/sql/dialect-spec.d.ts.map +1 -1
  24. package/dist/sql/dialect-spec.js +8 -0
  25. package/dist/sql/dialect-spec.js.map +1 -1
  26. package/dist/sql/extract-sql.d.ts +8 -1
  27. package/dist/sql/extract-sql.d.ts.map +1 -1
  28. package/dist/sql/extract-sql.js +27 -4
  29. package/dist/sql/extract-sql.js.map +1 -1
  30. package/dist/sql/generate.d.ts +10 -0
  31. package/dist/sql/generate.d.ts.map +1 -1
  32. package/dist/sql/generate.js +72 -4
  33. package/dist/sql/generate.js.map +1 -1
  34. package/dist/sql/index.d.ts +4 -2
  35. package/dist/sql/index.d.ts.map +1 -1
  36. package/dist/sql/index.js +4 -2
  37. package/dist/sql/index.js.map +1 -1
  38. package/dist/sql/parameter-manifest.d.ts +34 -0
  39. package/dist/sql/parameter-manifest.d.ts.map +1 -0
  40. package/dist/sql/parameter-manifest.js +150 -0
  41. package/dist/sql/parameter-manifest.js.map +1 -0
  42. package/dist/sql/prompt.d.ts +7 -1
  43. package/dist/sql/prompt.d.ts.map +1 -1
  44. package/dist/sql/prompt.js +24 -1
  45. package/dist/sql/prompt.js.map +1 -1
  46. package/dist/sql/sensitive-guardrail.d.ts +47 -0
  47. package/dist/sql/sensitive-guardrail.d.ts.map +1 -0
  48. package/dist/sql/sensitive-guardrail.js +589 -0
  49. package/dist/sql/sensitive-guardrail.js.map +1 -0
  50. package/dist/sql/tenant-placeholders.d.ts +3 -2
  51. package/dist/sql/tenant-placeholders.d.ts.map +1 -1
  52. package/dist/sql/tenant-placeholders.js +14 -11
  53. package/dist/sql/tenant-placeholders.js.map +1 -1
  54. package/dist/sql/validate.d.ts.map +1 -1
  55. package/dist/sql/validate.js +1 -47
  56. package/dist/sql/validate.js.map +1 -1
  57. package/package.json +4 -3
@@ -16,7 +16,13 @@ export declare function buildNlToSqlUserPrompt(dialect: DialectSpec, question: s
16
16
  * still fires using the consumer-supplied `nlToSqlSchemaOptions` to keep
17
17
  * observability consistent.
18
18
  */
19
- prebuiltDdl?: string, tenantPolicy?: NormalizedTenantPolicy, tenantScope?: TenantScope): string;
19
+ prebuiltDdl?: string, tenantPolicy?: NormalizedTenantPolicy, tenantScope?: TenantScope,
20
+ /**
21
+ * When true, append the unbound-SQL + parameter-manifest output-format
22
+ * instructions. When false/undefined, the prompt is unchanged from the
23
+ * pre-parameterize path (byte-identical).
24
+ */
25
+ parameterize?: boolean): string;
20
26
  /** Dialect-parameterized system prompt for the NL→SQL generator. */
21
27
  export declare function buildNlToSqlSystemPrompt(dialect: DialectSpec): string;
22
28
  //# sourceMappingURL=prompt.d.ts.map
@@ -1 +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,sBAAsB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD;;;;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,EACpB,YAAY,CAAC,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,WAAW,GACxB,MAAM,CA8DR;AAED,oEAAoE;AACpE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAErE"}
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,sBAAsB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOrD;;;;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,EACpB,YAAY,CAAC,EAAE,sBAAsB,EACrC,WAAW,CAAC,EAAE,WAAW;AACzB;;;;GAIG;AACH,YAAY,CAAC,EAAE,OAAO,GACrB,MAAM,CAkGR;AAED,oEAAoE;AACpE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAErE"}
@@ -18,7 +18,13 @@ export function buildNlToSqlUserPrompt(dialect, question, schema, ambiguityNotes
18
18
  * still fires using the consumer-supplied `nlToSqlSchemaOptions` to keep
19
19
  * observability consistent.
20
20
  */
21
- prebuiltDdl, tenantPolicy, tenantScope) {
21
+ prebuiltDdl, tenantPolicy, tenantScope,
22
+ /**
23
+ * When true, append the unbound-SQL + parameter-manifest output-format
24
+ * instructions. When false/undefined, the prompt is unchanged from the
25
+ * pre-parameterize path (byte-identical).
26
+ */
27
+ parameterize) {
22
28
  const formatted = isV2(schema)
23
29
  ? formatSchemaV2ForNlToSql(schema, nlToSqlSchemaOptions)
24
30
  : formatSchemaForNlToSql(schema, nlToSqlSchemaOptions);
@@ -66,6 +72,23 @@ prebuiltDdl, tenantPolicy, tenantScope) {
66
72
  lines.push("");
67
73
  }
68
74
  lines.push(`Question: ${question}`);
75
+ if (parameterize === true) {
76
+ const listBinding = dialect.listBinding ?? "expand";
77
+ const listForm = listBinding === "array"
78
+ ? "For multi-value parameters use `= ANY(:name)` (array dialects)."
79
+ : "For multi-value parameters use `IN (:name)`.";
80
+ lines.push("");
81
+ lines.push("Parameterized output format (required):");
82
+ lines.push("1. Emit the complete bound SQL (values inlined as literals) in a ```sql fence — exactly as you would without this instruction.");
83
+ lines.push("2. Emit the same statement in a ```sql-unbound fence, replacing values taken from the user's question with `:name` placeholders.");
84
+ lines.push("3. Emit a ```json fence with `{\"parameters\":[{\"name\",\"type\",\"cardinality\",\"description\",\"value\"}, ...]}` describing each placeholder.");
85
+ lines.push("- Placeholder names match `^[a-z][a-z0-9_]*$`. Never quote placeholders (`state = :state_name`, never `state = ':state_name'`).");
86
+ lines.push("- Never write `$1`, `?`, or `@p0` markers — only `:name` placeholders. AskDB derives driver markers.");
87
+ lines.push(`- ${listForm}`);
88
+ lines.push("- Types are `string` | `number` | `boolean` | `date` | `datetime`. Use `cardinality` `one` or `many`. Dates/datetimes are ISO strings.");
89
+ lines.push("- Keep `:tenant_*` placeholders exactly as the tenant policy block instructs; do not put them in the manifest.");
90
+ lines.push("- Only parameterize values that came from the user's question — not structural constants you chose (e.g. status enums you invented).");
91
+ }
69
92
  return lines.join("\n");
70
93
  }
71
94
  /** Dialect-parameterized system prompt for the NL→SQL generator. */
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/sql/prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/sql/prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { type SensitiveReference, type SensitiveScopeReport } from "../errors.js";
2
+ import type { AnyNormalizedSchema } from "../schema/types.js";
3
+ export type SensitiveGuardrailMode = "warn" | "strict";
4
+ export type ValidateSensitiveReferencesOptions = {
5
+ /**
6
+ * `"warn"` (default) returns the references without throwing — today's CLI behaviour.
7
+ * `"strict"` throws {@link SensitiveReferenceError} whenever the statement cannot be
8
+ * proven clean (references found, or scope could not be resolved).
9
+ */
10
+ mode?: SensitiveGuardrailMode;
11
+ };
12
+ export type SensitiveGuardrailResult = {
13
+ /** True only when nothing sensitive was referenced **and** table scope was fully resolved. */
14
+ passed: boolean;
15
+ references: SensitiveReference[];
16
+ /** Present when the statement's `FROM`/`JOIN` scope could not be resolved with confidence. */
17
+ unresolvedScope?: SensitiveScopeReport;
18
+ };
19
+ /**
20
+ * Check whether a SQL statement references tables/columns marked `sensitive`
21
+ * in the schema artifact.
22
+ *
23
+ * `sensitive: true` is otherwise a **prompt-level** marker: `formatSchemaForNlToSql`
24
+ * either tags identifiers `(sensitive)` or withholds them entirely. Both act on what
25
+ * the model *sees*. This function is the **enforcement** path — it inspects SQL that
26
+ * is about to execute, so hosts that cache, store, or replay statements should call it
27
+ * on every execution path, not only at generation time.
28
+ *
29
+ * Unlike a bare substring scan, an unqualified column name only counts when the owning
30
+ * table is actually in the statement's scope: `FROM`/`JOIN` targets and their aliases
31
+ * are resolved first. When scope cannot be resolved (no resolvable table source, or a
32
+ * qualifier that binds to nothing known), the check fails conservatively — it widens
33
+ * matching and reports why in {@link SensitiveGuardrailResult.unresolvedScope} — rather
34
+ * than passing silently.
35
+ *
36
+ * Heuristic, not a SQL parser. It is a review/enforcement aid, not a substitute for
37
+ * database-side column privileges.
38
+ */
39
+ export declare function validateSensitiveReferences(sql: string, schema: AnyNormalizedSchema, options?: ValidateSensitiveReferencesOptions): SensitiveGuardrailResult;
40
+ /**
41
+ * True when the schema marks at least one table or column `sensitive`. Cheap pre-check
42
+ * for hosts (and `ask()`) that skip the guardrail entirely on schemas with no markers.
43
+ */
44
+ export declare function schemaHasSensitiveIdentifiers(schema: AnyNormalizedSchema): boolean;
45
+ /** Render a reference as `schema.table.column` (or `table.column` when the schema has no namespace). */
46
+ export declare function formatSensitiveReference(ref: SensitiveReference): string;
47
+ //# sourceMappingURL=sensitive-guardrail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sensitive-guardrail.d.ts","sourceRoot":"","sources":["../../src/sql/sensitive-guardrail.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,kBAAkB,EAGvB,KAAK,oBAAoB,EAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvD,MAAM,MAAM,kCAAkC,GAAG;IAC/C;;;;OAIG;IACH,IAAI,CAAC,EAAE,sBAAsB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,8FAA8F;IAC9F,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,8FAA8F;IAC9F,eAAe,CAAC,EAAE,oBAAoB,CAAC;CACxC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EAAE,kCAAkC,GAC3C,wBAAwB,CAiB1B;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAElF;AAED,wGAAwG;AACxG,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAGxE"}