/** * Real Tauri adapters wiring the UI ports to the backend via `@tauri-apps/api`. * * Only {@link TauriSystemGateway} is fully wired in L1 (to the `health` * command). The remaining gateways are skeletons that throw `NOT_IMPLEMENTED` * until their lots (L2–L9) land — they exist so the DI surface is complete and * the app can run real-mode without the mock substituting everything. */ import type { GatewayError } from "@/domain"; import type { Gateways, RemoteGateway, } from "@/ports"; import { TauriSystemGateway } from "./system"; import { TauriAgentGateway } from "./agent"; import { TauriProjectGateway } from "./project"; import { TauriTerminalGateway } from "./terminal"; import { TauriLayoutGateway } from "./layout"; import { TauriProfileGateway } from "./profile"; import { TauriTemplateGateway } from "./template"; import { TauriSkillGateway } from "./skill"; import { TauriGitGateway } from "./git"; function notImplemented(what: string): never { const err: GatewayError = { code: "NOT_IMPLEMENTED", message: `${what} is not implemented yet (pending its lot).`, }; throw err; } class TauriRemoteGateway implements RemoteGateway { connect(): Promise { return notImplemented("RemoteGateway.connect"); } } /** Builds the full set of real Tauri-backed gateways. */ export function createTauriGateways(): Gateways { return { system: new TauriSystemGateway(), agent: new TauriAgentGateway(), terminal: new TauriTerminalGateway(), project: new TauriProjectGateway(), layout: new TauriLayoutGateway(), git: new TauriGitGateway(), remote: new TauriRemoteGateway(), profile: new TauriProfileGateway(), template: new TauriTemplateGateway(), skill: new TauriSkillGateway(), }; } export { TauriSystemGateway, TauriAgentGateway, TauriProjectGateway, TauriTerminalGateway, TauriLayoutGateway, TauriProfileGateway, TauriTemplateGateway, TauriSkillGateway, TauriGitGateway, };