openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
36 lines (35 loc) • 1.18 kB
JavaScript
import { l as readConfigFileSnapshotForWrite } from "./io.runtime-B9iJRs3w.js";
import { r as replaceConfigFile } from "./mutate-ZNN4iFCn.js";
import "./config-Cs0XXL3x.js";
import { r as hasConfiguredCommandOwners, t as formatCommandOwnerFromChannelSender } from "./doctor-command-owner-BMpVjvKQ.js";
//#region src/pairing/command-owner.ts
/** Adds the approved sender as command owner only when no owner exists yet. */
async function bootstrapCommandOwnerFromPairing(params) {
const ownerEntry = formatCommandOwnerFromChannelSender(params);
if (!ownerEntry) return {
ownerEntry: null,
status: "unavailable"
};
const { snapshot, writeOptions } = await readConfigFileSnapshotForWrite();
if (hasConfiguredCommandOwners(snapshot.sourceConfig)) return {
ownerEntry,
status: "already-configured"
};
const nextConfig = structuredClone(snapshot.sourceConfig);
nextConfig.commands = {
...nextConfig.commands,
ownerAllowFrom: [ownerEntry]
};
await replaceConfigFile({
nextConfig,
snapshot,
writeOptions,
afterWrite: { mode: "auto" }
});
return {
ownerEntry,
status: "configured"
};
}
//#endregion
export { bootstrapCommandOwnerFromPairing as t };