@askdb/config 1.0.0-beta.16 → 1.0.0-beta.18
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 +15 -4
- package/dist/ai-env.d.ts +31 -0
- package/dist/ai-env.d.ts.map +1 -0
- package/dist/ai-env.js +88 -0
- package/dist/ai-env.js.map +1 -0
- package/dist/bootstrap.d.ts +6 -4
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +6 -17
- package/dist/bootstrap.js.map +1 -1
- package/dist/defaults.d.ts +7 -20
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +7 -58
- package/dist/defaults.js.map +1 -1
- package/dist/env.d.ts +2 -1
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +2 -1
- package/dist/env.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/load-merge.js +1 -1
- package/dist/load-merge.js.map +1 -1
- package/dist/projection.d.ts +12 -2
- package/dist/projection.d.ts.map +1 -1
- package/dist/projection.js +18 -6
- package/dist/projection.js.map +1 -1
- package/dist/resolve.d.ts +36 -0
- package/dist/resolve.d.ts.map +1 -0
- package/dist/{normalize.js → resolve.js} +375 -8
- package/dist/resolve.js.map +1 -0
- package/dist/runtime-config.d.ts +5 -173
- package/dist/runtime-config.d.ts.map +1 -1
- package/dist/runtime-config.js +18 -222
- package/dist/runtime-config.js.map +1 -1
- package/dist/runtime-store.d.ts +9 -6
- package/dist/runtime-store.d.ts.map +1 -1
- package/dist/runtime-store.js +9 -11
- package/dist/runtime-store.js.map +1 -1
- package/dist/runtime-types.d.ts +176 -0
- package/dist/runtime-types.d.ts.map +1 -0
- package/dist/runtime-types.js +2 -0
- package/dist/runtime-types.js.map +1 -0
- package/dist/scaffold/ai.d.ts +3 -0
- package/dist/scaffold/ai.d.ts.map +1 -1
- package/dist/scaffold/ai.js +3 -0
- package/dist/scaffold/ai.js.map +1 -1
- package/dist/scaffold/index.d.ts +12 -3
- package/dist/scaffold/index.d.ts.map +1 -1
- package/dist/scaffold/index.js +10 -3
- package/dist/scaffold/index.js.map +1 -1
- package/dist/scaffold/package-manager.d.ts +93 -0
- package/dist/scaffold/package-manager.d.ts.map +1 -0
- package/dist/scaffold/package-manager.js +200 -0
- package/dist/scaffold/package-manager.js.map +1 -0
- package/dist/scaffold/plan.d.ts +110 -0
- package/dist/scaffold/plan.d.ts.map +1 -0
- package/dist/scaffold/plan.js +301 -0
- package/dist/scaffold/plan.js.map +1 -0
- package/dist/types.d.ts +6 -13
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/flatten.d.ts +0 -14
- package/dist/flatten.d.ts.map +0 -1
- package/dist/flatten.js +0 -255
- package/dist/flatten.js.map +0 -1
- package/dist/normalize.d.ts +0 -58
- package/dist/normalize.d.ts.map +0 -1
- 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`
|
|
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,28 @@ 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
|
|
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
|
|
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
|
|
99
|
+
- `setAskDbRuntimeForTests(config)` / `resetAskDbRuntimeForTests()` — test helpers: install an authored `AskDbConfig` as `bootstrapAskDbEnv()` installs a loaded file, without reading the disk, and remove it.
|
|
100
|
+
|
|
101
|
+
## `@askdb/config/scaffold`
|
|
102
|
+
|
|
103
|
+
Tooling for `askdb init` and AskDB Studio's setup wizard. It is experimental, like Studio: a minor release of `@askdb/config` may change it (ADR 0030). Your own `askdb.config.ts` never needs it.
|
|
104
|
+
|
|
105
|
+
- `planAskDbScaffold(answers, versions)` — a new project's `askdb.config.ts` source, `.env.example`, the env vars the config reads, and the packages to install, from its answers (engine, connection variable or SQLite file, schema directory, `ai`, RAG store, Studio execute). Pure; it throws `AskDbScaffoldInputError`, with the answer's `field`, for an env var name that isn't uppercase POSIX (`^[A-Z_][A-Z0-9_]*$`), a control character in a path, an unknown id, or a missing answer. The caller supplies the defaults.
|
|
106
|
+
- `isAskDbScaffoldEnvName(name)` — the planner's env var name rule: POSIX, uppercase (`^[A-Z_][A-Z0-9_]*$`).
|
|
107
|
+
- `renderAskDbAiConfigScaffold(input)` — the `ai` block of a new `askdb.config.ts`, plus the env vars it reads.
|
|
108
|
+
- `detectPackageManager(dir, env?)` — the package manager for `dir`: a lockfile in `dir` or a parent, then the nearest `package.json`'s `packageManager` or `devEngines.packageManager`, then `npm_config_user_agent`, then npm.
|
|
109
|
+
- `findNearestPackageJsonDir`, `isLikelyWorkspaceRoot`, `lockfilePackageManager`, `packageManagerAddArgs`, `supportedBuildApprovals`, `formatInstallCommand` — project and install-command helpers.
|
|
110
|
+
- `packageManagerSpawnSpec(pm, args, platform?)` — how to spawn the package manager: allowlisted arguments, and `shell: true` on Windows, where package managers are `.cmd` shims.
|
|
100
111
|
|
|
101
112
|
## License
|
|
102
113
|
|
package/dist/ai-env.d.ts
ADDED
|
@@ -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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"}
|
package/dist/bootstrap.d.ts
CHANGED
|
@@ -2,13 +2,15 @@ export type BootstrapAskDbEnvOptions = {
|
|
|
2
2
|
/** Working directory for `.env` default path and config discovery. Defaults to `process.cwd()`. */
|
|
3
3
|
cwd?: string;
|
|
4
4
|
/**
|
|
5
|
-
* Explicit `.env` file paths to try in order.
|
|
6
|
-
* When
|
|
5
|
+
* Explicit `.env` file paths to try in order. The first one that exists and loads wins; one that
|
|
6
|
+
* exists but fails to load is skipped without a report. When none loads, the `.env` in the
|
|
7
|
+
* process's working directory is tried. When omitted, loads `${cwd}/.env` only.
|
|
7
8
|
*/
|
|
8
9
|
dotenvCandidatePaths?: readonly string[];
|
|
9
10
|
/**
|
|
10
|
-
* When `true` (default),
|
|
11
|
-
*
|
|
11
|
+
* When `true` (default), an error loading `${cwd}/.env`, or the fallback `.env` after the
|
|
12
|
+
* candidates, other than a missing file, is logged to stderr and `process.exitCode` is set to `1`.
|
|
13
|
+
* Set `false` to throw instead. A candidate that fails to load is skipped, not reported.
|
|
12
14
|
*/
|
|
13
15
|
dotenvNonFatal?: boolean;
|
|
14
16
|
};
|
package/dist/bootstrap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAuBA,MAAM,MAAM,wBAAwB,GAAG;IACrC,mGAAmG;IACnG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAuBA,MAAM,MAAM,wBAAwB,GAAG;IACrC,mGAAmG;IACnG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAeF;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAwCA;AAED,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,0BAAoB,CAAC"}
|
package/dist/bootstrap.js
CHANGED
|
@@ -3,7 +3,7 @@ import { existsSync } from "node:fs";
|
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { loadAskDbConfigProjectionSync } from "./load-merge.js";
|
|
5
5
|
import { setAskDbRuntime } from "./runtime-store.js";
|
|
6
|
-
/** dotenv
|
|
6
|
+
/** dotenv logs the keys it injects unless `quiet` is set; bootstrap stays silent. */
|
|
7
7
|
const DOTENV_LOAD_OPTIONS = { quiet: true };
|
|
8
8
|
/** `process.emitWarning` code for a deprecated `askdb.config` key. */
|
|
9
9
|
const CONFIG_DEPRECATION_CODE = "ASKDB_CONFIG_DEPRECATED";
|
|
@@ -22,7 +22,7 @@ function handleDotenvError(error, nonFatal) {
|
|
|
22
22
|
const code = typeof err.code === "string" ? err.code : undefined;
|
|
23
23
|
const message = typeof err.message === "string" ? err.message : String(error);
|
|
24
24
|
if (code === "ENOENT")
|
|
25
|
-
return;
|
|
25
|
+
return; // A missing `.env` is normal.
|
|
26
26
|
if (nonFatal) {
|
|
27
27
|
console.error(`Failed to load .env: ${message}`);
|
|
28
28
|
process.exitCode = 1;
|
|
@@ -47,18 +47,16 @@ export function bootstrapAskDbEnv(options = {}) {
|
|
|
47
47
|
const nonFatal = options.dotenvNonFatal ?? true;
|
|
48
48
|
let dotenvPath;
|
|
49
49
|
if (options.dotenvCandidatePaths && options.dotenvCandidatePaths.length > 0) {
|
|
50
|
-
let loaded = false;
|
|
51
50
|
for (const path of options.dotenvCandidatePaths) {
|
|
52
51
|
if (!existsSync(path))
|
|
53
52
|
continue;
|
|
54
53
|
const { error } = dotenv.config({ ...DOTENV_LOAD_OPTIONS, path });
|
|
55
54
|
if (!error) {
|
|
56
|
-
loaded = true;
|
|
57
55
|
dotenvPath = path;
|
|
58
56
|
break;
|
|
59
57
|
}
|
|
60
58
|
}
|
|
61
|
-
if (
|
|
59
|
+
if (dotenvPath === undefined) {
|
|
62
60
|
const { error } = dotenv.config(DOTENV_LOAD_OPTIONS);
|
|
63
61
|
if (error)
|
|
64
62
|
handleDotenvError(error, nonFatal);
|
|
@@ -67,19 +65,10 @@ export function bootstrapAskDbEnv(options = {}) {
|
|
|
67
65
|
else {
|
|
68
66
|
const path = join(cwd, ".env");
|
|
69
67
|
const { error } = dotenv.config({ ...DOTENV_LOAD_OPTIONS, path });
|
|
70
|
-
if (error)
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
if (code === "ENOENT") {
|
|
74
|
-
// Missing `.env` is normal.
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
handleDotenvError(error, nonFatal);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
68
|
+
if (error)
|
|
69
|
+
handleDotenvError(error, nonFatal);
|
|
70
|
+
else
|
|
81
71
|
dotenvPath = path;
|
|
82
|
-
}
|
|
83
72
|
}
|
|
84
73
|
const { path: configPath, projection } = loadAskDbConfigProjectionSync(cwd);
|
|
85
74
|
if (!configPath || !projection) {
|
package/dist/bootstrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,qFAAqF;AACrF,MAAM,mBAAmB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAW,CAAC;AAErD,sEAAsE;AACtE,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAE1D,wFAAwF;AACxF,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE9C,SAAS,sBAAsB,CAAC,YAA2C;IACzE,KAAK,MAAM,OAAO,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;QACzC,IAAI,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QAC/C,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAmBD,SAAS,iBAAiB,CAAC,KAAc,EAAE,QAA6B;IACtE,MAAM,GAAG,GAAG,KAA8C,CAAC;IAC3D,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9E,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,8BAA8B;IAC7D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAoC,EAAE;IAItE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;IAChD,IAAI,UAA8B,CAAC;IAEnC,IAAI,OAAO,CAAC,oBAAoB,IAAI,OAAO,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5E,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,UAAU,GAAG,IAAI,CAAC;gBAClB,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACrD,IAAI,KAAK;gBAAE,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,KAAK;YAAE,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;;YACzC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAC;IAC5E,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,oDAAoD,GAAG,IAAI;YACzD,kFAAkF,CACrF,CAAC;IACJ,CAAC;IAED,eAAe,CAAC;QACd,UAAU,EAAE,UAAU,CAAC,MAAM;QAC7B,IAAI,EAAE,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE;KAChC,CAAC,CAAC;IACH,sBAAsB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAEhD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpC,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC"}
|
package/dist/defaults.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
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. */
|
|
@@ -16,6 +15,10 @@ export declare const DEFAULT_GATEWAY_LANGUAGE_MODEL = "openai/gpt-4o-mini";
|
|
|
16
15
|
/** @deprecated Use DEFAULT_GATEWAY_LANGUAGE_MODEL. Removed at 1.0. */
|
|
17
16
|
export declare const DEFAULT_GATEWAY_CHAT_MODEL = "openai/gpt-4o-mini";
|
|
18
17
|
export declare const DEFAULT_INTROSPECT_OUTPUT_DIR = "./askdb/";
|
|
18
|
+
/** The default `httpApi.listen.port`. */
|
|
19
|
+
export declare const DEFAULT_HTTP_API_PORT = 3000;
|
|
20
|
+
/** The default `httpApi.listen.host`. */
|
|
21
|
+
export declare const DEFAULT_HTTP_API_HOST = "127.0.0.1";
|
|
19
22
|
/** Default model-call timeout for `@askdb/http-api` `POST /ask` (`httpApi.requestTimeoutMs`). */
|
|
20
23
|
export declare const DEFAULT_HTTP_API_REQUEST_TIMEOUT_MS = 60000;
|
|
21
24
|
/**
|
|
@@ -25,7 +28,8 @@ export declare const DEFAULT_HTTP_API_REQUEST_TIMEOUT_MS = 60000;
|
|
|
25
28
|
export declare const MAX_HTTP_API_REQUEST_TIMEOUT_MS = 2147483647;
|
|
26
29
|
/**
|
|
27
30
|
* @deprecated AskDB has no default embedding model: set `ai.embedding.model`. This is only the
|
|
28
|
-
* model a legacy `rag.embedder
|
|
31
|
+
* model a legacy `rag.embedder` (`"openai"`, or `"ai-sdk"` on openai, azure or foundry) translates
|
|
32
|
+
* to when no model is set. Removed at 1.0.
|
|
29
33
|
*/
|
|
30
34
|
export declare const DEFAULT_RAG_EMBEDDING_MODEL = "text-embedding-3-small";
|
|
31
35
|
export declare const DEFAULT_MOCK_RAG_EMBEDDING_DIMENSIONS = 64;
|
|
@@ -34,8 +38,6 @@ export declare const DEFAULT_PGVECTOR_INDEX_STRATEGY: "hnsw";
|
|
|
34
38
|
export declare const DEFAULT_STUDIO_EXECUTE_TIMEOUT_MS = 30000;
|
|
35
39
|
/** Default row cap for Studio execute results (`studio.execute.maxRows`). */
|
|
36
40
|
export declare const DEFAULT_STUDIO_EXECUTE_MAX_ROWS = 500;
|
|
37
|
-
export declare const PGVECTOR_INDEX_STRATEGIES: readonly ["ivfflat", "hnsw", "none"];
|
|
38
|
-
export type PgvectorIndexStrategyId = (typeof PGVECTOR_INDEX_STRATEGIES)[number];
|
|
39
41
|
/**
|
|
40
42
|
* The width earlier versions assumed for an embedding model: 3072 for `text-embedding-3-large`,
|
|
41
43
|
* else 1536, whatever the provider.
|
|
@@ -44,19 +46,4 @@ export type PgvectorIndexStrategyId = (typeof PGVECTOR_INDEX_STRATEGIES)[number]
|
|
|
44
46
|
* (`detectEmbeddingDimensions` in `@askdb/rag`). Removed at 1.0.
|
|
45
47
|
*/
|
|
46
48
|
export declare function defaultRagEmbeddingDimensions(model: string): number;
|
|
47
|
-
export declare function parsePositiveInteger(value: string | number | undefined): number | undefined;
|
|
48
|
-
/**
|
|
49
|
-
* Parse `httpApi.requestTimeoutMs` (or its flat key `ASKDB_HTTP_REQUEST_TIMEOUT_MS`).
|
|
50
|
-
* Returns `undefined` when unset; throws naming `source` unless the value is a positive
|
|
51
|
-
* integer no larger than {@link MAX_HTTP_API_REQUEST_TIMEOUT_MS}.
|
|
52
|
-
*/
|
|
53
|
-
export declare function parseHttpApiRequestTimeoutMs(value: string | number | undefined, source: string): number | undefined;
|
|
54
|
-
/**
|
|
55
|
-
* Parse `httpApi.listen.port` (or its flat key `PORT`). Returns `undefined` when unset or `NaN`
|
|
56
|
-
* (`Number(env("PORT"))` with `PORT` unset), as Studio does for `studio.listen.port`. Port `0`
|
|
57
|
-
* asks the OS for a free port. Throws naming `source` for anything but an integer from 0 to
|
|
58
|
-
* 65535, or a string holding one.
|
|
59
|
-
*/
|
|
60
|
-
export declare function parseHttpApiListenPort(value: unknown, source: string): number | undefined;
|
|
61
|
-
export declare function normalizePgvectorIndexStrategy(raw: string | undefined): PgvectorIndexStrategyId;
|
|
62
49
|
//# sourceMappingURL=defaults.d.ts.map
|
package/dist/defaults.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA
|
|
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,yCAAyC;AACzC,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,yCAAyC;AACzC,eAAO,MAAM,qBAAqB,cAAc,CAAC;AACjD,iGAAiG;AACjG,eAAO,MAAM,mCAAmC,QAAS,CAAC;AAC1D;;;GAGG;AACH,eAAO,MAAM,+BAA+B,aAAgB,CAAC;AAC7D;;;;GAIG;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
|
-
*
|
|
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. */
|
|
@@ -16,6 +15,10 @@ export const DEFAULT_GATEWAY_LANGUAGE_MODEL = "openai/gpt-4o-mini";
|
|
|
16
15
|
/** @deprecated Use DEFAULT_GATEWAY_LANGUAGE_MODEL. Removed at 1.0. */
|
|
17
16
|
export const DEFAULT_GATEWAY_CHAT_MODEL = DEFAULT_GATEWAY_LANGUAGE_MODEL;
|
|
18
17
|
export const DEFAULT_INTROSPECT_OUTPUT_DIR = "./askdb/";
|
|
18
|
+
/** The default `httpApi.listen.port`. */
|
|
19
|
+
export const DEFAULT_HTTP_API_PORT = 3000;
|
|
20
|
+
/** The default `httpApi.listen.host`. */
|
|
21
|
+
export const DEFAULT_HTTP_API_HOST = "127.0.0.1";
|
|
19
22
|
/** Default model-call timeout for `@askdb/http-api` `POST /ask` (`httpApi.requestTimeoutMs`). */
|
|
20
23
|
export const DEFAULT_HTTP_API_REQUEST_TIMEOUT_MS = 60_000;
|
|
21
24
|
/**
|
|
@@ -25,7 +28,8 @@ export const DEFAULT_HTTP_API_REQUEST_TIMEOUT_MS = 60_000;
|
|
|
25
28
|
export const MAX_HTTP_API_REQUEST_TIMEOUT_MS = 2_147_483_647;
|
|
26
29
|
/**
|
|
27
30
|
* @deprecated AskDB has no default embedding model: set `ai.embedding.model`. This is only the
|
|
28
|
-
* model a legacy `rag.embedder
|
|
31
|
+
* model a legacy `rag.embedder` (`"openai"`, or `"ai-sdk"` on openai, azure or foundry) translates
|
|
32
|
+
* to when no model is set. Removed at 1.0.
|
|
29
33
|
*/
|
|
30
34
|
export const DEFAULT_RAG_EMBEDDING_MODEL = "text-embedding-3-small";
|
|
31
35
|
export const DEFAULT_MOCK_RAG_EMBEDDING_DIMENSIONS = 64;
|
|
@@ -34,7 +38,6 @@ export const DEFAULT_PGVECTOR_INDEX_STRATEGY = "hnsw";
|
|
|
34
38
|
export const DEFAULT_STUDIO_EXECUTE_TIMEOUT_MS = 30_000;
|
|
35
39
|
/** Default row cap for Studio execute results (`studio.execute.maxRows`). */
|
|
36
40
|
export const DEFAULT_STUDIO_EXECUTE_MAX_ROWS = 500;
|
|
37
|
-
export const PGVECTOR_INDEX_STRATEGIES = ["ivfflat", "hnsw", "none"];
|
|
38
41
|
/**
|
|
39
42
|
* The width earlier versions assumed for an embedding model: 3072 for `text-embedding-3-large`,
|
|
40
43
|
* else 1536, whatever the provider.
|
|
@@ -45,58 +48,4 @@ export const PGVECTOR_INDEX_STRATEGIES = ["ivfflat", "hnsw", "none"];
|
|
|
45
48
|
export function defaultRagEmbeddingDimensions(model) {
|
|
46
49
|
return model.trim() === "text-embedding-3-large" ? 3072 : 1536;
|
|
47
50
|
}
|
|
48
|
-
export function parsePositiveInteger(value) {
|
|
49
|
-
if (value === undefined)
|
|
50
|
-
return undefined;
|
|
51
|
-
if (typeof value === "number") {
|
|
52
|
-
return Number.isInteger(value) && value > 0 ? value : undefined;
|
|
53
|
-
}
|
|
54
|
-
const t = value.trim();
|
|
55
|
-
if (t === "")
|
|
56
|
-
return undefined;
|
|
57
|
-
const n = Number(t);
|
|
58
|
-
if (!Number.isInteger(n) || n <= 0)
|
|
59
|
-
return undefined;
|
|
60
|
-
return n;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Parse `httpApi.requestTimeoutMs` (or its flat key `ASKDB_HTTP_REQUEST_TIMEOUT_MS`).
|
|
64
|
-
* Returns `undefined` when unset; throws naming `source` unless the value is a positive
|
|
65
|
-
* integer no larger than {@link MAX_HTTP_API_REQUEST_TIMEOUT_MS}.
|
|
66
|
-
*/
|
|
67
|
-
export function parseHttpApiRequestTimeoutMs(value, source) {
|
|
68
|
-
if (value === undefined)
|
|
69
|
-
return undefined;
|
|
70
|
-
// A JavaScript config can pass any type; only numbers and numeric strings are parsed.
|
|
71
|
-
const n = typeof value === "number" || typeof value === "string" ? parsePositiveInteger(value) : undefined;
|
|
72
|
-
if (n === undefined || n > MAX_HTTP_API_REQUEST_TIMEOUT_MS) {
|
|
73
|
-
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}).`);
|
|
74
|
-
}
|
|
75
|
-
return n;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Parse `httpApi.listen.port` (or its flat key `PORT`). Returns `undefined` when unset or `NaN`
|
|
79
|
-
* (`Number(env("PORT"))` with `PORT` unset), as Studio does for `studio.listen.port`. Port `0`
|
|
80
|
-
* asks the OS for a free port. Throws naming `source` for anything but an integer from 0 to
|
|
81
|
-
* 65535, or a string holding one.
|
|
82
|
-
*/
|
|
83
|
-
export function parseHttpApiListenPort(value, source) {
|
|
84
|
-
if (value === undefined || (typeof value === "number" && Number.isNaN(value)))
|
|
85
|
-
return undefined;
|
|
86
|
-
const text = typeof value === "string" ? value.trim() : undefined;
|
|
87
|
-
// `Number("")` is 0, so a blank string is checked before it's converted.
|
|
88
|
-
const port = typeof value === "number" ? value : text ? Number(text) : NaN;
|
|
89
|
-
if (!Number.isInteger(port) || port < 0 || port > 65535) {
|
|
90
|
-
throw new Error(`askdb.config: invalid ${source} ${typeof value === "string" ? JSON.stringify(value) : String(value)} (expected an integer from 0 to 65535).`);
|
|
91
|
-
}
|
|
92
|
-
return port;
|
|
93
|
-
}
|
|
94
|
-
export function normalizePgvectorIndexStrategy(raw) {
|
|
95
|
-
if (raw === undefined || raw.trim() === "")
|
|
96
|
-
return DEFAULT_PGVECTOR_INDEX_STRATEGY;
|
|
97
|
-
const v = raw.trim().toLowerCase();
|
|
98
|
-
if (v === "ivfflat" || v === "hnsw" || v === "none")
|
|
99
|
-
return v;
|
|
100
|
-
throw new Error(`askdb.config: invalid rag.storeConfig.pgvector.indexStrategy "${raw}" (expected one of: ivfflat, hnsw, none).`);
|
|
101
|
-
}
|
|
102
51
|
//# sourceMappingURL=defaults.js.map
|
package/dist/defaults.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA
|
|
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,yCAAyC;AACzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC1C,yCAAyC;AACzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC;AACjD,iGAAiG;AACjG,MAAM,CAAC,MAAM,mCAAmC,GAAG,MAAM,CAAC;AAC1D;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,aAAa,CAAC;AAC7D;;;;GAIG;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/env.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Read `process.env[name]`. Returns `undefined` when missing or blank (after trim).
|
|
3
|
-
* Use in `askdb.config.*` for every env-backed value;
|
|
3
|
+
* Use in `askdb.config.*` for every env-backed value; an unset value takes AskDB's default when the
|
|
4
|
+
* config is resolved (see `getAskDbRuntimeConfig`).
|
|
4
5
|
*/
|
|
5
6
|
export declare function env(name: string): string | undefined;
|
|
6
7
|
/**
|
package/dist/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMpD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAShD"}
|
package/dist/env.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Read `process.env[name]`. Returns `undefined` when missing or blank (after trim).
|
|
3
|
-
* Use in `askdb.config.*` for every env-backed value;
|
|
3
|
+
* Use in `askdb.config.*` for every env-backed value; an unset value takes AskDB's default when the
|
|
4
|
+
* config is resolved (see `getAskDbRuntimeConfig`).
|
|
4
5
|
*/
|
|
5
6
|
export function env(name) {
|
|
6
7
|
const raw = process.env[name];
|
package/dist/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,GAAG,CAAC,IAAY;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,0CAA0C,IAAI,KAAK;YACjD,mFAAmF,CACtF,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,CAAC;AACX,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-
|
|
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
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 "./
|
|
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
|
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,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,
|
|
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
|
@@ -7,6 +7,6 @@ export { isAskDbRuntimeInitialized, mergeAskDbFlatIntoEnvMap, resetAskDbRuntimeF
|
|
|
7
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 "./
|
|
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,+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,
|
|
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"}
|
package/dist/load-merge.js
CHANGED
|
@@ -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 "./
|
|
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
|
/**
|
package/dist/load-merge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-merge.js","sourceRoot":"","sources":["../src/load-merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"load-merge.js","sourceRoot":"","sources":["../src/load-merge.ts"],"names":[],"mappings":"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"}
|
package/dist/projection.d.ts
CHANGED
|
@@ -12,8 +12,9 @@ export type AskDbEnvProjection = {
|
|
|
12
12
|
readonly deprecations?: readonly string[];
|
|
13
13
|
};
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
16
|
-
* `satisfies AskDbConfig` so excess or mistyped keys fail
|
|
15
|
+
* Checks a nested {@link AskDbConfig} and wraps it with its canonical env keys, for `bootstrapAskDbEnv`
|
|
16
|
+
* to install. Use TypeScript’s `satisfies AskDbConfig` on the object so excess or mistyped keys fail
|
|
17
|
+
* at compile time while literals stay narrow, e.g.:
|
|
17
18
|
*
|
|
18
19
|
* ```ts
|
|
19
20
|
* export default defineConfig({
|
|
@@ -29,5 +30,14 @@ export type AskDbEnvProjection = {
|
|
|
29
30
|
* Throws an `askdb.config: …` error for a config that can't load.
|
|
30
31
|
*/
|
|
31
32
|
export declare function defineConfig<const T extends AskDbConfig>(config: T): AskDbEnvProjection;
|
|
33
|
+
/**
|
|
34
|
+
* Flattens a nested {@link AskDbConfig} into the canonical env keys of the runtime snapshot
|
|
35
|
+
* (`AskDbEnvProjection.entries`), for example to build a child process's env. Most optional keys are
|
|
36
|
+
* written only when the config sets them, so defaults such as the HTTP port stay out of the env;
|
|
37
|
+
* `ASKDB_RAG_EMBEDDER`, `ASKDB_INTROSPECT_OUT` and, with the pgvector store,
|
|
38
|
+
* `ASKDB_PGVECTOR_INDEX_STRATEGY` and the mock embedder's `ASKDB_RAG_EMBEDDER_DIMENSIONS` are always
|
|
39
|
+
* written. Throws the same `askdb.config: …` errors as `defineConfig`.
|
|
40
|
+
*/
|
|
41
|
+
export declare function flattenAskDbConfig(config: AskDbConfig): Record<string, string>;
|
|
32
42
|
export declare function isAskDbEnvProjection(value: unknown): value is AskDbEnvProjection;
|
|
33
43
|
//# sourceMappingURL=projection.d.ts.map
|
package/dist/projection.d.ts.map
CHANGED
|
@@ -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;
|
|
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;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,CAAC,GAAG,kBAAkB,CAQvF;AAED;;;;;;;GAOG;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,CAahF"}
|