fix(config): preserve disabled arrays during partial parsing
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -11,6 +11,15 @@ import {
|
|||||||
migrateConfigFile,
|
migrateConfigFile,
|
||||||
} from "./shared";
|
} from "./shared";
|
||||||
|
|
||||||
|
const PARTIAL_STRING_ARRAY_KEYS = new Set([
|
||||||
|
"disabled_mcps",
|
||||||
|
"disabled_agents",
|
||||||
|
"disabled_skills",
|
||||||
|
"disabled_hooks",
|
||||||
|
"disabled_commands",
|
||||||
|
"disabled_tools",
|
||||||
|
]);
|
||||||
|
|
||||||
export function parseConfigPartially(
|
export function parseConfigPartially(
|
||||||
rawConfig: Record<string, unknown>
|
rawConfig: Record<string, unknown>
|
||||||
): OhMyOpenCodeConfig | null {
|
): OhMyOpenCodeConfig | null {
|
||||||
@@ -23,6 +32,14 @@ export function parseConfigPartially(
|
|||||||
const invalidSections: string[] = [];
|
const invalidSections: string[] = [];
|
||||||
|
|
||||||
for (const key of Object.keys(rawConfig)) {
|
for (const key of Object.keys(rawConfig)) {
|
||||||
|
if (PARTIAL_STRING_ARRAY_KEYS.has(key)) {
|
||||||
|
const sectionValue = rawConfig[key];
|
||||||
|
if (Array.isArray(sectionValue) && sectionValue.every((value) => typeof value === "string")) {
|
||||||
|
partialConfig[key] = sectionValue;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
const sectionResult = OhMyOpenCodeConfigSchema.safeParse({ [key]: rawConfig[key] });
|
const sectionResult = OhMyOpenCodeConfigSchema.safeParse({ [key]: rawConfig[key] });
|
||||||
if (sectionResult.success) {
|
if (sectionResult.success) {
|
||||||
const parsed = sectionResult.data as Record<string, unknown>;
|
const parsed = sectionResult.data as Record<string, unknown>;
|
||||||
|
|||||||
Reference in New Issue
Block a user