diff --git a/src/auto-reply/reply/commands.ts b/src/auto-reply/reply/commands.ts index 12c24d067..894550896 100644 --- a/src/auto-reply/reply/commands.ts +++ b/src/auto-reply/reply/commands.ts @@ -657,10 +657,16 @@ export async function handleCommands(params: { }; } const snapshot = await readConfigFileSnapshot(); - if (!snapshot.valid || !snapshot.parsed || typeof snapshot.parsed !== "object") { + if ( + !snapshot.valid || + !snapshot.parsed || + typeof snapshot.parsed !== "object" + ) { return { shouldContinue: false, - reply: { text: "⚠️ Config file is invalid; fix it before using /config." }, + reply: { + text: "⚠️ Config file is invalid; fix it before using /config.", + }, }; } const parsedBase = structuredClone( diff --git a/src/auto-reply/reply/config-commands.test.ts b/src/auto-reply/reply/config-commands.test.ts index f73d6d4f6..a1d19f039 100644 --- a/src/auto-reply/reply/config-commands.test.ts +++ b/src/auto-reply/reply/config-commands.test.ts @@ -5,7 +5,10 @@ import { parseConfigCommand } from "./config-commands.js"; describe("parseConfigCommand", () => { it("parses show/unset", () => { expect(parseConfigCommand("/config")).toEqual({ action: "show" }); - expect(parseConfigCommand("/config show")).toEqual({ action: "show", path: undefined }); + expect(parseConfigCommand("/config show")).toEqual({ + action: "show", + path: undefined, + }); expect(parseConfigCommand("/config show foo.bar")).toEqual({ action: "show", path: "foo.bar", diff --git a/src/auto-reply/reply/config-value.ts b/src/auto-reply/reply/config-value.ts index 0c3037975..f57a2820a 100644 --- a/src/auto-reply/reply/config-value.ts +++ b/src/auto-reply/reply/config-value.ts @@ -1,6 +1,7 @@ -export function parseConfigValue( - raw: string, -): { value?: unknown; error?: string } { +export function parseConfigValue(raw: string): { + value?: unknown; + error?: string; +} { const trimmed = raw.trim(); if (!trimmed) return { error: "Missing value." }; @@ -22,7 +23,7 @@ export function parseConfigValue( } if ( - (trimmed.startsWith("\"") && trimmed.endsWith("\"")) || + (trimmed.startsWith('"') && trimmed.endsWith('"')) || (trimmed.startsWith("'") && trimmed.endsWith("'")) ) { try { diff --git a/src/config/config-paths.ts b/src/config/config-paths.ts index 73eebb698..f89dcb246 100644 --- a/src/config/config-paths.ts +++ b/src/config/config-paths.ts @@ -9,11 +9,17 @@ export function parseConfigPath(raw: string): { } { const trimmed = raw.trim(); if (!trimmed) { - return { ok: false, error: "Invalid path. Use dot notation (e.g. foo.bar)." }; + return { + ok: false, + error: "Invalid path. Use dot notation (e.g. foo.bar).", + }; } const parts = trimmed.split(".").map((part) => part.trim()); if (parts.some((part) => !part)) { - return { ok: false, error: "Invalid path. Use dot notation (e.g. foo.bar)." }; + return { + ok: false, + error: "Invalid path. Use dot notation (e.g. foo.bar).", + }; } if (parts.some((part) => BLOCKED_KEYS.has(part))) { return { ok: false, error: "Invalid path segment." }; @@ -66,10 +72,7 @@ export function unsetConfigValueAtPath( return true; } -export function getConfigValueAtPath( - root: PathNode, - path: string[], -): unknown { +export function getConfigValueAtPath(root: PathNode, path: string[]): unknown { let cursor: unknown = root; for (const key of path) { if (!isPlainObject(cursor)) return undefined; diff --git a/src/config/runtime-overrides.ts b/src/config/runtime-overrides.ts index 347c589c2..0c2047ff6 100644 --- a/src/config/runtime-overrides.ts +++ b/src/config/runtime-overrides.ts @@ -1,9 +1,9 @@ -import type { ClawdbotConfig } from "./types.js"; import { parseConfigPath, setConfigValueAtPath, unsetConfigValueAtPath, } from "./config-paths.js"; +import type { ClawdbotConfig } from "./types.js"; type OverrideTree = Record; @@ -58,7 +58,11 @@ export function unsetConfigOverride(pathRaw: string): { } { const parsed = parseConfigPath(pathRaw); if (!parsed.ok || !parsed.path) { - return { ok: false, removed: false, error: parsed.error ?? "Invalid path." }; + return { + ok: false, + removed: false, + error: parsed.error ?? "Invalid path.", + }; } const removed = unsetConfigValueAtPath(overrides, parsed.path); return { ok: true, removed };