@minimalcorp/tsunagi 0.1.55 → 0.3.0

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 (164) 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.js.nft.json +1 -1
  12. package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
  14. package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +14 -14
  15. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
  16. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  17. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_index.segment.rsc +9 -9
  18. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  19. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  20. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
  22. package/.next/standalone/apps/web/.next/server/app/index.rsc +16 -16
  23. package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  24. package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +16 -16
  25. package/.next/standalone/apps/web/.next/server/app/index.segments/_head.segment.rsc +4 -4
  26. package/.next/standalone/apps/web/.next/server/app/index.segments/_index.segment.rsc +9 -9
  27. package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  28. package/.next/standalone/apps/web/.next/server/app/page.js.nft.json +1 -1
  29. package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
  31. package/.next/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/apps/web/.next/server/app/settings.html +1 -1
  33. package/.next/standalone/apps/web/.next/server/app/settings.rsc +17 -16
  34. package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +17 -16
  35. package/.next/standalone/apps/web/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  36. package/.next/standalone/apps/web/.next/server/app/settings.segments/_index.segment.rsc +9 -9
  37. package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +3 -2
  38. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +5 -4
  39. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  40. package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page.js.nft.json +1 -1
  41. package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__00qk65u._.js +3 -0
  43. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__02o_btn._.js +2 -2
  44. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0qjafjt._.js +1 -1
  45. package/.next/standalone/apps/web/.next/server/chunks/ssr/_03vftq7._.js +7 -0
  46. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0835zmv._.js +14 -0
  47. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0g.cd6a._.js +1 -1
  48. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0g79jqo._.js +20 -0
  49. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0kflgfj._.js +20 -0
  50. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0w2dm3r._.js +3 -0
  51. package/.next/standalone/apps/web/.next/server/chunks/ssr/_10gk93.._.js +3 -0
  52. package/.next/standalone/apps/web/.next/server/chunks/ssr/{_05_5y28._.js → _139_l.u._.js} +2 -2
  53. package/.next/standalone/apps/web/.next/server/chunks/ssr/_13w5ytx._.js +7 -0
  54. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_settings_page_tsx_0i6itlb._.js +2 -2
  55. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_tasks_[id]_page_tsx_0jshsm2._.js +4 -21
  56. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0c8sp_9._.js → node_modules_04pfam-._.js} +1 -1
  57. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0zv4e8x._.js → node_modules_09d2oqj._.js} +1 -1
  58. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0h_hear._.js → node_modules_0_huoqd._.js} +1 -1
  59. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0a57phw._.js +3 -0
  60. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0axuayq._.js → node_modules_0ak_3rk._.js} +1 -1
  61. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0la1a4x._.js → node_modules_0cv326~._.js} +1 -1
  62. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0_876x4._.js → node_modules_0h.vgyn._.js} +1 -1
  63. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0w8sswp._.js → node_modules_0krwgny._.js} +1 -1
  64. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_09e0q95._.js → node_modules_0l23gkf._.js} +1 -1
  65. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0o9t~hh._.js → node_modules_0npujym._.js} +1 -1
  66. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_06gyfuv._.js → node_modules_0oip5a1._.js} +1 -1
  67. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_10v5lct._.js → node_modules_0q_5qo~._.js} +1 -1
  68. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_117mm7f._.js → node_modules_0q_xfyl._.js} +1 -1
  69. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0s3mkxs._.js → node_modules_0sn0lqb._.js} +1 -1
  70. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0nji2bx._.js → node_modules_0tod6y8._.js} +1 -1
  71. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0mt.8za._.js → node_modules_0xp9nhx._.js} +1 -1
  72. package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_09nusj_._.js → node_modules_11-z65a._.js} +1 -1
  73. package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +3 -3
  74. package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
  75. package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
  76. package/.next/standalone/apps/web/.next/server/server-reference-manifest.js +1 -1
  77. package/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
  78. package/.next/standalone/apps/web/.next/static/chunks/0.gcmzq82~36i.js +1 -0
  79. package/.next/standalone/apps/web/.next/static/chunks/06gfh91..uydi.js +5 -0
  80. package/.next/standalone/apps/web/.next/static/chunks/08e.dbdz18nd2.js +18 -0
  81. package/.next/standalone/apps/web/.next/static/chunks/0b90ys7wq-p.4.css +4 -0
  82. package/.next/standalone/apps/web/.next/static/chunks/0crn03y2tj0lu.js +6 -0
  83. package/.next/standalone/apps/web/.next/static/chunks/0l83q95s~tih4.js +5 -0
  84. package/.next/standalone/apps/web/.next/static/chunks/0lvl3ec93cab_.js +7 -0
  85. package/.next/standalone/apps/web/.next/static/chunks/0lxvbkhh7amha.js +1 -0
  86. package/.next/standalone/apps/web/.next/static/chunks/0mqupo29wme26.js +7 -0
  87. package/.next/standalone/apps/web/.next/static/chunks/0rn1kcmsfzjmz.js +12 -0
  88. package/.next/standalone/apps/web/.next/static/chunks/0whl1y16cvn5q.js +1 -0
  89. package/.next/standalone/apps/web/.next/static/chunks/0z60ewb40i2ce.js +1 -0
  90. package/.next/standalone/apps/web/.next/static/chunks/0~qk-51yuw4mm.js +18 -0
  91. package/.next/standalone/apps/web/.next/static/chunks/{0v3hfoggxwsov.js → 149sia28cskw9.js} +1 -1
  92. package/.next/standalone/apps/web/.next/static/chunks/17~93fal1fw_d.js +5 -0
  93. package/dist/app.d.ts +1 -0
  94. package/dist/app.js +375 -0
  95. package/dist/cli.js +152 -290
  96. package/dist/plugin-lifecycle.d.ts +9 -10
  97. package/dist/plugin-lifecycle.js +77 -65
  98. package/dist/prisma/migrations/20261007000000_add_claude_profiles/migration.sql +10 -0
  99. package/dist/prisma/schema.prisma +9 -0
  100. package/dist/server/generated/prisma/browser.d.ts +5 -0
  101. package/dist/server/generated/prisma/client.d.ts +5 -0
  102. package/dist/server/generated/prisma/internal/class.d.ts +11 -0
  103. package/dist/server/generated/prisma/internal/class.js +4 -4
  104. package/dist/server/generated/prisma/internal/prismaNamespace.d.ts +83 -1
  105. package/dist/server/generated/prisma/internal/prismaNamespace.js +6 -0
  106. package/dist/server/generated/prisma/internal/prismaNamespaceBrowser.d.ts +7 -0
  107. package/dist/server/generated/prisma/internal/prismaNamespaceBrowser.js +6 -0
  108. package/dist/server/generated/prisma/models/ClaudeProfile.d.ts +939 -0
  109. package/dist/server/generated/prisma/models/ClaudeProfile.js +1 -0
  110. package/dist/server/generated/prisma/models.d.ts +1 -0
  111. package/dist/server/index.js +20 -3
  112. package/dist/server/lib/auto-update.d.ts +18 -0
  113. package/dist/server/lib/auto-update.js +208 -0
  114. package/dist/server/lib/claude-config-guard.d.ts +7 -5
  115. package/dist/server/lib/claude-config-guard.js +31 -12
  116. package/dist/server/lib/claude-profiles.d.ts +49 -0
  117. package/dist/server/lib/claude-profiles.js +168 -0
  118. package/dist/server/lib/pty-env-sync.d.ts +12 -0
  119. package/dist/server/lib/pty-env-sync.js +139 -0
  120. package/dist/server/lib/pty-launch.d.ts +36 -0
  121. package/dist/server/lib/pty-launch.js +141 -0
  122. package/dist/server/lib/repositories/environment.js +8 -34
  123. package/dist/server/lib/restart.d.ts +8 -0
  124. package/dist/server/lib/restart.js +13 -0
  125. package/dist/server/lib/update-check.js +14 -4
  126. package/dist/server/pty-manager.d.ts +25 -1
  127. package/dist/server/pty-manager.js +38 -3
  128. package/dist/server/routes/claude-profiles.d.ts +2 -0
  129. package/dist/server/routes/claude-profiles.js +138 -0
  130. package/dist/server/routes/env.js +25 -1
  131. package/dist/server/routes/onboarding.js +15 -6
  132. package/dist/server/routes/terminal.js +34 -120
  133. package/dist/server/routes/version.js +16 -0
  134. package/dist/single-instance-lock.js +3 -17
  135. package/dist/update-lifecycle.d.ts +19 -0
  136. package/dist/update-lifecycle.js +93 -0
  137. package/dist/versions.d.ts +60 -0
  138. package/dist/versions.js +95 -0
  139. package/dist/with-plugin.js +6 -8
  140. package/npm-shrinkwrap.json +8 -8
  141. package/package.json +1 -1
  142. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__03~.ax1._.js +0 -3
  143. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0bru-z.._.js +0 -3
  144. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0hqrmyz._.js +0 -3
  145. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0i8ojdw._.js +0 -14
  146. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0m.hvms._.js +0 -7
  147. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0mljs_s._.js +0 -7
  148. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0ncpk6b._.js +0 -3
  149. package/.next/standalone/apps/web/.next/server/chunks/ssr/_109pmo2._.js +0 -3
  150. package/.next/standalone/apps/web/.next/static/chunks/01mfp5lo0gy.q.js +0 -23
  151. package/.next/standalone/apps/web/.next/static/chunks/08-d-ag2euha9.js +0 -5
  152. package/.next/standalone/apps/web/.next/static/chunks/0_by0zpp68~r7.js +0 -1
  153. package/.next/standalone/apps/web/.next/static/chunks/0c.dwezn5qjvs.css +0 -4
  154. package/.next/standalone/apps/web/.next/static/chunks/0gpkw.1e6kcpn.js +0 -1
  155. package/.next/standalone/apps/web/.next/static/chunks/0jc3jwed_8vre.js +0 -7
  156. package/.next/standalone/apps/web/.next/static/chunks/0p3_2uc39mlse.js +0 -5
  157. package/.next/standalone/apps/web/.next/static/chunks/0v6gxm~ldhmma.js +0 -1
  158. package/.next/standalone/apps/web/.next/static/chunks/0vxoeg5sfua~3.js +0 -12
  159. package/.next/standalone/apps/web/.next/static/chunks/0wzu~340lh7o~.js +0 -7
  160. package/.next/standalone/apps/web/.next/static/chunks/0xa_n_zp.qw-b.js +0 -1
  161. package/.next/standalone/apps/web/.next/static/chunks/13y6z-vus9yvr.js +0 -5
  162. /package/.next/standalone/apps/web/.next/static/{EOnxRuFun6cfXk-y9KPq5 → jgWo5G4-W0asjpQwCqJWQ}/_buildManifest.js +0 -0
  163. /package/.next/standalone/apps/web/.next/static/{EOnxRuFun6cfXk-y9KPq5 → jgWo5G4-W0asjpQwCqJWQ}/_clientMiddlewareManifest.js +0 -0
  164. /package/.next/standalone/apps/web/.next/static/{EOnxRuFun6cfXk-y9KPq5 → jgWo5G4-W0asjpQwCqJWQ}/_ssgManifest.js +0 -0
@@ -1,20 +1,19 @@
1
1
  import { execSync } from 'node:child_process';
2
2
  import * as fs from 'node:fs';
3
+ import * as os from 'node:os';
3
4
  import * as path from 'node:path';
4
5
  import { fileURLToPath } from 'node:url';
5
6
  /**
6
7
  * Claude Code plugin lifecycle management.
7
8
  *
8
- * Strategy: clean install on startup, unconditional uninstall on shutdown.
9
+ * Strategy: load the plugin per session via `CLAUDE_CODE_PLUGIN_DIRS`.
9
10
  *
10
- * - Uses only the `claude` CLI commands; no direct manipulation of
11
- * `~/.claude/settings.json` or other internal files.
12
- * - On startup, any pre-existing tsunagi marketplace / plugin is considered
13
- * an orphan from a previous abnormal termination and is cleaned up before
14
- * installing a fresh copy. This is safe because tsunagi enforces single
15
- * instance via the PID lock.
16
- * - On shutdown, uninstall is attempted unconditionally and failures are
17
- * ignored so that cleanup never blocks process exit.
11
+ * - The server sets `CLAUDE_CODE_PLUGIN_DIRS` on every PTY it spawns
12
+ * (apps/server/src/pty-manager.ts), so only Claude sessions started inside
13
+ * tsunagi load the plugin. Nothing is written to the user's Claude Code
14
+ * settings, so there is nothing to clean up on shutdown.
15
+ * - Older tsunagi versions installed the plugin into user scope via a local
16
+ * marketplace. That registration is removed once on startup.
18
17
  */
19
18
  const THIS_DIR = path.dirname(fileURLToPath(import.meta.url));
20
19
  // dev (tsx): apps/cli/src/plugin-lifecycle.ts → THIS_DIR = apps/cli/src
@@ -22,39 +21,59 @@ const THIS_DIR = path.dirname(fileURLToPath(import.meta.url));
22
21
  // prod (compiled): <pkg>/dist/plugin-lifecycle.js → THIS_DIR = <pkg>/dist
23
22
  // → ../tsunagi-marketplace = <pkg>/tsunagi-marketplace ✓
24
23
  const MARKETPLACE_NAME = 'tsunagi-marketplace';
25
- const PLUGIN_REF = `tsunagi-plugin@${MARKETPLACE_NAME}`;
26
- function getMarketplaceDir() {
27
- const candidate = path.resolve(THIS_DIR, '..', 'tsunagi-marketplace');
28
- if (fs.existsSync(path.join(candidate, '.claude-plugin'))) {
29
- return candidate;
30
- }
31
- // Fallback for unexpected layouts
32
- return candidate;
24
+ const PLUGIN_NAME = 'tsunagi-plugin';
25
+ const PLUGIN_REF = `${PLUGIN_NAME}@${MARKETPLACE_NAME}`;
26
+ // CLAUDE_CODE_PLUGIN_DIRS に対応した最初のバージョン
27
+ const MIN_CLAUDE_VERSION = [2, 1, 280];
28
+ function getLegacyCleanupMarkerPath() {
29
+ const dataDir = process.env.TSUNAGI_DATA_DIR || path.join(os.homedir(), '.tsunagi');
30
+ return path.join(dataDir, 'state', 'legacy-plugin-removed');
33
31
  }
34
32
  function debugLog(msg) {
35
33
  if (process.env.TSUNAGI_DEBUG) {
36
34
  console.log(`[tsunagi:plugin] ${msg}`);
37
35
  }
38
36
  }
39
- /** プラグインがインストール済みか確認する */
40
- function isPluginInstalled() {
37
+ /** PTY の CLAUDE_CODE_PLUGIN_DIRS に渡すプラグインのディレクトリ(絶対パス) */
38
+ export function getPluginDir() {
39
+ return path.resolve(THIS_DIR, '..', MARKETPLACE_NAME, 'plugins', PLUGIN_NAME);
40
+ }
41
+ /** `claude --version` の出力(例: "2.1.292 (Claude Code)")から x.y.z を取り出す */
42
+ function getClaudeVersion() {
41
43
  try {
42
- const output = execSync('claude plugin list', { stdio: 'pipe' }).toString();
43
- return output.includes(PLUGIN_REF);
44
+ const output = execSync('claude --version', { stdio: 'pipe' }).toString();
45
+ const match = /(\d+)\.(\d+)\.(\d+)/.exec(output);
46
+ return match ? match.slice(1).map(Number) : null;
44
47
  }
45
48
  catch {
46
- return false;
49
+ return null;
47
50
  }
48
51
  }
49
- /** marketplaceが登録済みか確認する */
50
- function isMarketplaceAdded() {
51
- try {
52
- const output = execSync('claude plugin marketplace list', { stdio: 'pipe' }).toString();
53
- return output.includes(MARKETPLACE_NAME);
52
+ function isAtLeast(version, min) {
53
+ for (let i = 0; i < min.length; i++) {
54
+ if (version[i] !== min[i])
55
+ return version[i] > min[i];
54
56
  }
55
- catch {
56
- return false;
57
+ return true;
58
+ }
59
+ /**
60
+ * Exits the process with code 1 if the `claude` CLI is missing or too old to
61
+ * load plugins from `CLAUDE_CODE_PLUGIN_DIRS`.
62
+ */
63
+ export function assertClaudeSupportsPluginDirs() {
64
+ const minLabel = MIN_CLAUDE_VERSION.join('.');
65
+ const version = getClaudeVersion();
66
+ if (!version) {
67
+ console.error('[tsunagi:plugin] Failed to run `claude --version`.');
68
+ console.error('[tsunagi:plugin] Ensure the `claude` CLI is installed and available on PATH.');
69
+ process.exit(1);
57
70
  }
71
+ if (!isAtLeast(version, MIN_CLAUDE_VERSION)) {
72
+ console.error(`[tsunagi:plugin] Claude Code ${version.join('.')} is too old. tsunagi requires ${minLabel} or later.`);
73
+ console.error('[tsunagi:plugin] Run `claude update` and start tsunagi again.');
74
+ process.exit(1);
75
+ }
76
+ debugLog(`Claude Code ${version.join('.')}`);
58
77
  }
59
78
  /**
60
79
  * Run a `claude` CLI command. Returns true on success, false on failure.
@@ -73,46 +92,39 @@ function runClaude(args) {
73
92
  return false;
74
93
  }
75
94
  }
95
+ function claudeOutput(args) {
96
+ try {
97
+ return execSync(`claude ${args}`, { stdio: 'pipe' }).toString();
98
+ }
99
+ catch {
100
+ return '';
101
+ }
102
+ }
76
103
  /**
77
- * Ensure a clean plugin state by removing any pre-existing tsunagi plugin /
78
- * marketplace registrations and then installing fresh copies.
79
- *
80
- * Exits the process with code 1 on install failure.
81
- *
82
- * @returns `'clean'` if orphaned state was cleaned up before install,
83
- * `'fresh'` if no prior state existed.
104
+ * Remove the user-scope plugin / marketplace registered by older tsunagi
105
+ * versions. Runs once; a marker file in the state dir records completion.
106
+ * Never throws and never blocks startup on failure.
84
107
  */
85
- export function ensureCleanPluginState() {
86
- // Phase 1: best-effort cleanup of any orphaned state from a previous run.
87
- // Check existence first to avoid error output when plugin is not installed (normal first-boot case).
88
- const hadOrphan = isPluginInstalled() || isMarketplaceAdded();
89
- if (isPluginInstalled()) {
90
- runClaude(`plugin uninstall ${PLUGIN_REF}`);
108
+ export function removeLegacyPluginInstall() {
109
+ const markerPath = getLegacyCleanupMarkerPath();
110
+ if (fs.existsSync(markerPath))
111
+ return;
112
+ // 存在確認してから消す(未登録時のエラー出力を避ける)
113
+ let removed = true;
114
+ if (claudeOutput('plugin list').includes(PLUGIN_REF)) {
115
+ removed = runClaude(`plugin uninstall ${PLUGIN_REF}`) && removed;
91
116
  }
92
- if (isMarketplaceAdded()) {
93
- runClaude(`plugin marketplace remove ${MARKETPLACE_NAME}`);
117
+ if (claudeOutput('plugin marketplace list').includes(MARKETPLACE_NAME)) {
118
+ removed = runClaude(`plugin marketplace remove ${MARKETPLACE_NAME}`) && removed;
94
119
  }
95
- // Phase 2: clean install. Failures here are fatal.
96
- const marketplaceDir = getMarketplaceDir();
97
- if (!runClaude(`plugin marketplace add ${marketplaceDir}`)) {
98
- console.error('[tsunagi:plugin] Failed to add Claude Code marketplace.');
99
- console.error('[tsunagi:plugin] Ensure the `claude` CLI is installed and available on PATH.');
100
- console.error(`[tsunagi:plugin] Marketplace path: ${marketplaceDir}`);
101
- process.exit(1);
120
+ if (!removed)
121
+ return; // 次回起動時に再試行する
122
+ try {
123
+ fs.mkdirSync(path.dirname(markerPath), { recursive: true });
124
+ fs.writeFileSync(markerPath, new Date().toISOString(), 'utf-8');
125
+ debugLog('Legacy plugin registration removed');
102
126
  }
103
- debugLog('Marketplace added');
104
- if (!runClaude(`plugin install ${PLUGIN_REF} --scope user`)) {
105
- console.error('[tsunagi:plugin] Failed to install Claude Code plugin.');
106
- runClaude(`plugin marketplace remove ${MARKETPLACE_NAME}`);
107
- process.exit(1);
127
+ catch {
128
+ // マーカーを書けなくても次回再確認するだけ
108
129
  }
109
- debugLog('Plugin installed');
110
- return hadOrphan ? 'clean' : 'fresh';
111
- }
112
- /**
113
- * Best-effort cleanup. Called on process shutdown. Never throws.
114
- */
115
- export function cleanupPluginState() {
116
- runClaude(`plugin uninstall ${PLUGIN_REF}`);
117
- runClaude(`plugin marketplace remove ${MARKETPLACE_NAME}`);
118
130
  }
@@ -0,0 +1,10 @@
1
+ -- CreateTable
2
+ -- Claude Code のプロファイル(CLAUDE_CONFIG_DIR)。実体は ~/.tsunagi/claude-profiles/<slug>/
3
+ CREATE TABLE "claude_profiles" (
4
+ "slug" TEXT NOT NULL PRIMARY KEY,
5
+ "name" TEXT NOT NULL,
6
+ "created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
7
+ );
8
+
9
+ -- 認証はプロファイル(claude auth login)に一本化したため、Settings で登録していたトークンは削除する
10
+ DELETE FROM "environment_variables" WHERE "key" IN ('ANTHROPIC_API_KEY', 'CLAUDE_CODE_OAUTH_TOKEN');
@@ -93,6 +93,15 @@ model EnvironmentVariable {
93
93
  @@map("environment_variables")
94
94
  }
95
95
 
96
+ // ClaudeProfile - Claude Code のプロファイル(CLAUDE_CONFIG_DIR = ~/.tsunagi/claude-profiles/<slug>)
97
+ model ClaudeProfile {
98
+ slug String @id
99
+ name String
100
+ createdAt DateTime @default(now()) @map("created_at")
101
+
102
+ @@map("claude_profiles")
103
+ }
104
+
96
105
  // AppSetting - アプリ全体の設定(key単位でJSONを保存)
97
106
  model AppSetting {
98
107
  key String @id
@@ -22,6 +22,11 @@ export type Tab = Prisma.TabModel;
22
22
  *
23
23
  */
24
24
  export type EnvironmentVariable = Prisma.EnvironmentVariableModel;
25
+ /**
26
+ * Model ClaudeProfile
27
+ *
28
+ */
29
+ export type ClaudeProfile = Prisma.ClaudeProfileModel;
25
30
  /**
26
31
  * Model AppSetting
27
32
  *
@@ -41,6 +41,11 @@ export type Tab = Prisma.TabModel;
41
41
  *
42
42
  */
43
43
  export type EnvironmentVariable = Prisma.EnvironmentVariableModel;
44
+ /**
45
+ * Model ClaudeProfile
46
+ *
47
+ */
48
+ export type ClaudeProfile = Prisma.ClaudeProfileModel;
44
49
  /**
45
50
  * Model AppSetting
46
51
  *
@@ -159,6 +159,17 @@ export interface PrismaClient<in LogOpts extends Prisma.LogLevel = never, in out
159
159
  get environmentVariable(): Prisma.EnvironmentVariableDelegate<ExtArgs, {
160
160
  omit: OmitOpts;
161
161
  }>;
162
+ /**
163
+ * `prisma.claudeProfile`: Exposes CRUD operations for the **ClaudeProfile** model.
164
+ * Example usage:
165
+ * ```ts
166
+ * // Fetch zero or more ClaudeProfiles
167
+ * const claudeProfiles = await prisma.claudeProfile.findMany()
168
+ * ```
169
+ */
170
+ get claudeProfile(): Prisma.ClaudeProfileDelegate<ExtArgs, {
171
+ omit: OmitOpts;
172
+ }>;
162
173
  /**
163
174
  * `prisma.appSetting`: Exposes CRUD operations for the **AppSetting** model.
164
175
  * Example usage:
@@ -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 order Int @default(0)\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\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 mode String @default(\"claude\") // 'terminal' | 'claude' | 'local'(local: ローカルLLMで起動するclaude。旧 'ollama' / 'lmstudio' も local 扱い)\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 // 完了(success/error)したがタスク詳細で未確認であることを示す。詳細を開くとfalseになる\n unread Boolean @default(false)\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// 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\n// AppSetting - アプリ全体の設定(key単位でJSONを保存)\nmodel AppSetting {\n key String @id\n value String // JSON\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n @@map(\"app_settings\")\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 order Int @default(0)\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\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 mode String @default(\"claude\") // 'terminal' | 'claude' | 'local'(local: ローカルLLMで起動するclaude。旧 'ollama' / 'lmstudio' も local 扱い)\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 // 完了(success/error)したがタスク詳細で未確認であることを示す。詳細を開くとfalseになる\n unread Boolean @default(false)\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// 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\n// ClaudeProfile - Claude Code のプロファイル(CLAUDE_CONFIG_DIR = ~/.tsunagi/claude-profiles/<slug>)\nmodel ClaudeProfile {\n slug String @id\n name String\n createdAt DateTime @default(now()) @map(\"created_at\")\n\n @@map(\"claude_profiles\")\n}\n\n// AppSetting - アプリ全体の設定(key単位でJSONを保存)\nmodel AppSetting {\n key String @id\n value String // JSON\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n @@map(\"app_settings\")\n}\n",
19
19
  "runtimeDataModel": {
20
20
  "models": {},
21
21
  "enums": {},
@@ -26,10 +26,10 @@ const config = {
26
26
  "graph": ""
27
27
  }
28
28
  };
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\":\"order\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"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\":\"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\":\"mode\",\"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\":\"unread\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"task\",\"kind\":\"object\",\"type\":\"Task\",\"relationName\":\"TabToTask\"}],\"dbName\":\"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\"},\"AppSetting\":{\"fields\":[{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"}],\"dbName\":\"app_settings\"}},\"enums\":{},\"types\":{}}");
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\":\"order\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"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\":\"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\":\"mode\",\"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\":\"unread\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"task\",\"kind\":\"object\",\"type\":\"Task\",\"relationName\":\"TabToTask\"}],\"dbName\":\"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\"},\"ClaudeProfile\":{\"fields\":[{\"name\":\"slug\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"}],\"dbName\":\"claude_profiles\"},\"AppSetting\":{\"fields\":[{\"name\":\"key\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"}],\"dbName\":\"app_settings\"}},\"enums\":{},\"types\":{}}");
30
30
  config.parameterizationSchema = {
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\",\"_avg\",\"_sum\",\"_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\",\"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\",\"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\",\"AppSetting.findUnique\",\"AppSetting.findUniqueOrThrow\",\"AppSetting.findFirst\",\"AppSetting.findFirstOrThrow\",\"AppSetting.findMany\",\"AppSetting.createOne\",\"AppSetting.createMany\",\"AppSetting.createManyAndReturn\",\"AppSetting.updateOne\",\"AppSetting.updateMany\",\"AppSetting.updateManyAndReturn\",\"AppSetting.upsertOne\",\"AppSetting.deleteOne\",\"AppSetting.deleteMany\",\"AppSetting.groupBy\",\"AppSetting.aggregate\",\"AND\",\"OR\",\"NOT\",\"key\",\"value\",\"updatedAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"id\",\"scope\",\"owner\",\"repo\",\"enabled\",\"createdAt\",\"tabId\",\"taskId\",\"order\",\"status\",\"mode\",\"startedAt\",\"completedAt\",\"todos\",\"unread\",\"title\",\"description\",\"branch\",\"baseBranch\",\"repoId\",\"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: "mgIxUAwHAACoAQAgCAAAqQEAIGEAAKYBADBiAAAQABBjAACmAQAwcgEAAAABdAEAkAEAIXUBAJABACF3QACRAQAhegIApwEAIYkBAQCQAQAhjgEAALYBACABAAAAAQAgFAMAALQBACAFAAC1AQAgYQAAsgEAMGIAAAMAEGMAALIBADBmQACRAQAhcgEAkAEAIXQBAJABACF1AQCQAQAhd0AAkQEAIXoCAKcBACF7AQCQAQAhgQEBAJABACGCAQEAkAEAIYMBAQCQAQAhhAEBAJABACGFAQEAkAEAIYYBAQCsAQAhhwECALMBACGIAUAAsAEAIQUDAACGAgAgBQAAiAIAIIYBAAC8AQAghwEAALwBACCIAQAAvAEAIBQDAAC0AQAgBQAAtQEAIGEAALIBADBiAAADABBjAACyAQAwZkAAkQEAIXIBAAAAAXQBAJABACF1AQCQAQAhd0AAkQEAIXoCAKcBACF7AQCQAQAhgQEBAJABACGCAQEAkAEAIYMBAQCQAQAhhAEBAJABACGFAQEAkAEAIYYBAQCsAQAhhwECALMBACGIAUAAsAEAIQMAAAADACABAAAEADACAAAFACAPBAAAsQEAIGEAAK8BADBiAAAHABBjAACvAQAwZkAAkQEAIXdAAJEBACF4AQCQAQAheQEAkAEAIXoCAKcBACF7AQCQAQAhfAEAkAEAIX1AAJEBACF-QACwAQAhfwEArAEAIYABIACtAQAhAwQAAIcCACB-AAC8AQAgfwAAvAEAIA8EAACxAQAgYQAArwEAMGIAAAcAEGMAAK8BADBmQACRAQAhd0AAkQEAIXgBAAAAAXkBAJABACF6AgCnAQAhewEAkAEAIXwBAJABACF9QACRAQAhfkAAsAEAIX8BAKwBACGAASAArQEAIQMAAAAHACABAAAIADACAAAJACABAAAABwAgDQMAAK4BACBhAACrAQAwYgAADAAQYwAAqwEAMGQBAJABACFlAQCQAQAhZkAAkQEAIXIBAJABACFzAQCQAQAhdAEArAEAIXUBAKwBACF2IACtAQAhd0AAkQEAIQMDAACGAgAgdAAAvAEAIHUAALwBACAOAwAArgEAIGEAAKsBADBiAAAMABBjAACrAQAwZAEAkAEAIWUBAJABACFmQACRAQAhcgEAAAABcwEAkAEAIXQBAKwBACF1AQCsAQAhdiAArQEAIXdAAJEBACGNAQAAqgEAIAMAAAAMACABAAANADACAAAOACALBwAAqAEAIAgAAKkBACBhAACmAQAwYgAAEAAQYwAApgEAMHIBAJABACF0AQCQAQAhdQEAkAEAIXdAAJEBACF6AgCnAQAhiQEBAJABACEBAAAAEAAgAQAAAAMAIAEAAAAMACABAAAAAQAgAgcAAIQCACAIAACFAgAgAwAAABAAIAEAABUAMAIAAAEAIAMAAAAQACABAAAVADACAAABACADAAAAEAAgAQAAFQAwAgAAAQAgCAcAAIICACAIAACDAgAgcgEAAAABdAEAAAABdQEAAAABd0AAAAABegIAAAABiQEBAAAAAQEOAAAZACAGcgEAAAABdAEAAAABdQEAAAABd0AAAAABegIAAAABiQEBAAAAAQEOAAAbADABDgAAGwAwCAcAAOgBACAIAADpAQAgcgEAugEAIXQBALoBACF1AQC6AQAhd0AAuwEAIXoCAMkBACGJAQEAugEAIQIAAAABACAOAAAeACAGcgEAugEAIXQBALoBACF1AQC6AQAhd0AAuwEAIXoCAMkBACGJAQEAugEAIQIAAAAQACAOAAAgACACAAAAEAAgDgAAIAAgAwAAAAEAIBUAABkAIBYAAB4AIAEAAAABACABAAAAEAAgBQYAAOMBACAbAADkAQAgHAAA5wEAIB0AAOYBACAeAADlAQAgCWEAAKUBADBiAAAnABBjAAClAQAwcgEAiAEAIXQBAIgBACF1AQCIAQAhd0AAiQEAIXoCAJsBACGJAQEAiAEAIQMAAAAQACABAAAmADAaAAAnACADAAAAEAAgAQAAFQAwAgAAAQAgAQAAAAUAIAEAAAAFACADAAAAAwAgAQAABAAwAgAABQAgAwAAAAMAIAEAAAQAMAIAAAUAIAMAAAADACABAAAEADACAAAFACARAwAA4QEAIAUAAOIBACBmQAAAAAFyAQAAAAF0AQAAAAF1AQAAAAF3QAAAAAF6AgAAAAF7AQAAAAGBAQEAAAABggEBAAAAAYMBAQAAAAGEAQEAAAABhQEBAAAAAYYBAQAAAAGHAQIAAAABiAFAAAAAAQEOAAAvACAPZkAAAAABcgEAAAABdAEAAAABdQEAAAABd0AAAAABegIAAAABewEAAAABgQEBAAAAAYIBAQAAAAGDAQEAAAABhAEBAAAAAYUBAQAAAAGGAQEAAAABhwECAAAAAYgBQAAAAAEBDgAAMQAwAQ4AADEAMBEDAADTAQAgBQAA1AEAIGZAALsBACFyAQC6AQAhdAEAugEAIXUBALoBACF3QAC7AQAhegIAyQEAIXsBALoBACGBAQEAugEAIYIBAQC6AQAhgwEBALoBACGEAQEAugEAIYUBAQC6AQAhhgEBAMEBACGHAQIA0gEAIYgBQADKAQAhAgAAAAUAIA4AADQAIA9mQAC7AQAhcgEAugEAIXQBALoBACF1AQC6AQAhd0AAuwEAIXoCAMkBACF7AQC6AQAhgQEBALoBACGCAQEAugEAIYMBAQC6AQAhhAEBALoBACGFAQEAugEAIYYBAQDBAQAhhwECANIBACGIAUAAygEAIQIAAAADACAOAAA2ACACAAAAAwAgDgAANgAgAwAAAAUAIBUAAC8AIBYAADQAIAEAAAAFACABAAAAAwAgCAYAAM0BACAbAADOAQAgHAAA0QEAIB0AANABACAeAADPAQAghgEAALwBACCHAQAAvAEAIIgBAAC8AQAgEmEAAKEBADBiAAA9ABBjAAChAQAwZkAAiQEAIXIBAIgBACF0AQCIAQAhdQEAiAEAIXdAAIkBACF6AgCbAQAhewEAiAEAIYEBAQCIAQAhggEBAIgBACGDAQEAiAEAIYQBAQCIAQAhhQEBAIgBACGGAQEAkwEAIYcBAgCiAQAhiAFAAJwBACEDAAAAAwAgAQAAPAAwGgAAPQAgAwAAAAMAIAEAAAQAMAIAAAUAIAEAAAAJACABAAAACQAgAwAAAAcAIAEAAAgAMAIAAAkAIAMAAAAHACABAAAIADACAAAJACADAAAABwAgAQAACAAwAgAACQAgDAQAAMwBACBmQAAAAAF3QAAAAAF4AQAAAAF5AQAAAAF6AgAAAAF7AQAAAAF8AQAAAAF9QAAAAAF-QAAAAAF_AQAAAAGAASAAAAABAQ4AAEUAIAtmQAAAAAF3QAAAAAF4AQAAAAF5AQAAAAF6AgAAAAF7AQAAAAF8AQAAAAF9QAAAAAF-QAAAAAF_AQAAAAGAASAAAAABAQ4AAEcAMAEOAABHADAMBAAAywEAIGZAALsBACF3QAC7AQAheAEAugEAIXkBALoBACF6AgDJAQAhewEAugEAIXwBALoBACF9QAC7AQAhfkAAygEAIX8BAMEBACGAASAAwAEAIQIAAAAJACAOAABKACALZkAAuwEAIXdAALsBACF4AQC6AQAheQEAugEAIXoCAMkBACF7AQC6AQAhfAEAugEAIX1AALsBACF-QADKAQAhfwEAwQEAIYABIADAAQAhAgAAAAcAIA4AAEwAIAIAAAAHACAOAABMACADAAAACQAgFQAARQAgFgAASgAgAQAAAAkAIAEAAAAHACAHBgAAxAEAIBsAAMUBACAcAADIAQAgHQAAxwEAIB4AAMYBACB-AAC8AQAgfwAAvAEAIA5hAACaAQAwYgAAUwAQYwAAmgEAMGZAAIkBACF3QACJAQAheAEAiAEAIXkBAIgBACF6AgCbAQAhewEAiAEAIXwBAIgBACF9QACJAQAhfkAAnAEAIX8BAJMBACGAASAAlAEAIQMAAAAHACABAABSADAaAABTACADAAAABwAgAQAACAAwAgAACQAgAQAAAA4AIAEAAAAOACADAAAADAAgAQAADQAwAgAADgAgAwAAAAwAIAEAAA0AMAIAAA4AIAMAAAAMACABAAANADACAAAOACAKAwAAwwEAIGQBAAAAAWUBAAAAAWZAAAAAAXIBAAAAAXMBAAAAAXQBAAAAAXUBAAAAAXYgAAAAAXdAAAAAAQEOAABbACAJZAEAAAABZQEAAAABZkAAAAABcgEAAAABcwEAAAABdAEAAAABdQEAAAABdiAAAAABd0AAAAABAQ4AAF0AMAEOAABdADABAAAAEAAgCgMAAMIBACBkAQC6AQAhZQEAugEAIWZAALsBACFyAQC6AQAhcwEAugEAIXQBAMEBACF1AQDBAQAhdiAAwAEAIXdAALsBACECAAAADgAgDgAAYQAgCWQBALoBACFlAQC6AQAhZkAAuwEAIXIBALoBACFzAQC6AQAhdAEAwQEAIXUBAMEBACF2IADAAQAhd0AAuwEAIQIAAAAMACAOAABjACACAAAADAAgDgAAYwAgAQAAABAAIAMAAAAOACAVAABbACAWAABhACABAAAADgAgAQAAAAwAIAUGAAC9AQAgHQAAvwEAIB4AAL4BACB0AAC8AQAgdQAAvAEAIAxhAACSAQAwYgAAawAQYwAAkgEAMGQBAIgBACFlAQCIAQAhZkAAiQEAIXIBAIgBACFzAQCIAQAhdAEAkwEAIXUBAJMBACF2IACUAQAhd0AAiQEAIQMAAAAMACABAABqADAaAABrACADAAAADAAgAQAADQAwAgAADgAgBmEAAI8BADBiAABxABBjAACPAQAwZAEAAAABZQEAkAEAIWZAAJEBACEBAAAAbgAgAQAAAG4AIAZhAACPAQAwYgAAcQAQYwAAjwEAMGQBAJABACFlAQCQAQAhZkAAkQEAIQADAAAAcQAgAQAAcgAwAgAAbgAgAwAAAHEAIAEAAHIAMAIAAG4AIAMAAABxACABAAByADACAABuACADZAEAAAABZQEAAAABZkAAAAABAQ4AAHYAIANkAQAAAAFlAQAAAAFmQAAAAAEBDgAAeAAwAQ4AAHgAMANkAQC6AQAhZQEAugEAIWZAALsBACECAAAAbgAgDgAAewAgA2QBALoBACFlAQC6AQAhZkAAuwEAIQIAAABxACAOAAB9ACACAAAAcQAgDgAAfQAgAwAAAG4AIBUAAHYAIBYAAHsAIAEAAABuACABAAAAcQAgAwYAALcBACAdAAC5AQAgHgAAuAEAIAZhAACHAQAwYgAAhAEAEGMAAIcBADBkAQCIAQAhZQEAiAEAIWZAAIkBACEDAAAAcQAgAQAAgwEAMBoAAIQBACADAAAAcQAgAQAAcgAwAgAAbgAgBmEAAIcBADBiAACEAQAQYwAAhwEAMGQBAIgBACFlAQCIAQAhZkAAiQEAIQ4GAACLAQAgHQAAjgEAIB4AAI4BACBnAQAAAAFoAQAAAARpAQAAAARqAQAAAAFrAQAAAAFsAQAAAAFtAQAAAAFuAQCNAQAhbwEAAAABcAEAAAABcQEAAAABCwYAAIsBACAdAACMAQAgHgAAjAEAIGdAAAAAAWhAAAAABGlAAAAABGpAAAAAAWtAAAAAAWxAAAAAAW1AAAAAAW5AAIoBACELBgAAiwEAIB0AAIwBACAeAACMAQAgZ0AAAAABaEAAAAAEaUAAAAAEakAAAAABa0AAAAABbEAAAAABbUAAAAABbkAAigEAIQhnAgAAAAFoAgAAAARpAgAAAARqAgAAAAFrAgAAAAFsAgAAAAFtAgAAAAFuAgCLAQAhCGdAAAAAAWhAAAAABGlAAAAABGpAAAAAAWtAAAAAAWxAAAAAAW1AAAAAAW5AAIwBACEOBgAAiwEAIB0AAI4BACAeAACOAQAgZwEAAAABaAEAAAAEaQEAAAAEagEAAAABawEAAAABbAEAAAABbQEAAAABbgEAjQEAIW8BAAAAAXABAAAAAXEBAAAAAQtnAQAAAAFoAQAAAARpAQAAAARqAQAAAAFrAQAAAAFsAQAAAAFtAQAAAAFuAQCOAQAhbwEAAAABcAEAAAABcQEAAAABBmEAAI8BADBiAABxABBjAACPAQAwZAEAkAEAIWUBAJABACFmQACRAQAhC2cBAAAAAWgBAAAABGkBAAAABGoBAAAAAWsBAAAAAWwBAAAAAW0BAAAAAW4BAI4BACFvAQAAAAFwAQAAAAFxAQAAAAEIZ0AAAAABaEAAAAAEaUAAAAAEakAAAAABa0AAAAABbEAAAAABbUAAAAABbkAAjAEAIQxhAACSAQAwYgAAawAQYwAAkgEAMGQBAIgBACFlAQCIAQAhZkAAiQEAIXIBAIgBACFzAQCIAQAhdAEAkwEAIXUBAJMBACF2IACUAQAhd0AAiQEAIQ4GAACYAQAgHQAAmQEAIB4AAJkBACBnAQAAAAFoAQAAAAVpAQAAAAVqAQAAAAFrAQAAAAFsAQAAAAFtAQAAAAFuAQCXAQAhbwEAAAABcAEAAAABcQEAAAABBQYAAIsBACAdAACWAQAgHgAAlgEAIGcgAAAAAW4gAJUBACEFBgAAiwEAIB0AAJYBACAeAACWAQAgZyAAAAABbiAAlQEAIQJnIAAAAAFuIACWAQAhDgYAAJgBACAdAACZAQAgHgAAmQEAIGcBAAAAAWgBAAAABWkBAAAABWoBAAAAAWsBAAAAAWwBAAAAAW0BAAAAAW4BAJcBACFvAQAAAAFwAQAAAAFxAQAAAAEIZwIAAAABaAIAAAAFaQIAAAAFagIAAAABawIAAAABbAIAAAABbQIAAAABbgIAmAEAIQtnAQAAAAFoAQAAAAVpAQAAAAVqAQAAAAFrAQAAAAFsAQAAAAFtAQAAAAFuAQCZAQAhbwEAAAABcAEAAAABcQEAAAABDmEAAJoBADBiAABTABBjAACaAQAwZkAAiQEAIXdAAIkBACF4AQCIAQAheQEAiAEAIXoCAJsBACF7AQCIAQAhfAEAiAEAIX1AAIkBACF-QACcAQAhfwEAkwEAIYABIACUAQAhDQYAAIsBACAbAACgAQAgHAAAiwEAIB0AAIsBACAeAACLAQAgZwIAAAABaAIAAAAEaQIAAAAEagIAAAABawIAAAABbAIAAAABbQIAAAABbgIAnwEAIQsGAACYAQAgHQAAngEAIB4AAJ4BACBnQAAAAAFoQAAAAAVpQAAAAAVqQAAAAAFrQAAAAAFsQAAAAAFtQAAAAAFuQACdAQAhCwYAAJgBACAdAACeAQAgHgAAngEAIGdAAAAAAWhAAAAABWlAAAAABWpAAAAAAWtAAAAAAWxAAAAAAW1AAAAAAW5AAJ0BACEIZ0AAAAABaEAAAAAFaUAAAAAFakAAAAABa0AAAAABbEAAAAABbUAAAAABbkAAngEAIQ0GAACLAQAgGwAAoAEAIBwAAIsBACAdAACLAQAgHgAAiwEAIGcCAAAAAWgCAAAABGkCAAAABGoCAAAAAWsCAAAAAWwCAAAAAW0CAAAAAW4CAJ8BACEIZwgAAAABaAgAAAAEaQgAAAAEaggAAAABawgAAAABbAgAAAABbQgAAAABbggAoAEAIRJhAAChAQAwYgAAPQAQYwAAoQEAMGZAAIkBACFyAQCIAQAhdAEAiAEAIXUBAIgBACF3QACJAQAhegIAmwEAIXsBAIgBACGBAQEAiAEAIYIBAQCIAQAhgwEBAIgBACGEAQEAiAEAIYUBAQCIAQAhhgEBAJMBACGHAQIAogEAIYgBQACcAQAhDQYAAJgBACAbAACkAQAgHAAAmAEAIB0AAJgBACAeAACYAQAgZwIAAAABaAIAAAAFaQIAAAAFagIAAAABawIAAAABbAIAAAABbQIAAAABbgIAowEAIQ0GAACYAQAgGwAApAEAIBwAAJgBACAdAACYAQAgHgAAmAEAIGcCAAAAAWgCAAAABWkCAAAABWoCAAAAAWsCAAAAAWwCAAAAAW0CAAAAAW4CAKMBACEIZwgAAAABaAgAAAAFaQgAAAAFaggAAAABawgAAAABbAgAAAABbQgAAAABbggApAEAIQlhAAClAQAwYgAAJwAQYwAApQEAMHIBAIgBACF0AQCIAQAhdQEAiAEAIXdAAIkBACF6AgCbAQAhiQEBAIgBACELBwAAqAEAIAgAAKkBACBhAACmAQAwYgAAEAAQYwAApgEAMHIBAJABACF0AQCQAQAhdQEAkAEAIXdAAJEBACF6AgCnAQAhiQEBAJABACEIZwIAAAABaAIAAAAEaQIAAAAEagIAAAABawIAAAABbAIAAAABbQIAAAABbgIAiwEAIQOKAQAAAwAgiwEAAAMAIIwBAAADACADigEAAAwAIIsBAAAMACCMAQAADAAgBGQBAAAAAXMBAAAAAXQBAAAAAXUBAAAAAQ0DAACuAQAgYQAAqwEAMGIAAAwAEGMAAKsBADBkAQCQAQAhZQEAkAEAIWZAAJEBACFyAQCQAQAhcwEAkAEAIXQBAKwBACF1AQCsAQAhdiAArQEAIXdAAJEBACELZwEAAAABaAEAAAAFaQEAAAAFagEAAAABawEAAAABbAEAAAABbQEAAAABbgEAmQEAIW8BAAAAAXABAAAAAXEBAAAAAQJnIAAAAAFuIACWAQAhDQcAAKgBACAIAACpAQAgYQAApgEAMGIAABAAEGMAAKYBADByAQCQAQAhdAEAkAEAIXUBAJABACF3QACRAQAhegIApwEAIYkBAQCQAQAhjwEAABAAIJABAAAQACAPBAAAsQEAIGEAAK8BADBiAAAHABBjAACvAQAwZkAAkQEAIXdAAJEBACF4AQCQAQAheQEAkAEAIXoCAKcBACF7AQCQAQAhfAEAkAEAIX1AAJEBACF-QACwAQAhfwEArAEAIYABIACtAQAhCGdAAAAAAWhAAAAABWlAAAAABWpAAAAAAWtAAAAAAWxAAAAAAW1AAAAAAW5AAJ4BACEWAwAAtAEAIAUAALUBACBhAACyAQAwYgAAAwAQYwAAsgEAMGZAAJEBACFyAQCQAQAhdAEAkAEAIXUBAJABACF3QACRAQAhegIApwEAIXsBAJABACGBAQEAkAEAIYIBAQCQAQAhgwEBAJABACGEAQEAkAEAIYUBAQCQAQAhhgEBAKwBACGHAQIAswEAIYgBQACwAQAhjwEAAAMAIJABAAADACAUAwAAtAEAIAUAALUBACBhAACyAQAwYgAAAwAQYwAAsgEAMGZAAJEBACFyAQCQAQAhdAEAkAEAIXUBAJABACF3QACRAQAhegIApwEAIXsBAJABACGBAQEAkAEAIYIBAQCQAQAhgwEBAJABACGEAQEAkAEAIYUBAQCQAQAhhgEBAKwBACGHAQIAswEAIYgBQACwAQAhCGcCAAAAAWgCAAAABWkCAAAABWoCAAAAAWsCAAAAAWwCAAAAAW0CAAAAAW4CAJgBACENBwAAqAEAIAgAAKkBACBhAACmAQAwYgAAEAAQYwAApgEAMHIBAJABACF0AQCQAQAhdQEAkAEAIXdAAJEBACF6AgCnAQAhiQEBAJABACGPAQAAEAAgkAEAABAAIAOKAQAABwAgiwEAAAcAIIwBAAAHACACdAEAAAABdQEAAAABAAAAAZQBAQAAAAEBlAFAAAAAAQAAAAABlAEgAAAAAQGUAQEAAAABBxUAAJYCACAWAACZAgAgkQEAAJcCACCSAQAAmAIAIJUBAAAQACCWAQAAEAAglwEAAAEAIAMVAACWAgAgkQEAAJcCACCXAQAAAQAgAAAAAAAFlAECAAAAAZoBAgAAAAGbAQIAAAABnAECAAAAAZ0BAgAAAAEBlAFAAAAAAQUVAACRAgAgFgAAlAIAIJEBAACSAgAgkgEAAJMCACCXAQAABQAgAxUAAJECACCRAQAAkgIAIJcBAAAFACAAAAAAAAWUAQIAAAABmgECAAAAAZsBAgAAAAGcAQIAAAABnQECAAAAAQUVAACLAgAgFgAAjwIAIJEBAACMAgAgkgEAAI4CACCXAQAAAQAgCxUAANUBADAWAADaAQAwkQEAANYBADCSAQAA1wEAMJMBAADYAQAglAEAANkBADCVAQAA2QEAMJYBAADZAQAwlwEAANkBADCYAQAA2wEAMJkBAADcAQAwCmZAAAAAAXdAAAAAAXgBAAAAAXoCAAAAAXsBAAAAAXwBAAAAAX1AAAAAAX5AAAAAAX8BAAAAAYABIAAAAAECAAAACQAgFQAA4AEAIAMAAAAJACAVAADgAQAgFgAA3wEAIAEOAACNAgAwDwQAALEBACBhAACvAQAwYgAABwAQYwAArwEAMGZAAJEBACF3QACRAQAheAEAAAABeQEAkAEAIXoCAKcBACF7AQCQAQAhfAEAkAEAIX1AAJEBACF-QACwAQAhfwEArAEAIYABIACtAQAhAgAAAAkAIA4AAN8BACACAAAA3QEAIA4AAN4BACAOYQAA3AEAMGIAAN0BABBjAADcAQAwZkAAkQEAIXdAAJEBACF4AQCQAQAheQEAkAEAIXoCAKcBACF7AQCQAQAhfAEAkAEAIX1AAJEBACF-QACwAQAhfwEArAEAIYABIACtAQAhDmEAANwBADBiAADdAQAQYwAA3AEAMGZAAJEBACF3QACRAQAheAEAkAEAIXkBAJABACF6AgCnAQAhewEAkAEAIXwBAJABACF9QACRAQAhfkAAsAEAIX8BAKwBACGAASAArQEAIQpmQAC7AQAhd0AAuwEAIXgBALoBACF6AgDJAQAhewEAugEAIXwBALoBACF9QAC7AQAhfkAAygEAIX8BAMEBACGAASAAwAEAIQpmQAC7AQAhd0AAuwEAIXgBALoBACF6AgDJAQAhewEAugEAIXwBALoBACF9QAC7AQAhfkAAygEAIX8BAMEBACGAASAAwAEAIQpmQAAAAAF3QAAAAAF4AQAAAAF6AgAAAAF7AQAAAAF8AQAAAAF9QAAAAAF-QAAAAAF_AQAAAAGAASAAAAABAxUAAIsCACCRAQAAjAIAIJcBAAABACAEFQAA1QEAMJEBAADWAQAwkwEAANgBACCXAQAA2QEAMAAAAAAACxUAAPYBADAWAAD7AQAwkQEAAPcBADCSAQAA-AEAMJMBAAD5AQAglAEAAPoBADCVAQAA-gEAMJYBAAD6AQAwlwEAAPoBADCYAQAA_AEAMJkBAAD9AQAwCxUAAOoBADAWAADvAQAwkQEAAOsBADCSAQAA7AEAMJMBAADtAQAglAEAAO4BADCVAQAA7gEAMJYBAADuAQAwlwEAAO4BADCYAQAA8AEAMJkBAADxAQAwB2QBAAAAAWUBAAAAAWZAAAAAAXIBAAAAAXMBAAAAAXYgAAAAAXdAAAAAAQIAAAAOACAVAAD1AQAgAwAAAA4AIBUAAPUBACAWAAD0AQAgAQ4AAIoCADAOAwAArgEAIGEAAKsBADBiAAAMABBjAACrAQAwZAEAkAEAIWUBAJABACFmQACRAQAhcgEAAAABcwEAkAEAIXQBAKwBACF1AQCsAQAhdiAArQEAIXdAAJEBACGNAQAAqgEAIAIAAAAOACAOAAD0AQAgAgAAAPIBACAOAADzAQAgDGEAAPEBADBiAADyAQAQYwAA8QEAMGQBAJABACFlAQCQAQAhZkAAkQEAIXIBAJABACFzAQCQAQAhdAEArAEAIXUBAKwBACF2IACtAQAhd0AAkQEAIQxhAADxAQAwYgAA8gEAEGMAAPEBADBkAQCQAQAhZQEAkAEAIWZAAJEBACFyAQCQAQAhcwEAkAEAIXQBAKwBACF1AQCsAQAhdiAArQEAIXdAAJEBACEHZAEAugEAIWUBALoBACFmQAC7AQAhcgEAugEAIXMBALoBACF2IADAAQAhd0AAuwEAIQdkAQC6AQAhZQEAugEAIWZAALsBACFyAQC6AQAhcwEAugEAIXYgAMABACF3QAC7AQAhB2QBAAAAAWUBAAAAAWZAAAAAAXIBAAAAAXMBAAAAAXYgAAAAAXdAAAAAAQ8FAADiAQAgZkAAAAABcgEAAAABdAEAAAABdQEAAAABd0AAAAABegIAAAABewEAAAABgQEBAAAAAYIBAQAAAAGDAQEAAAABhAEBAAAAAYYBAQAAAAGHAQIAAAABiAFAAAAAAQIAAAAFACAVAACBAgAgAwAAAAUAIBUAAIECACAWAACAAgAgAQ4AAIkCADAUAwAAtAEAIAUAALUBACBhAACyAQAwYgAAAwAQYwAAsgEAMGZAAJEBACFyAQAAAAF0AQCQAQAhdQEAkAEAIXdAAJEBACF6AgCnAQAhewEAkAEAIYEBAQCQAQAhggEBAJABACGDAQEAkAEAIYQBAQCQAQAhhQEBAJABACGGAQEArAEAIYcBAgCzAQAhiAFAALABACECAAAABQAgDgAAgAIAIAIAAAD-AQAgDgAA_wEAIBJhAAD9AQAwYgAA_gEAEGMAAP0BADBmQACRAQAhcgEAkAEAIXQBAJABACF1AQCQAQAhd0AAkQEAIXoCAKcBACF7AQCQAQAhgQEBAJABACGCAQEAkAEAIYMBAQCQAQAhhAEBAJABACGFAQEAkAEAIYYBAQCsAQAhhwECALMBACGIAUAAsAEAIRJhAAD9AQAwYgAA_gEAEGMAAP0BADBmQACRAQAhcgEAkAEAIXQBAJABACF1AQCQAQAhd0AAkQEAIXoCAKcBACF7AQCQAQAhgQEBAJABACGCAQEAkAEAIYMBAQCQAQAhhAEBAJABACGFAQEAkAEAIYYBAQCsAQAhhwECALMBACGIAUAAsAEAIQ5mQAC7AQAhcgEAugEAIXQBALoBACF1AQC6AQAhd0AAuwEAIXoCAMkBACF7AQC6AQAhgQEBALoBACGCAQEAugEAIYMBAQC6AQAhhAEBALoBACGGAQEAwQEAIYcBAgDSAQAhiAFAAMoBACEPBQAA1AEAIGZAALsBACFyAQC6AQAhdAEAugEAIXUBALoBACF3QAC7AQAhegIAyQEAIXsBALoBACGBAQEAugEAIYIBAQC6AQAhgwEBALoBACGEAQEAugEAIYYBAQDBAQAhhwECANIBACGIAUAAygEAIQ8FAADiAQAgZkAAAAABcgEAAAABdAEAAAABdQEAAAABd0AAAAABegIAAAABewEAAAABgQEBAAAAAYIBAQAAAAGDAQEAAAABhAEBAAAAAYYBAQAAAAGHAQIAAAABiAFAAAAAAQQVAAD2AQAwkQEAAPcBADCTAQAA-QEAIJcBAAD6AQAwBBUAAOoBADCRAQAA6wEAMJMBAADtAQAglwEAAO4BADAAAAIHAACEAgAgCAAAhQIAIAUDAACGAgAgBQAAiAIAIIYBAAC8AQAghwEAALwBACCIAQAAvAEAIAAOZkAAAAABcgEAAAABdAEAAAABdQEAAAABd0AAAAABegIAAAABewEAAAABgQEBAAAAAYIBAQAAAAGDAQEAAAABhAEBAAAAAYYBAQAAAAGHAQIAAAABiAFAAAAAAQdkAQAAAAFlAQAAAAFmQAAAAAFyAQAAAAFzAQAAAAF2IAAAAAF3QAAAAAEHCAAAgwIAIHIBAAAAAXQBAAAAAXUBAAAAAXdAAAAAAXoCAAAAAYkBAQAAAAECAAAAAQAgFQAAiwIAIApmQAAAAAF3QAAAAAF4AQAAAAF6AgAAAAF7AQAAAAF8AQAAAAF9QAAAAAF-QAAAAAF_AQAAAAGAASAAAAABAwAAABAAIBUAAIsCACAWAACQAgAgCQAAABAAIAgAAOkBACAOAACQAgAgcgEAugEAIXQBALoBACF1AQC6AQAhd0AAuwEAIXoCAMkBACGJAQEAugEAIQcIAADpAQAgcgEAugEAIXQBALoBACF1AQC6AQAhd0AAuwEAIXoCAMkBACGJAQEAugEAIRADAADhAQAgZkAAAAABcgEAAAABdAEAAAABdQEAAAABd0AAAAABegIAAAABewEAAAABgQEBAAAAAYIBAQAAAAGDAQEAAAABhAEBAAAAAYUBAQAAAAGGAQEAAAABhwECAAAAAYgBQAAAAAECAAAABQAgFQAAkQIAIAMAAAADACAVAACRAgAgFgAAlQIAIBIAAAADACADAADTAQAgDgAAlQIAIGZAALsBACFyAQC6AQAhdAEAugEAIXUBALoBACF3QAC7AQAhegIAyQEAIXsBALoBACGBAQEAugEAIYIBAQC6AQAhgwEBALoBACGEAQEAugEAIYUBAQC6AQAhhgEBAMEBACGHAQIA0gEAIYgBQADKAQAhEAMAANMBACBmQAC7AQAhcgEAugEAIXQBALoBACF1AQC6AQAhd0AAuwEAIXoCAMkBACF7AQC6AQAhgQEBALoBACGCAQEAugEAIYMBAQC6AQAhhAEBALoBACGFAQEAugEAIYYBAQDBAQAhhwECANIBACGIAUAAygEAIQcHAACCAgAgcgEAAAABdAEAAAABdQEAAAABd0AAAAABegIAAAABiQEBAAAAAQIAAAABACAVAACWAgAgAwAAABAAIBUAAJYCACAWAACaAgAgCQAAABAAIAcAAOgBACAOAACaAgAgcgEAugEAIXQBALoBACF1AQC6AQAhd0AAuwEAIXoCAMkBACGJAQEAugEAIQcHAADoAQAgcgEAugEAIXQBALoBACF1AQC6AQAhd0AAuwEAIXoCAMkBACGJAQEAugEAIQMGAAYHBgIIDwUDAwABBQoDBgAEAQQAAgEFCwABAxEBAgcSAAgTAAAAAAUGAAsbAAwcAA0dAA4eAA8AAAAAAAUGAAsbAAwcAA0dAA4eAA8BAwABAQMAAQUGABQbABUcABYdABceABgAAAAAAAUGABQbABUcABYdABceABgBBAACAQQAAgUGAB0bAB4cAB8dACAeACEAAAAAAAUGAB0bAB4cAB8dACAeACEBA2ABAQNmAQMGACYdACceACgAAAADBgAmHQAnHgAoAAAAAwYALh0ALx4AMAAAAAMGAC4dAC8eADAJAgEKFAELFgEMFwENGAEPGgEQHAcRHQgSHwETIQcUIgkXIwEYJAEZJQcfKAogKRAhKgIiKwIjLAIkLQIlLgImMAInMgcoMxEpNQIqNwcrOBIsOQItOgIuOwcvPhMwPxkxQAMyQQMzQgM0QwM1RAM2RgM3SAc4SRo5SwM6TQc7Ths8TwM9UAM-UQc_VBxAVSJBVgVCVwVDWAVEWQVFWgVGXAVHXgdIXyNJYgVKZAdLZSRMZwVNaAVOaQdPbCVQbSlRbypScCpTcypUdCpVdSpWdypXeQdYeitZfCpafgdbfyxcgAEqXYEBKl6CAQdfhQEtYIYBMQ"
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\",\"_avg\",\"_sum\",\"_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\",\"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\",\"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\",\"ClaudeProfile.findUnique\",\"ClaudeProfile.findUniqueOrThrow\",\"ClaudeProfile.findFirst\",\"ClaudeProfile.findFirstOrThrow\",\"ClaudeProfile.findMany\",\"ClaudeProfile.createOne\",\"ClaudeProfile.createMany\",\"ClaudeProfile.createManyAndReturn\",\"ClaudeProfile.updateOne\",\"ClaudeProfile.updateMany\",\"ClaudeProfile.updateManyAndReturn\",\"ClaudeProfile.upsertOne\",\"ClaudeProfile.deleteOne\",\"ClaudeProfile.deleteMany\",\"ClaudeProfile.groupBy\",\"ClaudeProfile.aggregate\",\"AppSetting.findUnique\",\"AppSetting.findUniqueOrThrow\",\"AppSetting.findFirst\",\"AppSetting.findFirstOrThrow\",\"AppSetting.findMany\",\"AppSetting.createOne\",\"AppSetting.createMany\",\"AppSetting.createManyAndReturn\",\"AppSetting.updateOne\",\"AppSetting.updateMany\",\"AppSetting.updateManyAndReturn\",\"AppSetting.upsertOne\",\"AppSetting.deleteOne\",\"AppSetting.deleteMany\",\"AppSetting.groupBy\",\"AppSetting.aggregate\",\"AND\",\"OR\",\"NOT\",\"key\",\"value\",\"updatedAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"slug\",\"name\",\"createdAt\",\"id\",\"scope\",\"owner\",\"repo\",\"enabled\",\"tabId\",\"taskId\",\"order\",\"status\",\"mode\",\"startedAt\",\"completedAt\",\"todos\",\"unread\",\"title\",\"description\",\"branch\",\"baseBranch\",\"repoId\",\"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: "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_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_AQAAAAGAAQEAAAABgQEBAAAAAQsGAACkAQAgHQAApQEAIB4AAKUBACB3QAAAAAF4QAAAAAR5QAAAAAR6QAAAAAF7QAAAAAF8QAAAAAF9QAAAAAF-QACjAQAhCwYAAKQBACAdAAClAQAgHgAApQEAIHdAAAAAAXhAAAAABHlAAAAABHpAAAAAAXtAAAAAAXxAAAAAAX1AAAAAAX5AAKMBACEIdwIAAAABeAIAAAAEeQIAAAAEegIAAAABewIAAAABfAIAAAABfQIAAAABfgIApAEAIQh3QAAAAAF4QAAAAAR5QAAAAAR6QAAAAAF7QAAAAAF8QAAAAAF9QAAAAAF-QAClAQAhDgYAAKQBACAdAACnAQAgHgAApwEAIHcBAAAAAXgBAAAABHkBAAAABHoBAAAAAXsBAAAAAXwBAAAAAX0BAAAAAX4BAKYBACF_AQAAAAGAAQEAAAABgQEBAAAAAQt3AQAAAAF4AQAAAAR5AQAAAAR6AQAAAAF7AQAAAAF8AQAAAAF9AQAAAAF-AQCnAQAhfwEAAAABgAEBAAAAAYEBAQAAAAEGcQAAqAEAMHIAAIoBABBzAACoAQAwdAEAqQEAIXUBAKkBACF2QACqAQAhC3cBAAAAAXgBAAAABHkBAAAABHoBAAAAAXsBAAAAAXwBAAAAAX0BAAAAAX4BAKcBACF_AQAAAAGAAQEAAAABgQEBAAAAAQh3QAAAAAF4QAAAAAR5QAAAAAR6QAAAAAF7QAAAAAF8QAAAAAF9QAAAAAF-QAClAQAhBnEAAKsBADByAACEAQAQcwAAqwEAMIIBAQChAQAhgwEBAKEBACGEAUAAogEAIQZxAACsAQAwcgAAcQAQcwAArAEAMIIBAQCpAQAhgwEBAKkBACGEAUAAqgEAIQxxAACtAQAwcgAAawAQcwAArQEAMHQBAKEBACF1AQChAQAhdkAAogEAIYQBQACiAQAhhQEBAKEBACGGAQEAoQEAIYcBAQCuAQAhiAEBAK4BACGJASAArwEAIQ4GAACzAQAgHQAAtAEAIB4AALQBACB3AQAAAAF4AQAAAAV5AQAAAAV6AQAAAAF7AQAAAAF8AQAAAAF9AQAAAAF-AQCyAQAhfwEAAAABgAEBAAAAAYEBAQAAAAEFBgAApAEAIB0AALEBACAeAACxAQAgdyAAAAABfiAAsAEAIQUGAACkAQAgHQAAsQEAIB4AALEBACB3IAAAAAF-IACwAQAhAncgAAAAAX4gALEBACEOBgAAswEAIB0AALQBACAeAAC0AQAgdwEAAAABeAEAAAAFeQEAAAAFegEAAAABewEAAAABfAEAAAABfQEAAAABfgEAsgEAIX8BAAAAAYABAQAAAAGBAQEAAAABCHcCAAAAAXgCAAAABXkCAAAABXoCAAAAAXsCAAAAAXwCAAAAAX0CAAAAAX4CALMBACELdwEAAAABeAEAAAAFeQEAAAAFegEAAAABewEAAAABfAEAAAABfQEAAAABfgEAtAEAIX8BAAAAAYABAQAAAAGBAQEAAAABDnEAALUBADByAABTABBzAAC1AQAwdkAAogEAIYQBQACiAQAhigEBAKEBACGLAQEAoQEAIYwBAgC2AQAhjQEBAKEBACGOAQEAoQEAIY8BQACiAQAhkAFAALcBACGRAQEArgEAIZIBIACvAQAhDQYAAKQBACAbAAC7AQAgHAAApAEAIB0AAKQBACAeAACkAQAgdwIAAAABeAIAAAAEeQIAAAAEegIAAAABewIAAAABfAIAAAABfQIAAAABfgIAugEAIQsGAACzAQAgHQAAuQEAIB4AALkBACB3QAAAAAF4QAAAAAV5QAAAAAV6QAAAAAF7QAAAAAF8QAAAAAF9QAAAAAF-QAC4AQAhCwYAALMBACAdAAC5AQAgHgAAuQEAIHdAAAAAAXhAAAAABXlAAAAABXpAAAAAAXtAAAAAAXxAAAAAAX1AAAAAAX5AALgBACEId0AAAAABeEAAAAAFeUAAAAAFekAAAAABe0AAAAABfEAAAAABfUAAAAABfkAAuQEAIQ0GAACkAQAgGwAAuwEAIBwAAKQBACAdAACkAQAgHgAApAEAIHcCAAAAAXgCAAAABHkCAAAABHoCAAAAAXsCAAAAAXwCAAAAAX0CAAAAAX4CALoBACEIdwgAAAABeAgAAAAEeQgAAAAEeggAAAABewgAAAABfAgAAAABfQgAAAABfggAuwEAIRJxAAC8AQAwcgAAPQAQcwAAvAEAMHZAAKIBACGEAUAAogEAIYUBAQChAQAhhwEBAKEBACGIAQEAoQEAIYwBAgC2AQAhjQEBAKEBACGTAQEAoQEAIZQBAQChAQAhlQEBAKEBACGWAQEAoQEAIZcBAQChAQAhmAEBAK4BACGZAQIAvQEAIZoBQAC3AQAhDQYAALMBACAbAAC_AQAgHAAAswEAIB0AALMBACAeAACzAQAgdwIAAAABeAIAAAAFeQIAAAAFegIAAAABewIAAAABfAIAAAABfQIAAAABfgIAvgEAIQ0GAACzAQAgGwAAvwEAIBwAALMBACAdAACzAQAgHgAAswEAIHcCAAAAAXgCAAAABXkCAAAABXoCAAAAAXsCAAAAAXwCAAAAAX0CAAAAAX4CAL4BACEIdwgAAAABeAgAAAAFeQgAAAAFeggAAAABewgAAAABfAgAAAABfQgAAAABfggAvwEAIQlxAADAAQAwcgAAJwAQcwAAwAEAMIQBQACiAQAhhQEBAKEBACGHAQEAoQEAIYgBAQChAQAhjAECALYBACGbAQEAoQEAIQsHAADDAQAgCAAAxAEAIHEAAMEBADByAAAQABBzAADBAQAwhAFAAKoBACGFAQEAqQEAIYcBAQCpAQAhiAEBAKkBACGMAQIAwgEAIZsBAQCpAQAhCHcCAAAAAXgCAAAABHkCAAAABHoCAAAAAXsCAAAAAXwCAAAAAX0CAAAAAX4CAKQBACEDnAEAAAMAIJ0BAAADACCeAQAAAwAgA5wBAAAMACCdAQAADAAgngEAAAwAIAR0AQAAAAGGAQEAAAABhwEBAAAAAYgBAQAAAAENAwAAyQEAIHEAAMYBADByAAAMABBzAADGAQAwdAEAqQEAIXUBAKkBACF2QACqAQAhhAFAAKoBACGFAQEAqQEAIYYBAQCpAQAhhwEBAMcBACGIAQEAxwEAIYkBIADIAQAhC3cBAAAAAXgBAAAABXkBAAAABXoBAAAAAXsBAAAAAXwBAAAAAX0BAAAAAX4BALQBACF_AQAAAAGAAQEAAAABgQEBAAAAAQJ3IAAAAAF-IACxAQAhDQcAAMMBACAIAADEAQAgcQAAwQEAMHIAABAAEHMAAMEBADCEAUAAqgEAIYUBAQCpAQAhhwEBAKkBACGIAQEAqQEAIYwBAgDCAQAhmwEBAKkBACGhAQAAEAAgogEAABAAIA8EAADMAQAgcQAAygEAMHIAAAcAEHMAAMoBADB2QACqAQAhhAFAAKoBACGKAQEAqQEAIYsBAQCpAQAhjAECAMIBACGNAQEAqQEAIY4BAQCpAQAhjwFAAKoBACGQAUAAywEAIZEBAQDHAQAhkgEgAMgBACEId0AAAAABeEAAAAAFeUAAAAAFekAAAAABe0AAAAABfEAAAAABfUAAAAABfkAAuQEAIRYDAADPAQAgBQAA0AEAIHEAAM0BADByAAADABBzAADNAQAwdkAAqgEAIYQBQACqAQAhhQEBAKkBACGHAQEAqQEAIYgBAQCpAQAhjAECAMIBACGNAQEAqQEAIZMBAQCpAQAhlAEBAKkBACGVAQEAqQEAIZYBAQCpAQAhlwEBAKkBACGYAQEAxwEAIZkBAgDOAQAhmgFAAMsBACGhAQAAAwAgogEAAAMAIBQDAADPAQAgBQAA0AEAIHEAAM0BADByAAADABBzAADNAQAwdkAAqgEAIYQBQACqAQAhhQEBAKkBACGHAQEAqQEAIYgBAQCpAQAhjAECAMIBACGNAQEAqQEAIZMBAQCpAQAhlAEBAKkBACGVAQEAqQEAIZYBAQCpAQAhlwEBAKkBACGYAQEAxwEAIZkBAgDOAQAhmgFAAMsBACEIdwIAAAABeAIAAAAFeQIAAAAFegIAAAABewIAAAABfAIAAAABfQIAAAABfgIAswEAIQ0HAADDAQAgCAAAxAEAIHEAAMEBADByAAAQABBzAADBAQAwhAFAAKoBACGFAQEAqQEAIYcBAQCpAQAhiAEBAKkBACGMAQIAwgEAIZsBAQCpAQAhoQEAABAAIKIBAAAQACADnAEAAAcAIJ0BAAAHACCeAQAABwAgAocBAQAAAAGIAQEAAAABAAAAAaYBAQAAAAEBpgFAAAAAAQAAAAAAAAABpgEgAAAAAQGmAQEAAAABBxUAALQCACAWAAC3AgAgowEAALUCACCkAQAAtgIAIKcBAAAQACCoAQAAEAAgqQEAAAEAIAMVAAC0AgAgowEAALUCACCpAQAAAQAgAAAAAAAFpgECAAAAAawBAgAAAAGtAQIAAAABrgECAAAAAa8BAgAAAAEBpgFAAAAAAQUVAACvAgAgFgAAsgIAIKMBAACwAgAgpAEAALECACCpAQAABQAgAxUAAK8CACCjAQAAsAIAIKkBAAAFACAAAAAAAAWmAQIAAAABrAECAAAAAa0BAgAAAAGuAQIAAAABrwECAAAAAQUVAACpAgAgFgAArQIAIKMBAACqAgAgpAEAAKwCACCpAQAAAQAgCxUAAPMBADAWAAD4AQAwowEAAPQBADCkAQAA9QEAMKUBAAD2AQAgpgEAAPcBADCnAQAA9wEAMKgBAAD3AQAwqQEAAPcBADCqAQAA-QEAMKsBAAD6AQAwCnZAAAAAAYQBQAAAAAGKAQEAAAABjAECAAAAAY0BAQAAAAGOAQEAAAABjwFAAAAAAZABQAAAAAGRAQEAAAABkgEgAAAAAQIAAAAJACAVAAD-AQAgAwAAAAkAIBUAAP4BACAWAAD9AQAgAQ4AAKsCADAPBAAAzAEAIHEAAMoBADByAAAHABBzAADKAQAwdkAAqgEAIYQBQACqAQAhigEBAAAAAYsBAQCpAQAhjAECAMIBACGNAQEAqQEAIY4BAQCpAQAhjwFAAKoBACGQAUAAywEAIZEBAQDHAQAhkgEgAMgBACECAAAACQAgDgAA_QEAIAIAAAD7AQAgDgAA_AEAIA5xAAD6AQAwcgAA-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_AQAgdkAAAAABhAFAAAAAAYUBAQAAAAGHAQEAAAABiAEBAAAAAYwBAgAAAAGNAQEAAAABkwEBAAAAAZQBAQAAAAGVAQEAAAABlgEBAAAAAZcBAQAAAAGYAQEAAAABmQECAAAAAZoBQAAAAAECAAAABQAgFQAArwIAIAMAAAADACAVAACvAgAgFgAAswIAIBIAAAADACADAADxAQAgDgAAswIAIHZAANYBACGEAUAA1gEAIYUBAQDVAQAhhwEBANUBACGIAQEA1QEAIYwBAgDnAQAhjQEBANUBACGTAQEA1QEAIZQBAQDVAQAhlQEBANUBACGWAQEA1QEAIZcBAQDVAQAhmAEBAN8BACGZAQIA8AEAIZoBQADoAQAhEAMAAPEBACB2QADWAQAhhAFAANYBACGFAQEA1QEAIYcBAQDVAQAhiAEBANUBACGMAQIA5wEAIY0BAQDVAQAhkwEBANUBACGUAQEA1QEAIZUBAQDVAQAhlgEBANUBACGXAQEA1QEAIZgBAQDfAQAhmQECAPABACGaAUAA6AEAIQcHAACgAgAghAFAAAAAAYUBAQAAAAGHAQEAAAABiAEBAAAAAYwBAgAAAAGbAQEAAAABAgAAAAEAIBUAALQCACADAAAAEAAgFQAAtAIAIBYAALgCACAJAAAAEAAgBwAAhgIAIA4AALgCACCEAUAA1gEAIYUBAQDVAQAhhwEBANUBACGIAQEA1QEAIYwBAgDnAQAhmwEBANUBACEHBwAAhgIAIIQBQADWAQAhhQEBANUBACGHAQEA1QEAIYgBAQDVAQAhjAECAOcBACGbAQEA1QEAIQMGAAYHBgIIDwUDAwABBQoDBgAEAQQAAgEFCwABAxEBAgcSAAgTAAAAAAUGAAsbAAwcAA0dAA4eAA8AAAAAAAUGAAsbAAwcAA0dAA4eAA8BAwABAQMAAQUGABQbABUcABYdABceABgAAAAAAAUGABQbABUcABYdABceABgBBAACAQQAAgUGAB0bAB4cAB8dACAeACEAAAAAAAUGAB0bAB4cAB8dACAeACEBA2ABAQNmAQMGACYdACceACgAAAADBgAmHQAnHgAoAAAAAwYALh0ALx4AMAAAAAMGAC4dAC8eADAAAAADBgA2HQA3HgA4AAAAAwYANh0ANx4AOAkCAQoUAQsWAQwXAQ0YAQ8aARAcBxEdCBIfARMhBxQiCRcjARgkARklBx8oCiApECEqAiIrAiMsAiQtAiUuAiYwAicyBygzESk1Aio3Bys4Eiw5Ai06Ai47By8-EzA_GTFAAzJBAzNCAzRDAzVEAzZGAzdIBzhJGjlLAzpNBztOGzxPAz1QAz5RBz9UHEBVIkFWBUJXBUNYBURZBUVaBUZcBUdeB0hfI0liBUpkB0tlJExnBU1oBU5pB09sJVBtKVFvKlJwKlNzKlR0KlV1KlZ3Kld5B1h6K1l8Klp-B1t_LFyAASpdgQEqXoIBB1-FAS1ghgExYYgBMmKJATJjjAEyZI0BMmWOATJmkAEyZ5IBB2iTATNplQEyapcBB2uYATRsmQEybZoBMm6bAQdvngE1cJ8BOQ"
33
33
  };
34
34
  async function decodeBase64AsWasm(wasmBase64) {
35
35
  const { Buffer } = await import('node:buffer');
@@ -235,6 +235,7 @@ export declare const ModelName: {
235
235
  readonly Task: "Task";
236
236
  readonly Tab: "Tab";
237
237
  readonly EnvironmentVariable: "EnvironmentVariable";
238
+ readonly ClaudeProfile: "ClaudeProfile";
238
239
  readonly AppSetting: "AppSetting";
239
240
  };
240
241
  export type ModelName = (typeof ModelName)[keyof typeof ModelName];
@@ -248,7 +249,7 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
248
249
  omit: GlobalOmitOptions;
249
250
  };
250
251
  meta: {
251
- modelProps: "repository" | "task" | "tab" | "environmentVariable" | "appSetting";
252
+ modelProps: "repository" | "task" | "tab" | "environmentVariable" | "claudeProfile" | "appSetting";
252
253
  txIsolationLevel: TransactionIsolationLevel;
253
254
  };
254
255
  model: {
@@ -548,6 +549,80 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
548
549
  };
549
550
  };
550
551
  };
552
+ ClaudeProfile: {
553
+ payload: Prisma.$ClaudeProfilePayload<ExtArgs>;
554
+ fields: Prisma.ClaudeProfileFieldRefs;
555
+ operations: {
556
+ findUnique: {
557
+ args: Prisma.ClaudeProfileFindUniqueArgs<ExtArgs>;
558
+ result: runtime.Types.Utils.PayloadToResult<Prisma.$ClaudeProfilePayload> | null;
559
+ };
560
+ findUniqueOrThrow: {
561
+ args: Prisma.ClaudeProfileFindUniqueOrThrowArgs<ExtArgs>;
562
+ result: runtime.Types.Utils.PayloadToResult<Prisma.$ClaudeProfilePayload>;
563
+ };
564
+ findFirst: {
565
+ args: Prisma.ClaudeProfileFindFirstArgs<ExtArgs>;
566
+ result: runtime.Types.Utils.PayloadToResult<Prisma.$ClaudeProfilePayload> | null;
567
+ };
568
+ findFirstOrThrow: {
569
+ args: Prisma.ClaudeProfileFindFirstOrThrowArgs<ExtArgs>;
570
+ result: runtime.Types.Utils.PayloadToResult<Prisma.$ClaudeProfilePayload>;
571
+ };
572
+ findMany: {
573
+ args: Prisma.ClaudeProfileFindManyArgs<ExtArgs>;
574
+ result: runtime.Types.Utils.PayloadToResult<Prisma.$ClaudeProfilePayload>[];
575
+ };
576
+ create: {
577
+ args: Prisma.ClaudeProfileCreateArgs<ExtArgs>;
578
+ result: runtime.Types.Utils.PayloadToResult<Prisma.$ClaudeProfilePayload>;
579
+ };
580
+ createMany: {
581
+ args: Prisma.ClaudeProfileCreateManyArgs<ExtArgs>;
582
+ result: BatchPayload;
583
+ };
584
+ createManyAndReturn: {
585
+ args: Prisma.ClaudeProfileCreateManyAndReturnArgs<ExtArgs>;
586
+ result: runtime.Types.Utils.PayloadToResult<Prisma.$ClaudeProfilePayload>[];
587
+ };
588
+ delete: {
589
+ args: Prisma.ClaudeProfileDeleteArgs<ExtArgs>;
590
+ result: runtime.Types.Utils.PayloadToResult<Prisma.$ClaudeProfilePayload>;
591
+ };
592
+ update: {
593
+ args: Prisma.ClaudeProfileUpdateArgs<ExtArgs>;
594
+ result: runtime.Types.Utils.PayloadToResult<Prisma.$ClaudeProfilePayload>;
595
+ };
596
+ deleteMany: {
597
+ args: Prisma.ClaudeProfileDeleteManyArgs<ExtArgs>;
598
+ result: BatchPayload;
599
+ };
600
+ updateMany: {
601
+ args: Prisma.ClaudeProfileUpdateManyArgs<ExtArgs>;
602
+ result: BatchPayload;
603
+ };
604
+ updateManyAndReturn: {
605
+ args: Prisma.ClaudeProfileUpdateManyAndReturnArgs<ExtArgs>;
606
+ result: runtime.Types.Utils.PayloadToResult<Prisma.$ClaudeProfilePayload>[];
607
+ };
608
+ upsert: {
609
+ args: Prisma.ClaudeProfileUpsertArgs<ExtArgs>;
610
+ result: runtime.Types.Utils.PayloadToResult<Prisma.$ClaudeProfilePayload>;
611
+ };
612
+ aggregate: {
613
+ args: Prisma.ClaudeProfileAggregateArgs<ExtArgs>;
614
+ result: runtime.Types.Utils.Optional<Prisma.AggregateClaudeProfile>;
615
+ };
616
+ groupBy: {
617
+ args: Prisma.ClaudeProfileGroupByArgs<ExtArgs>;
618
+ result: runtime.Types.Utils.Optional<Prisma.ClaudeProfileGroupByOutputType>[];
619
+ };
620
+ count: {
621
+ args: Prisma.ClaudeProfileCountArgs<ExtArgs>;
622
+ result: runtime.Types.Utils.Optional<Prisma.ClaudeProfileCountAggregateOutputType> | number;
623
+ };
624
+ };
625
+ };
551
626
  AppSetting: {
552
627
  payload: Prisma.$AppSettingPayload<ExtArgs>;
553
628
  fields: Prisma.AppSettingFieldRefs;
@@ -706,6 +781,12 @@ export declare const EnvironmentVariableScalarFieldEnum: {
706
781
  readonly updatedAt: "updatedAt";
707
782
  };
708
783
  export type EnvironmentVariableScalarFieldEnum = (typeof EnvironmentVariableScalarFieldEnum)[keyof typeof EnvironmentVariableScalarFieldEnum];
784
+ export declare const ClaudeProfileScalarFieldEnum: {
785
+ readonly slug: "slug";
786
+ readonly name: "name";
787
+ readonly createdAt: "createdAt";
788
+ };
789
+ export type ClaudeProfileScalarFieldEnum = (typeof ClaudeProfileScalarFieldEnum)[keyof typeof ClaudeProfileScalarFieldEnum];
709
790
  export declare const AppSettingScalarFieldEnum: {
710
791
  readonly key: "key";
711
792
  readonly value: "value";
@@ -843,6 +924,7 @@ export type GlobalOmitConfig = {
843
924
  task?: Prisma.TaskOmit;
844
925
  tab?: Prisma.TabOmit;
845
926
  environmentVariable?: Prisma.EnvironmentVariableOmit;
927
+ claudeProfile?: Prisma.ClaudeProfileOmit;
846
928
  appSetting?: Prisma.AppSettingOmit;
847
929
  };
848
930
  export type LogLevel = 'info' | 'query' | 'warn' | 'error';
@@ -71,6 +71,7 @@ export const ModelName = {
71
71
  Task: 'Task',
72
72
  Tab: 'Tab',
73
73
  EnvironmentVariable: 'EnvironmentVariable',
74
+ ClaudeProfile: 'ClaudeProfile',
74
75
  AppSetting: 'AppSetting'
75
76
  };
76
77
  /**
@@ -128,6 +129,11 @@ export const EnvironmentVariableScalarFieldEnum = {
128
129
  createdAt: 'createdAt',
129
130
  updatedAt: 'updatedAt'
130
131
  };
132
+ export const ClaudeProfileScalarFieldEnum = {
133
+ slug: 'slug',
134
+ name: 'name',
135
+ createdAt: 'createdAt'
136
+ };
131
137
  export const AppSettingScalarFieldEnum = {
132
138
  key: 'key',
133
139
  value: 'value',
@@ -30,6 +30,7 @@ export declare const ModelName: {
30
30
  readonly Task: "Task";
31
31
  readonly Tab: "Tab";
32
32
  readonly EnvironmentVariable: "EnvironmentVariable";
33
+ readonly ClaudeProfile: "ClaudeProfile";
33
34
  readonly AppSetting: "AppSetting";
34
35
  };
35
36
  export type ModelName = (typeof ModelName)[keyof typeof ModelName];
@@ -90,6 +91,12 @@ export declare const EnvironmentVariableScalarFieldEnum: {
90
91
  readonly updatedAt: "updatedAt";
91
92
  };
92
93
  export type EnvironmentVariableScalarFieldEnum = (typeof EnvironmentVariableScalarFieldEnum)[keyof typeof EnvironmentVariableScalarFieldEnum];
94
+ export declare const ClaudeProfileScalarFieldEnum: {
95
+ readonly slug: "slug";
96
+ readonly name: "name";
97
+ readonly createdAt: "createdAt";
98
+ };
99
+ export type ClaudeProfileScalarFieldEnum = (typeof ClaudeProfileScalarFieldEnum)[keyof typeof ClaudeProfileScalarFieldEnum];
93
100
  export declare const AppSettingScalarFieldEnum: {
94
101
  readonly key: "key";
95
102
  readonly value: "value";
@@ -43,6 +43,7 @@ export const ModelName = {
43
43
  Task: 'Task',
44
44
  Tab: 'Tab',
45
45
  EnvironmentVariable: 'EnvironmentVariable',
46
+ ClaudeProfile: 'ClaudeProfile',
46
47
  AppSetting: 'AppSetting'
47
48
  };
48
49
  /*
@@ -100,6 +101,11 @@ export const EnvironmentVariableScalarFieldEnum = {
100
101
  createdAt: 'createdAt',
101
102
  updatedAt: 'updatedAt'
102
103
  };
104
+ export const ClaudeProfileScalarFieldEnum = {
105
+ slug: 'slug',
106
+ name: 'name',
107
+ createdAt: 'createdAt'
108
+ };
103
109
  export const AppSettingScalarFieldEnum = {
104
110
  key: 'key',
105
111
  value: 'value',