forked from ChaiHao/BPOS-MVP
M3(完成): interaction 与 activity-registry
interaction(L3): - 控制权按态转交:活动在跑归活动,流转/审批/终态归系统;输入侧永远归系统(单入口) - 视图区净化门:含 <script> / on* / 外部资源的模版一律拒推 —— 容器无脚本执行权 - 对话流单入口:自由输入同写任务记忆并抛人事件;SSE 单连接 + 按目标失效广播 - 前端零过程状态:对话流与视图都是服务端投影 activity-registry(L4): - 安装两审:静态审(签名/SDK/工具契约齐备/模型名已绑定/schema/悬空监听/模版无脚本/ 零环境能力/动态执行/验收等级不得谎报)+ 回放审(旧成不坏是硬门,旧败能成只入报告) - 资产与包分离版本化:包只携资产初始版,不覆盖已有更高资产版;装载 = 包版本 + 生效资产版 - 进化管线状态机:候选 → 回放 → 人放行 → 生效;回退是显式治理动作 245 个测试通过,门禁五道全绿 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
co-authored by
Claude Opus 5
parent
d96c6e6dff
commit
2850e6d4ef
@@ -0,0 +1,57 @@
|
||||
CREATE TABLE "sys"."activity_asset" (
|
||||
"activity_id" text NOT NULL,
|
||||
"kind" text NOT NULL,
|
||||
"version" integer NOT NULL,
|
||||
"body" text NOT NULL,
|
||||
"effective" boolean DEFAULT false NOT NULL,
|
||||
"source" text NOT NULL,
|
||||
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
||||
CONSTRAINT "activity_asset_activity_id_kind_version_pk" PRIMARY KEY("activity_id","kind","version")
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE "sys"."activity_package" (
|
||||
"activity_id" text NOT NULL,
|
||||
"version" text NOT NULL,
|
||||
"name" text NOT NULL,
|
||||
"category" text NOT NULL,
|
||||
"paradigm" text NOT NULL,
|
||||
"manifest" jsonb NOT NULL,
|
||||
"artifact" text NOT NULL,
|
||||
"state" text DEFAULT 'active' NOT NULL,
|
||||
"enabled" boolean DEFAULT true NOT NULL,
|
||||
"installed_at" timestamp with time zone DEFAULT now() NOT NULL,
|
||||
CONSTRAINT "activity_package_activity_id_version_pk" PRIMARY KEY("activity_id","version")
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE "sys"."asset_increment" (
|
||||
"id" text PRIMARY KEY NOT NULL,
|
||||
"activity_id" text NOT NULL,
|
||||
"kind" text NOT NULL,
|
||||
"diff" text NOT NULL,
|
||||
"evidence_entry_ids" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
||||
"state" text DEFAULT 'candidate' NOT NULL,
|
||||
"replay_report" jsonb,
|
||||
"released_by" text,
|
||||
"created_at" timestamp with time zone DEFAULT now() NOT NULL
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE "sys"."chat_message" (
|
||||
"id" text PRIMARY KEY NOT NULL,
|
||||
"task_id" text NOT NULL,
|
||||
"kind" text NOT NULL,
|
||||
"payload" jsonb NOT NULL,
|
||||
"at" timestamp with time zone NOT NULL
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE TABLE "sys"."task_view" (
|
||||
"task_id" text PRIMARY KEY NOT NULL,
|
||||
"blocks" jsonb,
|
||||
"html" text,
|
||||
"phase" text DEFAULT 'activating' NOT NULL,
|
||||
"updated_at" timestamp with time zone DEFAULT now() NOT NULL
|
||||
);
|
||||
--> statement-breakpoint
|
||||
CREATE UNIQUE INDEX "activity_asset_effective_key" ON "sys"."activity_asset" USING btree ("activity_id","kind") WHERE "sys"."activity_asset"."effective";--> statement-breakpoint
|
||||
CREATE INDEX "activity_package_category_idx" ON "sys"."activity_package" USING btree ("category","paradigm");--> statement-breakpoint
|
||||
CREATE INDEX "asset_increment_activity_idx" ON "sys"."asset_increment" USING btree ("activity_id","state");--> statement-breakpoint
|
||||
CREATE INDEX "chat_message_task_idx" ON "sys"."chat_message" USING btree ("task_id","at");
|
||||
Reference in New Issue
Block a user