style: fix biome formatting

This commit is contained in:
Peter Steinberger
2026-01-10 02:11:43 +00:00
parent afe6f182ca
commit 003cda73e8
5 changed files with 32 additions and 15 deletions

View File

@@ -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(

View File

@@ -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",

View File

@@ -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 {

View File

@@ -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;

View File

@@ -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<string, unknown>;
@@ -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 };