Something went wrong. Try again.
presents omp as codex for use with chatgpt remote
Something went wrong. Try again.
2.7 kB · 60 lines
JavaScript
at main
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061import os from "node:os";import path from "node:path";import { readJson } from "./util.mjs";
export class BridgeConfig { constructor(values = {}, file = null) { this.file = file; this.backend = values.backend || null; this.defaultModel = values.defaultModel || values.default_model || null; this.modelAliases = values.modelAliases || values.model_aliases || {}; this.modelCatalog = values.modelCatalog || values.model_catalog || {}; this.defaultApprovalPolicy = values.defaultApprovalPolicy || values.approvalPolicy || "on-request"; this.defaultReasoningEffort = values.defaultReasoningEffort || values.reasoningEffort || "medium"; this.workspaceIsolation = values.workspaceIsolation || values.workspace_isolation || "none"; this.sessionOptions = values.sessionOptions || {}; }
resolveModel(model) { const initial = !model ? this.defaultModel : (typeof model === "string" ? model : (model.id || model.model || this.defaultModel)); if (!initial) return null; let current = initial; const seen = new Set(); while (current && this.modelAliases[current] && !seen.has(current)) { seen.add(current); current = this.modelAliases[current]; } return current; }
publicView() { return { backend: this.backend, defaultModel: this.defaultModel, modelAliases: this.modelAliases, modelCatalog: this.modelCatalog, defaultApprovalPolicy: this.defaultApprovalPolicy, defaultReasoningEffort: this.defaultReasoningEffort, workspaceIsolation: this.workspaceIsolation, }; }}
export async function loadBridgeConfig(file = process.env.OMP_CODEX_CONFIG || path.join(os.homedir(), ".omp", "codex-bridge", "config.json")) { const values = await readJson(file, {}); let envAliases = null; if (process.env.OMP_CODEX_MODEL_ALIASES) { try { envAliases = JSON.parse(process.env.OMP_CODEX_MODEL_ALIASES); } catch {} } return new BridgeConfig({ ...values, ...(process.env.OMP_CODEX_BACKEND ? { backend: process.env.OMP_CODEX_BACKEND } : {}), ...(process.env.OMP_CODEX_DEFAULT_MODEL ? { defaultModel: process.env.OMP_CODEX_DEFAULT_MODEL } : {}), ...(process.env.OMP_CODEX_DEFAULT_REASONING_EFFORT ? { defaultReasoningEffort: process.env.OMP_CODEX_DEFAULT_REASONING_EFFORT } : {}), ...(process.env.OMP_CODEX_APPROVAL_POLICY ? { defaultApprovalPolicy: process.env.OMP_CODEX_APPROVAL_POLICY } : {}), ...(process.env.OMP_CODEX_WORKSPACE_ISOLATION ? { workspaceIsolation: process.env.OMP_CODEX_WORKSPACE_ISOLATION } : {}), ...(envAliases ? { modelAliases: { ...(values.modelAliases || values.model_aliases || {}), ...envAliases } } : {}), }, file);}