Files
IdeA/frontend/src/adapters/index.ts

66 lines
1.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 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 (L2L9) 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<void> {
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,
};