Claude a663764ee8
feat(media): contracts and foundation for Media Studio
Freeze the shared contracts every Media Studio slice builds on: zod DTOs,
EDL, platform profile, brand kit, gate and render plan schemas; the media
RPC surface with a scaffold router; provider interfaces for sources,
inference, rendering, motion graphics and publishing; media background
jobs; the Prisma models and migration; and the @rakazo/media domain
package signatures.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0138YqDj3ttfayRwuMKKrqVj
2026-10-03 17:32:52 +00:00

39 lines
1.1 KiB
TypeScript

import type { PlatformProfile, PlatformProfileSummary } from "@rakazo/contracts";
import { notImplemented } from "./not-implemented.js";
export const PROFILE_STALE_DAYS = 90;
export interface ProfileLoadError {
file: string;
message: string;
}
export interface ProfileSet {
profiles: Map<string, { profile: PlatformProfile; origin: "builtin" | "private" }>;
errors: ProfileLoadError[];
}
/** Parse raw JSON documents; invalid ones become errors and are skipped whole. */
export function parseProfiles(_documents: Array<{ file: string; json: unknown }>): {
profiles: PlatformProfile[];
errors: ProfileLoadError[];
} {
return notImplemented("parseProfiles");
}
/** Private profiles override builtin ones with the same id. */
export function mergeProfiles(
_builtin: PlatformProfile[],
_private: PlatformProfile[],
): ProfileSet {
return notImplemented("mergeProfiles");
}
export function summarizeProfile(
_profile: PlatformProfile,
_origin: "builtin" | "private",
_now: Date,
): PlatformProfileSummary {
return notImplemented("summarizeProfile");
}