MCPcopy Create free account
hub / github.com/TraderAlice/OpenAlice / loadConfig

Function loadConfig

src/workspaces/config.ts:77–138  ·  view source on GitHub ↗
(opts: LoadConfigOptions)

Source from the content-addressed store, hash-verified

75}
76
77export function loadConfig(opts: LoadConfigOptions): ServerConfig {
78 const env = opts.env ?? process.env;
79
80 const command = parseCommand(env['WEB_TERMINAL_COMMAND']);
81
82 // Guardian-injected Vite dev-server port; 5173 when running without the
83 // orchestrator (standalone Vite, prod — where no UI origin drift exists).
84 const uiPort = parseIntEnv(env['OPENALICE_UI_PORT'], 5173, 1, 65535);
85 const originsRaw = (env['WEB_TERMINAL_ALLOWED_ORIGINS'] ?? buildDefaultOrigins(opts.webPort, uiPort).join(','))
86 .split(',')
87 .map((s) => s.trim())
88 .filter(Boolean);
89 const allowAnyOrigin = originsRaw.includes('*');
90 const allowedOrigins = new Set(originsRaw.filter((s) => s !== '*'));
91
92 const bpHigh = parseIntEnv(env['WEB_TERMINAL_BP_HIGH'], DEFAULT_HIGH_WM, 1024, 1024 * 1024 * 1024);
93 const bpLow = parseIntEnv(env['WEB_TERMINAL_BP_LOW'], DEFAULT_LOW_WM, 0, bpHigh);
94 const shutdownTimeoutMs = parseIntEnv(
95 env['WEB_TERMINAL_SHUTDOWN_MS'],
96 DEFAULT_SHUTDOWN_MS,
97 100,
98 60_000,
99 );
100 const replayBufferBytes = parseIntEnv(
101 env['WEB_TERMINAL_REPLAY_BYTES'],
102 DEFAULT_REPLAY_BYTES,
103 1024,
104 64 * 1024 * 1024,
105 );
106
107 const launcherRoot = resolve(
108 env['AQ_LAUNCHER_ROOT'] ?? join(homedir(), '.openalice', 'workspaces'),
109 );
110 const templatesDir = resolve(env['AQ_TEMPLATES_DIR'] ?? templatesPath());
111 const legacyBootstrapScript = env['AQ_BOOTSTRAP_SCRIPT']
112 ? resolve(env['AQ_BOOTSTRAP_SCRIPT'])
113 : null;
114 const templateDir = env['AQ_TEMPLATE_DIR'] ? resolve(env['AQ_TEMPLATE_DIR']) : '';
115 const bootstrapTimeoutMs = parseIntEnv(
116 env['AQ_BOOTSTRAP_TIMEOUT_MS'],
117 DEFAULT_BOOTSTRAP_TIMEOUT_MS,
118 1_000,
119 600_000,
120 );
121 const launcherRepoRoot = computeLauncherRepoRoot();
122
123 return {
124 command,
125 allowedOrigins,
126 allowAnyOrigin,
127 bpHighWatermarkBytes: bpHigh,
128 bpLowWatermarkBytes: bpLow,
129 shutdownTimeoutMs,
130 replayBufferBytes,
131 launcherRoot,
132 templatesDir,
133 legacyBootstrapScript,
134 templateDir,

Callers 3

config.spec.tsFile · 0.70
createWorkspaceServiceFunction · 0.70
createConfigRoutesFunction · 0.50

Calls 5

parseCommandFunction · 0.85
parseIntEnvFunction · 0.85
buildDefaultOriginsFunction · 0.85
templatesPathFunction · 0.85
computeLauncherRepoRootFunction · 0.85

Tested by

no test coverage detected