{"version":3,"file":"render.mjs","names":[],"sources":["../../../src/services/deploy/render.ts"],"sourcesContent":["import { Context } from \"effect\";\n\n/** One workspace bundle upload's outcome, for the Upload section (#431): the\n * train reports WHAT happened in target order; the renderer decides HOW it\n * shows (one line by default, detail behind --verbose). */\nexport interface UploadOutcomeRender {\n  key: string;\n  ok: boolean;\n  /** the bundle base URL — undefined only for a no-op workspace */\n  base?: string;\n  uploaded?: number;\n  skipped?: number;\n  durationMs?: number;\n  /** attributed detail lines (diff skips, manifest pin, source archive) —\n   * shown only when verbose */\n  detailNotes?: string[];\n}\n\nexport interface PublishSectionRender {\n  registryUrl: string;\n  fingerprint: string;\n  /** slot → pin line, in config order */\n  slotPins: Array<[string, string]>;\n  /** the per-deploy audit manifest's filename */\n  auditManifestFile: string;\n}\n\n/**\n * The deploy train's presentation seam (#431): sections render through this\n * interface — Build reuses `WorkspaceBuildRender`, Upload/Publish flow through\n * here — so services never print and parallel units can never interleave.\n */\nexport interface DeployTrainRender {\n  cdnBanner?(storageOrigin: string): void;\n  uploadOutcome?(outcome: UploadOutcomeRender): void;\n  publish?(info: PublishSectionRender): void;\n}\n\nexport class DeployTrainRenderService extends Context.Service<\n  DeployTrainRenderService,\n  DeployTrainRender\n>()(\"everything-dev/deploy/render\") {}\n"],"mappings":";;;AAsCA,IAAa,2BAAb,cAA8C,QAAQ,QAGpD,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC"}