Files
JX-BPOS/db/migrations/0004_nice_ravenous.sql
T
JCAI Main AgentandClaude Opus 5 2850e6d4ef 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
2026-07-27 01:36:05 +08:00

57 lines
2.2 KiB
SQL

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");