/* RFC-0829: Shared test evidence gate helper for leitstand deployment commands. Wraps executeKernelCommand calls to test.evidence.verify, eliminating duplicated gate logic. Does not define test evidence types or storage — those live in @warpgogol/werkstatt-site/testing. Does not register kernel commands. RFC-0829: extracted shared gate helper from duplicated blocks in leitstand-commands.ts and service-promote.ts. RFC-1249: wire werkstatt.commands.validate into packages.check + retire CMD-OUTPUT debt */ import { executeKernelCommand } from "../kernel/index.ts"; export const GRACE_PERIOD_END = "2026-09-10"; export interface TestEvidenceGateOptions { workspaceRoot: string; commandName: string; target: string; levels: string[]; commitSha: string; releaseId?: string; service?: string; logger: { info: (msg: string) => void; warn: (msg: string) => void; }; } export async function runTestEvidenceGate(opts: TestEvidenceGateOptions): Promise { opts.logger.info( `[${opts.commandName}] verifying test evidence (${opts.levels.join(",")}) for commit ${opts.commitSha}…`, ); let evidenceResult: { exitCode?: number; data?: { status: string; summary: string } }; try { evidenceResult = (await executeKernelCommand({ workspaceRoot: opts.workspaceRoot, commandName: "test.evidence.verify", argv: [ opts.service ? `--service=${opts.service}` : `--target=${opts.target}`, `--levels=${opts.levels.join(",")}`, `--commit-sha=${opts.commitSha}`, ...(opts.releaseId ? [`--release-id=${opts.releaseId}`] : []), ], })) as { exitCode?: number; data?: { status: string; summary: string } }; } catch (err) { const errMsg = err instanceof Error ? err.message : String(err); if (new Date().toISOString() < GRACE_PERIOD_END) { opts.logger.warn( `[${opts.commandName}] test evidence gate skipped (grace period): ${errMsg}`, ); return; } throw new Error(`[${opts.commandName}] test evidence gate failed to execute: ${errMsg}`); } if (evidenceResult.data) { if (evidenceResult.data.status === "pass") { opts.logger.info(`[${opts.commandName}] test evidence: ${evidenceResult.data.summary}`); } else { opts.logger.warn(`[${opts.commandName}] test evidence: ${evidenceResult.data.summary}`); if (evidenceResult.exitCode === 1) { throw new Error( `[${opts.commandName}] test evidence gate failed: ${evidenceResult.data.summary}`, ); } } } }