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

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 CHANGED
@@ -88,6 +88,7 @@ const embeddingModel = config.ai.embedding
88
88
  - `defineConfig(config)` — returns an `AskDbEnvProjection` with `config` (structured) and `entries` (flattened canonical map).
89
89
  - `flattenAskDbConfig(config)` — nested config → flat canonical map (translates deprecated keys, applies defaults for optional values).
90
90
  - `bootstrapAskDbEnv(options?)` / `bootstrapAskDbRuntime` — load dotenv, load config, install the runtime snapshot.
91
+ - `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.
91
92
  - `loadAskDbConfigProjection(cwd)` / `loadAskDbConfigProjectionSync(cwd)` — load projection without installing the singleton (advanced / tests).
92
93
  - `discoverAskDbConfigPath(cwd)` — returns the resolved config path, if any.
93
94
  - `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.
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export { env, requiredEnv } from "./env.js";
6
6
  export { isAskDbDebugEnabled } from "./diagnostics.js";
7
7
  export { getAskDbRuntimeConfig, } from "./runtime-config.js";
8
8
  export type { AskDbRuntimeConfig, AskDbRuntimeAiConfig, AskDbRuntimeAiSection, AskDbRuntimeIntrospectionConfig, AskDbRuntimeRagConfig, AskDbRuntimeRagEmbedderConfig, AskDbRuntimeLoggingConfig, AskDbRuntimeHttpApiConfig, AskDbRuntimeDevConfig, AskDbRuntimeModesConfig, AskDbRuntimeNlToSqlConfig, AskDbRuntimeStudioConfig, } from "./runtime-config.js";
9
- export { mergeAskDbFlatIntoEnvMap, resetAskDbRuntimeForTests, setAskDbRuntimeForTests, } from "./runtime-store.js";
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_LOCAL_POSTGRES_URL, 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";
11
11
  export { defineConfig, isAskDbEnvProjection, ASKDB_ENV_PROJECTION } from "./projection.js";
12
12
  export type { AskDbEnvProjection } from "./projection.js";
@@ -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,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,0BAA0B,EAC1B,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,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,0BAA0B,EAC1B,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"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ export { bootstrapAskDbEnv, bootstrapAskDbRuntime } from "./bootstrap.js";
3
3
  export { env, requiredEnv } from "./env.js";
4
4
  export { isAskDbDebugEnabled } from "./diagnostics.js";
5
5
  export { getAskDbRuntimeConfig, } from "./runtime-config.js";
6
- export { mergeAskDbFlatIntoEnvMap, resetAskDbRuntimeForTests, setAskDbRuntimeForTests, } from "./runtime-store.js";
6
+ export { isAskDbRuntimeInitialized, mergeAskDbFlatIntoEnvMap, resetAskDbRuntimeForTests, setAskDbRuntimeForTests, } from "./runtime-store.js";
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_LOCAL_POSTGRES_URL, 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";
8
8
  export { defineConfig, isAskDbEnvProjection, ASKDB_ENV_PROJECTION } from "./projection.js";
9
9
  export { loadAskDbConfigProjection, loadAskDbConfigProjectionSync } from "./load-merge.js";
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,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,0BAA0B,EAC1B,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,0BAA0B,EAC1B,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"}
@@ -6,6 +6,11 @@ export type AskDbRuntimeStore = {
6
6
  };
7
7
  export declare function setAskDbRuntime(data: AskDbRuntimeStore): void;
8
8
  export declare function clearAskDbRuntime(): void;
9
+ /**
10
+ * `true` once `bootstrapAskDbEnv()` (or another installer) has set the runtime snapshot.
11
+ * A host-facing factory can use it to bootstrap only when its host hasn't already done so.
12
+ */
13
+ export declare function isAskDbRuntimeInitialized(): boolean;
9
14
  export declare function getAskDbRuntimeStore(): AskDbRuntimeStore;
10
15
  /** Build an env-shaped map for `@askdb/core` from the flattened runtime snapshot (not `process.env`). */
11
16
  export declare function flatToAiEnv(flat: Readonly<Record<string, string>>): Record<string, string | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-store.d.ts","sourceRoot":"","sources":["../src/runtime-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,uGAAuG;IACvG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACjD,CAAC;AAIF,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAE7D;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAQxD;AAED,yGAAyG;AACzG,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAEtG;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACrC,MAAM,CAAC,UAAU,CAQnB;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAErE;AAED,4BAA4B;AAC5B,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
1
+ {"version":3,"file":"runtime-store.d.ts","sourceRoot":"","sources":["../src/runtime-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,uGAAuG;IACvG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACjD,CAAC;AAYF,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAE7D;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAEnD;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CASxD;AAED,yGAAyG;AACzG,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAEtG;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,CAAC,UAAU,EACvB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACrC,MAAM,CAAC,UAAU,CAQnB;AAED,mFAAmF;AACnF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAErE;AAED,4BAA4B;AAC5B,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
@@ -1,11 +1,26 @@
1
- let stored;
1
+ /**
2
+ * The snapshot lives on `globalThis` under a registered symbol, not in a module variable, so every
3
+ * copy of `@askdb/config` in a process shares it: a host that bootstraps with its own version is
4
+ * seen by an app (such as `@askdb/http-api`) that depends on another. Keep `AskDbRuntimeStore`
5
+ * readable by older copies; a change they can't read needs a new key.
6
+ */
7
+ const RUNTIME_STORE_KEY = Symbol.for("askdb.runtimeStore");
8
+ const runtimeHolder = globalThis;
2
9
  export function setAskDbRuntime(data) {
3
- stored = data;
10
+ runtimeHolder[RUNTIME_STORE_KEY] = data;
4
11
  }
5
12
  export function clearAskDbRuntime() {
6
- stored = undefined;
13
+ delete runtimeHolder[RUNTIME_STORE_KEY];
14
+ }
15
+ /**
16
+ * `true` once `bootstrapAskDbEnv()` (or another installer) has set the runtime snapshot.
17
+ * A host-facing factory can use it to bootstrap only when its host hasn't already done so.
18
+ */
19
+ export function isAskDbRuntimeInitialized() {
20
+ return runtimeHolder[RUNTIME_STORE_KEY] !== undefined;
7
21
  }
8
22
  export function getAskDbRuntimeStore() {
23
+ const stored = runtimeHolder[RUNTIME_STORE_KEY];
9
24
  if (!stored) {
10
25
  throw new Error("AskDB runtime is not initialized. Call bootstrapAskDbEnv() (or bootstrapAskDbRuntime()) from @askdb/config after startup, " +
11
26
  "typically with the project cwd, and ensure askdb.config.* exists.");
@@ -31,10 +46,10 @@ export function mergeAskDbFlatIntoEnvMap(base, flat) {
31
46
  }
32
47
  /** @internal Tests only — replaces the runtime store without loading from disk. */
33
48
  export function setAskDbRuntimeForTests(data) {
34
- stored = data;
49
+ setAskDbRuntime(data);
35
50
  }
36
51
  /** @internal Tests only. */
37
52
  export function resetAskDbRuntimeForTests() {
38
- stored = undefined;
53
+ clearAskDbRuntime();
39
54
  }
40
55
  //# sourceMappingURL=runtime-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-store.js","sourceRoot":"","sources":["../src/runtime-store.ts"],"names":[],"mappings":"AAQA,IAAI,MAAqC,CAAC;AAE1C,MAAM,UAAU,eAAe,CAAC,IAAuB;IACrD,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,4HAA4H;YAC1H,mEAAmE,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,WAAW,CAAC,IAAsC;IAChE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAAuB,EACvB,IAAsC;IAEtC,MAAM,GAAG,GAAsB,EAAE,GAAG,IAAI,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACpB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,uBAAuB,CAAC,IAAuB;IAC7D,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,yBAAyB;IACvC,MAAM,GAAG,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"runtime-store.js","sourceRoot":"","sources":["../src/runtime-store.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,MAAM,iBAAiB,GAAkB,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAE1E,MAAM,aAAa,GAAG,UAA6E,CAAC;AAEpG,MAAM,UAAU,eAAe,CAAC,IAAuB;IACrD,aAAa,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO,aAAa,CAAC,iBAAiB,CAAC,KAAK,SAAS,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,MAAM,MAAM,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,4HAA4H;YAC1H,mEAAmE,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,WAAW,CAAC,IAAsC;IAChE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAAuB,EACvB,IAAsC;IAEtC,MAAM,GAAG,GAAsB,EAAE,GAAG,IAAI,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACpB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,uBAAuB,CAAC,IAAuB;IAC7D,eAAe,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,yBAAyB;IACvC,iBAAiB,EAAE,CAAC;AACtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askdb/config",
3
- "version": "1.0.0-beta.13",
3
+ "version": "1.0.0-beta.14",
4
4
  "description": "AskDB configuration helpers: Prisma-style env() and askdb.config file discovery for first-party apps.",
5
5
  "keywords": [
6
6
  "askdb",