mirror of
https://github.com/garrytan/gstack.git
synced 2026-06-22 01:30:03 +02:00
93c8a8a729
Refactor lib/conductor-env-shim.ts to export promoteConductorEnv() so unit tests can manipulate env and call it directly (a bare side- effect IIFE on import isn't reachable from bun:test once cached). The on-import IIFE still runs — existing four-entry-point imports keep working unchanged. test/conductor-env-shim.test.ts covers all three branches: GSTACK_FOO present + FOO empty → promotion; FOO already set → no-overwrite; nothing in env → no-op. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
19 lines
703 B
TypeScript
19 lines
703 B
TypeScript
/**
|
|
* Conductor workspaces don't inherit the user's interactive shell env, so the
|
|
* canonical ANTHROPIC_API_KEY / OPENAI_API_KEY may be missing while
|
|
* Conductor's GSTACK_-prefixed forms are present. Promote the GSTACK_ form to
|
|
* canonical when canonical is empty, so subprocesses (gbrain embed,
|
|
* @anthropic-ai/claude-agent-sdk, etc) pick it up.
|
|
*
|
|
* Import this for its side effect: `import "../lib/conductor-env-shim";`
|
|
*/
|
|
export function promoteConductorEnv(): void {
|
|
for (const key of ["ANTHROPIC_API_KEY", "OPENAI_API_KEY"] as const) {
|
|
if (!process.env[key] && process.env[`GSTACK_${key}`]) {
|
|
process.env[key] = process.env[`GSTACK_${key}`];
|
|
}
|
|
}
|
|
}
|
|
|
|
promoteConductorEnv();
|