feat: initial commit — Curio mastery tutor

Full Next.js App Router application with:
- AI-graded lesson checkpoints (BKT/Elo mastery tracking)
- Auth.js v5: credentials, Google, GitHub, generic OIDC
- Anonymous-session-first with migrate-on-signin
- Admin panel: users, blueprints, reports, site settings
- Password reset + email verification (nodemailer/SMTP)
- Site config: require_auth + signups_enabled flags
- server-only guards on all DB/generation/verification modules
- PostgreSQL 16 + pgvector, Redis cache, Drizzle ORM
- 271 unit tests (Vitest), golden-eval harness, Playwright e2e stubs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-21 22:25:43 +02:00
commit 4e38b5a791
194 changed files with 30789 additions and 0 deletions
@@ -0,0 +1,140 @@
CREATE TYPE "public"."blueprint_status" AS ENUM('draft', 'verifying', 'published', 'flagged');--> statement-breakpoint
CREATE TYPE "public"."checkpoint_kind" AS ENUM('predict', 'explain', 'solve');--> statement-breakpoint
CREATE TYPE "public"."grade_verdict" AS ENUM('mastered', 'partial', 'misconception', 'uncertain');--> statement-breakpoint
CREATE TYPE "public"."job_status" AS ENUM('pending', 'running', 'done', 'failed');--> statement-breakpoint
CREATE TYPE "public"."verify_status" AS ENUM('pending', 'pass', 'fail', 'uncertain');--> statement-breakpoint
CREATE TYPE "public"."verify_verdict" AS ENUM('pass', 'fail', 'uncertain');--> statement-breakpoint
CREATE TABLE "blueprint" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"intent_key" text NOT NULL,
"embedding" vector(1536),
"title" text NOT NULL,
"model_version" text NOT NULL,
"content_version" integer DEFAULT 1 NOT NULL,
"status" "blueprint_status" DEFAULT 'draft' NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
CONSTRAINT "blueprint_intent_key_unique" UNIQUE("intent_key")
);
--> statement-breakpoint
CREATE TABLE "checkpoint" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"segment_id" uuid NOT NULL,
"prompt" text NOT NULL,
"kind" "checkpoint_kind" NOT NULL,
"reference_answer" text NOT NULL,
"rubric_json" jsonb NOT NULL,
"verify_status" "verify_status" DEFAULT 'pending' NOT NULL
);
--> statement-breakpoint
CREATE TABLE "concept" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"blueprint_id" uuid NOT NULL,
"ord" integer NOT NULL,
"name" text NOT NULL,
"retrieval_ctx_ref" text
);
--> statement-breakpoint
CREATE TABLE "grade" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"response_id" uuid NOT NULL,
"verdict" "grade_verdict" NOT NULL,
"misconception_tag" text,
"confidence" real NOT NULL,
"payload_json" jsonb NOT NULL
);
--> statement-breakpoint
CREATE TABLE "job" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"type" text NOT NULL,
"idempotency_key" text NOT NULL,
"status" "job_status" DEFAULT 'pending' NOT NULL,
"payload_json" jsonb NOT NULL,
"attempts" integer DEFAULT 0 NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
CONSTRAINT "job_idempotency_key_unique" UNIQUE("idempotency_key")
);
--> statement-breakpoint
CREATE TABLE "journey_instance" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"user_id" uuid NOT NULL,
"blueprint_id" uuid NOT NULL,
"position" integer DEFAULT 0 NOT NULL
);
--> statement-breakpoint
CREATE TABLE "lesson" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"blueprint_id" uuid NOT NULL,
"ord" integer NOT NULL,
"est_minutes" integer DEFAULT 10 NOT NULL
);
--> statement-breakpoint
CREATE TABLE "mastery" (
"user_id" uuid NOT NULL,
"concept_id" uuid NOT NULL,
"score" real DEFAULT 0.5 NOT NULL,
"last_seen" timestamp DEFAULT now() NOT NULL,
"next_review" timestamp DEFAULT now() NOT NULL,
CONSTRAINT "mastery_user_id_concept_id_pk" PRIMARY KEY("user_id","concept_id")
);
--> statement-breakpoint
CREATE TABLE "misconception" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"concept_id" uuid NOT NULL,
"tag" text NOT NULL,
"signature" text NOT NULL,
"verify_status" "verify_status" DEFAULT 'pending' NOT NULL
);
--> statement-breakpoint
CREATE TABLE "response" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"user_id" uuid NOT NULL,
"checkpoint_id" uuid NOT NULL,
"text" text NOT NULL,
"ts" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "segment" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"lesson_id" uuid NOT NULL,
"ord" integer NOT NULL,
"body_json" jsonb NOT NULL,
"source_chunk_ids" uuid[] DEFAULT '{}' NOT NULL,
"verify_status" "verify_status" DEFAULT 'pending' NOT NULL,
"content_version" integer DEFAULT 1 NOT NULL
);
--> statement-breakpoint
CREATE TABLE "source_chunk" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"doc_ref" text NOT NULL,
"embedding" vector(1536),
"text" text NOT NULL
);
--> statement-breakpoint
CREATE TABLE "user" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "verify_report" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"target_id" uuid NOT NULL,
"target_type" text NOT NULL,
"verdict" "verify_verdict" NOT NULL,
"confidence" real NOT NULL,
"payload_json" jsonb NOT NULL,
"model_version" text NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
ALTER TABLE "checkpoint" ADD CONSTRAINT "checkpoint_segment_id_segment_id_fk" FOREIGN KEY ("segment_id") REFERENCES "public"."segment"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "concept" ADD CONSTRAINT "concept_blueprint_id_blueprint_id_fk" FOREIGN KEY ("blueprint_id") REFERENCES "public"."blueprint"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "grade" ADD CONSTRAINT "grade_response_id_response_id_fk" FOREIGN KEY ("response_id") REFERENCES "public"."response"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "journey_instance" ADD CONSTRAINT "journey_instance_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "journey_instance" ADD CONSTRAINT "journey_instance_blueprint_id_blueprint_id_fk" FOREIGN KEY ("blueprint_id") REFERENCES "public"."blueprint"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "lesson" ADD CONSTRAINT "lesson_blueprint_id_blueprint_id_fk" FOREIGN KEY ("blueprint_id") REFERENCES "public"."blueprint"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "mastery" ADD CONSTRAINT "mastery_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "mastery" ADD CONSTRAINT "mastery_concept_id_concept_id_fk" FOREIGN KEY ("concept_id") REFERENCES "public"."concept"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "misconception" ADD CONSTRAINT "misconception_concept_id_concept_id_fk" FOREIGN KEY ("concept_id") REFERENCES "public"."concept"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "response" ADD CONSTRAINT "response_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "response" ADD CONSTRAINT "response_checkpoint_id_checkpoint_id_fk" FOREIGN KEY ("checkpoint_id") REFERENCES "public"."checkpoint"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "segment" ADD CONSTRAINT "segment_lesson_id_lesson_id_fk" FOREIGN KEY ("lesson_id") REFERENCES "public"."lesson"("id") ON DELETE no action ON UPDATE no action;
@@ -0,0 +1,2 @@
ALTER TABLE "misconception" ADD COLUMN "description" text;--> statement-breakpoint
ALTER TABLE "misconception" ADD COLUMN "correction" text;
@@ -0,0 +1 @@
ALTER TABLE "response" ADD COLUMN "self_confidence" smallint;
@@ -0,0 +1,26 @@
CREATE TYPE "public"."content_report_reason" AS ENUM('grade_wrong', 'content_error', 'other');--> statement-breakpoint
CREATE TABLE "content_report" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"checkpoint_id" uuid NOT NULL,
"grade_id" uuid,
"reason" "content_report_reason" NOT NULL,
"notes" text,
"created_at" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "novel_misconduct_queue" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"grade_id" uuid NOT NULL,
"checkpoint_id" uuid NOT NULL,
"response_text" text NOT NULL,
"evidence_span" text NOT NULL,
"processed" boolean DEFAULT false NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
ALTER TABLE "checkpoint" ADD COLUMN "content_version" integer DEFAULT 1 NOT NULL;--> statement-breakpoint
ALTER TABLE "segment" ADD COLUMN "difficulty_level" integer DEFAULT 1 NOT NULL;--> statement-breakpoint
ALTER TABLE "content_report" ADD CONSTRAINT "content_report_checkpoint_id_checkpoint_id_fk" FOREIGN KEY ("checkpoint_id") REFERENCES "public"."checkpoint"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "content_report" ADD CONSTRAINT "content_report_grade_id_grade_id_fk" FOREIGN KEY ("grade_id") REFERENCES "public"."grade"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "novel_misconduct_queue" ADD CONSTRAINT "novel_misconduct_queue_grade_id_grade_id_fk" FOREIGN KEY ("grade_id") REFERENCES "public"."grade"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "novel_misconduct_queue" ADD CONSTRAINT "novel_misconduct_queue_checkpoint_id_checkpoint_id_fk" FOREIGN KEY ("checkpoint_id") REFERENCES "public"."checkpoint"("id") ON DELETE no action ON UPDATE no action;
+38
View File
@@ -0,0 +1,38 @@
CREATE TYPE "public"."user_role" AS ENUM('learner', 'admin', 'suspended');--> statement-breakpoint
CREATE TABLE "account" (
"user_id" uuid NOT NULL,
"type" text NOT NULL,
"provider" text NOT NULL,
"provider_account_id" text NOT NULL,
"refresh_token" text,
"access_token" text,
"expires_at" integer,
"token_type" text,
"scope" text,
"id_token" text,
"session_state" text,
CONSTRAINT "account_provider_provider_account_id_pk" PRIMARY KEY("provider","provider_account_id")
);
--> statement-breakpoint
CREATE TABLE "session" (
"session_token" text PRIMARY KEY NOT NULL,
"user_id" uuid NOT NULL,
"expires" timestamp NOT NULL
);
--> statement-breakpoint
CREATE TABLE "verification_token" (
"identifier" text NOT NULL,
"token" text NOT NULL,
"expires" timestamp NOT NULL,
CONSTRAINT "verification_token_identifier_token_pk" PRIMARY KEY("identifier","token")
);
--> statement-breakpoint
ALTER TABLE "user" ADD COLUMN "email" varchar(255);--> statement-breakpoint
ALTER TABLE "user" ADD COLUMN "email_verified" timestamp;--> statement-breakpoint
ALTER TABLE "user" ADD COLUMN "name" varchar(255);--> statement-breakpoint
ALTER TABLE "user" ADD COLUMN "image" text;--> statement-breakpoint
ALTER TABLE "user" ADD COLUMN "role" "user_role" DEFAULT 'learner' NOT NULL;--> statement-breakpoint
ALTER TABLE "user" ADD COLUMN "password_hash" text;--> statement-breakpoint
ALTER TABLE "account" ADD CONSTRAINT "account_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "session" ADD CONSTRAINT "session_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "user" ADD CONSTRAINT "user_email_unique" UNIQUE("email");
+13
View File
@@ -0,0 +1,13 @@
CREATE TABLE "password_reset_token" (
"token" text PRIMARY KEY NOT NULL,
"user_id" uuid NOT NULL,
"expires" timestamp NOT NULL
);
--> statement-breakpoint
CREATE TABLE "site_config" (
"key" varchar(100) PRIMARY KEY NOT NULL,
"value" text NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
ALTER TABLE "password_reset_token" ADD CONSTRAINT "password_reset_token_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;
+951
View File
@@ -0,0 +1,951 @@
{
"id": "99287306-1d2d-4763-a7fa-4767e0247728",
"prevId": "00000000-0000-0000-0000-000000000000",
"version": "7",
"dialect": "postgresql",
"tables": {
"public.blueprint": {
"name": "blueprint",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"intent_key": {
"name": "intent_key",
"type": "text",
"primaryKey": false,
"notNull": true
},
"embedding": {
"name": "embedding",
"type": "vector(1536)",
"primaryKey": false,
"notNull": false
},
"title": {
"name": "title",
"type": "text",
"primaryKey": false,
"notNull": true
},
"model_version": {
"name": "model_version",
"type": "text",
"primaryKey": false,
"notNull": true
},
"content_version": {
"name": "content_version",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 1
},
"status": {
"name": "status",
"type": "blueprint_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'draft'"
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"blueprint_intent_key_unique": {
"name": "blueprint_intent_key_unique",
"nullsNotDistinct": false,
"columns": [
"intent_key"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.checkpoint": {
"name": "checkpoint",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"segment_id": {
"name": "segment_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"prompt": {
"name": "prompt",
"type": "text",
"primaryKey": false,
"notNull": true
},
"kind": {
"name": "kind",
"type": "checkpoint_kind",
"typeSchema": "public",
"primaryKey": false,
"notNull": true
},
"reference_answer": {
"name": "reference_answer",
"type": "text",
"primaryKey": false,
"notNull": true
},
"rubric_json": {
"name": "rubric_json",
"type": "jsonb",
"primaryKey": false,
"notNull": true
},
"verify_status": {
"name": "verify_status",
"type": "verify_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'pending'"
}
},
"indexes": {},
"foreignKeys": {
"checkpoint_segment_id_segment_id_fk": {
"name": "checkpoint_segment_id_segment_id_fk",
"tableFrom": "checkpoint",
"tableTo": "segment",
"columnsFrom": [
"segment_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.concept": {
"name": "concept",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"blueprint_id": {
"name": "blueprint_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"ord": {
"name": "ord",
"type": "integer",
"primaryKey": false,
"notNull": true
},
"name": {
"name": "name",
"type": "text",
"primaryKey": false,
"notNull": true
},
"retrieval_ctx_ref": {
"name": "retrieval_ctx_ref",
"type": "text",
"primaryKey": false,
"notNull": false
}
},
"indexes": {},
"foreignKeys": {
"concept_blueprint_id_blueprint_id_fk": {
"name": "concept_blueprint_id_blueprint_id_fk",
"tableFrom": "concept",
"tableTo": "blueprint",
"columnsFrom": [
"blueprint_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.grade": {
"name": "grade",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"response_id": {
"name": "response_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"verdict": {
"name": "verdict",
"type": "grade_verdict",
"typeSchema": "public",
"primaryKey": false,
"notNull": true
},
"misconception_tag": {
"name": "misconception_tag",
"type": "text",
"primaryKey": false,
"notNull": false
},
"confidence": {
"name": "confidence",
"type": "real",
"primaryKey": false,
"notNull": true
},
"payload_json": {
"name": "payload_json",
"type": "jsonb",
"primaryKey": false,
"notNull": true
}
},
"indexes": {},
"foreignKeys": {
"grade_response_id_response_id_fk": {
"name": "grade_response_id_response_id_fk",
"tableFrom": "grade",
"tableTo": "response",
"columnsFrom": [
"response_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.job": {
"name": "job",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"type": {
"name": "type",
"type": "text",
"primaryKey": false,
"notNull": true
},
"idempotency_key": {
"name": "idempotency_key",
"type": "text",
"primaryKey": false,
"notNull": true
},
"status": {
"name": "status",
"type": "job_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'pending'"
},
"payload_json": {
"name": "payload_json",
"type": "jsonb",
"primaryKey": false,
"notNull": true
},
"attempts": {
"name": "attempts",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 0
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"job_idempotency_key_unique": {
"name": "job_idempotency_key_unique",
"nullsNotDistinct": false,
"columns": [
"idempotency_key"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.journey_instance": {
"name": "journey_instance",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"blueprint_id": {
"name": "blueprint_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"position": {
"name": "position",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 0
}
},
"indexes": {},
"foreignKeys": {
"journey_instance_user_id_user_id_fk": {
"name": "journey_instance_user_id_user_id_fk",
"tableFrom": "journey_instance",
"tableTo": "user",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
},
"journey_instance_blueprint_id_blueprint_id_fk": {
"name": "journey_instance_blueprint_id_blueprint_id_fk",
"tableFrom": "journey_instance",
"tableTo": "blueprint",
"columnsFrom": [
"blueprint_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.lesson": {
"name": "lesson",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"blueprint_id": {
"name": "blueprint_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"ord": {
"name": "ord",
"type": "integer",
"primaryKey": false,
"notNull": true
},
"est_minutes": {
"name": "est_minutes",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 10
}
},
"indexes": {},
"foreignKeys": {
"lesson_blueprint_id_blueprint_id_fk": {
"name": "lesson_blueprint_id_blueprint_id_fk",
"tableFrom": "lesson",
"tableTo": "blueprint",
"columnsFrom": [
"blueprint_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.mastery": {
"name": "mastery",
"schema": "",
"columns": {
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"concept_id": {
"name": "concept_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"score": {
"name": "score",
"type": "real",
"primaryKey": false,
"notNull": true,
"default": 0.5
},
"last_seen": {
"name": "last_seen",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"next_review": {
"name": "next_review",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {
"mastery_user_id_user_id_fk": {
"name": "mastery_user_id_user_id_fk",
"tableFrom": "mastery",
"tableTo": "user",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
},
"mastery_concept_id_concept_id_fk": {
"name": "mastery_concept_id_concept_id_fk",
"tableFrom": "mastery",
"tableTo": "concept",
"columnsFrom": [
"concept_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {
"mastery_user_id_concept_id_pk": {
"name": "mastery_user_id_concept_id_pk",
"columns": [
"user_id",
"concept_id"
]
}
},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.misconception": {
"name": "misconception",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"concept_id": {
"name": "concept_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"tag": {
"name": "tag",
"type": "text",
"primaryKey": false,
"notNull": true
},
"signature": {
"name": "signature",
"type": "text",
"primaryKey": false,
"notNull": true
},
"verify_status": {
"name": "verify_status",
"type": "verify_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'pending'"
}
},
"indexes": {},
"foreignKeys": {
"misconception_concept_id_concept_id_fk": {
"name": "misconception_concept_id_concept_id_fk",
"tableFrom": "misconception",
"tableTo": "concept",
"columnsFrom": [
"concept_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.response": {
"name": "response",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"checkpoint_id": {
"name": "checkpoint_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"text": {
"name": "text",
"type": "text",
"primaryKey": false,
"notNull": true
},
"ts": {
"name": "ts",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {
"response_user_id_user_id_fk": {
"name": "response_user_id_user_id_fk",
"tableFrom": "response",
"tableTo": "user",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
},
"response_checkpoint_id_checkpoint_id_fk": {
"name": "response_checkpoint_id_checkpoint_id_fk",
"tableFrom": "response",
"tableTo": "checkpoint",
"columnsFrom": [
"checkpoint_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.segment": {
"name": "segment",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"lesson_id": {
"name": "lesson_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"ord": {
"name": "ord",
"type": "integer",
"primaryKey": false,
"notNull": true
},
"body_json": {
"name": "body_json",
"type": "jsonb",
"primaryKey": false,
"notNull": true
},
"source_chunk_ids": {
"name": "source_chunk_ids",
"type": "uuid[]",
"primaryKey": false,
"notNull": true,
"default": "'{}'"
},
"verify_status": {
"name": "verify_status",
"type": "verify_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'pending'"
},
"content_version": {
"name": "content_version",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 1
}
},
"indexes": {},
"foreignKeys": {
"segment_lesson_id_lesson_id_fk": {
"name": "segment_lesson_id_lesson_id_fk",
"tableFrom": "segment",
"tableTo": "lesson",
"columnsFrom": [
"lesson_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.source_chunk": {
"name": "source_chunk",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"doc_ref": {
"name": "doc_ref",
"type": "text",
"primaryKey": false,
"notNull": true
},
"embedding": {
"name": "embedding",
"type": "vector(1536)",
"primaryKey": false,
"notNull": false
},
"text": {
"name": "text",
"type": "text",
"primaryKey": false,
"notNull": true
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.user": {
"name": "user",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.verify_report": {
"name": "verify_report",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"target_id": {
"name": "target_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"target_type": {
"name": "target_type",
"type": "text",
"primaryKey": false,
"notNull": true
},
"verdict": {
"name": "verdict",
"type": "verify_verdict",
"typeSchema": "public",
"primaryKey": false,
"notNull": true
},
"confidence": {
"name": "confidence",
"type": "real",
"primaryKey": false,
"notNull": true
},
"payload_json": {
"name": "payload_json",
"type": "jsonb",
"primaryKey": false,
"notNull": true
},
"model_version": {
"name": "model_version",
"type": "text",
"primaryKey": false,
"notNull": true
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
}
},
"enums": {
"public.blueprint_status": {
"name": "blueprint_status",
"schema": "public",
"values": [
"draft",
"verifying",
"published",
"flagged"
]
},
"public.checkpoint_kind": {
"name": "checkpoint_kind",
"schema": "public",
"values": [
"predict",
"explain",
"solve"
]
},
"public.grade_verdict": {
"name": "grade_verdict",
"schema": "public",
"values": [
"mastered",
"partial",
"misconception",
"uncertain"
]
},
"public.job_status": {
"name": "job_status",
"schema": "public",
"values": [
"pending",
"running",
"done",
"failed"
]
},
"public.verify_status": {
"name": "verify_status",
"schema": "public",
"values": [
"pending",
"pass",
"fail",
"uncertain"
]
},
"public.verify_verdict": {
"name": "verify_verdict",
"schema": "public",
"values": [
"pass",
"fail",
"uncertain"
]
}
},
"schemas": {},
"sequences": {},
"roles": {},
"policies": {},
"views": {},
"_meta": {
"columns": {},
"schemas": {},
"tables": {}
}
}
+963
View File
@@ -0,0 +1,963 @@
{
"id": "c96c484c-a142-4f76-a53e-f99a3f8688b2",
"prevId": "99287306-1d2d-4763-a7fa-4767e0247728",
"version": "7",
"dialect": "postgresql",
"tables": {
"public.blueprint": {
"name": "blueprint",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"intent_key": {
"name": "intent_key",
"type": "text",
"primaryKey": false,
"notNull": true
},
"embedding": {
"name": "embedding",
"type": "vector(1536)",
"primaryKey": false,
"notNull": false
},
"title": {
"name": "title",
"type": "text",
"primaryKey": false,
"notNull": true
},
"model_version": {
"name": "model_version",
"type": "text",
"primaryKey": false,
"notNull": true
},
"content_version": {
"name": "content_version",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 1
},
"status": {
"name": "status",
"type": "blueprint_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'draft'"
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"blueprint_intent_key_unique": {
"name": "blueprint_intent_key_unique",
"nullsNotDistinct": false,
"columns": [
"intent_key"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.checkpoint": {
"name": "checkpoint",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"segment_id": {
"name": "segment_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"prompt": {
"name": "prompt",
"type": "text",
"primaryKey": false,
"notNull": true
},
"kind": {
"name": "kind",
"type": "checkpoint_kind",
"typeSchema": "public",
"primaryKey": false,
"notNull": true
},
"reference_answer": {
"name": "reference_answer",
"type": "text",
"primaryKey": false,
"notNull": true
},
"rubric_json": {
"name": "rubric_json",
"type": "jsonb",
"primaryKey": false,
"notNull": true
},
"verify_status": {
"name": "verify_status",
"type": "verify_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'pending'"
}
},
"indexes": {},
"foreignKeys": {
"checkpoint_segment_id_segment_id_fk": {
"name": "checkpoint_segment_id_segment_id_fk",
"tableFrom": "checkpoint",
"tableTo": "segment",
"columnsFrom": [
"segment_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.concept": {
"name": "concept",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"blueprint_id": {
"name": "blueprint_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"ord": {
"name": "ord",
"type": "integer",
"primaryKey": false,
"notNull": true
},
"name": {
"name": "name",
"type": "text",
"primaryKey": false,
"notNull": true
},
"retrieval_ctx_ref": {
"name": "retrieval_ctx_ref",
"type": "text",
"primaryKey": false,
"notNull": false
}
},
"indexes": {},
"foreignKeys": {
"concept_blueprint_id_blueprint_id_fk": {
"name": "concept_blueprint_id_blueprint_id_fk",
"tableFrom": "concept",
"tableTo": "blueprint",
"columnsFrom": [
"blueprint_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.grade": {
"name": "grade",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"response_id": {
"name": "response_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"verdict": {
"name": "verdict",
"type": "grade_verdict",
"typeSchema": "public",
"primaryKey": false,
"notNull": true
},
"misconception_tag": {
"name": "misconception_tag",
"type": "text",
"primaryKey": false,
"notNull": false
},
"confidence": {
"name": "confidence",
"type": "real",
"primaryKey": false,
"notNull": true
},
"payload_json": {
"name": "payload_json",
"type": "jsonb",
"primaryKey": false,
"notNull": true
}
},
"indexes": {},
"foreignKeys": {
"grade_response_id_response_id_fk": {
"name": "grade_response_id_response_id_fk",
"tableFrom": "grade",
"tableTo": "response",
"columnsFrom": [
"response_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.job": {
"name": "job",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"type": {
"name": "type",
"type": "text",
"primaryKey": false,
"notNull": true
},
"idempotency_key": {
"name": "idempotency_key",
"type": "text",
"primaryKey": false,
"notNull": true
},
"status": {
"name": "status",
"type": "job_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'pending'"
},
"payload_json": {
"name": "payload_json",
"type": "jsonb",
"primaryKey": false,
"notNull": true
},
"attempts": {
"name": "attempts",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 0
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"job_idempotency_key_unique": {
"name": "job_idempotency_key_unique",
"nullsNotDistinct": false,
"columns": [
"idempotency_key"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.journey_instance": {
"name": "journey_instance",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"blueprint_id": {
"name": "blueprint_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"position": {
"name": "position",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 0
}
},
"indexes": {},
"foreignKeys": {
"journey_instance_user_id_user_id_fk": {
"name": "journey_instance_user_id_user_id_fk",
"tableFrom": "journey_instance",
"tableTo": "user",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
},
"journey_instance_blueprint_id_blueprint_id_fk": {
"name": "journey_instance_blueprint_id_blueprint_id_fk",
"tableFrom": "journey_instance",
"tableTo": "blueprint",
"columnsFrom": [
"blueprint_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.lesson": {
"name": "lesson",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"blueprint_id": {
"name": "blueprint_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"ord": {
"name": "ord",
"type": "integer",
"primaryKey": false,
"notNull": true
},
"est_minutes": {
"name": "est_minutes",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 10
}
},
"indexes": {},
"foreignKeys": {
"lesson_blueprint_id_blueprint_id_fk": {
"name": "lesson_blueprint_id_blueprint_id_fk",
"tableFrom": "lesson",
"tableTo": "blueprint",
"columnsFrom": [
"blueprint_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.mastery": {
"name": "mastery",
"schema": "",
"columns": {
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"concept_id": {
"name": "concept_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"score": {
"name": "score",
"type": "real",
"primaryKey": false,
"notNull": true,
"default": 0.5
},
"last_seen": {
"name": "last_seen",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"next_review": {
"name": "next_review",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {
"mastery_user_id_user_id_fk": {
"name": "mastery_user_id_user_id_fk",
"tableFrom": "mastery",
"tableTo": "user",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
},
"mastery_concept_id_concept_id_fk": {
"name": "mastery_concept_id_concept_id_fk",
"tableFrom": "mastery",
"tableTo": "concept",
"columnsFrom": [
"concept_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {
"mastery_user_id_concept_id_pk": {
"name": "mastery_user_id_concept_id_pk",
"columns": [
"user_id",
"concept_id"
]
}
},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.misconception": {
"name": "misconception",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"concept_id": {
"name": "concept_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"tag": {
"name": "tag",
"type": "text",
"primaryKey": false,
"notNull": true
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"signature": {
"name": "signature",
"type": "text",
"primaryKey": false,
"notNull": true
},
"correction": {
"name": "correction",
"type": "text",
"primaryKey": false,
"notNull": false
},
"verify_status": {
"name": "verify_status",
"type": "verify_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'pending'"
}
},
"indexes": {},
"foreignKeys": {
"misconception_concept_id_concept_id_fk": {
"name": "misconception_concept_id_concept_id_fk",
"tableFrom": "misconception",
"tableTo": "concept",
"columnsFrom": [
"concept_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.response": {
"name": "response",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"checkpoint_id": {
"name": "checkpoint_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"text": {
"name": "text",
"type": "text",
"primaryKey": false,
"notNull": true
},
"ts": {
"name": "ts",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {
"response_user_id_user_id_fk": {
"name": "response_user_id_user_id_fk",
"tableFrom": "response",
"tableTo": "user",
"columnsFrom": [
"user_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
},
"response_checkpoint_id_checkpoint_id_fk": {
"name": "response_checkpoint_id_checkpoint_id_fk",
"tableFrom": "response",
"tableTo": "checkpoint",
"columnsFrom": [
"checkpoint_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.segment": {
"name": "segment",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"lesson_id": {
"name": "lesson_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"ord": {
"name": "ord",
"type": "integer",
"primaryKey": false,
"notNull": true
},
"body_json": {
"name": "body_json",
"type": "jsonb",
"primaryKey": false,
"notNull": true
},
"source_chunk_ids": {
"name": "source_chunk_ids",
"type": "uuid[]",
"primaryKey": false,
"notNull": true,
"default": "'{}'"
},
"verify_status": {
"name": "verify_status",
"type": "verify_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'pending'"
},
"content_version": {
"name": "content_version",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 1
}
},
"indexes": {},
"foreignKeys": {
"segment_lesson_id_lesson_id_fk": {
"name": "segment_lesson_id_lesson_id_fk",
"tableFrom": "segment",
"tableTo": "lesson",
"columnsFrom": [
"lesson_id"
],
"columnsTo": [
"id"
],
"onDelete": "no action",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.source_chunk": {
"name": "source_chunk",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"doc_ref": {
"name": "doc_ref",
"type": "text",
"primaryKey": false,
"notNull": true
},
"embedding": {
"name": "embedding",
"type": "vector(1536)",
"primaryKey": false,
"notNull": false
},
"text": {
"name": "text",
"type": "text",
"primaryKey": false,
"notNull": true
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.user": {
"name": "user",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.verify_report": {
"name": "verify_report",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "gen_random_uuid()"
},
"target_id": {
"name": "target_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"target_type": {
"name": "target_type",
"type": "text",
"primaryKey": false,
"notNull": true
},
"verdict": {
"name": "verdict",
"type": "verify_verdict",
"typeSchema": "public",
"primaryKey": false,
"notNull": true
},
"confidence": {
"name": "confidence",
"type": "real",
"primaryKey": false,
"notNull": true
},
"payload_json": {
"name": "payload_json",
"type": "jsonb",
"primaryKey": false,
"notNull": true
},
"model_version": {
"name": "model_version",
"type": "text",
"primaryKey": false,
"notNull": true
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
}
},
"enums": {
"public.blueprint_status": {
"name": "blueprint_status",
"schema": "public",
"values": [
"draft",
"verifying",
"published",
"flagged"
]
},
"public.checkpoint_kind": {
"name": "checkpoint_kind",
"schema": "public",
"values": [
"predict",
"explain",
"solve"
]
},
"public.grade_verdict": {
"name": "grade_verdict",
"schema": "public",
"values": [
"mastered",
"partial",
"misconception",
"uncertain"
]
},
"public.job_status": {
"name": "job_status",
"schema": "public",
"values": [
"pending",
"running",
"done",
"failed"
]
},
"public.verify_status": {
"name": "verify_status",
"schema": "public",
"values": [
"pending",
"pass",
"fail",
"uncertain"
]
},
"public.verify_verdict": {
"name": "verify_verdict",
"schema": "public",
"values": [
"pass",
"fail",
"uncertain"
]
}
},
"schemas": {},
"sequences": {},
"roles": {},
"policies": {},
"views": {},
"_meta": {
"columns": {},
"schemas": {},
"tables": {}
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+48
View File
@@ -0,0 +1,48 @@
{
"version": "7",
"dialect": "postgresql",
"entries": [
{
"idx": 0,
"version": "7",
"when": 1781991328126,
"tag": "0000_overrated_liz_osborn",
"breakpoints": true
},
{
"idx": 1,
"version": "7",
"when": 1782018031574,
"tag": "0001_marvelous_pepper_potts",
"breakpoints": true
},
{
"idx": 2,
"version": "7",
"when": 1782100000000,
"tag": "0002_response_confidence",
"breakpoints": true
},
{
"idx": 3,
"version": "7",
"when": 1782050126016,
"tag": "0003_parched_wither",
"breakpoints": true
},
{
"idx": 4,
"version": "7",
"when": 1782066514369,
"tag": "0004_auth",
"breakpoints": true
},
{
"idx": 5,
"version": "7",
"when": 1782070177922,
"tag": "0005_site_email",
"breakpoints": true
}
]
}