import type { RequirementContract, DomainName } from "../types.js"; /** 已交付产物(从 passed evidence 派生)。 */ export interface DeliveredArtifact { domain: DomainName; artifact_kind: string; evidence_id: string; } /** migration 结果。 */ export interface MigrationResult { migration_run_id: string; task_id: string; generated_requirement_id: string; source_evidence_ids: string[]; delivered_artifacts: { domain: DomainName; artifact_kind: string; }[]; } /** * 列 task 的已交付产物(只读 VerificationEvidence + VerificationRun,**不改历史**)。 * 已交付 = passed artifact_structure evidence + verification_run_id 绑定有效(run 存在 + task_id/kind + result.passed)。 */ export declare function listDeliveredArtifacts(projectRoot: string, taskId: string): Promise; /** 确定性 migration req id(同 task 重跑覆盖;scope 守卫本就阻止重跑,此为兜底)。 */ export declare function migrationRequirementId(taskId: string): string; /** 从已交付产物构建 migration RequirementContract(B2:一 task 一 req)。只引用已交付产物(不伪造)。 */ export declare function buildMigrationRequirement(taskId: string, delivered: DeliveredArtifact[], runId: string, taskCreatedAt: number): RequirementContract; /** migration dry-run 结果(只读,不写)。 */ export interface MigrationDryRunResult { eligible: boolean; reason?: string; task_id: string; task_status?: string; task_created_at?: number; existing_requirement_count?: number; planned_requirement_id?: string; delivered_artifacts?: { domain: DomainName; artifact_kind: string; evidence_id: string; }[]; } /** * migration dry-run(只读):验 scope + 返回计划(将生成的 req + 源 evidence + 产物),**不写**。 * 用于真实项目迁移前审查(确认 migration req 来自真实交付产物 + scope 合格)。 */ export declare function dryRunMigration(taskId: string, projectRoot: string, cutoff: number): Promise; /** * migration executor(scope 守卫 + 写 req + 审计)。 * @param cutoff task 创建时间截止(早于此的 task 才可迁移;新 task created_at >= cutoff → 拒绝) * @returns MigrationResult,或 throw(范围不符/缺证据/已有 req) */ export declare function runMigration(taskId: string, projectRoot: string, cutoff: number): Promise;