54 lines
1.8 KiB
SQL
54 lines
1.8 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "AgentTool" AS ENUM ('DUCK_DUCK_GO_SEARCH', 'PUBMED', 'PYTHON_REPL', 'SEMANTIC_SCHOLER', 'STACK_EXCHANGE', 'WIKIDATA', 'WIKIPEDIA', 'YAHOO_FINANCE', 'YUOUTUBE_SEARCH');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "MissionProcess" AS ENUM ('SEQUENTIAL', 'HIERARCHICAL');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Agent" (
|
|
"id" SERIAL NOT NULL,
|
|
"role" TEXT NOT NULL,
|
|
"goal" TEXT NOT NULL,
|
|
"backstory" TEXT,
|
|
"tools" "AgentTool"[] DEFAULT ARRAY[]::"AgentTool"[],
|
|
"allowDelegation" BOOLEAN NOT NULL DEFAULT false,
|
|
"verbose" BOOLEAN NOT NULL DEFAULT false,
|
|
"image" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Agent_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Mission" (
|
|
"id" SERIAL NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"tasks" JSONB[] DEFAULT ARRAY[]::JSONB[],
|
|
"verbose" BOOLEAN NOT NULL DEFAULT false,
|
|
"process" "MissionProcess" NOT NULL DEFAULT 'SEQUENTIAL',
|
|
"result" TEXT NOT NULL DEFAULT '',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Mission_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "_AgentToMission" (
|
|
"A" INTEGER NOT NULL,
|
|
"B" INTEGER NOT NULL
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "_AgentToMission_AB_unique" ON "_AgentToMission"("A", "B");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "_AgentToMission_B_index" ON "_AgentToMission"("B");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "_AgentToMission" ADD CONSTRAINT "_AgentToMission_A_fkey" FOREIGN KEY ("A") REFERENCES "Agent"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "_AgentToMission" ADD CONSTRAINT "_AgentToMission_B_fkey" FOREIGN KEY ("B") REFERENCES "Mission"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|