| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| |
|
|
| CREATE TABLE IF NOT EXISTS "capabilities" ( |
| "id" text PRIMARY KEY NOT NULL, |
| "name" text NOT NULL UNIQUE, |
| "domain" text NOT NULL, |
| "description" text NOT NULL DEFAULT '', |
| "current_lifecycle_state" text NOT NULL DEFAULT 'created', |
| "bound_network_name" text, |
| "meta" jsonb NOT NULL DEFAULT '{}'::jsonb, |
| "created_at" timestamptz NOT NULL DEFAULT now(), |
| "updated_at" timestamptz NOT NULL DEFAULT now() |
| ); |
| CREATE INDEX IF NOT EXISTS "capabilities_domain_idx" ON "capabilities" ("domain"); |
| CREATE INDEX IF NOT EXISTS "capabilities_state_idx" ON "capabilities" ("current_lifecycle_state"); |
|
|
| CREATE TABLE IF NOT EXISTS "capability_lifecycle_events" ( |
| "id" text PRIMARY KEY NOT NULL, |
| "capability_id" text NOT NULL, |
| "from_state" text, |
| "to_state" text NOT NULL, |
| "reason" text NOT NULL, |
| "payload" jsonb NOT NULL DEFAULT '{}'::jsonb, |
| "created_at" timestamptz NOT NULL DEFAULT now() |
| ); |
| CREATE INDEX IF NOT EXISTS "capability_lifecycle_events_cap_idx" ON "capability_lifecycle_events" ("capability_id"); |
| CREATE INDEX IF NOT EXISTS "capability_lifecycle_events_created_at_idx" ON "capability_lifecycle_events" ("created_at"); |
|
|
| CREATE TABLE IF NOT EXISTS "capability_inner_loop_runs" ( |
| "id" text PRIMARY KEY NOT NULL, |
| "capability_id" text NOT NULL, |
| "steps_json" jsonb NOT NULL, |
| "source_run_id" text, |
| "duration_ms" integer, |
| "status" text NOT NULL DEFAULT 'ok', |
| "created_at" timestamptz NOT NULL DEFAULT now() |
| ); |
| CREATE INDEX IF NOT EXISTS "capability_inner_loop_runs_cap_idx" ON "capability_inner_loop_runs" ("capability_id"); |
| CREATE INDEX IF NOT EXISTS "capability_inner_loop_runs_created_at_idx" ON "capability_inner_loop_runs" ("created_at"); |
|
|
| CREATE TABLE IF NOT EXISTS "network_dispatch_violations" ( |
| "id" text PRIMARY KEY NOT NULL, |
| "network_name" text NOT NULL, |
| "tool_name" text NOT NULL, |
| "args_hash" text NOT NULL, |
| "details_json" jsonb NOT NULL, |
| "mode" text NOT NULL DEFAULT 'enforced', |
| "conversation_id" text, |
| "owner_user_id" text, |
| "created_at" timestamptz NOT NULL DEFAULT now() |
| ); |
| CREATE INDEX IF NOT EXISTS "network_dispatch_violations_net_idx" ON "network_dispatch_violations" ("network_name"); |
| CREATE INDEX IF NOT EXISTS "network_dispatch_violations_created_at_idx" ON "network_dispatch_violations" ("created_at"); |
| CREATE UNIQUE INDEX IF NOT EXISTS "network_dispatch_violations_uniq_recent" ON "network_dispatch_violations" ("network_name","args_hash","created_at"); |
|
|
| |
| |
| |
| |
| CREATE UNIQUE INDEX IF NOT EXISTS "network_versions_uniq_active_private" |
| ON "network_versions" ("network_id","private_namespace") |
| WHERE "status" = 'active' AND "private_namespace" IS NOT NULL; |
|
|
| |
| |
| |
| |
| |
|
|
| CREATE OR REPLACE VIEW "capability_versions" AS |
| SELECT |
| c."id" AS "capability_id", |
| c."name" AS "capability_name", |
| nv."id" AS "version_id", |
| nv."network_id" AS "network_id", |
| nv."version_label" AS "version_label", |
| nv."status" AS "status", |
| nv."private_namespace" AS "private_namespace", |
| nv."built_by" AS "built_by", |
| nv."builder_model_tier" AS "builder_model_tier", |
| nv."internal_graph" AS "internal_graph", |
| nv."config" AS "config", |
| nv."created_at" AS "created_at" |
| FROM "capabilities" c |
| JOIN "tool_networks" tn ON tn."name" = c."bound_network_name" |
| JOIN "network_versions" nv ON nv."network_id" = tn."id"; |
|
|
| CREATE OR REPLACE VIEW "capability_evolution_events" AS |
| SELECT |
| c."id" AS "capability_id", |
| c."name" AS "capability_name", |
| np."id" AS "promotion_id", |
| np."network_id" AS "network_id", |
| np."from_variant_id" AS "from_variant_id", |
| np."to_variant_id" AS "to_variant_id", |
| np."reason" AS "reason", |
| np."decided_by" AS "decided_by", |
| np."created_at" AS "created_at" |
| FROM "capabilities" c |
| JOIN "tool_networks" tn ON tn."name" = c."bound_network_name" |
| JOIN "network_promotions" np ON np."network_id" = tn."id"; |
|
|