@cat-factory/node-server 0.107.12 → 0.107.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.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,SAAS,EAMV,MAAM,qBAAqB,CAAA;AAgK5B;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAO9C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAmYhE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,SAAS,EAMV,MAAM,qBAAqB,CAAA;AAgK5B;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAO9C;AAoWD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAuFhE"}
package/dist/config.js CHANGED
@@ -145,21 +145,16 @@ export function cloudflareCredsHalfSet(env) {
145
145
  ? { set: 'CLOUDFLARE_ACCOUNT_ID', missing: 'CLOUDFLARE_API_TOKEN' }
146
146
  : { set: 'CLOUDFLARE_API_TOKEN', missing: 'CLOUDFLARE_ACCOUNT_ID' };
147
147
  }
148
- export function loadNodeConfig(env) {
149
- // Validate the system encryption key up front: present, valid base64, and decoding to a full
150
- // AES-256 key. It is effectively mandatory (the always-on document/task integrations below seal
151
- // credentials at rest under it), so a missing/malformed key fails here with an actionable message
152
- // rather than lazily inside the first cipher build (a bare "must decode to at least 32 bytes" or
153
- // an opaque `atob` error). Mirrors the Worker's `loadConfig` and local mode's secret validation.
154
- requireEncryptionKey(env.ENCRYPTION_KEY);
155
- // Deployment-level capabilities: direct keys are per-workspace (resolved at run time
156
- // from the DB pool), so none are known here; Cloudflare Workers AI is opt-in over
157
- // REST (account id + API token). The per-workspace `/models` endpoint recomputes
158
- // selectability against each workspace's configured keys + subscriptions.
159
- // Cloudflare Workers AI over REST needs BOTH the account id and the API token. A
160
- // half-set pair silently disables the provider, so a deployment that set only one reads
161
- // as "Cloudflare not configured" with no hint the other half is the gap. Name the
162
- // missing half at boot (error-message coverage A10).
148
+ /**
149
+ * Deployment-level model capabilities. Direct keys are per-workspace (resolved at run time
150
+ * from the DB pool), so none are known here; Cloudflare Workers AI is opt-in over REST
151
+ * (account id + API token). The per-workspace `/models` endpoint recomputes selectability
152
+ * against each workspace's configured keys + subscriptions. A half-set Cloudflare pair
153
+ * silently disables the provider, so a deployment that set only one reads as "Cloudflare not
154
+ * configured" with no hint the other half is the gap — name the missing half at boot
155
+ * (error-message coverage A10).
156
+ */
157
+ function resolveProviderCaps(env) {
163
158
  const cfAccountId = env.CLOUDFLARE_ACCOUNT_ID?.trim();
164
159
  const cfApiToken = env.CLOUDFLARE_API_TOKEN?.trim();
165
160
  const cfHalfSet = cloudflareCredsHalfSet(env);
@@ -168,18 +163,22 @@ export function loadNodeConfig(env) {
168
163
  `(over REST) needs both, so it stays DISABLED. Set ${cfHalfSet.missing} too, or unset ` +
169
164
  `${cfHalfSet.set}. See ${DOCS.envVars(ENV_VARS_ANCHORS.modelProviders)}.`);
170
165
  }
171
- const caps = {
166
+ return {
172
167
  directProviders: new Set(),
173
168
  subscriptionVendors: new Set(ALL_SUBSCRIPTION_VENDORS),
174
169
  cloudflareEnabled: !!(cfAccountId && cfApiToken),
175
170
  };
176
- // Default unpinned agents to Qwen (the Cloudflare flavour when enabled, upgraded to
177
- // direct DashScope per-workspace by the executor when a Qwen key is configured); the
178
- // agentic kinds default to GLM-5.2 mirroring the Worker's routing.
171
+ }
172
+ /**
173
+ * Agent model routing (default + per-kind overrides + the per-block resolver). Mirrors the
174
+ * Worker's routing: unpinned agents default to Qwen (the Cloudflare flavour when enabled,
175
+ * upgraded to direct DashScope per-workspace by the executor when a Qwen key is configured);
176
+ * the agentic kinds default to GLM-5.2. The two numeric knobs are parsed ONCE (each is read
177
+ * across every config below, and `parseNumericEnv` warns per call, so hoisting collapses a
178
+ * single garbage value to one warning per var — A8).
179
+ */
180
+ function buildAgentRouting(env, caps) {
179
181
  const qwenDefault = resolveModelRef('qwen', caps);
180
- // Parse the two shared numeric knobs ONCE: each is read across every model config
181
- // below, and `parseNumericEnv` warns per call, so a single garbage value would emit
182
- // one warning per site. Hoisting collapses that to one warning per var (A8).
183
182
  const envTemperature = num('AGENT_DEFAULT_TEMPERATURE', env.AGENT_DEFAULT_TEMPERATURE);
184
183
  const envMaxOutputTokens = num('AGENT_MAX_OUTPUT_TOKENS', env.AGENT_MAX_OUTPUT_TOKENS);
185
184
  const defaultConfig = {
@@ -214,19 +213,34 @@ export function loadNodeConfig(env) {
214
213
  temperature: envTemperature ?? 0.3,
215
214
  maxOutputTokens: envMaxOutputTokens ?? 5000,
216
215
  };
217
- const sessionSecret = env.AUTH_SESSION_SECRET?.trim() ?? '';
218
- // The GitHub App (private key + app id) backs container-agent runs: it mints the
219
- // short-lived push token the harness clones/pushes with. Enable the integration
220
- // only when both are present (the container executor also requires it — see
221
- // container.ts), so a partial config doesn't half-enable repo-operating steps.
216
+ return {
217
+ routing: {
218
+ default: defaultConfig,
219
+ byKind: {
220
+ architect: agenticDefault,
221
+ coder: agenticDefault,
222
+ reviewer: companionDefault,
223
+ 'spec-companion': companionDefault,
224
+ 'architect-companion': companionDefault,
225
+ 'conflict-resolver': conflictResolverDefault,
226
+ },
227
+ },
228
+ resolveBlockModel: (modelId) => resolveModelRef(modelId, caps),
229
+ };
230
+ }
231
+ /**
232
+ * The GitHub App integration config + its boot-time key-shape validation. The App (private key
233
+ * + app id) backs container-agent runs: it mints the short-lived push token the harness
234
+ * clones/pushes with, so the integration enables only when both are present (a partial config
235
+ * doesn't half-enable repo-operating steps). The App key's SHAPE is validated at boot (present
236
+ * + PKCS#8 PEM + decodable body) whenever the App is configured, so a malformed key fails on the
237
+ * misconfigured screen with the openssl conversion remedy instead of opaquely at the first
238
+ * installation-token mint (error-message coverage A3). The privileged tier is validated on the
239
+ * SAME condition `loadPrivilegedApp` activates it (both id AND key present).
240
+ */
241
+ function buildGithubConfig(env) {
222
242
  const githubAppId = env.GITHUB_APP_ID?.trim() ?? '';
223
243
  const githubAppConfigured = githubAppId !== '' && (env.GITHUB_APP_PRIVATE_KEY?.trim() ?? '') !== '';
224
- // Validate the App private key's SHAPE at boot (present + PKCS#8 PEM + decodable body) whenever
225
- // the App is configured, so a malformed key fails on the misconfigured screen with the openssl
226
- // conversion remedy instead of opaquely at the first installation-token mint (error-message
227
- // coverage A3). The privileged tier is validated on the SAME condition `loadPrivilegedApp`
228
- // activates it (both id AND key present) — validating a key with no id would fail boot on a
229
- // credential the privileged tier never consumes and diverge from the Worker's `loadPrivilegedApp`.
230
244
  if (githubAppConfigured)
231
245
  requireGitHubAppPrivateKey(env.GITHUB_APP_PRIVATE_KEY);
232
246
  const privilegedAppId = env.GITHUB_PRIVILEGED_APP_ID?.trim() ?? '';
@@ -234,17 +248,26 @@ export function loadNodeConfig(env) {
234
248
  if (privilegedAppId !== '' && privilegedAppKey !== '') {
235
249
  requireGitHubAppPrivateKey(env.GITHUB_PRIVILEGED_APP_PRIVATE_KEY, 'GITHUB_PRIVILEGED_APP_PRIVATE_KEY');
236
250
  }
237
- // Self-hosted runner pools encrypt their scheduler credentials at rest; opt-in via
238
- // the enable flag, sealed with the shared ENCRYPTION_KEY (mirroring the Worker).
239
- const runnersEncryptionKey = env.ENCRYPTION_KEY?.trim() ?? '';
240
- const detectionConventions = parseDetectionConventions(env.ENVIRONMENTS_DETECTION_CONVENTIONS);
241
- // Slack notification transport: opt-in (SLACK_ENABLED), the per-account bot token
242
- // sealed with the shared ENCRYPTION_KEY. OAuth credentials are optional (manual
243
- // bot-token onboarding works without them); when set they enable "Add to Slack".
244
- const slackEnabled = env.SLACK_ENABLED?.trim() === 'true';
245
- const slackEncryptionKey = env.ENCRYPTION_KEY?.trim() ?? '';
246
- // Slack app OAuth credentials moved out of env into per-account settings (sealed),
247
- // resolved dynamically at connect time — see AccountSettingsService.
251
+ return {
252
+ enabled: githubAppConfigured,
253
+ appId: env.GITHUB_APP_ID?.trim() ?? '',
254
+ appSlug: env.GITHUB_APP_SLUG?.trim() ?? '',
255
+ apiBase: env.GITHUB_API_BASE?.trim() || 'https://api.github.com',
256
+ setupRedirectUrl: env.GITHUB_SETUP_REDIRECT_URL?.trim() || '/',
257
+ webhookSecret: env.GITHUB_WEBHOOK_SECRET ?? '',
258
+ privilegedApp: loadPrivilegedApp(env),
259
+ };
260
+ }
261
+ /**
262
+ * Auth config: which login providers are enabled, plus the two fail-fast boot guards. Remote
263
+ * node mode has NO anonymous tier, so a genuinely unconfigured remote deployment refuses to
264
+ * boot rather than silently 503-ing every protected route. GitHub OAuth set with a missing/too-
265
+ * short session secret (and no dev-open fallback) is the same silent-brick footgun. Local mode
266
+ * always enables password login via `applyLocalDefaults`, and the test/CI harnesses opt into
267
+ * AUTH_DEV_OPEN, so neither trips these guards.
268
+ */
269
+ function buildAuthConfig(env) {
270
+ const sessionSecret = env.AUTH_SESSION_SECRET?.trim() ?? '';
248
271
  const clientId = env.GITHUB_OAUTH_CLIENT_ID?.trim() ?? '';
249
272
  const clientSecret = env.GITHUB_OAUTH_CLIENT_SECRET?.trim() ?? '';
250
273
  const googleClientId = env.GOOGLE_OAUTH_CLIENT_ID?.trim() ?? '';
@@ -277,17 +300,168 @@ export function loadNodeConfig(env) {
277
300
  docsUrl: ENV_HELP.AUTH_SESSION_SECRET.docsUrl,
278
301
  });
279
302
  }
280
- // Remote node mode has NO anonymous tier: a hosted deployment must be able to sign a
281
- // user in from the very first request. So refuse to boot when no login provider is
282
- // configured AND the dev-open test hatch is off — rather than silently leaving auth
283
- // disabled and 503-ing every protected route (a confusing half-brick that reads like a
284
- // bug, not a misconfiguration). Local mode always enables password login via
285
- // `applyLocalDefaults`, and the test/CI harnesses opt into AUTH_DEV_OPEN, so neither
286
- // trips this; only a genuinely unconfigured remote deployment does.
287
303
  const authEnabled = githubEnabled || googleEnabled || passwordEnabled;
288
304
  if (!authEnabled && !devOpen) {
289
305
  throw configProblem({ key: 'AUTH_PROVIDER', ...ENV_HELP.AUTH_PROVIDER });
290
306
  }
307
+ return {
308
+ enabled: authEnabled,
309
+ devOpen,
310
+ testingNoAuth,
311
+ githubEnabled,
312
+ clientId,
313
+ clientSecret,
314
+ sessionSecret,
315
+ apiBase: env.GITHUB_API_BASE?.trim() || 'https://api.github.com',
316
+ oauthBase: env.GITHUB_OAUTH_BASE?.trim() || 'https://github.com',
317
+ sessionTtlMs: (ttlHours !== undefined && ttlHours > 0 ? ttlHours : 168) * 60 * 60 * 1000,
318
+ machineTokenTtlMs: resolveMachineTokenTtlMs(env.AUTH_MACHINE_TOKEN_TTL_MS),
319
+ successRedirectUrl: env.AUTH_SUCCESS_REDIRECT_URL?.trim() || '',
320
+ callbackUrl: env.AUTH_CALLBACK_URL?.trim() || '',
321
+ passwordEnabled,
322
+ // Open (un-gated) signup is a local-mode convenience; hosted defaults stay
323
+ // invite/email-domain-gated. `applyLocalDefaults` flips it on for local mode.
324
+ openSignup: env.AUTH_OPEN_SIGNUP?.trim() === 'true',
325
+ ...(googleEnabled
326
+ ? {
327
+ google: {
328
+ clientId: googleClientId,
329
+ clientSecret: googleClientSecret,
330
+ redirectUrl: env.GOOGLE_OAUTH_REDIRECT_URL?.trim() || '',
331
+ },
332
+ }
333
+ : {}),
334
+ allowedEmailDomains: csv(env.AUTH_ALLOWED_EMAIL_DOMAINS).map((d) => d.toLowerCase()),
335
+ allowedLogins: csv(env.AUTH_ALLOWED_LOGINS).map((l) => l.toLowerCase()),
336
+ allowedOrgs: csv(env.AUTH_ALLOWED_ORGS).map((o) => o.toLowerCase()),
337
+ allowedRedirectOrigins: csv(env.AUTH_ALLOWED_REDIRECT_ORIGINS).map((o) => {
338
+ try {
339
+ return new URL(o).origin;
340
+ }
341
+ catch {
342
+ return o;
343
+ }
344
+ }),
345
+ };
346
+ }
347
+ /**
348
+ * Auth-email config. Available whenever an encryption key exists — there is no separate opt-in
349
+ * flag. The per-account provider API key is sealed with that key. The deployment-level `system`
350
+ * sender (auth emails like password reset) is read entirely from env and is independent of the
351
+ * per-account connections, so it loads regardless of `enabled`.
352
+ */
353
+ function buildEmailConfig(env) {
354
+ const appBaseUrl = env.APP_BASE_URL?.trim() || env.AUTH_SUCCESS_REDIRECT_URL?.trim() || '';
355
+ const system = loadSystemEmailSender(env);
356
+ const encryptionKey = env.ENCRYPTION_KEY?.trim();
357
+ return encryptionKey
358
+ ? { enabled: true, encryptionKey, appBaseUrl, system }
359
+ : { enabled: false, appBaseUrl, system };
360
+ }
361
+ /**
362
+ * Ephemeral-environment provider integration (a tenant rolls its own environment-management
363
+ * API): assembles from the shared ENCRYPTION_KEY that seals per-tenant credentials at rest, with
364
+ * no separate enable flag, mirroring the Worker.
365
+ */
366
+ function buildEnvironmentsConfig(env) {
367
+ const detectionConventions = parseDetectionConventions(env.ENVIRONMENTS_DETECTION_CONVENTIONS);
368
+ return {
369
+ encryptionKey: env.ENCRYPTION_KEY?.trim(),
370
+ // Trusted-adapter escape hatch: permit an in-house env platform on an
371
+ // internal/VPN host (otherwise the strict public-https guard rejects it).
372
+ allowUrlHosts: csv(env.ENVIRONMENTS_ALLOW_URL_HOSTS),
373
+ allowHttpUrls: env.ENVIRONMENTS_ALLOW_HTTP_URLS === 'true',
374
+ // Additive house-convention extensions to provisioning detection (JSON object).
375
+ ...(detectionConventions ? { detectionConventions } : {}),
376
+ };
377
+ }
378
+ /**
379
+ * Self-hosted runner pools encrypt their scheduler credentials at rest; opt-in via the presence
380
+ * of an ENCRYPTION_KEY, sealed with that shared key (mirroring the Worker).
381
+ */
382
+ function buildRunnersConfig(env) {
383
+ const runnersEncryptionKey = env.ENCRYPTION_KEY?.trim() ?? '';
384
+ return runnersEncryptionKey
385
+ ? {
386
+ enabled: true,
387
+ encryptionKey: runnersEncryptionKey,
388
+ allowUrlHosts: csv(env.RUNNERS_ALLOW_URL_HOSTS),
389
+ allowHttpUrls: env.RUNNERS_ALLOW_HTTP_URLS === 'true',
390
+ }
391
+ : { enabled: false };
392
+ }
393
+ /** Retention windows (ms) for the append-heavy telemetry/log tables. */
394
+ function buildRetentionConfig(env) {
395
+ return {
396
+ tokenUsageMs: retentionMs('TOKEN_USAGE_RETENTION_DAYS', env.TOKEN_USAGE_RETENTION_DAYS, 395),
397
+ rateLimitMs: retentionMs('GITHUB_RATE_LIMIT_RETENTION_DAYS', env.GITHUB_RATE_LIMIT_RETENTION_DAYS, 7),
398
+ commitMs: retentionMs('GITHUB_COMMIT_RETENTION_DAYS', env.GITHUB_COMMIT_RETENTION_DAYS, 90),
399
+ // Heavy full per-call prompt/response; pruned aggressively (default 3 days).
400
+ llmCallMetricsMs: retentionMs('LLM_CALL_METRICS_RETENTION_DAYS', env.LLM_CALL_METRICS_RETENTION_DAYS, 3),
401
+ // High-churn provisioning event log; pruned aggressively (default 14 days).
402
+ provisioningLogMs: retentionMs('PROVISIONING_LOG_RETENTION_DAYS', env.PROVISIONING_LOG_RETENTION_DAYS, 14),
403
+ // Resolved (acted/dismissed) notifications; generous default of 90 days. Open
404
+ // cards (the actionable inbox) are never pruned.
405
+ notificationsMs: retentionMs('NOTIFICATION_RETENTION_DAYS', env.NOTIFICATION_RETENTION_DAYS, 90),
406
+ };
407
+ }
408
+ /**
409
+ * Optional Langfuse trace sink: off unless `LANGFUSE_ENABLED=true` AND both keys are present (a
410
+ * half-configured sink silently does nothing). Mirrors the Worker mapping.
411
+ */
412
+ function buildLangfuseConfig(env) {
413
+ return {
414
+ enabled: env.LANGFUSE_ENABLED?.trim() === 'true' &&
415
+ !!env.LANGFUSE_PUBLIC_KEY?.trim() &&
416
+ !!env.LANGFUSE_SECRET_KEY?.trim(),
417
+ publicKey: env.LANGFUSE_PUBLIC_KEY?.trim(),
418
+ secretKey: env.LANGFUSE_SECRET_KEY?.trim(),
419
+ baseUrl: env.LANGFUSE_BASE_URL?.trim() || undefined,
420
+ };
421
+ }
422
+ /**
423
+ * Optional OpenTelemetry OTLP exporter: off unless `OTEL_ENABLED=true` AND an endpoint is set (a
424
+ * half-configured exporter silently does nothing, like every other opt-in integration). On Node
425
+ * this uses the official @opentelemetry/* SDK (see container.ts).
426
+ */
427
+ function buildOtelConfig(env) {
428
+ const otelEnabled = env.OTEL_ENABLED?.trim() === 'true' && !!env.OTEL_EXPORTER_OTLP_ENDPOINT?.trim();
429
+ return {
430
+ enabled: otelEnabled,
431
+ endpoint: env.OTEL_EXPORTER_OTLP_ENDPOINT?.trim() || undefined,
432
+ headers: parseOtlpHeaders(env.OTEL_EXPORTER_OTLP_HEADERS),
433
+ serviceName: env.OTEL_SERVICE_NAME?.trim() || undefined,
434
+ platformMetrics: {
435
+ // A further opt-in on top of the base exporter (adds recurring DB rollup load).
436
+ enabled: otelEnabled && env.OTEL_PLATFORM_METRICS?.trim() === 'true',
437
+ intervalMs: parsePlatformMetricsIntervalMs(env.OTEL_PLATFORM_METRICS_INTERVAL_MS),
438
+ window: parsePlatformMetricsWindow(env.OTEL_PLATFORM_METRICS_WINDOW),
439
+ },
440
+ };
441
+ }
442
+ /**
443
+ * Execution engine timing knobs (durable poll/CI intervals + container max age), each defaulting
444
+ * to the Worker's values.
445
+ */
446
+ function buildExecutionConfig(env) {
447
+ return {
448
+ decisionTimeout: env.DECISION_TIMEOUT?.trim() || '24 hours',
449
+ jobPollInterval: env.JOB_POLL_INTERVAL?.trim() || '15 seconds',
450
+ jobMaxPolls: num('JOB_MAX_POLLS', env.JOB_MAX_POLLS) ?? 280,
451
+ jobPollFailureTolerance: num('JOB_POLL_FAILURE_TOLERANCE', env.JOB_POLL_FAILURE_TOLERANCE) ?? 6,
452
+ ciPollInterval: env.CI_POLL_INTERVAL?.trim() || '30 seconds',
453
+ ciMaxPolls: num('CI_MAX_POLLS', env.CI_MAX_POLLS) ?? 120,
454
+ containerMaxAgeMs: Math.max(75, num('CONTAINER_MAX_AGE_MINUTES', env.CONTAINER_MAX_AGE_MINUTES) ?? 90) * 60_000,
455
+ };
456
+ }
457
+ export function loadNodeConfig(env) {
458
+ // Validate the system encryption key up front: present, valid base64, and decoding to a full
459
+ // AES-256 key. It is effectively mandatory (the always-on document/task integrations below seal
460
+ // credentials at rest under it), so a missing/malformed key fails here with an actionable message
461
+ // rather than lazily inside the first cipher build (a bare "must decode to at least 32 bytes" or
462
+ // an opaque `atob` error). Mirrors the Worker's `loadConfig` and local mode's secret validation.
463
+ requireEncryptionKey(env.ENCRYPTION_KEY);
464
+ const caps = resolveProviderCaps(env);
291
465
  // The deployment-level BASE pricing (built-in table + the fallback currency/monthly-limit
292
466
  // a workspace inherits when it sets no budget of its own). The per-workspace budget moved
293
467
  // out of env (`SPEND_*`) onto the workspace settings row; the spend service overlays it.
@@ -297,128 +471,29 @@ export function loadNodeConfig(env) {
297
471
  ...DEFAULT_SPEND_PRICING,
298
472
  ...budgetCapsOverlay(num('BUDGET_MAX_MONTHLY_PER_ACCOUNT', env.BUDGET_MAX_MONTHLY_PER_ACCOUNT), num('BUDGET_MAX_MONTHLY_PER_USER', env.BUDGET_MAX_MONTHLY_PER_USER)),
299
473
  };
300
- // OpenTelemetry OTLP exporter: on only with `OTEL_ENABLED=true` AND an endpoint (a
301
- // half-configured exporter silently does nothing, like every other opt-in integration).
302
- const otelEnabled = env.OTEL_ENABLED?.trim() === 'true' && !!env.OTEL_EXPORTER_OTLP_ENDPOINT?.trim();
474
+ const slackEncryptionKey = env.ENCRYPTION_KEY?.trim() ?? '';
475
+ // Slack notification transport: opt-in (SLACK_ENABLED), the per-account bot token
476
+ // sealed with the shared ENCRYPTION_KEY. OAuth credentials moved out of env into
477
+ // per-account settings (sealed), resolved dynamically at connect time.
478
+ const slackEnabled = env.SLACK_ENABLED?.trim() === 'true';
303
479
  return {
304
- agents: {
305
- routing: {
306
- default: defaultConfig,
307
- byKind: {
308
- architect: agenticDefault,
309
- coder: agenticDefault,
310
- reviewer: companionDefault,
311
- 'spec-companion': companionDefault,
312
- 'architect-companion': companionDefault,
313
- 'conflict-resolver': conflictResolverDefault,
314
- },
315
- },
316
- resolveBlockModel: (modelId) => resolveModelRef(modelId, caps),
317
- },
480
+ agents: buildAgentRouting(env, caps),
318
481
  // Surface each model's informational list cost in the picker (from spend pricing).
319
482
  models: effectiveCatalog(caps, modelCostResolver(spend)),
320
- execution: {
321
- decisionTimeout: env.DECISION_TIMEOUT?.trim() || '24 hours',
322
- jobPollInterval: env.JOB_POLL_INTERVAL?.trim() || '15 seconds',
323
- jobMaxPolls: num('JOB_MAX_POLLS', env.JOB_MAX_POLLS) ?? 280,
324
- jobPollFailureTolerance: num('JOB_POLL_FAILURE_TOLERANCE', env.JOB_POLL_FAILURE_TOLERANCE) ?? 6,
325
- ciPollInterval: env.CI_POLL_INTERVAL?.trim() || '30 seconds',
326
- ciMaxPolls: num('CI_MAX_POLLS', env.CI_MAX_POLLS) ?? 120,
327
- containerMaxAgeMs: Math.max(75, num('CONTAINER_MAX_AGE_MINUTES', env.CONTAINER_MAX_AGE_MINUTES) ?? 90) *
328
- 60_000,
329
- },
483
+ execution: buildExecutionConfig(env),
330
484
  spend,
331
- github: {
332
- enabled: githubAppConfigured,
333
- appId: env.GITHUB_APP_ID?.trim() ?? '',
334
- appSlug: env.GITHUB_APP_SLUG?.trim() ?? '',
335
- apiBase: env.GITHUB_API_BASE?.trim() || 'https://api.github.com',
336
- setupRedirectUrl: env.GITHUB_SETUP_REDIRECT_URL?.trim() || '/',
337
- webhookSecret: env.GITHUB_WEBHOOK_SECRET ?? '',
338
- privilegedApp: loadPrivilegedApp(env),
339
- },
485
+ github: buildGithubConfig(env),
340
486
  gitlab: loadGitLabConfig(env),
341
- auth: {
342
- enabled: authEnabled,
343
- devOpen,
344
- testingNoAuth,
345
- githubEnabled,
346
- clientId,
347
- clientSecret,
348
- sessionSecret,
349
- apiBase: env.GITHUB_API_BASE?.trim() || 'https://api.github.com',
350
- oauthBase: env.GITHUB_OAUTH_BASE?.trim() || 'https://github.com',
351
- sessionTtlMs: (ttlHours !== undefined && ttlHours > 0 ? ttlHours : 168) * 60 * 60 * 1000,
352
- machineTokenTtlMs: resolveMachineTokenTtlMs(env.AUTH_MACHINE_TOKEN_TTL_MS),
353
- successRedirectUrl: env.AUTH_SUCCESS_REDIRECT_URL?.trim() || '',
354
- callbackUrl: env.AUTH_CALLBACK_URL?.trim() || '',
355
- passwordEnabled,
356
- // Open (un-gated) signup is a local-mode convenience; hosted defaults stay
357
- // invite/email-domain-gated. `applyLocalDefaults` flips it on for local mode.
358
- openSignup: env.AUTH_OPEN_SIGNUP?.trim() === 'true',
359
- ...(googleEnabled
360
- ? {
361
- google: {
362
- clientId: googleClientId,
363
- clientSecret: googleClientSecret,
364
- redirectUrl: env.GOOGLE_OAUTH_REDIRECT_URL?.trim() || '',
365
- },
366
- }
367
- : {}),
368
- allowedEmailDomains: csv(env.AUTH_ALLOWED_EMAIL_DOMAINS).map((d) => d.toLowerCase()),
369
- allowedLogins: csv(env.AUTH_ALLOWED_LOGINS).map((l) => l.toLowerCase()),
370
- allowedOrgs: csv(env.AUTH_ALLOWED_ORGS).map((o) => o.toLowerCase()),
371
- allowedRedirectOrigins: csv(env.AUTH_ALLOWED_REDIRECT_ORIGINS).map((o) => {
372
- try {
373
- return new URL(o).origin;
374
- }
375
- catch {
376
- return o;
377
- }
378
- }),
379
- },
380
- // Email is available whenever an encryption key exists — there is no separate opt-in
381
- // flag. The per-account provider API key is sealed with that key. The deployment-level
382
- // `system` sender (auth emails like password reset) is read entirely from env and is
383
- // independent of the per-account connections, so it loads regardless of `enabled`.
384
- email: env.ENCRYPTION_KEY?.trim()
385
- ? {
386
- enabled: true,
387
- encryptionKey: env.ENCRYPTION_KEY.trim(),
388
- appBaseUrl: env.APP_BASE_URL?.trim() || env.AUTH_SUCCESS_REDIRECT_URL?.trim() || '',
389
- system: loadSystemEmailSender(env),
390
- }
391
- : {
392
- enabled: false,
393
- appBaseUrl: env.APP_BASE_URL?.trim() || env.AUTH_SUCCESS_REDIRECT_URL?.trim() || '',
394
- system: loadSystemEmailSender(env),
395
- },
487
+ auth: buildAuthConfig(env),
488
+ email: buildEmailConfig(env),
396
489
  // Document-source integration: the providers (Confluence/Notion/GitHub-docs) are
397
490
  // the shared `@cat-factory/integrations` fetch shells, wired in the container
398
491
  // exactly like the Worker's `selectDocumentsDeps`. Always on (the shared
399
492
  // ENCRYPTION_KEY backs credential encryption at rest).
400
493
  documents: loadDocumentsConfig(env),
401
494
  tasks: loadTasksConfig(env),
402
- // Ephemeral-environment provider integration (a tenant rolls its own
403
- // environment-management API): assembles from the shared ENCRYPTION_KEY that seals
404
- // per-tenant credentials at rest, with no separate enable flag, mirroring the Worker.
405
- environments: {
406
- encryptionKey: env.ENCRYPTION_KEY?.trim(),
407
- // Trusted-adapter escape hatch: permit an in-house env platform on an
408
- // internal/VPN host (otherwise the strict public-https guard rejects it).
409
- allowUrlHosts: csv(env.ENVIRONMENTS_ALLOW_URL_HOSTS),
410
- allowHttpUrls: env.ENVIRONMENTS_ALLOW_HTTP_URLS === 'true',
411
- // Additive house-convention extensions to provisioning detection (JSON object).
412
- ...(detectionConventions ? { detectionConventions } : {}),
413
- },
414
- runners: runnersEncryptionKey
415
- ? {
416
- enabled: true,
417
- encryptionKey: runnersEncryptionKey,
418
- allowUrlHosts: csv(env.RUNNERS_ALLOW_URL_HOSTS),
419
- allowHttpUrls: env.RUNNERS_ALLOW_HTTP_URLS === 'true',
420
- }
421
- : { enabled: false },
495
+ environments: buildEnvironmentsConfig(env),
496
+ runners: buildRunnersConfig(env),
422
497
  slack: slackEnabled && slackEncryptionKey
423
498
  ? { enabled: true, encryptionKey: slackEncryptionKey }
424
499
  : { enabled: false },
@@ -429,18 +504,7 @@ export function loadNodeConfig(env) {
429
504
  releaseHealth: env.OBSERVABILITY_ENABLED === 'true' && env.ENCRYPTION_KEY?.trim()
430
505
  ? { enabled: true, encryptionKey: env.ENCRYPTION_KEY.trim() }
431
506
  : { enabled: false },
432
- retention: {
433
- tokenUsageMs: retentionMs('TOKEN_USAGE_RETENTION_DAYS', env.TOKEN_USAGE_RETENTION_DAYS, 395),
434
- rateLimitMs: retentionMs('GITHUB_RATE_LIMIT_RETENTION_DAYS', env.GITHUB_RATE_LIMIT_RETENTION_DAYS, 7),
435
- commitMs: retentionMs('GITHUB_COMMIT_RETENTION_DAYS', env.GITHUB_COMMIT_RETENTION_DAYS, 90),
436
- // Heavy full per-call prompt/response; pruned aggressively (default 3 days).
437
- llmCallMetricsMs: retentionMs('LLM_CALL_METRICS_RETENTION_DAYS', env.LLM_CALL_METRICS_RETENTION_DAYS, 3),
438
- // High-churn provisioning event log; pruned aggressively (default 14 days).
439
- provisioningLogMs: retentionMs('PROVISIONING_LOG_RETENTION_DAYS', env.PROVISIONING_LOG_RETENTION_DAYS, 14),
440
- // Resolved (acted/dismissed) notifications; generous default of 90 days. Open
441
- // cards (the actionable inbox) are never pruned.
442
- notificationsMs: retentionMs('NOTIFICATION_RETENTION_DAYS', env.NOTIFICATION_RETENTION_DAYS, 90),
443
- },
507
+ retention: buildRetentionConfig(env),
444
508
  // Prompt-fragment library (ADR 0006): on by default, opt OUT with
445
509
  // `PROMPT_LIBRARY_ENABLED=false`. Needs no encryption key (fragments are not
446
510
  // secrets) and its tables ship in the base schema. Mirrors the Worker's
@@ -453,30 +517,8 @@ export function loadNodeConfig(env) {
453
517
  // Recording the complete prompts is on by default; opt out with
454
518
  // `LLM_RECORD_PROMPTS=false` to keep the numeric telemetry but drop the prompt body.
455
519
  observability: { recordPrompts: env.LLM_RECORD_PROMPTS?.trim() !== 'false' },
456
- // Optional Langfuse trace sink: off unless `LANGFUSE_ENABLED=true` AND both keys are
457
- // present (a half-configured sink silently does nothing). Mirrors the Worker mapping.
458
- langfuse: {
459
- enabled: env.LANGFUSE_ENABLED?.trim() === 'true' &&
460
- !!env.LANGFUSE_PUBLIC_KEY?.trim() &&
461
- !!env.LANGFUSE_SECRET_KEY?.trim(),
462
- publicKey: env.LANGFUSE_PUBLIC_KEY?.trim(),
463
- secretKey: env.LANGFUSE_SECRET_KEY?.trim(),
464
- baseUrl: env.LANGFUSE_BASE_URL?.trim() || undefined,
465
- },
466
- // Optional OpenTelemetry OTLP exporter: off unless `OTEL_ENABLED=true` AND an endpoint
467
- // is set. On Node this uses the official @opentelemetry/* SDK (see container.ts).
468
- otel: {
469
- enabled: otelEnabled,
470
- endpoint: env.OTEL_EXPORTER_OTLP_ENDPOINT?.trim() || undefined,
471
- headers: parseOtlpHeaders(env.OTEL_EXPORTER_OTLP_HEADERS),
472
- serviceName: env.OTEL_SERVICE_NAME?.trim() || undefined,
473
- platformMetrics: {
474
- // A further opt-in on top of the base exporter (adds recurring DB rollup load).
475
- enabled: otelEnabled && env.OTEL_PLATFORM_METRICS?.trim() === 'true',
476
- intervalMs: parsePlatformMetricsIntervalMs(env.OTEL_PLATFORM_METRICS_INTERVAL_MS),
477
- window: parsePlatformMetricsWindow(env.OTEL_PLATFORM_METRICS_WINDOW),
478
- },
479
- },
520
+ langfuse: buildLangfuseConfig(env),
521
+ otel: buildOtelConfig(env),
480
522
  // Platform-health alerting: a periodic sweep raises a `platform_health` notification when
481
523
  // the deployment's own run health crosses a threshold. Opt-in (`PLATFORM_ALERTS=true`);
482
524
  // independent of the OTel exporter (it fans out through the notification channel seam).
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -329,26 +329,5 @@ export interface NodeContainerOptions {
329
329
  */
330
330
  contentStorageDefaultBackend?: ContentStorageBackend;
331
331
  }
332
- /**
333
- * Resolve which runner backend a workspace's container jobs dispatch to. The Node
334
- * facade has no built-in per-run container runtime (unlike the Worker's Cloudflare
335
- * Containers), so it serves a workspace's self-hosted runner pool when one is
336
- * registered and throws a clear error otherwise. Returns null (no transport at all)
337
- * when runner pools are not enabled. Mirrors the Worker's `buildResolveTransport`,
338
- * minus the Cloudflare-container path.
339
- */
340
- /**
341
- * The Node composition root: assemble the framework-agnostic domain `Core` with
342
- * Drizzle/Postgres repositories + Node implementations of the runtime ports, then
343
- * attach the shared-controller extras (`config`, the kind-spanning agent-run repo,
344
- * the runtime gateways). The same persistence is used in dev, test and prod — tests
345
- * run against a real Postgres, exactly as the Worker runs against a real D1.
346
- *
347
- * Repo-operating agent steps (coder, blueprints, merger, …) run in a container
348
- * dispatched to a workspace's self-hosted runner pool — the shared
349
- * `ContainerAgentExecutor`, exactly as on the Worker. When the prerequisites (GitHub
350
- * App, `PUBLIC_URL`, `AUTH_SESSION_SECRET`, `ENCRYPTION_KEY`) are absent the
351
- * composite still serves inline kinds but fails container kinds loudly.
352
- */
353
332
  export declare function buildNodeContainer(options: NodeContainerOptions): ServerContainer;
354
333
  //# sourceMappingURL=container.d.ts.map