teamcopilot 0.0.1 → 0.0.2

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 (33) hide show
  1. package/bin/teamcopilot.js +37 -2
  2. package/dist/prisma/client.js +1 -1
  3. package/dist/utils/permission-common.js +1 -1
  4. package/dist/utils/workspace-sync.js +29 -0
  5. package/package.json +5 -4
  6. package/prisma/generated/client/client.d.ts +1 -0
  7. package/prisma/generated/client/client.js +5 -0
  8. package/prisma/generated/client/default.d.ts +1 -0
  9. package/prisma/generated/client/default.js +5 -0
  10. package/prisma/generated/client/edge.d.ts +1 -0
  11. package/prisma/generated/client/edge.js +289 -0
  12. package/prisma/generated/client/index-browser.js +275 -0
  13. package/prisma/generated/client/index.d.ts +18318 -0
  14. package/prisma/generated/client/index.js +310 -0
  15. package/prisma/generated/client/libquery_engine-darwin-arm64.dylib.node +0 -0
  16. package/prisma/generated/client/package.json +183 -0
  17. package/prisma/generated/client/query_engine_bg.js +2 -0
  18. package/prisma/generated/client/query_engine_bg.wasm +0 -0
  19. package/prisma/generated/client/runtime/edge-esm.js +35 -0
  20. package/prisma/generated/client/runtime/edge.js +35 -0
  21. package/prisma/generated/client/runtime/index-browser.d.ts +370 -0
  22. package/prisma/generated/client/runtime/index-browser.js +17 -0
  23. package/prisma/generated/client/runtime/library.d.ts +3982 -0
  24. package/prisma/generated/client/runtime/library.js +147 -0
  25. package/prisma/generated/client/runtime/react-native.js +84 -0
  26. package/prisma/generated/client/runtime/wasm-compiler-edge.js +85 -0
  27. package/prisma/generated/client/runtime/wasm-engine-edge.js +38 -0
  28. package/prisma/generated/client/schema.prisma +148 -0
  29. package/prisma/generated/client/wasm-edge-light-loader.mjs +5 -0
  30. package/prisma/generated/client/wasm-worker-loader.mjs +5 -0
  31. package/prisma/generated/client/wasm.d.ts +1 -0
  32. package/prisma/generated/client/wasm.js +296 -0
  33. package/prisma/schema.prisma +1 -0
@@ -2,14 +2,16 @@
2
2
 
3
3
  const fs = require("fs");
4
4
  const path = require("path");
5
- const { spawn } = require("child_process");
5
+ const { execFileSync, spawn } = require("child_process");
6
6
  const { createInterface } = require("node:readline/promises");
7
7
  const dotenv = require("dotenv");
8
8
 
9
9
  const packageRoot = path.resolve(__dirname, "..");
10
10
  const currentDirectory = process.cwd();
11
+ const cliPackageJsonPath = path.join(packageRoot, "package.json");
11
12
  const envExamplePath = path.join(packageRoot, ".env.example");
12
13
  const envFilePath = path.join(currentDirectory, ".env");
14
+ const localPackageJsonPath = path.join(currentDirectory, "package.json");
13
15
 
14
16
  const commandToScript = {
15
17
  start: "index.js",
@@ -46,6 +48,10 @@ function loadEnvExample() {
46
48
  return parsed;
47
49
  }
48
50
 
51
+ function getCliPackageMetadata() {
52
+ return JSON.parse(fs.readFileSync(cliPackageJsonPath, "utf-8"));
53
+ }
54
+
49
55
  function normalizeInitFlag(flagName) {
50
56
  return flagName.replace(/^--/, "").trim().toUpperCase().replace(/-/g, "_");
51
57
  }
@@ -119,6 +125,34 @@ function parseExistingEnv() {
119
125
  return dotenv.parse(fs.readFileSync(envFilePath, "utf-8"));
120
126
  }
121
127
 
128
+ function parseExistingPackageJson() {
129
+ if (!fs.existsSync(localPackageJsonPath)) {
130
+ return null;
131
+ }
132
+ return JSON.parse(fs.readFileSync(localPackageJsonPath, "utf-8"));
133
+ }
134
+
135
+ function ensureLocalPackagePinned() {
136
+ const cliPackage = getCliPackageMetadata();
137
+ const existingPackageJson = parseExistingPackageJson();
138
+ const nextPackageJson = existingPackageJson ?? {
139
+ name: path.basename(currentDirectory) || "teamcopilot-workspace",
140
+ private: true,
141
+ };
142
+ const existingDependencies = nextPackageJson.dependencies ?? {};
143
+ nextPackageJson.dependencies = {
144
+ ...existingDependencies,
145
+ teamcopilot: cliPackage.version,
146
+ };
147
+
148
+ fs.writeFileSync(localPackageJsonPath, `${JSON.stringify(nextPackageJson, null, 2)}\n`, "utf-8");
149
+ execFileSync("npm", ["install"], {
150
+ cwd: currentDirectory,
151
+ stdio: "inherit",
152
+ env: process.env,
153
+ });
154
+ }
155
+
122
156
  async function promptForEnvValues(defaultValues, existingValues, providedFlags) {
123
157
  const rl = createInterface({
124
158
  input: process.stdin,
@@ -250,7 +284,8 @@ async function runInit(argv) {
250
284
  const existingValues = parseExistingEnv();
251
285
  const values = await promptForEnvValues(defaultValues, existingValues, flags);
252
286
  upsertEnvFile(values);
253
- console.log(`Init completed. Please run "npx teamcopilot start" to start the service`);
287
+ ensureLocalPackagePinned();
288
+ console.log(`Init completed. Pinned teamcopilot@${getCliPackageMetadata().version} locally. Please run "npx teamcopilot start" to start the service`);
254
289
  }
255
290
 
256
291
  async function main() {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const client_1 = require("@prisma/client");
3
+ const client_1 = require("../../prisma/generated/client");
4
4
  const workspace_sync_1 = require("../utils/workspace-sync");
5
5
  let prismaClient = null;
6
6
  function createPrismaClient() {
@@ -10,7 +10,7 @@ exports.initializeResourcePermissionsForCreator = initializeResourcePermissionsF
10
10
  exports.addUserToResourcePermissionsIfRestricted = addUserToResourcePermissionsIfRestricted;
11
11
  exports.setResourcePermissions = setResourcePermissions;
12
12
  const client_1 = __importDefault(require("../prisma/client"));
13
- const client_2 = require("@prisma/client");
13
+ const client_2 = require("../../prisma/generated/client");
14
14
  function assertCommonPermissionMode(mode, label) {
15
15
  if (mode !== "restricted" && mode !== "everyone") {
16
16
  throw {
@@ -128,6 +128,31 @@ function mergeGitignoreFile(sourceGitignorePath, targetGitignorePath) {
128
128
  const suffix = existingContent.endsWith("\n") || existingContent.length === 0 ? "" : "\n";
129
129
  fs_1.default.writeFileSync(targetGitignorePath, `${existingContent}${suffix}${prefix}${linesToAppend.join("\n")}\n`, "utf-8");
130
130
  }
131
+ function mergePackageJsonFile(sourcePackageJsonPath, targetPackageJsonPath) {
132
+ const sourcePackageJson = JSON.parse(fs_1.default.readFileSync(sourcePackageJsonPath, "utf-8"));
133
+ if (!fs_1.default.existsSync(targetPackageJsonPath)) {
134
+ fs_1.default.writeFileSync(targetPackageJsonPath, `${JSON.stringify(sourcePackageJson, null, 2)}\n`, "utf-8");
135
+ return;
136
+ }
137
+ const targetPackageJson = JSON.parse(fs_1.default.readFileSync(targetPackageJsonPath, "utf-8"));
138
+ const mergedPackageJson = {
139
+ ...sourcePackageJson,
140
+ ...targetPackageJson,
141
+ dependencies: {
142
+ ...(sourcePackageJson.dependencies ?? {}),
143
+ ...(targetPackageJson.dependencies ?? {}),
144
+ },
145
+ devDependencies: {
146
+ ...(sourcePackageJson.devDependencies ?? {}),
147
+ ...(targetPackageJson.devDependencies ?? {}),
148
+ },
149
+ scripts: {
150
+ ...(sourcePackageJson.scripts ?? {}),
151
+ ...(targetPackageJson.scripts ?? {}),
152
+ },
153
+ };
154
+ fs_1.default.writeFileSync(targetPackageJsonPath, `${JSON.stringify(mergedPackageJson, null, 2)}\n`, "utf-8");
155
+ }
131
156
  function syncTemplateDirectory(sourceDirectory, targetDirectory, relativePath, inheritedRuleSets) {
132
157
  const localRuleSet = readLocalGitignoreRuleSet(sourceDirectory, relativePath);
133
158
  const activeRuleSets = localRuleSet ? [...inheritedRuleSets, localRuleSet] : inheritedRuleSets;
@@ -153,6 +178,10 @@ function syncTemplateDirectory(sourceDirectory, targetDirectory, relativePath, i
153
178
  mergeGitignoreFile(sourceEntryPath, targetEntryPath);
154
179
  continue;
155
180
  }
181
+ if (entry.name === "package.json") {
182
+ mergePackageJsonFile(sourceEntryPath, targetEntryPath);
183
+ continue;
184
+ }
156
185
  fs_1.default.copyFileSync(sourceEntryPath, targetEntryPath);
157
186
  }
158
187
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "teamcopilot",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "A shared AI Agent for Teams",
5
5
  "homepage": "https://teamcopilot.ai",
6
6
  "repository": {
@@ -24,9 +24,9 @@
24
24
  "scripts": {
25
25
  "clean": "rm -rf dist",
26
26
  "check:unused:functions": "tsc --noEmit --noUnusedLocals --noUnusedParameters",
27
- "check:unused:exports": "ts-prune -e -p tsconfig.json -i \"^src/types/shared/\"",
27
+ "check:unused:exports": "ts-prune -e -p tsconfig.json -i \"^src/types/shared/|^prisma/generated/\"",
28
28
  "check:unused": "npm run check:unused:functions && npm run check:unused:exports",
29
- "build": "npm run clean && npm run check:unused && cd frontend && npm run build && cd .. && tsc && node scripts/copy-runtime-assets.mjs",
29
+ "build": "npm run clean && npm run check:unused && cd frontend && npm run build && cd .. && prisma generate --schema prisma/schema.prisma && tsc && node scripts/copy-runtime-assets.mjs",
30
30
  "start": "node dist/index.js",
31
31
  "dev": "concurrently \"npm run dev:backend\" \"npm run dev:frontend\"",
32
32
  "dev:backend": "ts-node-dev src/index.ts",
@@ -41,6 +41,7 @@
41
41
  "prisma:migrate:reset": "npm run prisma -- migrate reset",
42
42
  "prisma:migrate:deploy": "npm run prisma -- migrate deploy",
43
43
  "prisma:studio": "npm run prisma -- studio",
44
+ "postinstall": "prisma generate --schema prisma/schema.prisma",
44
45
  "test": "node -r ts-node/register tests/run-tests.ts",
45
46
  "prepublishOnly": "npm run build"
46
47
  },
@@ -83,4 +84,4 @@
83
84
  "concurrently": "^9.2.1",
84
85
  "ts-prune": "^0.10.3"
85
86
  }
86
- }
87
+ }
@@ -0,0 +1 @@
1
+ export * from "./index"
@@ -0,0 +1,5 @@
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!!
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+ module.exports = { ...require('.') }
@@ -0,0 +1 @@
1
+ export * from "./index"
@@ -0,0 +1,5 @@
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!!
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+ module.exports = { ...require('#main-entry-point') }
@@ -0,0 +1 @@
1
+ export * from "./default"
@@ -0,0 +1,289 @@
1
+
2
+ /* !!! This is code generated by Prisma. Do not edit directly. !!!
3
+ /* eslint-disable */
4
+ // biome-ignore-all lint: generated file
5
+
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+
8
+ const {
9
+ PrismaClientKnownRequestError,
10
+ PrismaClientUnknownRequestError,
11
+ PrismaClientRustPanicError,
12
+ PrismaClientInitializationError,
13
+ PrismaClientValidationError,
14
+ getPrismaClient,
15
+ sqltag,
16
+ empty,
17
+ join,
18
+ raw,
19
+ skip,
20
+ Decimal,
21
+ Debug,
22
+ objectEnumValues,
23
+ makeStrictEnum,
24
+ Extensions,
25
+ warnOnce,
26
+ defineDmmfProperty,
27
+ Public,
28
+ getRuntime,
29
+ createParam,
30
+ } = require('./runtime/edge.js')
31
+
32
+
33
+ const Prisma = {}
34
+
35
+ exports.Prisma = Prisma
36
+ exports.$Enums = {}
37
+
38
+ /**
39
+ * Prisma Client JS version: 6.19.2
40
+ * Query Engine version: c2990dca591cba766e3b7ef5d9e8a84796e47ab7
41
+ */
42
+ Prisma.prismaVersion = {
43
+ client: "6.19.2",
44
+ engine: "c2990dca591cba766e3b7ef5d9e8a84796e47ab7"
45
+ }
46
+
47
+ Prisma.PrismaClientKnownRequestError = PrismaClientKnownRequestError;
48
+ Prisma.PrismaClientUnknownRequestError = PrismaClientUnknownRequestError
49
+ Prisma.PrismaClientRustPanicError = PrismaClientRustPanicError
50
+ Prisma.PrismaClientInitializationError = PrismaClientInitializationError
51
+ Prisma.PrismaClientValidationError = PrismaClientValidationError
52
+ Prisma.Decimal = Decimal
53
+
54
+ /**
55
+ * Re-export of sql-template-tag
56
+ */
57
+ Prisma.sql = sqltag
58
+ Prisma.empty = empty
59
+ Prisma.join = join
60
+ Prisma.raw = raw
61
+ Prisma.validator = Public.validator
62
+
63
+ /**
64
+ * Extensions
65
+ */
66
+ Prisma.getExtensionContext = Extensions.getExtensionContext
67
+ Prisma.defineExtension = Extensions.defineExtension
68
+
69
+ /**
70
+ * Shorthand utilities for JSON filtering
71
+ */
72
+ Prisma.DbNull = objectEnumValues.instances.DbNull
73
+ Prisma.JsonNull = objectEnumValues.instances.JsonNull
74
+ Prisma.AnyNull = objectEnumValues.instances.AnyNull
75
+
76
+ Prisma.NullTypes = {
77
+ DbNull: objectEnumValues.classes.DbNull,
78
+ JsonNull: objectEnumValues.classes.JsonNull,
79
+ AnyNull: objectEnumValues.classes.AnyNull
80
+ }
81
+
82
+
83
+
84
+
85
+
86
+ /**
87
+ * Enums
88
+ */
89
+ exports.Prisma.TransactionIsolationLevel = makeStrictEnum({
90
+ Serializable: 'Serializable'
91
+ });
92
+
93
+ exports.Prisma.UsersScalarFieldEnum = {
94
+ id: 'id',
95
+ email: 'email',
96
+ name: 'name',
97
+ role: 'role',
98
+ created_at: 'created_at',
99
+ password_hash: 'password_hash',
100
+ must_change_password: 'must_change_password',
101
+ reset_token: 'reset_token',
102
+ reset_token_expires_at: 'reset_token_expires_at'
103
+ };
104
+
105
+ exports.Prisma.Workflow_runsScalarFieldEnum = {
106
+ id: 'id',
107
+ ran_by_user_id: 'ran_by_user_id',
108
+ status: 'status',
109
+ started_at: 'started_at',
110
+ completed_at: 'completed_at',
111
+ args: 'args',
112
+ error_message: 'error_message',
113
+ output: 'output',
114
+ workflow_slug: 'workflow_slug',
115
+ session_id: 'session_id',
116
+ message_id: 'message_id'
117
+ };
118
+
119
+ exports.Prisma.Workflow_aborted_sessionsScalarFieldEnum = {
120
+ session_id: 'session_id',
121
+ created_at: 'created_at'
122
+ };
123
+
124
+ exports.Prisma.Key_valueScalarFieldEnum = {
125
+ key: 'key',
126
+ value: 'value'
127
+ };
128
+
129
+ exports.Prisma.Chat_sessionsScalarFieldEnum = {
130
+ id: 'id',
131
+ user_id: 'user_id',
132
+ opencode_session_id: 'opencode_session_id',
133
+ title: 'title',
134
+ created_at: 'created_at',
135
+ updated_at: 'updated_at'
136
+ };
137
+
138
+ exports.Prisma.Tool_execution_permissionsScalarFieldEnum = {
139
+ id: 'id',
140
+ opencode_session_id: 'opencode_session_id',
141
+ message_id: 'message_id',
142
+ call_id: 'call_id',
143
+ status: 'status',
144
+ created_at: 'created_at',
145
+ responded_at: 'responded_at'
146
+ };
147
+
148
+ exports.Prisma.Resource_metadataScalarFieldEnum = {
149
+ resource_kind: 'resource_kind',
150
+ resource_slug: 'resource_slug',
151
+ created_by_user_id: 'created_by_user_id',
152
+ approved_by_user_id: 'approved_by_user_id',
153
+ created_at: 'created_at',
154
+ updated_at: 'updated_at'
155
+ };
156
+
157
+ exports.Prisma.Resource_permissionsScalarFieldEnum = {
158
+ resource_kind: 'resource_kind',
159
+ resource_slug: 'resource_slug',
160
+ permission_mode: 'permission_mode',
161
+ created_at: 'created_at',
162
+ updated_at: 'updated_at'
163
+ };
164
+
165
+ exports.Prisma.Resource_permission_usersScalarFieldEnum = {
166
+ id: 'id',
167
+ resource_kind: 'resource_kind',
168
+ resource_slug: 'resource_slug',
169
+ user_id: 'user_id',
170
+ created_at: 'created_at'
171
+ };
172
+
173
+ exports.Prisma.Resource_approved_snapshotsScalarFieldEnum = {
174
+ resource_kind: 'resource_kind',
175
+ resource_slug: 'resource_slug',
176
+ file_count: 'file_count',
177
+ created_at: 'created_at',
178
+ updated_at: 'updated_at'
179
+ };
180
+
181
+ exports.Prisma.Resource_approved_snapshot_filesScalarFieldEnum = {
182
+ id: 'id',
183
+ resource_kind: 'resource_kind',
184
+ resource_slug: 'resource_slug',
185
+ relative_path: 'relative_path',
186
+ content_kind: 'content_kind',
187
+ text_content: 'text_content',
188
+ binary_content: 'binary_content',
189
+ size_bytes: 'size_bytes',
190
+ content_sha256: 'content_sha256'
191
+ };
192
+
193
+ exports.Prisma.SortOrder = {
194
+ asc: 'asc',
195
+ desc: 'desc'
196
+ };
197
+
198
+ exports.Prisma.NullsOrder = {
199
+ first: 'first',
200
+ last: 'last'
201
+ };
202
+
203
+
204
+ exports.Prisma.ModelName = {
205
+ users: 'users',
206
+ workflow_runs: 'workflow_runs',
207
+ workflow_aborted_sessions: 'workflow_aborted_sessions',
208
+ key_value: 'key_value',
209
+ chat_sessions: 'chat_sessions',
210
+ tool_execution_permissions: 'tool_execution_permissions',
211
+ resource_metadata: 'resource_metadata',
212
+ resource_permissions: 'resource_permissions',
213
+ resource_permission_users: 'resource_permission_users',
214
+ resource_approved_snapshots: 'resource_approved_snapshots',
215
+ resource_approved_snapshot_files: 'resource_approved_snapshot_files'
216
+ };
217
+ /**
218
+ * Create the Client
219
+ */
220
+ const config = {
221
+ "generator": {
222
+ "name": "client",
223
+ "provider": {
224
+ "fromEnvVar": null,
225
+ "value": "prisma-client-js"
226
+ },
227
+ "output": {
228
+ "value": "/Users/rishabhpoddar/Desktop/trythisapp/teamcopilot/prisma/generated/client",
229
+ "fromEnvVar": null
230
+ },
231
+ "config": {
232
+ "engineType": "library"
233
+ },
234
+ "binaryTargets": [
235
+ {
236
+ "fromEnvVar": null,
237
+ "value": "darwin-arm64",
238
+ "native": true
239
+ }
240
+ ],
241
+ "previewFeatures": [],
242
+ "sourceFilePath": "/Users/rishabhpoddar/Desktop/trythisapp/teamcopilot/prisma/schema.prisma",
243
+ "isCustomOutput": true
244
+ },
245
+ "relativeEnvPaths": {
246
+ "rootEnvPath": null,
247
+ "schemaEnvPath": "../../../.env"
248
+ },
249
+ "relativePath": "../..",
250
+ "clientVersion": "6.19.2",
251
+ "engineVersion": "c2990dca591cba766e3b7ef5d9e8a84796e47ab7",
252
+ "datasourceNames": [
253
+ "db"
254
+ ],
255
+ "activeProvider": "sqlite",
256
+ "postinstall": false,
257
+ "inlineDatasources": {
258
+ "db": {
259
+ "url": {
260
+ "fromEnvVar": "DATABASE_URL",
261
+ "value": null
262
+ }
263
+ }
264
+ },
265
+ "inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = \"./generated/client\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n url = env(\"DATABASE_URL\")\n}\n\nmodel users {\n id String @id @default(uuid())\n email String @unique\n name String\n role String // \"User\" or \"Engineer\"\n created_at BigInt\n password_hash String\n must_change_password Boolean @default(false)\n reset_token String?\n reset_token_expires_at BigInt?\n workflowRuns workflow_runs[]\n chatSessions chat_sessions[]\n resourcePermissionUsers resource_permission_users[]\n createdResourceMetadata resource_metadata[] @relation(\"ResourceCreatedBy\")\n approvedResourceMetadata resource_metadata[] @relation(\"ResourceApprovedBy\")\n}\n\nmodel workflow_runs {\n id String @id @default(uuid())\n ran_by_user_id String\n status String // \"running\" | \"success\" | \"failed\"\n started_at BigInt\n completed_at BigInt?\n args String? // JSON string of input arguments passed to the workflow\n error_message String?\n output String? // Captured stdout/stderr from the workflow run\n workflow_slug String\n session_id String?\n message_id String?\n user users @relation(fields: [ran_by_user_id], references: [id], onDelete: Cascade)\n\n @@index([started_at])\n @@index([session_id, message_id])\n}\n\nmodel workflow_aborted_sessions {\n session_id String @id\n created_at BigInt\n}\n\nmodel key_value {\n key String @id\n value String\n}\n\nmodel chat_sessions {\n id String @id @default(uuid())\n user_id String\n opencode_session_id String @unique\n title String\n created_at BigInt\n updated_at BigInt\n user users @relation(fields: [user_id], references: [id], onDelete: Cascade)\n}\n\nmodel tool_execution_permissions {\n id String @id @default(uuid())\n opencode_session_id String\n message_id String\n call_id String\n status String // \"pending\" | \"approved\" | \"rejected\"\n created_at BigInt\n responded_at BigInt?\n\n @@unique([opencode_session_id, message_id, call_id])\n @@index([opencode_session_id, status])\n}\n\nmodel resource_metadata {\n resource_kind String\n resource_slug String\n created_by_user_id String?\n approved_by_user_id String?\n created_at BigInt\n updated_at BigInt\n approvedSnapshot resource_approved_snapshots?\n createdByUser users? @relation(\"ResourceCreatedBy\", fields: [created_by_user_id], references: [id], onDelete: SetNull)\n approvedByUser users? @relation(\"ResourceApprovedBy\", fields: [approved_by_user_id], references: [id], onDelete: SetNull)\n\n @@id([resource_kind, resource_slug])\n @@index([resource_slug])\n @@index([created_by_user_id])\n @@index([approved_by_user_id])\n}\n\nmodel resource_permissions {\n resource_kind String\n resource_slug String\n permission_mode String // \"restricted\" | \"everyone\"\n created_at BigInt\n updated_at BigInt\n allowedUsers resource_permission_users[]\n\n @@id([resource_kind, resource_slug])\n @@index([resource_slug])\n}\n\nmodel resource_permission_users {\n id String @id @default(uuid())\n resource_kind String\n resource_slug String\n user_id String\n created_at BigInt\n permission resource_permissions @relation(fields: [resource_kind, resource_slug], references: [resource_kind, resource_slug], onDelete: Cascade)\n user users @relation(fields: [user_id], references: [id], onDelete: Cascade)\n\n @@unique([resource_kind, resource_slug, user_id])\n @@index([resource_kind, resource_slug])\n}\n\nmodel resource_approved_snapshots {\n resource_kind String\n resource_slug String\n file_count Int\n created_at BigInt\n updated_at BigInt\n resource resource_metadata @relation(fields: [resource_kind, resource_slug], references: [resource_kind, resource_slug], onDelete: Cascade)\n files resource_approved_snapshot_files[]\n\n @@id([resource_kind, resource_slug])\n @@index([resource_slug])\n}\n\nmodel resource_approved_snapshot_files {\n id String @id @default(uuid())\n resource_kind String\n resource_slug String\n relative_path String\n content_kind String // \"text\" | \"binary\"\n text_content String?\n binary_content Bytes?\n size_bytes Int\n content_sha256 String\n snapshot resource_approved_snapshots @relation(fields: [resource_kind, resource_slug], references: [resource_kind, resource_slug], onDelete: Cascade)\n\n @@unique([resource_kind, resource_slug, relative_path])\n @@index([resource_kind, resource_slug])\n}\n",
266
+ "inlineSchemaHash": "dacbd763b12ea632925d64bed2f4e2b1bc845eb6765824a14f15d6d99d855ccb",
267
+ "copyEngine": true
268
+ }
269
+ config.dirname = '/'
270
+
271
+ config.runtimeDataModel = JSON.parse("{\"models\":{\"users\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"email\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"name\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"role\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"password_hash\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"must_change_password\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"Boolean\",\"nativeType\":null,\"default\":false,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reset_token\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"reset_token_expires_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"workflowRuns\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"workflow_runs\",\"nativeType\":null,\"relationName\":\"usersToworkflow_runs\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"chatSessions\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"chat_sessions\",\"nativeType\":null,\"relationName\":\"chat_sessionsTousers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"resourcePermissionUsers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"resource_permission_users\",\"nativeType\":null,\"relationName\":\"resource_permission_usersTousers\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdResourceMetadata\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"resource_metadata\",\"nativeType\":null,\"relationName\":\"ResourceCreatedBy\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"approvedResourceMetadata\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"resource_metadata\",\"nativeType\":null,\"relationName\":\"ResourceApprovedBy\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"workflow_runs\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"ran_by_user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"started_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"completed_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"args\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"error_message\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"output\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"workflow_slug\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"session_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"message_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"users\",\"nativeType\":null,\"relationName\":\"usersToworkflow_runs\",\"relationFromFields\":[\"ran_by_user_id\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"workflow_aborted_sessions\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"session_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"key_value\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"key\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"value\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"chat_sessions\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"opencode_session_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":true,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"title\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"users\",\"nativeType\":null,\"relationName\":\"chat_sessionsTousers\",\"relationFromFields\":[\"user_id\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"tool_execution_permissions\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"opencode_session_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"message_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"call_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"status\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"responded_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"opencode_session_id\",\"message_id\",\"call_id\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"opencode_session_id\",\"message_id\",\"call_id\"]}],\"isGenerated\":false},\"resource_metadata\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"resource_kind\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"resource_slug\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_by_user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"approved_by_user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"approvedSnapshot\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"resource_approved_snapshots\",\"nativeType\":null,\"relationName\":\"resource_approved_snapshotsToresource_metadata\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"createdByUser\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"users\",\"nativeType\":null,\"relationName\":\"ResourceCreatedBy\",\"relationFromFields\":[\"created_by_user_id\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"SetNull\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"approvedByUser\",\"kind\":\"object\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"users\",\"nativeType\":null,\"relationName\":\"ResourceApprovedBy\",\"relationFromFields\":[\"approved_by_user_id\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"SetNull\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"resource_kind\",\"resource_slug\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"resource_permissions\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"resource_kind\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"resource_slug\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"permission_mode\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"allowedUsers\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"resource_permission_users\",\"nativeType\":null,\"relationName\":\"resource_permission_usersToresource_permissions\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"resource_kind\",\"resource_slug\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"resource_permission_users\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"resource_kind\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"resource_slug\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user_id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"permission\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"resource_permissions\",\"nativeType\":null,\"relationName\":\"resource_permission_usersToresource_permissions\",\"relationFromFields\":[\"resource_kind\",\"resource_slug\"],\"relationToFields\":[\"resource_kind\",\"resource_slug\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"user\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"users\",\"nativeType\":null,\"relationName\":\"resource_permission_usersTousers\",\"relationFromFields\":[\"user_id\"],\"relationToFields\":[\"id\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"resource_kind\",\"resource_slug\",\"user_id\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"resource_kind\",\"resource_slug\",\"user_id\"]}],\"isGenerated\":false},\"resource_approved_snapshots\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"resource_kind\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"resource_slug\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"file_count\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"created_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"updated_at\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"BigInt\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"resource\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"resource_metadata\",\"nativeType\":null,\"relationName\":\"resource_approved_snapshotsToresource_metadata\",\"relationFromFields\":[\"resource_kind\",\"resource_slug\"],\"relationToFields\":[\"resource_kind\",\"resource_slug\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"files\",\"kind\":\"object\",\"isList\":true,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"resource_approved_snapshot_files\",\"nativeType\":null,\"relationName\":\"resource_approved_snapshot_filesToresource_approved_snapshots\",\"relationFromFields\":[],\"relationToFields\":[],\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":{\"name\":null,\"fields\":[\"resource_kind\",\"resource_slug\"]},\"uniqueFields\":[],\"uniqueIndexes\":[],\"isGenerated\":false},\"resource_approved_snapshot_files\":{\"dbName\":null,\"schema\":null,\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":true,\"isReadOnly\":false,\"hasDefaultValue\":true,\"type\":\"String\",\"nativeType\":null,\"default\":{\"name\":\"uuid\",\"args\":[4]},\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"resource_kind\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"resource_slug\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":true,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"relative_path\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"content_kind\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"text_content\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"binary_content\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":false,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Bytes\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"size_bytes\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"Int\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"content_sha256\",\"kind\":\"scalar\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"String\",\"nativeType\":null,\"isGenerated\":false,\"isUpdatedAt\":false},{\"name\":\"snapshot\",\"kind\":\"object\",\"isList\":false,\"isRequired\":true,\"isUnique\":false,\"isId\":false,\"isReadOnly\":false,\"hasDefaultValue\":false,\"type\":\"resource_approved_snapshots\",\"nativeType\":null,\"relationName\":\"resource_approved_snapshot_filesToresource_approved_snapshots\",\"relationFromFields\":[\"resource_kind\",\"resource_slug\"],\"relationToFields\":[\"resource_kind\",\"resource_slug\"],\"relationOnDelete\":\"Cascade\",\"isGenerated\":false,\"isUpdatedAt\":false}],\"primaryKey\":null,\"uniqueFields\":[[\"resource_kind\",\"resource_slug\",\"relative_path\"]],\"uniqueIndexes\":[{\"name\":null,\"fields\":[\"resource_kind\",\"resource_slug\",\"relative_path\"]}],\"isGenerated\":false}},\"enums\":{},\"types\":{}}")
272
+ defineDmmfProperty(exports.Prisma, config.runtimeDataModel)
273
+ config.engineWasm = undefined
274
+ config.compilerWasm = undefined
275
+
276
+ config.injectableEdgeEnv = () => ({
277
+ parsed: {
278
+ DATABASE_URL: typeof globalThis !== 'undefined' && globalThis['DATABASE_URL'] || typeof process !== 'undefined' && process.env && process.env.DATABASE_URL || undefined
279
+ }
280
+ })
281
+
282
+ if (typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined) {
283
+ Debug.enable(typeof globalThis !== 'undefined' && globalThis['DEBUG'] || typeof process !== 'undefined' && process.env && process.env.DEBUG || undefined)
284
+ }
285
+
286
+ const PrismaClient = getPrismaClient(config)
287
+ exports.PrismaClient = PrismaClient
288
+ Object.assign(exports, Prisma)
289
+