/** * RequirementGate — 交付门禁,聚合 requirement/trace/gap/evidence/review 判定 allowed,接入 handleDeliver。 * * 职责边界: * - 负责:调 GapReportGenerator(聚合 RequirementCoverageChecker + TraceCoverageChecker + FK 检测)生成 GapReport; * 复用 handleDeliver 传入的 EvidenceEvaluation(evidence/review 状态);判定 allowed + HMAC 签名/验签 * - 不负责:单 artifact 验证(EvidenceEvaluator)、review 执行(review engine)、deliver 状态迁移(handleDeliver) * * 强制策略:默认 requirement_count>0 才允许 deliver(防 AI 跳需求阶段直接实现)。 * 历史兼容 escape:SOLOFORGE_DELIVER_ALLOW_NO_REQUIREMENT=1(仅 dev/test;生产禁,MCP server env 启动时固定 AI 无法运行时改)。 * * 被谁调用:handleDeliver(evidence/review 通过后 + mandatory_impacts 前) * 调用谁:GapReportGenerator、SignatureProvider */ import type { TaskContext } from "../types/index.js"; import type { DeliverDecision } from "./types.js"; import type { EvidenceEvaluation } from "./task_service/evidence_evaluator.js"; export declare class RequirementGate { private readonly projectRoot; private readonly provider; private readonly gapGen; constructor(projectRoot: string); /** 无 requirement escape(仅 dev/test;生产不设 = 强制 requirement_count>0)。 */ private isEscape; /** 评估交付门禁。复用 handleDeliver 传入的 evidence(evidence/review 状态)+ 生成 GapReport(requirement/trace/gap)。 */ evaluate(task: TaskContext, evidence: EvidenceEvaluation): Promise; /** 验签 DeliverDecision(防伪造 allowed=true)。无 secret/验签失败返 false(fail-closed)。 */ verify(decision: DeliverDecision): Promise; } /** 生产启动检查:SOLOFORGE_DELIVER_ALLOW_NO_REQUIREMENT 须配 dev/test escape secret(生产 ipc 无 secret 即禁)。 * 防运维误设 escape 致生产放行无 requirement task(架空 requirement 体系)。在 index.ts 启动调用(与 assertSignatureModeForProduction 同源模式)。 * escape 经 env(MCP 启动固定,AI 无法运行时改),但部署误设无运行时感知 → 启动拦截(显式 fail 优于静默绕过)。 */ export declare function assertDeliverEscapeNotForProduction(): void;