teamcopilot 0.3.4 → 0.3.5

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.
Files changed (40) hide show
  1. package/.env.example +3 -0
  2. package/dist/frontend/assets/{cssMode-CB9iAlw8.js → cssMode-DUnSc-N1.js} +1 -1
  3. package/dist/frontend/assets/{freemarker2-DI2xjASY.js → freemarker2-C_BuPYAu.js} +1 -1
  4. package/dist/frontend/assets/{handlebars-CmcQby9J.js → handlebars-DEEie70Y.js} +1 -1
  5. package/dist/frontend/assets/{html-ClP1XQBQ.js → html-BFks4r5R.js} +1 -1
  6. package/dist/frontend/assets/{htmlMode-DIlZsDL4.js → htmlMode-D8q9uv51.js} +1 -1
  7. package/dist/frontend/assets/index-D1Hcz_bo.css +1 -0
  8. package/dist/frontend/assets/{index-NFAjAMOV.js → index-DSsnnTDn.js} +224 -219
  9. package/dist/frontend/assets/{javascript-CbZA1Ase.js → javascript-LbJP7XES.js} +1 -1
  10. package/dist/frontend/assets/{jsonMode-VYZo-ljl.js → jsonMode-CTDSTkzw.js} +1 -1
  11. package/dist/frontend/assets/{liquid-I2CXh5hp.js → liquid-DMVVOmiW.js} +1 -1
  12. package/dist/frontend/assets/{mdx-BrO6zg6G.js → mdx-CG2zKU-F.js} +1 -1
  13. package/dist/frontend/assets/{python-S8m0lqgl.js → python-DupB8Ozc.js} +1 -1
  14. package/dist/frontend/assets/{razor-CV1dlAuV.js → razor-DNRGk0B3.js} +1 -1
  15. package/dist/frontend/assets/{tsMode-mSUzzhBd.js → tsMode-cWXCeSel.js} +1 -1
  16. package/dist/frontend/assets/{typescript-BOhssVGT.js → typescript-D_Aw0wph.js} +1 -1
  17. package/dist/frontend/assets/{xml-DF5nbc8Y.js → xml-DPt8oeKw.js} +1 -1
  18. package/dist/frontend/assets/{yaml-CjFdxQq7.js → yaml-Ct0xMYlA.js} +1 -1
  19. package/dist/frontend/index.html +2 -2
  20. package/dist/index.js +2 -0
  21. package/dist/utils/external-host.js +22 -0
  22. package/dist/utils/secrets.js +15 -0
  23. package/dist/utils/workflow-api-keys.js +88 -0
  24. package/dist/utils/workflow-interruption.js +2 -2
  25. package/dist/utils/workflow-runner.js +11 -2
  26. package/dist/utils/workflow.js +3 -0
  27. package/dist/workflow-api.js +185 -0
  28. package/dist/workflows/index.js +35 -0
  29. package/package.json +1 -1
  30. package/prisma/generated/client/edge.js +15 -4
  31. package/prisma/generated/client/index-browser.js +12 -1
  32. package/prisma/generated/client/index.d.ts +2002 -270
  33. package/prisma/generated/client/index.js +15 -4
  34. package/prisma/generated/client/package.json +1 -1
  35. package/prisma/generated/client/schema.prisma +28 -12
  36. package/prisma/generated/client/wasm.js +15 -4
  37. package/prisma/migrations/20260430033133_add_workflow_api_keys/migration.sql +46 -0
  38. package/prisma/migrations/20260430161041_remove_run_source_default/migration.sql +28 -0
  39. package/prisma/schema.prisma +18 -2
  40. package/dist/frontend/assets/index-bnKwfDfp.css +0 -1
@@ -0,0 +1,46 @@
1
+ -- CreateTable
2
+ CREATE TABLE "workflow_api_keys" (
3
+ "id" TEXT NOT NULL PRIMARY KEY,
4
+ "workflow_slug" TEXT NOT NULL,
5
+ "api_key" TEXT NOT NULL,
6
+ "created_by_user_id" TEXT NOT NULL,
7
+ "created_at" BIGINT NOT NULL
8
+ );
9
+
10
+ -- RedefineTables
11
+ PRAGMA defer_foreign_keys=ON;
12
+ PRAGMA foreign_keys=OFF;
13
+ CREATE TABLE "new_workflow_runs" (
14
+ "id" TEXT NOT NULL PRIMARY KEY,
15
+ "ran_by_user_id" TEXT,
16
+ "status" TEXT NOT NULL,
17
+ "started_at" BIGINT NOT NULL,
18
+ "completed_at" BIGINT,
19
+ "args" TEXT,
20
+ "error_message" TEXT,
21
+ "output" TEXT,
22
+ "workflow_slug" TEXT NOT NULL,
23
+ "session_id" TEXT,
24
+ "message_id" TEXT,
25
+ "run_source" TEXT NOT NULL DEFAULT 'user',
26
+ "workflow_api_key_id" TEXT,
27
+ CONSTRAINT "workflow_runs_ran_by_user_id_fkey" FOREIGN KEY ("ran_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
28
+ CONSTRAINT "workflow_runs_workflow_api_key_id_fkey" FOREIGN KEY ("workflow_api_key_id") REFERENCES "workflow_api_keys" ("id") ON DELETE SET NULL ON UPDATE CASCADE
29
+ );
30
+ INSERT INTO "new_workflow_runs" ("args", "completed_at", "error_message", "id", "message_id", "output", "ran_by_user_id", "session_id", "started_at", "status", "workflow_slug") SELECT "args", "completed_at", "error_message", "id", "message_id", "output", "ran_by_user_id", "session_id", "started_at", "status", "workflow_slug" FROM "workflow_runs";
31
+ DROP TABLE "workflow_runs";
32
+ ALTER TABLE "new_workflow_runs" RENAME TO "workflow_runs";
33
+ CREATE INDEX "workflow_runs_started_at_idx" ON "workflow_runs"("started_at");
34
+ CREATE INDEX "workflow_runs_session_id_message_id_idx" ON "workflow_runs"("session_id", "message_id");
35
+ CREATE INDEX "workflow_runs_workflow_api_key_id_idx" ON "workflow_runs"("workflow_api_key_id");
36
+ PRAGMA foreign_keys=ON;
37
+ PRAGMA defer_foreign_keys=OFF;
38
+
39
+ -- CreateIndex
40
+ CREATE UNIQUE INDEX "workflow_api_keys_api_key_key" ON "workflow_api_keys"("api_key");
41
+
42
+ -- CreateIndex
43
+ CREATE INDEX "workflow_api_keys_workflow_slug_idx" ON "workflow_api_keys"("workflow_slug");
44
+
45
+ -- CreateIndex
46
+ CREATE INDEX "workflow_api_keys_created_by_user_id_idx" ON "workflow_api_keys"("created_by_user_id");
@@ -0,0 +1,28 @@
1
+ -- RedefineTables
2
+ PRAGMA defer_foreign_keys=ON;
3
+ PRAGMA foreign_keys=OFF;
4
+ CREATE TABLE "new_workflow_runs" (
5
+ "id" TEXT NOT NULL PRIMARY KEY,
6
+ "ran_by_user_id" TEXT,
7
+ "status" TEXT NOT NULL,
8
+ "started_at" BIGINT NOT NULL,
9
+ "completed_at" BIGINT,
10
+ "args" TEXT,
11
+ "error_message" TEXT,
12
+ "output" TEXT,
13
+ "workflow_slug" TEXT NOT NULL,
14
+ "session_id" TEXT,
15
+ "message_id" TEXT,
16
+ "run_source" TEXT NOT NULL,
17
+ "workflow_api_key_id" TEXT,
18
+ CONSTRAINT "workflow_runs_ran_by_user_id_fkey" FOREIGN KEY ("ran_by_user_id") REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
19
+ CONSTRAINT "workflow_runs_workflow_api_key_id_fkey" FOREIGN KEY ("workflow_api_key_id") REFERENCES "workflow_api_keys" ("id") ON DELETE SET NULL ON UPDATE CASCADE
20
+ );
21
+ INSERT INTO "new_workflow_runs" ("args", "completed_at", "error_message", "id", "message_id", "output", "ran_by_user_id", "run_source", "session_id", "started_at", "status", "workflow_api_key_id", "workflow_slug") SELECT "args", "completed_at", "error_message", "id", "message_id", "output", "ran_by_user_id", "run_source", "session_id", "started_at", "status", "workflow_api_key_id", "workflow_slug" FROM "workflow_runs";
22
+ DROP TABLE "workflow_runs";
23
+ ALTER TABLE "new_workflow_runs" RENAME TO "workflow_runs";
24
+ CREATE INDEX "workflow_runs_started_at_idx" ON "workflow_runs"("started_at");
25
+ CREATE INDEX "workflow_runs_session_id_message_id_idx" ON "workflow_runs"("session_id", "message_id");
26
+ CREATE INDEX "workflow_runs_workflow_api_key_id_idx" ON "workflow_runs"("workflow_api_key_id");
27
+ PRAGMA foreign_keys=ON;
28
+ PRAGMA defer_foreign_keys=OFF;
@@ -28,7 +28,7 @@ model users {
28
28
 
29
29
  model workflow_runs {
30
30
  id String @id @default(uuid())
31
- ran_by_user_id String
31
+ ran_by_user_id String?
32
32
  status String // "running" | "success" | "failed"
33
33
  started_at BigInt
34
34
  completed_at BigInt?
@@ -38,10 +38,26 @@ model workflow_runs {
38
38
  workflow_slug String
39
39
  session_id String?
40
40
  message_id String?
41
- user users @relation(fields: [ran_by_user_id], references: [id], onDelete: Cascade)
41
+ run_source String // "user" | "api"
42
+ workflow_api_key_id String?
43
+ user users? @relation(fields: [ran_by_user_id], references: [id], onDelete: SetNull)
44
+ workflowApiKey workflow_api_keys? @relation(fields: [workflow_api_key_id], references: [id], onDelete: SetNull)
42
45
 
43
46
  @@index([started_at])
44
47
  @@index([session_id, message_id])
48
+ @@index([workflow_api_key_id])
49
+ }
50
+
51
+ model workflow_api_keys {
52
+ id String @id @default(uuid())
53
+ workflow_slug String
54
+ api_key String @unique
55
+ created_by_user_id String
56
+ created_at BigInt
57
+ workflowRuns workflow_runs[]
58
+
59
+ @@index([workflow_slug])
60
+ @@index([created_by_user_id])
45
61
  }
46
62
 
47
63
  model workflow_aborted_sessions {