@openork/cli 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -0
- package/dist/commands/doctor.d.ts +12 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +110 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/gateway/start.d.ts +7 -0
- package/dist/commands/gateway/start.d.ts.map +1 -1
- package/dist/commands/gateway/start.js +64 -6
- package/dist/commands/gateway/start.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +19 -0
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +51 -31
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/lib/doctor.d.ts +28 -0
- package/dist/lib/doctor.d.ts.map +1 -0
- package/dist/lib/doctor.js +227 -0
- package/dist/lib/doctor.js.map +1 -0
- package/dist/openapi.yml +770 -0
- package/dist/prisma/migrations/20260401085053_schema_sync/migration.sql +178 -0
- package/dist/prisma/migrations/20260401135027_add_auth_rbac_multitenancy/migration.sql +211 -0
- package/dist/prisma/schema.prisma +101 -0
- package/dist/server.js +74899 -175525
- package/dist/server.js.map +1 -1
- package/dist/web/assets/{activity-feed-D_eonDKG.js → activity-feed-CNgi7Qb_.js} +1 -1
- package/dist/web/assets/agent-edit-CgbnHiT5.js +98 -0
- package/dist/web/assets/agent-sessions-Bpay1_ZH.js +1 -0
- package/dist/web/assets/agent-use-BaBxQ2fx.js +1 -0
- package/dist/web/assets/agents-Dwbd6TQx.js +1 -0
- package/dist/web/assets/api-DNWoqIPN.js +1 -0
- package/dist/web/assets/arrow-down-upU5tcpi.js +1 -0
- package/dist/web/assets/arrow-left-BiNeYcK0.js +1 -0
- package/dist/web/assets/auth-client-ys1jC854.js +1 -0
- package/dist/web/assets/chat-BP5H9CWl.js +4 -0
- package/dist/web/assets/{chat-input-BepRPV_L.js → chat-input-CKAtAtgG.js} +2 -2
- package/dist/web/assets/{chat-message-CbcDeDcb.js → chat-message-CW-HnO3f.js} +3 -3
- package/dist/web/assets/chat-new-BQp9Bn7Q.js +1 -0
- package/dist/web/assets/chat-sessions-D3bS5vba.js +1 -0
- package/dist/web/assets/chats-DJolHH4e.js +1 -0
- package/dist/web/assets/{circle-alert-W8QX9LOG.js → circle-alert-D040vPU_.js} +1 -1
- package/dist/web/assets/circle-check-CW3adL8A.js +1 -0
- package/dist/web/assets/{circle-x-D_8Tcgt1.js → circle-x-34c-1fVL.js} +1 -1
- package/dist/web/assets/code-BFUT4gGT.js +1 -0
- package/dist/web/assets/{code-editor-x9L6nkh4.js → code-editor-I6vK5q_W.js} +1 -1
- package/dist/web/assets/commands-DBI4Bb2N.js +8 -0
- package/dist/web/assets/{copy-C87mjn_Y.js → copy-DI5qjA1p.js} +1 -1
- package/dist/web/assets/credentials-D8VN8A5M.js +1 -0
- package/dist/web/assets/{crown-BJEsQkh4.js → crown-DWB5bSnq.js} +1 -1
- package/dist/web/assets/dashboard-Cc6KWs62.js +1 -0
- package/dist/web/assets/{database-BohjTljV.js → database-5jczNGML.js} +1 -1
- package/dist/web/assets/debug-DewdHeoW.js +1 -0
- package/dist/web/assets/{download-B2UOiYAS.js → download-CwO6xusv.js} +1 -1
- package/dist/web/assets/{eye-DN-Km5vf.js → eye-BQGasWwb.js} +1 -1
- package/dist/web/assets/{file-plus-B8qWemgt.js → file-plus-kHgvf9P8.js} +1 -1
- package/dist/web/assets/file-tree-CTe61XCg.js +1 -0
- package/dist/web/assets/{folder-plus-DsmP6Mur.js → folder-plus-mZAz-QpJ.js} +1 -1
- package/dist/web/assets/{globe-fwFSeXZn.js → globe-C0WHVFW_.js} +1 -1
- package/dist/web/assets/{grip-vertical-Djo-yR-o.js → grip-vertical-CdhrWSnV.js} +1 -1
- package/dist/web/assets/{history-CyBBboEp.js → history-w7qYglj5.js} +1 -1
- package/dist/web/assets/index-9X_UIor3.css +2 -0
- package/dist/web/assets/index-DWNLSHpo.js +4 -0
- package/dist/web/assets/key-DJEQ_jUi.js +1 -0
- package/dist/web/assets/{layers-ephyCrDm.js → layers-KZu6CpGE.js} +1 -1
- package/dist/web/assets/{layout-grid-DCVGg8ZA.js → layout-grid-U17jhSjz.js} +1 -1
- package/dist/web/assets/login-DoSA7KtI.js +1 -0
- package/dist/web/assets/mcp-setup-Cyj1YAiY.js +17 -0
- package/dist/web/assets/memory-DWZU2Tfl.js +1 -0
- package/dist/web/assets/new-chat-BRS3DM8Z.js +1 -0
- package/dist/web/assets/play-BzkxV_O-.js +1 -0
- package/dist/web/assets/{refresh-cw-RFYUf5GB.js → refresh-cw-D3_GZ86i.js} +1 -1
- package/dist/web/assets/register-BS5OkCgS.js +1 -0
- package/dist/web/assets/rotate-ccw-CkJIdGxi.js +1 -0
- package/dist/web/assets/{save-Dewm93H6.js → save-BXEZF80P.js} +1 -1
- package/dist/web/assets/search-BmZSwFnA.js +1 -0
- package/dist/web/assets/{send-FWvygYFQ.js → send-CNiXC6KO.js} +1 -1
- package/dist/web/assets/server-C5bKQLDi.js +1 -0
- package/dist/web/assets/settings-CBAhSOZM.js +1 -0
- package/dist/web/assets/shield-CMMTdOiM.js +1 -0
- package/dist/web/assets/{shield-check-Dt7sXtBF.js → shield-check-BmphmMlD.js} +1 -1
- package/dist/web/assets/{shuffle-DjvBJ7XV.js → shuffle-Dv_-PFl5.js} +1 -1
- package/dist/web/assets/src-CaF63bXY.js +24 -0
- package/dist/web/assets/sse-url-qohTy4Sw.js +1 -0
- package/dist/web/assets/team-edit-BW1bePKn.js +1 -0
- package/dist/web/assets/team-sessions-GspGc7zN.js +1 -0
- package/dist/web/assets/team-use-BVC7nt9K.js +3 -0
- package/dist/web/assets/terminal-CjSFIwMK.js +1 -0
- package/dist/web/assets/{timer-C9X20mTO.js → timer-3siC9tpd.js} +1 -1
- package/dist/web/assets/{useMutation-BlOHt3MR.js → useMutation-DA8-TvTt.js} +1 -1
- package/dist/web/assets/{utils-DHTPP40O.js → utils-D1nRmcA6.js} +1 -1
- package/dist/web/assets/workflow-edit-DkmsARCv.js +4 -0
- package/dist/web/assets/workflow-runs-DcJPL7Bo.js +1 -0
- package/dist/web/assets/workflows-Dnx0dwJn.js +1 -0
- package/dist/web/assets/{wrench-DZBtSPP8.js → wrench-u8B_fDwT.js} +1 -1
- package/dist/web/assets/{zap-CbT5plGA.js → zap-hOn7wkXe.js} +1 -1
- package/dist/web/index.html +9 -7
- package/package.json +1 -1
- package/dist/web/assets/agent-edit-CblZItU5.js +0 -98
- package/dist/web/assets/agent-sessions-COpCcffa.js +0 -1
- package/dist/web/assets/agent-use-F4pOt3KJ.js +0 -1
- package/dist/web/assets/agents-Av7w2wHE.js +0 -1
- package/dist/web/assets/arrow-down-XHN5PD1k.js +0 -1
- package/dist/web/assets/arrow-left-wtNmm6Le.js +0 -1
- package/dist/web/assets/chat-CQvfLy7Y.js +0 -4
- package/dist/web/assets/chat-new-BOtDuYij.js +0 -1
- package/dist/web/assets/chat-sessions-CaCaK_PC.js +0 -1
- package/dist/web/assets/chats-64IReeGV.js +0 -1
- package/dist/web/assets/circle-check-DLl9fl65.js +0 -1
- package/dist/web/assets/code-Brz4KHlI.js +0 -1
- package/dist/web/assets/commands-DT9K8bae.js +0 -8
- package/dist/web/assets/credentials-DC-HOVxW.js +0 -1
- package/dist/web/assets/dashboard-OfnNUjFX.js +0 -1
- package/dist/web/assets/debug-Et9rgBM8.js +0 -1
- package/dist/web/assets/file-tree-DkLQ1z0I.js +0 -1
- package/dist/web/assets/index-YgjFlLLv.css +0 -2
- package/dist/web/assets/index-dc8HGqTp.js +0 -2
- package/dist/web/assets/mcp-setup-BfMdYdsI.js +0 -17
- package/dist/web/assets/memory-DAQ474-p.js +0 -1
- package/dist/web/assets/new-chat-DtMw6FMg.js +0 -1
- package/dist/web/assets/play-DXJMtO-K.js +0 -1
- package/dist/web/assets/search-Ww0msJQz.js +0 -1
- package/dist/web/assets/settings-Auyn4Z5T.js +0 -1
- package/dist/web/assets/src-DUhGoAQb.js +0 -24
- package/dist/web/assets/team-edit-DO-RX3lC.js +0 -1
- package/dist/web/assets/team-sessions-DSw8MTtZ.js +0 -1
- package/dist/web/assets/team-use-BfNvsFcO.js +0 -3
- package/dist/web/assets/terminal-CIapYonS.js +0 -1
- package/dist/web/assets/workflow-edit-D0FNyl64.js +0 -4
- package/dist/web/assets/workflow-runs-CPVvaVzN.js +0 -1
- package/dist/web/assets/workflows-C9jurJiE.js +0 -1
- /package/dist/web/assets/{api-docs-BQzn4-6U.js → api-docs-DgRFxVfh.js} +0 -0
- /package/dist/web/assets/{bi-gM8sIAZV.js → bi-Da3wz7XD.js} +0 -0
- /package/dist/web/assets/{cron-COUPKvGu.js → cron-3VyztcE9.js} +0 -0
- /package/dist/web/assets/{vendor-editor-BORFA-rZ.js → vendor-editor-Cx3Ogh9u.js} +0 -0
- /package/dist/web/assets/{vendor-ui-Dpw9mBc-.js → vendor-ui-DnL9d3od.js} +0 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
-- AlterTable
|
|
2
|
+
ALTER TABLE "AgentRun" ADD COLUMN "cacheReadTokens" INTEGER;
|
|
3
|
+
ALTER TABLE "AgentRun" ADD COLUMN "cacheWriteTokens" INTEGER;
|
|
4
|
+
ALTER TABLE "AgentRun" ADD COLUMN "inputTokens" INTEGER;
|
|
5
|
+
ALTER TABLE "AgentRun" ADD COLUMN "model" TEXT;
|
|
6
|
+
ALTER TABLE "AgentRun" ADD COLUMN "outputTokens" INTEGER;
|
|
7
|
+
ALTER TABLE "AgentRun" ADD COLUMN "summary" TEXT;
|
|
8
|
+
|
|
9
|
+
-- AlterTable
|
|
10
|
+
ALTER TABLE "WorkflowRun" ADD COLUMN "payload" TEXT;
|
|
11
|
+
|
|
12
|
+
-- CreateTable
|
|
13
|
+
CREATE TABLE "Credential" (
|
|
14
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
15
|
+
"name" TEXT NOT NULL,
|
|
16
|
+
"type" TEXT NOT NULL,
|
|
17
|
+
"data" TEXT NOT NULL,
|
|
18
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
19
|
+
"updatedAt" DATETIME NOT NULL
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
-- CreateTable
|
|
23
|
+
CREATE TABLE "LogEntry" (
|
|
24
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
25
|
+
"agentRunId" TEXT NOT NULL,
|
|
26
|
+
"stream" TEXT NOT NULL DEFAULT 'stdout',
|
|
27
|
+
"text" TEXT NOT NULL,
|
|
28
|
+
"timestamp" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
29
|
+
CONSTRAINT "LogEntry_agentRunId_fkey" FOREIGN KEY ("agentRunId") REFERENCES "AgentRun" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
-- CreateTable
|
|
33
|
+
CREATE TABLE "TeamSession" (
|
|
34
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
35
|
+
"teamId" TEXT NOT NULL,
|
|
36
|
+
"teamName" TEXT NOT NULL,
|
|
37
|
+
"strategy" TEXT NOT NULL,
|
|
38
|
+
"status" TEXT NOT NULL,
|
|
39
|
+
"prompt" TEXT NOT NULL,
|
|
40
|
+
"maxRounds" INTEGER NOT NULL,
|
|
41
|
+
"totalRounds" INTEGER NOT NULL,
|
|
42
|
+
"error" TEXT,
|
|
43
|
+
"inputTokens" INTEGER NOT NULL DEFAULT 0,
|
|
44
|
+
"outputTokens" INTEGER NOT NULL DEFAULT 0,
|
|
45
|
+
"cacheReadTokens" INTEGER NOT NULL DEFAULT 0,
|
|
46
|
+
"cacheWriteTokens" INTEGER NOT NULL DEFAULT 0,
|
|
47
|
+
"startedAt" DATETIME NOT NULL,
|
|
48
|
+
"completedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
-- CreateTable
|
|
52
|
+
CREATE TABLE "AgentChatSession" (
|
|
53
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
54
|
+
"agentId" TEXT NOT NULL,
|
|
55
|
+
"agentName" TEXT NOT NULL,
|
|
56
|
+
"status" TEXT NOT NULL,
|
|
57
|
+
"prompt" TEXT NOT NULL,
|
|
58
|
+
"output" TEXT,
|
|
59
|
+
"model" TEXT,
|
|
60
|
+
"cli" TEXT,
|
|
61
|
+
"error" TEXT,
|
|
62
|
+
"inputTokens" INTEGER NOT NULL DEFAULT 0,
|
|
63
|
+
"outputTokens" INTEGER NOT NULL DEFAULT 0,
|
|
64
|
+
"cacheReadTokens" INTEGER NOT NULL DEFAULT 0,
|
|
65
|
+
"cacheWriteTokens" INTEGER NOT NULL DEFAULT 0,
|
|
66
|
+
"streamId" TEXT,
|
|
67
|
+
"sessionId" TEXT,
|
|
68
|
+
"startedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
69
|
+
"completedAt" DATETIME
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
-- CreateTable
|
|
73
|
+
CREATE TABLE "TeamSessionAgent" (
|
|
74
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
75
|
+
"teamSessionId" TEXT NOT NULL,
|
|
76
|
+
"agentId" TEXT NOT NULL,
|
|
77
|
+
"agentName" TEXT NOT NULL,
|
|
78
|
+
"nodeId" TEXT NOT NULL,
|
|
79
|
+
"role" TEXT NOT NULL,
|
|
80
|
+
"status" TEXT NOT NULL,
|
|
81
|
+
"round" INTEGER NOT NULL,
|
|
82
|
+
"output" TEXT,
|
|
83
|
+
"model" TEXT,
|
|
84
|
+
"inputTokens" INTEGER NOT NULL DEFAULT 0,
|
|
85
|
+
"outputTokens" INTEGER NOT NULL DEFAULT 0,
|
|
86
|
+
"cacheReadTokens" INTEGER NOT NULL DEFAULT 0,
|
|
87
|
+
"cacheWriteTokens" INTEGER NOT NULL DEFAULT 0,
|
|
88
|
+
CONSTRAINT "TeamSessionAgent_teamSessionId_fkey" FOREIGN KEY ("teamSessionId") REFERENCES "TeamSession" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
-- RedefineTables
|
|
92
|
+
PRAGMA defer_foreign_keys=ON;
|
|
93
|
+
PRAGMA foreign_keys=OFF;
|
|
94
|
+
CREATE TABLE "new_Action" (
|
|
95
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
96
|
+
"name" TEXT,
|
|
97
|
+
"type" TEXT NOT NULL DEFAULT 'cli-agent',
|
|
98
|
+
"order" INTEGER NOT NULL,
|
|
99
|
+
"dependsOn" TEXT,
|
|
100
|
+
"workflowId" TEXT NOT NULL,
|
|
101
|
+
"cli" TEXT,
|
|
102
|
+
"model" TEXT,
|
|
103
|
+
"prompt" TEXT,
|
|
104
|
+
"trustMode" BOOLEAN NOT NULL DEFAULT true,
|
|
105
|
+
"script" TEXT,
|
|
106
|
+
"httpMethod" TEXT,
|
|
107
|
+
"httpUrl" TEXT,
|
|
108
|
+
"httpHeaders" TEXT,
|
|
109
|
+
"httpBody" TEXT,
|
|
110
|
+
"credentialId" TEXT,
|
|
111
|
+
"timeoutMs" INTEGER,
|
|
112
|
+
"targetWorkflowId" TEXT,
|
|
113
|
+
"agentId" TEXT,
|
|
114
|
+
"teamId" TEXT,
|
|
115
|
+
CONSTRAINT "Action_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES "Workflow" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
116
|
+
CONSTRAINT "Action_credentialId_fkey" FOREIGN KEY ("credentialId") REFERENCES "Credential" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
117
|
+
);
|
|
118
|
+
INSERT INTO "new_Action" ("cli", "httpBody", "httpHeaders", "httpMethod", "httpUrl", "id", "order", "prompt", "script", "type", "workflowId") SELECT "cli", "httpBody", "httpHeaders", "httpMethod", "httpUrl", "id", "order", "prompt", "script", "type", "workflowId" FROM "Action";
|
|
119
|
+
DROP TABLE "Action";
|
|
120
|
+
ALTER TABLE "new_Action" RENAME TO "Action";
|
|
121
|
+
CREATE INDEX "Action_workflowId_idx" ON "Action"("workflowId");
|
|
122
|
+
CREATE TABLE "new_Workflow" (
|
|
123
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
124
|
+
"name" TEXT NOT NULL,
|
|
125
|
+
"description" TEXT,
|
|
126
|
+
"workspace" TEXT,
|
|
127
|
+
"cli" TEXT NOT NULL DEFAULT 'cursor',
|
|
128
|
+
"model" TEXT,
|
|
129
|
+
"cronExpression" TEXT,
|
|
130
|
+
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
|
131
|
+
"summaryEnabled" BOOLEAN NOT NULL DEFAULT false,
|
|
132
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
133
|
+
"updatedAt" DATETIME NOT NULL
|
|
134
|
+
);
|
|
135
|
+
INSERT INTO "new_Workflow" ("cli", "createdAt", "cronExpression", "description", "enabled", "id", "model", "name", "updatedAt", "workspace") SELECT "cli", "createdAt", "cronExpression", "description", "enabled", "id", "model", "name", "updatedAt", "workspace" FROM "Workflow";
|
|
136
|
+
DROP TABLE "Workflow";
|
|
137
|
+
ALTER TABLE "new_Workflow" RENAME TO "Workflow";
|
|
138
|
+
PRAGMA foreign_keys=ON;
|
|
139
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
140
|
+
|
|
141
|
+
-- CreateIndex
|
|
142
|
+
CREATE INDEX "LogEntry_agentRunId_idx" ON "LogEntry"("agentRunId");
|
|
143
|
+
|
|
144
|
+
-- CreateIndex
|
|
145
|
+
CREATE INDEX "TeamSession_teamId_idx" ON "TeamSession"("teamId");
|
|
146
|
+
|
|
147
|
+
-- CreateIndex
|
|
148
|
+
CREATE INDEX "TeamSession_status_idx" ON "TeamSession"("status");
|
|
149
|
+
|
|
150
|
+
-- CreateIndex
|
|
151
|
+
CREATE INDEX "TeamSession_startedAt_idx" ON "TeamSession"("startedAt");
|
|
152
|
+
|
|
153
|
+
-- CreateIndex
|
|
154
|
+
CREATE INDEX "TeamSession_completedAt_idx" ON "TeamSession"("completedAt");
|
|
155
|
+
|
|
156
|
+
-- CreateIndex
|
|
157
|
+
CREATE INDEX "AgentChatSession_agentId_idx" ON "AgentChatSession"("agentId");
|
|
158
|
+
|
|
159
|
+
-- CreateIndex
|
|
160
|
+
CREATE INDEX "AgentChatSession_status_idx" ON "AgentChatSession"("status");
|
|
161
|
+
|
|
162
|
+
-- CreateIndex
|
|
163
|
+
CREATE INDEX "AgentChatSession_startedAt_idx" ON "AgentChatSession"("startedAt");
|
|
164
|
+
|
|
165
|
+
-- CreateIndex
|
|
166
|
+
CREATE INDEX "TeamSessionAgent_teamSessionId_idx" ON "TeamSessionAgent"("teamSessionId");
|
|
167
|
+
|
|
168
|
+
-- CreateIndex
|
|
169
|
+
CREATE INDEX "TeamSessionAgent_agentId_idx" ON "TeamSessionAgent"("agentId");
|
|
170
|
+
|
|
171
|
+
-- CreateIndex
|
|
172
|
+
CREATE INDEX "AgentRun_workflowRunId_status_idx" ON "AgentRun"("workflowRunId", "status");
|
|
173
|
+
|
|
174
|
+
-- CreateIndex
|
|
175
|
+
CREATE INDEX "Trigger_type_eventName_idx" ON "Trigger"("type", "eventName");
|
|
176
|
+
|
|
177
|
+
-- CreateIndex
|
|
178
|
+
CREATE INDEX "WorkflowRun_status_idx" ON "WorkflowRun"("status");
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "user" (
|
|
3
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
4
|
+
"name" TEXT NOT NULL,
|
|
5
|
+
"email" TEXT NOT NULL,
|
|
6
|
+
"emailVerified" BOOLEAN NOT NULL DEFAULT false,
|
|
7
|
+
"image" TEXT,
|
|
8
|
+
"roleId" TEXT NOT NULL,
|
|
9
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
10
|
+
"updatedAt" DATETIME NOT NULL,
|
|
11
|
+
CONSTRAINT "user_roleId_fkey" FOREIGN KEY ("roleId") REFERENCES "role" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
-- CreateTable
|
|
15
|
+
CREATE TABLE "role" (
|
|
16
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
17
|
+
"name" TEXT NOT NULL,
|
|
18
|
+
"description" TEXT,
|
|
19
|
+
"isSystem" BOOLEAN NOT NULL DEFAULT false,
|
|
20
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
21
|
+
"updatedAt" DATETIME NOT NULL
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
-- CreateTable
|
|
25
|
+
CREATE TABLE "rolePermission" (
|
|
26
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
27
|
+
"roleId" TEXT NOT NULL,
|
|
28
|
+
"entity" TEXT NOT NULL,
|
|
29
|
+
"action" TEXT NOT NULL,
|
|
30
|
+
"scope" TEXT NOT NULL DEFAULT 'all',
|
|
31
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
32
|
+
CONSTRAINT "rolePermission_roleId_fkey" FOREIGN KEY ("roleId") REFERENCES "role" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
-- CreateTable
|
|
36
|
+
CREATE TABLE "session" (
|
|
37
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
38
|
+
"expiresAt" DATETIME NOT NULL,
|
|
39
|
+
"token" TEXT NOT NULL,
|
|
40
|
+
"ipAddress" TEXT,
|
|
41
|
+
"userAgent" TEXT,
|
|
42
|
+
"userId" TEXT NOT NULL,
|
|
43
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
44
|
+
"updatedAt" DATETIME NOT NULL,
|
|
45
|
+
CONSTRAINT "session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
-- CreateTable
|
|
49
|
+
CREATE TABLE "account" (
|
|
50
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
51
|
+
"accountId" TEXT NOT NULL,
|
|
52
|
+
"providerId" TEXT NOT NULL,
|
|
53
|
+
"userId" TEXT NOT NULL,
|
|
54
|
+
"accessToken" TEXT,
|
|
55
|
+
"refreshToken" TEXT,
|
|
56
|
+
"idToken" TEXT,
|
|
57
|
+
"accessTokenExpiresAt" DATETIME,
|
|
58
|
+
"refreshTokenExpiresAt" DATETIME,
|
|
59
|
+
"scope" TEXT,
|
|
60
|
+
"password" TEXT,
|
|
61
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
62
|
+
"updatedAt" DATETIME NOT NULL,
|
|
63
|
+
CONSTRAINT "account_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
-- CreateTable
|
|
67
|
+
CREATE TABLE "verification" (
|
|
68
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
69
|
+
"identifier" TEXT NOT NULL,
|
|
70
|
+
"value" TEXT NOT NULL,
|
|
71
|
+
"expiresAt" DATETIME NOT NULL,
|
|
72
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
73
|
+
"updatedAt" DATETIME NOT NULL
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
-- RedefineTables
|
|
77
|
+
PRAGMA defer_foreign_keys=ON;
|
|
78
|
+
PRAGMA foreign_keys=OFF;
|
|
79
|
+
CREATE TABLE "new_AgentChatSession" (
|
|
80
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
81
|
+
"agentId" TEXT NOT NULL,
|
|
82
|
+
"agentName" TEXT NOT NULL,
|
|
83
|
+
"status" TEXT NOT NULL,
|
|
84
|
+
"prompt" TEXT NOT NULL,
|
|
85
|
+
"output" TEXT,
|
|
86
|
+
"model" TEXT,
|
|
87
|
+
"cli" TEXT,
|
|
88
|
+
"error" TEXT,
|
|
89
|
+
"userId" TEXT NOT NULL DEFAULT '',
|
|
90
|
+
"inputTokens" INTEGER NOT NULL DEFAULT 0,
|
|
91
|
+
"outputTokens" INTEGER NOT NULL DEFAULT 0,
|
|
92
|
+
"cacheReadTokens" INTEGER NOT NULL DEFAULT 0,
|
|
93
|
+
"cacheWriteTokens" INTEGER NOT NULL DEFAULT 0,
|
|
94
|
+
"streamId" TEXT,
|
|
95
|
+
"sessionId" TEXT,
|
|
96
|
+
"startedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
97
|
+
"completedAt" DATETIME
|
|
98
|
+
);
|
|
99
|
+
INSERT INTO "new_AgentChatSession" ("agentId", "agentName", "cacheReadTokens", "cacheWriteTokens", "cli", "completedAt", "error", "id", "inputTokens", "model", "output", "outputTokens", "prompt", "sessionId", "startedAt", "status", "streamId") SELECT "agentId", "agentName", "cacheReadTokens", "cacheWriteTokens", "cli", "completedAt", "error", "id", "inputTokens", "model", "output", "outputTokens", "prompt", "sessionId", "startedAt", "status", "streamId" FROM "AgentChatSession";
|
|
100
|
+
DROP TABLE "AgentChatSession";
|
|
101
|
+
ALTER TABLE "new_AgentChatSession" RENAME TO "AgentChatSession";
|
|
102
|
+
CREATE INDEX "AgentChatSession_agentId_idx" ON "AgentChatSession"("agentId");
|
|
103
|
+
CREATE INDEX "AgentChatSession_status_idx" ON "AgentChatSession"("status");
|
|
104
|
+
CREATE INDEX "AgentChatSession_startedAt_idx" ON "AgentChatSession"("startedAt");
|
|
105
|
+
CREATE INDEX "AgentChatSession_userId_idx" ON "AgentChatSession"("userId");
|
|
106
|
+
CREATE TABLE "new_Credential" (
|
|
107
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
108
|
+
"name" TEXT NOT NULL,
|
|
109
|
+
"type" TEXT NOT NULL,
|
|
110
|
+
"data" TEXT NOT NULL,
|
|
111
|
+
"userId" TEXT NOT NULL DEFAULT '',
|
|
112
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
113
|
+
"updatedAt" DATETIME NOT NULL
|
|
114
|
+
);
|
|
115
|
+
INSERT INTO "new_Credential" ("createdAt", "data", "id", "name", "type", "updatedAt") SELECT "createdAt", "data", "id", "name", "type", "updatedAt" FROM "Credential";
|
|
116
|
+
DROP TABLE "Credential";
|
|
117
|
+
ALTER TABLE "new_Credential" RENAME TO "Credential";
|
|
118
|
+
CREATE INDEX "Credential_userId_idx" ON "Credential"("userId");
|
|
119
|
+
CREATE TABLE "new_TeamSession" (
|
|
120
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
121
|
+
"teamId" TEXT NOT NULL,
|
|
122
|
+
"teamName" TEXT NOT NULL,
|
|
123
|
+
"strategy" TEXT NOT NULL,
|
|
124
|
+
"status" TEXT NOT NULL,
|
|
125
|
+
"prompt" TEXT NOT NULL,
|
|
126
|
+
"maxRounds" INTEGER NOT NULL,
|
|
127
|
+
"totalRounds" INTEGER NOT NULL,
|
|
128
|
+
"error" TEXT,
|
|
129
|
+
"userId" TEXT NOT NULL DEFAULT '',
|
|
130
|
+
"inputTokens" INTEGER NOT NULL DEFAULT 0,
|
|
131
|
+
"outputTokens" INTEGER NOT NULL DEFAULT 0,
|
|
132
|
+
"cacheReadTokens" INTEGER NOT NULL DEFAULT 0,
|
|
133
|
+
"cacheWriteTokens" INTEGER NOT NULL DEFAULT 0,
|
|
134
|
+
"startedAt" DATETIME NOT NULL,
|
|
135
|
+
"completedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
136
|
+
);
|
|
137
|
+
INSERT INTO "new_TeamSession" ("cacheReadTokens", "cacheWriteTokens", "completedAt", "error", "id", "inputTokens", "maxRounds", "outputTokens", "prompt", "startedAt", "status", "strategy", "teamId", "teamName", "totalRounds") SELECT "cacheReadTokens", "cacheWriteTokens", "completedAt", "error", "id", "inputTokens", "maxRounds", "outputTokens", "prompt", "startedAt", "status", "strategy", "teamId", "teamName", "totalRounds" FROM "TeamSession";
|
|
138
|
+
DROP TABLE "TeamSession";
|
|
139
|
+
ALTER TABLE "new_TeamSession" RENAME TO "TeamSession";
|
|
140
|
+
CREATE INDEX "TeamSession_teamId_idx" ON "TeamSession"("teamId");
|
|
141
|
+
CREATE INDEX "TeamSession_status_idx" ON "TeamSession"("status");
|
|
142
|
+
CREATE INDEX "TeamSession_startedAt_idx" ON "TeamSession"("startedAt");
|
|
143
|
+
CREATE INDEX "TeamSession_completedAt_idx" ON "TeamSession"("completedAt");
|
|
144
|
+
CREATE INDEX "TeamSession_userId_idx" ON "TeamSession"("userId");
|
|
145
|
+
CREATE TABLE "new_Workflow" (
|
|
146
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
147
|
+
"name" TEXT NOT NULL,
|
|
148
|
+
"description" TEXT,
|
|
149
|
+
"workspace" TEXT,
|
|
150
|
+
"cli" TEXT NOT NULL DEFAULT 'cursor',
|
|
151
|
+
"model" TEXT,
|
|
152
|
+
"cronExpression" TEXT,
|
|
153
|
+
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
|
154
|
+
"summaryEnabled" BOOLEAN NOT NULL DEFAULT false,
|
|
155
|
+
"userId" TEXT NOT NULL DEFAULT '',
|
|
156
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
157
|
+
"updatedAt" DATETIME NOT NULL
|
|
158
|
+
);
|
|
159
|
+
INSERT INTO "new_Workflow" ("cli", "createdAt", "cronExpression", "description", "enabled", "id", "model", "name", "summaryEnabled", "updatedAt", "workspace") SELECT "cli", "createdAt", "cronExpression", "description", "enabled", "id", "model", "name", "summaryEnabled", "updatedAt", "workspace" FROM "Workflow";
|
|
160
|
+
DROP TABLE "Workflow";
|
|
161
|
+
ALTER TABLE "new_Workflow" RENAME TO "Workflow";
|
|
162
|
+
CREATE INDEX "Workflow_userId_idx" ON "Workflow"("userId");
|
|
163
|
+
CREATE TABLE "new_WorkflowRun" (
|
|
164
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
165
|
+
"workflowId" TEXT NOT NULL,
|
|
166
|
+
"status" TEXT NOT NULL DEFAULT 'pending',
|
|
167
|
+
"payload" TEXT,
|
|
168
|
+
"userId" TEXT NOT NULL DEFAULT '',
|
|
169
|
+
"startedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
170
|
+
"completedAt" DATETIME,
|
|
171
|
+
"error" TEXT,
|
|
172
|
+
CONSTRAINT "WorkflowRun_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES "Workflow" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
173
|
+
);
|
|
174
|
+
INSERT INTO "new_WorkflowRun" ("completedAt", "error", "id", "payload", "startedAt", "status", "workflowId") SELECT "completedAt", "error", "id", "payload", "startedAt", "status", "workflowId" FROM "WorkflowRun";
|
|
175
|
+
DROP TABLE "WorkflowRun";
|
|
176
|
+
ALTER TABLE "new_WorkflowRun" RENAME TO "WorkflowRun";
|
|
177
|
+
CREATE INDEX "WorkflowRun_workflowId_idx" ON "WorkflowRun"("workflowId");
|
|
178
|
+
CREATE INDEX "WorkflowRun_status_idx" ON "WorkflowRun"("status");
|
|
179
|
+
CREATE INDEX "WorkflowRun_userId_idx" ON "WorkflowRun"("userId");
|
|
180
|
+
PRAGMA foreign_keys=ON;
|
|
181
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
182
|
+
|
|
183
|
+
-- CreateIndex
|
|
184
|
+
CREATE UNIQUE INDEX "user_email_key" ON "user"("email");
|
|
185
|
+
|
|
186
|
+
-- CreateIndex
|
|
187
|
+
CREATE INDEX "user_roleId_idx" ON "user"("roleId");
|
|
188
|
+
|
|
189
|
+
-- CreateIndex
|
|
190
|
+
CREATE UNIQUE INDEX "role_name_key" ON "role"("name");
|
|
191
|
+
|
|
192
|
+
-- CreateIndex
|
|
193
|
+
CREATE INDEX "rolePermission_roleId_idx" ON "rolePermission"("roleId");
|
|
194
|
+
|
|
195
|
+
-- CreateIndex
|
|
196
|
+
CREATE UNIQUE INDEX "rolePermission_roleId_entity_action_key" ON "rolePermission"("roleId", "entity", "action");
|
|
197
|
+
|
|
198
|
+
-- CreateIndex
|
|
199
|
+
CREATE UNIQUE INDEX "session_token_key" ON "session"("token");
|
|
200
|
+
|
|
201
|
+
-- CreateIndex
|
|
202
|
+
CREATE INDEX "session_userId_idx" ON "session"("userId");
|
|
203
|
+
|
|
204
|
+
-- CreateIndex
|
|
205
|
+
CREATE INDEX "session_token_idx" ON "session"("token");
|
|
206
|
+
|
|
207
|
+
-- CreateIndex
|
|
208
|
+
CREATE INDEX "account_userId_idx" ON "account"("userId");
|
|
209
|
+
|
|
210
|
+
-- CreateIndex
|
|
211
|
+
CREATE INDEX "verification_identifier_idx" ON "verification"("identifier");
|
|
@@ -7,6 +7,95 @@ datasource db {
|
|
|
7
7
|
provider = "sqlite"
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
// ── Auth & RBAC ──
|
|
11
|
+
|
|
12
|
+
model user {
|
|
13
|
+
id String @id
|
|
14
|
+
name String
|
|
15
|
+
email String @unique
|
|
16
|
+
emailVerified Boolean @default(false)
|
|
17
|
+
image String?
|
|
18
|
+
roleId String
|
|
19
|
+
role role @relation(fields: [roleId], references: [id])
|
|
20
|
+
createdAt DateTime @default(now())
|
|
21
|
+
updatedAt DateTime @updatedAt
|
|
22
|
+
sessions session[]
|
|
23
|
+
accounts account[]
|
|
24
|
+
|
|
25
|
+
@@index([roleId])
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
model role {
|
|
29
|
+
id String @id @default(cuid())
|
|
30
|
+
name String @unique
|
|
31
|
+
description String?
|
|
32
|
+
isSystem Boolean @default(false)
|
|
33
|
+
createdAt DateTime @default(now())
|
|
34
|
+
updatedAt DateTime @updatedAt
|
|
35
|
+
users user[]
|
|
36
|
+
permissions rolePermission[]
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
model rolePermission {
|
|
40
|
+
id String @id @default(cuid())
|
|
41
|
+
roleId String
|
|
42
|
+
role role @relation(fields: [roleId], references: [id], onDelete: Cascade)
|
|
43
|
+
entity String // "workflow" | "credential" | "agent" | "team" | "user" | "settings" | "analytics" | "memory" | "command" | "mcp"
|
|
44
|
+
action String // "read" | "create" | "update" | "delete" | "execute"
|
|
45
|
+
scope String @default("all") // "all" | "own"
|
|
46
|
+
createdAt DateTime @default(now())
|
|
47
|
+
|
|
48
|
+
@@unique([roleId, entity, action])
|
|
49
|
+
@@index([roleId])
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
model session {
|
|
53
|
+
id String @id
|
|
54
|
+
expiresAt DateTime
|
|
55
|
+
token String @unique
|
|
56
|
+
ipAddress String?
|
|
57
|
+
userAgent String?
|
|
58
|
+
userId String
|
|
59
|
+
user user @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
60
|
+
createdAt DateTime @default(now())
|
|
61
|
+
updatedAt DateTime @updatedAt
|
|
62
|
+
|
|
63
|
+
@@index([userId])
|
|
64
|
+
@@index([token])
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
model account {
|
|
68
|
+
id String @id
|
|
69
|
+
accountId String
|
|
70
|
+
providerId String
|
|
71
|
+
userId String
|
|
72
|
+
user user @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
73
|
+
accessToken String?
|
|
74
|
+
refreshToken String?
|
|
75
|
+
idToken String?
|
|
76
|
+
accessTokenExpiresAt DateTime?
|
|
77
|
+
refreshTokenExpiresAt DateTime?
|
|
78
|
+
scope String?
|
|
79
|
+
password String?
|
|
80
|
+
createdAt DateTime @default(now())
|
|
81
|
+
updatedAt DateTime @updatedAt
|
|
82
|
+
|
|
83
|
+
@@index([userId])
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
model verification {
|
|
87
|
+
id String @id
|
|
88
|
+
identifier String
|
|
89
|
+
value String
|
|
90
|
+
expiresAt DateTime
|
|
91
|
+
createdAt DateTime @default(now())
|
|
92
|
+
updatedAt DateTime @updatedAt
|
|
93
|
+
|
|
94
|
+
@@index([identifier])
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// ── Business Models ──
|
|
98
|
+
|
|
10
99
|
model Credential {
|
|
11
100
|
id String @id @default(cuid())
|
|
12
101
|
name String
|
|
@@ -16,10 +105,13 @@ model Credential {
|
|
|
16
105
|
// api-key: data = { key, value, addTo } (addTo = "header" | "query")
|
|
17
106
|
// custom-header: data = { headers: [{ key, value }] }
|
|
18
107
|
data String // JSON-encrypted credential data
|
|
108
|
+
userId String @default("")
|
|
19
109
|
createdAt DateTime @default(now())
|
|
20
110
|
updatedAt DateTime @updatedAt
|
|
21
111
|
|
|
22
112
|
actions Action[]
|
|
113
|
+
|
|
114
|
+
@@index([userId])
|
|
23
115
|
}
|
|
24
116
|
|
|
25
117
|
model Workflow {
|
|
@@ -32,12 +124,15 @@ model Workflow {
|
|
|
32
124
|
cronExpression String?
|
|
33
125
|
enabled Boolean @default(true)
|
|
34
126
|
summaryEnabled Boolean @default(false)
|
|
127
|
+
userId String @default("")
|
|
35
128
|
createdAt DateTime @default(now())
|
|
36
129
|
updatedAt DateTime @updatedAt
|
|
37
130
|
|
|
38
131
|
triggers Trigger[]
|
|
39
132
|
actions Action[]
|
|
40
133
|
runs WorkflowRun[]
|
|
134
|
+
|
|
135
|
+
@@index([userId])
|
|
41
136
|
}
|
|
42
137
|
|
|
43
138
|
model Trigger {
|
|
@@ -100,6 +195,7 @@ model WorkflowRun {
|
|
|
100
195
|
workflow Workflow @relation(fields: [workflowId], references: [id], onDelete: Cascade)
|
|
101
196
|
status String @default("pending")
|
|
102
197
|
payload String? // JSON-serialized trigger payload
|
|
198
|
+
userId String @default("")
|
|
103
199
|
startedAt DateTime @default(now())
|
|
104
200
|
completedAt DateTime?
|
|
105
201
|
error String?
|
|
@@ -108,6 +204,7 @@ model WorkflowRun {
|
|
|
108
204
|
|
|
109
205
|
@@index([workflowId])
|
|
110
206
|
@@index([status])
|
|
207
|
+
@@index([userId])
|
|
111
208
|
}
|
|
112
209
|
|
|
113
210
|
model AgentRun {
|
|
@@ -162,6 +259,7 @@ model TeamSession {
|
|
|
162
259
|
maxRounds Int
|
|
163
260
|
totalRounds Int
|
|
164
261
|
error String?
|
|
262
|
+
userId String @default("")
|
|
165
263
|
|
|
166
264
|
// Aggregated token usage
|
|
167
265
|
inputTokens Int @default(0)
|
|
@@ -178,6 +276,7 @@ model TeamSession {
|
|
|
178
276
|
@@index([status])
|
|
179
277
|
@@index([startedAt])
|
|
180
278
|
@@index([completedAt])
|
|
279
|
+
@@index([userId])
|
|
181
280
|
}
|
|
182
281
|
|
|
183
282
|
// ── Agent Session Persistence (single-agent runs) ──
|
|
@@ -192,6 +291,7 @@ model AgentChatSession {
|
|
|
192
291
|
model String? // LLM model used
|
|
193
292
|
cli String? // CLI runtime used (cursor, claude, codex, etc.)
|
|
194
293
|
error String?
|
|
294
|
+
userId String @default("")
|
|
195
295
|
|
|
196
296
|
// Token usage
|
|
197
297
|
inputTokens Int @default(0)
|
|
@@ -209,6 +309,7 @@ model AgentChatSession {
|
|
|
209
309
|
@@index([agentId])
|
|
210
310
|
@@index([status])
|
|
211
311
|
@@index([startedAt])
|
|
312
|
+
@@index([userId])
|
|
212
313
|
}
|
|
213
314
|
|
|
214
315
|
model TeamSessionAgent {
|