@askdb/config 0.3.0-beta.1
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/LICENSE +201 -0
- package/NOTICE +10 -0
- package/README.md +97 -0
- package/dist/bootstrap.d.ts +31 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +108 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/constants.d.ts +20 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +22 -0
- package/dist/constants.js.map +1 -0
- package/dist/defaults.d.ts +20 -0
- package/dist/defaults.d.ts.map +1 -0
- package/dist/defaults.js +46 -0
- package/dist/defaults.js.map +1 -0
- package/dist/discover.d.ts +15 -0
- package/dist/discover.d.ts.map +1 -0
- package/dist/discover.js +29 -0
- package/dist/discover.js.map +1 -0
- package/dist/env.d.ts +11 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +24 -0
- package/dist/env.js.map +1 -0
- package/dist/flatten.d.ts +7 -0
- package/dist/flatten.d.ts.map +1 -0
- package/dist/flatten.js +228 -0
- package/dist/flatten.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/load-merge.d.ts +18 -0
- package/dist/load-merge.d.ts.map +1 -0
- package/dist/load-merge.js +52 -0
- package/dist/load-merge.js.map +1 -0
- package/dist/projection.d.ts +22 -0
- package/dist/projection.d.ts.map +1 -0
- package/dist/projection.js +32 -0
- package/dist/projection.js.map +1 -0
- package/dist/runtime-config.d.ts +59 -0
- package/dist/runtime-config.d.ts.map +1 -0
- package/dist/runtime-config.js +60 -0
- package/dist/runtime-config.js.map +1 -0
- package/dist/runtime-store.d.ts +21 -0
- package/dist/runtime-store.d.ts.map +1 -0
- package/dist/runtime-store.js +40 -0
- package/dist/runtime-store.js.map +1 -0
- package/dist/types.d.ts +169 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +54 -0
package/dist/env.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read `process.env[name]`. Returns `undefined` when missing or blank (after trim).
|
|
3
|
+
* Use in `askdb.config.*` for every env-backed value; {@link flattenAskDbConfig} supplies defaults.
|
|
4
|
+
*/
|
|
5
|
+
export declare function env(name: string): string | undefined;
|
|
6
|
+
/**
|
|
7
|
+
* Read `process.env[name]`. Throws if missing or empty (after trim).
|
|
8
|
+
* For programmatic / non-config callers that need fail-fast semantics.
|
|
9
|
+
*/
|
|
10
|
+
export declare function requiredEnv(name: string): string;
|
|
11
|
+
//# sourceMappingURL=env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;GAGG;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
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read `process.env[name]`. Returns `undefined` when missing or blank (after trim).
|
|
3
|
+
* Use in `askdb.config.*` for every env-backed value; {@link flattenAskDbConfig} supplies defaults.
|
|
4
|
+
*/
|
|
5
|
+
export function env(name) {
|
|
6
|
+
const raw = process.env[name];
|
|
7
|
+
if (raw === undefined || raw.trim() === "") {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
return raw.trim();
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Read `process.env[name]`. Throws if missing or empty (after trim).
|
|
14
|
+
* For programmatic / non-config callers that need fail-fast semantics.
|
|
15
|
+
*/
|
|
16
|
+
export function requiredEnv(name) {
|
|
17
|
+
const v = env(name);
|
|
18
|
+
if (v === undefined) {
|
|
19
|
+
throw new Error(`Missing required environment variable "${name}". ` +
|
|
20
|
+
`Set it in your .env file (or your shell environment) before using this code path.`);
|
|
21
|
+
}
|
|
22
|
+
return v;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=env.js.map
|
package/dist/env.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;GAGG;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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AskDbConfig } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Flattens a nested {@link AskDbConfig} into canonical env keys for the runtime snapshot
|
|
4
|
+
* (`AskDbEnvProjection.entries`).
|
|
5
|
+
*/
|
|
6
|
+
export declare function flattenAskDbConfig(config: AskDbConfig): Record<string, string>;
|
|
7
|
+
//# sourceMappingURL=flatten.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flatten.d.ts","sourceRoot":"","sources":["../src/flatten.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAwD9C;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiM9E"}
|
package/dist/flatten.js
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { ASKDB_LOG_LEVELS, ASKDB_MODES_V1, ASKDB_RAG_EMBEDDERS, ASKDB_RAG_STORES, } from "./constants.js";
|
|
2
|
+
import { DEFAULT_AZURE_OPENAI_DEPLOYMENT, DEFAULT_INTROSPECT_OUTPUT_DIR, DEFAULT_LOCAL_POSTGRES_URL, DEFAULT_MOCK_RAG_EMBEDDING_DIMENSIONS, DEFAULT_OPENAI_CHAT_MODEL, DEFAULT_RAG_EMBEDDING_MODEL, DEFAULT_RAG_FILE_BASE_PATH, defaultRagEmbeddingDimensions, normalizePgvectorIndexStrategy, parsePositiveInteger, } from "./defaults.js";
|
|
3
|
+
function isMember(value, allowed) {
|
|
4
|
+
return allowed.includes(value);
|
|
5
|
+
}
|
|
6
|
+
function set(out, key, value) {
|
|
7
|
+
if (value === undefined)
|
|
8
|
+
return;
|
|
9
|
+
const t = value.trim();
|
|
10
|
+
if (t === "")
|
|
11
|
+
return;
|
|
12
|
+
out[key] = t;
|
|
13
|
+
}
|
|
14
|
+
function applyOpenAiAi(out, cfg) {
|
|
15
|
+
set(out, "OPENAI_API_KEY", cfg.apiKey);
|
|
16
|
+
set(out, "OPENAI_BASE_URL", cfg.baseUrl);
|
|
17
|
+
const model = cfg.model?.trim() || DEFAULT_OPENAI_CHAT_MODEL;
|
|
18
|
+
set(out, "OPENAI_MODEL", model);
|
|
19
|
+
set(out, "ASKDB_MODEL", model);
|
|
20
|
+
}
|
|
21
|
+
function applyAzureLikeAi(out, cfg) {
|
|
22
|
+
set(out, "AZURE_OPENAI_API_KEY", cfg.apiKey);
|
|
23
|
+
if ("secondaryApiKey" in cfg && cfg.secondaryApiKey) {
|
|
24
|
+
set(out, "AZURE_OPENAI_API_KEY_SECONDARY", cfg.secondaryApiKey);
|
|
25
|
+
}
|
|
26
|
+
const model = cfg.model?.trim() || DEFAULT_AZURE_OPENAI_DEPLOYMENT;
|
|
27
|
+
set(out, "AZURE_OPENAI_DEPLOYMENT", model);
|
|
28
|
+
set(out, "AZURE_DEPLOYMENT_NAME", model);
|
|
29
|
+
set(out, "ASKDB_AI_MODEL", model);
|
|
30
|
+
set(out, "AZURE_OPENAI_BASE_URL", cfg.baseUrl);
|
|
31
|
+
set(out, "AZURE_OPENAI_API_VERSION", cfg.apiVersion);
|
|
32
|
+
}
|
|
33
|
+
function resolveDatabaseUrl(config) {
|
|
34
|
+
const raw = config.database.providerConfig.postgres.databaseUrl;
|
|
35
|
+
const fromConfig = raw?.trim();
|
|
36
|
+
return fromConfig || DEFAULT_LOCAL_POSTGRES_URL;
|
|
37
|
+
}
|
|
38
|
+
function resolveRagEmbeddingDimensions(rag) {
|
|
39
|
+
if (rag.embedder === "openai" || rag.embedder === "ai-sdk") {
|
|
40
|
+
const ec = rag.embedderConfig.openai;
|
|
41
|
+
if (!ec) {
|
|
42
|
+
throw new Error(`askdb.config: rag.embedderConfig.openai is required for embedder "${rag.embedder}".`);
|
|
43
|
+
}
|
|
44
|
+
const model = ec.model?.trim() || DEFAULT_RAG_EMBEDDING_MODEL;
|
|
45
|
+
const parsed = parsePositiveInteger(ec.dimension);
|
|
46
|
+
return parsed ?? defaultRagEmbeddingDimensions(model);
|
|
47
|
+
}
|
|
48
|
+
return DEFAULT_MOCK_RAG_EMBEDDING_DIMENSIONS;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Flattens a nested {@link AskDbConfig} into canonical env keys for the runtime snapshot
|
|
52
|
+
* (`AskDbEnvProjection.entries`).
|
|
53
|
+
*/
|
|
54
|
+
export function flattenAskDbConfig(config) {
|
|
55
|
+
const out = {};
|
|
56
|
+
// --- AI ---
|
|
57
|
+
const { provider, providerConfig } = config.ai;
|
|
58
|
+
if (provider === "openai") {
|
|
59
|
+
if (!providerConfig.openai) {
|
|
60
|
+
throw new Error('askdb.config: ai.provider is "openai" but `ai.providerConfig.openai` is missing.');
|
|
61
|
+
}
|
|
62
|
+
set(out, "ASKDB_AI_PROVIDER", "openai");
|
|
63
|
+
applyOpenAiAi(out, providerConfig.openai);
|
|
64
|
+
}
|
|
65
|
+
else if (provider === "azure") {
|
|
66
|
+
if (!providerConfig.azure) {
|
|
67
|
+
throw new Error('askdb.config: ai.provider is "azure" but `ai.providerConfig.azure` is missing.');
|
|
68
|
+
}
|
|
69
|
+
set(out, "ASKDB_AI_PROVIDER", "azure");
|
|
70
|
+
applyAzureLikeAi(out, providerConfig.azure);
|
|
71
|
+
}
|
|
72
|
+
else if (provider === "foundry") {
|
|
73
|
+
if (!providerConfig.foundry) {
|
|
74
|
+
throw new Error('askdb.config: ai.provider is "foundry" but `ai.providerConfig.foundry` is missing.');
|
|
75
|
+
}
|
|
76
|
+
// `@askdb/core` treats `foundry` like Azure for env parsing.
|
|
77
|
+
set(out, "ASKDB_AI_PROVIDER", "foundry");
|
|
78
|
+
applyAzureLikeAi(out, providerConfig.foundry);
|
|
79
|
+
}
|
|
80
|
+
if (providerConfig.anthropic !== undefined && Object.keys(providerConfig.anthropic).length > 0) {
|
|
81
|
+
throw new Error("askdb.config: Anthropic AI provider is not supported yet.");
|
|
82
|
+
}
|
|
83
|
+
if (providerConfig.google !== undefined && Object.keys(providerConfig.google).length > 0) {
|
|
84
|
+
throw new Error("askdb.config: Google AI provider is not supported yet.");
|
|
85
|
+
}
|
|
86
|
+
// --- Database ---
|
|
87
|
+
if (config.database.provider !== "postgres") {
|
|
88
|
+
throw new Error(`askdb.config: unsupported database.provider "${config.database.provider}".`);
|
|
89
|
+
}
|
|
90
|
+
set(out, "DATABASE_URL", resolveDatabaseUrl(config));
|
|
91
|
+
// --- Introspection ---
|
|
92
|
+
const intro = config.introspection;
|
|
93
|
+
// `DATABASE_URL` already reflects `database`. For Postgres introspection, set
|
|
94
|
+
// `introspection.providerConfig.postgres.databaseUrl` only when you need a URL that
|
|
95
|
+
// differs from the main app database; when omitted, live introspection reuses the same URL.
|
|
96
|
+
if (intro.provider === "postgres") {
|
|
97
|
+
const introUrl = intro.providerConfig.postgres?.databaseUrl?.trim();
|
|
98
|
+
if (introUrl) {
|
|
99
|
+
set(out, "DATABASE_URL", introUrl);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else if (intro.provider === "prisma") {
|
|
103
|
+
const schemaPath = intro.providerConfig.prisma?.schemaPath;
|
|
104
|
+
if (schemaPath)
|
|
105
|
+
set(out, "ASKDB_PRISMA_SCHEMA", schemaPath);
|
|
106
|
+
}
|
|
107
|
+
const outDir = intro.outputDir?.trim() || DEFAULT_INTROSPECT_OUTPUT_DIR;
|
|
108
|
+
set(out, "ASKDB_INTROSPECT_OUT", outDir);
|
|
109
|
+
// --- RAG ---
|
|
110
|
+
const rag = config.rag;
|
|
111
|
+
if (!isMember(rag.embedder, ASKDB_RAG_EMBEDDERS)) {
|
|
112
|
+
throw new Error(`askdb.config: invalid rag.embedder "${rag.embedder}" (expected one of: ${ASKDB_RAG_EMBEDDERS.join(", ")}).`);
|
|
113
|
+
}
|
|
114
|
+
set(out, "ASKDB_RAG_EMBEDDER", rag.embedder);
|
|
115
|
+
const resolvedRagDimensions = resolveRagEmbeddingDimensions(rag);
|
|
116
|
+
if (rag.embedder === "openai" || rag.embedder === "ai-sdk") {
|
|
117
|
+
const ec = rag.embedderConfig.openai;
|
|
118
|
+
if (!ec) {
|
|
119
|
+
throw new Error(`askdb.config: rag.embedderConfig.openai is required for embedder "${rag.embedder}".`);
|
|
120
|
+
}
|
|
121
|
+
const model = ec.model?.trim() || DEFAULT_RAG_EMBEDDING_MODEL;
|
|
122
|
+
set(out, "ASKDB_RAG_EMBEDDER_MODEL", model);
|
|
123
|
+
set(out, "ASKDB_RAG_EMBEDDER_DIMENSIONS", String(resolvedRagDimensions));
|
|
124
|
+
set(out, "ASKDB_RAG_EMBEDDER_API_KEY", ec.apiKey);
|
|
125
|
+
set(out, "ASKDB_RAG_EMBEDDER_BASE_URL", ec.baseUrl);
|
|
126
|
+
}
|
|
127
|
+
if (!isMember(rag.store, ASKDB_RAG_STORES)) {
|
|
128
|
+
throw new Error(`askdb.config: invalid rag.store "${rag.store}" (expected one of: ${ASKDB_RAG_STORES.join(", ")}).`);
|
|
129
|
+
}
|
|
130
|
+
if (rag.store === "file") {
|
|
131
|
+
const f = rag.storeConfig.file;
|
|
132
|
+
if (!f)
|
|
133
|
+
throw new Error('askdb.config: rag.store is "file" but `rag.storeConfig.file` is missing.');
|
|
134
|
+
const basePath = f.basePath?.trim() || DEFAULT_RAG_FILE_BASE_PATH;
|
|
135
|
+
set(out, "ASKDB_RAG_FILE_BASE_PATH", basePath);
|
|
136
|
+
}
|
|
137
|
+
else if (rag.store === "memory") {
|
|
138
|
+
// no env keys
|
|
139
|
+
}
|
|
140
|
+
else if (rag.store === "pgvector") {
|
|
141
|
+
const p = rag.storeConfig.pgvector;
|
|
142
|
+
if (!p)
|
|
143
|
+
throw new Error('askdb.config: rag.store is "pgvector" but `rag.storeConfig.pgvector` is missing.');
|
|
144
|
+
const url = p.databaseUrl?.trim();
|
|
145
|
+
if (!url) {
|
|
146
|
+
throw new Error('askdb.config: rag.store is "pgvector" but `storeConfig.pgvector.databaseUrl` is missing (set ASKDB_PGVECTOR_URL via env in askdb.config).');
|
|
147
|
+
}
|
|
148
|
+
set(out, "ASKDB_PGVECTOR_URL", url);
|
|
149
|
+
const pgDims = parsePositiveInteger(p.dimensions) ?? resolvedRagDimensions;
|
|
150
|
+
set(out, "ASKDB_RAG_EMBEDDER_DIMENSIONS", String(pgDims));
|
|
151
|
+
const strategy = normalizePgvectorIndexStrategy(typeof p.indexStrategy === "string" ? p.indexStrategy : undefined);
|
|
152
|
+
set(out, "ASKDB_PGVECTOR_INDEX_STRATEGY", strategy);
|
|
153
|
+
}
|
|
154
|
+
// --- Logging ---
|
|
155
|
+
if (config.logging?.level) {
|
|
156
|
+
const lvl = config.logging.level;
|
|
157
|
+
if (!isMember(lvl, ASKDB_LOG_LEVELS)) {
|
|
158
|
+
throw new Error(`askdb.config: invalid logging.level "${lvl}" (expected one of: ${ASKDB_LOG_LEVELS.join(", ")}).`);
|
|
159
|
+
}
|
|
160
|
+
set(out, "ASKDB_LOG_LEVEL", lvl);
|
|
161
|
+
}
|
|
162
|
+
set(out, "ASKDB_CORRELATION_ID", config.logging?.correlationId);
|
|
163
|
+
// --- Modes ---
|
|
164
|
+
if (config.modes?.askdbMode) {
|
|
165
|
+
const m = config.modes.askdbMode;
|
|
166
|
+
if (!isMember(m, ASKDB_MODES_V1)) {
|
|
167
|
+
throw new Error(`askdb.config: invalid modes.askdbMode "${m}" (expected one of: ${ASKDB_MODES_V1.join(", ")}).`);
|
|
168
|
+
}
|
|
169
|
+
set(out, "ASKDB_MODE", m);
|
|
170
|
+
}
|
|
171
|
+
if (config.modes?.omitSensitiveFromPrompt === true) {
|
|
172
|
+
set(out, "ASKDB_OMIT_SENSITIVE_FROM_PROMPT", "true");
|
|
173
|
+
}
|
|
174
|
+
// --- Host ---
|
|
175
|
+
set(out, "ASKDB_SCHEMA_PATH", config.host?.schemaPath);
|
|
176
|
+
set(out, "ASKDB_SCHEMA_JSON", config.host?.schemaJson);
|
|
177
|
+
if (config.logging?.logFile) {
|
|
178
|
+
set(out, "ASKDB_LOG_FILE", config.logging.logFile);
|
|
179
|
+
}
|
|
180
|
+
if (config.logging?.logStdout === true) {
|
|
181
|
+
set(out, "ASKDB_LOG_STDOUT", "true");
|
|
182
|
+
}
|
|
183
|
+
// --- Dev ---
|
|
184
|
+
if (config.dev?.mockSql) {
|
|
185
|
+
set(out, "ASKDB_MOCK_SQL", config.dev.mockSql);
|
|
186
|
+
}
|
|
187
|
+
// --- TUI / Studio ---
|
|
188
|
+
if (config.tui?.model) {
|
|
189
|
+
set(out, "ASKDB_TUI_MODEL", config.tui.model);
|
|
190
|
+
}
|
|
191
|
+
if (config.studio?.model) {
|
|
192
|
+
set(out, "ASKDB_STUDIO_MODEL", config.studio.model);
|
|
193
|
+
}
|
|
194
|
+
if (config.studio?.listen?.host) {
|
|
195
|
+
set(out, "ASKDB_STUDIO_HOST", config.studio.listen.host);
|
|
196
|
+
}
|
|
197
|
+
if (config.studio?.listen?.port !== undefined && !Number.isNaN(config.studio.listen.port)) {
|
|
198
|
+
set(out, "ASKDB_STUDIO_PORT", String(config.studio.listen.port));
|
|
199
|
+
}
|
|
200
|
+
const sr = config.studio?.rag;
|
|
201
|
+
if (sr?.embedder) {
|
|
202
|
+
set(out, "ASKDB_STUDIO_RAG_EMBEDDER", sr.embedder);
|
|
203
|
+
}
|
|
204
|
+
if (sr?.dimensions !== undefined) {
|
|
205
|
+
const d = typeof sr.dimensions === "number" ? String(sr.dimensions) : sr.dimensions?.trim();
|
|
206
|
+
if (d)
|
|
207
|
+
set(out, "ASKDB_STUDIO_RAG_EMBEDDER_DIMENSIONS", d);
|
|
208
|
+
}
|
|
209
|
+
if (sr?.apiKey) {
|
|
210
|
+
set(out, "ASKDB_STUDIO_RAG_EMBEDDER_API_KEY", sr.apiKey);
|
|
211
|
+
}
|
|
212
|
+
if (sr?.baseUrl) {
|
|
213
|
+
set(out, "ASKDB_STUDIO_RAG_EMBEDDER_BASE_URL", sr.baseUrl);
|
|
214
|
+
}
|
|
215
|
+
if (sr?.model) {
|
|
216
|
+
set(out, "ASKDB_STUDIO_RAG_EMBEDDER_MODEL", sr.model);
|
|
217
|
+
}
|
|
218
|
+
// --- HTTP API listen (canonical keys on runtime flat map) ---
|
|
219
|
+
const httpListen = config.httpApi?.listen;
|
|
220
|
+
if (httpListen?.port !== undefined && !Number.isNaN(httpListen.port)) {
|
|
221
|
+
set(out, "PORT", String(httpListen.port));
|
|
222
|
+
}
|
|
223
|
+
if (httpListen?.host) {
|
|
224
|
+
set(out, "HOST", httpListen.host);
|
|
225
|
+
}
|
|
226
|
+
return out;
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=flatten.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flatten.js","sourceRoot":"","sources":["../src/flatten.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { ASKDB_CONFIG_EXTENSION_PRECEDENCE, discoverAskDbConfigPath } from "./discover.js";
|
|
2
|
+
export type { AskDbConfigExtension } from "./discover.js";
|
|
3
|
+
export { bootstrapAskDbEnv, bootstrapAskDbRuntime } from "./bootstrap.js";
|
|
4
|
+
export type { BootstrapAskDbEnvOptions } from "./bootstrap.js";
|
|
5
|
+
export { env, requiredEnv } from "./env.js";
|
|
6
|
+
export { getAskDbRuntimeConfig, } from "./runtime-config.js";
|
|
7
|
+
export type { AskDbRuntimeConfig, AskDbRuntimeAiConfig, AskDbRuntimeRagConfig, AskDbRuntimeRagEmbedderConfig, AskDbRuntimeLoggingConfig, AskDbRuntimeHttpApiConfig, AskDbRuntimeDevConfig, AskDbRuntimeModesConfig, } from "./runtime-config.js";
|
|
8
|
+
export { mergeAskDbFlatIntoEnvMap, resetAskDbRuntimeForTests, setAskDbRuntimeForTests, } from "./runtime-store.js";
|
|
9
|
+
export { DEFAULT_AZURE_OPENAI_DEPLOYMENT, DEFAULT_INTROSPECT_OUTPUT_DIR, DEFAULT_LOCAL_POSTGRES_URL, DEFAULT_MOCK_RAG_EMBEDDING_DIMENSIONS, DEFAULT_OPENAI_CHAT_MODEL, DEFAULT_PGVECTOR_INDEX_STRATEGY, DEFAULT_RAG_EMBEDDING_MODEL, DEFAULT_RAG_FILE_BASE_PATH, defaultRagEmbeddingDimensions, } from "./defaults.js";
|
|
10
|
+
export { defineConfig, isAskDbEnvProjection, ASKDB_ENV_PROJECTION } from "./projection.js";
|
|
11
|
+
export type { AskDbEnvProjection } from "./projection.js";
|
|
12
|
+
export { loadAskDbConfigProjection, loadAskDbConfigProjectionSync } from "./load-merge.js";
|
|
13
|
+
export type { AskDbConfig, OpenaiConfig, AzureConfig, FoundryConfig, AnthropicConfig, GoogleConfig, OpenaiRagEmbedderConfig, FileStoreConfig, MemoryStoreConfig, PgvectorStoreConfig, } from "./types.js";
|
|
14
|
+
export { flattenAskDbConfig } from "./flatten.js";
|
|
15
|
+
export { ASKDB_MODES_V1, ASKDB_LOG_LEVELS, ASKDB_RAG_EMBEDDERS, ASKDB_RAG_STORES, ASKDB_AI_PROVIDERS, ASKDB_INTROSPECTION_PROVIDERS, } from "./constants.js";
|
|
16
|
+
export type { AskDbModeV1, AskDbLogLevel, AskDbRagEmbedder, AskDbRagStore, AskDbAiProviderId, AskDbIntrospectionProvider, } from "./constants.js";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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,EACL,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,0BAA0B,EAC1B,qCAAqC,EACrC,yBAAyB,EACzB,+BAA+B,EAC/B,2BAA2B,EAC3B,0BAA0B,EAC1B,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,YAAY,EACZ,WAAW,EACX,aAAa,EACb,eAAe,EACf,YAAY,EACZ,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,GAC9B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { ASKDB_CONFIG_EXTENSION_PRECEDENCE, discoverAskDbConfigPath } from "./discover.js";
|
|
2
|
+
export { bootstrapAskDbEnv, bootstrapAskDbRuntime } from "./bootstrap.js";
|
|
3
|
+
export { env, requiredEnv } from "./env.js";
|
|
4
|
+
export { getAskDbRuntimeConfig, } from "./runtime-config.js";
|
|
5
|
+
export { mergeAskDbFlatIntoEnvMap, resetAskDbRuntimeForTests, setAskDbRuntimeForTests, } from "./runtime-store.js";
|
|
6
|
+
export { DEFAULT_AZURE_OPENAI_DEPLOYMENT, DEFAULT_INTROSPECT_OUTPUT_DIR, DEFAULT_LOCAL_POSTGRES_URL, DEFAULT_MOCK_RAG_EMBEDDING_DIMENSIONS, DEFAULT_OPENAI_CHAT_MODEL, DEFAULT_PGVECTOR_INDEX_STRATEGY, DEFAULT_RAG_EMBEDDING_MODEL, DEFAULT_RAG_FILE_BASE_PATH, defaultRagEmbeddingDimensions, } from "./defaults.js";
|
|
7
|
+
export { defineConfig, isAskDbEnvProjection, ASKDB_ENV_PROJECTION } from "./projection.js";
|
|
8
|
+
export { loadAskDbConfigProjection, loadAskDbConfigProjectionSync } from "./load-merge.js";
|
|
9
|
+
export { flattenAskDbConfig } from "./flatten.js";
|
|
10
|
+
export { ASKDB_MODES_V1, ASKDB_LOG_LEVELS, ASKDB_RAG_EMBEDDERS, ASKDB_RAG_STORES, ASKDB_AI_PROVIDERS, ASKDB_INTROSPECTION_PROVIDERS, } from "./constants.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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,EACL,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,0BAA0B,EAC1B,qCAAqC,EACrC,yBAAyB,EACzB,+BAA+B,EAC/B,2BAA2B,EAC3B,0BAA0B,EAC1B,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;AAa3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type AskDbEnvProjection } from "./projection.js";
|
|
2
|
+
/**
|
|
3
|
+
* Loads `askdb.config.*` / `.config/askdb.*` from `cwd` (if present) and returns the projection.
|
|
4
|
+
* Does not mutate `process.env`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function loadAskDbConfigProjection(cwd: string): Promise<{
|
|
7
|
+
path?: string;
|
|
8
|
+
projection?: AskDbEnvProjection;
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* Synchronous variant for callers that cannot await at top-level (CLI uses this before `await program.parseAsync`).
|
|
12
|
+
* Only supports config paths that jiti can load synchronously (covers `.ts` and most `.js`/`.cjs` cases).
|
|
13
|
+
*/
|
|
14
|
+
export declare function loadAskDbConfigProjectionSync(cwd: string): {
|
|
15
|
+
path?: string;
|
|
16
|
+
projection?: AskDbEnvProjection;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=load-merge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-merge.d.ts","sourceRoot":"","sources":["../src/load-merge.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAyBhF;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC,CAAC,CAMD;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,kBAAkB,CAAA;CAAE,CAgB7G"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { createJiti } from "jiti";
|
|
2
|
+
import { pathToFileURL } from "node:url";
|
|
3
|
+
import { discoverAskDbConfigPath } from "./discover.js";
|
|
4
|
+
import { isAskDbEnvProjection } from "./projection.js";
|
|
5
|
+
async function importConfigModule(configPath) {
|
|
6
|
+
const lower = configPath.toLowerCase();
|
|
7
|
+
if (lower.endsWith(".mjs")) {
|
|
8
|
+
const href = pathToFileURL(configPath).href;
|
|
9
|
+
const mod = await import(href);
|
|
10
|
+
return mod.default ?? mod;
|
|
11
|
+
}
|
|
12
|
+
const jiti = createJiti(configPath, { interopDefault: true });
|
|
13
|
+
const mod = jiti(configPath);
|
|
14
|
+
return mod.default ?? mod;
|
|
15
|
+
}
|
|
16
|
+
function assertAskDbProjection(exported, configPath) {
|
|
17
|
+
if (!isAskDbEnvProjection(exported)) {
|
|
18
|
+
throw new Error(`AskDB config at ${configPath} must export default defineConfig({ ... }) from "@askdb/config". ` +
|
|
19
|
+
`Legacy flat maps are no longer supported.`);
|
|
20
|
+
}
|
|
21
|
+
return exported;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Loads `askdb.config.*` / `.config/askdb.*` from `cwd` (if present) and returns the projection.
|
|
25
|
+
* Does not mutate `process.env`.
|
|
26
|
+
*/
|
|
27
|
+
export async function loadAskDbConfigProjection(cwd) {
|
|
28
|
+
const configPath = discoverAskDbConfigPath(cwd);
|
|
29
|
+
if (!configPath)
|
|
30
|
+
return {};
|
|
31
|
+
const exported = await importConfigModule(configPath);
|
|
32
|
+
return { path: configPath, projection: assertAskDbProjection(exported, configPath) };
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Synchronous variant for callers that cannot await at top-level (CLI uses this before `await program.parseAsync`).
|
|
36
|
+
* Only supports config paths that jiti can load synchronously (covers `.ts` and most `.js`/`.cjs` cases).
|
|
37
|
+
*/
|
|
38
|
+
export function loadAskDbConfigProjectionSync(cwd) {
|
|
39
|
+
const configPath = discoverAskDbConfigPath(cwd);
|
|
40
|
+
if (!configPath)
|
|
41
|
+
return {};
|
|
42
|
+
const lower = configPath.toLowerCase();
|
|
43
|
+
if (lower.endsWith(".mjs")) {
|
|
44
|
+
throw new Error(`Cannot load AskDB config synchronously: ${configPath} (.mjs requires async import). ` +
|
|
45
|
+
`Use loadAskDbConfigProjection() or rename to .cjs/.js/.ts.`);
|
|
46
|
+
}
|
|
47
|
+
const jiti = createJiti(configPath, { interopDefault: true });
|
|
48
|
+
const mod = jiti(configPath);
|
|
49
|
+
const exported = mod.default ?? mod;
|
|
50
|
+
return { path: configPath, projection: assertAskDbProjection(exported, configPath) };
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=load-merge.js.map
|
|
@@ -0,0 +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,oBAAoB,EAA2B,MAAM,iBAAiB,CAAC;AAEhF,KAAK,UAAU,kBAAkB,CAAC,UAAkB;IAClD,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;IAC5B,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAA0B,CAAC;IACtD,OAAO,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;AAC5B,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAiB,EAAE,UAAkB;IAClE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,mBAAmB,UAAU,mEAAmE;YAC9F,2CAA2C,CAC9C,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,GAAW;IAIzD,MAAM,UAAU,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACtD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;AACvF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAC,GAAW;IACvD,MAAM,UAAU,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,2CAA2C,UAAU,iCAAiC;YACpF,4DAA4D,CAC/D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAA0B,CAAC;IACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;IACpC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;AACvF,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { AskDbConfig } from "./types.js";
|
|
2
|
+
export declare const ASKDB_ENV_PROJECTION: unique symbol;
|
|
3
|
+
export type AskDbEnvProjection = {
|
|
4
|
+
readonly [ASKDB_ENV_PROJECTION]: true;
|
|
5
|
+
/** Nested config as authored (same reference passed to {@link defineConfig}). */
|
|
6
|
+
readonly config: AskDbConfig;
|
|
7
|
+
readonly entries: Readonly<Record<string, string>>;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Wraps a nested {@link AskDbConfig} for bootstrap merge. Check the object with TypeScript’s
|
|
11
|
+
* `satisfies AskDbConfig` so excess or mistyped keys fail at compile time while literals stay narrow, e.g.:
|
|
12
|
+
*
|
|
13
|
+
* ```ts
|
|
14
|
+
* export default defineConfig({
|
|
15
|
+
* ai: { provider: "openai", providerConfig: { openai: { apiKey: "", model: "gpt-4o-mini" } } },
|
|
16
|
+
* // ...
|
|
17
|
+
* } satisfies AskDbConfig);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function defineConfig<const T extends AskDbConfig>(config: T): AskDbEnvProjection;
|
|
21
|
+
export declare function isAskDbEnvProjection(value: unknown): value is AskDbEnvProjection;
|
|
22
|
+
//# sourceMappingURL=projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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;CACpD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,CAAC,GAAG,kBAAkB,CAMvF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAYhF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { flattenAskDbConfig } from "./flatten.js";
|
|
2
|
+
export const ASKDB_ENV_PROJECTION = Symbol.for("askdb.envProjection");
|
|
3
|
+
/**
|
|
4
|
+
* Wraps a nested {@link AskDbConfig} for bootstrap merge. Check the object with TypeScript’s
|
|
5
|
+
* `satisfies AskDbConfig` so excess or mistyped keys fail at compile time while literals stay narrow, e.g.:
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* export default defineConfig({
|
|
9
|
+
* ai: { provider: "openai", providerConfig: { openai: { apiKey: "", model: "gpt-4o-mini" } } },
|
|
10
|
+
* // ...
|
|
11
|
+
* } satisfies AskDbConfig);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export function defineConfig(config) {
|
|
15
|
+
return {
|
|
16
|
+
[ASKDB_ENV_PROJECTION]: true,
|
|
17
|
+
config,
|
|
18
|
+
entries: flattenAskDbConfig(config),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function isAskDbEnvProjection(value) {
|
|
22
|
+
return (typeof value === "object" &&
|
|
23
|
+
value !== null &&
|
|
24
|
+
ASKDB_ENV_PROJECTION in value &&
|
|
25
|
+
value[ASKDB_ENV_PROJECTION] === true &&
|
|
26
|
+
typeof value.entries === "object" &&
|
|
27
|
+
value.entries !== null &&
|
|
28
|
+
"config" in value &&
|
|
29
|
+
typeof value.config === "object" &&
|
|
30
|
+
value.config !== null);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=projection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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;AAStE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAA8B,MAAS;IACjE,OAAO;QACL,CAAC,oBAAoB,CAAC,EAAE,IAAI;QAC5B,MAAM;QACN,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC;KACpC,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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { AskDbConfig } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Typed AI runtime settings for `@askdb/core` (not `process.env`).
|
|
4
|
+
*/
|
|
5
|
+
export type AskDbRuntimeAiConfig = {
|
|
6
|
+
/**
|
|
7
|
+
* Flat env-shaped map built from the runtime snapshot. Pass to
|
|
8
|
+
* `resolveAskDbAiConfig`, `createAskDbLanguageModelFromEnv`, etc.
|
|
9
|
+
*/
|
|
10
|
+
aiEnv: Record<string, string | undefined>;
|
|
11
|
+
tuiModel: string | undefined;
|
|
12
|
+
studioModel: string | undefined;
|
|
13
|
+
};
|
|
14
|
+
export type AskDbRuntimeRagEmbedderConfig = {
|
|
15
|
+
apiKey: string | undefined;
|
|
16
|
+
baseURL: string | undefined;
|
|
17
|
+
model: string | undefined;
|
|
18
|
+
};
|
|
19
|
+
export type AskDbRuntimeRagConfig = {
|
|
20
|
+
embedder: AskDbRuntimeRagEmbedderConfig;
|
|
21
|
+
};
|
|
22
|
+
export type AskDbRuntimeLoggingConfig = {
|
|
23
|
+
level: string | undefined;
|
|
24
|
+
correlationId: string | undefined;
|
|
25
|
+
logFile: string | undefined;
|
|
26
|
+
logStdout: boolean;
|
|
27
|
+
};
|
|
28
|
+
export type AskDbRuntimeHttpApiConfig = {
|
|
29
|
+
listen: {
|
|
30
|
+
port: number;
|
|
31
|
+
host: string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export type AskDbRuntimeDevConfig = {
|
|
35
|
+
mockSql: string | undefined;
|
|
36
|
+
};
|
|
37
|
+
export type AskDbRuntimeModesConfig = {
|
|
38
|
+
askdbMode: string | undefined;
|
|
39
|
+
omitSensitiveFromPrompt: boolean;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Typed runtime view over the bootstrapped AskDB config snapshot.
|
|
43
|
+
*/
|
|
44
|
+
export type AskDbRuntimeConfig = {
|
|
45
|
+
readonly structured: Readonly<AskDbConfig>;
|
|
46
|
+
/** Canonical flattened map (subprocess env via {@link mergeAskDbFlatIntoEnvMap}). */
|
|
47
|
+
readonly flat: Readonly<Record<string, string>>;
|
|
48
|
+
ai: AskDbRuntimeAiConfig;
|
|
49
|
+
rag: AskDbRuntimeRagConfig;
|
|
50
|
+
logging: AskDbRuntimeLoggingConfig;
|
|
51
|
+
httpApi: AskDbRuntimeHttpApiConfig;
|
|
52
|
+
dev: AskDbRuntimeDevConfig;
|
|
53
|
+
modes: AskDbRuntimeModesConfig;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Returns typed runtime configuration from the snapshot installed by {@link bootstrapAskDbEnv}.
|
|
57
|
+
*/
|
|
58
|
+
export declare function getAskDbRuntimeConfig(): AskDbRuntimeConfig;
|
|
59
|
+
//# sourceMappingURL=runtime-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-config.d.ts","sourceRoot":"","sources":["../src/runtime-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1C,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,6BAA6B,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,uBAAuB,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC3C,qFAAqF;IACrF,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,EAAE,EAAE,oBAAoB,CAAC;IACzB,GAAG,EAAE,qBAAqB,CAAC;IAC3B,OAAO,EAAE,yBAAyB,CAAC;IACnC,OAAO,EAAE,yBAAyB,CAAC;IACnC,GAAG,EAAE,qBAAqB,CAAC;IAC3B,KAAK,EAAE,uBAAuB,CAAC;CAChC,CAAC;AAQF;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,kBAAkB,CAwD1D"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { flatToAiEnv, getAskDbRuntimeStore } from "./runtime-store.js";
|
|
2
|
+
function pickFlat(flat, key) {
|
|
3
|
+
const v = flat[key];
|
|
4
|
+
if (v === undefined || v.trim() === "")
|
|
5
|
+
return undefined;
|
|
6
|
+
return v.trim();
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Returns typed runtime configuration from the snapshot installed by {@link bootstrapAskDbEnv}.
|
|
10
|
+
*/
|
|
11
|
+
export function getAskDbRuntimeConfig() {
|
|
12
|
+
const { structured, flat } = getAskDbRuntimeStore();
|
|
13
|
+
const aiEnv = flatToAiEnv(flat);
|
|
14
|
+
const logStdoutRaw = pickFlat(flat, "ASKDB_LOG_STDOUT");
|
|
15
|
+
const logStdout = logStdoutRaw !== undefined && ["1", "true", "yes"].includes(logStdoutRaw.toLowerCase());
|
|
16
|
+
const portRaw = pickFlat(flat, "PORT");
|
|
17
|
+
const portParsed = portRaw !== undefined ? Number(portRaw) : NaN;
|
|
18
|
+
const port = structured.httpApi?.listen?.port ??
|
|
19
|
+
(!Number.isNaN(portParsed) ? portParsed : 3000);
|
|
20
|
+
const host = structured.httpApi?.listen?.host ?? pickFlat(flat, "HOST") ?? "127.0.0.1";
|
|
21
|
+
const omitRaw = pickFlat(flat, "ASKDB_OMIT_SENSITIVE_FROM_PROMPT");
|
|
22
|
+
const omitFromFlat = omitRaw !== undefined && ["1", "true", "yes"].includes(omitRaw.toLowerCase());
|
|
23
|
+
return {
|
|
24
|
+
structured,
|
|
25
|
+
flat,
|
|
26
|
+
ai: {
|
|
27
|
+
aiEnv,
|
|
28
|
+
tuiModel: structured.tui?.model ?? pickFlat(flat, "ASKDB_TUI_MODEL"),
|
|
29
|
+
studioModel: structured.studio?.model ?? pickFlat(flat, "ASKDB_STUDIO_MODEL"),
|
|
30
|
+
},
|
|
31
|
+
rag: {
|
|
32
|
+
embedder: {
|
|
33
|
+
apiKey: pickFlat(flat, "ASKDB_RAG_EMBEDDER_API_KEY") ??
|
|
34
|
+
pickFlat(flat, "ASKDB_AI_API_KEY") ??
|
|
35
|
+
pickFlat(flat, "OPENAI_API_KEY"),
|
|
36
|
+
baseURL: pickFlat(flat, "ASKDB_RAG_EMBEDDER_BASE_URL") ??
|
|
37
|
+
pickFlat(flat, "ASKDB_AI_BASE_URL") ??
|
|
38
|
+
pickFlat(flat, "OPENAI_BASE_URL"),
|
|
39
|
+
model: pickFlat(flat, "ASKDB_RAG_EMBEDDER_MODEL"),
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
logging: {
|
|
43
|
+
level: structured.logging?.level ?? pickFlat(flat, "ASKDB_LOG_LEVEL"),
|
|
44
|
+
correlationId: structured.logging?.correlationId ?? pickFlat(flat, "ASKDB_CORRELATION_ID"),
|
|
45
|
+
logFile: structured.logging?.logFile ?? pickFlat(flat, "ASKDB_LOG_FILE"),
|
|
46
|
+
logStdout,
|
|
47
|
+
},
|
|
48
|
+
httpApi: {
|
|
49
|
+
listen: { port, host },
|
|
50
|
+
},
|
|
51
|
+
dev: {
|
|
52
|
+
mockSql: structured.dev?.mockSql ?? pickFlat(flat, "ASKDB_MOCK_SQL"),
|
|
53
|
+
},
|
|
54
|
+
modes: {
|
|
55
|
+
askdbMode: structured.modes?.askdbMode ?? pickFlat(flat, "ASKDB_MODE"),
|
|
56
|
+
omitSensitiveFromPrompt: Boolean(structured.modes?.omitSensitiveFromPrompt) || omitFromFlat,
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=runtime-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-config.js","sourceRoot":"","sources":["../src/runtime-config.ts"],"names":[],"mappings":"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"}
|