/** * Artifact Contract Registry — 契约层模块。 * * 职责边界: * - 负责:ArtifactKind 等 契约层职责 * - 不负责:不属于本模块的职责由对应模块承担 * * 被谁调用:契约验证、注册表查询 * 调用谁:logger * * 数据流:契约定义 → 验证逻辑 → 通过/拒绝结果 * 持久化:读写本地文件(详见代码内路径) */ /** * Artifact Contract Registry * * 输出产物管理契约。 * 将原型说明、需求分析、接口方案、测试计划、迁移方案、 * 审查报告和机制报告统一建模为 output artifact。 * 明确默认输出位置、覆盖策略、生命周期、验收方式和后续 workflow 引用。 */ export type ArtifactKind = "api_spec" | "design_doc" | "prototype_spec" | "requirement_analysis" | "test_plan" | "review_report" | "database_design" | "test_report" | "slice_plan" | "code" | "deploy_config" | "release_note" | "compatibility_assessment" | "detail_design_doc" | "consistency_report" | "custom"; type ArtifactFormat = "markdown" | "json" | "yaml" | "html" | "docx" | "other"; export type ArtifactStatus = "draft" | "verified" | "accepted" | "superseded" | "archived"; type OverwritePolicy = "never" | "version" | "confirm" | "allowed"; export interface OutputArtifact { artifact_id: string; kind: ArtifactKind; path: string; format: ArtifactFormat; created_by: string; workflow_id: string; task_id: string; source_material_refs: string[]; knowledge_refs: string[]; evidence_refs: string[]; status: ArtifactStatus; overwrite_policy: OverwritePolicy; hash?: string; created_at?: string; version?: number; } export interface ArtifactGovernanceFinding { severity: "hard_fail" | "advisory"; artifact_id?: string; rule: string; message: string; } /** 判断产物状态是否允许从 from 转换到 to * @param from - 当前状态 * @param to - 目标状态 * @returns 是否允许转换 */ export declare function canTransition(from: ArtifactStatus, to: ArtifactStatus): boolean; /** draft → verified 需要 verification */ export declare function transitionRequiresVerification(from: ArtifactStatus, to: ArtifactStatus): boolean; /** → accepted 需要用户或后续 workflow 确认 */ export declare function transitionRequiresAcceptance(_from: ArtifactStatus, to: ArtifactStatus): boolean; /** 检查路径是否禁止写入 * @param path - 待检查的文件路径 * @returns 禁止结果及原因 */ export declare function isWriteForbidden(path: string): { forbidden: boolean; reason?: string; }; /** 外部 input material 路径禁止写回 */ export declare function isInputMaterialPath(path: string, inputMaterialPaths: string[]): boolean; /** 获取指定产物类型的默认配置 * @param kind - 产物类型 * @returns 默认配置(默认名称、格式、覆盖策略) */ export declare function getArtifactDefaults(kind: ArtifactKind): { defaultName: string; format: ArtifactFormat; overwritePolicy: OverwritePolicy; }; /** 列出所有支持的产物类型 * @returns 产物类型数组 */ export declare function listArtifactKinds(): ArtifactKind[]; export interface ArtifactAcceptanceCheck { id: string; description: string; passed: boolean; note?: string; severity?: "hard_fail" | "advisory"; } export interface ArtifactVerificationResult { passed: boolean; checks: ArtifactAcceptanceCheck[]; summary: string; } /** 获取指定产物类型的验收检查项 * @param kind - 产物类型 * @param artifact - 待检查的产物 * @returns 验收检查项列表 */ export declare function getAcceptanceChecks(kind: ArtifactKind, artifact: OutputArtifact): ArtifactAcceptanceCheck[]; /** 执行验收检查并生成 ArtifactVerificationResult */ export declare function verifyArtifact(kind: ArtifactKind, artifact: OutputArtifact): ArtifactVerificationResult; /** 执行产物治理校验 * @param artifacts - 待校验的产物列表 * @returns 治理发现列表 */ export declare function validateArtifactContracts(artifacts: OutputArtifact[]): ArtifactGovernanceFinding[]; /** 验证状态转换合法性 */ export declare function validateTransition(artifact: OutputArtifact, newStatus: ArtifactStatus, hasVerification: boolean, hasAcceptance: boolean): ArtifactGovernanceFinding[]; export {};