@openork/cli 0.1.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/bin/dev.js +3 -0
- package/bin/run.js +3 -0
- package/dist/commands/gateway/start.d.ts +14 -0
- package/dist/commands/gateway/start.d.ts.map +1 -0
- package/dist/commands/gateway/start.js +120 -0
- package/dist/commands/gateway/start.js.map +1 -0
- package/dist/commands/gateway/stop.d.ts +7 -0
- package/dist/commands/gateway/stop.d.ts.map +1 -0
- package/dist/commands/gateway/stop.js +33 -0
- package/dist/commands/gateway/stop.js.map +1 -0
- package/dist/commands/setup.d.ts +7 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +86 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/setup.spec.d.ts +2 -0
- package/dist/commands/setup.spec.d.ts.map +1 -0
- package/dist/commands/setup.spec.js +88 -0
- package/dist/commands/setup.spec.js.map +1 -0
- package/dist/commands/uninstall.d.ts +10 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +71 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/gateway.d.ts +19 -0
- package/dist/lib/gateway.d.ts.map +1 -0
- package/dist/lib/gateway.js +52 -0
- package/dist/lib/gateway.js.map +1 -0
- package/dist/lib/shell-profile.d.ts +10 -0
- package/dist/lib/shell-profile.d.ts.map +1 -0
- package/dist/lib/shell-profile.js +56 -0
- package/dist/lib/shell-profile.js.map +1 -0
- package/dist/migrations/0001-add-memory-enabled.js +42 -0
- package/dist/migrations/lib/helpers.js +78 -0
- package/dist/migrations/lib/template.js +8 -0
- package/dist/openapi.yml +5648 -0
- package/dist/prisma/migrations/20260318152538_add_trigger_type_and_source_workflow/migration.sql +79 -0
- package/dist/prisma/migrations/20260318154232_drop_skill_and_emit_from_action/migration.sql +25 -0
- package/dist/prisma/migrations/20260318160029_action_types_cli_bash_node_http/migration.sql +29 -0
- package/dist/prisma/migrations/migration_lock.toml +3 -0
- package/dist/prisma/schema.prisma +236 -0
- package/dist/server.js +182527 -0
- package/dist/server.js.map +1 -0
- package/dist/web/assets/activity-feed-D_eonDKG.js +1 -0
- package/dist/web/assets/agent-edit-CblZItU5.js +98 -0
- package/dist/web/assets/agent-sessions-COpCcffa.js +1 -0
- package/dist/web/assets/agent-use-F4pOt3KJ.js +1 -0
- package/dist/web/assets/agents-Av7w2wHE.js +1 -0
- package/dist/web/assets/api-docs-BQzn4-6U.js +1 -0
- package/dist/web/assets/arrow-down-XHN5PD1k.js +1 -0
- package/dist/web/assets/arrow-left-wtNmm6Le.js +1 -0
- package/dist/web/assets/bi-gM8sIAZV.js +1 -0
- package/dist/web/assets/chat-CQvfLy7Y.js +4 -0
- package/dist/web/assets/chat-input-BepRPV_L.js +2 -0
- package/dist/web/assets/chat-message-CbcDeDcb.js +37 -0
- package/dist/web/assets/chat-new-BOtDuYij.js +1 -0
- package/dist/web/assets/chat-sessions-CaCaK_PC.js +1 -0
- package/dist/web/assets/chats-64IReeGV.js +1 -0
- package/dist/web/assets/circle-alert-W8QX9LOG.js +1 -0
- package/dist/web/assets/circle-check-DLl9fl65.js +1 -0
- package/dist/web/assets/circle-x-D_8Tcgt1.js +1 -0
- package/dist/web/assets/code-Brz4KHlI.js +1 -0
- package/dist/web/assets/code-editor-x9L6nkh4.js +1 -0
- package/dist/web/assets/commands-DT9K8bae.js +8 -0
- package/dist/web/assets/copy-C87mjn_Y.js +1 -0
- package/dist/web/assets/credentials-DC-HOVxW.js +1 -0
- package/dist/web/assets/cron-COUPKvGu.js +1 -0
- package/dist/web/assets/crown-BJEsQkh4.js +1 -0
- package/dist/web/assets/dashboard-OfnNUjFX.js +1 -0
- package/dist/web/assets/database-BohjTljV.js +1 -0
- package/dist/web/assets/debug-Et9rgBM8.js +1 -0
- package/dist/web/assets/download-B2UOiYAS.js +1 -0
- package/dist/web/assets/eye-DN-Km5vf.js +1 -0
- package/dist/web/assets/file-plus-B8qWemgt.js +1 -0
- package/dist/web/assets/file-tree-DkLQ1z0I.js +1 -0
- package/dist/web/assets/folder-plus-DsmP6Mur.js +1 -0
- package/dist/web/assets/geist-cyrillic-wght-normal-CHSlOQsW.woff2 +0 -0
- package/dist/web/assets/geist-latin-ext-wght-normal-DMtmJ5ZE.woff2 +0 -0
- package/dist/web/assets/geist-latin-wght-normal-Dm3htQBi.woff2 +0 -0
- package/dist/web/assets/globe-fwFSeXZn.js +1 -0
- package/dist/web/assets/grip-vertical-Djo-yR-o.js +1 -0
- package/dist/web/assets/history-CyBBboEp.js +1 -0
- package/dist/web/assets/index-YgjFlLLv.css +2 -0
- package/dist/web/assets/index-dc8HGqTp.js +2 -0
- package/dist/web/assets/layers-ephyCrDm.js +1 -0
- package/dist/web/assets/layout-grid-DCVGg8ZA.js +1 -0
- package/dist/web/assets/mcp-setup-BfMdYdsI.js +17 -0
- package/dist/web/assets/memory-DAQ474-p.js +1 -0
- package/dist/web/assets/new-chat-DtMw6FMg.js +1 -0
- package/dist/web/assets/play-DXJMtO-K.js +1 -0
- package/dist/web/assets/refresh-cw-RFYUf5GB.js +1 -0
- package/dist/web/assets/rolldown-runtime-Dw2cE7zH.js +1 -0
- package/dist/web/assets/save-Dewm93H6.js +1 -0
- package/dist/web/assets/search-Ww0msJQz.js +1 -0
- package/dist/web/assets/send-FWvygYFQ.js +1 -0
- package/dist/web/assets/settings-Auyn4Z5T.js +1 -0
- package/dist/web/assets/shield-check-Dt7sXtBF.js +1 -0
- package/dist/web/assets/shuffle-DjvBJ7XV.js +1 -0
- package/dist/web/assets/src-DUhGoAQb.js +24 -0
- package/dist/web/assets/team-edit-DO-RX3lC.js +1 -0
- package/dist/web/assets/team-sessions-DSw8MTtZ.js +1 -0
- package/dist/web/assets/team-use-BfNvsFcO.js +3 -0
- package/dist/web/assets/terminal-CIapYonS.js +1 -0
- package/dist/web/assets/timer-C9X20mTO.js +1 -0
- package/dist/web/assets/useMutation-BlOHt3MR.js +1 -0
- package/dist/web/assets/useQuery-DvovkaPT.js +1 -0
- package/dist/web/assets/utils-DHTPP40O.js +1 -0
- package/dist/web/assets/vendor-editor-BORFA-rZ.js +39 -0
- package/dist/web/assets/vendor-react-BJ8SIkmN.js +11 -0
- package/dist/web/assets/vendor-ui-CHpVij2M.css +1 -0
- package/dist/web/assets/vendor-ui-Dpw9mBc-.js +39 -0
- package/dist/web/assets/workflow-edit-D0FNyl64.js +4 -0
- package/dist/web/assets/workflow-runs-CPVvaVzN.js +1 -0
- package/dist/web/assets/workflows-C9jurJiE.js +1 -0
- package/dist/web/assets/wrench-DZBtSPP8.js +1 -0
- package/dist/web/assets/zap-CbT5plGA.js +1 -0
- package/dist/web/docs.html +242 -0
- package/dist/web/favicon.svg +13 -0
- package/dist/web/index.html +23 -0
- package/package.json +65 -0
package/dist/prisma/migrations/20260318152538_add_trigger_type_and_source_workflow/migration.sql
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "Workflow" (
|
|
3
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
4
|
+
"name" TEXT NOT NULL,
|
|
5
|
+
"description" TEXT,
|
|
6
|
+
"workspace" TEXT,
|
|
7
|
+
"cli" TEXT NOT NULL DEFAULT 'cursor',
|
|
8
|
+
"model" TEXT,
|
|
9
|
+
"cronExpression" TEXT,
|
|
10
|
+
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
|
11
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
12
|
+
"updatedAt" DATETIME NOT NULL
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
-- CreateTable
|
|
16
|
+
CREATE TABLE "Trigger" (
|
|
17
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
18
|
+
"type" TEXT NOT NULL DEFAULT 'event',
|
|
19
|
+
"eventName" TEXT,
|
|
20
|
+
"sourceWorkflowId" TEXT,
|
|
21
|
+
"workflowId" TEXT NOT NULL,
|
|
22
|
+
CONSTRAINT "Trigger_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES "Workflow" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
-- CreateTable
|
|
26
|
+
CREATE TABLE "Action" (
|
|
27
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
28
|
+
"type" TEXT NOT NULL DEFAULT 'cursor-agent',
|
|
29
|
+
"command" TEXT,
|
|
30
|
+
"prompt" TEXT,
|
|
31
|
+
"skillToInject" TEXT,
|
|
32
|
+
"emitEvent" TEXT,
|
|
33
|
+
"order" INTEGER NOT NULL,
|
|
34
|
+
"workflowId" TEXT NOT NULL,
|
|
35
|
+
CONSTRAINT "Action_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES "Workflow" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
-- CreateTable
|
|
39
|
+
CREATE TABLE "WorkflowRun" (
|
|
40
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
41
|
+
"workflowId" TEXT NOT NULL,
|
|
42
|
+
"status" TEXT NOT NULL DEFAULT 'pending',
|
|
43
|
+
"startedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
44
|
+
"completedAt" DATETIME,
|
|
45
|
+
"error" TEXT,
|
|
46
|
+
CONSTRAINT "WorkflowRun_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES "Workflow" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
-- CreateTable
|
|
50
|
+
CREATE TABLE "AgentRun" (
|
|
51
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
52
|
+
"workflowRunId" TEXT NOT NULL,
|
|
53
|
+
"actionId" TEXT NOT NULL,
|
|
54
|
+
"status" TEXT NOT NULL DEFAULT 'pending',
|
|
55
|
+
"output" TEXT,
|
|
56
|
+
"startedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
57
|
+
"completedAt" DATETIME,
|
|
58
|
+
"sessionId" TEXT,
|
|
59
|
+
CONSTRAINT "AgentRun_workflowRunId_fkey" FOREIGN KEY ("workflowRunId") REFERENCES "WorkflowRun" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
60
|
+
CONSTRAINT "AgentRun_actionId_fkey" FOREIGN KEY ("actionId") REFERENCES "Action" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
-- CreateIndex
|
|
64
|
+
CREATE INDEX "Trigger_eventName_idx" ON "Trigger"("eventName");
|
|
65
|
+
|
|
66
|
+
-- CreateIndex
|
|
67
|
+
CREATE INDEX "Trigger_sourceWorkflowId_idx" ON "Trigger"("sourceWorkflowId");
|
|
68
|
+
|
|
69
|
+
-- CreateIndex
|
|
70
|
+
CREATE INDEX "Action_workflowId_idx" ON "Action"("workflowId");
|
|
71
|
+
|
|
72
|
+
-- CreateIndex
|
|
73
|
+
CREATE INDEX "WorkflowRun_workflowId_idx" ON "WorkflowRun"("workflowId");
|
|
74
|
+
|
|
75
|
+
-- CreateIndex
|
|
76
|
+
CREATE INDEX "AgentRun_workflowRunId_idx" ON "AgentRun"("workflowRunId");
|
|
77
|
+
|
|
78
|
+
-- CreateIndex
|
|
79
|
+
CREATE INDEX "AgentRun_sessionId_idx" ON "AgentRun"("sessionId");
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Warnings:
|
|
3
|
+
|
|
4
|
+
- You are about to drop the column `emitEvent` on the `Action` table. All the data in the column will be lost.
|
|
5
|
+
- You are about to drop the column `skillToInject` on the `Action` table. All the data in the column will be lost.
|
|
6
|
+
|
|
7
|
+
*/
|
|
8
|
+
-- RedefineTables
|
|
9
|
+
PRAGMA defer_foreign_keys=ON;
|
|
10
|
+
PRAGMA foreign_keys=OFF;
|
|
11
|
+
CREATE TABLE "new_Action" (
|
|
12
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
13
|
+
"type" TEXT NOT NULL DEFAULT 'cursor-agent',
|
|
14
|
+
"command" TEXT,
|
|
15
|
+
"prompt" TEXT,
|
|
16
|
+
"order" INTEGER NOT NULL,
|
|
17
|
+
"workflowId" TEXT NOT NULL,
|
|
18
|
+
CONSTRAINT "Action_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES "Workflow" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
19
|
+
);
|
|
20
|
+
INSERT INTO "new_Action" ("command", "id", "order", "prompt", "type", "workflowId") SELECT "command", "id", "order", "prompt", "type", "workflowId" FROM "Action";
|
|
21
|
+
DROP TABLE "Action";
|
|
22
|
+
ALTER TABLE "new_Action" RENAME TO "Action";
|
|
23
|
+
CREATE INDEX "Action_workflowId_idx" ON "Action"("workflowId");
|
|
24
|
+
PRAGMA foreign_keys=ON;
|
|
25
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Warnings:
|
|
3
|
+
|
|
4
|
+
- You are about to drop the column `command` on the `Action` table. All the data in the column will be lost.
|
|
5
|
+
|
|
6
|
+
*/
|
|
7
|
+
-- RedefineTables
|
|
8
|
+
PRAGMA defer_foreign_keys=ON;
|
|
9
|
+
PRAGMA foreign_keys=OFF;
|
|
10
|
+
CREATE TABLE "new_Action" (
|
|
11
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
12
|
+
"type" TEXT NOT NULL DEFAULT 'cli-agent',
|
|
13
|
+
"order" INTEGER NOT NULL,
|
|
14
|
+
"workflowId" TEXT NOT NULL,
|
|
15
|
+
"cli" TEXT,
|
|
16
|
+
"prompt" TEXT,
|
|
17
|
+
"script" TEXT,
|
|
18
|
+
"httpMethod" TEXT,
|
|
19
|
+
"httpUrl" TEXT,
|
|
20
|
+
"httpHeaders" TEXT,
|
|
21
|
+
"httpBody" TEXT,
|
|
22
|
+
CONSTRAINT "Action_workflowId_fkey" FOREIGN KEY ("workflowId") REFERENCES "Workflow" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
23
|
+
);
|
|
24
|
+
INSERT INTO "new_Action" ("id", "order", "prompt", "type", "workflowId") SELECT "id", "order", "prompt", "type", "workflowId" FROM "Action";
|
|
25
|
+
DROP TABLE "Action";
|
|
26
|
+
ALTER TABLE "new_Action" RENAME TO "Action";
|
|
27
|
+
CREATE INDEX "Action_workflowId_idx" ON "Action"("workflowId");
|
|
28
|
+
PRAGMA foreign_keys=ON;
|
|
29
|
+
PRAGMA defer_foreign_keys=OFF;
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
generator client {
|
|
2
|
+
provider = "prisma-client-js"
|
|
3
|
+
// output removed for standalone CLI distribution
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
datasource db {
|
|
7
|
+
provider = "sqlite"
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
model Credential {
|
|
11
|
+
id String @id @default(cuid())
|
|
12
|
+
name String
|
|
13
|
+
type String // "bearer" | "basic" | "api-key" | "custom-header"
|
|
14
|
+
// bearer: data = { token }
|
|
15
|
+
// basic: data = { username, password }
|
|
16
|
+
// api-key: data = { key, value, addTo } (addTo = "header" | "query")
|
|
17
|
+
// custom-header: data = { headers: [{ key, value }] }
|
|
18
|
+
data String // JSON-encrypted credential data
|
|
19
|
+
createdAt DateTime @default(now())
|
|
20
|
+
updatedAt DateTime @updatedAt
|
|
21
|
+
|
|
22
|
+
actions Action[]
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
model Workflow {
|
|
26
|
+
id String @id @default(cuid())
|
|
27
|
+
name String
|
|
28
|
+
description String?
|
|
29
|
+
workspace String?
|
|
30
|
+
cli String @default("cursor")
|
|
31
|
+
model String?
|
|
32
|
+
cronExpression String?
|
|
33
|
+
enabled Boolean @default(true)
|
|
34
|
+
summaryEnabled Boolean @default(false)
|
|
35
|
+
createdAt DateTime @default(now())
|
|
36
|
+
updatedAt DateTime @updatedAt
|
|
37
|
+
|
|
38
|
+
triggers Trigger[]
|
|
39
|
+
actions Action[]
|
|
40
|
+
runs WorkflowRun[]
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
model Trigger {
|
|
44
|
+
id String @id @default(cuid())
|
|
45
|
+
type String @default("event") // "workflow" | "event" | "cron"
|
|
46
|
+
eventName String?
|
|
47
|
+
sourceWorkflowId String?
|
|
48
|
+
workflowId String
|
|
49
|
+
workflow Workflow @relation(fields: [workflowId], references: [id], onDelete: Cascade)
|
|
50
|
+
|
|
51
|
+
@@index([eventName])
|
|
52
|
+
@@index([sourceWorkflowId])
|
|
53
|
+
@@index([type, eventName])
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
model Action {
|
|
57
|
+
id String @id @default(cuid())
|
|
58
|
+
name String?
|
|
59
|
+
type String @default("cli-agent") // "cli-agent" | "bash" | "node" | "http"
|
|
60
|
+
order Int
|
|
61
|
+
dependsOn String? // JSON array of action IDs (for DAG execution)
|
|
62
|
+
workflowId String
|
|
63
|
+
workflow Workflow @relation(fields: [workflowId], references: [id], onDelete: Cascade)
|
|
64
|
+
|
|
65
|
+
// cli-agent fields
|
|
66
|
+
cli String? // e.g. "cursor-agent"
|
|
67
|
+
model String? // e.g. "gpt-5-mini", "claude-sonnet-4", etc.
|
|
68
|
+
prompt String?
|
|
69
|
+
trustMode Boolean @default(true) // pass --trust flag to bypass agent permissions
|
|
70
|
+
|
|
71
|
+
// bash / node fields
|
|
72
|
+
script String?
|
|
73
|
+
|
|
74
|
+
// http fields
|
|
75
|
+
httpMethod String? // GET | POST | PUT | PATCH | DELETE
|
|
76
|
+
httpUrl String?
|
|
77
|
+
httpHeaders String? // JSON string
|
|
78
|
+
httpBody String?
|
|
79
|
+
credentialId String?
|
|
80
|
+
credential Credential? @relation(fields: [credentialId], references: [id], onDelete: SetNull)
|
|
81
|
+
|
|
82
|
+
// timeout (null = no timeout)
|
|
83
|
+
timeoutMs Int?
|
|
84
|
+
|
|
85
|
+
// workflow (sub-workflow) fields
|
|
86
|
+
targetWorkflowId String?
|
|
87
|
+
|
|
88
|
+
// agent / team reference (from Agents system — file-based, not FK)
|
|
89
|
+
agentId String?
|
|
90
|
+
teamId String?
|
|
91
|
+
|
|
92
|
+
agentRuns AgentRun[]
|
|
93
|
+
|
|
94
|
+
@@index([workflowId])
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
model WorkflowRun {
|
|
98
|
+
id String @id @default(cuid())
|
|
99
|
+
workflowId String
|
|
100
|
+
workflow Workflow @relation(fields: [workflowId], references: [id], onDelete: Cascade)
|
|
101
|
+
status String @default("pending")
|
|
102
|
+
payload String? // JSON-serialized trigger payload
|
|
103
|
+
startedAt DateTime @default(now())
|
|
104
|
+
completedAt DateTime?
|
|
105
|
+
error String?
|
|
106
|
+
|
|
107
|
+
agentRuns AgentRun[]
|
|
108
|
+
|
|
109
|
+
@@index([workflowId])
|
|
110
|
+
@@index([status])
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
model AgentRun {
|
|
114
|
+
id String @id @default(cuid())
|
|
115
|
+
workflowRunId String
|
|
116
|
+
workflowRun WorkflowRun @relation(fields: [workflowRunId], references: [id], onDelete: Cascade)
|
|
117
|
+
actionId String
|
|
118
|
+
action Action @relation(fields: [actionId], references: [id], onDelete: Cascade)
|
|
119
|
+
status String @default("pending")
|
|
120
|
+
output String?
|
|
121
|
+
summary String?
|
|
122
|
+
startedAt DateTime @default(now())
|
|
123
|
+
completedAt DateTime?
|
|
124
|
+
/// The Cursor CLI session ID created by this agent run (used to hide workflow sessions from session list)
|
|
125
|
+
sessionId String?
|
|
126
|
+
|
|
127
|
+
/// Token usage captured from the CLI stream-json result event
|
|
128
|
+
inputTokens Int?
|
|
129
|
+
outputTokens Int?
|
|
130
|
+
cacheReadTokens Int?
|
|
131
|
+
cacheWriteTokens Int?
|
|
132
|
+
/// LLM model used (from the system/init event)
|
|
133
|
+
model String?
|
|
134
|
+
|
|
135
|
+
logEntries LogEntry[]
|
|
136
|
+
|
|
137
|
+
@@index([workflowRunId])
|
|
138
|
+
@@index([workflowRunId, status])
|
|
139
|
+
@@index([sessionId])
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
model LogEntry {
|
|
143
|
+
id String @id @default(cuid())
|
|
144
|
+
agentRunId String
|
|
145
|
+
agentRun AgentRun @relation(fields: [agentRunId], references: [id], onDelete: Cascade)
|
|
146
|
+
stream String @default("stdout") // "stdout" | "stderr"
|
|
147
|
+
text String
|
|
148
|
+
timestamp DateTime @default(now())
|
|
149
|
+
|
|
150
|
+
@@index([agentRunId])
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// ── Team Session Persistence ──
|
|
154
|
+
|
|
155
|
+
model TeamSession {
|
|
156
|
+
id String @id // reuse the runId from in-memory run
|
|
157
|
+
teamId String // file-based team ID (UUID)
|
|
158
|
+
teamName String // snapshot of team name at run time
|
|
159
|
+
strategy String // "sequential" | "parallel" | "router" | "debate"
|
|
160
|
+
status String // "completed" | "failed" | "cancelled"
|
|
161
|
+
prompt String
|
|
162
|
+
maxRounds Int
|
|
163
|
+
totalRounds Int
|
|
164
|
+
error String?
|
|
165
|
+
|
|
166
|
+
// Aggregated token usage
|
|
167
|
+
inputTokens Int @default(0)
|
|
168
|
+
outputTokens Int @default(0)
|
|
169
|
+
cacheReadTokens Int @default(0)
|
|
170
|
+
cacheWriteTokens Int @default(0)
|
|
171
|
+
|
|
172
|
+
startedAt DateTime
|
|
173
|
+
completedAt DateTime @default(now())
|
|
174
|
+
|
|
175
|
+
agents TeamSessionAgent[]
|
|
176
|
+
|
|
177
|
+
@@index([teamId])
|
|
178
|
+
@@index([status])
|
|
179
|
+
@@index([startedAt])
|
|
180
|
+
@@index([completedAt])
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// ── Agent Session Persistence (single-agent runs) ──
|
|
184
|
+
|
|
185
|
+
model AgentChatSession {
|
|
186
|
+
id String @id @default(cuid())
|
|
187
|
+
agentId String // file-based agent ID (UUID)
|
|
188
|
+
agentName String // snapshot of agent name at run time
|
|
189
|
+
status String // "completed" | "failed" | "cancelled"
|
|
190
|
+
prompt String // initial user message
|
|
191
|
+
output String? // final assistant response
|
|
192
|
+
model String? // LLM model used
|
|
193
|
+
cli String? // CLI runtime used (cursor, claude, codex, etc.)
|
|
194
|
+
error String?
|
|
195
|
+
|
|
196
|
+
// Token usage
|
|
197
|
+
inputTokens Int @default(0)
|
|
198
|
+
outputTokens Int @default(0)
|
|
199
|
+
cacheReadTokens Int @default(0)
|
|
200
|
+
cacheWriteTokens Int @default(0)
|
|
201
|
+
|
|
202
|
+
// Stream/session references (for potential reconnection)
|
|
203
|
+
streamId String? // stream ID from chat system
|
|
204
|
+
sessionId String? // CLI session ID
|
|
205
|
+
|
|
206
|
+
startedAt DateTime @default(now())
|
|
207
|
+
completedAt DateTime?
|
|
208
|
+
|
|
209
|
+
@@index([agentId])
|
|
210
|
+
@@index([status])
|
|
211
|
+
@@index([startedAt])
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
model TeamSessionAgent {
|
|
215
|
+
id String @id @default(cuid())
|
|
216
|
+
teamSessionId String
|
|
217
|
+
teamSession TeamSession @relation(fields: [teamSessionId], references: [id], onDelete: Cascade)
|
|
218
|
+
|
|
219
|
+
agentId String // file-based agent ID (UUID)
|
|
220
|
+
agentName String // snapshot of agent name at run time
|
|
221
|
+
nodeId String
|
|
222
|
+
role String
|
|
223
|
+
status String // "done" | "error" | "skipped"
|
|
224
|
+
round Int
|
|
225
|
+
output String?
|
|
226
|
+
model String?
|
|
227
|
+
|
|
228
|
+
// Per-agent token usage
|
|
229
|
+
inputTokens Int @default(0)
|
|
230
|
+
outputTokens Int @default(0)
|
|
231
|
+
cacheReadTokens Int @default(0)
|
|
232
|
+
cacheWriteTokens Int @default(0)
|
|
233
|
+
|
|
234
|
+
@@index([teamSessionId])
|
|
235
|
+
@@index([agentId])
|
|
236
|
+
}
|