Files
workinf_Blender_Wasm/web/protocol/capability-gates.ts
2026-08-12 04:47:48 -04:00

32 lines
1.0 KiB
TypeScript

import type { ErrorCode } from "./error";
export interface CapabilityIssue {
code: ErrorCode;
message: string;
path?: string;
recoverable: boolean;
}
export interface CapabilityGateResult {
taskId: "N-011" | "N-012" | "N-013" | "N-014" | "N-015" | "N-018" | "N-020" | "N-021" | "N-022" | "N-023" | "N-024" | "N-025" | "N-026" | "PBR-007" | "PBR-008" | "PBR-009" | "PBR-010" | "PBR-011" | "PBR-012";
capability: string;
status: "READY" | "BLOCKED";
issues: CapabilityIssue[];
}
export function readyGate(taskId: CapabilityGateResult["taskId"], capability: string): CapabilityGateResult {
return { taskId, capability, status: "READY", issues: [] };
}
export function blockedGate(
taskId: CapabilityGateResult["taskId"],
capability: string,
issues: CapabilityIssue[],
): CapabilityGateResult {
return { taskId, capability, status: "BLOCKED", issues };
}
export function capabilityIssue(code: ErrorCode, message: string, path?: string, recoverable = true): CapabilityIssue {
return { code, message, path, recoverable };
}