@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 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;IA4CpB,4CAA4C;IAC5C,OAAO,CAAC,QAAQ;CAuBjB"}
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
- execSync(`npx prisma migrate deploy --schema="${schemaPath}"`, {
67
- stdio: "pipe",
68
- env: { ...process.env, DATABASE_URL: `file:${dbPath}` },
69
- });
66
+ this.runPrismaMigrate(schemaPath, dbPath);
70
67
  }
71
- catch (err) {
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":"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"}
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;AAW7C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,gBAAyB,WAAW,6EACwC;IAE5E,gBAAyB,QAAQ,WAG/B;IAEF,gBAAyB,KAAK;;MAM5B;IAEI,GAAG;CA2DV"}
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, readFileSync, rmSync } from "node:fs";
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 (used by npm preuninstall hook)",
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
- // ── Step 1: Clean shell profiles ──
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 2: Optionally remove workspace data ──
35
- // Skip data deletion in non-interactive mode (preuninstall hook)
36
- // to avoid accidental data loss.
37
- if (!flags.yes) {
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":"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"}
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");