export function isRecord(value) {
    return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
}
export function stringList(value) {
    return Array.isArray(value) ? value.map((item) => String(item)).filter(Boolean) : [];
}
export function isCodexAppHarnessMatrix(value) {
    if (!isRecord(value))
        return false;
    if (value.schema !== 'sks.codex-app-harness-matrix.v1')
        return false;
    const app = value.app_features;
    const sks = value.sks_integrations;
    return isRecord(app)
        && isRecord(sks)
        && typeof value.ok === 'boolean'
        && isRecord(value.codex_cli)
        && Array.isArray(value.blockers)
        && Array.isArray(value.warnings);
}
//# sourceMappingURL=codex-app-types.js.map