- src/muse 新版全模块(装配/共享/上下文/任务运行/作品规划/故事世界/正文写作/审校修订/知识方法/作者经验/效果评测/交付连载/资料研究/正式变更/元数据/接入/基础设施/编排)+ 测试树(单元/契约/集成/架构/迁移/端到端/夹具) - 129 项功能全部实现与自动验证(功能覆盖.json/矩阵),含 W31 补齐的规则与代价/节奏安排/伏笔与承诺 - 旧实现按处置清单退出(702 条中 324 删,保护合同与未迁移条目留存有据);web/app.py 旧工作台退役,新工作台为唯一写入口 - 数据库/旧库迁移:真实旧库内容批次迁移链(端点守卫/PG作品正文映射/质量资产缺省投影) - 运行手册 docs/运行手册.md;W30 本机服务阶段一已运行(infra PG 为正式内容权威) - R2 执行证据与私有运行材料在 .agents.local/改造/R2-20260909/(不入库)
111 lines
5.4 KiB
SQL
111 lines
5.4 KiB
SQL
-- B10确定性规则诊断的逐例证据与最小公开凭据;B06拥有启停与消费历史。
|
||
CREATE TABLE evaluation.muse_rule_diagnostic_run (
|
||
run_id uuid PRIMARY KEY,
|
||
author_id text NOT NULL,
|
||
dataset_version_id uuid NOT NULL REFERENCES evaluation.muse_dataset_version(version_id),
|
||
target jsonb NOT NULL CHECK (jsonb_typeof(target)='object'),
|
||
policy jsonb NOT NULL CHECK (jsonb_typeof(policy)='object'),
|
||
policy_hash text NOT NULL CHECK (policy_hash ~ '^[0-9a-f]{64}$'),
|
||
plan_hash text NOT NULL CHECK (plan_hash ~ '^[0-9a-f]{64}$'),
|
||
created_at timestamptz NOT NULL DEFAULT clock_timestamp(),
|
||
UNIQUE(author_id,dataset_version_id,policy_hash)
|
||
);
|
||
|
||
CREATE TABLE evaluation.muse_rule_diagnostic_result (
|
||
run_id uuid NOT NULL REFERENCES evaluation.muse_rule_diagnostic_run(run_id),
|
||
sample_id text NOT NULL,
|
||
payload jsonb NOT NULL CHECK (jsonb_typeof(payload)='object'),
|
||
payload_hash text NOT NULL CHECK (payload_hash ~ '^[0-9a-f]{64}$'),
|
||
created_at timestamptz NOT NULL DEFAULT clock_timestamp(),
|
||
PRIMARY KEY(run_id,sample_id)
|
||
);
|
||
|
||
CREATE TABLE evaluation.muse_rule_diagnostic_assessment (
|
||
run_id uuid PRIMARY KEY REFERENCES evaluation.muse_rule_diagnostic_run(run_id),
|
||
payload jsonb NOT NULL CHECK (jsonb_typeof(payload)='object'),
|
||
payload_hash text NOT NULL CHECK (payload_hash ~ '^[0-9a-f]{64}$'),
|
||
created_at timestamptz NOT NULL DEFAULT clock_timestamp()
|
||
);
|
||
|
||
CREATE TABLE evaluation.muse_rule_diagnostic_stop (
|
||
run_id uuid PRIMARY KEY REFERENCES evaluation.muse_rule_diagnostic_run(run_id),
|
||
author_id text NOT NULL,
|
||
command_id text NOT NULL,
|
||
stopped_at timestamptz NOT NULL DEFAULT clock_timestamp(),
|
||
UNIQUE(author_id,command_id)
|
||
);
|
||
|
||
CREATE TRIGGER rule_diagnostic_run_guard BEFORE UPDATE OR DELETE
|
||
ON evaluation.muse_rule_diagnostic_run FOR EACH ROW
|
||
EXECUTE FUNCTION public.muse_guard_literary_history();
|
||
CREATE TRIGGER rule_diagnostic_result_guard BEFORE UPDATE OR DELETE
|
||
ON evaluation.muse_rule_diagnostic_result FOR EACH ROW
|
||
EXECUTE FUNCTION public.muse_guard_literary_history();
|
||
CREATE TRIGGER rule_diagnostic_assessment_guard BEFORE UPDATE OR DELETE
|
||
ON evaluation.muse_rule_diagnostic_assessment FOR EACH ROW
|
||
EXECUTE FUNCTION public.muse_guard_literary_history();
|
||
CREATE TRIGGER rule_diagnostic_stop_guard BEFORE UPDATE OR DELETE
|
||
ON evaluation.muse_rule_diagnostic_stop FOR EACH ROW
|
||
EXECUTE FUNCTION public.muse_guard_literary_history();
|
||
|
||
-- 只有maintenance可导出;production和evaluation只读不含oracle的最小投影。
|
||
CREATE TABLE public.muse_rule_diagnostic_receipt (
|
||
receipt_id uuid PRIMARY KEY,
|
||
author_id text NOT NULL,
|
||
run_id uuid NOT NULL REFERENCES evaluation.muse_rule_diagnostic_run(run_id),
|
||
rule_version_id uuid NOT NULL REFERENCES public.muse_rule_version(version_id),
|
||
payload jsonb NOT NULL CHECK (jsonb_typeof(payload)='object'),
|
||
payload_hash text NOT NULL CHECK (payload_hash ~ '^[0-9a-f]{64}$'),
|
||
valid_until timestamptz NOT NULL,
|
||
created_at timestamptz NOT NULL DEFAULT clock_timestamp(),
|
||
UNIQUE(author_id,run_id,payload_hash)
|
||
);
|
||
REVOKE ALL ON public.muse_rule_diagnostic_receipt FROM muse_app,muse_eval;
|
||
CREATE TRIGGER rule_diagnostic_receipt_guard BEFORE UPDATE OR DELETE
|
||
ON public.muse_rule_diagnostic_receipt FOR EACH ROW
|
||
EXECUTE FUNCTION public.muse_guard_literary_history();
|
||
|
||
CREATE VIEW public.muse_rule_diagnostic_status WITH (security_barrier=true) AS
|
||
SELECT r.receipt_id,r.author_id,r.run_id,r.rule_version_id,r.payload,r.payload_hash,
|
||
r.valid_until,
|
||
EXISTS (
|
||
SELECT 1 FROM evaluation.muse_rule_diagnostic_stop s WHERE s.run_id=r.run_id
|
||
) AS stopped
|
||
FROM public.muse_rule_diagnostic_receipt r;
|
||
REVOKE ALL ON public.muse_rule_diagnostic_status FROM muse_app,muse_eval;
|
||
GRANT SELECT ON public.muse_rule_diagnostic_status TO muse_app,muse_eval;
|
||
|
||
-- 当前投影可变,但每次变更都先追加不可变事件。
|
||
CREATE TABLE public.muse_rule_activation_event (
|
||
event_id uuid PRIMARY KEY,
|
||
author_id text NOT NULL,
|
||
rule_id text NOT NULL,
|
||
activation_revision bigint NOT NULL CHECK (activation_revision > 0),
|
||
version_id uuid NOT NULL REFERENCES public.muse_rule_version(version_id),
|
||
action text NOT NULL CHECK (action IN ('enable','disable')),
|
||
credential_id uuid REFERENCES public.muse_rule_diagnostic_receipt(receipt_id),
|
||
candidate_id text NOT NULL,
|
||
candidate_hash text NOT NULL CHECK (candidate_hash ~ '^[0-9a-f]{64}$'),
|
||
review_id uuid NOT NULL REFERENCES public.muse_author_review(review_id),
|
||
command_id text NOT NULL,
|
||
created_at timestamptz NOT NULL DEFAULT clock_timestamp(),
|
||
UNIQUE(author_id,rule_id,activation_revision),
|
||
UNIQUE(author_id,command_id)
|
||
);
|
||
|
||
CREATE TABLE public.muse_rule_activation_current (
|
||
author_id text NOT NULL,
|
||
rule_id text NOT NULL,
|
||
activation_revision bigint NOT NULL CHECK (activation_revision > 0),
|
||
version_id uuid NOT NULL REFERENCES public.muse_rule_version(version_id),
|
||
state text NOT NULL CHECK (state IN ('active','disabled')),
|
||
credential_id uuid REFERENCES public.muse_rule_diagnostic_receipt(receipt_id),
|
||
latest_event_id uuid NOT NULL REFERENCES public.muse_rule_activation_event(event_id),
|
||
updated_at timestamptz NOT NULL DEFAULT clock_timestamp(),
|
||
PRIMARY KEY(author_id,rule_id)
|
||
);
|
||
|
||
CREATE TRIGGER rule_activation_event_guard BEFORE UPDATE OR DELETE
|
||
ON public.muse_rule_activation_event FOR EACH ROW
|
||
EXECUTE FUNCTION public.muse_guard_literary_history();
|