Files
playbook/antigravity-awesome-skills/tools/lib/aas-v1/adapters/values.js
T
2026-07-18 00:02:59 +00:00

50 lines
2.1 KiB
JavaScript

"use strict";
const { hostConfigError } = require("./errors");
function assertString(value, field, maximum = 4096) {
if (typeof value !== "string" || value.length === 0 || value.length > maximum || value.includes("\0")) {
throw hostConfigError("AAS_ADAPTER_SERVER_INVALID", "invalidInput", { field });
}
return value;
}
function normalizeArgs(args) {
if (!Array.isArray(args) || args.length > 64) {
throw hostConfigError("AAS_ADAPTER_SERVER_INVALID", "invalidInput", { field: "args" });
}
return args.map((entry, index) => assertString(entry, `args[${index}]`));
}
function normalizeEnv(env) {
if (!env || typeof env !== "object" || Array.isArray(env) || Object.getPrototypeOf(env) !== Object.prototype) {
throw hostConfigError("AAS_ADAPTER_SERVER_INVALID", "invalidInput", { field: "env" });
}
const entries = Object.entries(env);
if (entries.length > 64) throw hostConfigError("AAS_ADAPTER_SERVER_INVALID", "invalidInput", { field: "env" });
return Object.fromEntries(entries.sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0).map(([key, value]) => [
assertString(key, "env.key", 256),
typeof value === "string" && value.length <= 8192 && !value.includes("\0")
? value
: (() => { throw hostConfigError("AAS_ADAPTER_SERVER_INVALID", "invalidInput", { field: `env.${key}` }); })(),
]));
}
function normalizeServer(host, server) {
if (!server || typeof server !== "object" || Array.isArray(server)) {
throw hostConfigError("AAS_ADAPTER_SERVER_INVALID", "invalidInput");
}
if (host === "codex") {
if (server.enabled !== undefined && typeof server.enabled !== "boolean") {
throw hostConfigError("AAS_ADAPTER_SERVER_INVALID", "invalidInput", { field: "enabled" });
}
return { command: assertString(server.command, "command"), args: normalizeArgs(server.args), enabled: server.enabled ?? true };
}
if (host === "claude") {
return { command: assertString(server.command, "command"), args: normalizeArgs(server.args), env: normalizeEnv(server.env ?? {}) };
}
throw hostConfigError("AAS_ADAPTER_HOST_UNSUPPORTED", "invalidInput", { host });
}
module.exports = { normalizeServer };