chat-ui-agent-runtime / pi-args.mjs
Mike0021's picture
Add Pi approval policy gate
f27ecd9 verified
Raw History Blame Contribute Delete
1.09 kB
export const APPROVAL_EXTENSION_PATH = "/opt/chat-ui-agent/approval-gate.mjs";
/** Build deterministic Pi RPC arguments while loading the approval gate exactly once. */
export function buildPiArgs(prefixArgs, environment = {}) {
const args = Array.isArray(prefixArgs) ? [...prefixArgs] : [];
if (!hasExtension(args, APPROVAL_EXTENSION_PATH)) {
args.push("--extension", APPROVAL_EXTENSION_PATH);
}
args.push("--mode", "rpc", "--approve");
if (environment.PI_PROVIDER) args.push("--provider", environment.PI_PROVIDER);
if (environment.PI_MODEL) args.push("--model", environment.PI_MODEL);
if (environment.PI_SESSION_DIR) args.push("--session-dir", environment.PI_SESSION_DIR);
if (environment.PI_SESSION_NAME) args.push("--name", environment.PI_SESSION_NAME);
if (environment.PI_CONTINUE === "1") args.push("--continue");
return args;
}
function hasExtension(args, expectedPath) {
return args.some((argument, index) => {
if (argument === "--extension" || argument === "-e") return args[index + 1] === expectedPath;
return argument === `--extension=${expectedPath}`;
});
}