@askdb/config 1.0.0-beta.11 → 1.0.0-beta.13

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 (48) hide show
  1. package/README.md +20 -19
  2. package/dist/bootstrap.d.ts +3 -0
  3. package/dist/bootstrap.d.ts.map +1 -1
  4. package/dist/bootstrap.js +16 -0
  5. package/dist/bootstrap.js.map +1 -1
  6. package/dist/constants.d.ts +15 -4
  7. package/dist/constants.d.ts.map +1 -1
  8. package/dist/constants.js +15 -4
  9. package/dist/constants.js.map +1 -1
  10. package/dist/defaults.d.ts +37 -1
  11. package/dist/defaults.d.ts.map +1 -1
  12. package/dist/defaults.js +50 -10
  13. package/dist/defaults.js.map +1 -1
  14. package/dist/diagnostics.d.ts +10 -0
  15. package/dist/diagnostics.d.ts.map +1 -0
  16. package/dist/diagnostics.js +13 -0
  17. package/dist/diagnostics.js.map +1 -0
  18. package/dist/flatten.d.ts +8 -1
  19. package/dist/flatten.d.ts.map +1 -1
  20. package/dist/flatten.js +128 -117
  21. package/dist/flatten.js.map +1 -1
  22. package/dist/index.d.ts +4 -3
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +2 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/normalize.d.ts +53 -0
  27. package/dist/normalize.d.ts.map +1 -0
  28. package/dist/normalize.js +398 -0
  29. package/dist/normalize.js.map +1 -0
  30. package/dist/projection.d.ts +12 -1
  31. package/dist/projection.d.ts.map +1 -1
  32. package/dist/projection.js +12 -3
  33. package/dist/projection.js.map +1 -1
  34. package/dist/runtime-config.d.ts +66 -3
  35. package/dist/runtime-config.d.ts.map +1 -1
  36. package/dist/runtime-config.js +122 -46
  37. package/dist/runtime-config.js.map +1 -1
  38. package/dist/scaffold/ai.d.ts +30 -0
  39. package/dist/scaffold/ai.d.ts.map +1 -0
  40. package/dist/scaffold/ai.js +54 -0
  41. package/dist/scaffold/ai.js.map +1 -0
  42. package/dist/scaffold/index.d.ts +8 -0
  43. package/dist/scaffold/index.d.ts.map +1 -0
  44. package/dist/scaffold/index.js +7 -0
  45. package/dist/scaffold/index.js.map +1 -0
  46. package/dist/types.d.ts +244 -107
  47. package/dist/types.d.ts.map +1 -1
  48. package/package.json +11 -5
@@ -1,6 +1,25 @@
1
1
  import { ASKDB_STUDIO_EXECUTE_PROVIDERS } from "./constants.js";
2
- import { DEFAULT_INTROSPECT_OUTPUT_DIR } from "./defaults.js";
2
+ import { DEFAULT_HTTP_API_REQUEST_TIMEOUT_MS, DEFAULT_INTROSPECT_OUTPUT_DIR, DEFAULT_STUDIO_EXECUTE_MAX_ROWS, DEFAULT_STUDIO_EXECUTE_TIMEOUT_MS, parseHttpApiRequestTimeoutMs, parsePositiveInteger, } from "./defaults.js";
3
+ import { aiEmbeddingEnv, aiLanguageEnv } from "./flatten.js";
4
+ import { normalizeAskDbConfig } from "./normalize.js";
3
5
  import { flatToAiEnv, getAskDbRuntimeStore } from "./runtime-store.js";
6
+ function isTruthyFlag(raw) {
7
+ return raw !== undefined && ["1", "true", "yes"].includes(raw.toLowerCase());
8
+ }
9
+ /** Normalization is pure, so it runs once per installed config object. */
10
+ const normalizedByConfig = new WeakMap();
11
+ function normalizedFor(structured) {
12
+ let normalized = normalizedByConfig.get(structured);
13
+ if (!normalized) {
14
+ normalized = normalizeAskDbConfig(structured);
15
+ normalizedByConfig.set(structured, normalized);
16
+ }
17
+ return normalized;
18
+ }
19
+ /** The runtime view of a resolved `ai` section, with `env` built from its connection only. */
20
+ function runtimeSection(section, env) {
21
+ return { provider: section.provider, connection: section.connection.name, model: section.model, env };
22
+ }
4
23
  function pickFlat(flat, key) {
5
24
  const v = flat[key];
6
25
  if (v === undefined || v.trim() === "")
@@ -13,15 +32,26 @@ function pickFlat(flat, key) {
13
32
  export function getAskDbRuntimeConfig() {
14
33
  const { structured, flat } = getAskDbRuntimeStore();
15
34
  const aiEnv = flatToAiEnv(flat);
35
+ const { config: normalized, deprecations } = normalizedFor(structured);
36
+ const language = normalized.ai.language;
37
+ const embeddingSection = normalized.ai.embedding;
38
+ const embedding = embeddingSection
39
+ ? {
40
+ ...runtimeSection(embeddingSection, aiEmbeddingEnv(embeddingSection)),
41
+ dimensions: embeddingSection.dimensions,
42
+ }
43
+ : undefined;
44
+ // The RAG CLI's OpenAI embedder never reads another provider's key or base URL.
45
+ const openaiEmbedding = embedding?.provider === "openai" ? embedding : undefined;
16
46
  const logStdoutRaw = pickFlat(flat, "ASKDB_LOG_STDOUT");
17
- const logStdout = logStdoutRaw !== undefined && ["1", "true", "yes"].includes(logStdoutRaw.toLowerCase());
47
+ const logStdout = isTruthyFlag(logStdoutRaw);
18
48
  const portRaw = pickFlat(flat, "PORT");
19
49
  const portParsed = portRaw !== undefined ? Number(portRaw) : NaN;
20
50
  const port = structured.httpApi?.listen?.port ??
21
51
  (!Number.isNaN(portParsed) ? portParsed : 3000);
22
52
  const host = structured.httpApi?.listen?.host ?? pickFlat(flat, "HOST") ?? "127.0.0.1";
23
53
  const omitRaw = pickFlat(flat, "ASKDB_OMIT_SENSITIVE_FROM_PROMPT");
24
- const omitFromFlat = omitRaw !== undefined && ["1", "true", "yes"].includes(omitRaw.toLowerCase());
54
+ const omitFromFlat = isTruthyFlag(omitRaw);
25
55
  const prismaSchemaPathRaw = structured.introspection.provider === "prisma"
26
56
  ? structured.introspection.providerConfig?.prisma?.schemaPath?.trim()
27
57
  : undefined;
@@ -36,6 +66,9 @@ export function getAskDbRuntimeConfig() {
36
66
  ? structured.introspection.providerConfig?.mysql?.databaseUrl?.trim() ||
37
67
  pickFlat(flat, "ASKDB_INTROSPECT_MYSQL_URL")
38
68
  : undefined;
69
+ const schemas = (structured.introspection.schemas ?? pickFlat(flat, "ASKDB_INTROSPECT_SCHEMAS")?.split(","))
70
+ ?.map((s) => s.trim())
71
+ .filter(Boolean);
39
72
  const sqliteFile = structured.introspection.provider === "sqlite"
40
73
  ? structured.introspection.providerConfig?.sqlite?.file?.trim() ||
41
74
  pickFlat(flat, "ASKDB_INTROSPECT_SQLITE_FILE")
@@ -49,12 +82,15 @@ export function getAskDbRuntimeConfig() {
49
82
  flat,
50
83
  ai: {
51
84
  aiEnv,
85
+ language: { ...runtimeSection(language, aiLanguageEnv(language)), modelFamily: language.modelFamily },
86
+ embedding,
52
87
  },
53
88
  introspection: {
54
89
  provider: structured.introspection.provider,
55
90
  postgresDatabaseUrl,
56
91
  prismaSchemaPath: prismaSchemaPathRaw || undefined,
57
92
  mysqlDatabaseUrl,
93
+ schemas: schemas?.length ? schemas : undefined,
58
94
  sqliteFile,
59
95
  sqlserverDatabaseUrl,
60
96
  outputDir: pickFlat(flat, "ASKDB_INTROSPECT_OUT") ??
@@ -62,15 +98,19 @@ export function getAskDbRuntimeConfig() {
62
98
  DEFAULT_INTROSPECT_OUTPUT_DIR,
63
99
  },
64
100
  rag: {
65
- embedder: {
66
- apiKey: pickFlat(flat, "ASKDB_RAG_EMBEDDER_API_KEY") ??
67
- pickFlat(flat, "ASKDB_AI_API_KEY") ??
68
- pickFlat(flat, "OPENAI_API_KEY"),
69
- baseURL: pickFlat(flat, "ASKDB_RAG_EMBEDDER_BASE_URL") ??
70
- pickFlat(flat, "ASKDB_AI_BASE_URL") ??
71
- pickFlat(flat, "OPENAI_BASE_URL"),
72
- model: pickFlat(flat, "ASKDB_RAG_EMBEDDER_MODEL"),
73
- },
101
+ embedder: openaiEmbedding
102
+ ? {
103
+ apiKey: openaiEmbedding.env.OPENAI_API_KEY,
104
+ baseURL: openaiEmbedding.env.OPENAI_BASE_URL,
105
+ model: openaiEmbedding.model,
106
+ }
107
+ : {
108
+ apiKey: pickFlat(flat, "OPENAI_API_KEY"),
109
+ baseURL: pickFlat(flat, "OPENAI_BASE_URL"),
110
+ model: undefined,
111
+ },
112
+ store: normalized.rag.store,
113
+ storeConfig: normalized.rag.storeConfig,
74
114
  },
75
115
  logging: {
76
116
  level: structured.logging?.level ?? pickFlat(flat, "ASKDB_LOG_LEVEL"),
@@ -80,6 +120,14 @@ export function getAskDbRuntimeConfig() {
80
120
  },
81
121
  httpApi: {
82
122
  listen: { port, host },
123
+ // Only a real boolean counts: flattening rejects anything else, so a store installed
124
+ // without it falls back to the flat key, which is set only for `true`.
125
+ allowSchemaOverride: typeof structured.httpApi?.allowSchemaOverride === "boolean"
126
+ ? structured.httpApi.allowSchemaOverride
127
+ : isTruthyFlag(pickFlat(flat, "ASKDB_HTTP_ALLOW_SCHEMA_OVERRIDE")),
128
+ requestTimeoutMs: parseHttpApiRequestTimeoutMs(structured.httpApi?.requestTimeoutMs, "httpApi.requestTimeoutMs") ??
129
+ parseHttpApiRequestTimeoutMs(pickFlat(flat, "ASKDB_HTTP_REQUEST_TIMEOUT_MS"), "ASKDB_HTTP_REQUEST_TIMEOUT_MS") ??
130
+ DEFAULT_HTTP_API_REQUEST_TIMEOUT_MS,
83
131
  },
84
132
  dev: {
85
133
  mockSql: structured.dev?.mockSql ?? pickFlat(flat, "ASKDB_MOCK_SQL"),
@@ -94,6 +142,7 @@ export function getAskDbRuntimeConfig() {
94
142
  studio: {
95
143
  execute: resolveStudioExecuteConfig(structured, flat),
96
144
  },
145
+ deprecations,
97
146
  };
98
147
  }
99
148
  function resolveStudioExecuteConfig(structured, flat) {
@@ -115,46 +164,73 @@ function resolveStudioExecuteConfig(structured, flat) {
115
164
  provider = "postgres";
116
165
  }
117
166
  }
167
+ const execute = structured.studio?.execute;
168
+ const enabled = (typeof execute?.enabled === "boolean" ? execute.enabled : undefined) ??
169
+ parseFlatBoolean(pickFlat(flat, "ASKDB_STUDIO_EXECUTE_ENABLED")) ??
170
+ false;
171
+ const useIntrospectionConnection = (typeof execute?.useIntrospectionConnection === "boolean" ? execute.useIntrospectionConnection : undefined) ??
172
+ parseFlatBoolean(pickFlat(flat, "ASKDB_STUDIO_EXECUTE_USE_INTROSPECTION_CONNECTION")) ??
173
+ false;
174
+ const timeoutMs = parsePositiveInteger(execute?.timeoutMs) ??
175
+ parsePositiveInteger(pickFlat(flat, "ASKDB_STUDIO_EXECUTE_TIMEOUT_MS")) ??
176
+ DEFAULT_STUDIO_EXECUTE_TIMEOUT_MS;
177
+ const maxRows = parsePositiveInteger(execute?.maxRows) ??
178
+ parsePositiveInteger(pickFlat(flat, "ASKDB_STUDIO_EXECUTE_MAX_ROWS")) ??
179
+ DEFAULT_STUDIO_EXECUTE_MAX_ROWS;
118
180
  // Connection resolution — each provider draws from its own structured field
119
- // first, then the relevant flat env key.
181
+ // first, then the relevant flat env key. The introspection connection is only
182
+ // reused when `useIntrospectionConnection` is explicitly on, so turning execute
183
+ // on never silently runs ad-hoc SQL with introspection credentials.
184
+ const introspectionConnection = introspectionConnectionFor(provider, structured, flat);
120
185
  let databaseUrl;
121
186
  let file;
122
- if (provider === "postgres") {
123
- databaseUrl =
124
- structured.studio?.execute?.databaseUrl?.trim() ||
125
- pickFlat(flat, "ASKDB_STUDIO_DATABASE_URL") ||
126
- (structured.introspection?.provider === "postgres"
127
- ? structured.introspection.providerConfig?.postgres?.databaseUrl?.trim() ||
128
- pickFlat(flat, "ASKDB_INTROSPECT_POSTGRES_URL")
129
- : undefined);
187
+ if (provider === "sqlite") {
188
+ file = execute?.file?.trim() || pickFlat(flat, "ASKDB_STUDIO_SQLITE_FILE");
130
189
  }
131
- else if (provider === "mysql") {
132
- databaseUrl =
133
- structured.studio?.execute?.databaseUrl?.trim() ||
134
- pickFlat(flat, "ASKDB_STUDIO_DATABASE_URL") ||
135
- (structured.introspection?.provider === "mysql"
136
- ? structured.introspection.providerConfig?.mysql?.databaseUrl?.trim() ||
137
- pickFlat(flat, "ASKDB_INTROSPECT_MYSQL_URL")
138
- : undefined);
190
+ else {
191
+ databaseUrl = execute?.databaseUrl?.trim() || pickFlat(flat, "ASKDB_STUDIO_DATABASE_URL");
139
192
  }
140
- else if (provider === "sqlserver") {
141
- databaseUrl =
142
- structured.studio?.execute?.databaseUrl?.trim() ||
143
- pickFlat(flat, "ASKDB_STUDIO_DATABASE_URL") ||
144
- (structured.introspection?.provider === "sqlserver"
145
- ? structured.introspection.providerConfig?.sqlserver?.databaseUrl?.trim() ||
146
- pickFlat(flat, "ASKDB_INTROSPECT_SQLSERVER_URL")
147
- : undefined);
193
+ const explicit = provider === "sqlite" ? file : databaseUrl;
194
+ if (!explicit && useIntrospectionConnection && introspectionConnection) {
195
+ if (provider === "sqlite")
196
+ file = introspectionConnection;
197
+ else
198
+ databaseUrl = introspectionConnection;
148
199
  }
149
- else if (provider === "sqlite") {
150
- file =
151
- structured.studio?.execute?.file?.trim() ||
152
- pickFlat(flat, "ASKDB_STUDIO_SQLITE_FILE") ||
153
- (structured.introspection?.provider === "sqlite"
154
- ? structured.introspection.providerConfig?.sqlite?.file?.trim() ||
155
- pickFlat(flat, "ASKDB_INTROSPECT_SQLITE_FILE")
156
- : undefined);
200
+ return {
201
+ provider,
202
+ databaseUrl,
203
+ file,
204
+ enabled,
205
+ useIntrospectionConnection,
206
+ introspectionConnectionAvailable: !explicit && !useIntrospectionConnection && introspectionConnection !== undefined,
207
+ timeoutMs,
208
+ maxRows,
209
+ };
210
+ }
211
+ function introspectionConnectionFor(provider, structured, flat) {
212
+ const intro = structured.introspection;
213
+ if (intro?.provider !== provider)
214
+ return undefined;
215
+ switch (provider) {
216
+ case "postgres":
217
+ return intro.providerConfig?.postgres?.databaseUrl?.trim() || pickFlat(flat, "ASKDB_INTROSPECT_POSTGRES_URL");
218
+ case "mysql":
219
+ return intro.providerConfig?.mysql?.databaseUrl?.trim() || pickFlat(flat, "ASKDB_INTROSPECT_MYSQL_URL");
220
+ case "sqlserver":
221
+ return intro.providerConfig?.sqlserver?.databaseUrl?.trim() || pickFlat(flat, "ASKDB_INTROSPECT_SQLSERVER_URL");
222
+ case "sqlite":
223
+ return intro.providerConfig?.sqlite?.file?.trim() || pickFlat(flat, "ASKDB_INTROSPECT_SQLITE_FILE");
157
224
  }
158
- return { provider, databaseUrl, file };
225
+ }
226
+ function parseFlatBoolean(raw) {
227
+ if (raw === undefined)
228
+ return undefined;
229
+ const v = raw.toLowerCase();
230
+ if (["1", "true", "yes", "on"].includes(v))
231
+ return true;
232
+ if (["0", "false", "no", "off"].includes(v))
233
+ return false;
234
+ return undefined;
159
235
  }
160
236
  //# sourceMappingURL=runtime-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-config.js","sourceRoot":"","sources":["../src/runtime-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-config.js","sourceRoot":"","sources":["../src/runtime-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type AskDbAiProviderId } from "../constants.js";
2
+ /** An env var a scaffolded config reads through `env()`. */
3
+ export type AskDbScaffoldEnvVar = {
4
+ name: string;
5
+ /** Short description for `.env.example` and setup UIs. */
6
+ purpose: string;
7
+ };
8
+ export type AskDbAiConfigScaffoldInput = {
9
+ provider: AskDbAiProviderId;
10
+ /** Env var NAME for the API key. */
11
+ keyEnv: string;
12
+ /** Env var NAME for the language model (the deployment name on Azure). Omit to use the provider's default model. */
13
+ modelEnv?: string;
14
+ };
15
+ export type AskDbAiConfigScaffold = {
16
+ /** The `ai: { … },` property, indented for the top level of `defineConfig({ … })`. */
17
+ source: string;
18
+ /** Every env var `source` reads, in order. */
19
+ envVars: AskDbScaffoldEnvVar[];
20
+ };
21
+ /**
22
+ * Renders the `ai` block of a new `askdb.config.ts` (a provider connection, plus
23
+ * `ai.language` when a model env var is given), plus the env vars it reads. `askdb init` and Studio's setup wizard both call this, so the fields
24
+ * a provider needs to start (e.g. Azure's `resourceName`) live in one place.
25
+ *
26
+ * Every value is emitted as a JSON string literal: the generated file is
27
+ * executed when the config loads, so a raw quote in a name must not inject code.
28
+ */
29
+ export declare function renderAskDbAiConfigScaffold(input: AskDbAiConfigScaffoldInput): AskDbAiConfigScaffold;
30
+ //# sourceMappingURL=ai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/scaffold/ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,4DAA4D;AAC5D,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,oHAAoH;IACpH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC,CAAC;AAYF;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,0BAA0B,GAAG,qBAAqB,CAmCpG"}
@@ -0,0 +1,54 @@
1
+ import { ASKDB_AI_PROVIDERS } from "../constants.js";
2
+ function isAiProvider(provider) {
3
+ return ASKDB_AI_PROVIDERS.includes(provider);
4
+ }
5
+ /**
6
+ * Env var the scaffold reads `resourceName` from. It's also the name the Azure
7
+ * adapter reads when there's no config file.
8
+ */
9
+ const AZURE_RESOURCE_NAME_ENV = "AZURE_RESOURCE_NAME";
10
+ /**
11
+ * Renders the `ai` block of a new `askdb.config.ts` (a provider connection, plus
12
+ * `ai.language` when a model env var is given), plus the env vars it reads. `askdb init` and Studio's setup wizard both call this, so the fields
13
+ * a provider needs to start (e.g. Azure's `resourceName`) live in one place.
14
+ *
15
+ * Every value is emitted as a JSON string literal: the generated file is
16
+ * executed when the config loads, so a raw quote in a name must not inject code.
17
+ */
18
+ export function renderAskDbAiConfigScaffold(input) {
19
+ const { provider, keyEnv, modelEnv } = input;
20
+ // The provider id is emitted as an object key, so only known ids get through.
21
+ if (!isAiProvider(provider)) {
22
+ throw new Error(`Unknown AI provider: ${JSON.stringify(provider)}`);
23
+ }
24
+ const envVars = [{ name: keyEnv, purpose: `${provider} API key` }];
25
+ const fields = [`apiKey: env(${JSON.stringify(keyEnv)}),`];
26
+ // The provider connection holds the key and endpoint only; the model choice lives in `ai.language`.
27
+ let language = "";
28
+ if (modelEnv) {
29
+ envVars.push({ name: modelEnv, purpose: `${provider} model override` });
30
+ language = `
31
+ language: {
32
+ model: env(${JSON.stringify(modelEnv)}),
33
+ },`;
34
+ }
35
+ // `AzureConnection` / `FoundryConnection` need `resourceName` or `baseUrl`; the
36
+ // adapter refuses to start without one. Scaffold the resource-name form.
37
+ if (provider === "azure" || provider === "foundry") {
38
+ envVars.push({
39
+ name: AZURE_RESOURCE_NAME_ENV,
40
+ purpose: 'Azure resource name, e.g. "my-resource" for https://my-resource.openai.azure.com',
41
+ });
42
+ fields.push(`resourceName: env(${JSON.stringify(AZURE_RESOURCE_NAME_ENV)}),`);
43
+ }
44
+ const source = ` ai: {
45
+ provider: ${JSON.stringify(provider)},
46
+ providerConfig: {
47
+ ${provider}: {
48
+ ${fields.map((field) => ` ${field}`).join("\n")}
49
+ },
50
+ },${language}
51
+ },`;
52
+ return { source, envVars };
53
+ }
54
+ //# sourceMappingURL=ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/scaffold/ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA0B,MAAM,iBAAiB,CAAC;AAwB7E,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAQ,kBAAwC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAiC;IAC3E,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC7C,8EAA8E;IAC9E,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,OAAO,GAA0B,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,UAAU,EAAE,CAAC,CAAC;IAC1F,MAAM,MAAM,GAAG,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,oGAAoG;IACpG,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,QAAQ,iBAAiB,EAAE,CAAC,CAAC;QACxE,QAAQ,GAAG;;mBAEI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;OACpC,CAAC;IACN,CAAC;IACD,gFAAgF;IAChF,yEAAyE;IACzE,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,kFAAkF;SAC5F,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,MAAM,GAAG;gBACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;;QAEhC,QAAQ;EACd,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;QAE9C,QAAQ;KACX,CAAC;IACJ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * `@askdb/config/scaffold`: helpers for tools that write a new `askdb.config.ts`
3
+ * (`askdb init`, Studio's setup wizard). Kept off the main entry, which user
4
+ * configs import, so tooling can change without touching the config API.
5
+ */
6
+ export { renderAskDbAiConfigScaffold } from "./ai.js";
7
+ export type { AskDbAiConfigScaffold, AskDbAiConfigScaffoldInput, AskDbScaffoldEnvVar } from "./ai.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * `@askdb/config/scaffold`: helpers for tools that write a new `askdb.config.ts`
3
+ * (`askdb init`, Studio's setup wizard). Kept off the main entry, which user
4
+ * configs import, so tooling can change without touching the config API.
5
+ */
6
+ export { renderAskDbAiConfigScaffold } from "./ai.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC"}