@askdb/client 1.0.0-beta.7 → 1.0.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -10
- package/dist/client.d.ts +25 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +21 -3
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @askdb/client
|
|
2
2
|
|
|
3
|
-
Config-aware AskDB facade. Resolves schema, model, and
|
|
3
|
+
Config-aware AskDB facade. Resolves schema, model, dialect, and mode from your runtime config so callers only pass a question.
|
|
4
4
|
|
|
5
5
|
## Quick start
|
|
6
6
|
|
|
@@ -27,13 +27,14 @@ To bypass config-driven model selection entirely, pass an AI SDK `LanguageModel`
|
|
|
27
27
|
|
|
28
28
|
## Per-call overrides
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
Each resolution axis accepts an optional per-call override:
|
|
31
31
|
|
|
32
32
|
| Override | Type | Default |
|
|
33
33
|
|---|---|---|
|
|
34
34
|
| `schema` | `{ path }` \| `{ json }` \| `{ schema }` \| `NormalizedSchema` | From `createAskDb({ schema })` → config `host.schemaPath`/`host.schemaJson` → env |
|
|
35
35
|
| `model` | `AskDbLanguageModel` | From registry via config `ai.aiEnv` |
|
|
36
36
|
| `dialect` | `AskDialectInput` | Config `dialect` → schema `provider` → `"postgres"` |
|
|
37
|
+
| `mode` | `AskDbModeV1` | Config `modes.askdbMode` → `"schema_only"`. A per-call mode can only tighten it: `"bounded_results"` runs the config mode (ADR 0025). |
|
|
37
38
|
|
|
38
39
|
```ts
|
|
39
40
|
const { sql } = await askdb.ask("count active users", {
|
|
@@ -44,24 +45,22 @@ const { sql } = await askdb.ask("count active users", {
|
|
|
44
45
|
|
|
45
46
|
## Parameterized output
|
|
46
47
|
|
|
47
|
-
`askdb.ask()` returns the same `AskPipelineResult` as `@askdb/core`'s `ask()`, including optional `unboundSql`, `params`, `parameters`, and `preparedQuery` when the model complies (default `parameterize: true`). The facade forwards options and returns the core result verbatim
|
|
48
|
+
`askdb.ask()` returns the same `AskPipelineResult` as `@askdb/core`'s `ask()`, including optional `unboundSql`, `params`, `parameters`, and `preparedQuery` when the model complies (default `parameterize: true`). The facade forwards options and returns the core result verbatim, `verdict` included.
|
|
48
49
|
|
|
49
50
|
```ts
|
|
50
|
-
import { bindPreparedQuery } from "@askdb/core";
|
|
51
|
-
|
|
52
51
|
const result = await askdb.ask("How many cities does Colorado have?", { tenantScope });
|
|
53
52
|
|
|
54
53
|
await pool.query(result.sql);
|
|
55
54
|
await pool.query(result.unboundSql!, result.params);
|
|
56
55
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
":tenant_agency_ids": authorizedAgencyIds,
|
|
60
|
-
});
|
|
56
|
+
// A new value, no model call.
|
|
57
|
+
const rebound = await askdb.bind(result.preparedQuery!, { state_name: "Utah" }, { tenantScope });
|
|
61
58
|
await pool.query(rebound.sql);
|
|
62
59
|
```
|
|
63
60
|
|
|
64
|
-
Every `ask()` is still one model call. Set `{ parameterize: false }` to opt out of the extra output tokens.
|
|
61
|
+
Every `ask()` is still one model call. Set `{ parameterize: false }` to opt out of the extra output tokens. Prefer `params` over `tenantParams` when using the new fields.
|
|
62
|
+
|
|
63
|
+
`askdb.bind(prepared, values, options?)` wraps `@askdb/core`'s `bindPreparedQuery()`: it checks the stored template under the client's schema (or `options.schema`), the `tenantScope` you pass and the modes (`sensitiveGuardrailMode`, `acceptWarnings`), expands a `subtree` scope with `options.resolveTenantDescendants`, and renders the tenant IDs from the scope. Authorizing that scope remains the host's job, as for `ask()`.
|
|
65
64
|
|
|
66
65
|
## Multi-tenant usage
|
|
67
66
|
|
package/dist/client.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type AiProviderAdapters, type AiRegistry, type ReasoningEffort } from "@askdb/ai";
|
|
2
2
|
import type { AskDbRuntimeConfig } from "@askdb/config";
|
|
3
|
-
import { type AnyNormalizedSchema, type AskDbLanguageModel, type AskDialectInput, type AskPipelineOptions, type AskPipelineResult } from "@askdb/core";
|
|
3
|
+
import { type AnyNormalizedSchema, type AskDbLanguageModel, type AskDbModeV1, type AskDialectInput, type AskPipelineOptions, type AskPipelineResult, type BindGuardrails, type BoundQuery, type PreparedQuery, type QueryParameterValue, type ResolveTenantDescendants } from "@askdb/core";
|
|
4
4
|
import type { BuiltInDialectId } from "@askdb/core";
|
|
5
5
|
/** Where a schema comes from. A pre-loaded object short-circuits loading. */
|
|
6
6
|
export type SchemaSource = {
|
|
@@ -10,8 +10,16 @@ export type SchemaSource = {
|
|
|
10
10
|
} | {
|
|
11
11
|
schema: AnyNormalizedSchema;
|
|
12
12
|
};
|
|
13
|
-
/**
|
|
14
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Per-call options. Everything is optional; anything set overrides the client default,
|
|
15
|
+
* except the two config `modes` settings, which a call can only tighten.
|
|
16
|
+
*/
|
|
17
|
+
export type AskOverrides = Omit<AskPipelineOptions, "question" | "schema" | "model" | "dialect" | "mode"> & {
|
|
18
|
+
/**
|
|
19
|
+
* Trust boundary for this call. Config `modes.askdbMode` (unset: `"schema_only"`) is the
|
|
20
|
+
* loosest mode a call gets: `"schema_only"` tightens it, `"bounded_results"` can't loosen it.
|
|
21
|
+
*/
|
|
22
|
+
mode?: AskDbModeV1;
|
|
15
23
|
schema?: SchemaSource | AnyNormalizedSchema;
|
|
16
24
|
model?: AskDbLanguageModel;
|
|
17
25
|
dialect?: AskDialectInput;
|
|
@@ -22,6 +30,13 @@ export type AskOverrides = Omit<AskPipelineOptions, "question" | "schema" | "mod
|
|
|
22
30
|
*/
|
|
23
31
|
reasoningEffort?: ReasoningEffort;
|
|
24
32
|
};
|
|
33
|
+
/** Options for {@link AskDbClient.bind}. Everything is optional; `schema` overrides the client's schema. */
|
|
34
|
+
export type BindOptions = Omit<BindGuardrails, "schema"> & {
|
|
35
|
+
/** The schema to check the template under. Defaults to the schema `ask()` resolves. */
|
|
36
|
+
schema?: SchemaSource | AnyNormalizedSchema;
|
|
37
|
+
/** Expands a `subtree` `tenantScope` before binding, as in `ask()`. */
|
|
38
|
+
resolveTenantDescendants?: ResolveTenantDescendants;
|
|
39
|
+
};
|
|
25
40
|
export type DialectResolution = {
|
|
26
41
|
dialect: AskDialectInput;
|
|
27
42
|
source: "override" | "config" | "schema" | "default";
|
|
@@ -71,6 +86,13 @@ export type CreateAskDbOptions = {
|
|
|
71
86
|
};
|
|
72
87
|
export type AskDbClient = {
|
|
73
88
|
ask(question: string, overrides?: AskOverrides): Promise<AskPipelineResult>;
|
|
89
|
+
/**
|
|
90
|
+
* Rebind a stored `preparedQuery` with new values, without calling the model. Checks the
|
|
91
|
+
* template under the client's schema (the one `ask()` resolves, unless `options.schema`
|
|
92
|
+
* is set), the given tenant scope and modes, expands a `subtree` scope with
|
|
93
|
+
* `options.resolveTenantDescendants`, and forwards to `@askdb/core`'s `bindPreparedQuery()`.
|
|
94
|
+
*/
|
|
95
|
+
bind(prepared: PreparedQuery, values: Record<string, QueryParameterValue | readonly QueryParameterValue[]>, options?: BindOptions): Promise<BoundQuery>;
|
|
74
96
|
/** Drop cached schema + model so the next ask() re-resolves them. */
|
|
75
97
|
reload(): void;
|
|
76
98
|
};
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,eAAe,EACrB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createAiRegistry, resolveReasoningEffort, } from "@askdb/ai";
|
|
2
|
-
import { ask, isBuiltInDialectId, loadSchema, loadSchemaFromJson, SUPPORTED_DIALECT_IDS, } from "@askdb/core";
|
|
2
|
+
import { ask, bindPreparedQuery, expandTenantScope, isBuiltInDialectId, loadSchema, loadSchemaFromJson, parseAskDbModeV1, SUPPORTED_DIALECT_IDS, } from "@askdb/core";
|
|
3
3
|
import { DialectNotSupportedError, ModelNotConfiguredError, SchemaLoadError, SchemaNotConfiguredError, } from "./errors.js";
|
|
4
4
|
function resolveRegistry(options) {
|
|
5
5
|
if (options.registry && options.providers) {
|
|
@@ -27,7 +27,8 @@ export function createAskDb(options) {
|
|
|
27
27
|
return `path (${src.path})`;
|
|
28
28
|
}
|
|
29
29
|
function loadFromSource(src, label) {
|
|
30
|
-
|
|
30
|
+
// A normalized schema, v1 or v2, passed as is: every one has `tables`, no SchemaSource does.
|
|
31
|
+
if ("tables" in src)
|
|
31
32
|
return src;
|
|
32
33
|
if ("schema" in src)
|
|
33
34
|
return src.schema;
|
|
@@ -132,8 +133,18 @@ export function createAskDb(options) {
|
|
|
132
133
|
cachedModel = undefined;
|
|
133
134
|
cachedAiConfig = undefined;
|
|
134
135
|
},
|
|
136
|
+
async bind(prepared, values, options = {}) {
|
|
137
|
+
const { schema: schemaOverride, resolveTenantDescendants, tenantScope, ...guardrails } = options;
|
|
138
|
+
const schema = schemaOverride ? loadFromSource(schemaOverride, "request") : resolveDefaultSchema();
|
|
139
|
+
const tenantPolicy = "schemaId" in schema ? schema.tenantPolicy : undefined;
|
|
140
|
+
// The same subtree expansion ask() runs, so a host never builds it by hand (ADR 0014).
|
|
141
|
+
const scope = tenantPolicy && tenantScope
|
|
142
|
+
? await expandTenantScope(tenantPolicy, tenantScope, resolveTenantDescendants)
|
|
143
|
+
: tenantScope;
|
|
144
|
+
return bindPreparedQuery(prepared, values, { ...guardrails, schema, ...(scope ? { tenantScope: scope } : {}) });
|
|
145
|
+
},
|
|
135
146
|
async ask(question, overrides = {}) {
|
|
136
|
-
const { schema: schemaOverride, model: modelOverride, dialect: dialectOverride, deps, reasoningEffort, omitSensitiveIdentifiersFromNlToSqlPrompt, ...rest } = overrides;
|
|
147
|
+
const { schema: schemaOverride, model: modelOverride, dialect: dialectOverride, deps, reasoningEffort, omitSensitiveIdentifiersFromNlToSqlPrompt, mode: callMode, ...rest } = overrides;
|
|
137
148
|
const schema = schemaOverride ? loadFromSource(schemaOverride, "request") : resolveDefaultSchema();
|
|
138
149
|
const dialect = resolveDialect(schema, dialectOverride);
|
|
139
150
|
const resolvedModel = await resolveModel(modelOverride, deps, reasoningEffort);
|
|
@@ -150,8 +161,15 @@ export function createAskDb(options) {
|
|
|
150
161
|
// tighten it (true) but never loosen it (false) when the operator enabled it.
|
|
151
162
|
const omitSensitive = omitSensitiveIdentifiersFromNlToSqlPrompt === true ||
|
|
152
163
|
config.modes?.omitSensitiveFromPrompt === true;
|
|
164
|
+
// Config `modes.askdbMode` (unset: `schema_only`) is the loosest mode a call gets:
|
|
165
|
+
// a per-call `mode` can tighten it to `schema_only`, never loosen it (ADR 0025). Both go
|
|
166
|
+
// through the same parser, so any accepted spelling tightens and an unknown mode throws.
|
|
167
|
+
const configMode = parseAskDbModeV1(config.modes?.askdbMode);
|
|
168
|
+
const requested = callMode == null ? undefined : parseAskDbModeV1(callMode);
|
|
169
|
+
const mode = requested === "schema_only" ? requested : configMode;
|
|
153
170
|
return ask({
|
|
154
171
|
...rest,
|
|
172
|
+
mode,
|
|
155
173
|
...(omitSensitive ? { omitSensitiveIdentifiersFromNlToSqlPrompt: true } : {}),
|
|
156
174
|
question,
|
|
157
175
|
schema,
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GAKvB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,GAAG,EACH,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { createAskDb, type AskDbClient, type CreateAskDbOptions, type AskOverrides, type SchemaSource, type DialectResolution, } from "./client.js";
|
|
1
|
+
export { createAskDb, type AskDbClient, type CreateAskDbOptions, type AskOverrides, type BindOptions, type SchemaSource, type DialectResolution, } from "./client.js";
|
|
2
2
|
export { DialectNotSupportedError, ModelNotConfiguredError, SchemaLoadError, SchemaNotConfiguredError, } from "./errors.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,wBAAwB,GACzB,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,wBAAwB,GACzB,MAAM,aAAa,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,GAOZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,wBAAwB,GACzB,MAAM,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askdb/client",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.8",
|
|
4
4
|
"description": "Config-aware AskDB facade: resolves schema, model, and dialect from config so callers only pass a question.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"askdb",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"@ai-sdk/azure": "^4.0.0",
|
|
45
45
|
"@ai-sdk/google": "^4.0.0",
|
|
46
46
|
"@ai-sdk/openai": "^4.0.0",
|
|
47
|
-
"@askdb/config": "^1.0.0-beta.
|
|
48
|
-
"@askdb/core": "^1.0.0-beta.
|
|
47
|
+
"@askdb/config": "^1.0.0-beta.14",
|
|
48
|
+
"@askdb/core": "^1.0.0-beta.45",
|
|
49
49
|
"ai": "^7.0.51"
|
|
50
50
|
},
|
|
51
51
|
"peerDependenciesMeta": {
|
|
@@ -63,14 +63,14 @@
|
|
|
63
63
|
}
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@askdb/config": "1.0.0-beta.
|
|
67
|
-
"@askdb/core": "1.0.0-beta.
|
|
66
|
+
"@askdb/config": "1.0.0-beta.14",
|
|
67
|
+
"@askdb/core": "1.0.0-beta.45",
|
|
68
68
|
"ai": "^7.0.127",
|
|
69
69
|
"typescript": "^6.0.3",
|
|
70
70
|
"vitest": "^5.0.5"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@askdb/ai": "^0.1.0-beta.
|
|
73
|
+
"@askdb/ai": "^0.1.0-beta.9"
|
|
74
74
|
},
|
|
75
75
|
"scripts": {
|
|
76
76
|
"build": "tsc -p tsconfig.build.json",
|