import { g as loadOpenClawPlugins } from "./subagent-registry-BdCHUwJF.js";
import { o as createSubsystemLogger } from "./entry.js";
import "./auth-profiles-BGjbqScX.js";
import "./exec-CBKBIMpA.js";
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-p68ICeNQ.js";
import "./github-copilot-token-CyWpbkHJ.js";
import "./model-OTR4fRIX.js";
import "./pi-model-discovery-BDrA0RUW.js";
import "./frontmatter-DRl3Sa-X.js";
import "./skills-Ho_2X6WT.js";
import "./manifest-registry-CYUiqtAr.js";
import { i as loadConfig } from "./config-xHYx2cij.js";
import "./client-fwA5zyHb.js";
import "./call-BOB-Te5P.js";
import "./message-channel-B9mgJ1nn.js";
import "./sessions-BwDGf9Sn.js";
import "./tokens-DNhq_l0Z.js";
import "./normalize-B8nBEyAK.js";
import "./accounts-BSDGn_Eo.js";
import "./bindings-B_ZIo7YE.js";
import "./logging-5MtSkLpb.js";
import "./send-YkSDctU7.js";
import "./plugins-B1ojCJHx.js";
import "./send-CsZYxWdf.js";
import "./with-timeout-DEXcYOPT.js";
import "./deliver-5Uvc7ymL.js";
import "./diagnostic-BrjZno3V.js";
import "./diagnostic-session-state-CAYi3DRc.js";
import "./accounts-DUB7WjhZ.js";
import "./send-33rhg_bg.js";
import "./image-ops-DGYdb3fh.js";
import "./pi-embedded-helpers-DoMXOCkN.js";
import "./sandbox-CZanUXAq.js";
import "./chrome-DfrRhznb.js";
import "./tailscale-D9FK-yno.js";
import "./auth-BFCCBoWg.js";
import "./server-context-DvoYRfwN.js";
import "./routes-ClCMoQG_.js";
import "./redact-BfDi6wIJ.js";
import "./errors-DNW-UCMb.js";
import "./paths-DqOyyjUy.js";
import "./ssrf-B_uizFky.js";
import "./store-CORMGVx_.js";
import "./ports-LWH8Y0_f.js";
import "./trash-B891j_cA.js";
import "./dock-BPcuR3ve.js";
import "./accounts-SnH-42ge.js";
import "./paths-DT4MkPF0.js";
import "./tool-images-DLc1ZwCt.js";
import "./thinking-O_pp2Bz3.js";
import "./models-config-xKUJ-Jlr.js";
import "./reply-prefix-CrkNe8Gp.js";
import "./memory-cli-Guckbc8M.js";
import "./manager-DnbrWcSO.js";
import "./gemini-auth-BF-a5GeR.js";
import "./sqlite-DZTdGqNd.js";
import "./retry-DtzRtCu9.js";
import "./common-Bi2yGPsV.js";
import "./chunk-DkEDZgsU.js";
import "./markdown-tables-I-50wDdr.js";
import "./fetch-guard-sWUTAYEJ.js";
import "./fetch-CfzM3qfj.js";
import "./ir-WbjhHhfd.js";
import "./render-CCLsW6Lz.js";
import "./commands-registry-D8TQrvT9.js";
import "./image-CWNvCgXH.js";
import "./tool-display-Ch60dmIj.js";
import "./runner-BWzWj3vE.js";
import "./model-catalog-CCane-Jh.js";
import "./session-utils-BeS2v05U.js";
import "./skill-commands-DVP91_MZ.js";
import "./workspace-dirs-CpIMMjZW.js";
import "./pairing-store-DM_ihkC1.js";
import "./fetch-mirEALun.js";
import "./nodes-screen-BNyvvjYY.js";
import "./session-cost-usage-BCIITMRg.js";
import "./project-context-DhXARJNC.js";
import "./control-service-DziHPGgw.js";
import "./stagger-BCQzFuQi.js";
import "./channel-selection-DV8cpKuI.js";
import "./send-BquvUhjS.js";
import "./outbound-attachment-DAzLnDoa.js";
import "./delivery-queue-CL2en3fg.js";
import "./send-D5voy0Gs.js";
import "./resolve-route-CAxji0MH.js";
import "./channel-activity-OK2g2kgk.js";
import "./tables-7XAEudlg.js";
import "./proxy-YU8wp1-L.js";
import "./links-rnbUL9h5.js";
import "./cli-utils-f9j-_1VT.js";
import "./help-format-5GFCgEVf.js";
import "./progress-Clpi3Ckj.js";
import "./replies-B4l-Q3Tx.js";
import "./pi-tools.policy-Cadm9ZgR.js";
import "./onboard-helpers-COs8NEvA.js";
import "./prompt-style-B_yUCLn4.js";
import "./pairing-labels-H_LS1HI0.js";

//#region src/plugins/cli.ts
const log = createSubsystemLogger("plugins");
function registerPluginCliCommands(program, cfg) {
	const config = cfg ?? loadConfig();
	const workspaceDir = resolveAgentWorkspaceDir(config, resolveDefaultAgentId(config));
	const logger = {
		info: (msg) => log.info(msg),
		warn: (msg) => log.warn(msg),
		error: (msg) => log.error(msg),
		debug: (msg) => log.debug(msg)
	};
	const registry = loadOpenClawPlugins({
		config,
		workspaceDir,
		logger
	});
	const existingCommands = new Set(program.commands.map((cmd) => cmd.name()));
	for (const entry of registry.cliRegistrars) {
		if (entry.commands.length > 0) {
			const overlaps = entry.commands.filter((command) => existingCommands.has(command));
			if (overlaps.length > 0) {
				log.debug(`plugin CLI register skipped (${entry.pluginId}): command already registered (${overlaps.join(", ")})`);
				continue;
			}
		}
		try {
			const result = entry.register({
				program,
				config,
				workspaceDir,
				logger
			});
			if (result && typeof result.then === "function") result.catch((err) => {
				log.warn(`plugin CLI register failed (${entry.pluginId}): ${String(err)}`);
			});
			for (const command of entry.commands) existingCommands.add(command);
		} catch (err) {
			log.warn(`plugin CLI register failed (${entry.pluginId}): ${String(err)}`);
		}
	}
}

//#endregion
export { registerPluginCliCommands };