@minimalcorp/tsunagi 0.0.4 → 0.1.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 (702) hide show
  1. package/.next/standalone/apps/web/.next/BUILD_ID +1 -1
  2. package/.next/standalone/apps/web/.next/app-path-routes-manifest.json +0 -28
  3. package/.next/standalone/apps/web/.next/build-manifest.json +3 -3
  4. package/.next/standalone/apps/web/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/apps/web/.next/required-server-files.json +1 -15
  6. package/.next/standalone/apps/web/.next/routes-manifest.json +1 -200
  7. package/.next/standalone/apps/web/.next/server/app/_global-error/page.js +1 -1
  8. package/.next/standalone/apps/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/apps/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/apps/web/.next/server/app/_global-error.html +1 -1
  11. package/.next/standalone/apps/web/.next/server/app/_global-error.rsc +1 -1
  12. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  13. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  15. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  16. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next/standalone/apps/web/.next/server/app/_not-found/page.js +1 -1
  18. package/.next/standalone/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
  21. package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +14 -14
  22. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
  23. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  24. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_index.segment.rsc +8 -8
  25. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  26. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  27. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  28. package/.next/standalone/apps/web/.next/server/app/icon.png/route.js +1 -2
  29. package/.next/standalone/apps/web/.next/server/app/icon.png/route.js.nft.json +1 -1
  30. package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
  31. package/.next/standalone/apps/web/.next/server/app/index.rsc +16 -16
  32. package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  33. package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +16 -16
  34. package/.next/standalone/apps/web/.next/server/app/index.segments/_head.segment.rsc +4 -4
  35. package/.next/standalone/apps/web/.next/server/app/index.segments/_index.segment.rsc +8 -8
  36. package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  37. package/.next/standalone/apps/web/.next/server/app/page.js +1 -1
  38. package/.next/standalone/apps/web/.next/server/app/page.js.nft.json +1 -1
  39. package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/apps/web/.next/server/app/settings/page.js +1 -1
  41. package/.next/standalone/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
  42. package/.next/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/apps/web/.next/server/app/settings.html +1 -1
  44. package/.next/standalone/apps/web/.next/server/app/settings.rsc +16 -16
  45. package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +16 -16
  46. package/.next/standalone/apps/web/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  47. package/.next/standalone/apps/web/.next/server/app/settings.segments/_index.segment.rsc +8 -8
  48. package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  49. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  50. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  51. package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page.js +1 -1
  52. package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page.js.nft.json +1 -1
  53. package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/apps/web/.next/server/app-paths-manifest.json +0 -28
  55. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0jam776._.js +13 -0
  56. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_icon_png_route_actions_01922jn.js +1 -1
  57. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0.71xtd._.js +3 -0
  58. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0a8.h72._.js +3 -0
  59. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0cl-0al._.js +3 -0
  60. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0dg0i1g._.js +3 -0
  61. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0e2_bho._.js +3 -0
  62. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ff1foz._.js +3 -0
  63. package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__01cqrhy._.js → [root-of-the-server]__0h4wzcb._.js} +2 -2
  64. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0hhfi7s._.js +3 -0
  65. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0mo_9ei._.js +1 -1
  66. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0n2qong._.js +3 -0
  67. package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__098q4~4._.js → [root-of-the-server]__0ome304._.js} +2 -2
  68. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0qtqq5d._.js +3 -0
  69. package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__03mpod.._.js → [root-of-the-server]__0qw6wy3._.js} +4 -4
  70. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0sha5xx._.js +3 -0
  71. package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__00pql9~._.js → [root-of-the-server]__12yece_._.js} +4 -4
  72. package/.next/standalone/apps/web/.next/server/chunks/ssr/{_0ol3g7m._.js → _075y~8w._.js} +2 -2
  73. package/.next/standalone/apps/web/.next/server/chunks/ssr/{_10np2kf._.js → _0ciirh0._.js} +3 -3
  74. package/.next/standalone/apps/web/.next/server/chunks/ssr/_0g.cd6a._.js +1 -1
  75. package/.next/standalone/apps/web/.next/server/chunks/ssr/{_00wnq9i._.js → _0m02uow._.js} +3 -3
  76. package/.next/standalone/apps/web/.next/server/chunks/ssr/{_0mjd2fj._.js → _12haisb._.js} +3 -3
  77. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app__global-error_page_actions_0.u5cfa.js +1 -1
  78. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app__not-found_page_actions_0appun9.js +1 -1
  79. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_page_actions_0rm5_5w.js +1 -1
  80. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_settings_page_actions_0f6epye.js +1 -1
  81. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web__next-internal_server_app_tasks_[id]_page_actions_0.6kbe~.js +1 -1
  82. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_settings_page_tsx_0i6itlb._.js +2 -2
  83. package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_tasks_[id]_page_tsx_0jshsm2._.js +2 -2
  84. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0-4t5u4._.js +3 -0
  85. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0.2komk._.js +3 -0
  86. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_02~gcwc._.js +31 -0
  87. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_055srxz._.js +3 -0
  88. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_05ji-z-._.js +3 -0
  89. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_07.c491._.js +11 -0
  90. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0coeuci._.js +3 -0
  91. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0cphr_r._.js +3 -0
  92. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0f2d1ld._.js +26 -0
  93. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0gpuu-x._.js +45 -0
  94. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0o5v9qy._.js +45 -0
  95. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0rry_x9._.js +31 -0
  96. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0s5._2.._.js +3 -0
  97. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0t3_1om._.js +26 -0
  98. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_12fhr6_._.js +11 -0
  99. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_12qdm6m._.js +3 -0
  100. package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +3 -3
  101. package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
  102. package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
  103. package/.next/standalone/apps/web/.next/server/server-reference-manifest.js +1 -1
  104. package/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
  105. package/.next/standalone/apps/web/.next/static/{JoYqGRe1NI9K8yLxCSu7g → YPzHzYzcA3DhWIUQf4Bh4}/_buildManifest.js +1 -5
  106. package/.next/standalone/apps/web/.next/static/chunks/{037p8v0.zt_g5.js → 01vu~a32zh7cz.js} +1 -1
  107. package/.next/standalone/apps/web/.next/static/chunks/0b8.3al6nvw3d.css +4 -0
  108. package/.next/standalone/apps/web/.next/static/chunks/{0cea659lv7fcc.js → 0dv3n-mxhr4w1.js} +1 -1
  109. package/.next/standalone/apps/web/.next/static/chunks/{0k7r2.t3p~iwm.js → 0ew.-lnxoet~x.js} +2 -2
  110. package/.next/standalone/apps/web/.next/static/chunks/{0kxp1btclqdj7.js → 0hx_sdyz0yyfb.js} +7 -7
  111. package/.next/standalone/apps/web/.next/static/chunks/{0p63tiak1b6s-.js → 0l0s3fn6xga.t.js} +2 -2
  112. package/.next/standalone/apps/web/.next/static/chunks/{0g.j9ko1tr-q0.js → 0xn4aezxw~.je.js} +1 -1
  113. package/.next/standalone/apps/web/.next/static/chunks/12r3ashx0krmo.js +3 -0
  114. package/.next/standalone/apps/web/.next/static/chunks/{0whqmdgrwdcvt.js → 13nnuqjd3vrm1.js} +2 -2
  115. package/.next/standalone/apps/web/.next/static/chunks/1490sj3xb9_m6.js +5 -0
  116. package/.next/standalone/apps/web/package.json +11 -78
  117. package/.next/standalone/apps/web/server.js +8 -2
  118. package/dist/auto-migrate.d.ts +1 -0
  119. package/dist/auto-migrate.js +30 -0
  120. package/dist/cli.d.ts +2 -0
  121. package/dist/cli.js +104 -0
  122. package/dist/plugin-lifecycle.d.ts +11 -0
  123. package/dist/plugin-lifecycle.js +111 -0
  124. package/dist/server/editor-session-store.d.ts +9 -0
  125. package/dist/server/editor-session-store.js +3 -6
  126. package/dist/server/generated/prisma/browser.d.ts +29 -0
  127. package/dist/server/generated/prisma/browser.js +17 -0
  128. package/dist/server/generated/prisma/client.d.ts +48 -0
  129. package/dist/server/generated/prisma/client.js +34 -0
  130. package/dist/server/generated/prisma/commonInputTypes.d.ts +355 -0
  131. package/dist/{generated → server/generated}/prisma/commonInputTypes.js +1 -2
  132. package/dist/server/generated/prisma/enums.d.ts +1 -0
  133. package/dist/{generated → server/generated}/prisma/enums.js +1 -2
  134. package/dist/server/generated/prisma/internal/class.d.ts +174 -0
  135. package/dist/{generated → server/generated}/prisma/internal/class.js +6 -42
  136. package/dist/server/generated/prisma/internal/prismaNamespace.d.ts +874 -0
  137. package/dist/server/generated/prisma/internal/prismaNamespace.js +146 -0
  138. package/dist/server/generated/prisma/internal/prismaNamespaceBrowser.d.ts +110 -0
  139. package/dist/{generated → server/generated}/prisma/internal/prismaNamespaceBrowser.js +15 -51
  140. package/dist/server/generated/prisma/models/EnvironmentVariable.d.ts +1331 -0
  141. package/dist/server/generated/prisma/models/EnvironmentVariable.js +1 -0
  142. package/dist/server/generated/prisma/models/PlannerTab.d.ts +1089 -0
  143. package/dist/server/generated/prisma/models/PlannerTab.js +1 -0
  144. package/dist/server/generated/prisma/models/Repository.d.ts +1277 -0
  145. package/dist/server/generated/prisma/models/Repository.js +1 -0
  146. package/dist/server/generated/prisma/models/Tab.d.ts +1357 -0
  147. package/dist/server/generated/prisma/models/Tab.js +1 -0
  148. package/dist/server/generated/prisma/models/Task.d.ts +1779 -0
  149. package/dist/server/generated/prisma/models/Task.js +1 -0
  150. package/dist/server/generated/prisma/models.d.ts +6 -0
  151. package/dist/server/generated/prisma/models.js +1 -0
  152. package/dist/server/index.d.ts +1 -0
  153. package/dist/server/index.js +40 -22
  154. package/dist/server/lib/branch-utils.d.ts +1 -0
  155. package/dist/server/lib/branch-utils.js +4 -0
  156. package/dist/server/lib/data-path.d.ts +15 -0
  157. package/dist/server/lib/data-path.js +23 -0
  158. package/dist/server/lib/db.d.ts +2 -0
  159. package/dist/server/lib/db.js +13 -0
  160. package/dist/server/lib/repositories/environment.d.ts +6 -0
  161. package/dist/{src → server}/lib/repositories/environment.js +14 -21
  162. package/dist/server/lib/repositories/repository.d.ts +6 -0
  163. package/dist/{src → server}/lib/repositories/repository.js +13 -20
  164. package/dist/server/lib/repositories/task.d.ts +27 -0
  165. package/dist/{src → server}/lib/repositories/task.js +27 -41
  166. package/dist/server/lib/services/task-service.d.ts +69 -0
  167. package/dist/{src → server}/lib/services/task-service.js +22 -70
  168. package/dist/server/lib/worktree-manager.d.ts +25 -0
  169. package/dist/{src → server}/lib/worktree-manager.js +37 -89
  170. package/dist/server/pty-manager.d.ts +40 -0
  171. package/dist/server/pty-manager.js +3 -39
  172. package/dist/server/routes/commands.d.ts +2 -0
  173. package/dist/server/routes/commands.js +46 -0
  174. package/dist/server/routes/editor.d.ts +2 -0
  175. package/dist/server/routes/editor.js +34 -18
  176. package/dist/server/routes/env.d.ts +2 -0
  177. package/dist/server/routes/env.js +144 -0
  178. package/dist/server/routes/hooks.d.ts +25 -0
  179. package/dist/server/routes/hooks.js +15 -29
  180. package/dist/server/routes/internal.d.ts +2 -0
  181. package/dist/server/routes/internal.js +52 -0
  182. package/dist/server/routes/mcp.d.ts +2 -0
  183. package/dist/server/routes/mcp.js +65 -42
  184. package/dist/server/routes/onboarding.d.ts +2 -0
  185. package/dist/server/routes/onboarding.js +15 -0
  186. package/dist/server/routes/planner.d.ts +2 -0
  187. package/dist/server/routes/planner.js +86 -0
  188. package/dist/server/routes/repos.d.ts +2 -0
  189. package/dist/server/routes/repos.js +187 -0
  190. package/dist/server/routes/tasks.d.ts +2 -0
  191. package/dist/server/routes/tasks.js +322 -59
  192. package/dist/server/routes/terminal.d.ts +2 -0
  193. package/dist/server/routes/terminal.js +32 -67
  194. package/dist/server/routes/worktrees.d.ts +2 -0
  195. package/dist/server/routes/worktrees.js +82 -0
  196. package/dist/single-instance-lock.d.ts +6 -0
  197. package/dist/{scripts/single-instance-lock.js → single-instance-lock.js} +4 -40
  198. package/dist/with-plugin.d.ts +2 -0
  199. package/dist/with-plugin.js +66 -0
  200. package/package.json +10 -49
  201. package/prisma/schema.prisma +1 -1
  202. package/tsunagi-marketplace/plugins/tsunagi-plugin/.claude-plugin/plugin.json +24 -24
  203. package/.next/standalone/apps/web/.next/server/app/api/clone/route/app-paths-manifest.json +0 -3
  204. package/.next/standalone/apps/web/.next/server/app/api/clone/route/build-manifest.json +0 -9
  205. package/.next/standalone/apps/web/.next/server/app/api/clone/route/server-reference-manifest.json +0 -4
  206. package/.next/standalone/apps/web/.next/server/app/api/clone/route.js +0 -8
  207. package/.next/standalone/apps/web/.next/server/app/api/clone/route.js.map +0 -5
  208. package/.next/standalone/apps/web/.next/server/app/api/clone/route.js.nft.json +0 -1
  209. package/.next/standalone/apps/web/.next/server/app/api/clone/route_client-reference-manifest.js +0 -3
  210. package/.next/standalone/apps/web/.next/server/app/api/commands/open/route/app-paths-manifest.json +0 -3
  211. package/.next/standalone/apps/web/.next/server/app/api/commands/open/route/build-manifest.json +0 -9
  212. package/.next/standalone/apps/web/.next/server/app/api/commands/open/route/server-reference-manifest.json +0 -4
  213. package/.next/standalone/apps/web/.next/server/app/api/commands/open/route.js +0 -6
  214. package/.next/standalone/apps/web/.next/server/app/api/commands/open/route.js.map +0 -5
  215. package/.next/standalone/apps/web/.next/server/app/api/commands/open/route.js.nft.json +0 -1
  216. package/.next/standalone/apps/web/.next/server/app/api/commands/open/route_client-reference-manifest.js +0 -3
  217. package/.next/standalone/apps/web/.next/server/app/api/env/list/route/app-paths-manifest.json +0 -3
  218. package/.next/standalone/apps/web/.next/server/app/api/env/list/route/build-manifest.json +0 -9
  219. package/.next/standalone/apps/web/.next/server/app/api/env/list/route/server-reference-manifest.json +0 -4
  220. package/.next/standalone/apps/web/.next/server/app/api/env/list/route.js +0 -7
  221. package/.next/standalone/apps/web/.next/server/app/api/env/list/route.js.map +0 -5
  222. package/.next/standalone/apps/web/.next/server/app/api/env/list/route.js.nft.json +0 -1
  223. package/.next/standalone/apps/web/.next/server/app/api/env/list/route_client-reference-manifest.js +0 -3
  224. package/.next/standalone/apps/web/.next/server/app/api/env/route/app-paths-manifest.json +0 -3
  225. package/.next/standalone/apps/web/.next/server/app/api/env/route/build-manifest.json +0 -9
  226. package/.next/standalone/apps/web/.next/server/app/api/env/route/server-reference-manifest.json +0 -4
  227. package/.next/standalone/apps/web/.next/server/app/api/env/route.js +0 -7
  228. package/.next/standalone/apps/web/.next/server/app/api/env/route.js.map +0 -5
  229. package/.next/standalone/apps/web/.next/server/app/api/env/route.js.nft.json +0 -1
  230. package/.next/standalone/apps/web/.next/server/app/api/env/route_client-reference-manifest.js +0 -3
  231. package/.next/standalone/apps/web/.next/server/app/api/env/toggle/route/app-paths-manifest.json +0 -3
  232. package/.next/standalone/apps/web/.next/server/app/api/env/toggle/route/build-manifest.json +0 -9
  233. package/.next/standalone/apps/web/.next/server/app/api/env/toggle/route/server-reference-manifest.json +0 -4
  234. package/.next/standalone/apps/web/.next/server/app/api/env/toggle/route.js +0 -7
  235. package/.next/standalone/apps/web/.next/server/app/api/env/toggle/route.js.map +0 -5
  236. package/.next/standalone/apps/web/.next/server/app/api/env/toggle/route.js.nft.json +0 -1
  237. package/.next/standalone/apps/web/.next/server/app/api/env/toggle/route_client-reference-manifest.js +0 -3
  238. package/.next/standalone/apps/web/.next/server/app/api/internal/tabs/[tab_id]/status/route/app-paths-manifest.json +0 -3
  239. package/.next/standalone/apps/web/.next/server/app/api/internal/tabs/[tab_id]/status/route/build-manifest.json +0 -9
  240. package/.next/standalone/apps/web/.next/server/app/api/internal/tabs/[tab_id]/status/route/server-reference-manifest.json +0 -4
  241. package/.next/standalone/apps/web/.next/server/app/api/internal/tabs/[tab_id]/status/route.js +0 -7
  242. package/.next/standalone/apps/web/.next/server/app/api/internal/tabs/[tab_id]/status/route.js.map +0 -5
  243. package/.next/standalone/apps/web/.next/server/app/api/internal/tabs/[tab_id]/status/route.js.nft.json +0 -1
  244. package/.next/standalone/apps/web/.next/server/app/api/internal/tabs/[tab_id]/status/route_client-reference-manifest.js +0 -3
  245. package/.next/standalone/apps/web/.next/server/app/api/internal/tabs/[tab_id]/todos/route/app-paths-manifest.json +0 -3
  246. package/.next/standalone/apps/web/.next/server/app/api/internal/tabs/[tab_id]/todos/route/build-manifest.json +0 -9
  247. package/.next/standalone/apps/web/.next/server/app/api/internal/tabs/[tab_id]/todos/route/server-reference-manifest.json +0 -4
  248. package/.next/standalone/apps/web/.next/server/app/api/internal/tabs/[tab_id]/todos/route.js +0 -7
  249. package/.next/standalone/apps/web/.next/server/app/api/internal/tabs/[tab_id]/todos/route.js.map +0 -5
  250. package/.next/standalone/apps/web/.next/server/app/api/internal/tabs/[tab_id]/todos/route.js.nft.json +0 -1
  251. package/.next/standalone/apps/web/.next/server/app/api/internal/tabs/[tab_id]/todos/route_client-reference-manifest.js +0 -3
  252. package/.next/standalone/apps/web/.next/server/app/api/onboarding/status/route/app-paths-manifest.json +0 -3
  253. package/.next/standalone/apps/web/.next/server/app/api/onboarding/status/route/build-manifest.json +0 -9
  254. package/.next/standalone/apps/web/.next/server/app/api/onboarding/status/route/server-reference-manifest.json +0 -4
  255. package/.next/standalone/apps/web/.next/server/app/api/onboarding/status/route.js +0 -7
  256. package/.next/standalone/apps/web/.next/server/app/api/onboarding/status/route.js.map +0 -5
  257. package/.next/standalone/apps/web/.next/server/app/api/onboarding/status/route.js.nft.json +0 -1
  258. package/.next/standalone/apps/web/.next/server/app/api/onboarding/status/route_client-reference-manifest.js +0 -3
  259. package/.next/standalone/apps/web/.next/server/app/api/owners/route/app-paths-manifest.json +0 -3
  260. package/.next/standalone/apps/web/.next/server/app/api/owners/route/build-manifest.json +0 -9
  261. package/.next/standalone/apps/web/.next/server/app/api/owners/route/server-reference-manifest.json +0 -4
  262. package/.next/standalone/apps/web/.next/server/app/api/owners/route.js +0 -7
  263. package/.next/standalone/apps/web/.next/server/app/api/owners/route.js.map +0 -5
  264. package/.next/standalone/apps/web/.next/server/app/api/owners/route.js.nft.json +0 -1
  265. package/.next/standalone/apps/web/.next/server/app/api/owners/route_client-reference-manifest.js +0 -3
  266. package/.next/standalone/apps/web/.next/server/app/api/planner/config/route/app-paths-manifest.json +0 -3
  267. package/.next/standalone/apps/web/.next/server/app/api/planner/config/route/build-manifest.json +0 -9
  268. package/.next/standalone/apps/web/.next/server/app/api/planner/config/route/server-reference-manifest.json +0 -4
  269. package/.next/standalone/apps/web/.next/server/app/api/planner/config/route.js +0 -6
  270. package/.next/standalone/apps/web/.next/server/app/api/planner/config/route.js.map +0 -5
  271. package/.next/standalone/apps/web/.next/server/app/api/planner/config/route.js.nft.json +0 -1
  272. package/.next/standalone/apps/web/.next/server/app/api/planner/config/route_client-reference-manifest.js +0 -3
  273. package/.next/standalone/apps/web/.next/server/app/api/planner/tabs/route/app-paths-manifest.json +0 -3
  274. package/.next/standalone/apps/web/.next/server/app/api/planner/tabs/route/build-manifest.json +0 -9
  275. package/.next/standalone/apps/web/.next/server/app/api/planner/tabs/route/server-reference-manifest.json +0 -4
  276. package/.next/standalone/apps/web/.next/server/app/api/planner/tabs/route.js +0 -7
  277. package/.next/standalone/apps/web/.next/server/app/api/planner/tabs/route.js.map +0 -5
  278. package/.next/standalone/apps/web/.next/server/app/api/planner/tabs/route.js.nft.json +0 -1
  279. package/.next/standalone/apps/web/.next/server/app/api/planner/tabs/route_client-reference-manifest.js +0 -3
  280. package/.next/standalone/apps/web/.next/server/app/api/repos/[owner]/[repo]/branches/route/app-paths-manifest.json +0 -3
  281. package/.next/standalone/apps/web/.next/server/app/api/repos/[owner]/[repo]/branches/route/build-manifest.json +0 -9
  282. package/.next/standalone/apps/web/.next/server/app/api/repos/[owner]/[repo]/branches/route/server-reference-manifest.json +0 -4
  283. package/.next/standalone/apps/web/.next/server/app/api/repos/[owner]/[repo]/branches/route.js +0 -7
  284. package/.next/standalone/apps/web/.next/server/app/api/repos/[owner]/[repo]/branches/route.js.map +0 -5
  285. package/.next/standalone/apps/web/.next/server/app/api/repos/[owner]/[repo]/branches/route.js.nft.json +0 -1
  286. package/.next/standalone/apps/web/.next/server/app/api/repos/[owner]/[repo]/branches/route_client-reference-manifest.js +0 -3
  287. package/.next/standalone/apps/web/.next/server/app/api/repos/[owner]/[repo]/route/app-paths-manifest.json +0 -3
  288. package/.next/standalone/apps/web/.next/server/app/api/repos/[owner]/[repo]/route/build-manifest.json +0 -9
  289. package/.next/standalone/apps/web/.next/server/app/api/repos/[owner]/[repo]/route/server-reference-manifest.json +0 -4
  290. package/.next/standalone/apps/web/.next/server/app/api/repos/[owner]/[repo]/route.js +0 -7
  291. package/.next/standalone/apps/web/.next/server/app/api/repos/[owner]/[repo]/route.js.map +0 -5
  292. package/.next/standalone/apps/web/.next/server/app/api/repos/[owner]/[repo]/route.js.nft.json +0 -1
  293. package/.next/standalone/apps/web/.next/server/app/api/repos/[owner]/[repo]/route_client-reference-manifest.js +0 -3
  294. package/.next/standalone/apps/web/.next/server/app/api/repos/route/app-paths-manifest.json +0 -3
  295. package/.next/standalone/apps/web/.next/server/app/api/repos/route/build-manifest.json +0 -9
  296. package/.next/standalone/apps/web/.next/server/app/api/repos/route/server-reference-manifest.json +0 -4
  297. package/.next/standalone/apps/web/.next/server/app/api/repos/route.js +0 -7
  298. package/.next/standalone/apps/web/.next/server/app/api/repos/route.js.map +0 -5
  299. package/.next/standalone/apps/web/.next/server/app/api/repos/route.js.nft.json +0 -1
  300. package/.next/standalone/apps/web/.next/server/app/api/repos/route_client-reference-manifest.js +0 -3
  301. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/complete/route/app-paths-manifest.json +0 -3
  302. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/complete/route/build-manifest.json +0 -9
  303. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/complete/route/server-reference-manifest.json +0 -4
  304. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/complete/route.js +0 -7
  305. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/complete/route.js.map +0 -5
  306. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/complete/route.js.nft.json +0 -1
  307. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/complete/route_client-reference-manifest.js +0 -3
  308. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/needs-rebase/route/app-paths-manifest.json +0 -3
  309. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/needs-rebase/route/build-manifest.json +0 -9
  310. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/needs-rebase/route/server-reference-manifest.json +0 -4
  311. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/needs-rebase/route.js +0 -8
  312. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/needs-rebase/route.js.map +0 -5
  313. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/needs-rebase/route.js.nft.json +0 -1
  314. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/needs-rebase/route_client-reference-manifest.js +0 -3
  315. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/rebase/route/app-paths-manifest.json +0 -3
  316. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/rebase/route/build-manifest.json +0 -9
  317. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/rebase/route/server-reference-manifest.json +0 -4
  318. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/rebase/route.js +0 -8
  319. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/rebase/route.js.map +0 -5
  320. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/rebase/route.js.nft.json +0 -1
  321. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/rebase/route_client-reference-manifest.js +0 -3
  322. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/route/app-paths-manifest.json +0 -3
  323. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/route/build-manifest.json +0 -9
  324. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/route/server-reference-manifest.json +0 -4
  325. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/route.js +0 -8
  326. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/route.js.map +0 -5
  327. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/route.js.nft.json +0 -1
  328. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/route_client-reference-manifest.js +0 -3
  329. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/status/route/app-paths-manifest.json +0 -3
  330. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/status/route/build-manifest.json +0 -9
  331. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/status/route/server-reference-manifest.json +0 -4
  332. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/status/route.js +0 -7
  333. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/status/route.js.map +0 -5
  334. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/status/route.js.nft.json +0 -1
  335. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/status/route_client-reference-manifest.js +0 -3
  336. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/tabs/[tab_id]/route/app-paths-manifest.json +0 -3
  337. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/tabs/[tab_id]/route/build-manifest.json +0 -9
  338. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/tabs/[tab_id]/route/server-reference-manifest.json +0 -4
  339. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/tabs/[tab_id]/route.js +0 -7
  340. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/tabs/[tab_id]/route.js.map +0 -5
  341. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/tabs/[tab_id]/route.js.nft.json +0 -1
  342. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/tabs/[tab_id]/route_client-reference-manifest.js +0 -3
  343. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/tabs/route/app-paths-manifest.json +0 -3
  344. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/tabs/route/build-manifest.json +0 -9
  345. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/tabs/route/server-reference-manifest.json +0 -4
  346. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/tabs/route.js +0 -7
  347. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/tabs/route.js.map +0 -5
  348. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/tabs/route.js.nft.json +0 -1
  349. package/.next/standalone/apps/web/.next/server/app/api/tasks/[id]/tabs/route_client-reference-manifest.js +0 -3
  350. package/.next/standalone/apps/web/.next/server/app/api/tasks/batch-delete/route/app-paths-manifest.json +0 -3
  351. package/.next/standalone/apps/web/.next/server/app/api/tasks/batch-delete/route/build-manifest.json +0 -9
  352. package/.next/standalone/apps/web/.next/server/app/api/tasks/batch-delete/route/server-reference-manifest.json +0 -4
  353. package/.next/standalone/apps/web/.next/server/app/api/tasks/batch-delete/route.js +0 -8
  354. package/.next/standalone/apps/web/.next/server/app/api/tasks/batch-delete/route.js.map +0 -5
  355. package/.next/standalone/apps/web/.next/server/app/api/tasks/batch-delete/route.js.nft.json +0 -1
  356. package/.next/standalone/apps/web/.next/server/app/api/tasks/batch-delete/route_client-reference-manifest.js +0 -3
  357. package/.next/standalone/apps/web/.next/server/app/api/tasks/route/app-paths-manifest.json +0 -3
  358. package/.next/standalone/apps/web/.next/server/app/api/tasks/route/build-manifest.json +0 -9
  359. package/.next/standalone/apps/web/.next/server/app/api/tasks/route/server-reference-manifest.json +0 -4
  360. package/.next/standalone/apps/web/.next/server/app/api/tasks/route.js +0 -8
  361. package/.next/standalone/apps/web/.next/server/app/api/tasks/route.js.map +0 -5
  362. package/.next/standalone/apps/web/.next/server/app/api/tasks/route.js.nft.json +0 -1
  363. package/.next/standalone/apps/web/.next/server/app/api/tasks/route_client-reference-manifest.js +0 -3
  364. package/.next/standalone/apps/web/.next/server/app/api/tasks/validate/route/app-paths-manifest.json +0 -3
  365. package/.next/standalone/apps/web/.next/server/app/api/tasks/validate/route/build-manifest.json +0 -9
  366. package/.next/standalone/apps/web/.next/server/app/api/tasks/validate/route/server-reference-manifest.json +0 -4
  367. package/.next/standalone/apps/web/.next/server/app/api/tasks/validate/route.js +0 -7
  368. package/.next/standalone/apps/web/.next/server/app/api/tasks/validate/route.js.map +0 -5
  369. package/.next/standalone/apps/web/.next/server/app/api/tasks/validate/route.js.nft.json +0 -1
  370. package/.next/standalone/apps/web/.next/server/app/api/tasks/validate/route_client-reference-manifest.js +0 -3
  371. package/.next/standalone/apps/web/.next/server/app/api/worktrees/create/route/app-paths-manifest.json +0 -3
  372. package/.next/standalone/apps/web/.next/server/app/api/worktrees/create/route/build-manifest.json +0 -9
  373. package/.next/standalone/apps/web/.next/server/app/api/worktrees/create/route/server-reference-manifest.json +0 -4
  374. package/.next/standalone/apps/web/.next/server/app/api/worktrees/create/route.js +0 -7
  375. package/.next/standalone/apps/web/.next/server/app/api/worktrees/create/route.js.map +0 -5
  376. package/.next/standalone/apps/web/.next/server/app/api/worktrees/create/route.js.nft.json +0 -1
  377. package/.next/standalone/apps/web/.next/server/app/api/worktrees/create/route_client-reference-manifest.js +0 -3
  378. package/.next/standalone/apps/web/.next/server/app/api/worktrees/delete/route/app-paths-manifest.json +0 -3
  379. package/.next/standalone/apps/web/.next/server/app/api/worktrees/delete/route/build-manifest.json +0 -9
  380. package/.next/standalone/apps/web/.next/server/app/api/worktrees/delete/route/server-reference-manifest.json +0 -4
  381. package/.next/standalone/apps/web/.next/server/app/api/worktrees/delete/route.js +0 -7
  382. package/.next/standalone/apps/web/.next/server/app/api/worktrees/delete/route.js.map +0 -5
  383. package/.next/standalone/apps/web/.next/server/app/api/worktrees/delete/route.js.nft.json +0 -1
  384. package/.next/standalone/apps/web/.next/server/app/api/worktrees/delete/route_client-reference-manifest.js +0 -3
  385. package/.next/standalone/apps/web/.next/server/app/api/worktrees/init/route/app-paths-manifest.json +0 -3
  386. package/.next/standalone/apps/web/.next/server/app/api/worktrees/init/route/build-manifest.json +0 -9
  387. package/.next/standalone/apps/web/.next/server/app/api/worktrees/init/route/server-reference-manifest.json +0 -4
  388. package/.next/standalone/apps/web/.next/server/app/api/worktrees/init/route.js +0 -8
  389. package/.next/standalone/apps/web/.next/server/app/api/worktrees/init/route.js.map +0 -5
  390. package/.next/standalone/apps/web/.next/server/app/api/worktrees/init/route.js.nft.json +0 -1
  391. package/.next/standalone/apps/web/.next/server/app/api/worktrees/init/route_client-reference-manifest.js +0 -3
  392. package/.next/standalone/apps/web/.next/server/app/api/worktrees/list/route/app-paths-manifest.json +0 -3
  393. package/.next/standalone/apps/web/.next/server/app/api/worktrees/list/route/build-manifest.json +0 -9
  394. package/.next/standalone/apps/web/.next/server/app/api/worktrees/list/route/server-reference-manifest.json +0 -4
  395. package/.next/standalone/apps/web/.next/server/app/api/worktrees/list/route.js +0 -7
  396. package/.next/standalone/apps/web/.next/server/app/api/worktrees/list/route.js.map +0 -5
  397. package/.next/standalone/apps/web/.next/server/app/api/worktrees/list/route.js.nft.json +0 -1
  398. package/.next/standalone/apps/web/.next/server/app/api/worktrees/list/route_client-reference-manifest.js +0 -3
  399. package/.next/standalone/apps/web/.next/server/chunks/02dz_web__next-internal_server_app_api_repos_[owner]_[repo]_route_actions_0y.unn4.js +0 -3
  400. package/.next/standalone/apps/web/.next/server/chunks/02dz_web__next-internal_server_app_api_tasks_[id]_needs-rebase_route_actions_0y9hgye.js +0 -3
  401. package/.next/standalone/apps/web/.next/server/chunks/07~4_@prisma_client_runtime_query_compiler_fast_bg_sqlite_wasm-base64_mjs_0wnnza3._.js +0 -3
  402. package/.next/standalone/apps/web/.next/server/chunks/09og__next-internal_server_app_api_tasks_[id]_tabs_[tab_id]_route_actions_0m796s4.js +0 -3
  403. package/.next/standalone/apps/web/.next/server/chunks/0nf3_next-internal_server_app_api_internal_tabs_[tab_id]_todos_route_actions_02z31m7.js +0 -3
  404. package/.next/standalone/apps/web/.next/server/chunks/0z2a_server_app_api_internal_tabs_[tab_id]_status_route_actions_0ilq1cc.js +0 -3
  405. package/.next/standalone/apps/web/.next/server/chunks/0z2a_server_app_api_repos_[owner]_[repo]_branches_route_actions_0kw~i.m.js +0 -3
  406. package/.next/standalone/apps/web/.next/server/chunks/[externals]_@prisma_client_runtime_query_compiler_fast_bg_sqlite_mjs_0ov7..a._.js +0 -3
  407. package/.next/standalone/apps/web/.next/server/chunks/[externals]_node_buffer_0063pbu._.js +0 -3
  408. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0.7m5hr._.js +0 -3
  409. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0._xutx._.js +0 -3
  410. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0.dvtyz._.js +0 -3
  411. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__00esaoi._.js +0 -3
  412. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__00yawse._.js +0 -3
  413. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0153q01._.js +0 -3
  414. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__054zsor._.js +0 -3
  415. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__07kmv.l._.js +0 -3
  416. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__08s5l~m._.js +0 -3
  417. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0_o7jmk._.js +0 -3
  418. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0a-_dt5._.js +0 -3
  419. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0a7x-4o._.js +0 -3
  420. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0a_fd8w._.js +0 -3
  421. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0b0ufhx._.js +0 -3
  422. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0dvf7qr._.js +0 -3
  423. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0iyjaeq._.js +0 -3
  424. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0jbiea4._.js +0 -3
  425. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0kh_uy7._.js +0 -3
  426. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0kw0mqq._.js +0 -3
  427. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0p84cpj._.js +0 -3
  428. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0qmft~f._.js +0 -3
  429. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0u78gov._.js +0 -3
  430. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0u9--cs._.js +0 -3
  431. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0v8bdq7._.js +0 -13
  432. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0wr1n.-._.js +0 -3
  433. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0y44m9i._.js +0 -3
  434. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__0y~0muj._.js +0 -3
  435. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__10omlcu._.js +0 -3
  436. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__10twj-0._.js +0 -3
  437. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__122yu-6._.js +0 -3
  438. package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__13qyx58._.js +0 -3
  439. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_clone_route_actions_0i2usjl.js +0 -3
  440. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_commands_open_route_actions_0nr.lf~.js +0 -3
  441. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_env_list_route_actions_03ou9qy.js +0 -3
  442. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_env_route_actions_0j.l7e1.js +0 -3
  443. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_env_toggle_route_actions_0yul8q5.js +0 -3
  444. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_onboarding_status_route_actions_0-p50l9.js +0 -3
  445. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_owners_route_actions_0sf6d-s.js +0 -3
  446. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_planner_config_route_actions_0.2kv.b.js +0 -3
  447. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_planner_tabs_route_actions_00fsht3.js +0 -3
  448. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_repos_route_actions_08hf6lh.js +0 -3
  449. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_tasks_[id]_complete_route_actions_0955tfc.js +0 -3
  450. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_tasks_[id]_rebase_route_actions_0ltqhj..js +0 -3
  451. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_tasks_[id]_route_actions_0514yxk.js +0 -3
  452. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_tasks_[id]_status_route_actions_117cpp9.js +0 -3
  453. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_tasks_[id]_tabs_route_actions_0ex3~xn.js +0 -3
  454. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_tasks_batch-delete_route_actions_0ww_i~d.js +0 -3
  455. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_tasks_route_actions_0ff_.5_.js +0 -3
  456. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_tasks_validate_route_actions_0l5uu.c.js +0 -3
  457. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_worktrees_create_route_actions_0~lsdsh.js +0 -3
  458. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_worktrees_delete_route_actions_06nfkez.js +0 -3
  459. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_worktrees_init_route_actions_09tfs9b.js +0 -3
  460. package/.next/standalone/apps/web/.next/server/chunks/apps_web__next-internal_server_app_api_worktrees_list_route_actions_0_-udvz.js +0 -3
  461. package/.next/standalone/apps/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0kdit-s.js +0 -3
  462. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0-9rd88._.js +0 -3
  463. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__022775m._.js +0 -11
  464. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__033jtpd._.js +0 -3
  465. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__05s9qb9._.js +0 -3
  466. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__07bkjd6._.js +0 -26
  467. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__089qidr._.js +0 -45
  468. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0_.vrpf._.js +0 -3
  469. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0b3x4kh._.js +0 -11
  470. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0en9qbe._.js +0 -31
  471. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ezg31n._.js +0 -3
  472. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0k~0jgm._.js +0 -3
  473. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0qk3s0-._.js +0 -45
  474. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0v5tqy.._.js +0 -3
  475. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0vnxm6a._.js +0 -3
  476. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0zqz-u3._.js +0 -3
  477. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0~5jgy1._.js +0 -26
  478. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__10.ql0_._.js +0 -3
  479. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__13m~gd4._.js +0 -3
  480. package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__13qfjv1._.js +0 -31
  481. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0_q14j_._.js +0 -3
  482. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0fn7k5m._.js +0 -3
  483. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0h0q2lx._.js +0 -3
  484. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0hraodu._.js +0 -3
  485. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0i.0.fq._.js +0 -3
  486. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0orz5ju._.js +0 -3
  487. package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0pr8ov_._.js +0 -3
  488. package/.next/standalone/apps/web/.next/static/chunks/0i_guf4-4_p5..css +0 -4
  489. package/.next/standalone/apps/web/.next/static/chunks/0o_q.90~v1nxx.js +0 -3
  490. package/.next/standalone/apps/web/.next/static/chunks/0x48ir_5my2vr.js +0 -5
  491. package/.next/standalone/node_modules/@libsql/client/package.json +0 -123
  492. package/.next/standalone/node_modules/@libsql/core/package.json +0 -89
  493. package/.next/standalone/node_modules/@libsql/hrana-client/package.json +0 -60
  494. package/.next/standalone/node_modules/@libsql/isomorphic-fetch/node.cjs +0 -23
  495. package/.next/standalone/node_modules/@libsql/isomorphic-fetch/node.js +0 -21
  496. package/.next/standalone/node_modules/@libsql/isomorphic-fetch/package.json +0 -51
  497. package/.next/standalone/node_modules/@libsql/isomorphic-fetch/web.cjs +0 -4
  498. package/.next/standalone/node_modules/@libsql/isomorphic-fetch/web.js +0 -8
  499. package/.next/standalone/node_modules/@libsql/isomorphic-ws/node.cjs +0 -3
  500. package/.next/standalone/node_modules/@libsql/isomorphic-ws/node.mjs +0 -2
  501. package/.next/standalone/node_modules/@libsql/isomorphic-ws/package.json +0 -43
  502. package/.next/standalone/node_modules/@libsql/isomorphic-ws/web.cjs +0 -12
  503. package/.next/standalone/node_modules/@libsql/isomorphic-ws/web.mjs +0 -11
  504. package/.next/standalone/node_modules/@libsql/linux-x64-gnu/package.json +0 -36
  505. package/.next/standalone/node_modules/@libsql/linux-x64-musl/package.json +0 -36
  506. package/.next/standalone/node_modules/@neon-rs/load/dist/index.js +0 -102
  507. package/.next/standalone/node_modules/@neon-rs/load/package.json +0 -37
  508. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/lib-cjs/hrana.js +0 -372
  509. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/lib-cjs/http.js +0 -268
  510. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/lib-cjs/node.js +0 -41
  511. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/lib-cjs/package.json +0 -3
  512. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/lib-cjs/sql_cache.js +0 -91
  513. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/lib-cjs/sqlite3.js +0 -500
  514. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/lib-cjs/web.js +0 -41
  515. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/lib-cjs/ws.js +0 -395
  516. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/lib-esm/hrana.js +0 -341
  517. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/lib-esm/http.js +0 -232
  518. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/lib-esm/node.js +0 -23
  519. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/lib-esm/sql_cache.js +0 -87
  520. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/lib-esm/sqlite3.js +0 -476
  521. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/lib-esm/web.js +0 -22
  522. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/lib-esm/ws.js +0 -359
  523. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/client/package.json +0 -123
  524. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/core/lib-cjs/api.js +0 -34
  525. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/core/lib-cjs/config.js +0 -143
  526. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/core/lib-cjs/package.json +0 -3
  527. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/core/lib-cjs/uri.js +0 -125
  528. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/core/lib-cjs/util.js +0 -60
  529. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/core/lib-esm/api.js +0 -29
  530. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/core/lib-esm/config.js +0 -138
  531. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/core/lib-esm/uri.js +0 -120
  532. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/core/lib-esm/util.js +0 -55
  533. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/core/package.json +0 -91
  534. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/LICENSE +0 -20
  535. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/batch.js +0 -277
  536. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/byte_queue.js +0 -49
  537. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/client.js +0 -17
  538. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/cursor.js +0 -6
  539. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/describe.js +0 -12
  540. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/encoding/index.js +0 -11
  541. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/encoding/json/decode.js +0 -70
  542. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/encoding/json/encode.js +0 -77
  543. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/encoding/protobuf/decode.js +0 -155
  544. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/encoding/protobuf/encode.js +0 -100
  545. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/encoding/protobuf/util.js +0 -9
  546. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/errors.js +0 -116
  547. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/http/client.js +0 -130
  548. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/http/cursor.js +0 -165
  549. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/http/json_decode.js +0 -90
  550. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/http/json_encode.js +0 -60
  551. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/http/proto.js +0 -18
  552. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/http/protobuf_decode.js +0 -47
  553. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/http/protobuf_encode.js +0 -83
  554. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/http/stream.js +0 -372
  555. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/id_alloc.js +0 -51
  556. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/index.js +0 -77
  557. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/libsql_url.js +0 -79
  558. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/package.json +0 -3
  559. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/queue.js +0 -30
  560. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/queue_microtask.js +0 -15
  561. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/result.js +0 -56
  562. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/shared/json_decode.js +0 -138
  563. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/shared/json_encode.js +0 -76
  564. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/shared/proto.js +0 -3
  565. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/shared/protobuf_decode.js +0 -118
  566. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/shared/protobuf_encode.js +0 -90
  567. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/sql.js +0 -51
  568. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/stmt.js +0 -81
  569. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/stream.js +0 -61
  570. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/util.js +0 -8
  571. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/value.js +0 -88
  572. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/ws/client.js +0 -322
  573. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/ws/cursor.js +0 -84
  574. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/ws/json_decode.js +0 -101
  575. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/ws/json_encode.js +0 -81
  576. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/ws/proto.js +0 -18
  577. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/ws/protobuf_decode.js +0 -63
  578. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/ws/protobuf_encode.js +0 -119
  579. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-cjs/ws/stream.js +0 -215
  580. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/batch.js +0 -271
  581. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/byte_queue.js +0 -45
  582. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/client.js +0 -13
  583. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/cursor.js +0 -2
  584. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/describe.js +0 -8
  585. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/encoding/index.js +0 -4
  586. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/encoding/json/decode.js +0 -59
  587. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/encoding/json/encode.js +0 -72
  588. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/encoding/protobuf/decode.js +0 -150
  589. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/encoding/protobuf/encode.js +0 -95
  590. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/encoding/protobuf/util.js +0 -6
  591. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/errors.js +0 -102
  592. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/http/client.js +0 -126
  593. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/http/cursor.js +0 -138
  594. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/http/json_decode.js +0 -62
  595. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/http/json_encode.js +0 -55
  596. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/http/proto.js +0 -2
  597. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/http/protobuf_decode.js +0 -44
  598. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/http/protobuf_encode.js +0 -78
  599. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/http/stream.js +0 -368
  600. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/id_alloc.js +0 -47
  601. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/index.js +0 -42
  602. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/libsql_url.js +0 -75
  603. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/queue.js +0 -26
  604. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/queue_microtask.js +0 -13
  605. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/result.js +0 -48
  606. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/shared/json_decode.js +0 -106
  607. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/shared/json_encode.js +0 -71
  608. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/shared/proto.js +0 -2
  609. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/shared/protobuf_decode.js +0 -115
  610. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/shared/protobuf_encode.js +0 -85
  611. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/sql.js +0 -46
  612. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/stmt.js +0 -76
  613. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/stream.js +0 -57
  614. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/util.js +0 -4
  615. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/value.js +0 -83
  616. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/ws/client.js +0 -318
  617. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/ws/cursor.js +0 -80
  618. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/ws/json_decode.js +0 -74
  619. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/ws/json_encode.js +0 -77
  620. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/ws/proto.js +0 -2
  621. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/ws/protobuf_decode.js +0 -60
  622. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/ws/protobuf_encode.js +0 -115
  623. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/lib-esm/ws/stream.js +0 -211
  624. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/hrana-client/package.json +0 -60
  625. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/linux-x64-gnu/index.node +0 -0
  626. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/linux-x64-gnu/package.json +0 -36
  627. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/linux-x64-musl/index.node +0 -0
  628. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/@libsql/linux-x64-musl/package.json +0 -36
  629. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/libsql/auth.js +0 -22
  630. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/libsql/index.js +0 -441
  631. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/libsql/package.json +0 -90
  632. package/.next/standalone/node_modules/@prisma/adapter-libsql/node_modules/libsql/sqlite-error.js +0 -21
  633. package/.next/standalone/node_modules/@prisma/client/package.json +0 -282
  634. package/.next/standalone/node_modules/@prisma/client/runtime/client.js +0 -82
  635. package/.next/standalone/node_modules/@prisma/client/runtime/query_compiler_fast_bg.sqlite.mjs +0 -2
  636. package/.next/standalone/node_modules/@prisma/client/runtime/query_compiler_fast_bg.sqlite.wasm-base64.mjs +0 -2
  637. package/.next/standalone/node_modules/@prisma/client-runtime-utils/dist/index.js +0 -2559
  638. package/.next/standalone/node_modules/@prisma/client-runtime-utils/package.json +0 -39
  639. package/.next/standalone/node_modules/cross-fetch/dist/node-ponyfill.js +0 -22
  640. package/.next/standalone/node_modules/cross-fetch/node_modules/node-fetch/lib/index.js +0 -1787
  641. package/.next/standalone/node_modules/cross-fetch/node_modules/node-fetch/package.json +0 -89
  642. package/.next/standalone/node_modules/cross-fetch/package.json +0 -129
  643. package/.next/standalone/node_modules/detect-libc/lib/detect-libc.js +0 -279
  644. package/.next/standalone/node_modules/detect-libc/lib/filesystem.js +0 -41
  645. package/.next/standalone/node_modules/detect-libc/lib/process.js +0 -19
  646. package/.next/standalone/node_modules/js-base64/base64.js +0 -321
  647. package/.next/standalone/node_modules/js-base64/base64.mjs +0 -301
  648. package/.next/standalone/node_modules/js-base64/package.json +0 -43
  649. package/.next/standalone/node_modules/libsql/package.json +0 -84
  650. package/.next/standalone/node_modules/node-fetch/package.json +0 -131
  651. package/.next/standalone/node_modules/promise-limit/index.js +0 -88
  652. package/.next/standalone/node_modules/promise-limit/package.json +0 -39
  653. package/.next/standalone/node_modules/tr46/index.js +0 -193
  654. package/.next/standalone/node_modules/tr46/lib/mappingTable.json +0 -1
  655. package/.next/standalone/node_modules/tr46/package.json +0 -31
  656. package/.next/standalone/node_modules/webidl-conversions/lib/index.js +0 -189
  657. package/.next/standalone/node_modules/webidl-conversions/package.json +0 -23
  658. package/.next/standalone/node_modules/whatwg-url/lib/URL-impl.js +0 -200
  659. package/.next/standalone/node_modules/whatwg-url/lib/URL.js +0 -196
  660. package/.next/standalone/node_modules/whatwg-url/lib/public-api.js +0 -11
  661. package/.next/standalone/node_modules/whatwg-url/lib/url-state-machine.js +0 -1297
  662. package/.next/standalone/node_modules/whatwg-url/lib/utils.js +0 -20
  663. package/.next/standalone/node_modules/whatwg-url/package.json +0 -32
  664. package/.next/standalone/node_modules/ws/index.js +0 -22
  665. package/.next/standalone/node_modules/ws/lib/buffer-util.js +0 -131
  666. package/.next/standalone/node_modules/ws/lib/constants.js +0 -19
  667. package/.next/standalone/node_modules/ws/lib/event-target.js +0 -292
  668. package/.next/standalone/node_modules/ws/lib/extension.js +0 -203
  669. package/.next/standalone/node_modules/ws/lib/limiter.js +0 -55
  670. package/.next/standalone/node_modules/ws/lib/permessage-deflate.js +0 -528
  671. package/.next/standalone/node_modules/ws/lib/receiver.js +0 -706
  672. package/.next/standalone/node_modules/ws/lib/sender.js +0 -602
  673. package/.next/standalone/node_modules/ws/lib/stream.js +0 -161
  674. package/.next/standalone/node_modules/ws/lib/subprotocol.js +0 -62
  675. package/.next/standalone/node_modules/ws/lib/validation.js +0 -152
  676. package/.next/standalone/node_modules/ws/lib/websocket-server.js +0 -554
  677. package/.next/standalone/node_modules/ws/lib/websocket.js +0 -1393
  678. package/.next/standalone/node_modules/ws/package.json +0 -70
  679. package/.next/standalone/node_modules/ws/wrapper.mjs +0 -21
  680. package/README.md +0 -381
  681. package/dist/generated/prisma/browser.js +0 -56
  682. package/dist/generated/prisma/client.js +0 -73
  683. package/dist/generated/prisma/internal/prismaNamespace.js +0 -182
  684. package/dist/generated/prisma/models/EnvironmentVariable.js +0 -2
  685. package/dist/generated/prisma/models/PlannerTab.js +0 -2
  686. package/dist/generated/prisma/models/Repository.js +0 -2
  687. package/dist/generated/prisma/models/Tab.js +0 -2
  688. package/dist/generated/prisma/models/Task.js +0 -2
  689. package/dist/generated/prisma/models.js +0 -2
  690. package/dist/scripts/auto-migrate.js +0 -82
  691. package/dist/scripts/cli.js +0 -152
  692. package/dist/scripts/db-backup.js +0 -93
  693. package/dist/scripts/db-restore.js +0 -114
  694. package/dist/scripts/migrate-to-sqlite.js +0 -164
  695. package/dist/scripts/plugin-lifecycle.js +0 -130
  696. package/dist/scripts/with-plugin.js +0 -60
  697. package/dist/src/lib/branch-utils.js +0 -7
  698. package/dist/src/lib/data-path.js +0 -61
  699. package/dist/src/lib/db.js +0 -16
  700. package/dist/src/lib/types.js +0 -2
  701. /package/.next/standalone/apps/web/.next/static/{JoYqGRe1NI9K8yLxCSu7g → YPzHzYzcA3DhWIUQf4Bh4}/_clientMiddlewareManifest.js +0 -0
  702. /package/.next/standalone/apps/web/.next/static/{JoYqGRe1NI9K8yLxCSu7g → YPzHzYzcA3DhWIUQf4Bh4}/_ssgManifest.js +0 -0
@@ -0,0 +1,5 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,55716,e=>{"use strict";let t=(0,e.i(75254).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",0,t],55716)},7233,5352,e=>{"use strict";let t=(0,e.i(75254).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],7233);let a=[{bg:"bg-blue-100 dark:bg-blue-900/30",text:"text-blue-700 dark:text-blue-300"},{bg:"bg-emerald-100 dark:bg-emerald-900/30",text:"text-emerald-700 dark:text-emerald-300"},{bg:"bg-violet-100 dark:bg-violet-900/30",text:"text-violet-700 dark:text-violet-300"},{bg:"bg-amber-100 dark:bg-amber-900/30",text:"text-amber-700 dark:text-amber-300"},{bg:"bg-rose-100 dark:bg-rose-900/30",text:"text-rose-700 dark:text-rose-300"},{bg:"bg-cyan-100 dark:bg-cyan-900/30",text:"text-cyan-700 dark:text-cyan-300"},{bg:"bg-orange-100 dark:bg-orange-900/30",text:"text-orange-700 dark:text-orange-300"},{bg:"bg-teal-100 dark:bg-teal-900/30",text:"text-teal-700 dark:text-teal-300"},{bg:"bg-indigo-100 dark:bg-indigo-900/30",text:"text-indigo-700 dark:text-indigo-300"},{bg:"bg-pink-100 dark:bg-pink-900/30",text:"text-pink-700 dark:text-pink-300"},{bg:"bg-lime-100 dark:bg-lime-900/30",text:"text-lime-700 dark:text-lime-300"},{bg:"bg-fuchsia-100 dark:bg-fuchsia-900/30",text:"text-fuchsia-700 dark:text-fuchsia-300"}];e.s(["getRepoColor",0,function(e,t){let r=function(e){let t=5381;for(let a=0;a<e.length;a++)t=33*t^e.charCodeAt(a);return t>>>0}(`${e}/${t}`)%a.length;return a[r]}],5352)},18566,(e,t,a)=>{t.exports=e.r(76562)},43531,78745,e=>{"use strict";let t=(0,e.i(75254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",0,t],78745),e.s(["Check",0,t],43531)},86536,e=>{"use strict";let t=(0,e.i(75254).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",0,t],86536)},27612,e=>{"use strict";let t=(0,e.i(75254).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",0,t],27612)},10012,24564,94349,e=>{"use strict";var t,a=e.i(18050);e.i(47167);var r=e.i(71645);e.s([],19485),e.i(19485);var s=e.i(76477),l=e.i(67805),i=e.i(17514);let n=((t={}).disabled="data-disabled",t.valid="data-valid",t.invalid="data-invalid",t.touched="data-touched",t.dirty="data-dirty",t.filled="data-filled",t.focused="data-focused",t),o={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},d={valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},c={disabled:!1,...d},u={valid:e=>null===e?null:e?{[n.valid]:""}:{[n.invalid]:""}},f=r.createContext({invalid:void 0,name:void 0,validityData:{state:o,errors:[],error:"",value:"",initialValue:null},setValidityData:i.NOOP,disabled:void 0,touched:d.touched,setTouched:i.NOOP,dirty:d.dirty,setDirty:i.NOOP,filled:d.filled,setFilled:i.NOOP,focused:d.focused,setFocused:i.NOOP,validate:()=>null,validationMode:"onSubmit",validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:c,markedDirtyRef:{current:!1},validation:{getValidationProps:(e=i.EMPTY_OBJECT)=>e,getInputValidationProps:(e=i.EMPTY_OBJECT)=>e,inputRef:{current:null},commit:async()=>{}}});function m(e=!0){let t=r.useContext(f);if(t.setValidityData===i.NOOP&&!e)throw Error((0,l.default)(28));return t}let p=r.createContext({legendId:void 0,setLegendId:()=>{},disabled:void 0}),h=r.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:i.NOOP,validationMode:"onSubmit",submitAttemptedRef:{current:!1}});function v(){return r.useContext(h)}var x=e.i(30628),g=e.i(19805),b=e.i(89879);let y=r.createContext({controlId:void 0,registerControlId:i.NOOP,labelId:void 0,setLabelId:i.NOOP,messageIds:[],setMessageIds:i.NOOP,getDescriptionProps:e=>e});function k(){return r.useContext(y)}let w=function(e){let t=(0,b.useBaseUiId)(),l=void 0===e.controlId?t:e.controlId,[i,n]=r.useState(l),[o,d]=r.useState(e.labelId),[c,u]=r.useState([]),f=(0,x.useRefWithInit)(()=>new Map),{messageIds:m}=k(),p=(0,s.useStableCallback)((e,t)=>{let a=f.current;void 0===t?a.delete(e):(a.set(e,t),n(e=>{let t;if(0!==a.size){for(let r of a.values()){if(void 0!==e&&r===e)return e;void 0===t&&(t=r)}return t}}))}),h=r.useCallback(e=>(0,g.mergeProps)({"aria-describedby":m.concat(c).join(" ")||void 0},e),[m,c]),v=r.useMemo(()=>({controlId:i,registerControlId:p,labelId:o,setLabelId:d,messageIds:c,setMessageIds:u,getDescriptionProps:h}),[i,p,o,d,c,u,h]);return(0,a.jsx)(y.Provider,{value:v,children:e.children})};var j=e.i(27601),N=e.i(66745);function C(e,t){return{...e,state:{...e.state,valid:!t&&e.state.valid}}}let E=Object.keys(o),S=r.forwardRef(function(e,t){let{errors:n,validationMode:d,submitAttemptedRef:c}=v(),{render:m,className:h,validate:x,validationDebounceTime:b=0,validationMode:y=d,name:w,disabled:S=!1,invalid:T,dirty:O,touched:I,actionsRef:P,...R}=e,{disabled:M}=function(e=!1){let t=r.useContext(p);if(!t&&!e)throw Error((0,l.default)(86));return t}(),A=(0,s.useStableCallback)(x||(()=>null)),D=M||S,[F,L]=r.useState(!1),[U,B]=r.useState(!1),[V,$]=r.useState(!1),[_,z]=r.useState(!1),H=O??U,K=I??F,J=r.useRef(!1),G=(0,s.useStableCallback)(e=>{void 0===O&&(e&&(J.current=!0),B(e))}),q=(0,s.useStableCallback)(e=>{void 0===I&&L(e)}),Y=(0,s.useStableCallback)(()=>"onChange"===y||"onSubmit"===y&&c.current),W=!!w&&Object.hasOwn(n,w)&&void 0!==n[w],X=!0===T||W,[Z,Q]=r.useState({state:o,error:"",errors:[],value:null,initialValue:null}),ee=!X&&Z.state.valid,et=r.useMemo(()=>({disabled:D,touched:K,dirty:H,valid:ee,filled:V,focused:_}),[D,K,H,ee,V,_]),ea=function(e){let{formRef:t,clearErrors:a}=v(),{setValidityData:l,validate:n,validityData:d,validationDebounceTime:c,invalid:u,markedDirtyRef:f,state:m,name:p,shouldValidateOnChange:h}=e,{controlId:x,getDescriptionProps:b}=k(),y=(0,N.useTimeout)(),w=r.useRef(null),j=(0,s.useStableCallback)(async(e,a=!1)=>{let r,s=w.current;if(!s)return;if(a){if(!1!==m.valid)return;let a=s.validity;if(!a.valueMissing){let a={value:e,state:{...o,valid:!0},error:"",errors:[],initialValue:d.initialValue};if(s.setCustomValidity(""),x){let e=t.current.fields.get(x);e&&t.current.fields.set(x,{...e,...C(a,!1)})}l(a);return}let r=E.reduce((e,t)=>(e[t]=a[t],e),{});if(!r.valid&&!function(e){if(!e||e.valid||!e.valueMissing)return!1;let t=!1;for(let a of E)"valid"!==a&&("valueMissing"===a&&(t=e[a]),e[a]&&(t=!1));return t}(r))return}y.clear();let i=null,c=[],p=function(e){let t=E.reduce((t,a)=>(t[a]=e.validity[a],t),{}),a=!1;for(let e of E)if("valid"!==e){if("valueMissing"===e&&t[e])a=!0;else if(t[e])return t}return a&&!f.current&&(t.valid=!0,t.valueMissing=!1),t}(s),v=h();if(s.validationMessage&&!v)r=s.validationMessage,c=[s.validationMessage];else{let a=n(e,Array.from(t.current.fields.values()).reduce((e,t)=>(t.name&&(e[t.name]=t.getValue()),e),{}));null!==(i="object"==typeof a&&null!==a&&"then"in a?await a:a)?(p.valid=!1,p.customError=!0,Array.isArray(i)?(c=i,s.setCustomValidity(i.join("\n"))):i&&(c=[i],s.setCustomValidity(i))):v&&(s.setCustomValidity(""),p.customError=!1,s.validationMessage?(r=s.validationMessage,c=[s.validationMessage]):s.validity.valid&&!p.valid&&(p.valid=!0))}let g={value:e,state:p,error:r??(Array.isArray(i)?i[0]:i??""),errors:c,initialValue:d.initialValue};if(x){let e=t.current.fields.get(x);e&&t.current.fields.set(x,{...e,...C(g,u)})}l(g)}),S=r.useCallback((e={})=>(0,g.mergeProps)(b,!1===m.valid?{"aria-invalid":!0}:i.EMPTY_OBJECT,e),[b,m.valid]),T=r.useCallback((e={})=>(0,g.mergeProps)({onChange(e){if(e.nativeEvent.defaultPrevented)return;if(a(p),!h())return void j(e.currentTarget.value,!0);let t=e.currentTarget;""===t.value?j(t.value):(y.clear(),c?y.start(c,()=>{j(t.value)}):j(t.value))}},S(e)),[S,a,p,y,j,c,h]);return r.useMemo(()=>({getValidationProps:S,getInputValidationProps:T,inputRef:w,commit:j}),[S,T,j])}({setValidityData:Q,validate:A,validityData:Z,validationDebounceTime:b,invalid:X,markedDirtyRef:J,state:et,name:w,shouldValidateOnChange:Y}),er=r.useCallback(()=>{J.current=!0,ea.commit(Z.value)},[ea,Z]);r.useImperativeHandle(P,()=>({validate:er}),[er]);let es=r.useMemo(()=>({invalid:X,name:w,validityData:Z,setValidityData:Q,disabled:D,touched:K,setTouched:q,dirty:H,setDirty:G,filled:V,setFilled:$,focused:_,setFocused:z,validate:A,validationMode:y,validationDebounceTime:b,shouldValidateOnChange:Y,state:et,markedDirtyRef:J,validation:ea}),[X,w,Z,D,K,q,H,G,V,$,_,z,A,y,b,Y,et,ea]),el=(0,j.useRenderElement)("div",e,{ref:t,state:et,props:R,stateAttributesMapping:u});return(0,a.jsx)(f.Provider,{value:es,children:el})}),T=r.forwardRef(function(e,t){return(0,a.jsx)(w,{children:(0,a.jsx)(S,{...e,ref:t})})});var O=e.i(29315),I=e.i(90219),P=e.i(47857),R=e.i(977);function M(e,t){let a=(0,b.useBaseUiId)(e);return(0,R.useIsoLayoutEffect)(()=>(t(a),()=>{t(void 0)}),[a,t]),a}e.s(["useRegisteredLabelId",0,M],24564);let A=r.forwardRef(function(e,t){let{render:a,className:l,id:i,nativeLabel:n=!0,...o}=e,d=m(!1),{labelId:c}=k(),f=r.useRef(null),p=function(e={}){let{id:t,fallbackControlId:a,native:r=!1,setLabelId:l,focusControl:i}=e,{controlId:n,setLabelId:o}=k(),d=M(t,(0,s.useStableCallback)(e=>{o(e),l?.(e)})),c=n??a;function u(e){let t=(0,P.getTarget)(e.nativeEvent);t?.closest("button,input,select,textarea")||(!e.defaultPrevented&&e.detail>1&&e.preventDefault(),r||function(e){if(i)return i(e,c);if(!c)return;let t=(0,I.ownerDocument)(e.currentTarget).getElementById(c);(0,O.isHTMLElement)(t)&&t.focus({focusVisible:!0})}(e))}return r?{id:d,htmlFor:c??void 0,onMouseDown:u}:{id:d,onClick:u,onPointerDown(e){e.preventDefault()}}}({id:c??i,native:n});return(0,j.useRenderElement)("label",e,{ref:[t,f],state:d.state,props:[p,o],stateAttributesMapping:u})});var D=e.i(89269),F=e.i(84759),L=e.i(88841);let U={...u,...F.transitionStatusMapping},B=r.forwardRef(function(e,t){let{render:s,id:l,className:i,match:n,...o}=e,d=(0,b.useBaseUiId)(l),{validityData:c,state:u,name:f}=m(!1),{setMessageIds:p}=k(),{errors:h}=v(),x=f?h[f]:null,g=!1;g=!!x||!0===n||(n?!!c.state[n]:!1===c.state.valid);let{mounted:y,transitionStatus:w,setMounted:N}=(0,L.useTransitionStatus)(g);(0,R.useIsoLayoutEffect)(()=>{if(g&&d)return p(e=>e.concat(d)),()=>{p(e=>e.filter(e=>e!==d))}},[g,d,p]);let C=r.useRef(null),[E,S]=r.useState(null),[T,O]=r.useState(null),I=x||(c.errors.length>1?(0,a.jsx)("ul",{children:c.errors.map(e=>(0,a.jsx)("li",{children:e},e))}):c.error),P=c.error;null!=x?P=Array.isArray(x)?JSON.stringify(x):x:c.errors.length>1&&(P=JSON.stringify(c.errors)),g&&P!==T&&(O(P),S(I)),(0,D.useOpenChangeComplete)({open:g,ref:C,onComplete(){g||N(!1)}});let M={...u,transitionStatus:w},A=(0,j.useRenderElement)("div",e,{ref:[t,C],state:M,props:[{id:d,children:g?I:E},o],stateAttributesMapping:U,enabled:y});return y?A:null}),V=r.forwardRef(function(e,t){let{render:a,id:r,className:s,...l}=e,i=(0,b.useBaseUiId)(r),n=m(!1),{setMessageIds:o}=k();return(0,R.useIsoLayoutEffect)(()=>{if(i)return o(e=>e.concat(i)),()=>{o(e=>e.filter(e=>e!==i))}},[i,o]),(0,j.useRenderElement)("p",e,{ref:t,state:n.state,props:[{id:i},l],stateAttributesMapping:u})});function $({controlled:e,default:t,name:a,state:s="value"}){let{current:l}=r.useRef(void 0!==e),[i,n]=r.useState(t),o=r.useCallback(e=>{l||n(e)},[]);return[l?e:i,o]}e.s(["useControlled",0,$],94349);var _=e.i(74080),z=e.i(5963),H=e.i(3404);let K=r.forwardRef(function(e,t){let{render:a,className:l,id:n,name:o,value:d,disabled:c=!1,onValueChange:f,defaultValue:p,autoFocus:h=!1,...g}=e,{state:y,name:w,disabled:N,setTouched:E,setDirty:S,validityData:T,setFocused:M,setFilled:A,validationMode:D,validation:F}=m(),L=N||c,U=w??o,B={...y,disabled:L},{labelId:V}=k(),K=function(e={}){let{id:t,implicit:a=!1,controlRef:l}=e,{controlId:n,registerControlId:o}=k(),d=(0,b.useBaseUiId)(t),c=a?n:void 0,u=(0,x.useRefWithInit)(()=>Symbol("labelable-control")),f=r.useRef(!1),m=r.useRef(null!=t),p=(0,s.useStableCallback)(()=>{f.current&&o!==i.NOOP&&(f.current=!1,o(u.current,void 0))});return(0,R.useIsoLayoutEffect)(()=>{let e;if(o!==i.NOOP){if(a){let a=l?.current;e=(0,O.isElement)(a)&&null!=a.closest("label")?t??null:c??d}else if(null!=t)m.current=!0,e=t;else{if(!m.current)return void p();e=d}if(void 0===e)return void p();f.current=!0,o(u.current,e)}},[t,l,c,o,a,d,u,p]),r.useEffect(()=>p,[p]),n??d}({id:n});(0,R.useIsoLayoutEffect)(()=>{let e=null!=d;F.inputRef.current?.value||e&&""!==d?A(!0):e&&""===d&&A(!1)},[F.inputRef,A,d]);let J=r.useRef(null);(0,R.useIsoLayoutEffect)(()=>{h&&J.current===(0,P.activeElement)((0,I.ownerDocument)(J.current))&&M(!0)},[h,M]);let[G]=$({controlled:d,default:p,name:"FieldControl",state:"value"}),q=void 0!==d,Y=q?G:void 0;return!function(e){let{enabled:t=!0,value:a,id:r,name:l,controlRef:i,commit:n}=e,{formRef:o}=v(),{invalid:d,markedDirtyRef:c,validityData:u,setValidityData:f}=m(),p=(0,s.useStableCallback)(e.getValue);(0,R.useIsoLayoutEffect)(()=>{if(!t)return;let e=a;void 0===e&&(e=p()),null===u.initialValue&&null!==e&&f(t=>({...t,initialValue:e}))},[t,f,a,u.initialValue,p]),(0,R.useIsoLayoutEffect)(()=>{t&&r&&o.current.fields.set(r,{getValue:p,name:l,controlRef:i,validityData:C(u,d),validate(e=!0){let t=a;void 0===t&&(t=p()),c.current=!0,e?_.flushSync(()=>n(t)):n(t)}})},[n,i,t,o,p,r,d,c,l,u,a]),(0,R.useIsoLayoutEffect)(()=>{let e=o.current.fields;return()=>{r&&e.delete(r)}},[o,r])}({id:K,name:U,commit:F.commit,value:Y,getValue:()=>F.inputRef.current?.value,controlRef:F.inputRef}),(0,j.useRenderElement)("input",e,{ref:[t,J],state:B,props:[{id:K,disabled:L,name:U,ref:F.inputRef,"aria-labelledby":V,autoFocus:h,...q?{value:Y}:{defaultValue:p},onChange(e){let t=e.currentTarget.value;f?.(t,(0,z.createChangeEventDetails)(H.REASONS.none,e.nativeEvent)),S(t!==T.initialValue),A(""!==t)},onFocus(){M(!0)},onBlur(e){E(!0),M(!1),"onBlur"===D&&F.commit(e.currentTarget.value)},onKeyDown(e){"INPUT"===e.currentTarget.tagName&&"Enter"===e.key&&(E(!0),F.commit(e.currentTarget.value))}},F.getInputValidationProps(),g],stateAttributesMapping:u})}),J=r.createContext({disabled:!1}),G=r.createContext(void 0),q=r.forwardRef(function(e,t){let{render:s,className:i,disabled:n=!1,...o}=e,{state:d,disabled:c}=m(!1),f=c||n,p=function(e=!0){let t=r.useContext(G);if(void 0===t&&!e)throw Error((0,l.default)(3));return t}(),h=p?.parent.id,v=p?.allValues!==void 0,x=r.useMemo(()=>({disabled:f}),[f]),g=(0,j.useRenderElement)("div",e,{ref:t,state:d,props:o,stateAttributesMapping:u});return(0,a.jsx)(w,{controlId:v?h:void 0,children:(0,a.jsx)(J.Provider,{value:x,children:g})})});e.s(["Control",0,K,"Description",0,V,"Error",0,B,"Item",0,q,"Label",0,A,"Root",0,T,"Validity",0,function(e){let{children:t}=e,{validityData:s,invalid:l}=m(!1),i=r.useMemo(()=>C(s,l),[s,l]),n=!1===i.state.valid,{transitionStatus:o}=(0,L.useTransitionStatus)(n),d=r.useMemo(()=>({...i,validity:i.state,transitionStatus:o}),[i,o]);return(0,a.jsx)(r.Fragment,{children:t(d)})}],71975);var Y=e.i(71975),Y=Y;let W=r.forwardRef(function(e,t){return(0,a.jsx)(Y.Control,{ref:t,...e})});var X=e.i(52088);e.s(["Input",0,function({className:e,type:t,...r}){return(0,a.jsx)(W,{type:t,"data-slot":"input",className:(0,X.cn)("h-9 w-full min-w-0 rounded-md border border-input bg-input/20 px-3 py-1 text-sm transition-colors outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",e),...r})}],10012)},37870,31278,e=>{"use strict";var t=e.i(18050),a=e.i(17521);e.s(["Loader2",()=>a.default],31278);var a=a;e.s(["LoadingSpinner",0,function({size:e="md",message:r}){return(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3",children:[(0,t.jsx)(a.default,{className:`${{sm:"w-4 h-4",md:"w-8 h-8",lg:"w-12 h-12"}[e]} text-primary animate-spin`}),r&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:r})]})}],37870)},63209,e=>{"use strict";let t=(0,e.i(75254).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",0,t],63209)},51846,e=>{"use strict";var t=e.i(71645);e.s(["useDocumentTitle",0,function(e){(0,t.useEffect)(()=>{let t=e?`繋 | ${e}`:"繋",a=document.title;return document.title=t,()=>{document.title=a}},[e])}])},471,e=>{"use strict";let t=(0,e.i(75254).default)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);e.s(["ArrowLeft",0,t],471)},46349,e=>{"use strict";let t=(0,e.i(75254).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["default",0,t])},88699,e=>{"use strict";let t=(0,e.i(75254).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",0,t],88699)},82341,e=>{"use strict";var t=e.i(18050),a=e.i(71645),r=e.i(18566),s=e.i(471),l=e.i(70935),i=e.i(75254);let n=(0,i.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),o=(0,i.default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var d=e.i(55716),c=e.i(46349),c=c;let u=(0,i.default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);var f=e.i(85902);function m({node:e,isSelected:a,isExpanded:r,depth:s,onSelect:l,onToggle:i}){let p=e.children&&e.children.length>0;return(0,t.jsxs)("div",{onClick:()=>{l(),p&&i&&!r&&i()},className:`
2
+ flex items-center gap-2 px-2 py-1.5 rounded cursor-pointer
3
+ transition-colors
4
+ ${a?"bg-accent":"hover:bg-accent"}
5
+ `,style:{paddingLeft:`${16*s+8}px`},children:[p&&(0,t.jsx)(f.Button,{variant:"ghost",size:"icon-xs",onClick:e=>{e.stopPropagation(),i&&i()},className:"size-4",children:r?(0,t.jsx)(u,{className:"w-3 h-3 text-muted-foreground"}):(0,t.jsx)(c.default,{className:"w-3 h-3 text-muted-foreground"})}),!p&&(0,t.jsx)("div",{className:"w-3"}),(0,t.jsx)("div",{className:"text-foreground",children:(()=>{switch(e.type){case"global":return(0,t.jsx)(n,{className:"w-4 h-4"});case"owner":return(0,t.jsx)(o,{className:"w-4 h-4"});case"repo":return(0,t.jsx)(d.GitBranch,{className:"w-4 h-4"})}})()}),(0,t.jsx)("span",{className:"text-sm text-foreground truncate",children:e.label})]})}function p({selectedNode:e,onNodeSelect:r,refreshKey:s}){let[i,n]=(0,a.useState)([]),[o,d]=(0,a.useState)(new Set),[c,u]=(0,a.useState)(!0);(0,a.useEffect)(()=>{let e=localStorage.getItem("tsunagi:env-tree-expanded");if(e)try{let t=JSON.parse(e);d(new Set(t))}catch(e){console.error("Failed to parse expanded owners:",e)}},[]),(0,a.useEffect)(()=>{localStorage.setItem("tsunagi:env-tree-expanded",JSON.stringify([...o]))},[o]),(0,a.useEffect)(()=>{(async()=>{u(!0);try{let e=await fetch((0,l.apiUrl)("/api/owners"));if(!e.ok)throw Error("Failed to fetch owners");let t=((await e.json()).data.owners||[]).map(e=>({id:`owner:${e.name}`,type:"owner",label:e.name,scope:"owner",owner:e.name,children:e.repositories.map(e=>({id:`repo:${e.owner}/${e.repo}`,type:"repo",label:e.repo,scope:"repo",owner:e.owner,repo:e.repo}))}));n([{id:"global",type:"global",label:"Global",scope:"global"},...t])}catch(e){console.error("Failed to load tree:",e)}finally{u(!1)}})()},[s]);let f=(a,s=0)=>{let l=e?.scope===a.scope&&e?.owner===a.owner&&e?.repo===a.repo,i=o.has(a.id);return(0,t.jsxs)("div",{children:[(0,t.jsx)(m,{node:a,isSelected:l,isExpanded:i,depth:s,onSelect:()=>{r({scope:a.scope,owner:a.owner,repo:a.repo,label:a.label})},onToggle:()=>{var e;return e=a.id,void d(t=>{let a=new Set(t);return a.has(e)?a.delete(e):a.add(e),a})}}),i&&a.children?.map(e=>f(e,s+1))]},a.id)};return c?(0,t.jsx)("div",{className:"p-4 text-muted-foreground text-sm",children:"Loading..."}):0===i.length?(0,t.jsx)("div",{className:"p-4 text-muted-foreground text-sm",children:"No repositories found"}):(0,t.jsx)("div",{className:"h-full overflow-y-auto",children:(0,t.jsx)("div",{className:"p-2",children:i.map(e=>f(e))})})}var h=e.i(7233),v=e.i(37727),x=e.i(43531),g=e.i(86536);let b=(0,i.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var y=e.i(27612),k=e.i(88699),w=e.i(10012);function j({variable:e,onToggle:r,onDelete:s,onUpdate:l,isDeletable:i=!0}){let[n,o]=(0,a.useState)(!1),[d,c]=(0,a.useState)(!1),[u,m]=(0,a.useState)(!1),[p,h]=(0,a.useState)(e.value),N=async t=>{c(!0);try{await r(e.key,t.target.checked)}finally{c(!1)}},C=async()=>{await s(e.key)},E=async()=>{try{await l(e.key,p),m(!1)}catch(e){console.error("Failed to update variable:",e),alert("Failed to update variable")}};return(0,t.jsxs)("div",{className:"border border-border rounded p-3 space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-sm font-mono text-foreground",children:e.key}),!u&&(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,t.jsx)("input",{type:"checkbox",checked:e.enabled,onChange:N,disabled:d,className:"w-4 h-4 cursor-pointer"}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"Enabled"})]}),(0,t.jsx)(f.Button,{variant:"ghost",size:"icon-lg",onClick:()=>o(!n),title:n?"Hide value":"Show value",children:n?(0,t.jsx)(b,{className:"w-4 h-4 text-muted-foreground"}):(0,t.jsx)(g.Eye,{className:"w-4 h-4 text-muted-foreground"})}),(0,t.jsx)(f.Button,{variant:"ghost",size:"icon-lg",onClick:()=>{m(!0),h(e.value)},title:"Edit",children:(0,t.jsx)(k.Pencil,{className:"w-4 h-4 text-muted-foreground"})}),i&&(0,t.jsx)(f.Button,{variant:"ghost",size:"icon-lg",onClick:C,title:"Delete",children:(0,t.jsx)(y.Trash2,{className:"w-4 h-4 text-destructive"})})]})]}),u?(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(w.Input,{type:"password",value:p,onChange:e=>h(e.target.value),className:"w-full font-mono",autoFocus:!0}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(f.Button,{variant:"outline",size:"sm",onClick:()=>{m(!1),h(e.value)},className:"active:scale-95",children:(0,t.jsx)(v.X,{className:"w-4 h-4"})}),(0,t.jsx)(f.Button,{size:"sm",onClick:E,className:"active:scale-95",children:(0,t.jsx)(x.Check,{className:"w-4 h-4"})})]})]}):(0,t.jsx)("div",{children:(0,t.jsx)(w.Input,{type:n?"text":"password",value:e.value,readOnly:!0,className:"w-full font-mono"})})]})}var N=e.i(37870);let C=["ANTHROPIC_API_KEY","CLAUDE_CODE_OAUTH_TOKEN"];function E({selectedNode:e}){let[r,s]=(0,a.useState)([]),[i,n]=(0,a.useState)(!0),[o,d]=(0,a.useState)(null),[c,u]=(0,a.useState)(!1),[m,p]=(0,a.useState)(""),[g,b]=(0,a.useState)(""),[y,k]=(0,a.useState)("");(0,a.useEffect)(()=>{(async()=>{n(!0),d(null);try{let t=new URLSearchParams({scope:e.scope});e.owner&&t.set("owner",e.owner),e.repo&&t.set("repo",e.repo);let a=await fetch((0,l.apiUrl)(`/api/env/list?${t}`));if(!a.ok)throw Error("Failed to fetch environment variables");let r=((await a.json()).data.envVars||[]).filter(e=>!C.includes(e.key));s(r)}catch(e){console.error("Failed to load environment variables:",e),d("Failed to load environment variables")}finally{n(!1)}})()},[e]);let S=async(t,a)=>{if("global"===e.scope&&!a&&("ANTHROPIC_API_KEY"===t||"CLAUDE_CODE_OAUTH_TOKEN"===t)&&!r.find(e=>e.key!==t&&("ANTHROPIC_API_KEY"===e.key||"CLAUDE_CODE_OAUTH_TOKEN"===e.key)&&e.enabled))return void alert("Cannot disable the last enabled Claude Token. Please add or enable another Claude Token first.");try{if(!(await fetch((0,l.apiUrl)("/api/env/toggle"),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:t,scope:e.scope,owner:e.owner,repo:e.repo,enabled:a})})).ok)throw Error("Failed to toggle environment variable");s(e=>e.map(e=>e.key===t?{...e,enabled:a}:e))}catch(e){console.error("Failed to toggle environment variable:",e),s(e=>e.map(e=>e.key===t?{...e,enabled:!a}:e))}},T=async t=>{if(confirm(`Delete ${t}?`))try{let a=new URLSearchParams({key:t,scope:e.scope});if(e.owner&&a.set("owner",e.owner),e.repo&&a.set("repo",e.repo),!(await fetch((0,l.apiUrl)(`/api/env?${a}`),{method:"DELETE"})).ok)throw Error("Failed to delete environment variable");s(e=>e.filter(e=>e.key!==t))}catch(e){console.error("Failed to delete environment variable:",e),alert("Failed to delete environment variable")}},O=async(t,a)=>{try{if(!(await fetch((0,l.apiUrl)("/api/env"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:t,value:a,scope:e.scope,owner:e.owner,repo:e.repo})})).ok)throw Error("Failed to update environment variable");s(e=>e.map(e=>e.key===t?{...e,value:a}:e))}catch(e){throw console.error("Failed to update environment variable:",e),e}},I=async()=>{var t;if(k(""),!m.trim())return void k("Key is required");if(!g.trim())return void k("Value is required");if(t=m.trim(),/^[A-Z0-9_]+$/.test(t)?C.includes(t)?(k("Claude tokens should be added in the Tokens section"),!1):!r.some(e=>e.key===t)||(k(`Key "${t}" already exists in this scope`),!1):(k("Key must contain only uppercase letters, numbers, and underscores"),!1))try{if(!(await fetch((0,l.apiUrl)("/api/env"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:m.trim(),value:g.trim(),scope:e.scope,owner:e.owner,repo:e.repo})})).ok)throw Error("Failed to add environment variable");let t=new URLSearchParams({scope:e.scope});e.owner&&t.set("owner",e.owner),e.repo&&t.set("repo",e.repo);let a=await fetch((0,l.apiUrl)(`/api/env/list?${t}`));if(a.ok){let e=((await a.json()).data.envVars||[]).filter(e=>!C.includes(e.key));s(e)}u(!1),p(""),b("")}catch(e){console.error("Failed to add environment variable:",e),k("Failed to add environment variable")}};return i?(0,t.jsx)("div",{className:"h-full flex items-center justify-center",children:(0,t.jsx)(N.LoadingSpinner,{size:"md",message:"Loading variables..."})}):o?(0,t.jsx)("div",{className:"h-full flex items-center justify-center",children:(0,t.jsx)("div",{className:"text-destructive text-sm",children:o})}):(0,t.jsxs)("div",{className:"h-full flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsx)("h2",{className:"text-lg font-bold text-foreground",children:"Environment Variables"}),!c&&(0,t.jsxs)(f.Button,{size:"sm",onClick:()=>u(!0),className:"active:scale-95",children:[(0,t.jsx)(h.Plus,{className:"w-4 h-4"}),"Add Variable"]})]}),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto space-y-3",children:[c&&(0,t.jsxs)("div",{className:"border border-border rounded p-3 bg-accent space-y-2",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-foreground",children:"New Variable"}),(0,t.jsx)(w.Input,{type:"text",value:m,onChange:e=>p(e.target.value.toUpperCase()),placeholder:"VARIABLE_NAME",className:"w-full font-mono",autoFocus:!0}),(0,t.jsx)(w.Input,{type:"password",value:g,onChange:e=>b(e.target.value),placeholder:"value",className:"w-full font-mono"}),y&&(0,t.jsx)("div",{className:"text-xs text-destructive",children:y}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(f.Button,{variant:"outline",size:"sm",onClick:()=>{u(!1),p(""),b(""),k("")},className:"active:scale-95",children:(0,t.jsx)(v.X,{className:"w-4 h-4"})}),(0,t.jsx)(f.Button,{size:"sm",onClick:I,className:"active:scale-95",children:(0,t.jsx)(x.Check,{className:"w-4 h-4"})})]})]}),0!==r.length||c?r.map(e=>(0,t.jsx)(j,{variable:e,onToggle:S,onDelete:T,onUpdate:O,isDeletable:!0},e.key)):(0,t.jsx)("div",{className:"text-center text-muted-foreground text-sm py-4",children:"No environment variables"})]})]})}var S=e.i(63209);let T=["ANTHROPIC_API_KEY","CLAUDE_CODE_OAUTH_TOKEN"],O={ANTHROPIC_API_KEY:"API Key",CLAUDE_CODE_OAUTH_TOKEN:"OAuth Token"};function I(e){return e.startsWith("sk-ant-api")?"ANTHROPIC_API_KEY":e.startsWith("sk-ant-oat")?"CLAUDE_CODE_OAUTH_TOKEN":null}function P({selectedNode:e,onboardingStatus:r,onSwitchToGlobal:s}){let[i,n]=(0,a.useState)([]),[o,d]=(0,a.useState)(!0),[c,u]=(0,a.useState)(null),[m,p]=(0,a.useState)(null),[j,C]=(0,a.useState)(""),[E,R]=(0,a.useState)(""),[M,A]=(0,a.useState)(null),[D,F]=(0,a.useState)({}),[L,U]=(0,a.useState)(!1),[B,V]=(0,a.useState)(""),[$,_]=(0,a.useState)(""),[z,H]=(0,a.useState)(null);(0,a.useEffect)(()=>{K()},[e]);let K=async()=>{d(!0),u(null);try{let t=new URLSearchParams({scope:e.scope});e.owner&&t.set("owner",e.owner),e.repo&&t.set("repo",e.repo);let a=await fetch((0,l.apiUrl)(`/api/env/list?${t}`));if(!a.ok)throw Error("Failed to fetch tokens");let r=((await a.json()).data.envVars||[]).filter(e=>T.includes(e.key)).map(e=>({key:e.key,value:e.value,label:O[e.key]||e.key}));n(r)}catch(e){console.error("Failed to load tokens:",e),u("Failed to load tokens")}finally{d(!1)}},J=()=>{p(null),C(""),R(""),A(null)},G=async t=>{if(!j.trim())return void R("Token value is required");let a=I(j);if(!a)return void R("Invalid token format");try{if(a!==t){let r=new URLSearchParams({key:t,scope:e.scope});e.owner&&r.set("owner",e.owner),e.repo&&r.set("repo",e.repo),await fetch((0,l.apiUrl)(`/api/env?${r}`),{method:"DELETE"}),await fetch((0,l.apiUrl)("/api/env"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:a,value:j.trim(),scope:e.scope,owner:e.owner,repo:e.repo})})}else if(!(await fetch((0,l.apiUrl)("/api/env"),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:t,value:j.trim(),scope:e.scope,owner:e.owner,repo:e.repo})})).ok)throw Error("Failed to update token");await K(),p(null),C(""),R(""),A(null)}catch(e){console.error("Failed to update token:",e),R("Failed to update token")}},q=async()=>{if(!B.trim())return void _("Token value is required");let t=I(B);if(!t)return void _("Invalid token format");if(i.length>0)return void _("Only one Claude token is allowed per scope. Please edit the existing token.");try{if(!(await fetch((0,l.apiUrl)("/api/env"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:t,value:B.trim(),scope:e.scope,owner:e.owner,repo:e.repo})})).ok)throw Error("Failed to add token");await K(),U(!1),V(""),H(null)}catch(e){console.error("Failed to add token:",e),_("Failed to add token")}},Y=async t=>{if(confirm("Are you sure you want to delete this token?"))try{let a=new URLSearchParams({key:t,scope:e.scope});if(e.owner&&a.set("owner",e.owner),e.repo&&a.set("repo",e.repo),!(await fetch((0,l.apiUrl)(`/api/env?${a}`),{method:"DELETE"})).ok)throw Error("Failed to delete token");await K()}catch(e){console.error("Failed to delete token:",e),alert("Failed to delete token")}};if(o)return(0,t.jsxs)("div",{className:"border-2 border-primary rounded-xl p-4 bg-card",children:[(0,t.jsx)("h2",{className:"text-lg font-bold text-foreground mb-4",children:"Claude Tokens"}),(0,t.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,t.jsx)(N.LoadingSpinner,{size:"sm",message:"Loading tokens..."})})]});if(c)return(0,t.jsxs)("div",{className:"border-2 border-primary rounded-xl p-4 bg-card",children:[(0,t.jsx)("h2",{className:"text-lg font-bold text-foreground mb-4",children:"Claude Tokens"}),(0,t.jsx)("div",{className:"text-destructive text-sm",children:c})]});let W=r&&!r.completed&&"global"!==e.scope;return(0,t.jsxs)("div",{className:"border-2 border-primary rounded-xl p-4 bg-card",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsx)("h2",{className:"text-lg font-bold text-foreground",children:"Claude Tokens"}),!L&&0===i.length&&(0,t.jsxs)(f.Button,{size:"sm",onClick:()=>U(!0),className:"active:scale-95",children:[(0,t.jsx)(h.Plus,{className:"w-4 h-4"}),"Add Token"]})]}),W&&(0,t.jsxs)("div",{className:"mb-4 border-2 border-warning bg-warning/10 rounded-xl p-3 flex items-start gap-3",children:[(0,t.jsx)(S.AlertCircle,{className:"w-5 h-5 text-warning flex-shrink-0 mt-0.5"}),(0,t.jsx)("div",{className:"flex-1",children:(0,t.jsx)("p",{className:"text-sm text-warning",children:"オンボーディングを完了するには、Globalスコープにトークンを追加してください"})}),s&&(0,t.jsx)(f.Button,{size:"sm",onClick:s,className:"bg-warning text-white hover:bg-warning/80 active:scale-95 whitespace-nowrap",children:"Switch to Global"})]}),(0,t.jsxs)("div",{className:"space-y-3",children:[L&&(0,t.jsxs)("div",{className:"border border-border rounded p-3 bg-accent",children:[(0,t.jsx)("div",{className:"text-sm font-medium text-foreground mb-2",children:"New Token"}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(w.Input,{type:"password",value:B,onChange:e=>{var t;let a;return V(t=e.target.value),_(""),void(H(a=I(t)),t&&!a&&_("Invalid token format. Must start with sk-ant-api or sk-ant-oat"))},placeholder:"sk-ant-api... or sk-ant-oat...",className:"w-full font-mono",autoFocus:!0}),z&&!$&&(0,t.jsxs)("div",{className:"text-xs text-success",children:["→ Detected: ",O[z]]}),$&&(0,t.jsx)("div",{className:"text-xs text-destructive",children:$}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(f.Button,{variant:"outline",size:"sm",onClick:()=>{U(!1),V(""),_(""),H(null)},className:"active:scale-95",children:(0,t.jsx)(v.X,{className:"w-4 h-4"})}),(0,t.jsx)(f.Button,{size:"sm",onClick:q,disabled:!z||!!$,className:"active:scale-95",children:(0,t.jsx)(x.Check,{className:"w-4 h-4"})})]})]})]}),0!==i.length||L?i.map(a=>(0,t.jsx)("div",{className:"border border-border rounded p-3 space-y-2",children:m===a.key?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"text-sm font-medium text-foreground mb-2",children:"Edit Token"}),(0,t.jsx)(w.Input,{type:"password",value:j,onChange:e=>{var t;let a;return C(t=e.target.value),R(""),void(A(a=I(t)),t&&!a&&R("Invalid token format. Must start with sk-ant-api or sk-ant-oat"))},placeholder:"sk-ant-api... or sk-ant-oat...",className:"w-full font-mono",autoFocus:!0}),M&&!E&&(0,t.jsxs)("div",{className:"text-xs text-success",children:["→ Detected: ",O[M]]}),E&&(0,t.jsx)("div",{className:"text-xs text-destructive",children:E}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(f.Button,{variant:"outline",size:"sm",onClick:J,className:"active:scale-95",children:(0,t.jsx)(v.X,{className:"w-4 h-4"})}),(0,t.jsx)(f.Button,{size:"sm",onClick:()=>G(a.key),disabled:!M||!!E,className:"active:scale-95",children:(0,t.jsx)(x.Check,{className:"w-4 h-4"})})]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-foreground",children:a.label}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(f.Button,{variant:"ghost",size:"icon-lg",onClick:()=>F(e=>({...e,[a.key]:!e[a.key]})),title:D[a.key]?"Hide value":"Show value",children:D[a.key]?(0,t.jsx)(b,{className:"w-4 h-4 text-muted-foreground"}):(0,t.jsx)(g.Eye,{className:"w-4 h-4 text-muted-foreground"})}),(0,t.jsx)(f.Button,{variant:"ghost",size:"icon-lg",onClick:()=>{p(a.key),C(""),R(""),A(null)},title:"Edit",children:(0,t.jsx)(k.Pencil,{className:"w-4 h-4 text-muted-foreground"})}),"global"!==e.scope&&(0,t.jsx)(f.Button,{variant:"ghost",size:"icon-lg",onClick:()=>Y(a.key),className:"hover:bg-destructive/10",title:"Delete",children:(0,t.jsx)(y.Trash2,{className:"w-4 h-4 text-destructive"})})]})]}),(0,t.jsx)(w.Input,{type:D[a.key]?"text":"password",value:a.value,readOnly:!0,className:"w-full font-mono"})]})},a.key)):(0,t.jsx)("div",{className:"text-center text-muted-foreground text-sm py-4",children:"No Claude tokens configured"})]})]})}var R=e.i(5352),M=e.i(68995);function A(){let[e,r]=(0,a.useState)([]),[s,i]=(0,a.useState)({}),[n,o]=(0,a.useState)(null),[d,c]=(0,a.useState)(!1),u=(0,a.useCallback)(async()=>{try{let[e,t]=await Promise.all([fetch((0,l.apiUrl)("/api/repos")).then(e=>e.json()),fetch((0,l.apiUrl)("/api/tasks")).then(e=>e.json())]);r(e.data?.repos??[]);let a={};for(let e of t.data?.tasks??[]){let t=`${e.owner}/${e.repo}`;a[t]=(a[t]??0)+1}i(a)}catch(e){console.error("Failed to load repositories:",e)}},[]);(0,a.useEffect)(()=>{u()},[u]);let m=async()=>{if(n){c(!0);try{if(!(await fetch((0,l.apiUrl)(`/api/repos/${n.owner}/${n.repo}`),{method:"DELETE"})).ok)throw Error("Failed to delete repository");await u()}catch(e){console.error("Failed to delete repository:",e)}finally{c(!1),o(null)}}};return 0===e.length?(0,t.jsx)("div",{className:"text-sm text-muted-foreground",children:"No repositories cloned yet."}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(M.ConfirmDialog,{open:null!==n,onOpenChange:e=>{e.open||o(null)},title:"Delete Repository",message:n?`Delete ${n.owner}/${n.repo}? This will also delete ${s[`${n.owner}/${n.repo}`]??0} associated task(s), all worktrees, and the bare repository. This action cannot be undone.`:"",confirmLabel:d?"Deleting...":"Delete",cancelLabel:"Cancel",onConfirm:m,variant:"danger"}),(0,t.jsx)("div",{className:"space-y-2",children:e.map(e=>{let a=`${e.owner}/${e.repo}`,r=(0,R.getRepoColor)(e.owner,e.repo),l=s[a]??0;return(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-border p-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("span",{className:`inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium ${r.bg} ${r.text}`,children:a}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:[l," task",1!==l?"s":""]})]}),(0,t.jsx)(f.Button,{variant:"ghost",size:"icon",onClick:()=>o(e),className:"text-muted-foreground hover:text-destructive",children:(0,t.jsx)(y.Trash2,{className:"size-4"})})]},e.id)})})]})}var D=e.i(69068);function F({owner:e,repo:r,onDeleted:s}){let[i,n]=(0,a.useState)(!1),[o,d]=(0,a.useState)(""),[c,u]=(0,a.useState)(!1),m=`${e}/${r}`,p=o===m,h=async()=>{if(p){u(!0);try{if(!(await fetch((0,l.apiUrl)(`/api/repos/${e}/${r}`),{method:"DELETE"})).ok)throw Error("Failed to delete repository");s()}catch(e){console.error("Failed to delete repository:",e)}finally{u(!1),n(!1),d("")}}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"rounded-md border border-destructive/30 p-4 space-y-3",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-destructive",children:"Remove Repository"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Remove this repository and all associated data including tasks, worktrees, and environment variables. This action cannot be undone."})]}),(0,t.jsxs)(f.Button,{variant:"destructive",size:"sm",onClick:()=>n(!0),children:[(0,t.jsx)(y.Trash2,{className:"size-4"}),"Remove Repository"]})]}),(0,t.jsx)(D.Dialog,{open:i,onOpenChange:n,children:(0,t.jsxs)(D.DialogContent,{showCloseButton:!1,children:[(0,t.jsxs)(D.DialogHeader,{children:[(0,t.jsx)(D.DialogTitle,{children:"Remove Repository"}),(0,t.jsxs)(D.DialogDescription,{children:["This will permanently delete ",(0,t.jsx)("strong",{children:m})," and all associated tasks, worktrees, and environment variables."]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("label",{className:"text-xs text-muted-foreground",children:["Type ",(0,t.jsx)("strong",{children:m})," to confirm"]}),(0,t.jsx)(w.Input,{value:o,onChange:e=>d(e.target.value),placeholder:m,autoComplete:"off"})]}),(0,t.jsxs)(D.DialogFooter,{children:[(0,t.jsx)(f.Button,{variant:"outline",size:"sm",onClick:()=>{n(!1),d("")},disabled:c,children:"Cancel"}),(0,t.jsx)(f.Button,{variant:"destructive",size:"sm",onClick:h,disabled:!p||c,children:c?"Removing...":"Remove"})]})]})})]})}var L=e.i(51846);e.s(["default",0,function(){let e=(0,r.useRouter)();(0,L.useDocumentTitle)("settings");let i=()=>{{let e=localStorage.getItem("tsunagi:env-selected-node");if(e)try{return JSON.parse(e)}catch(e){console.error("Failed to parse selected node:",e)}}return{scope:"global",label:"Global"}},[n,o]=(0,a.useState)(null),[d,c]=(0,a.useState)(0),[u,m]=(0,a.useState)({completed:!0,hasGlobalToken:!0});return(0,a.useEffect)(()=>{fetch((0,l.apiUrl)("/api/onboarding/status")).then(e=>e.json()).then(e=>{let t=e.data;m(t),t.completed||t.hasGlobalToken?o(i()):o({scope:"global",label:"Global"})}).catch(e=>{console.error("Failed to fetch onboarding status:",e),o(i())})},[]),(0,a.useEffect)(()=>{n&&localStorage.setItem("tsunagi:env-selected-node",JSON.stringify(n))},[n]),(0,t.jsxs)("div",{className:"h-screen flex flex-col bg-background",children:[(0,t.jsx)("div",{className:"sticky top-0 z-50 p-4 border-b border-border bg-card",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)(f.Button,{variant:"ghost",onClick:()=>e.push("/"),className:"text-primary font-medium hover:bg-primary/10 hover:text-foreground",children:[(0,t.jsx)(s.ArrowLeft,{className:"w-4 h-4"}),"Back to Board"]}),(0,t.jsx)("h1",{className:"text-xl font-bold text-foreground absolute left-1/2 -translate-x-1/2",children:"Settings"})]})}),(0,t.jsxs)("div",{className:"flex-1 flex min-h-0",children:[(0,t.jsx)("div",{className:"w-64 border-r border-border bg-card",children:(0,t.jsx)(p,{selectedNode:n,onNodeSelect:e=>{o(e)},refreshKey:d})}),(0,t.jsx)("div",{className:"flex-1 bg-card p-4 overflow-y-auto",children:n?(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)(P,{selectedNode:n,onboardingStatus:u,onSwitchToGlobal:()=>{o({scope:"global",label:"Global"})}}),(0,t.jsx)(E,{selectedNode:n}),"global"===n.scope&&(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold text-foreground",children:"Repositories"}),(0,t.jsx)(A,{})]}),"repo"===n.scope&&n.owner&&n.repo&&(0,t.jsx)(F,{owner:n.owner,repo:n.repo,onDeleted:()=>{o({scope:"global",label:"Global"}),c(e=>e+1)}})]}):(0,t.jsx)("div",{className:"h-full flex items-center justify-center text-muted-foreground text-sm",children:"Select a node from the left panel"})})]})]})}],82341)}]);
@@ -1,105 +1,41 @@
1
1
  {
2
- "name": "@minimalcorp/tsunagi",
3
- "version": "0.0.4",
4
- "description": "Multi-repo GitHub project management with Claude AI integration, designed for visualizing and controlling AI-driven development locally.",
5
- "keywords": [
6
- "tsunagi",
7
- "claude",
8
- "claude-code",
9
- "ai",
10
- "agent",
11
- "task-management",
12
- "worktree",
13
- "github",
14
- "developer-tools"
15
- ],
16
- "homepage": "https://github.com/minimalcorp/tsunagi#readme",
17
- "repository": {
18
- "type": "git",
19
- "url": "git+https://github.com/minimalcorp/tsunagi.git"
20
- },
21
- "bugs": {
22
- "url": "https://github.com/minimalcorp/tsunagi/issues"
23
- },
24
- "author": "minimalcorp",
25
- "license": "SEE LICENSE IN LICENSE",
26
- "engines": {
27
- "node": ">=20"
28
- },
29
- "os": [
30
- "darwin",
31
- "linux"
32
- ],
33
- "bin": {
34
- "tsunagi": "./dist/scripts/cli.js"
35
- },
36
- "files": [
37
- "dist/**/*",
38
- "prisma/schema.prisma",
39
- "prisma/migrations/**/*",
40
- "prisma.config.ts",
41
- ".next/standalone/**/*",
42
- "scripts/fix-node-pty-permissions.cjs",
43
- "tsunagi-marketplace/**/*",
44
- "LICENSE",
45
- "README.md"
46
- ],
2
+ "name": "@minimalcorp/tsunagi-web",
3
+ "version": "0.0.0",
4
+ "private": true,
5
+ "description": "Next.js UI for tsunagi",
6
+ "type": "module",
47
7
  "scripts": {
48
- "dev": "tsx scripts/auto-migrate.ts && tsx scripts/with-plugin.ts dev",
49
- "server:dev": "tsx watch server/index.ts",
50
- "build": "npm run db:generate && npm run build:server && npm run build:next",
51
- "build:server": "tsc -p tsconfig.dist.json && chmod +x dist/scripts/cli.js",
52
- "build:next": "next build && cp -R .next/static .next/standalone/apps/web/.next/static",
53
- "start": "tsx scripts/auto-migrate.ts && tsx scripts/with-plugin.ts start",
54
- "postinstall": "prisma generate && node scripts/fix-node-pty-permissions.cjs",
55
- "prepack": "npm run build",
56
- "prepublishOnly": "npm run lint && npm run type-check",
8
+ "dev": "next dev -p 2791",
9
+ "build": "next build",
10
+ "start": "next start -p 2791",
57
11
  "lint": "eslint",
58
- "type-check": "tsc --noEmit && tsc --noEmit -p server/tsconfig.json",
59
- "db:migrate": "npx prisma migrate dev",
60
- "db:generate": "npx prisma generate",
61
- "db:studio": "npx prisma studio",
62
- "db:migrate-from-json": "tsx scripts/migrate-to-sqlite.ts",
63
- "db:backup": "tsx scripts/db-backup.ts",
64
- "db:restore": "tsx scripts/db-restore.ts"
12
+ "type-check": "tsc --noEmit"
65
13
  },
66
14
  "dependencies": {
67
15
  "@base-ui/react": "^1.3.0",
68
- "@fastify/cors": "^11.2.0",
69
16
  "@hello-pangea/dnd": "^18.0.1",
70
- "@libsql/client": "0.8.1",
71
- "@modelcontextprotocol/sdk": "^1.27.1",
17
+ "@minimalcorp/tsunagi-shared": "*",
72
18
  "@monaco-editor/react": "^4.7.0",
73
- "@prisma/adapter-libsql": "^7.3.0",
74
- "@prisma/client": "^7.3.0",
75
19
  "@xterm/addon-fit": "^0.11.0",
76
20
  "@xterm/xterm": "^6.0.0",
77
21
  "@xyflow/react": "^12.10.0",
78
22
  "class-variance-authority": "^0.7.1",
79
23
  "clsx": "^2.1.1",
80
24
  "cmdk": "^1.1.1",
81
- "dotenv": "^17.2.3",
82
- "fastify": "^5.8.2",
83
- "fastify-socket.io": "^5.1.0",
84
25
  "lucide-react": "^0.562.0",
85
26
  "mermaid": "^11.14.0",
86
27
  "monaco-editor": "^0.55.1",
87
28
  "next": "^16.1.6",
88
29
  "next-themes": "^0.4.6",
89
- "node-pty": "^1.1.0",
90
- "prisma": "^7.3.0",
91
30
  "react": "19.2.1",
92
31
  "react-dom": "19.2.1",
93
32
  "react-markdown": "^10.1.0",
94
33
  "remark-gfm": "^4.0.1",
95
34
  "shadcn": "^4.1.0",
96
- "simple-git": "^3.30.0",
97
- "socket.io": "^4.8.3",
98
35
  "socket.io-client": "^4.8.3",
99
36
  "sonner": "^2.0.7",
100
37
  "tailwind-merge": "^3.5.0",
101
- "tw-animate-css": "^1.4.0",
102
- "uuid": "^13.0.0"
38
+ "tw-animate-css": "^1.4.0"
103
39
  },
104
40
  "devDependencies": {
105
41
  "@tailwindcss/postcss": "^4",
@@ -107,13 +43,10 @@
107
43
  "@types/react": "^19",
108
44
  "@types/react-dom": "^19",
109
45
  "@types/trusted-types": "^2.0.7",
110
- "@types/uuid": "^10.0.0",
111
- "concurrently": "^9.2.1",
112
46
  "eslint": "^9",
113
47
  "eslint-config-next": "16.0.10",
114
48
  "eslint-config-prettier": "^10.1.8",
115
49
  "tailwindcss": "^4",
116
- "tsx": "^4.21.0",
117
50
  "typescript": "5.9.3"
118
51
  }
119
52
  }
@@ -1,4 +1,10 @@
1
- const path = require('path')
1
+ performance.mark('next-start');
2
+ import path from 'node:path'
3
+ import { fileURLToPath } from 'node:url'
4
+ import module from 'node:module'
5
+ const require = module.createRequire(import.meta.url)
6
+ const __dirname = fileURLToPath(new URL('.', import.meta.url))
7
+
2
8
 
3
9
  const dir = path.join(__dirname)
4
10
 
@@ -9,7 +15,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
9
15
  const hostname = process.env.HOSTNAME || '0.0.0.0'
10
16
 
11
17
  let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
12
- const nextConfig = {"env":{},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":false,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/tsunagi/tsunagi","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":false,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"partialFallbacks":false,"dynamicOnHover":false,"varyParams":false,"prefetchInlining":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","turbopack":{"root":"/home/runner/work/tsunagi/tsunagi"},"serverExternalPackages":["@prisma/client","better-sqlite3"],"distDirRoot":".next","_originalRewrites":{"beforeFiles":[],"afterFiles":[{"source":"/api/terminal/:path*","destination":"http://localhost:2792/api/terminal/:path*"}],"fallback":[]}}
18
+ const nextConfig = {"env":{},"webpack":null,"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.ts","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":false,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/home/runner/work/tsunagi/tsunagi","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":false,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"partialFallbacks":false,"dynamicOnHover":false,"varyParams":false,"prefetchInlining":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.ts","turbopack":{"root":"/home/runner/work/tsunagi/tsunagi"},"distDirRoot":".next"}
13
19
 
14
20
  process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
15
21
 
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,30 @@
1
+ import { exec } from 'node:child_process';
2
+ import { promisify } from 'node:util';
3
+ import * as os from 'node:os';
4
+ import * as path from 'node:path';
5
+ import * as fs from 'node:fs/promises';
6
+ const execAsync = promisify(exec);
7
+ function getTsunagiDataDir() {
8
+ return process.env.TSUNAGI_DATA_DIR || path.join(os.homedir(), '.tsunagi');
9
+ }
10
+ function getStateDir() {
11
+ return path.join(getTsunagiDataDir(), 'state');
12
+ }
13
+ async function autoMigrate() {
14
+ try {
15
+ console.log('DB migration started');
16
+ await fs.mkdir(getStateDir(), { recursive: true });
17
+ const { stdout } = await execAsync('npx prisma migrate deploy');
18
+ const lines = stdout
19
+ .split('\n')
20
+ .map((l) => l.trim())
21
+ .filter((l) => l && !l.startsWith('Prisma schema loaded'));
22
+ if (lines.length > 0)
23
+ console.log(lines.join('\n'));
24
+ }
25
+ catch (error) {
26
+ console.error('DB migration failed:', error instanceof Error ? error.message : error);
27
+ process.exit(1);
28
+ }
29
+ }
30
+ autoMigrate();
package/dist/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/cli.js ADDED
@@ -0,0 +1,104 @@
1
+ #!/usr/bin/env node
2
+ import { spawn, spawnSync } from 'node:child_process';
3
+ import * as fs from 'node:fs';
4
+ import * as path from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+ import { cleanupPluginState, ensureCleanPluginState } from './plugin-lifecycle.js';
7
+ import { acquireSingleInstanceLock } from './single-instance-lock.js';
8
+ /**
9
+ * Production CLI entrypoint shipped as `bin` in @minimalcorp/tsunagi.
10
+ *
11
+ * Layout when installed via npm:
12
+ *
13
+ * <pkg>/dist/cli.js ← this file
14
+ * <pkg>/dist/auto-migrate.js
15
+ * <pkg>/dist/plugin-lifecycle.js
16
+ * <pkg>/dist/single-instance-lock.js
17
+ * <pkg>/dist/server/index.js ← Fastify entry (bundled from apps/server/dist)
18
+ * <pkg>/dist/server/lib/**
19
+ * <pkg>/dist/server/generated/prisma/**
20
+ * <pkg>/.next/standalone/apps/web/server.js ← Next.js standalone entry (bundled from apps/web/.next/standalone)
21
+ * <pkg>/.next/standalone/apps/web/.next/static/
22
+ * <pkg>/.next/standalone/node_modules/
23
+ * <pkg>/prisma/schema.prisma
24
+ * <pkg>/prisma.config.ts
25
+ * <pkg>/tsunagi-marketplace/plugins/tsunagi-plugin/.claude-plugin/plugin.json
26
+ */
27
+ if (process.platform !== 'darwin' && process.platform !== 'linux') {
28
+ console.error(`[tsunagi] Unsupported platform: ${process.platform}`);
29
+ console.error('[tsunagi] Tsunagi currently supports macOS and Linux only.');
30
+ process.exit(1);
31
+ }
32
+ acquireSingleInstanceLock();
33
+ const DIST_DIR = path.dirname(fileURLToPath(import.meta.url));
34
+ const PACKAGE_ROOT = path.resolve(DIST_DIR, '..');
35
+ const AUTO_MIGRATE_JS = path.join(DIST_DIR, 'auto-migrate.js');
36
+ const FASTIFY_ENTRY_JS = path.join(DIST_DIR, 'server', 'index.js');
37
+ const NEXT_STANDALONE_ENTRY = path.join(PACKAGE_ROOT, '.next', 'standalone', 'apps', 'web', 'server.js');
38
+ function runAutoMigrate() {
39
+ if (!fs.existsSync(AUTO_MIGRATE_JS)) {
40
+ console.error(`[tsunagi] Missing build artifact: ${AUTO_MIGRATE_JS}`);
41
+ process.exit(1);
42
+ }
43
+ const result = spawnSync(process.execPath, [AUTO_MIGRATE_JS], {
44
+ stdio: 'inherit',
45
+ cwd: PACKAGE_ROOT,
46
+ });
47
+ if (result.status !== 0) {
48
+ console.error('[tsunagi] Database migration failed.');
49
+ process.exit(result.status ?? 1);
50
+ }
51
+ }
52
+ runAutoMigrate();
53
+ ensureCleanPluginState();
54
+ function verifyArtifact(p, label) {
55
+ if (!fs.existsSync(p)) {
56
+ console.error(`[tsunagi] Missing ${label}: ${p}`);
57
+ console.error('[tsunagi] The package appears to be incomplete. Please reinstall.');
58
+ process.exit(1);
59
+ }
60
+ }
61
+ verifyArtifact(FASTIFY_ENTRY_JS, 'Fastify server artifact');
62
+ verifyArtifact(NEXT_STANDALONE_ENTRY, 'Next.js standalone artifact');
63
+ const fastifyChild = spawn(process.execPath, [FASTIFY_ENTRY_JS], {
64
+ stdio: 'inherit',
65
+ cwd: PACKAGE_ROOT,
66
+ env: process.env,
67
+ });
68
+ const nextChild = spawn(process.execPath, [NEXT_STANDALONE_ENTRY], {
69
+ stdio: 'inherit',
70
+ cwd: path.dirname(NEXT_STANDALONE_ENTRY),
71
+ env: { ...process.env, PORT: process.env.PORT ?? '2791' },
72
+ });
73
+ let shuttingDown = false;
74
+ function shutdown(code) {
75
+ if (shuttingDown)
76
+ return;
77
+ shuttingDown = true;
78
+ for (const child of [fastifyChild, nextChild]) {
79
+ if (child && !child.killed && child.exitCode === null) {
80
+ try {
81
+ child.kill('SIGTERM');
82
+ }
83
+ catch {
84
+ // ignore
85
+ }
86
+ }
87
+ }
88
+ cleanupPluginState();
89
+ process.exit(code);
90
+ }
91
+ process.on('SIGINT', () => shutdown(0));
92
+ process.on('SIGTERM', () => shutdown(0));
93
+ process.on('exit', () => {
94
+ if (!shuttingDown)
95
+ cleanupPluginState();
96
+ });
97
+ fastifyChild.on('exit', (code) => {
98
+ console.error(`[tsunagi] Fastify server exited with code ${code}`);
99
+ shutdown(code ?? 1);
100
+ });
101
+ nextChild.on('exit', (code) => {
102
+ console.error(`[tsunagi] Next.js server exited with code ${code}`);
103
+ shutdown(code ?? 1);
104
+ });
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Ensure a clean plugin state by removing any pre-existing tsunagi plugin /
3
+ * marketplace registrations and then installing fresh copies.
4
+ *
5
+ * Exits the process with code 1 on install failure.
6
+ */
7
+ export declare function ensureCleanPluginState(): void;
8
+ /**
9
+ * Best-effort cleanup. Called on process shutdown. Never throws.
10
+ */
11
+ export declare function cleanupPluginState(): void;
@@ -0,0 +1,111 @@
1
+ import { execSync } from 'node:child_process';
2
+ import * as fs from 'node:fs';
3
+ import * as path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ /**
6
+ * Claude Code plugin lifecycle management.
7
+ *
8
+ * Strategy: clean install on startup, unconditional uninstall on shutdown.
9
+ *
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.
18
+ */
19
+ const THIS_DIR = path.dirname(fileURLToPath(import.meta.url));
20
+ // dev (tsx): apps/cli/src/plugin-lifecycle.ts → THIS_DIR = apps/cli/src
21
+ // → ../tsunagi-marketplace = apps/cli/tsunagi-marketplace ✓
22
+ // prod (compiled): <pkg>/dist/plugin-lifecycle.js → THIS_DIR = <pkg>/dist
23
+ // → ../tsunagi-marketplace = <pkg>/tsunagi-marketplace ✓
24
+ 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;
33
+ }
34
+ function log(msg) {
35
+ console.log(`[tsunagi:plugin] ${msg}`);
36
+ }
37
+ /** プラグインがインストール済みか確認する */
38
+ function isPluginInstalled() {
39
+ try {
40
+ const output = execSync('claude plugin list', { stdio: 'pipe' }).toString();
41
+ return output.includes(PLUGIN_REF);
42
+ }
43
+ catch {
44
+ return false;
45
+ }
46
+ }
47
+ /** marketplaceが登録済みか確認する */
48
+ function isMarketplaceAdded() {
49
+ try {
50
+ const output = execSync('claude plugin marketplace list', { stdio: 'pipe' }).toString();
51
+ return output.includes(MARKETPLACE_NAME);
52
+ }
53
+ catch {
54
+ return false;
55
+ }
56
+ }
57
+ /**
58
+ * Run a `claude` CLI command. Returns true on success, false on failure.
59
+ * Logs stderr on failure to aid debugging.
60
+ */
61
+ function runClaude(args) {
62
+ try {
63
+ execSync(`claude ${args}`, { stdio: 'pipe' });
64
+ return true;
65
+ }
66
+ catch (e) {
67
+ const err = e;
68
+ const detail = err.stderr?.toString().trim() || err.stdout?.toString().trim() || '';
69
+ if (detail)
70
+ console.error(`[tsunagi:plugin] claude ${args}: ${detail}`);
71
+ return false;
72
+ }
73
+ }
74
+ /**
75
+ * Ensure a clean plugin state by removing any pre-existing tsunagi plugin /
76
+ * marketplace registrations and then installing fresh copies.
77
+ *
78
+ * Exits the process with code 1 on install failure.
79
+ */
80
+ export function ensureCleanPluginState() {
81
+ // Phase 1: best-effort cleanup of any orphaned state from a previous run.
82
+ // Check existence first to avoid error output when plugin is not installed (normal first-boot case).
83
+ if (isPluginInstalled()) {
84
+ runClaude(`plugin uninstall ${PLUGIN_REF}`);
85
+ }
86
+ if (isMarketplaceAdded()) {
87
+ runClaude(`plugin marketplace remove ${MARKETPLACE_NAME}`);
88
+ }
89
+ // Phase 2: clean install. Failures here are fatal.
90
+ const marketplaceDir = getMarketplaceDir();
91
+ if (!runClaude(`plugin marketplace add ${marketplaceDir}`)) {
92
+ console.error('[tsunagi:plugin] Failed to add Claude Code marketplace.');
93
+ console.error('[tsunagi:plugin] Ensure the `claude` CLI is installed and available on PATH.');
94
+ console.error(`[tsunagi:plugin] Marketplace path: ${marketplaceDir}`);
95
+ process.exit(1);
96
+ }
97
+ log('Marketplace added');
98
+ if (!runClaude(`plugin install ${PLUGIN_REF} --scope user`)) {
99
+ console.error('[tsunagi:plugin] Failed to install Claude Code plugin.');
100
+ runClaude(`plugin marketplace remove ${MARKETPLACE_NAME}`);
101
+ process.exit(1);
102
+ }
103
+ log('Plugin installed');
104
+ }
105
+ /**
106
+ * Best-effort cleanup. Called on process shutdown. Never throws.
107
+ */
108
+ export function cleanupPluginState() {
109
+ runClaude(`plugin uninstall ${PLUGIN_REF}`);
110
+ runClaude(`plugin marketplace remove ${MARKETPLACE_NAME}`);
111
+ }
@@ -0,0 +1,9 @@
1
+ interface EditorSession {
2
+ filePath: string;
3
+ content: string;
4
+ status: 'pending' | 'done';
5
+ createdAt: number;
6
+ tabId: string | null;
7
+ }
8
+ export declare const editorSessionStore: Map<string, EditorSession>;
9
+ export {};
@@ -1,13 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.editorSessionStore = void 0;
4
- exports.editorSessionStore = new Map();
1
+ export const editorSessionStore = new Map();
5
2
  // 完了済みセッションを10分後にクリーンアップ(編集中のセッションは保持)
6
3
  setInterval(() => {
7
4
  const threshold = Date.now() - 10 * 60 * 1000;
8
- for (const [id, session] of exports.editorSessionStore) {
5
+ for (const [id, session] of editorSessionStore) {
9
6
  if (session.status === 'done' && session.createdAt < threshold) {
10
- exports.editorSessionStore.delete(id);
7
+ editorSessionStore.delete(id);
11
8
  }
12
9
  }
13
10
  }, 60 * 1000);
@@ -0,0 +1,29 @@
1
+ import * as Prisma from './internal/prismaNamespaceBrowser.js';
2
+ export { Prisma };
3
+ export * as $Enums from './enums.js';
4
+ export * from './enums.js';
5
+ /**
6
+ * Model Repository
7
+ *
8
+ */
9
+ export type Repository = Prisma.RepositoryModel;
10
+ /**
11
+ * Model Task
12
+ *
13
+ */
14
+ export type Task = Prisma.TaskModel;
15
+ /**
16
+ * Model Tab
17
+ *
18
+ */
19
+ export type Tab = Prisma.TabModel;
20
+ /**
21
+ * Model PlannerTab
22
+ *
23
+ */
24
+ export type PlannerTab = Prisma.PlannerTabModel;
25
+ /**
26
+ * Model EnvironmentVariable
27
+ *
28
+ */
29
+ export type EnvironmentVariable = Prisma.EnvironmentVariableModel;