function resolveTransport(value: unknown): CodexAppServerTransportMode { return value === "websocket" ? "websocket" : "stdio";
}
function resolvePolicyMode(value: unknown): CodexAppServerPolicyMode | undefined { return value === "guardian" || value === "yolo" ? value : undefined;
}
function resolveApprovalPolicy(value: unknown): CodexAppServerApprovalPolicy | undefined { return value === "on-request" ||
value === "on-failure" ||
value === "untrusted" ||
value === "never"
? value
: undefined;
}
function resolveSandbox(value: unknown): CodexAppServerSandboxMode | undefined { return value === "read-only" || value === "workspace-write" || value === "danger-full-access"
? value
: undefined;
}
function resolveApprovalsReviewer(value: unknown): CodexAppServerApprovalsReviewer | undefined { return value === "auto_review" || value === "guardian_subagent" || value === "user"
? value
: undefined;
}
function resolveServiceTier(value: unknown): CodexServiceTier | undefined { return value === "fast" || value === "flex" ? value : undefined;
}
function normalizePositiveNumber(value: unknown, fallback: number): number { returntypeof value === "number" && Number.isFinite(value) && value > 0 ? value : fallback;
}
function normalizeHeaders(value: unknown): Record<string, string> { if (!value || typeof value !== "object" || Array.isArray(value)) { return {};
} return Object.fromEntries(
Object.entries(value)
.map(([key, child]) => [key.trim(), readNonEmptyString(child)] as const)
.filter((entry): entry is readonly [string, string] => Boolean(entry[0] && entry[1])),
);
}
function resolveArgs(configArgs: unknown, envArgs: string | undefined): string[] { if (Array.isArray(configArgs)) { return configArgs
.map((entry) => readNonEmptyString(entry))
.filter((entry): entry is string => entry !== undefined);
} if (typeof configArgs === "string") { return splitShellWords(configArgs);
} return splitShellWords(envArgs ?? "");
}
function readNonEmptyString(value: unknown): string | undefined { if (typeof value !== "string") { return undefined;
} const trimmed = value.trim(); return trimmed || undefined;
}
function hashSecretForKey(value: string | undefined): string | null { if (!value) { returnnull;
} return createHash("sha256").update(value).digest("hex");
}
function splitShellWords(value: string): string[] { const words: string[] = [];
let current = "";
let quote: '"' | "'" | null = null; for (constchar of value) { if (quote) { if (char === quote) {
quote = null;
} else {
current += char;
} continue;
} if (char === '"' || char === "'") {
quote = char; continue;
} if (/\s/.test(char)) { if (current) {
words.push(current);
current = "";
} continue;
}
current += char;
} if (current) {
words.push(current);
} return words;
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.10Bemerkung:
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.