@openork/cli 0.1.0 → 0.1.1
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/gateway/start.d.ts +7 -0
- package/dist/commands/gateway/start.d.ts.map +1 -1
- package/dist/commands/gateway/start.js +50 -6
- package/dist/commands/gateway/start.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/prisma/migrations/20260401085053_schema_sync/migration.sql +178 -0
- package/dist/server.js +30963 -175256
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# @openork/cli
|
|
2
|
+
|
|
3
|
+
CLI for [OpenOrk](https://github.com/openork/openork) — open-source AI agents orchestrator.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g @openork/cli
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Start the gateway (API + web UI on a single port)
|
|
15
|
+
openork gateway start
|
|
16
|
+
|
|
17
|
+
# Stop the gateway
|
|
18
|
+
openork gateway stop
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Uninstall
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Remove data and configuration
|
|
25
|
+
openork uninstall
|
|
26
|
+
|
|
27
|
+
# Remove the package
|
|
28
|
+
npm remove -g @openork/cli
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Documentation
|
|
32
|
+
|
|
33
|
+
See the full documentation on the [GitHub repository](https://github.com/openork/openork).
|
|
@@ -10,5 +10,12 @@ export default class GatewayStart extends Command {
|
|
|
10
10
|
private startBundled;
|
|
11
11
|
/** Dev mode: use npx tsx in the monorepo */
|
|
12
12
|
private startDev;
|
|
13
|
+
/**
|
|
14
|
+
* Run `prisma migrate deploy` against a schema file.
|
|
15
|
+
* Prisma 7 requires the datasource url to be set in the schema or config.
|
|
16
|
+
* For bundled mode the shipped schema has no url, so we temporarily inject
|
|
17
|
+
* one via env(DATABASE_URL) before running migrations.
|
|
18
|
+
*/
|
|
19
|
+
private runPrismaMigrate;
|
|
13
20
|
}
|
|
14
21
|
//# sourceMappingURL=start.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/commands/gateway/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAgB7C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC/C,gBAAyB,WAAW,sEACiC;IAErE,gBAAyB,QAAQ,WAG/B;IAEF,gBAAyB,KAAK;;MAM5B;IAEI,GAAG;IA0CT,4DAA4D;IAC5D,OAAO,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/commands/gateway/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAgB7C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC/C,gBAAyB,WAAW,sEACiC;IAErE,gBAAyB,QAAQ,WAG/B;IAEF,gBAAyB,KAAK;;MAM5B;IAEI,GAAG;IA0CT,4DAA4D;IAC5D,OAAO,CAAC,YAAY;IAyCpB,4CAA4C;IAC5C,OAAO,CAAC,QAAQ;IA6ChB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;CAyBzB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Command, Flags } from "@oclif/core";
|
|
2
2
|
import { spawn, execSync } from "node:child_process";
|
|
3
|
-
import { openSync, existsSync, mkdirSync, readFileSync } from "node:fs";
|
|
3
|
+
import { openSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import os from "node:os";
|
|
6
6
|
import { DEFAULT_PORT, readState, writeState, isProcessRunning, getLogFile, getDistDir, isBundledMode, getMonorepoRoot, } from "../../lib/gateway.js";
|
|
@@ -63,12 +63,9 @@ export default class GatewayStart extends Command {
|
|
|
63
63
|
if (existsSync(schemaPath)) {
|
|
64
64
|
this.log(" Running database migrations...");
|
|
65
65
|
try {
|
|
66
|
-
|
|
67
|
-
stdio: "pipe",
|
|
68
|
-
env: { ...process.env, DATABASE_URL: `file:${dbPath}` },
|
|
69
|
-
});
|
|
66
|
+
this.runPrismaMigrate(schemaPath, dbPath);
|
|
70
67
|
}
|
|
71
|
-
catch
|
|
68
|
+
catch {
|
|
72
69
|
this.warn("Database migration failed — starting anyway.");
|
|
73
70
|
}
|
|
74
71
|
}
|
|
@@ -105,6 +102,25 @@ export default class GatewayStart extends Command {
|
|
|
105
102
|
this.log(" Building web interface...");
|
|
106
103
|
execSync("npm run build", { cwd: webDir, stdio: "pipe" });
|
|
107
104
|
}
|
|
105
|
+
// Run Prisma migrations (dev mode uses the same default DB path)
|
|
106
|
+
const openorkHome = process.env.OPENORK_HOME ?? path.join(os.homedir(), ".openork");
|
|
107
|
+
mkdirSync(openorkHome, { recursive: true });
|
|
108
|
+
const dbPath = path.join(openorkHome, "openork.db");
|
|
109
|
+
const schemaPath = path.join(root, "packages", "database", "prisma", "schema.prisma");
|
|
110
|
+
const configPath = path.join(root, "packages", "database", "prisma.config.ts");
|
|
111
|
+
if (existsSync(configPath)) {
|
|
112
|
+
this.log(" Running database migrations...");
|
|
113
|
+
try {
|
|
114
|
+
execSync(`npx prisma migrate deploy --config="${configPath}"`, {
|
|
115
|
+
cwd: root,
|
|
116
|
+
stdio: "pipe",
|
|
117
|
+
env: { ...process.env, DATABASE_URL: `file:${dbPath}` },
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
this.warn("Database migration failed — starting anyway.");
|
|
122
|
+
}
|
|
123
|
+
}
|
|
108
124
|
return spawn("npx", ["tsx", "src/index.ts"], {
|
|
109
125
|
cwd: apiDir,
|
|
110
126
|
detached: true,
|
|
@@ -113,8 +129,36 @@ export default class GatewayStart extends Command {
|
|
|
113
129
|
...process.env,
|
|
114
130
|
PORT: String(port),
|
|
115
131
|
OPENORK_WEB_DIST: webDist,
|
|
132
|
+
DATABASE_URL: `file:${dbPath}`,
|
|
116
133
|
},
|
|
117
134
|
});
|
|
118
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Run `prisma migrate deploy` against a schema file.
|
|
138
|
+
* Prisma 7 requires the datasource url to be set in the schema or config.
|
|
139
|
+
* For bundled mode the shipped schema has no url, so we temporarily inject
|
|
140
|
+
* one via env(DATABASE_URL) before running migrations.
|
|
141
|
+
*/
|
|
142
|
+
runPrismaMigrate(schemaPath, dbPath) {
|
|
143
|
+
const original = readFileSync(schemaPath, "utf-8");
|
|
144
|
+
const hasUrl = /url\s*=/.test(original);
|
|
145
|
+
if (!hasUrl) {
|
|
146
|
+
// Inject url = env("DATABASE_URL") into datasource block
|
|
147
|
+
const patched = original.replace(/datasource\s+db\s*\{([^}]*)\}/, (match, body) => `datasource db {${body} url = env("DATABASE_URL")\n}`);
|
|
148
|
+
writeFileSync(schemaPath, patched);
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
execSync(`npx prisma migrate deploy --schema="${schemaPath}"`, {
|
|
152
|
+
stdio: "pipe",
|
|
153
|
+
env: { ...process.env, DATABASE_URL: `file:${dbPath}` },
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
finally {
|
|
157
|
+
// Restore original schema if we patched it
|
|
158
|
+
if (!hasUrl) {
|
|
159
|
+
writeFileSync(schemaPath, original);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
119
163
|
}
|
|
120
164
|
//# sourceMappingURL=start.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/gateway/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/gateway/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAY7C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,gBAAyB,WAAW,6EACwC;IAE5E,gBAAyB,QAAQ,WAG/B;IAEF,gBAAyB,KAAK;;MAM5B;IAEI,GAAG;CAkFV"}
|
|
@@ -2,8 +2,9 @@ import { Command, Flags } from "@oclif/core";
|
|
|
2
2
|
import { confirm } from "@inquirer/prompts";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import os from "node:os";
|
|
5
|
-
import { existsSync,
|
|
5
|
+
import { existsSync, rmSync } from "node:fs";
|
|
6
6
|
import { detectShellProfiles, profileAlreadyConfigured, removeFromProfile, } from "../lib/shell-profile.js";
|
|
7
|
+
import { readState, clearState, isProcessRunning } from "../lib/gateway.js";
|
|
7
8
|
export default class Uninstall extends Command {
|
|
8
9
|
static description = "Remove OpenOrk shell configuration and optionally delete workspace data";
|
|
9
10
|
static examples = [
|
|
@@ -13,13 +14,53 @@ export default class Uninstall extends Command {
|
|
|
13
14
|
static flags = {
|
|
14
15
|
yes: Flags.boolean({
|
|
15
16
|
char: "y",
|
|
16
|
-
description: "Skip confirmation prompts (
|
|
17
|
+
description: "Skip confirmation prompts (non-interactive mode: stops gateway + cleans shell profiles only)",
|
|
17
18
|
default: false,
|
|
18
19
|
}),
|
|
19
20
|
};
|
|
20
21
|
async run() {
|
|
21
22
|
const { flags } = await this.parse(Uninstall);
|
|
22
|
-
|
|
23
|
+
const openorkHome = process.env.OPENORK_HOME || path.join(os.homedir(), ".openork");
|
|
24
|
+
// ── Step 1: Confirm with the user ──
|
|
25
|
+
if (!flags.yes) {
|
|
26
|
+
this.log("");
|
|
27
|
+
this.log(" This will:");
|
|
28
|
+
this.log(" • Stop the running gateway (if any)");
|
|
29
|
+
this.log(" • Remove shell profile configuration");
|
|
30
|
+
if (existsSync(openorkHome)) {
|
|
31
|
+
this.log(` • Delete all data at ${openorkHome} (database, logs, config)`);
|
|
32
|
+
}
|
|
33
|
+
this.log("");
|
|
34
|
+
try {
|
|
35
|
+
const shouldProceed = await confirm({
|
|
36
|
+
message: "Proceed with uninstall?",
|
|
37
|
+
default: false,
|
|
38
|
+
});
|
|
39
|
+
if (!shouldProceed) {
|
|
40
|
+
this.log(" Uninstall cancelled.");
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// stdin not available (e.g. non-interactive npm lifecycle) — abort to be safe
|
|
46
|
+
this.log(" Non-interactive environment detected. Skipping data deletion.");
|
|
47
|
+
this.log(" Run `openork uninstall` manually to remove all data.");
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// ── Step 2: Stop running gateway ──
|
|
52
|
+
const state = readState();
|
|
53
|
+
if (state && isProcessRunning(state.pid)) {
|
|
54
|
+
try {
|
|
55
|
+
process.kill(state.pid);
|
|
56
|
+
this.log(` Stopped gateway (pid ${state.pid})`);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
this.warn(` Could not stop gateway (pid ${state.pid})`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
clearState();
|
|
63
|
+
// ── Step 3: Clean shell profiles ──
|
|
23
64
|
const profiles = detectShellProfiles();
|
|
24
65
|
const configured = profiles.filter((p) => profileAlreadyConfigured(p.path));
|
|
25
66
|
if (configured.length > 0) {
|
|
@@ -31,37 +72,16 @@ export default class Uninstall extends Command {
|
|
|
31
72
|
else {
|
|
32
73
|
this.log(" No shell profile entries to remove.");
|
|
33
74
|
}
|
|
34
|
-
// ── Step
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const openorkHome = process.env.OPENORK_HOME || path.join(os.homedir(), ".openork");
|
|
39
|
-
if (existsSync(openorkHome)) {
|
|
40
|
-
// Show what would be deleted
|
|
41
|
-
const configPath = path.join(openorkHome, "openork-config.json");
|
|
42
|
-
let workspace = openorkHome;
|
|
43
|
-
try {
|
|
44
|
-
const config = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
45
|
-
workspace = config.workspace || openorkHome;
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
/* use default */
|
|
49
|
-
}
|
|
50
|
-
const shouldDelete = await confirm({
|
|
51
|
-
message: `Delete workspace data at ${workspace}? (This cannot be undone)`,
|
|
52
|
-
default: false,
|
|
53
|
-
});
|
|
54
|
-
if (shouldDelete) {
|
|
55
|
-
rmSync(workspace, { recursive: true, force: true });
|
|
56
|
-
this.log(` Deleted ${workspace}`);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
this.log(` Kept ${workspace}`);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
75
|
+
// ── Step 4: Delete workspace data (interactive mode only) ──
|
|
76
|
+
if (!flags.yes && existsSync(openorkHome)) {
|
|
77
|
+
rmSync(openorkHome, { recursive: true, force: true });
|
|
78
|
+
this.log(` Deleted ${openorkHome}`);
|
|
62
79
|
}
|
|
63
80
|
this.log("");
|
|
64
81
|
this.log(" OpenOrk uninstalled.");
|
|
82
|
+
if (flags.yes && existsSync(openorkHome)) {
|
|
83
|
+
this.log(` Data kept at ${openorkHome}. Run \`openork uninstall\` to remove it.`);
|
|
84
|
+
}
|
|
65
85
|
if (configured.length > 0) {
|
|
66
86
|
this.log(" Restart your terminal or run `exec $SHELL` to clear OPENORK_HOME from this session.");
|
|
67
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"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"}
|
|
@@ -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");
|