import type { ContractorAgentMetadata } from "../types/contractor.js"; const CONTRACTOR_MODEL = "contractor-agent/contractor-claude-bridge"; type AgentConfig = { id: string; workspace?: string; model?: string; }; /** * Determine whether an agent is a contractor-backed Claude agent and return its metadata. * Contractor agents are identified by their model string — we do NOT use a custom * runtime.type because OpenClaw's schema only allows "embedded" or "acp". * Returns null if the agent is not contractor-backed. */ export function resolveContractorAgentMetadata( agentConfig: AgentConfig, permissionMode: string, ): ContractorAgentMetadata | null { if (agentConfig.model !== CONTRACTOR_MODEL) return null; const workspace = agentConfig.workspace; if (!workspace) return null; return { agentId: agentConfig.id, contractor: "claude", bridgeModel: "contractor-claude-bridge", workspace, permissionMode, }; }