@askdb/config 1.0.0-beta.15 → 1.0.0-beta.17

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/README.md +4 -4
  2. package/dist/ai-env.d.ts +31 -0
  3. package/dist/ai-env.d.ts.map +1 -0
  4. package/dist/ai-env.js +88 -0
  5. package/dist/ai-env.js.map +1 -0
  6. package/dist/defaults.d.ts +1 -14
  7. package/dist/defaults.d.ts.map +1 -1
  8. package/dist/defaults.js +1 -42
  9. package/dist/defaults.js.map +1 -1
  10. package/dist/index.d.ts +3 -3
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +2 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/load-merge.js +1 -1
  15. package/dist/load-merge.js.map +1 -1
  16. package/dist/projection.d.ts +6 -0
  17. package/dist/projection.d.ts.map +1 -1
  18. package/dist/projection.js +11 -4
  19. package/dist/projection.js.map +1 -1
  20. package/dist/resolve.d.ts +36 -0
  21. package/dist/resolve.d.ts.map +1 -0
  22. package/dist/{normalize.js → resolve.js} +381 -7
  23. package/dist/resolve.js.map +1 -0
  24. package/dist/runtime-config.d.ts +5 -173
  25. package/dist/runtime-config.d.ts.map +1 -1
  26. package/dist/runtime-config.js +18 -223
  27. package/dist/runtime-config.js.map +1 -1
  28. package/dist/runtime-store.d.ts +9 -5
  29. package/dist/runtime-store.d.ts.map +1 -1
  30. package/dist/runtime-store.js +8 -7
  31. package/dist/runtime-store.js.map +1 -1
  32. package/dist/runtime-types.d.ts +176 -0
  33. package/dist/runtime-types.d.ts.map +1 -0
  34. package/dist/runtime-types.js +2 -0
  35. package/dist/runtime-types.js.map +1 -0
  36. package/dist/types.d.ts +21 -10
  37. package/dist/types.d.ts.map +1 -1
  38. package/package.json +1 -1
  39. package/dist/flatten.d.ts +0 -14
  40. package/dist/flatten.d.ts.map +0 -1
  41. package/dist/flatten.js +0 -253
  42. package/dist/flatten.js.map +0 -1
  43. package/dist/normalize.d.ts +0 -58
  44. package/dist/normalize.d.ts.map +0 -1
  45. package/dist/normalize.js.map +0 -1
package/README.md CHANGED
@@ -49,7 +49,7 @@ export default defineConfig({
49
49
 
50
50
  `defineConfig` types the object as `AskDbConfig`. A plain `export default { … }` loads too: the loader runs it through `defineConfig`, so it gets the same normalizing, checks and deprecation warnings. A config without its required `ai` or `introspection` block fails to load with an error that names the file and the block.
51
51
 
52
- Your `.env` can use friendly names (`MY_OPENAI_API_KEY`, …). `defineConfig` runs `flattenAskDbConfig`, which maps the nested object onto the canonical environment variable names used in the **runtime flat map** (and in `aiEnv` for `@askdb/ai`). **Unset optional fields get defaults inside `flattenAskDbConfig`** (language model, introspection output dir, database URL fallbacks, the mock embedder's vector width, file-store base path, pgvector index strategy, etc. — see `packages/config/src/defaults.ts`).
52
+ Your `.env` can use friendly names (`MY_OPENAI_API_KEY`, …). `defineConfig` resolves the config once: it checks each setting, translates deprecated keys and fills in the defaults (language model, introspection output dir, HTTP API port and host, Studio execute limits, pgvector index strategy, etc. — see `packages/config/src/defaults.ts`). A value of the wrong type fails to load with an error that names its config key: a boolean setting must be `true` or `false`, so the string `"false"` fails. `getAskDbRuntimeConfig()` returns the resolved settings, and the **runtime flat map** (and `aiEnv` for `@askdb/ai`) maps the same settings onto canonical environment variable names, in the same pass. `getAskDbRuntimeConfig()` never reads a setting back from a flat map.
53
53
 
54
54
  The `rag` block is optional. Omit it when you don't use retrieval: AskDB then uses the mock embedder and the in-memory store, as if `rag: { embedder: "mock", store: "memory", storeConfig: {} }` were set. Setting `ai.embedding` without the block is an error, since nothing would use that model.
55
55
 
@@ -86,17 +86,17 @@ const embeddingModel = config.ai.embedding
86
86
 
87
87
  ## API
88
88
 
89
- - `getAskDbRuntimeConfig()` — **primary API for library packages**. Returns a typed `AskDbRuntimeConfig` from the bootstrapped snapshot (`structured`, `flat`-derived fields, `ai.aiEnv` for `@askdb/core`, the resolved `ai.language` and `ai.embedding` sections, `rag.store` and `rag.storeConfig` (the vector store, `"memory"` when `rag` is omitted), and `deprecations`, the config's deprecation messages).
89
+ - `getAskDbRuntimeConfig()` — **primary API for library packages**. Returns a typed `AskDbRuntimeConfig` from the bootstrapped snapshot (`structured`, the settings resolved from it, `flat` and `ai.aiEnv` for `@askdb/ai`, the resolved `ai.language` and `ai.embedding` sections, `rag.store` and `rag.storeConfig` (the vector store, `"memory"` when `rag` is omitted), and `deprecations`, the config's deprecation messages).
90
90
  - `env(name)` / `requiredEnv(name)` — read `process.env` while authoring `askdb.config.*` only.
91
91
  - `isAskDbDebugEnabled()` — `true` when the `ASKDB_DEBUG` shell variable is `1` or `true`. Binaries use it to print stack traces; it reads `process.env` directly so it works even when the config fails to load.
92
92
  - `defineConfig(config)` — returns an `AskDbEnvProjection` with `config` (structured) and `entries` (flattened canonical map).
93
- - `flattenAskDbConfig(config)` — nested config → flat canonical map (translates deprecated keys, applies defaults for optional values).
93
+ - `flattenAskDbConfig(config)` — nested config → flat canonical map, for a child process's env. Resolves the config first, so it throws the same errors as `defineConfig`.
94
94
  - `bootstrapAskDbEnv(options?)` / `bootstrapAskDbRuntime` — load dotenv, load config, install the runtime snapshot.
95
95
  - `isAskDbRuntimeInitialized()` — `true` once the runtime snapshot is installed. Code that may run before or after its host's bootstrap uses it to call `bootstrapAskDbEnv()` only when needed, as `@askdb/http-api`'s `createAskDbHttpServer()` does. The snapshot is process-wide: every copy of `@askdb/config` in the process sees the same one.
96
96
  - `loadAskDbConfigProjection(cwd)` / `loadAskDbConfigProjectionSync(cwd)` — load projection without installing the singleton (advanced / tests).
97
97
  - `discoverAskDbConfigPath(cwd)` — returns the resolved config path, if any.
98
98
  - `mergeAskDbFlatIntoEnvMap(base, flat)` — merge AskDB flat entries into an env map for **child processes** (does not read `process.env` itself). Use `getAskDbRuntimeConfig().flat` as `flat` after bootstrap.
99
- - `setAskDbRuntimeForTests` / `resetAskDbRuntimeForTests` — test helpers for the runtime snapshot.
99
+ - `setAskDbRuntimeForTests(config)` / `resetAskDbRuntimeForTests()` — test helpers: install an authored `AskDbConfig` as `bootstrapAskDbEnv()` installs a loaded file, without reading the disk, and remove it.
100
100
 
101
101
  ## License
102
102
 
@@ -0,0 +1,31 @@
1
+ import type { AskDbAiReasoningConfig } from "./types.js";
2
+ /** Every setting a built-in provider connection can carry, besides its name. */
3
+ export declare const CONNECTION_FIELDS: readonly ["apiKey", "secondaryApiKey", "resourceName", "baseUrl", "apiVersion"];
4
+ export type ConnectionSettings = {
5
+ [Field in (typeof CONNECTION_FIELDS)[number]]?: string;
6
+ };
7
+ /** A provider connection after resolution: its settings, trimmed, plus its name. */
8
+ export type NormalizedAiConnection = ConnectionSettings & {
9
+ name: string;
10
+ };
11
+ /** Writes `value`, trimmed, under `key` unless it's unset or blank. */
12
+ export declare function setEnvKey(out: Record<string, string>, key: string, value: string | undefined): void;
13
+ /** The `ai.language` section as the env view needs it. */
14
+ export type AiLanguageEnvSection = {
15
+ provider: string;
16
+ connection: NormalizedAiConnection;
17
+ model: string | undefined;
18
+ modelFamily: string | undefined;
19
+ reasoning: AskDbAiReasoningConfig | undefined;
20
+ };
21
+ /** The `ai.embedding` section as the env view needs it. */
22
+ export type AiEmbeddingEnvSection = {
23
+ provider: string;
24
+ connection: NormalizedAiConnection;
25
+ model: string;
26
+ };
27
+ /** The env view of `ai.language`: its provider, its connection only, its model and reasoning. */
28
+ export declare function aiLanguageEnv(section: AiLanguageEnvSection): Record<string, string>;
29
+ /** The env view of `ai.embedding`: its provider, its connection only, and its model. Nothing from the language side. */
30
+ export declare function aiEmbeddingEnv(section: AiEmbeddingEnvSection): Record<string, string>;
31
+ //# sourceMappingURL=ai-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-env.d.ts","sourceRoot":"","sources":["../src/ai-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,gFAAgF;AAChF,eAAO,MAAM,iBAAiB,iFAAkF,CAAC;AAEjH,MAAM,MAAM,kBAAkB,GAAG;KAAG,KAAK,IAAI,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM;CAAE,CAAC;AAE5F,oFAAoF;AACpF,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,uEAAuE;AACvE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAKnG;AAuCD,0DAA0D;AAC1D,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,sBAAsB,GAAG,SAAS,CAAC;CAC/C,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAwBF,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOnF;AAED,wHAAwH;AACxH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMrF"}
package/dist/ai-env.js ADDED
@@ -0,0 +1,88 @@
1
+ /** Every setting a built-in provider connection can carry, besides its name. */
2
+ export const CONNECTION_FIELDS = ["apiKey", "secondaryApiKey", "resourceName", "baseUrl", "apiVersion"];
3
+ /** Writes `value`, trimmed, under `key` unless it's unset or blank. */
4
+ export function setEnvKey(out, key, value) {
5
+ if (value === undefined)
6
+ return;
7
+ const t = value.trim();
8
+ if (t === "")
9
+ return;
10
+ out[key] = t;
11
+ }
12
+ /** Writes a connection's settings under the env keys `provider`'s `@askdb/ai` adapter reads. */
13
+ function applyAiConnection(out, provider, connection) {
14
+ switch (provider) {
15
+ case "openai":
16
+ setEnvKey(out, "OPENAI_API_KEY", connection.apiKey);
17
+ setEnvKey(out, "OPENAI_BASE_URL", connection.baseUrl);
18
+ return;
19
+ case "anthropic":
20
+ setEnvKey(out, "ANTHROPIC_API_KEY", connection.apiKey);
21
+ setEnvKey(out, "ANTHROPIC_BASE_URL", connection.baseUrl);
22
+ return;
23
+ case "google":
24
+ setEnvKey(out, "GOOGLE_GENERATIVE_AI_API_KEY", connection.apiKey);
25
+ setEnvKey(out, "GOOGLE_AI_BASE_URL", connection.baseUrl);
26
+ return;
27
+ case "gateway":
28
+ setEnvKey(out, "AI_GATEWAY_API_KEY", connection.apiKey);
29
+ setEnvKey(out, "ASKDB_AI_BASE_URL", connection.baseUrl);
30
+ return;
31
+ case "azure":
32
+ case "foundry":
33
+ // `@askdb/core` treats `foundry` like Azure for env parsing.
34
+ setEnvKey(out, "AZURE_OPENAI_API_KEY", connection.apiKey);
35
+ setEnvKey(out, "AZURE_OPENAI_API_KEY_SECONDARY", connection.secondaryApiKey);
36
+ setEnvKey(out, "ASKDB_AI_AZURE_RESOURCE_NAME", connection.resourceName);
37
+ setEnvKey(out, "AZURE_OPENAI_BASE_URL", connection.baseUrl);
38
+ setEnvKey(out, "AZURE_OPENAI_API_VERSION", connection.apiVersion);
39
+ return;
40
+ default:
41
+ // Custom/third-party provider: the universal ASKDB_AI_* keys that @askdb/ai's
42
+ // resolveBaseConfig honors for every registered adapter. Works end to end only when the
43
+ // host registry contains an adapter with this provider name.
44
+ setEnvKey(out, "ASKDB_AI_API_KEY", connection.apiKey);
45
+ setEnvKey(out, "ASKDB_AI_BASE_URL", connection.baseUrl);
46
+ }
47
+ }
48
+ function applyLanguageModel(out, section) {
49
+ const { provider, model } = section;
50
+ if (provider === "openai") {
51
+ setEnvKey(out, "OPENAI_MODEL", model);
52
+ setEnvKey(out, "ASKDB_MODEL", model);
53
+ }
54
+ else if (provider === "azure" || provider === "foundry") {
55
+ setEnvKey(out, "AZURE_OPENAI_DEPLOYMENT", model);
56
+ setEnvKey(out, "AZURE_DEPLOYMENT_NAME", model);
57
+ setEnvKey(out, "ASKDB_AI_MODEL", model);
58
+ setEnvKey(out, "ASKDB_AI_AZURE_MODEL_FAMILY", section.modelFamily);
59
+ }
60
+ else {
61
+ setEnvKey(out, "ASKDB_AI_MODEL", model);
62
+ }
63
+ }
64
+ function applyReasoningAi(out, reasoning) {
65
+ if (!reasoning)
66
+ return;
67
+ setEnvKey(out, "ASKDB_AI_REASONING_EFFORT", reasoning.effort);
68
+ setEnvKey(out, "ASKDB_AI_REASONING_EFFORT_NL_TO_SQL", reasoning.nlToSql);
69
+ setEnvKey(out, "ASKDB_AI_REASONING_EFFORT_ENRICHMENT", reasoning.enrichment);
70
+ }
71
+ /** The env view of `ai.language`: its provider, its connection only, its model and reasoning. */
72
+ export function aiLanguageEnv(section) {
73
+ const out = {};
74
+ setEnvKey(out, "ASKDB_AI_PROVIDER", section.provider);
75
+ applyAiConnection(out, section.provider, section.connection);
76
+ applyLanguageModel(out, section);
77
+ applyReasoningAi(out, section.reasoning);
78
+ return out;
79
+ }
80
+ /** The env view of `ai.embedding`: its provider, its connection only, and its model. Nothing from the language side. */
81
+ export function aiEmbeddingEnv(section) {
82
+ const out = {};
83
+ setEnvKey(out, "ASKDB_AI_PROVIDER", section.provider);
84
+ applyAiConnection(out, section.provider, section.connection);
85
+ setEnvKey(out, "ASKDB_AI_EMBEDDING_MODEL", section.model);
86
+ return out;
87
+ }
88
+ //# sourceMappingURL=ai-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-env.js","sourceRoot":"","sources":["../src/ai-env.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  /**
2
- * Canonical defaults applied in {@link flattenAskDbConfig} when optional env-backed
3
- * fields are unset (missing, blank, or invalid after trim).
2
+ * Defaults the config resolver (`resolve.ts`) fills in when an optional field is unset.
4
3
  */
5
4
  export declare const DEFAULT_OPENAI_LANGUAGE_MODEL = "gpt-4o-mini";
6
5
  /** @deprecated Use DEFAULT_OPENAI_LANGUAGE_MODEL. Removed at 1.0. */
@@ -28,16 +27,12 @@ export declare const MAX_HTTP_API_REQUEST_TIMEOUT_MS = 2147483647;
28
27
  * model a legacy `rag.embedder: "openai"` config translates to. Removed at 1.0.
29
28
  */
30
29
  export declare const DEFAULT_RAG_EMBEDDING_MODEL = "text-embedding-3-small";
31
- /** Under the same visible tree as {@link DEFAULT_INTROSPECT_OUTPUT_DIR} (`./askdb/…`). */
32
- export declare const DEFAULT_RAG_FILE_BASE_PATH = "./askdb/rag";
33
30
  export declare const DEFAULT_MOCK_RAG_EMBEDDING_DIMENSIONS = 64;
34
31
  export declare const DEFAULT_PGVECTOR_INDEX_STRATEGY: "hnsw";
35
32
  /** Default per-query statement timeout for Studio execute (`studio.execute.timeoutMs`). */
36
33
  export declare const DEFAULT_STUDIO_EXECUTE_TIMEOUT_MS = 30000;
37
34
  /** Default row cap for Studio execute results (`studio.execute.maxRows`). */
38
35
  export declare const DEFAULT_STUDIO_EXECUTE_MAX_ROWS = 500;
39
- export declare const PGVECTOR_INDEX_STRATEGIES: readonly ["ivfflat", "hnsw", "none"];
40
- export type PgvectorIndexStrategyId = (typeof PGVECTOR_INDEX_STRATEGIES)[number];
41
36
  /**
42
37
  * The width earlier versions assumed for an embedding model: 3072 for `text-embedding-3-large`,
43
38
  * else 1536, whatever the provider.
@@ -46,12 +41,4 @@ export type PgvectorIndexStrategyId = (typeof PGVECTOR_INDEX_STRATEGIES)[number]
46
41
  * (`detectEmbeddingDimensions` in `@askdb/rag`). Removed at 1.0.
47
42
  */
48
43
  export declare function defaultRagEmbeddingDimensions(model: string): number;
49
- export declare function parsePositiveInteger(value: string | number | undefined): number | undefined;
50
- /**
51
- * Parse `httpApi.requestTimeoutMs` (or its flat key `ASKDB_HTTP_REQUEST_TIMEOUT_MS`).
52
- * Returns `undefined` when unset; throws naming `source` unless the value is a positive
53
- * integer no larger than {@link MAX_HTTP_API_REQUEST_TIMEOUT_MS}.
54
- */
55
- export declare function parseHttpApiRequestTimeoutMs(value: string | number | undefined, source: string): number | undefined;
56
- export declare function normalizePgvectorIndexStrategy(raw: string | undefined): PgvectorIndexStrategyId;
57
44
  //# sourceMappingURL=defaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,6BAA6B,gBAAgB,CAAC;AAC3D,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,gBAAgC,CAAC;AACvE,eAAO,MAAM,+BAA+B,gBAAgB,CAAC;AAC7D,eAAO,MAAM,gCAAgC,sBAAsB,CAAC;AACpE,wEAAwE;AACxE,eAAO,MAAM,4BAA4B,sBAAmC,CAAC;AAC7E,eAAO,MAAM,6BAA6B,qBAAqB,CAAC;AAChE,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,qBAAgC,CAAC;AACvE,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AACnE,sEAAsE;AACtE,eAAO,MAAM,0BAA0B,uBAAiC,CAAC;AACzE,eAAO,MAAM,6BAA6B,aAAa,CAAC;AACxD,iGAAiG;AACjG,eAAO,MAAM,mCAAmC,QAAS,CAAC;AAC1D;;;GAGG;AACH,eAAO,MAAM,+BAA+B,aAAgB,CAAC;AAC7D;;;GAGG;AACH,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AACpE,0FAA0F;AAC1F,eAAO,MAAM,0BAA0B,gBAAgB,CAAC;AACxD,eAAO,MAAM,qCAAqC,KAAK,CAAC;AACxD,eAAO,MAAM,+BAA+B,EAAG,MAAe,CAAC;AAC/D,2FAA2F;AAC3F,eAAO,MAAM,iCAAiC,QAAS,CAAC;AACxD,6EAA6E;AAC7E,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD,eAAO,MAAM,yBAAyB,sCAAuC,CAAC;AAC9E,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjF;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAU3F;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUnH;AAED,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,uBAAuB,CAO/F"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,6BAA6B,gBAAgB,CAAC;AAC3D,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,gBAAgC,CAAC;AACvE,eAAO,MAAM,+BAA+B,gBAAgB,CAAC;AAC7D,eAAO,MAAM,gCAAgC,sBAAsB,CAAC;AACpE,wEAAwE;AACxE,eAAO,MAAM,4BAA4B,sBAAmC,CAAC;AAC7E,eAAO,MAAM,6BAA6B,qBAAqB,CAAC;AAChE,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,qBAAgC,CAAC;AACvE,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AACnE,sEAAsE;AACtE,eAAO,MAAM,0BAA0B,uBAAiC,CAAC;AACzE,eAAO,MAAM,6BAA6B,aAAa,CAAC;AACxD,iGAAiG;AACjG,eAAO,MAAM,mCAAmC,QAAS,CAAC;AAC1D;;;GAGG;AACH,eAAO,MAAM,+BAA+B,aAAgB,CAAC;AAC7D;;;GAGG;AACH,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AACpE,eAAO,MAAM,qCAAqC,KAAK,CAAC;AACxD,eAAO,MAAM,+BAA+B,EAAG,MAAe,CAAC;AAC/D,2FAA2F;AAC3F,eAAO,MAAM,iCAAiC,QAAS,CAAC;AACxD,6EAA6E;AAC7E,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE"}
package/dist/defaults.js CHANGED
@@ -1,6 +1,5 @@
1
1
  /**
2
- * Canonical defaults applied in {@link flattenAskDbConfig} when optional env-backed
3
- * fields are unset (missing, blank, or invalid after trim).
2
+ * Defaults the config resolver (`resolve.ts`) fills in when an optional field is unset.
4
3
  */
5
4
  export const DEFAULT_OPENAI_LANGUAGE_MODEL = "gpt-4o-mini";
6
5
  /** @deprecated Use DEFAULT_OPENAI_LANGUAGE_MODEL. Removed at 1.0. */
@@ -28,15 +27,12 @@ export const MAX_HTTP_API_REQUEST_TIMEOUT_MS = 2_147_483_647;
28
27
  * model a legacy `rag.embedder: "openai"` config translates to. Removed at 1.0.
29
28
  */
30
29
  export const DEFAULT_RAG_EMBEDDING_MODEL = "text-embedding-3-small";
31
- /** Under the same visible tree as {@link DEFAULT_INTROSPECT_OUTPUT_DIR} (`./askdb/…`). */
32
- export const DEFAULT_RAG_FILE_BASE_PATH = "./askdb/rag";
33
30
  export const DEFAULT_MOCK_RAG_EMBEDDING_DIMENSIONS = 64;
34
31
  export const DEFAULT_PGVECTOR_INDEX_STRATEGY = "hnsw";
35
32
  /** Default per-query statement timeout for Studio execute (`studio.execute.timeoutMs`). */
36
33
  export const DEFAULT_STUDIO_EXECUTE_TIMEOUT_MS = 30_000;
37
34
  /** Default row cap for Studio execute results (`studio.execute.maxRows`). */
38
35
  export const DEFAULT_STUDIO_EXECUTE_MAX_ROWS = 500;
39
- export const PGVECTOR_INDEX_STRATEGIES = ["ivfflat", "hnsw", "none"];
40
36
  /**
41
37
  * The width earlier versions assumed for an embedding model: 3072 for `text-embedding-3-large`,
42
38
  * else 1536, whatever the provider.
@@ -47,41 +43,4 @@ export const PGVECTOR_INDEX_STRATEGIES = ["ivfflat", "hnsw", "none"];
47
43
  export function defaultRagEmbeddingDimensions(model) {
48
44
  return model.trim() === "text-embedding-3-large" ? 3072 : 1536;
49
45
  }
50
- export function parsePositiveInteger(value) {
51
- if (value === undefined)
52
- return undefined;
53
- if (typeof value === "number") {
54
- return Number.isInteger(value) && value > 0 ? value : undefined;
55
- }
56
- const t = value.trim();
57
- if (t === "")
58
- return undefined;
59
- const n = Number(t);
60
- if (!Number.isInteger(n) || n <= 0)
61
- return undefined;
62
- return n;
63
- }
64
- /**
65
- * Parse `httpApi.requestTimeoutMs` (or its flat key `ASKDB_HTTP_REQUEST_TIMEOUT_MS`).
66
- * Returns `undefined` when unset; throws naming `source` unless the value is a positive
67
- * integer no larger than {@link MAX_HTTP_API_REQUEST_TIMEOUT_MS}.
68
- */
69
- export function parseHttpApiRequestTimeoutMs(value, source) {
70
- if (value === undefined)
71
- return undefined;
72
- // A JavaScript config can pass any type; only numbers and numeric strings are parsed.
73
- const n = typeof value === "number" || typeof value === "string" ? parsePositiveInteger(value) : undefined;
74
- if (n === undefined || n > MAX_HTTP_API_REQUEST_TIMEOUT_MS) {
75
- throw new Error(`askdb.config: invalid ${source} ${JSON.stringify(value)} (expected a positive integer number of milliseconds, at most ${MAX_HTTP_API_REQUEST_TIMEOUT_MS}).`);
76
- }
77
- return n;
78
- }
79
- export function normalizePgvectorIndexStrategy(raw) {
80
- if (raw === undefined || raw.trim() === "")
81
- return DEFAULT_PGVECTOR_INDEX_STRATEGY;
82
- const v = raw.trim().toLowerCase();
83
- if (v === "ivfflat" || v === "hnsw" || v === "none")
84
- return v;
85
- throw new Error(`askdb.config: invalid rag.storeConfig.pgvector.indexStrategy "${raw}" (expected one of: ivfflat, hnsw, none).`);
86
- }
87
46
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,aAAa,CAAC;AAC3D,qEAAqE;AACrE,MAAM,CAAC,MAAM,yBAAyB,GAAG,6BAA6B,CAAC;AACvE,MAAM,CAAC,MAAM,+BAA+B,GAAG,aAAa,CAAC;AAC7D,MAAM,CAAC,MAAM,gCAAgC,GAAG,mBAAmB,CAAC;AACpE,wEAAwE;AACxE,MAAM,CAAC,MAAM,4BAA4B,GAAG,gCAAgC,CAAC;AAC7E,MAAM,CAAC,MAAM,6BAA6B,GAAG,kBAAkB,CAAC;AAChE,qEAAqE;AACrE,MAAM,CAAC,MAAM,yBAAyB,GAAG,6BAA6B,CAAC;AACvE,MAAM,CAAC,MAAM,8BAA8B,GAAG,oBAAoB,CAAC;AACnE,sEAAsE;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAG,8BAA8B,CAAC;AACzE,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC;AACxD,iGAAiG;AACjG,MAAM,CAAC,MAAM,mCAAmC,GAAG,MAAM,CAAC;AAC1D;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,aAAa,CAAC;AAC7D;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AACpE,MAAM,CAAC,MAAM,qCAAqC,GAAG,EAAE,CAAC;AACxD,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAe,CAAC;AAC/D,2FAA2F;AAC3F,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC;AACxD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAa;IACzD,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -5,14 +5,14 @@ export type { BootstrapAskDbEnvOptions } from "./bootstrap.js";
5
5
  export { env, requiredEnv } from "./env.js";
6
6
  export { isAskDbDebugEnabled } from "./diagnostics.js";
7
7
  export { getAskDbRuntimeConfig, } from "./runtime-config.js";
8
- export type { AskDbRuntimeConfig, AskDbRuntimeAiConfig, AskDbRuntimeAiSection, AskDbRuntimeIntrospectionConfig, AskDbRuntimeRagConfig, AskDbRuntimeRagEmbedderConfig, AskDbRuntimeLoggingConfig, AskDbRuntimeHttpApiConfig, AskDbRuntimeDevConfig, AskDbRuntimeModesConfig, AskDbRuntimeNlToSqlConfig, AskDbRuntimeStudioConfig, } from "./runtime-config.js";
8
+ export type { AskDbRuntimeConfig, AskDbRuntimeAiConfig, AskDbRuntimeAiSection, AskDbRuntimeIntrospectionConfig, AskDbRuntimeRagConfig, AskDbRuntimeRagEmbedderConfig, AskDbRuntimeLoggingConfig, AskDbRuntimeHttpApiConfig, AskDbRuntimeDevConfig, AskDbRuntimeModesConfig, AskDbRuntimeNlToSqlConfig, AskDbRuntimeStudioConfig, } from "./runtime-types.js";
9
9
  export { isAskDbRuntimeInitialized, mergeAskDbFlatIntoEnvMap, resetAskDbRuntimeForTests, setAskDbRuntimeForTests, } from "./runtime-store.js";
10
- export { DEFAULT_ANTHROPIC_CHAT_MODEL, DEFAULT_ANTHROPIC_LANGUAGE_MODEL, DEFAULT_AZURE_OPENAI_DEPLOYMENT, DEFAULT_GATEWAY_CHAT_MODEL, DEFAULT_GATEWAY_LANGUAGE_MODEL, DEFAULT_GOOGLE_CHAT_MODEL, DEFAULT_GOOGLE_LANGUAGE_MODEL, DEFAULT_HTTP_API_REQUEST_TIMEOUT_MS, DEFAULT_INTROSPECT_OUTPUT_DIR, DEFAULT_MOCK_RAG_EMBEDDING_DIMENSIONS, DEFAULT_OPENAI_CHAT_MODEL, DEFAULT_OPENAI_LANGUAGE_MODEL, DEFAULT_PGVECTOR_INDEX_STRATEGY, DEFAULT_RAG_EMBEDDING_MODEL, DEFAULT_RAG_FILE_BASE_PATH, DEFAULT_STUDIO_EXECUTE_MAX_ROWS, DEFAULT_STUDIO_EXECUTE_TIMEOUT_MS, defaultRagEmbeddingDimensions, } from "./defaults.js";
10
+ export { DEFAULT_ANTHROPIC_CHAT_MODEL, DEFAULT_ANTHROPIC_LANGUAGE_MODEL, DEFAULT_AZURE_OPENAI_DEPLOYMENT, DEFAULT_GATEWAY_CHAT_MODEL, DEFAULT_GATEWAY_LANGUAGE_MODEL, DEFAULT_GOOGLE_CHAT_MODEL, DEFAULT_GOOGLE_LANGUAGE_MODEL, DEFAULT_HTTP_API_REQUEST_TIMEOUT_MS, DEFAULT_INTROSPECT_OUTPUT_DIR, DEFAULT_MOCK_RAG_EMBEDDING_DIMENSIONS, DEFAULT_OPENAI_CHAT_MODEL, DEFAULT_OPENAI_LANGUAGE_MODEL, DEFAULT_PGVECTOR_INDEX_STRATEGY, DEFAULT_RAG_EMBEDDING_MODEL, DEFAULT_STUDIO_EXECUTE_MAX_ROWS, DEFAULT_STUDIO_EXECUTE_TIMEOUT_MS, defaultRagEmbeddingDimensions, } from "./defaults.js";
11
11
  export { defineConfig, isAskDbEnvProjection, ASKDB_ENV_PROJECTION } from "./projection.js";
12
12
  export type { AskDbEnvProjection } from "./projection.js";
13
13
  export { loadAskDbConfigProjection, loadAskDbConfigProjectionSync } from "./load-merge.js";
14
14
  export type { AskDbConfig, AskDbAiConfig, AskDbAiLanguageConfig, AskDbAiEmbeddingConfig, AskDbAiReasoningConfig, AiProviderConnections, AiConnections, AiNamedConnection, OpenaiConnection, AzureConnection, FoundryConnection, AnthropicConnection, GoogleConnection, GatewayConnection, CustomConnection, OpenaiAiConfig, AzureAiConfig, FoundryAiConfig, AnthropicAiConfig, GoogleAiConfig, GatewayAiConfig, OpenaiConfig, AzureConfig, FoundryConfig, AnthropicConfig, GoogleConfig, GatewayConfig, AskDbIntrospectionConfig, PostgresIntrospectionConfig, PrismaIntrospectionConfig, OpenaiRagEmbedderConfig, FileStoreConfig, MemoryStoreConfig, PgvectorStoreConfig, } from "./types.js";
15
- export { flattenAskDbConfig } from "./flatten.js";
15
+ export { flattenAskDbConfig } from "./projection.js";
16
16
  export { ASKDB_MODES_V1, ASKDB_LOG_LEVELS, ASKDB_RAG_EMBEDDERS, ASKDB_RAG_STORES, ASKDB_AI_PROVIDERS, ASKDB_INTROSPECTION_PROVIDERS, ASKDB_DIALECTS, ASKDB_STUDIO_EXECUTE_PROVIDERS, ASKDB_REASONING_EFFORTS, } from "./constants.js";
17
17
  export type { AskDbModeV1, AskDbLogLevel, AskDbRagEmbedder, AskDbRagStore, AskDbAiProviderId, AskDbIntrospectionProvider, AskDbDialectId, AskDbStudioExecuteProvider, AskDbReasoningEffort, } from "./constants.js";
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC3F,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,YAAY,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,+BAA+B,EAC/B,qBAAqB,EACrB,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,0BAA0B,EAC1B,8BAA8B,EAC9B,yBAAyB,EACzB,6BAA6B,EAC7B,mCAAmC,EACnC,6BAA6B,EAC7B,qCAAqC,EACrC,yBAAyB,EACzB,6BAA6B,EAC7B,+BAA+B,EAC/B,2BAA2B,EAC3B,0BAA0B,EAC1B,+BAA+B,EAC/B,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC3F,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAC3F,YAAY,EACV,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,WAAW,EACX,aAAa,EACb,eAAe,EACf,YAAY,EACZ,aAAa,EACb,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,6BAA6B,EAC7B,cAAc,EACd,8BAA8B,EAC9B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,0BAA0B,EAC1B,cAAc,EACd,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC3F,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,YAAY,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,+BAA+B,EAC/B,qBAAqB,EACrB,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,0BAA0B,EAC1B,8BAA8B,EAC9B,yBAAyB,EACzB,6BAA6B,EAC7B,mCAAmC,EACnC,6BAA6B,EAC7B,qCAAqC,EACrC,yBAAyB,EACzB,6BAA6B,EAC7B,+BAA+B,EAC/B,2BAA2B,EAC3B,+BAA+B,EAC/B,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC3F,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAC3F,YAAY,EACV,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,WAAW,EACX,aAAa,EACb,eAAe,EACf,YAAY,EACZ,aAAa,EACb,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,6BAA6B,EAC7B,cAAc,EACd,8BAA8B,EAC9B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,0BAA0B,EAC1B,cAAc,EACd,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -4,9 +4,9 @@ export { env, requiredEnv } from "./env.js";
4
4
  export { isAskDbDebugEnabled } from "./diagnostics.js";
5
5
  export { getAskDbRuntimeConfig, } from "./runtime-config.js";
6
6
  export { isAskDbRuntimeInitialized, mergeAskDbFlatIntoEnvMap, resetAskDbRuntimeForTests, setAskDbRuntimeForTests, } from "./runtime-store.js";
7
- export { DEFAULT_ANTHROPIC_CHAT_MODEL, DEFAULT_ANTHROPIC_LANGUAGE_MODEL, DEFAULT_AZURE_OPENAI_DEPLOYMENT, DEFAULT_GATEWAY_CHAT_MODEL, DEFAULT_GATEWAY_LANGUAGE_MODEL, DEFAULT_GOOGLE_CHAT_MODEL, DEFAULT_GOOGLE_LANGUAGE_MODEL, DEFAULT_HTTP_API_REQUEST_TIMEOUT_MS, DEFAULT_INTROSPECT_OUTPUT_DIR, DEFAULT_MOCK_RAG_EMBEDDING_DIMENSIONS, DEFAULT_OPENAI_CHAT_MODEL, DEFAULT_OPENAI_LANGUAGE_MODEL, DEFAULT_PGVECTOR_INDEX_STRATEGY, DEFAULT_RAG_EMBEDDING_MODEL, DEFAULT_RAG_FILE_BASE_PATH, DEFAULT_STUDIO_EXECUTE_MAX_ROWS, DEFAULT_STUDIO_EXECUTE_TIMEOUT_MS, defaultRagEmbeddingDimensions, } from "./defaults.js";
7
+ export { DEFAULT_ANTHROPIC_CHAT_MODEL, DEFAULT_ANTHROPIC_LANGUAGE_MODEL, DEFAULT_AZURE_OPENAI_DEPLOYMENT, DEFAULT_GATEWAY_CHAT_MODEL, DEFAULT_GATEWAY_LANGUAGE_MODEL, DEFAULT_GOOGLE_CHAT_MODEL, DEFAULT_GOOGLE_LANGUAGE_MODEL, DEFAULT_HTTP_API_REQUEST_TIMEOUT_MS, DEFAULT_INTROSPECT_OUTPUT_DIR, DEFAULT_MOCK_RAG_EMBEDDING_DIMENSIONS, DEFAULT_OPENAI_CHAT_MODEL, DEFAULT_OPENAI_LANGUAGE_MODEL, DEFAULT_PGVECTOR_INDEX_STRATEGY, DEFAULT_RAG_EMBEDDING_MODEL, DEFAULT_STUDIO_EXECUTE_MAX_ROWS, DEFAULT_STUDIO_EXECUTE_TIMEOUT_MS, defaultRagEmbeddingDimensions, } from "./defaults.js";
8
8
  export { defineConfig, isAskDbEnvProjection, ASKDB_ENV_PROJECTION } from "./projection.js";
9
9
  export { loadAskDbConfigProjection, loadAskDbConfigProjectionSync } from "./load-merge.js";
10
- export { flattenAskDbConfig } from "./flatten.js";
10
+ export { flattenAskDbConfig } from "./projection.js";
11
11
  export { ASKDB_MODES_V1, ASKDB_LOG_LEVELS, ASKDB_RAG_EMBEDDERS, ASKDB_RAG_STORES, ASKDB_AI_PROVIDERS, ASKDB_INTROSPECTION_PROVIDERS, ASKDB_DIALECTS, ASKDB_STUDIO_EXECUTE_PROVIDERS, ASKDB_REASONING_EFFORTS, } from "./constants.js";
12
12
  //# 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,OAAO,EAAE,iCAAiC,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE3F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAe7B,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,0BAA0B,EAC1B,8BAA8B,EAC9B,yBAAyB,EACzB,6BAA6B,EAC7B,mCAAmC,EACnC,6BAA6B,EAC7B,qCAAqC,EACrC,yBAAyB,EACzB,6BAA6B,EAC7B,+BAA+B,EAC/B,2BAA2B,EAC3B,0BAA0B,EAC1B,+BAA+B,EAC/B,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE3F,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAqC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,6BAA6B,EAC7B,cAAc,EACd,8BAA8B,EAC9B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE3F,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAe7B,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,0BAA0B,EAC1B,8BAA8B,EAC9B,yBAAyB,EACzB,6BAA6B,EAC7B,mCAAmC,EACnC,6BAA6B,EAC7B,qCAAqC,EACrC,yBAAyB,EACzB,6BAA6B,EAC7B,+BAA+B,EAC/B,2BAA2B,EAC3B,+BAA+B,EAC/B,iCAAiC,EACjC,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE3F,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAqC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,6BAA6B,EAC7B,cAAc,EACd,8BAA8B,EAC9B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { createJiti } from "jiti";
2
2
  import { pathToFileURL } from "node:url";
3
3
  import { discoverAskDbConfigPath } from "./discover.js";
4
- import { isPlainObject } from "./normalize.js";
4
+ import { isPlainObject } from "./resolve.js";
5
5
  import { defineConfig, isAskDbEnvProjection } from "./projection.js";
6
6
  const CONFIG_FORMS = 'export default { ... } or defineConfig({ ... }) from "@askdb/config"';
7
7
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"load-merge.js","sourceRoot":"","sources":["../src/load-merge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load-merge.js","sourceRoot":"","sources":["../src/load-merge.ts"],"names":[],"mappings":"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"}
@@ -29,5 +29,11 @@ export type AskDbEnvProjection = {
29
29
  * Throws an `askdb.config: …` error for a config that can't load.
30
30
  */
31
31
  export declare function defineConfig<const T extends AskDbConfig>(config: T): AskDbEnvProjection;
32
+ /**
33
+ * Flattens a nested {@link AskDbConfig} into the canonical env keys of the runtime snapshot
34
+ * (`AskDbEnvProjection.entries`), for example to build a child process's env. An optional key is
35
+ * written only when the config sets it. Throws the same `askdb.config: …` errors as `defineConfig`.
36
+ */
37
+ export declare function flattenAskDbConfig(config: AskDbConfig): Record<string, string>;
32
38
  export declare function isAskDbEnvProjection(value: unknown): value is AskDbEnvProjection;
33
39
  //# sourceMappingURL=projection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,eAAO,MAAM,oBAAoB,eAAoC,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC;IACtC,iFAAiF;IACjF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,CAAC,GAAG,kBAAkB,CAQvF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAYhF"}
1
+ {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,eAAO,MAAM,oBAAoB,eAAoC,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC;IACtC,iFAAiF;IACjF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,CAAC,GAAG,kBAAkB,CAQvF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE9E;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAYhF"}
@@ -1,5 +1,4 @@
1
- import { flattenNormalizedAskDbConfig } from "./flatten.js";
2
- import { normalizeAskDbConfig } from "./normalize.js";
1
+ import { resolveAskDbConfig } from "./resolve.js";
3
2
  export const ASKDB_ENV_PROJECTION = Symbol.for("askdb.envProjection");
4
3
  /**
5
4
  * Wraps a nested {@link AskDbConfig} for bootstrap merge. Check the object with TypeScript’s
@@ -19,14 +18,22 @@ export const ASKDB_ENV_PROJECTION = Symbol.for("askdb.envProjection");
19
18
  * Throws an `askdb.config: …` error for a config that can't load.
20
19
  */
21
20
  export function defineConfig(config) {
22
- const { config: normalized, deprecations } = normalizeAskDbConfig(config);
21
+ const { flat, deprecations } = resolveAskDbConfig(config);
23
22
  return {
24
23
  [ASKDB_ENV_PROJECTION]: true,
25
24
  config,
26
- entries: flattenNormalizedAskDbConfig(normalized),
25
+ entries: flat,
27
26
  deprecations,
28
27
  };
29
28
  }
29
+ /**
30
+ * Flattens a nested {@link AskDbConfig} into the canonical env keys of the runtime snapshot
31
+ * (`AskDbEnvProjection.entries`), for example to build a child process's env. An optional key is
32
+ * written only when the config sets it. Throws the same `askdb.config: …` errors as `defineConfig`.
33
+ */
34
+ export function flattenAskDbConfig(config) {
35
+ return resolveAskDbConfig(config).flat;
36
+ }
30
37
  export function isAskDbEnvProjection(value) {
31
38
  return (typeof value === "object" &&
32
39
  value !== null &&
@@ -1 +1 @@
1
- {"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AActE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,YAAY,CAA8B,MAAS;IACjE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC1E,OAAO;QACL,CAAC,oBAAoB,CAAC,EAAE,IAAI;QAC5B,MAAM;QACN,OAAO,EAAE,4BAA4B,CAAC,UAAU,CAAC;QACjD,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,oBAAoB,IAAI,KAAK;QAC5B,KAA4B,CAAC,oBAAoB,CAAC,KAAK,IAAI;QAC5D,OAAQ,KAA4B,CAAC,OAAO,KAAK,QAAQ;QACxD,KAA4B,CAAC,OAAO,KAAK,IAAI;QAC9C,QAAQ,IAAI,KAAK;QACjB,OAAQ,KAA4B,CAAC,MAAM,KAAK,QAAQ;QACvD,KAA4B,CAAC,MAAM,KAAK,IAAI,CAC9C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AActE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,YAAY,CAA8B,MAAS;IACjE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC1D,OAAO;QACL,CAAC,oBAAoB,CAAC,EAAE,IAAI;QAC5B,MAAM;QACN,OAAO,EAAE,IAAI;QACb,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAmB;IACpD,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,oBAAoB,IAAI,KAAK;QAC5B,KAA4B,CAAC,oBAAoB,CAAC,KAAK,IAAI;QAC5D,OAAQ,KAA4B,CAAC,OAAO,KAAK,QAAQ;QACxD,KAA4B,CAAC,OAAO,KAAK,IAAI;QAC9C,QAAQ,IAAI,KAAK;QACjB,OAAQ,KAA4B,CAAC,MAAM,KAAK,QAAQ;QACvD,KAA4B,CAAC,MAAM,KAAK,IAAI,CAC9C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { AskDbRuntimeConfig, AskDbRuntimeAiConfig } from "./runtime-types.js";
2
+ import type { AskDbConfig } from "./types.js";
3
+ /**
4
+ * The config resolver: the one place that checks, translates and defaults every `askdb.config`
5
+ * setting. Each setting's runtime value and its flat-map key come out of the same pass, so
6
+ * `defineConfig` and `getAskDbRuntimeConfig` agree, and `@askdb/config` never reads a setting
7
+ * back from a flat map.
8
+ */
9
+ /**
10
+ * Every {@link AskDbRuntimeConfig} section, checked, translated and defaulted. Not `structured`,
11
+ * `flat` or `ai.aiEnv`, which is built from `flat`.
12
+ */
13
+ export type ResolvedAskDbConfig = Omit<AskDbRuntimeConfig, "structured" | "flat" | "ai" | "deprecations"> & {
14
+ ai: Omit<AskDbRuntimeAiConfig, "aiEnv">;
15
+ };
16
+ export declare function isMember<T extends readonly string[]>(value: unknown, allowed: T): value is T[number];
17
+ /**
18
+ * A plain `{ ... }` object: not null, an array, a Promise or a module namespace. Read through
19
+ * `Object.prototype.toString`, so an object from another realm still counts.
20
+ */
21
+ export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
22
+ /** What {@link resolveAskDbConfig} returns. */
23
+ export type AskDbConfigResolution = {
24
+ resolved: ResolvedAskDbConfig;
25
+ /** The flat map: each setting's canonical env key, written in the same pass that checks it. */
26
+ flat: Record<string, string>;
27
+ deprecations: string[];
28
+ };
29
+ /**
30
+ * Resolves every setting of an authored config: checks it, translates deprecated keys and fills in
31
+ * defaults, and writes its flat key. Pure: it reads no environment. Returns one deprecation
32
+ * message per legacy key in use. Throws `askdb.config: …` errors that name the config key for a
33
+ * config that can't load (the loader adds the file name).
34
+ */
35
+ export declare function resolveAskDbConfig(config: AskDbConfig): AskDbConfigResolution;
36
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EACV,kBAAkB,EAKlB,oBAAoB,EAGrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAA0B,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG,cAAc,CAAC,GAAG;IAC1G,EAAE,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;CACzC,CAAC;AAkEF,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,CAEpG;AAMD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE9E;AAo3BD,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,+FAA+F;IAC/F,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,qBAAqB,CA6B7E"}