opencode-process.ts 769 B

123456789101112131415161718192021222324
  1. export const OPENCODE_RUN_ID = "OPENCODE_RUN_ID"
  2. export const OPENCODE_PROCESS_ROLE = "OPENCODE_PROCESS_ROLE"
  3. export function ensureRunID() {
  4. return (process.env[OPENCODE_RUN_ID] ??= crypto.randomUUID())
  5. }
  6. export function ensureProcessRole(fallback: "main" | "worker") {
  7. return (process.env[OPENCODE_PROCESS_ROLE] ??= fallback)
  8. }
  9. export function ensureProcessMetadata(fallback: "main" | "worker") {
  10. return {
  11. runID: ensureRunID(),
  12. processRole: ensureProcessRole(fallback),
  13. }
  14. }
  15. export function sanitizedProcessEnv(overrides?: Record<string, string>) {
  16. const env = Object.fromEntries(
  17. Object.entries(process.env).filter((entry): entry is [string, string] => entry[1] !== undefined),
  18. )
  19. return overrides ? Object.assign(env, overrides) : env
  20. }