@minimalcorp/tsunagi 0.1.4 → 0.1.6

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 (79) hide show
  1. package/.next/standalone/apps/web/.next/BUILD_ID +1 -1
  2. package/.next/standalone/apps/web/.next/build-manifest.json +3 -3
  3. package/.next/standalone/apps/web/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/apps/web/.next/server/app/_global-error.html +1 -1
  5. package/.next/standalone/apps/web/.next/server/app/_global-error.rsc +1 -1
  6. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
  13. package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +2 -2
  14. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  15. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  16. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  17. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  19. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  20. package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
  21. package/.next/standalone/apps/web/.next/server/app/index.rsc +3 -3
  22. package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  23. package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +3 -3
  24. package/.next/standalone/apps/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
  25. package/.next/standalone/apps/web/.next/server/app/index.segments/_index.segment.rsc +2 -2
  26. package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  27. package/.next/standalone/apps/web/.next/server/app/page.js.nft.json +1 -1
  28. package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  29. package/.next/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/apps/web/.next/server/app/settings.html +1 -1
  31. package/.next/standalone/apps/web/.next/server/app/settings.rsc +2 -2
  32. package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  33. package/.next/standalone/apps/web/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  34. package/.next/standalone/apps/web/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  35. package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  36. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  37. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  38. package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page.js.nft.json +1 -1
  39. package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0dg0i1g._.js → [root-of-the-server]__092mq4r._.js} +2 -2
  41. package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__12yece_._.js → [root-of-the-server]__0_p.e.m._.js} +15 -15
  42. package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0qw6wy3._.js → [root-of-the-server]__12vhk8e._.js} +14 -14
  43. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0g.cd6a._.js +1 -1
  44. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_tasks_[id]_page_tsx_0jshsm2._.js +2 -2
  45. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_07.c491._.js → node_modules_0-31hvv._.js} +1 -1
  46. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0t3_1om._.js → node_modules_00je7te._.js} +1 -1
  47. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_02~gcwc._.js → node_modules_08zu-qy._.js} +1 -1
  48. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0gpuu-x._.js → node_modules_0f5l4h2._.js} +1 -1
  49. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_12qdm6m._.js → node_modules_0m9gy6q._.js} +1 -1
  50. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0cphr_r._.js → node_modules_0o0.qfb._.js} +1 -1
  51. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0-4t5u4._.js → node_modules_0yo5dp5._.js} +1 -1
  52. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_055srxz._.js → node_modules_0zdgon0._.js} +1 -1
  53. package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +3 -3
  54. package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
  55. package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
  56. package/.next/standalone/apps/web/.next/server/server-reference-manifest.js +1 -1
  57. package/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
  58. package/.next/standalone/apps/web/.next/static/chunks/{0bulq7i0gcc02.js → 06h0.7cz1a2pw.js} +13 -13
  59. package/.next/standalone/apps/web/.next/static/chunks/0g.gfve6-xixo.css +4 -0
  60. package/.next/standalone/apps/web/.next/static/chunks/{0x7qsr~cuotr_.js → 0u1x2j.2fd983.js} +7 -7
  61. package/.next/standalone/apps/web/.next/static/chunks/0wd663tqvi2ts.js +3 -0
  62. package/.next/standalone/apps/web/.next/static/chunks/{0lvd32c5czli~.js → 0zi97fcrx3u_8.js} +12 -12
  63. package/dist/cli.js +75 -0
  64. package/dist/server/generated/prisma/commonInputTypes.d.ts +36 -36
  65. package/dist/server/generated/prisma/internal/class.js +2 -2
  66. package/dist/server/generated/prisma/models/Tab.d.ts +0 -7
  67. package/dist/server/generated/prisma/models/Task.d.ts +32 -25
  68. package/dist/server/lib/repositories/task.d.ts +4 -2
  69. package/dist/server/lib/repositories/task.js +8 -6
  70. package/dist/server/lib/services/task-service.js +27 -17
  71. package/dist/server/routes/tasks.js +2 -2
  72. package/package.json +2 -3
  73. package/prisma/migrations/20260413000000_make_task_order_non_nullable/migration.sql +47 -0
  74. package/prisma/schema.prisma +1 -1
  75. package/.next/standalone/apps/web/.next/static/chunks/0b8.3al6nvw3d.css +0 -4
  76. package/.next/standalone/apps/web/.next/static/chunks/12r3ashx0krmo.js +0 -3
  77. /package/.next/standalone/apps/web/.next/static/{WKHKhVSNPtIYKtVKANGvu → jO4RXUMamVXsFB7dG8arz}/_buildManifest.js +0 -0
  78. /package/.next/standalone/apps/web/.next/static/{WKHKhVSNPtIYKtVKANGvu → jO4RXUMamVXsFB7dG8arz}/_clientMiddlewareManifest.js +0 -0
  79. /package/.next/standalone/apps/web/.next/static/{WKHKhVSNPtIYKtVKANGvu → jO4RXUMamVXsFB7dG8arz}/_ssgManifest.js +0 -0
package/dist/cli.js CHANGED
@@ -36,6 +36,8 @@ const PACKAGE_ROOT = path.resolve(DIST_DIR, '..');
36
36
  const AUTO_MIGRATE_JS = path.join(DIST_DIR, 'auto-migrate.js');
37
37
  const FASTIFY_ENTRY_JS = path.join(DIST_DIR, 'server', 'index.js');
38
38
  const NEXT_STANDALONE_ENTRY = path.join(PACKAGE_ROOT, '.next', 'standalone', 'apps', 'web', 'server.js');
39
+ const DOCS_DIR = path.join(PACKAGE_ROOT, 'docs');
40
+ const DOCS_PORT = 2793;
39
41
  const isDebug = !!process.env.TSUNAGI_DEBUG;
40
42
  const isDocker = fs.existsSync('/.dockerenv');
41
43
  // ---------------------------------------------------------------------------
@@ -97,6 +99,74 @@ runAutoMigrate();
97
99
  const pluginResult = ensureCleanPluginState();
98
100
  console.log(pluginResult === 'clean' ? 'clean installed tsunagi plugin' : 'installed tsunagi plugin');
99
101
  // ---------------------------------------------------------------------------
102
+ // Docs static file server
103
+ // ---------------------------------------------------------------------------
104
+ const MIME_TYPES = {
105
+ '.html': 'text/html; charset=utf-8',
106
+ '.css': 'text/css',
107
+ '.js': 'application/javascript',
108
+ '.json': 'application/json',
109
+ '.png': 'image/png',
110
+ '.jpg': 'image/jpeg',
111
+ '.svg': 'image/svg+xml',
112
+ '.ico': 'image/x-icon',
113
+ '.wasm': 'application/wasm',
114
+ '.woff': 'font/woff',
115
+ '.woff2': 'font/woff2',
116
+ '.ttf': 'font/ttf',
117
+ '.txt': 'text/plain',
118
+ '.xml': 'application/xml',
119
+ };
120
+ function startDocsServer() {
121
+ if (!fs.existsSync(DOCS_DIR))
122
+ return null;
123
+ const serveFile = (filePath, res) => {
124
+ const ext = path.extname(filePath);
125
+ const contentType = MIME_TYPES[ext] || 'application/octet-stream';
126
+ fs.readFile(filePath, (err, data) => {
127
+ if (err) {
128
+ res.writeHead(404).end();
129
+ return;
130
+ }
131
+ res.writeHead(200, { 'Content-Type': contentType });
132
+ res.end(data);
133
+ });
134
+ };
135
+ const server = http.createServer((req, res) => {
136
+ let urlPath;
137
+ try {
138
+ urlPath = decodeURIComponent(new URL(req.url ?? '/', 'http://localhost').pathname);
139
+ }
140
+ catch {
141
+ res.writeHead(400).end();
142
+ return;
143
+ }
144
+ const filePath = path.resolve(DOCS_DIR, '.' + urlPath);
145
+ if (!filePath.startsWith(DOCS_DIR)) {
146
+ res.writeHead(403).end();
147
+ return;
148
+ }
149
+ fs.stat(filePath, (err, stat) => {
150
+ if (err) {
151
+ res.writeHead(404).end();
152
+ return;
153
+ }
154
+ if (stat.isDirectory()) {
155
+ if (!urlPath.endsWith('/')) {
156
+ res.writeHead(301, { Location: urlPath + '/' }).end();
157
+ return;
158
+ }
159
+ serveFile(path.join(filePath, 'index.html'), res);
160
+ }
161
+ else {
162
+ serveFile(filePath, res);
163
+ }
164
+ });
165
+ });
166
+ server.listen(DOCS_PORT, '0.0.0.0');
167
+ return server;
168
+ }
169
+ // ---------------------------------------------------------------------------
100
170
  // Phase 3: Verify build artifacts & spawn servers
101
171
  // ---------------------------------------------------------------------------
102
172
  function verifyArtifact(p, label) {
@@ -120,6 +190,7 @@ const nextChild = spawn(process.execPath, [NEXT_STANDALONE_ENTRY], {
120
190
  cwd: path.dirname(NEXT_STANDALONE_ENTRY),
121
191
  env: { ...process.env, PORT, NODE_ENV: 'production', HOSTNAME: '0.0.0.0' },
122
192
  });
193
+ const docsServer = startDocsServer();
123
194
  // ---------------------------------------------------------------------------
124
195
  // Child process output forwarding
125
196
  // ---------------------------------------------------------------------------
@@ -171,6 +242,9 @@ Promise.all([pollHealth(SERVER_PORT), pollHealth(Number(PORT))]).then(() => {
171
242
  spawn(cmd, [url], { stdio: 'ignore', detached: true }).unref();
172
243
  }
173
244
  console.log(`Open ${url}`);
245
+ if (docsServer) {
246
+ console.log(`Docs http://localhost:${DOCS_PORT}`);
247
+ }
174
248
  });
175
249
  // ---------------------------------------------------------------------------
176
250
  // Shutdown
@@ -191,6 +265,7 @@ function shutdown(code) {
191
265
  }
192
266
  }
193
267
  }
268
+ docsServer?.close();
194
269
  cleanupPluginState();
195
270
  process.exit(code);
196
271
  }
@@ -74,6 +74,16 @@ export type IntNullableFilter<$PrismaModel = never> = {
74
74
  gte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
75
75
  not?: Prisma.NestedIntNullableFilter<$PrismaModel> | number | null;
76
76
  };
77
+ export type IntFilter<$PrismaModel = never> = {
78
+ equals?: number | Prisma.IntFieldRefInput<$PrismaModel>;
79
+ in?: number[];
80
+ notIn?: number[];
81
+ lt?: number | Prisma.IntFieldRefInput<$PrismaModel>;
82
+ lte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
83
+ gt?: number | Prisma.IntFieldRefInput<$PrismaModel>;
84
+ gte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
85
+ not?: Prisma.NestedIntFilter<$PrismaModel> | number;
86
+ };
77
87
  export type DateTimeNullableFilter<$PrismaModel = never> = {
78
88
  equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null;
79
89
  in?: Date[] | string[] | null;
@@ -119,29 +129,6 @@ export type IntNullableWithAggregatesFilter<$PrismaModel = never> = {
119
129
  _min?: Prisma.NestedIntNullableFilter<$PrismaModel>;
120
130
  _max?: Prisma.NestedIntNullableFilter<$PrismaModel>;
121
131
  };
122
- export type DateTimeNullableWithAggregatesFilter<$PrismaModel = never> = {
123
- equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null;
124
- in?: Date[] | string[] | null;
125
- notIn?: Date[] | string[] | null;
126
- lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
127
- lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
128
- gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
129
- gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
130
- not?: Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null;
131
- _count?: Prisma.NestedIntNullableFilter<$PrismaModel>;
132
- _min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>;
133
- _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>;
134
- };
135
- export type IntFilter<$PrismaModel = never> = {
136
- equals?: number | Prisma.IntFieldRefInput<$PrismaModel>;
137
- in?: number[];
138
- notIn?: number[];
139
- lt?: number | Prisma.IntFieldRefInput<$PrismaModel>;
140
- lte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
141
- gt?: number | Prisma.IntFieldRefInput<$PrismaModel>;
142
- gte?: number | Prisma.IntFieldRefInput<$PrismaModel>;
143
- not?: Prisma.NestedIntFilter<$PrismaModel> | number;
144
- };
145
132
  export type IntWithAggregatesFilter<$PrismaModel = never> = {
146
133
  equals?: number | Prisma.IntFieldRefInput<$PrismaModel>;
147
134
  in?: number[];
@@ -157,6 +144,19 @@ export type IntWithAggregatesFilter<$PrismaModel = never> = {
157
144
  _min?: Prisma.NestedIntFilter<$PrismaModel>;
158
145
  _max?: Prisma.NestedIntFilter<$PrismaModel>;
159
146
  };
147
+ export type DateTimeNullableWithAggregatesFilter<$PrismaModel = never> = {
148
+ equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null;
149
+ in?: Date[] | string[] | null;
150
+ notIn?: Date[] | string[] | null;
151
+ lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
152
+ lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
153
+ gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
154
+ gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
155
+ not?: Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null;
156
+ _count?: Prisma.NestedIntNullableFilter<$PrismaModel>;
157
+ _min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>;
158
+ _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>;
159
+ };
160
160
  export type BoolFilter<$PrismaModel = never> = {
161
161
  equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel>;
162
162
  not?: Prisma.NestedBoolFilter<$PrismaModel> | boolean;
@@ -304,19 +304,6 @@ export type NestedFloatNullableFilter<$PrismaModel = never> = {
304
304
  gte?: number | Prisma.FloatFieldRefInput<$PrismaModel>;
305
305
  not?: Prisma.NestedFloatNullableFilter<$PrismaModel> | number | null;
306
306
  };
307
- export type NestedDateTimeNullableWithAggregatesFilter<$PrismaModel = never> = {
308
- equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null;
309
- in?: Date[] | string[] | null;
310
- notIn?: Date[] | string[] | null;
311
- lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
312
- lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
313
- gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
314
- gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
315
- not?: Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null;
316
- _count?: Prisma.NestedIntNullableFilter<$PrismaModel>;
317
- _min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>;
318
- _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>;
319
- };
320
307
  export type NestedIntWithAggregatesFilter<$PrismaModel = never> = {
321
308
  equals?: number | Prisma.IntFieldRefInput<$PrismaModel>;
322
309
  in?: number[];
@@ -342,6 +329,19 @@ export type NestedFloatFilter<$PrismaModel = never> = {
342
329
  gte?: number | Prisma.FloatFieldRefInput<$PrismaModel>;
343
330
  not?: Prisma.NestedFloatFilter<$PrismaModel> | number;
344
331
  };
332
+ export type NestedDateTimeNullableWithAggregatesFilter<$PrismaModel = never> = {
333
+ equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null;
334
+ in?: Date[] | string[] | null;
335
+ notIn?: Date[] | string[] | null;
336
+ lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
337
+ lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
338
+ gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
339
+ gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>;
340
+ not?: Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null;
341
+ _count?: Prisma.NestedIntNullableFilter<$PrismaModel>;
342
+ _min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>;
343
+ _max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>;
344
+ };
345
345
  export type NestedBoolFilter<$PrismaModel = never> = {
346
346
  equals?: boolean | Prisma.BooleanFieldRefInput<$PrismaModel>;
347
347
  not?: Prisma.NestedBoolFilter<$PrismaModel> | boolean;
@@ -15,7 +15,7 @@ const config = {
15
15
  "clientVersion": "7.6.0",
16
16
  "engineVersion": "75cbdc1eb7150937890ad5465d861175c6624711",
17
17
  "activeProvider": "sqlite",
18
- "inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../src/generated/prisma\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\n// Repository\nmodel Repository {\n id String @id @default(uuid())\n owner String\n repo String\n cloneUrl String @map(\"clone_url\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n\n tasks Task[]\n environmentVars EnvironmentVariable[]\n\n @@unique([owner, repo])\n @@map(\"repositories\")\n}\n\n// Task\nmodel Task {\n id String @id @default(uuid())\n title String\n description String\n status String // 'backlog' | 'planning' | 'coding' | 'reviewing' | 'done'\n owner String\n repo String\n branch String\n baseBranch String @map(\"base_branch\") // rebase/merge判定用のベースブランチ\n repoId String @map(\"repo_id\")\n worktreeStatus String @map(\"worktree_status\") // 'pending' | 'created' | 'error'\n\n // Pull Request情報\n pullRequestUrl String? @map(\"pull_request_url\")\n\n effort Int?\n order Int?\n deletedAt DateTime? @map(\"deleted_at\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n repository Repository @relation(fields: [repoId], references: [id], onDelete: Cascade)\n tabs Tab[]\n\n @@index([owner, repo])\n @@index([status])\n @@index([deletedAt])\n @@map(\"tasks\")\n}\n\n// Tab\nmodel Tab {\n tabId String @id @map(\"tab_id\")\n taskId String @map(\"task_id\")\n order Int // タブ表示用の連番\n status String // 'idle' | 'running' | 'success' | 'error'\n createdAt DateTime @default(now()) @map(\"created_at\")\n startedAt DateTime @map(\"started_at\")\n completedAt DateTime? @map(\"completed_at\")\n todos String? @default(\"[]\") // JSON: Todo[]\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n task Task @relation(fields: [taskId], references: [id], onDelete: Cascade)\n\n @@index([taskId])\n @@map(\"tabs\")\n}\n\n// PlannerTab - プランナーClaude用のタブ(タスクに紐づかない)\nmodel PlannerTab {\n tabId String @id @map(\"tab_id\")\n order Int\n status String // 'idle' | 'running' | 'success' | 'error'\n createdAt DateTime @default(now()) @map(\"created_at\")\n startedAt DateTime @map(\"started_at\")\n completedAt DateTime? @map(\"completed_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n @@map(\"planner_tabs\")\n}\n\n// EnvironmentVariable\nmodel EnvironmentVariable {\n id String @id @default(uuid())\n key String\n value String\n scope String // 'global' | 'owner' | 'repo' - 階層構造の優先順位制御\n owner String?\n repo String?\n enabled Boolean @default(true)\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n repository Repository? @relation(fields: [owner, repo], references: [owner, repo], onDelete: Cascade)\n\n @@unique([key, scope, owner, repo])\n @@index([scope, owner, repo])\n @@map(\"environment_variables\")\n}\n",
18
+ "inlineSchema": "generator client {\n provider = \"prisma-client\"\n output = \"../src/generated/prisma\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\n// Repository\nmodel Repository {\n id String @id @default(uuid())\n owner String\n repo String\n cloneUrl String @map(\"clone_url\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n\n tasks Task[]\n environmentVars EnvironmentVariable[]\n\n @@unique([owner, repo])\n @@map(\"repositories\")\n}\n\n// Task\nmodel Task {\n id String @id @default(uuid())\n title String\n description String\n status String // 'backlog' | 'planning' | 'coding' | 'reviewing' | 'done'\n owner String\n repo String\n branch String\n baseBranch String @map(\"base_branch\") // rebase/merge判定用のベースブランチ\n repoId String @map(\"repo_id\")\n worktreeStatus String @map(\"worktree_status\") // 'pending' | 'created' | 'error'\n\n // Pull Request情報\n pullRequestUrl String? @map(\"pull_request_url\")\n\n effort Int?\n order Int @default(0)\n deletedAt DateTime? @map(\"deleted_at\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n repository Repository @relation(fields: [repoId], references: [id], onDelete: Cascade)\n tabs Tab[]\n\n @@index([owner, repo])\n @@index([status])\n @@index([deletedAt])\n @@map(\"tasks\")\n}\n\n// Tab\nmodel Tab {\n tabId String @id @map(\"tab_id\")\n taskId String @map(\"task_id\")\n order Int // タブ表示用の連番\n status String // 'idle' | 'running' | 'success' | 'error'\n createdAt DateTime @default(now()) @map(\"created_at\")\n startedAt DateTime @map(\"started_at\")\n completedAt DateTime? @map(\"completed_at\")\n todos String? @default(\"[]\") // JSON: Todo[]\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n task Task @relation(fields: [taskId], references: [id], onDelete: Cascade)\n\n @@index([taskId])\n @@map(\"tabs\")\n}\n\n// PlannerTab - プランナーClaude用のタブ(タスクに紐づかない)\nmodel PlannerTab {\n tabId String @id @map(\"tab_id\")\n order Int\n status String // 'idle' | 'running' | 'success' | 'error'\n createdAt DateTime @default(now()) @map(\"created_at\")\n startedAt DateTime @map(\"started_at\")\n completedAt DateTime? @map(\"completed_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n @@map(\"planner_tabs\")\n}\n\n// EnvironmentVariable\nmodel EnvironmentVariable {\n id String @id @default(uuid())\n key String\n value String\n scope String // 'global' | 'owner' | 'repo' - 階層構造の優先順位制御\n owner String?\n repo String?\n enabled Boolean @default(true)\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n repository Repository? @relation(fields: [owner, repo], references: [owner, repo], onDelete: Cascade)\n\n @@unique([key, scope, owner, repo])\n @@index([scope, owner, repo])\n @@map(\"environment_variables\")\n}\n",
19
19
  "runtimeDataModel": {
20
20
  "models": {},
21
21
  "enums": {},
@@ -29,7 +29,7 @@ const config = {
29
29
  config.runtimeDataModel = JSON.parse("{\"models\":{\"Repository\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"owner\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"repo\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"cloneUrl\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"clone_url\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"tasks\",\"kind\":\"object\",\"type\":\"Task\",\"relationName\":\"RepositoryToTask\"},{\"name\":\"environmentVars\",\"kind\":\"object\",\"type\":\"EnvironmentVariable\",\"relationName\":\"EnvironmentVariableToRepository\"}],\"dbName\":\"repositories\"},\"Task\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"title\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"description\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"owner\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"repo\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"branch\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"baseBranch\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"base_branch\"},{\"name\":\"repoId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"repo_id\"},{\"name\":\"worktreeStatus\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"worktree_status\"},{\"name\":\"pullRequestUrl\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"pull_request_url\"},{\"name\":\"effort\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"order\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"deletedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"deleted_at\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"repository\",\"kind\":\"object\",\"type\":\"Repository\",\"relationName\":\"RepositoryToTask\"},{\"name\":\"tabs\",\"kind\":\"object\",\"type\":\"Tab\",\"relationName\":\"TabToTask\"}],\"dbName\":\"tasks\"},\"Tab\":{\"fields\":[{\"name\":\"tabId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"tab_id\"},{\"name\":\"taskId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"task_id\"},{\"name\":\"order\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"started_at\"},{\"name\":\"completedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"completed_at\"},{\"name\":\"todos\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"task\",\"kind\":\"object\",\"type\":\"Task\",\"relationName\":\"TabToTask\"}],\"dbName\":\"tabs\"},\"PlannerTab\":{\"fields\":[{\"name\":\"tabId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"tab_id\"},{\"name\":\"order\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"started_at\"},{\"name\":\"completedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"completed_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"}],\"dbName\":\"planner_tabs\"},\"EnvironmentVariable\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"owner\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"repo\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"enabled\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"repository\",\"kind\":\"object\",\"type\":\"Repository\",\"relationName\":\"EnvironmentVariableToRepository\"}],\"dbName\":\"environment_variables\"}},\"enums\":{},\"types\":{}}");
30
30
  config.parameterizationSchema = {
31
31
  strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"repository\",\"task\",\"tabs\",\"_count\",\"tasks\",\"environmentVars\",\"Repository.findUnique\",\"Repository.findUniqueOrThrow\",\"Repository.findFirst\",\"Repository.findFirstOrThrow\",\"Repository.findMany\",\"data\",\"Repository.createOne\",\"Repository.createMany\",\"Repository.createManyAndReturn\",\"Repository.updateOne\",\"Repository.updateMany\",\"Repository.updateManyAndReturn\",\"create\",\"update\",\"Repository.upsertOne\",\"Repository.deleteOne\",\"Repository.deleteMany\",\"having\",\"_min\",\"_max\",\"Repository.groupBy\",\"Repository.aggregate\",\"Task.findUnique\",\"Task.findUniqueOrThrow\",\"Task.findFirst\",\"Task.findFirstOrThrow\",\"Task.findMany\",\"Task.createOne\",\"Task.createMany\",\"Task.createManyAndReturn\",\"Task.updateOne\",\"Task.updateMany\",\"Task.updateManyAndReturn\",\"Task.upsertOne\",\"Task.deleteOne\",\"Task.deleteMany\",\"_avg\",\"_sum\",\"Task.groupBy\",\"Task.aggregate\",\"Tab.findUnique\",\"Tab.findUniqueOrThrow\",\"Tab.findFirst\",\"Tab.findFirstOrThrow\",\"Tab.findMany\",\"Tab.createOne\",\"Tab.createMany\",\"Tab.createManyAndReturn\",\"Tab.updateOne\",\"Tab.updateMany\",\"Tab.updateManyAndReturn\",\"Tab.upsertOne\",\"Tab.deleteOne\",\"Tab.deleteMany\",\"Tab.groupBy\",\"Tab.aggregate\",\"PlannerTab.findUnique\",\"PlannerTab.findUniqueOrThrow\",\"PlannerTab.findFirst\",\"PlannerTab.findFirstOrThrow\",\"PlannerTab.findMany\",\"PlannerTab.createOne\",\"PlannerTab.createMany\",\"PlannerTab.createManyAndReturn\",\"PlannerTab.updateOne\",\"PlannerTab.updateMany\",\"PlannerTab.updateManyAndReturn\",\"PlannerTab.upsertOne\",\"PlannerTab.deleteOne\",\"PlannerTab.deleteMany\",\"PlannerTab.groupBy\",\"PlannerTab.aggregate\",\"EnvironmentVariable.findUnique\",\"EnvironmentVariable.findUniqueOrThrow\",\"EnvironmentVariable.findFirst\",\"EnvironmentVariable.findFirstOrThrow\",\"EnvironmentVariable.findMany\",\"EnvironmentVariable.createOne\",\"EnvironmentVariable.createMany\",\"EnvironmentVariable.createManyAndReturn\",\"EnvironmentVariable.updateOne\",\"EnvironmentVariable.updateMany\",\"EnvironmentVariable.updateManyAndReturn\",\"EnvironmentVariable.upsertOne\",\"EnvironmentVariable.deleteOne\",\"EnvironmentVariable.deleteMany\",\"EnvironmentVariable.groupBy\",\"EnvironmentVariable.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"key\",\"value\",\"scope\",\"owner\",\"repo\",\"enabled\",\"createdAt\",\"updatedAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"tabId\",\"order\",\"status\",\"startedAt\",\"completedAt\",\"taskId\",\"todos\",\"title\",\"description\",\"branch\",\"baseBranch\",\"repoId\",\"worktreeStatus\",\"pullRequestUrl\",\"effort\",\"deletedAt\",\"cloneUrl\",\"every\",\"some\",\"none\",\"key_scope_owner_repo\",\"owner_repo\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"),
32
- graph: "mgIxUAsHAACpAQAgCAAAqgEAIGEAAKgBADBiAAAQABBjAACoAQAwZAEAAAABaAEAngEAIWkBAJ4BACFrQACgAQAhiAEBAJ4BACGNAQAAtgEAIAEAAAABACAVAwAAtAEAIAUAALUBACBhAACyAQAwYgAAAwAQYwAAsgEAMGQBAJ4BACFoAQCeAQAhaQEAngEAIWtAAKABACFsQACgAQAheQIAswEAIXoBAJ4BACF_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_AQAAAAGAAQEAAAABgQEBAAAAAYIBAQAAAAGDAQEAAAABhAEBAAAAAYUBAQAAAAGGAQIAAAABhwFAAAAAAQEOAAAxADABDgAAMQAwEgMAANUBACAFAADWAQAgZAEAuwEAIWgBALsBACFpAQC7AQAha0AAvQEAIWxAAL0BACF5AgDUAQAhegEAuwEAIX8BALsBACGAAQEAuwEAIYEBAQC7AQAhggEBALsBACGDAQEAuwEAIYQBAQC7AQAhhQEBAL4BACGGAQIA1AEAIYcBQADHAQAhAgAAAAUAIA4AADQAIBBkAQC7AQAhaAEAuwEAIWkBALsBACFrQAC9AQAhbEAAvQEAIXkCANQBACF6AQC7AQAhfwEAuwEAIYABAQC7AQAhgQEBALsBACGCAQEAuwEAIYMBAQC7AQAhhAEBALsBACGFAQEAvgEAIYYBAgDUAQAhhwFAAMcBACECAAAAAwAgDgAANgAgAgAAAAMAIA4AADYAIAMAAAAFACAVAAAvACAWAAA0ACABAAAABQAgAQAAAAMAIAkGAADPAQAgGwAA0gEAIBwAANEBACAtAADQAQAgLgAA0wEAIHkAALcBACCFAQAAtwEAIIYBAAC3AQAghwEAALcBACATYQAAowEAMGIAAD0AEGMAAKMBADBkAQCIAQAhaAEAiAEAIWkBAIgBACFrQACLAQAhbEAAiwEAIXkCAKQBACF6AQCIAQAhfwEAiAEAIYABAQCIAQAhgQEBAIgBACGCAQEAiAEAIYMBAQCIAQAhhAEBAIgBACGFAQEAiQEAIYYBAgCkAQAhhwFAAJgBACEDAAAAAwAgAQAAPAAwGgAAPQAgAwAAAAMAIAEAAAQAMAIAAAUAIAEAAAAJACABAAAACQAgAwAAAAcAIAEAAAgAMAIAAAkAIAMAAAAHACABAAAIADACAAAJACADAAAABwAgAQAACAAwAgAACQAgCgQAAM4BACBrQAAAAAFsQAAAAAF4AQAAAAF5AgAAAAF6AQAAAAF7QAAAAAF8QAAAAAF9AQAAAAF-AQAAAAEBDgAARQAgCWtAAAAAAWxAAAAAAXgBAAAAAXkCAAAAAXoBAAAAAXtAAAAAAXxAAAAAAX0BAAAAAX4BAAAAAQEOAABHADABDgAARwAwCgQAAM0BACBrQAC9AQAhbEAAvQEAIXgBALsBACF5AgDGAQAhegEAuwEAIXtAAL0BACF8QADHAQAhfQEAuwEAIX4BAL4BACECAAAACQAgDgAASgAgCWtAAL0BACFsQAC9AQAheAEAuwEAIXkCAMYBACF6AQC7AQAhe0AAvQEAIXxAAMcBACF9AQC7AQAhfgEAvgEAIQIAAAAHACAOAABMACACAAAABwAgDgAATAAgAwAAAAkAIBUAAEUAIBYAAEoAIAEAAAAJACABAAAABwAgBwYAAMgBACAbAADLAQAgHAAAygEAIC0AAMkBACAuAADMAQAgfAAAtwEAIH4AALcBACAMYQAAogEAMGIAAFMAEGMAAKIBADBrQACLAQAhbEAAiwEAIXgBAIgBACF5AgCXAQAhegEAiAEAIXtAAIsBACF8QACYAQAhfQEAiAEAIX4BAIkBACEDAAAABwAgAQAAUgAwGgAAUwAgAwAAAAcAIAEAAAgAMAIAAAkAIAphAACdAQAwYgAAWQAQYwAAnQEAMGtAAKABACFsQACgAQAheAEAAAABeQIAnwEAIXoBAJ4BACF7QACgAQAhfEAAoQEAIQEAAABWACABAAAAVgAgCmEAAJ0BADBiAABZABBjAACdAQAwa0AAoAEAIWxAAKABACF4AQCeAQAheQIAnwEAIXoBAJ4BACF7QACgAQAhfEAAoQEAIQF8AAC3AQAgAwAAAFkAIAEAAFoAMAIAAFYAIAMAAABZACABAABaADACAABWACADAAAAWQAgAQAAWgAwAgAAVgAgB2tAAAAAAWxAAAAAAXgBAAAAAXkCAAAAAXoBAAAAAXtAAAAAAXxAAAAAAQEOAABeACAHa0AAAAABbEAAAAABeAEAAAABeQIAAAABegEAAAABe0AAAAABfEAAAAABAQ4AAGAAMAEOAABgADAHa0AAvQEAIWxAAL0BACF4AQC7AQAheQIAxgEAIXoBALsBACF7QAC9AQAhfEAAxwEAIQIAAABWACAOAABjACAHa0AAvQEAIWxAAL0BACF4AQC7AQAheQIAxgEAIXoBALsBACF7QAC9AQAhfEAAxwEAIQIAAABZACAOAABlACACAAAAWQAgDgAAZQAgAwAAAFYAIBUAAF4AIBYAAGMAIAEAAABWACABAAAAWQAgBgYAAMEBACAbAADEAQAgHAAAwwEAIC0AAMIBACAuAADFAQAgfAAAtwEAIAphAACWAQAwYgAAbAAQYwAAlgEAMGtAAIsBACFsQACLAQAheAEAiAEAIXkCAJcBACF6AQCIAQAhe0AAiwEAIXxAAJgBACEDAAAAWQAgAQAAawAwGgAAbAAgAwAAAFkAIAEAAFoAMAIAAFYAIAEAAAAOACABAAAADgAgAwAAAAwAIAEAAA0AMAIAAA4AIAMAAAAMACABAAANADACAAAOACADAAAADAAgAQAADQAwAgAADgAgCgMAAMABACBkAQAAAAFlAQAAAAFmAQAAAAFnAQAAAAFoAQAAAAFpAQAAAAFqIAAAAAFrQAAAAAFsQAAAAAEBDgAAdAAgCWQBAAAAAWUBAAAAAWYBAAAAAWcBAAAAAWgBAAAAAWkBAAAAAWogAAAAAWtAAAAAAWxAAAAAAQEOAAB2ADABDgAAdgAwAQAAABAAIAoDAAC_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-AEAMJIBAAD5AQAgkwEAAPoBADCUAQAA-gEAMJUBAAD6AQAwlgEAAPoBADCXAQAA_AEAMJgBAAD9AQAwCxUAAOoBADAWAADvAQAwkAEAAOsBADCRAQAA7AEAMJIBAADtAQAgkwEAAO4BADCUAQAA7gEAMJUBAADuAQAwlgEAAO4BADCXAQAA8AEAMJgBAADxAQAwB2QBAAAAAWUBAAAAAWYBAAAAAWcBAAAAAWogAAAAAWtAAAAAAWxAAAAAAQIAAAAOACAVAAD1AQAgAwAAAA4AIBUAAPUBACAWAAD0AQAgAQ4AAIoCADAOAwAArwEAIGEAAKwBADBiAAAMABBjAACsAQAwZAEAAAABZQEAngEAIWYBAJ4BACFnAQCeAQAhaAEArQEAIWkBAK0BACFqIACuAQAha0AAoAEAIWxAAKABACGMAQAAqwEAIAIAAAAOACAOAAD0AQAgAgAAAPIBACAOAADzAQAgDGEAAPEBADBiAADyAQAQYwAA8QEAMGQBAJ4BACFlAQCeAQAhZgEAngEAIWcBAJ4BACFoAQCtAQAhaQEArQEAIWogAK4BACFrQACgAQAhbEAAoAEAIQxhAADxAQAwYgAA8gEAEGMAAPEBADBkAQCeAQAhZQEAngEAIWYBAJ4BACFnAQCeAQAhaAEArQEAIWkBAK0BACFqIACuAQAha0AAoAEAIWxAAKABACEHZAEAuwEAIWUBALsBACFmAQC7AQAhZwEAuwEAIWogALwBACFrQAC9AQAhbEAAvQEAIQdkAQC7AQAhZQEAuwEAIWYBALsBACFnAQC7AQAhaiAAvAEAIWtAAL0BACFsQAC9AQAhB2QBAAAAAWUBAAAAAWYBAAAAAWcBAAAAAWogAAAAAWtAAAAAAWxAAAAAARAFAADkAQAgZAEAAAABaAEAAAABaQEAAAABa0AAAAABbEAAAAABeQIAAAABegEAAAABfwEAAAABgAEBAAAAAYEBAQAAAAGCAQEAAAABhAEBAAAAAYUBAQAAAAGGAQIAAAABhwFAAAAAAQIAAAAFACAVAACBAgAgAwAAAAUAIBUAAIECACAWAACAAgAgAQ4AAIkCADAVAwAAtAEAIAUAALUBACBhAACyAQAwYgAAAwAQYwAAsgEAMGQBAAAAAWgBAJ4BACFpAQCeAQAha0AAoAEAIWxAAKABACF5AgCzAQAhegEAngEAIX8BAJ4BACGAAQEAngEAIYEBAQCeAQAhggEBAJ4BACGDAQEAngEAIYQBAQCeAQAhhQEBAK0BACGGAQIAswEAIYcBQAChAQAhAgAAAAUAIA4AAIACACACAAAA_gEAIA4AAP8BACATYQAA_QEAMGIAAP4BABBjAAD9AQAwZAEAngEAIWgBAJ4BACFpAQCeAQAha0AAoAEAIWxAAKABACF5AgCzAQAhegEAngEAIX8BAJ4BACGAAQEAngEAIYEBAQCeAQAhggEBAJ4BACGDAQEAngEAIYQBAQCeAQAhhQEBAK0BACGGAQIAswEAIYcBQAChAQAhE2EAAP0BADBiAAD-AQAQYwAA_QEAMGQBAJ4BACFoAQCeAQAhaQEAngEAIWtAAKABACFsQACgAQAheQIAswEAIXoBAJ4BACF_AQCeAQAhgAEBAJ4BACGBAQEAngEAIYIBAQCeAQAhgwEBAJ4BACGEAQEAngEAIYUBAQCtAQAhhgECALMBACGHAUAAoQEAIQ9kAQC7AQAhaAEAuwEAIWkBALsBACFrQAC9AQAhbEAAvQEAIXkCANQBACF6AQC7AQAhfwEAuwEAIYABAQC7AQAhgQEBALsBACGCAQEAuwEAIYQBAQC7AQAhhQEBAL4BACGGAQIA1AEAIYcBQADHAQAhEAUAANYBACBkAQC7AQAhaAEAuwEAIWkBALsBACFrQAC9AQAhbEAAvQEAIXkCANQBACF6AQC7AQAhfwEAuwEAIYABAQC7AQAhgQEBALsBACGCAQEAuwEAIYQBAQC7AQAhhQEBAL4BACGGAQIA1AEAIYcBQADHAQAhEAUAAOQBACBkAQAAAAFoAQAAAAFpAQAAAAFrQAAAAAFsQAAAAAF5AgAAAAF6AQAAAAF_AQAAAAGAAQEAAAABgQEBAAAAAYIBAQAAAAGEAQEAAAABhQEBAAAAAYYBAgAAAAGHAUAAAAABBBUAAPYBADCQAQAA9wEAMJIBAAD5AQAglgEAAPoBADAEFQAA6gEAMJABAADrAQAwkgEAAO0BACCWAQAA7gEAMAAAAgcAAIQCACAIAACFAgAgBgMAAIYCACAFAACIAgAgeQAAtwEAIIUBAAC3AQAghgEAALcBACCHAQAAtwEAIAAPZAEAAAABaAEAAAABaQEAAAABa0AAAAABbEAAAAABeQIAAAABegEAAAABfwEAAAABgAEBAAAAAYEBAQAAAAGCAQEAAAABhAEBAAAAAYUBAQAAAAGGAQIAAAABhwFAAAAAAQdkAQAAAAFlAQAAAAFmAQAAAAFnAQAAAAFqIAAAAAFrQAAAAAFsQAAAAAEGCAAAgwIAIGQBAAAAAWgBAAAAAWkBAAAAAWtAAAAAAYgBAQAAAAECAAAAAQAgFQAAiwIAIAhrQAAAAAFsQAAAAAF4AQAAAAF5AgAAAAF6AQAAAAF7QAAAAAF8QAAAAAF-AQAAAAEDAAAAEAAgFQAAiwIAIBYAAJACACAIAAAAEAAgCAAA6QEAIA4AAJACACBkAQC7AQAhaAEAuwEAIWkBALsBACFrQAC9AQAhiAEBALsBACEGCAAA6QEAIGQBALsBACFoAQC7AQAhaQEAuwEAIWtAAL0BACGIAQEAuwEAIREDAADjAQAgZAEAAAABaAEAAAABaQEAAAABa0AAAAABbEAAAAABeQIAAAABegEAAAABfwEAAAABgAEBAAAAAYEBAQAAAAGCAQEAAAABgwEBAAAAAYQBAQAAAAGFAQEAAAABhgECAAAAAYcBQAAAAAECAAAABQAgFQAAkQIAIAMAAAADACAVAACRAgAgFgAAlQIAIBMAAAADACADAADVAQAgDgAAlQIAIGQBALsBACFoAQC7AQAhaQEAuwEAIWtAAL0BACFsQAC9AQAheQIA1AEAIXoBALsBACF_AQC7AQAhgAEBALsBACGBAQEAuwEAIYIBAQC7AQAhgwEBALsBACGEAQEAuwEAIYUBAQC-AQAhhgECANQBACGHAUAAxwEAIREDAADVAQAgZAEAuwEAIWgBALsBACFpAQC7AQAha0AAvQEAIWxAAL0BACF5AgDUAQAhegEAuwEAIX8BALsBACGAAQEAuwEAIYEBAQC7AQAhggEBALsBACGDAQEAuwEAIYQBAQC7AQAhhQEBAL4BACGGAQIA1AEAIYcBQADHAQAhBgcAAIICACBkAQAAAAFoAQAAAAFpAQAAAAFrQAAAAAGIAQEAAAABAgAAAAEAIBUAAJYCACADAAAAEAAgFQAAlgIAIBYAAJoCACAIAAAAEAAgBwAA6AEAIA4AAJoCACBkAQC7AQAhaAEAuwEAIWkBALsBACFrQAC9AQAhiAEBALsBACEGBwAA6AEAIGQBALsBACFoAQC7AQAhaQEAuwEAIWtAAL0BACGIAQEAuwEAIQMGAAYHBgIIDwUDAwABBQoDBgAEAQQAAgEFCwABAxEBAgcSAAgTAAAAAAMGAAsbAAwcAA0AAAADBgALGwAMHAANAQMAAQEDAAEFBgASGwAVHAAWLQATLgAUAAAAAAAFBgASGwAVHAAWLQATLgAUAQQAAgEEAAIFBgAbGwAeHAAfLQAcLgAdAAAAAAAFBgAbGwAeHAAfLQAcLgAdAAAABQYAJRsAKBwAKS0AJi4AJwAAAAAABQYAJRsAKBwAKS0AJi4AJwEDeQEBA38BAwYALhsALxwAMAAAAAMGAC4bAC8cADAJAgEKFAELFgEMFwENGAEPGgEQHAcRHQgSHwETIQcUIgkXIwEYJAEZJQcdKAoeKQ4fKgIgKwIhLAIiLQIjLgIkMAIlMgcmMw8nNQIoNwcpOBAqOQIrOgIsOwcvPhEwPxcxQAMyQQMzQgM0QwM1RAM2RgM3SAc4SRg5SwM6TQc7Thk8TwM9UAM-UQc_VBpAVSBBVyFCWCFDWyFEXCFFXSFGXyFHYQdIYiJJZCFKZgdLZyNMaCFNaSFOagdPbSRQbipRbwVScAVTcQVUcgVVcwVWdQVXdwdYeCtZewVafQdbfixcgAEFXYEBBV6CAQdfhQEtYIYBMQ"
32
+ graph: "mgIxUAsHAACpAQAgCAAAqgEAIGEAAKgBADBiAAAQABBjAACoAQAwZAEAAAABaAEAngEAIWkBAJ4BACFrQACgAQAhiAEBAJ4BACGNAQAAtgEAIAEAAAABACAVAwAAtAEAIAUAALUBACBhAACyAQAwYgAAAwAQYwAAsgEAMGQBAJ4BACFoAQCeAQAhaQEAngEAIWtAAKABACFsQACgAQAheQIAnwEAIXoBAJ4BACF_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_AQC7AQAhgAEBALsBACGBAQEAuwEAIYIBAQC7AQAhgwEBALsBACGEAQEAuwEAIYUBAQC-AQAhhgECANQBACGHAUAAxwEAIQIAAAADACAOAAA2ACACAAAAAwAgDgAANgAgAwAAAAUAIBUAAC8AIBYAADQAIAEAAAAFACABAAAAAwAgCAYAAM8BACAbAADSAQAgHAAA0QEAIC0AANABACAuAADTAQAghQEAALcBACCGAQAAtwEAIIcBAAC3AQAgE2EAAKMBADBiAAA9ABBjAACjAQAwZAEAiAEAIWgBAIgBACFpAQCIAQAha0AAiwEAIWxAAIsBACF5AgCXAQAhegEAiAEAIX8BAIgBACGAAQEAiAEAIYEBAQCIAQAhggEBAIgBACGDAQEAiAEAIYQBAQCIAQAhhQEBAIkBACGGAQIApAEAIYcBQACYAQAhAwAAAAMAIAEAADwAMBoAAD0AIAMAAAADACABAAAEADACAAAFACABAAAACQAgAQAAAAkAIAMAAAAHACABAAAIADACAAAJACADAAAABwAgAQAACAAwAgAACQAgAwAAAAcAIAEAAAgAMAIAAAkAIAoEAADOAQAga0AAAAABbEAAAAABeAEAAAABeQIAAAABegEAAAABe0AAAAABfEAAAAABfQEAAAABfgEAAAABAQ4AAEUAIAlrQAAAAAFsQAAAAAF4AQAAAAF5AgAAAAF6AQAAAAF7QAAAAAF8QAAAAAF9AQAAAAF-AQAAAAEBDgAARwAwAQ4AAEcAMAoEAADNAQAga0AAvQEAIWxAAL0BACF4AQC7AQAheQIAxgEAIXoBALsBACF7QAC9AQAhfEAAxwEAIX0BALsBACF-AQC-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_AQCeAQAhgAEBAJ4BACGBAQEAngEAIYIBAQCeAQAhgwEBAJ4BACGEAQEAngEAIYUBAQCtAQAhhgECALMBACGHAUAAoQEAIQhtAgAAAAFuAgAAAAVvAgAAAAVwAgAAAAFxAgAAAAFyAgAAAAFzAgAAAAF0AgCSAQAhDAcAAKkBACAIAACqAQAgYQAAqAEAMGIAABAAEGMAAKgBADBkAQCeAQAhaAEAngEAIWkBAJ4BACFrQACgAQAhiAEBAJ4BACGOAQAAEAAgjwEAABAAIAOJAQAABwAgigEAAAcAIIsBAAAHACACaAEAAAABaQEAAAABAAAAAAGTAQEAAAABAZMBIAAAAAEBkwFAAAAAAQGTAQEAAAABBxUAAJYCACAWAACZAgAgkAEAAJcCACCRAQAAmAIAIJQBAAAQACCVAQAAEAAglgEAAAEAIAMVAACWAgAgkAEAAJcCACCWAQAAAQAgAAAAAAAFkwECAAAAAZkBAgAAAAGaAQIAAAABmwECAAAAAZwBAgAAAAEBkwFAAAAAAQAAAAAABRUAAJECACAWAACUAgAgkAEAAJICACCRAQAAkwIAIJYBAAAFACADFQAAkQIAIJABAACSAgAglgEAAAUAIAAAAAAABZMBAgAAAAGZAQIAAAABmgECAAAAAZsBAgAAAAGcAQIAAAABBRUAAIsCACAWAACPAgAgkAEAAIwCACCRAQAAjgIAIJYBAAABACALFQAA1wEAMBYAANwBADCQAQAA2AEAMJEBAADZAQAwkgEAANoBACCTAQAA2wEAMJQBAADbAQAwlQEAANsBADCWAQAA2wEAMJcBAADdAQAwmAEAAN4BADAIa0AAAAABbEAAAAABeAEAAAABeQIAAAABegEAAAABe0AAAAABfEAAAAABfgEAAAABAgAAAAkAIBUAAOIBACADAAAACQAgFQAA4gEAIBYAAOEBACABDgAAjQIAMA0EAACxAQAgYQAAsAEAMGIAAAcAEGMAALABADBrQACgAQAhbEAAoAEAIXgBAAAAAXkCAJ8BACF6AQCeAQAhe0AAoAEAIXxAAKEBACF9AQCeAQAhfgEArQEAIQIAAAAJACAOAADhAQAgAgAAAN8BACAOAADgAQAgDGEAAN4BADBiAADfAQAQYwAA3gEAMGtAAKABACFsQACgAQAheAEAngEAIXkCAJ8BACF6AQCeAQAhe0AAoAEAIXxAAKEBACF9AQCeAQAhfgEArQEAIQxhAADeAQAwYgAA3wEAEGMAAN4BADBrQACgAQAhbEAAoAEAIXgBAJ4BACF5AgCfAQAhegEAngEAIXtAAKABACF8QAChAQAhfQEAngEAIX4BAK0BACEIa0AAvQEAIWxAAL0BACF4AQC7AQAheQIAxgEAIXoBALsBACF7QAC9AQAhfEAAxwEAIX4BAL4BACEIa0AAvQEAIWxAAL0BACF4AQC7AQAheQIAxgEAIXoBALsBACF7QAC9AQAhfEAAxwEAIX4BAL4BACEIa0AAAAABbEAAAAABeAEAAAABeQIAAAABegEAAAABe0AAAAABfEAAAAABfgEAAAABAxUAAIsCACCQAQAAjAIAIJYBAAABACAEFQAA1wEAMJABAADYAQAwkgEAANoBACCWAQAA2wEAMAAAAAsVAAD2AQAwFgAA-wEAMJABAAD3AQAwkQEAAPgBADCSAQAA-QEAIJMBAAD6AQAwlAEAAPoBADCVAQAA-gEAMJYBAAD6AQAwlwEAAPwBADCYAQAA_QEAMAsVAADqAQAwFgAA7wEAMJABAADrAQAwkQEAAOwBADCSAQAA7QEAIJMBAADuAQAwlAEAAO4BADCVAQAA7gEAMJYBAADuAQAwlwEAAPABADCYAQAA8QEAMAdkAQAAAAFlAQAAAAFmAQAAAAFnAQAAAAFqIAAAAAFrQAAAAAFsQAAAAAECAAAADgAgFQAA9QEAIAMAAAAOACAVAAD1AQAgFgAA9AEAIAEOAACKAgAwDgMAAK8BACBhAACsAQAwYgAADAAQYwAArAEAMGQBAAAAAWUBAJ4BACFmAQCeAQAhZwEAngEAIWgBAK0BACFpAQCtAQAhaiAArgEAIWtAAKABACFsQACgAQAhjAEAAKsBACACAAAADgAgDgAA9AEAIAIAAADyAQAgDgAA8wEAIAxhAADxAQAwYgAA8gEAEGMAAPEBADBkAQCeAQAhZQEAngEAIWYBAJ4BACFnAQCeAQAhaAEArQEAIWkBAK0BACFqIACuAQAha0AAoAEAIWxAAKABACEMYQAA8QEAMGIAAPIBABBjAADxAQAwZAEAngEAIWUBAJ4BACFmAQCeAQAhZwEAngEAIWgBAK0BACFpAQCtAQAhaiAArgEAIWtAAKABACFsQACgAQAhB2QBALsBACFlAQC7AQAhZgEAuwEAIWcBALsBACFqIAC8AQAha0AAvQEAIWxAAL0BACEHZAEAuwEAIWUBALsBACFmAQC7AQAhZwEAuwEAIWogALwBACFrQAC9AQAhbEAAvQEAIQdkAQAAAAFlAQAAAAFmAQAAAAFnAQAAAAFqIAAAAAFrQAAAAAFsQAAAAAEQBQAA5AEAIGQBAAAAAWgBAAAAAWkBAAAAAWtAAAAAAWxAAAAAAXkCAAAAAXoBAAAAAX8BAAAAAYABAQAAAAGBAQEAAAABggEBAAAAAYQBAQAAAAGFAQEAAAABhgECAAAAAYcBQAAAAAECAAAABQAgFQAAgQIAIAMAAAAFACAVAACBAgAgFgAAgAIAIAEOAACJAgAwFQMAALQBACAFAAC1AQAgYQAAsgEAMGIAAAMAEGMAALIBADBkAQAAAAFoAQCeAQAhaQEAngEAIWtAAKABACFsQACgAQAheQIAnwEAIXoBAJ4BACF_AQCeAQAhgAEBAJ4BACGBAQEAngEAIYIBAQCeAQAhgwEBAJ4BACGEAQEAngEAIYUBAQCtAQAhhgECALMBACGHAUAAoQEAIQIAAAAFACAOAACAAgAgAgAAAP4BACAOAAD_AQAgE2EAAP0BADBiAAD-AQAQYwAA_QEAMGQBAJ4BACFoAQCeAQAhaQEAngEAIWtAAKABACFsQACgAQAheQIAnwEAIXoBAJ4BACF_AQCeAQAhgAEBAJ4BACGBAQEAngEAIYIBAQCeAQAhgwEBAJ4BACGEAQEAngEAIYUBAQCtAQAhhgECALMBACGHAUAAoQEAIRNhAAD9AQAwYgAA_gEAEGMAAP0BADBkAQCeAQAhaAEAngEAIWkBAJ4BACFrQACgAQAhbEAAoAEAIXkCAJ8BACF6AQCeAQAhfwEAngEAIYABAQCeAQAhgQEBAJ4BACGCAQEAngEAIYMBAQCeAQAhhAEBAJ4BACGFAQEArQEAIYYBAgCzAQAhhwFAAKEBACEPZAEAuwEAIWgBALsBACFpAQC7AQAha0AAvQEAIWxAAL0BACF5AgDGAQAhegEAuwEAIX8BALsBACGAAQEAuwEAIYEBAQC7AQAhggEBALsBACGEAQEAuwEAIYUBAQC-AQAhhgECANQBACGHAUAAxwEAIRAFAADWAQAgZAEAuwEAIWgBALsBACFpAQC7AQAha0AAvQEAIWxAAL0BACF5AgDGAQAhegEAuwEAIX8BALsBACGAAQEAuwEAIYEBAQC7AQAhggEBALsBACGEAQEAuwEAIYUBAQC-AQAhhgECANQBACGHAUAAxwEAIRAFAADkAQAgZAEAAAABaAEAAAABaQEAAAABa0AAAAABbEAAAAABeQIAAAABegEAAAABfwEAAAABgAEBAAAAAYEBAQAAAAGCAQEAAAABhAEBAAAAAYUBAQAAAAGGAQIAAAABhwFAAAAAAQQVAAD2AQAwkAEAAPcBADCSAQAA-QEAIJYBAAD6AQAwBBUAAOoBADCQAQAA6wEAMJIBAADtAQAglgEAAO4BADAAAAIHAACEAgAgCAAAhQIAIAUDAACGAgAgBQAAiAIAIIUBAAC3AQAghgEAALcBACCHAQAAtwEAIAAPZAEAAAABaAEAAAABaQEAAAABa0AAAAABbEAAAAABeQIAAAABegEAAAABfwEAAAABgAEBAAAAAYEBAQAAAAGCAQEAAAABhAEBAAAAAYUBAQAAAAGGAQIAAAABhwFAAAAAAQdkAQAAAAFlAQAAAAFmAQAAAAFnAQAAAAFqIAAAAAFrQAAAAAFsQAAAAAEGCAAAgwIAIGQBAAAAAWgBAAAAAWkBAAAAAWtAAAAAAYgBAQAAAAECAAAAAQAgFQAAiwIAIAhrQAAAAAFsQAAAAAF4AQAAAAF5AgAAAAF6AQAAAAF7QAAAAAF8QAAAAAF-AQAAAAEDAAAAEAAgFQAAiwIAIBYAAJACACAIAAAAEAAgCAAA6QEAIA4AAJACACBkAQC7AQAhaAEAuwEAIWkBALsBACFrQAC9AQAhiAEBALsBACEGCAAA6QEAIGQBALsBACFoAQC7AQAhaQEAuwEAIWtAAL0BACGIAQEAuwEAIREDAADjAQAgZAEAAAABaAEAAAABaQEAAAABa0AAAAABbEAAAAABeQIAAAABegEAAAABfwEAAAABgAEBAAAAAYEBAQAAAAGCAQEAAAABgwEBAAAAAYQBAQAAAAGFAQEAAAABhgECAAAAAYcBQAAAAAECAAAABQAgFQAAkQIAIAMAAAADACAVAACRAgAgFgAAlQIAIBMAAAADACADAADVAQAgDgAAlQIAIGQBALsBACFoAQC7AQAhaQEAuwEAIWtAAL0BACFsQAC9AQAheQIAxgEAIXoBALsBACF_AQC7AQAhgAEBALsBACGBAQEAuwEAIYIBAQC7AQAhgwEBALsBACGEAQEAuwEAIYUBAQC-AQAhhgECANQBACGHAUAAxwEAIREDAADVAQAgZAEAuwEAIWgBALsBACFpAQC7AQAha0AAvQEAIWxAAL0BACF5AgDGAQAhegEAuwEAIX8BALsBACGAAQEAuwEAIYEBAQC7AQAhggEBALsBACGDAQEAuwEAIYQBAQC7AQAhhQEBAL4BACGGAQIA1AEAIYcBQADHAQAhBgcAAIICACBkAQAAAAFoAQAAAAFpAQAAAAFrQAAAAAGIAQEAAAABAgAAAAEAIBUAAJYCACADAAAAEAAgFQAAlgIAIBYAAJoCACAIAAAAEAAgBwAA6AEAIA4AAJoCACBkAQC7AQAhaAEAuwEAIWkBALsBACFrQAC9AQAhiAEBALsBACEGBwAA6AEAIGQBALsBACFoAQC7AQAhaQEAuwEAIWtAAL0BACGIAQEAuwEAIQMGAAYHBgIIDwUDAwABBQoDBgAEAQQAAgEFCwABAxEBAgcSAAgTAAAAAAMGAAsbAAwcAA0AAAADBgALGwAMHAANAQMAAQEDAAEFBgASGwAVHAAWLQATLgAUAAAAAAAFBgASGwAVHAAWLQATLgAUAQQAAgEEAAIFBgAbGwAeHAAfLQAcLgAdAAAAAAAFBgAbGwAeHAAfLQAcLgAdAAAABQYAJRsAKBwAKS0AJi4AJwAAAAAABQYAJRsAKBwAKS0AJi4AJwEDeQEBA38BAwYALhsALxwAMAAAAAMGAC4bAC8cADAJAgEKFAELFgEMFwENGAEPGgEQHAcRHQgSHwETIQcUIgkXIwEYJAEZJQcdKAoeKQ4fKgIgKwIhLAIiLQIjLgIkMAIlMgcmMw8nNQIoNwcpOBAqOQIrOgIsOwcvPhEwPxcxQAMyQQMzQgM0QwM1RAM2RgM3SAc4SRg5SwM6TQc7Thk8TwM9UAM-UQc_VBpAVSBBVyFCWCFDWyFEXCFFXSFGXyFHYQdIYiJJZCFKZgdLZyNMaCFNaSFOagdPbSRQbipRbwVScAVTcQVUcgVVcwVWdQVXdwdYeCtZewVafQdbfixcgAEFXYEBBV6CAQdfhQEtYIYBMQ"
33
33
  };
34
34
  async function decodeBase64AsWasm(wasmBase64) {
35
35
  const { Buffer } = await import('node:buffer');
@@ -420,13 +420,6 @@ export type TabUncheckedUpdateManyWithoutTaskNestedInput = {
420
420
  updateMany?: Prisma.TabUpdateManyWithWhereWithoutTaskInput | Prisma.TabUpdateManyWithWhereWithoutTaskInput[];
421
421
  deleteMany?: Prisma.TabScalarWhereInput | Prisma.TabScalarWhereInput[];
422
422
  };
423
- export type IntFieldUpdateOperationsInput = {
424
- set?: number;
425
- increment?: number;
426
- decrement?: number;
427
- multiply?: number;
428
- divide?: number;
429
- };
430
423
  export type TabCreateWithoutTaskInput = {
431
424
  tabId: string;
432
425
  order: number;
@@ -227,7 +227,7 @@ export type TaskGroupByOutputType = {
227
227
  worktreeStatus: string;
228
228
  pullRequestUrl: string | null;
229
229
  effort: number | null;
230
- order: number | null;
230
+ order: number;
231
231
  deletedAt: Date | null;
232
232
  createdAt: Date;
233
233
  updatedAt: Date;
@@ -256,7 +256,7 @@ export type TaskWhereInput = {
256
256
  worktreeStatus?: Prisma.StringFilter<"Task"> | string;
257
257
  pullRequestUrl?: Prisma.StringNullableFilter<"Task"> | string | null;
258
258
  effort?: Prisma.IntNullableFilter<"Task"> | number | null;
259
- order?: Prisma.IntNullableFilter<"Task"> | number | null;
259
+ order?: Prisma.IntFilter<"Task"> | number;
260
260
  deletedAt?: Prisma.DateTimeNullableFilter<"Task"> | Date | string | null;
261
261
  createdAt?: Prisma.DateTimeFilter<"Task"> | Date | string;
262
262
  updatedAt?: Prisma.DateTimeFilter<"Task"> | Date | string;
@@ -276,7 +276,7 @@ export type TaskOrderByWithRelationInput = {
276
276
  worktreeStatus?: Prisma.SortOrder;
277
277
  pullRequestUrl?: Prisma.SortOrderInput | Prisma.SortOrder;
278
278
  effort?: Prisma.SortOrderInput | Prisma.SortOrder;
279
- order?: Prisma.SortOrderInput | Prisma.SortOrder;
279
+ order?: Prisma.SortOrder;
280
280
  deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder;
281
281
  createdAt?: Prisma.SortOrder;
282
282
  updatedAt?: Prisma.SortOrder;
@@ -299,7 +299,7 @@ export type TaskWhereUniqueInput = Prisma.AtLeast<{
299
299
  worktreeStatus?: Prisma.StringFilter<"Task"> | string;
300
300
  pullRequestUrl?: Prisma.StringNullableFilter<"Task"> | string | null;
301
301
  effort?: Prisma.IntNullableFilter<"Task"> | number | null;
302
- order?: Prisma.IntNullableFilter<"Task"> | number | null;
302
+ order?: Prisma.IntFilter<"Task"> | number;
303
303
  deletedAt?: Prisma.DateTimeNullableFilter<"Task"> | Date | string | null;
304
304
  createdAt?: Prisma.DateTimeFilter<"Task"> | Date | string;
305
305
  updatedAt?: Prisma.DateTimeFilter<"Task"> | Date | string;
@@ -319,7 +319,7 @@ export type TaskOrderByWithAggregationInput = {
319
319
  worktreeStatus?: Prisma.SortOrder;
320
320
  pullRequestUrl?: Prisma.SortOrderInput | Prisma.SortOrder;
321
321
  effort?: Prisma.SortOrderInput | Prisma.SortOrder;
322
- order?: Prisma.SortOrderInput | Prisma.SortOrder;
322
+ order?: Prisma.SortOrder;
323
323
  deletedAt?: Prisma.SortOrderInput | Prisma.SortOrder;
324
324
  createdAt?: Prisma.SortOrder;
325
325
  updatedAt?: Prisma.SortOrder;
@@ -345,7 +345,7 @@ export type TaskScalarWhereWithAggregatesInput = {
345
345
  worktreeStatus?: Prisma.StringWithAggregatesFilter<"Task"> | string;
346
346
  pullRequestUrl?: Prisma.StringNullableWithAggregatesFilter<"Task"> | string | null;
347
347
  effort?: Prisma.IntNullableWithAggregatesFilter<"Task"> | number | null;
348
- order?: Prisma.IntNullableWithAggregatesFilter<"Task"> | number | null;
348
+ order?: Prisma.IntWithAggregatesFilter<"Task"> | number;
349
349
  deletedAt?: Prisma.DateTimeNullableWithAggregatesFilter<"Task"> | Date | string | null;
350
350
  createdAt?: Prisma.DateTimeWithAggregatesFilter<"Task"> | Date | string;
351
351
  updatedAt?: Prisma.DateTimeWithAggregatesFilter<"Task"> | Date | string;
@@ -362,7 +362,7 @@ export type TaskCreateInput = {
362
362
  worktreeStatus: string;
363
363
  pullRequestUrl?: string | null;
364
364
  effort?: number | null;
365
- order?: number | null;
365
+ order?: number;
366
366
  deletedAt?: Date | string | null;
367
367
  createdAt?: Date | string;
368
368
  updatedAt?: Date | string;
@@ -382,7 +382,7 @@ export type TaskUncheckedCreateInput = {
382
382
  worktreeStatus: string;
383
383
  pullRequestUrl?: string | null;
384
384
  effort?: number | null;
385
- order?: number | null;
385
+ order?: number;
386
386
  deletedAt?: Date | string | null;
387
387
  createdAt?: Date | string;
388
388
  updatedAt?: Date | string;
@@ -400,7 +400,7 @@ export type TaskUpdateInput = {
400
400
  worktreeStatus?: Prisma.StringFieldUpdateOperationsInput | string;
401
401
  pullRequestUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
402
402
  effort?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
403
- order?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
403
+ order?: Prisma.IntFieldUpdateOperationsInput | number;
404
404
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
405
405
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
406
406
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
@@ -420,7 +420,7 @@ export type TaskUncheckedUpdateInput = {
420
420
  worktreeStatus?: Prisma.StringFieldUpdateOperationsInput | string;
421
421
  pullRequestUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
422
422
  effort?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
423
- order?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
423
+ order?: Prisma.IntFieldUpdateOperationsInput | number;
424
424
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
425
425
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
426
426
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
@@ -439,7 +439,7 @@ export type TaskCreateManyInput = {
439
439
  worktreeStatus: string;
440
440
  pullRequestUrl?: string | null;
441
441
  effort?: number | null;
442
- order?: number | null;
442
+ order?: number;
443
443
  deletedAt?: Date | string | null;
444
444
  createdAt?: Date | string;
445
445
  updatedAt?: Date | string;
@@ -456,7 +456,7 @@ export type TaskUpdateManyMutationInput = {
456
456
  worktreeStatus?: Prisma.StringFieldUpdateOperationsInput | string;
457
457
  pullRequestUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
458
458
  effort?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
459
- order?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
459
+ order?: Prisma.IntFieldUpdateOperationsInput | number;
460
460
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
461
461
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
462
462
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
@@ -474,7 +474,7 @@ export type TaskUncheckedUpdateManyInput = {
474
474
  worktreeStatus?: Prisma.StringFieldUpdateOperationsInput | string;
475
475
  pullRequestUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
476
476
  effort?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
477
- order?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
477
+ order?: Prisma.IntFieldUpdateOperationsInput | number;
478
478
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
479
479
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
480
480
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
@@ -601,6 +601,13 @@ export type NullableIntFieldUpdateOperationsInput = {
601
601
  multiply?: number;
602
602
  divide?: number;
603
603
  };
604
+ export type IntFieldUpdateOperationsInput = {
605
+ set?: number;
606
+ increment?: number;
607
+ decrement?: number;
608
+ multiply?: number;
609
+ divide?: number;
610
+ };
604
611
  export type NullableDateTimeFieldUpdateOperationsInput = {
605
612
  set?: Date | string | null;
606
613
  };
@@ -628,7 +635,7 @@ export type TaskCreateWithoutRepositoryInput = {
628
635
  worktreeStatus: string;
629
636
  pullRequestUrl?: string | null;
630
637
  effort?: number | null;
631
- order?: number | null;
638
+ order?: number;
632
639
  deletedAt?: Date | string | null;
633
640
  createdAt?: Date | string;
634
641
  updatedAt?: Date | string;
@@ -646,7 +653,7 @@ export type TaskUncheckedCreateWithoutRepositoryInput = {
646
653
  worktreeStatus: string;
647
654
  pullRequestUrl?: string | null;
648
655
  effort?: number | null;
649
- order?: number | null;
656
+ order?: number;
650
657
  deletedAt?: Date | string | null;
651
658
  createdAt?: Date | string;
652
659
  updatedAt?: Date | string;
@@ -688,7 +695,7 @@ export type TaskScalarWhereInput = {
688
695
  worktreeStatus?: Prisma.StringFilter<"Task"> | string;
689
696
  pullRequestUrl?: Prisma.StringNullableFilter<"Task"> | string | null;
690
697
  effort?: Prisma.IntNullableFilter<"Task"> | number | null;
691
- order?: Prisma.IntNullableFilter<"Task"> | number | null;
698
+ order?: Prisma.IntFilter<"Task"> | number;
692
699
  deletedAt?: Prisma.DateTimeNullableFilter<"Task"> | Date | string | null;
693
700
  createdAt?: Prisma.DateTimeFilter<"Task"> | Date | string;
694
701
  updatedAt?: Prisma.DateTimeFilter<"Task"> | Date | string;
@@ -705,7 +712,7 @@ export type TaskCreateWithoutTabsInput = {
705
712
  worktreeStatus: string;
706
713
  pullRequestUrl?: string | null;
707
714
  effort?: number | null;
708
- order?: number | null;
715
+ order?: number;
709
716
  deletedAt?: Date | string | null;
710
717
  createdAt?: Date | string;
711
718
  updatedAt?: Date | string;
@@ -724,7 +731,7 @@ export type TaskUncheckedCreateWithoutTabsInput = {
724
731
  worktreeStatus: string;
725
732
  pullRequestUrl?: string | null;
726
733
  effort?: number | null;
727
- order?: number | null;
734
+ order?: number;
728
735
  deletedAt?: Date | string | null;
729
736
  createdAt?: Date | string;
730
737
  updatedAt?: Date | string;
@@ -754,7 +761,7 @@ export type TaskUpdateWithoutTabsInput = {
754
761
  worktreeStatus?: Prisma.StringFieldUpdateOperationsInput | string;
755
762
  pullRequestUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
756
763
  effort?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
757
- order?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
764
+ order?: Prisma.IntFieldUpdateOperationsInput | number;
758
765
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
759
766
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
760
767
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
@@ -773,7 +780,7 @@ export type TaskUncheckedUpdateWithoutTabsInput = {
773
780
  worktreeStatus?: Prisma.StringFieldUpdateOperationsInput | string;
774
781
  pullRequestUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
775
782
  effort?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
776
- order?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
783
+ order?: Prisma.IntFieldUpdateOperationsInput | number;
777
784
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
778
785
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
779
786
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
@@ -790,7 +797,7 @@ export type TaskCreateManyRepositoryInput = {
790
797
  worktreeStatus: string;
791
798
  pullRequestUrl?: string | null;
792
799
  effort?: number | null;
793
- order?: number | null;
800
+ order?: number;
794
801
  deletedAt?: Date | string | null;
795
802
  createdAt?: Date | string;
796
803
  updatedAt?: Date | string;
@@ -807,7 +814,7 @@ export type TaskUpdateWithoutRepositoryInput = {
807
814
  worktreeStatus?: Prisma.StringFieldUpdateOperationsInput | string;
808
815
  pullRequestUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
809
816
  effort?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
810
- order?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
817
+ order?: Prisma.IntFieldUpdateOperationsInput | number;
811
818
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
812
819
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
813
820
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
@@ -825,7 +832,7 @@ export type TaskUncheckedUpdateWithoutRepositoryInput = {
825
832
  worktreeStatus?: Prisma.StringFieldUpdateOperationsInput | string;
826
833
  pullRequestUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
827
834
  effort?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
828
- order?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
835
+ order?: Prisma.IntFieldUpdateOperationsInput | number;
829
836
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
830
837
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
831
838
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
@@ -843,7 +850,7 @@ export type TaskUncheckedUpdateManyWithoutRepositoryInput = {
843
850
  worktreeStatus?: Prisma.StringFieldUpdateOperationsInput | string;
844
851
  pullRequestUrl?: Prisma.NullableStringFieldUpdateOperationsInput | string | null;
845
852
  effort?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
846
- order?: Prisma.NullableIntFieldUpdateOperationsInput | number | null;
853
+ order?: Prisma.IntFieldUpdateOperationsInput | number;
847
854
  deletedAt?: Prisma.NullableDateTimeFieldUpdateOperationsInput | Date | string | null;
848
855
  createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
849
856
  updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string;
@@ -980,7 +987,7 @@ export type $TaskPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs =
980
987
  worktreeStatus: string;
981
988
  pullRequestUrl: string | null;
982
989
  effort: number | null;
983
- order: number | null;
990
+ order: number;
984
991
  deletedAt: Date | null;
985
992
  createdAt: Date;
986
993
  updatedAt: Date;
@@ -1,4 +1,6 @@
1
+ import { prisma } from '../db.js';
1
2
  import type { Task, Tab } from '@minimalcorp/tsunagi-shared';
3
+ export type TxClient = Parameters<Parameters<(typeof prisma)['$transaction']>[0]>[0];
2
4
  export declare function getTasks(filter?: {
3
5
  includeDeleted?: boolean;
4
6
  status?: Task['status'] | Task['status'][];
@@ -7,9 +9,9 @@ export declare function getTasks(filter?: {
7
9
  updatedBefore?: Date;
8
10
  }): Promise<Task[]>;
9
11
  export declare function getTask(id: string): Promise<Task | null>;
10
- export declare function createTask(task: Omit<Task, 'id' | 'deleted' | 'deletedAt' | 'createdAt' | 'updatedAt' | 'tabs'>): Promise<Task>;
12
+ export declare function createTask(task: Omit<Task, 'id' | 'deleted' | 'deletedAt' | 'createdAt' | 'updatedAt' | 'tabs'>, tx?: TxClient): Promise<Task>;
11
13
  export declare function updateTask(id: string, updates: Partial<Omit<Task, 'id' | 'createdAt'>>): Promise<Task | null>;
12
- export declare function bumpOrder(targetOrder: number, excludeTaskId?: string): Promise<void>;
14
+ export declare function bumpOrder(targetOrder: number, excludeTaskId?: string, tx?: TxClient): Promise<void>;
13
15
  export declare function deleteTask(id: string): Promise<boolean>;
14
16
  export declare function createTab(taskId: string): Promise<Tab | null>;
15
17
  export declare function getTab(taskId: string, tab_id: string): Promise<Tab | null>;