/** * The client agents — web frontend, flags-admin console, mobile app — * one shared base over the leaf executor, differing exactly where the * interfaces differ: the browser clients execute their UI tests locally, * the mobile agent only declares its remote job names (execution is the * orchestrator's deterministic remote composition) and owns the smoke * layer. * * Fan-out sessions may discover the contract cannot support their item; * the task text gives them a sentinel (a CONTRACT GAP final message) and * the role turns it into ContractGapDiscovered — the renegotiation loop's * input, never a workaround. */ import type { ClientAgent, LocallyTestedClientAgent } from "./client-agent.js"; import type { FlagsAdminAgent } from "./flags-admin-agent.js"; import type { FrontendAgent } from "./frontend-agent.js"; import type { MobileAppAgent } from "./mobile-app-agent.js"; import { type RoleContext } from "./claude-role.js"; export declare function claudeFrontendAgent(context: RoleContext): FrontendAgent; export declare function claudeFlagsAdminAgent(context: RoleContext): FlagsAdminAgent; export declare function claudeMobileAgent(context: RoleContext): MobileAppAgent; export type { ClientAgent, LocallyTestedClientAgent };