@shepai/cli 1.161.0 → 1.162.0-pr505.816d365

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 (419) hide show
  1. package/apis/json-schema/FabLayoutConfig.yaml +11 -0
  2. package/apis/json-schema/Settings.yaml +3 -0
  3. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts +20 -0
  4. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts.map +1 -1
  5. package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -1
  6. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  7. package/dist/packages/core/src/application/use-cases/repositories/list-github-organizations.use-case.d.ts +13 -0
  8. package/dist/packages/core/src/application/use-cases/repositories/list-github-organizations.use-case.d.ts.map +1 -0
  9. package/dist/packages/core/src/application/use-cases/repositories/list-github-organizations.use-case.js +35 -0
  10. package/dist/packages/core/src/domain/generated/output.d.ts +13 -0
  11. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  12. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  13. package/dist/packages/core/src/infrastructure/di/container.js +5 -0
  14. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +1 -0
  15. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  16. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +6 -0
  17. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/050-add-fab-position-swapped.d.ts +15 -0
  18. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/050-add-fab-position-swapped.d.ts.map +1 -0
  19. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/050-add-fab-position-swapped.js +20 -0
  20. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts +2 -1
  21. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts.map +1 -1
  22. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.js +20 -0
  23. package/dist/src/presentation/cli/commands/repo/add.command.d.ts.map +1 -1
  24. package/dist/src/presentation/cli/commands/repo/add.command.js +3 -1
  25. package/dist/src/presentation/tui/wizards/github-import.wizard.d.ts +5 -2
  26. package/dist/src/presentation/tui/wizards/github-import.wizard.d.ts.map +1 -1
  27. package/dist/src/presentation/tui/wizards/github-import.wizard.js +38 -6
  28. package/dist/src/presentation/web/app/actions/list-github-organizations.d.ts +6 -0
  29. package/dist/src/presentation/web/app/actions/list-github-organizations.d.ts.map +1 -0
  30. package/dist/src/presentation/web/app/actions/list-github-organizations.js +17 -0
  31. package/dist/src/presentation/web/app/actions/list-github-repositories.d.ts +1 -0
  32. package/dist/src/presentation/web/app/actions/list-github-repositories.d.ts.map +1 -1
  33. package/dist/src/presentation/web/app/features/feature-tree-page-client.d.ts +6 -0
  34. package/dist/src/presentation/web/app/features/feature-tree-page-client.d.ts.map +1 -0
  35. package/dist/src/presentation/web/app/features/feature-tree-page-client.js +13 -0
  36. package/dist/src/presentation/web/app/features/get-feature-tree-data.d.ts +3 -0
  37. package/dist/src/presentation/web/app/features/get-feature-tree-data.d.ts.map +1 -0
  38. package/dist/src/presentation/web/app/features/get-feature-tree-data.js +40 -0
  39. package/dist/src/presentation/web/app/features/page.d.ts +4 -0
  40. package/dist/src/presentation/web/app/features/page.d.ts.map +1 -0
  41. package/dist/src/presentation/web/app/features/page.js +9 -0
  42. package/dist/src/presentation/web/app/layout.d.ts.map +1 -1
  43. package/dist/src/presentation/web/app/layout.js +3 -1
  44. package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.d.ts +8 -1
  45. package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.d.ts.map +1 -1
  46. package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.js +37 -7
  47. package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.stories.d.ts +1 -0
  48. package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.stories.d.ts.map +1 -1
  49. package/dist/src/presentation/web/components/common/github-import-dialog/github-repo-browser.stories.js +35 -0
  50. package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -1
  51. package/dist/src/presentation/web/components/features/chat/ChatSheet.js +22 -2
  52. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  53. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +15 -1
  54. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.d.ts +28 -0
  55. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.d.ts.map +1 -0
  56. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.js +176 -0
  57. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.stories.d.ts +11 -0
  58. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.stories.d.ts.map +1 -0
  59. package/dist/src/presentation/web/components/features/feature-tree-table/feature-tree-table.stories.js +140 -0
  60. package/dist/src/presentation/web/components/features/feature-tree-table/index.d.ts +3 -0
  61. package/dist/src/presentation/web/components/features/feature-tree-table/index.d.ts.map +1 -0
  62. package/dist/src/presentation/web/components/features/feature-tree-table/index.js +1 -0
  63. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  64. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +9 -2
  65. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  66. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +3 -6
  67. package/dist/src/presentation/web/hooks/fab-layout-context.d.ts +18 -0
  68. package/dist/src/presentation/web/hooks/fab-layout-context.d.ts.map +1 -0
  69. package/dist/src/presentation/web/hooks/fab-layout-context.js +19 -0
  70. package/dist/src/presentation/web/lib/fab-layout.d.ts +11 -0
  71. package/dist/src/presentation/web/lib/fab-layout.d.ts.map +1 -0
  72. package/dist/src/presentation/web/lib/fab-layout.js +21 -0
  73. package/dist/translations/ar/web.json +8 -0
  74. package/dist/translations/de/web.json +8 -0
  75. package/dist/translations/en/web.json +8 -0
  76. package/dist/translations/es/web.json +8 -0
  77. package/dist/translations/fr/web.json +8 -0
  78. package/dist/translations/he/web.json +8 -0
  79. package/dist/translations/pt/web.json +8 -0
  80. package/dist/translations/ru/web.json +8 -0
  81. package/dist/tsconfig.build.tsbuildinfo +1 -1
  82. package/package.json +1 -1
  83. package/web/.next/BUILD_ID +1 -1
  84. package/web/.next/app-path-routes-manifest.json +1 -0
  85. package/web/.next/build-manifest.json +5 -5
  86. package/web/.next/fallback-build-manifest.json +2 -2
  87. package/web/.next/prerender-manifest.json +3 -3
  88. package/web/.next/required-server-files.js +3 -3
  89. package/web/.next/required-server-files.json +3 -3
  90. package/web/.next/routes-manifest.json +6 -0
  91. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +3 -3
  92. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +71 -56
  93. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +3 -3
  94. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  95. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  96. package/web/.next/server/app/(dashboard)/@drawer/chat/page/build-manifest.json +3 -3
  97. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +67 -52
  98. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +3 -3
  99. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  100. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  101. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +3 -3
  102. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +73 -58
  103. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +3 -3
  104. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  105. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  106. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  107. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +87 -72
  108. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +3 -3
  109. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  110. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  111. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +3 -3
  112. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +87 -72
  113. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +3 -3
  114. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  115. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  116. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
  117. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +67 -52
  118. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +3 -3
  119. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  120. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  121. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +3 -3
  122. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +67 -52
  123. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +3 -3
  124. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  125. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  126. package/web/.next/server/app/(dashboard)/chat/page/build-manifest.json +3 -3
  127. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +67 -52
  128. package/web/.next/server/app/(dashboard)/chat/page.js +3 -3
  129. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  130. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  131. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +3 -3
  132. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +73 -58
  133. package/web/.next/server/app/(dashboard)/create/page.js +3 -3
  134. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  135. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  136. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  137. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +87 -72
  138. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +3 -3
  139. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  140. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  141. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +3 -3
  142. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +87 -72
  143. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +3 -3
  144. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  145. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  146. package/web/.next/server/app/(dashboard)/page/build-manifest.json +3 -3
  147. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +67 -52
  148. package/web/.next/server/app/(dashboard)/page.js +3 -3
  149. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  150. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  151. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
  152. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +67 -52
  153. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +3 -3
  154. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  155. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  156. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +3 -3
  157. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +67 -52
  158. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +3 -3
  159. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  160. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  161. package/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
  162. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  163. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  164. package/web/.next/server/app/_global-error.html +2 -2
  165. package/web/.next/server/app/_global-error.rsc +1 -1
  166. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  167. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  168. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  169. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  170. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  171. package/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
  172. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +25 -10
  173. package/web/.next/server/app/_not-found/page.js +2 -2
  174. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  175. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  176. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  177. package/web/.next/server/app/api/attachments/upload-from-path/route.js +1 -1
  178. package/web/.next/server/app/api/attachments/upload-from-path/route.js.nft.json +1 -1
  179. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  180. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  181. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  182. package/web/.next/server/app/features/page/app-paths-manifest.json +3 -0
  183. package/web/.next/server/app/features/page/build-manifest.json +18 -0
  184. package/web/.next/server/app/features/page/next-font-manifest.json +6 -0
  185. package/web/.next/server/app/features/page/react-loadable-manifest.json +8 -0
  186. package/web/.next/server/app/features/page/server-reference-manifest.json +95 -0
  187. package/web/.next/server/app/features/page.js +18 -0
  188. package/web/.next/server/app/features/page.js.map +5 -0
  189. package/web/.next/server/app/features/page.js.nft.json +1 -0
  190. package/web/.next/server/app/features/page_client-reference-manifest.js +2 -0
  191. package/web/.next/server/app/settings/page/build-manifest.json +3 -3
  192. package/web/.next/server/app/settings/page/server-reference-manifest.json +31 -16
  193. package/web/.next/server/app/settings/page.js +3 -3
  194. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  195. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  196. package/web/.next/server/app/skills/page/build-manifest.json +3 -3
  197. package/web/.next/server/app/skills/page/server-reference-manifest.json +35 -20
  198. package/web/.next/server/app/skills/page.js +2 -2
  199. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  200. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  201. package/web/.next/server/app/tools/page/build-manifest.json +3 -3
  202. package/web/.next/server/app/tools/page/server-reference-manifest.json +35 -20
  203. package/web/.next/server/app/tools/page.js +2 -2
  204. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  205. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  206. package/web/.next/server/app/version/page/build-manifest.json +3 -3
  207. package/web/.next/server/app/version/page/server-reference-manifest.json +25 -10
  208. package/web/.next/server/app/version/page.js +2 -2
  209. package/web/.next/server/app/version/page.js.nft.json +1 -1
  210. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  211. package/web/.next/server/app-paths-manifest.json +1 -0
  212. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  213. package/web/.next/server/chunks/{[root-of-the-server]__ea653642._.js → [root-of-the-server]__a5879003._.js} +2 -2
  214. package/web/.next/server/chunks/{[root-of-the-server]__ea653642._.js.map → [root-of-the-server]__a5879003._.js.map} +1 -1
  215. package/web/.next/server/chunks/[root-of-the-server]__beda892a._.js.map +1 -1
  216. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  217. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  218. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  219. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
  220. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  221. package/web/.next/server/chunks/ssr/[root-of-the-server]__08c912ab._.js +3 -0
  222. package/web/.next/server/chunks/ssr/[root-of-the-server]__08c912ab._.js.map +1 -0
  223. package/web/.next/server/chunks/ssr/{[root-of-the-server]__b062b383._.js → [root-of-the-server]__0c5452c3._.js} +2 -2
  224. package/web/.next/server/chunks/ssr/[root-of-the-server]__0c5452c3._.js.map +1 -0
  225. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +4 -0
  226. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -0
  227. package/web/.next/server/chunks/ssr/[root-of-the-server]__2b3d5020._.js +3 -0
  228. package/web/.next/server/chunks/ssr/[root-of-the-server]__2b3d5020._.js.map +1 -0
  229. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  230. package/web/.next/server/chunks/ssr/[root-of-the-server]__563e4faf._.js +4 -0
  231. package/web/.next/server/chunks/ssr/[root-of-the-server]__563e4faf._.js.map +1 -0
  232. package/web/.next/server/chunks/ssr/{[root-of-the-server]__dffa13c5._.js → [root-of-the-server]__69dd3217._.js} +2 -2
  233. package/web/.next/server/chunks/ssr/{[root-of-the-server]__dffa13c5._.js.map → [root-of-the-server]__69dd3217._.js.map} +1 -1
  234. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +4 -0
  235. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -0
  236. package/web/.next/server/chunks/ssr/[root-of-the-server]__7ffd3598._.js +4 -0
  237. package/web/.next/server/chunks/ssr/[root-of-the-server]__7ffd3598._.js.map +1 -0
  238. package/web/.next/server/chunks/ssr/[root-of-the-server]__821a11c1._.js +4 -0
  239. package/web/.next/server/chunks/ssr/[root-of-the-server]__821a11c1._.js.map +1 -0
  240. package/web/.next/server/chunks/ssr/{[root-of-the-server]__248ee887._.js → [root-of-the-server]__851f6adb._.js} +2 -2
  241. package/web/.next/server/chunks/ssr/[root-of-the-server]__851f6adb._.js.map +1 -0
  242. package/web/.next/server/chunks/ssr/[root-of-the-server]__98740ee4._.js +4 -0
  243. package/web/.next/server/chunks/ssr/[root-of-the-server]__98740ee4._.js.map +1 -0
  244. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js +4 -0
  245. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js.map +1 -0
  246. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +4 -0
  247. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -0
  248. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba9f9e11._.js +4 -0
  249. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba9f9e11._.js.map +1 -0
  250. package/web/.next/server/chunks/ssr/[root-of-the-server]__e88da4ee._.js +4 -0
  251. package/web/.next/server/chunks/ssr/[root-of-the-server]__e88da4ee._.js.map +1 -0
  252. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  253. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  254. package/web/.next/server/chunks/ssr/{_9495d50b._.js → _0727935d._.js} +2 -2
  255. package/web/.next/server/chunks/ssr/{_9495d50b._.js.map → _0727935d._.js.map} +1 -1
  256. package/web/.next/server/chunks/ssr/_075fae20._.js +4 -0
  257. package/web/.next/server/chunks/ssr/_075fae20._.js.map +1 -0
  258. package/web/.next/server/chunks/ssr/_0dc06d07._.js.map +1 -1
  259. package/web/.next/server/chunks/ssr/_125c55af._.js +4 -0
  260. package/web/.next/server/chunks/ssr/_125c55af._.js.map +1 -0
  261. package/web/.next/server/chunks/ssr/_16235e5e._.js +1 -1
  262. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  263. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  264. package/web/.next/server/chunks/ssr/{_bcaea66b._.js → _1879404a._.js} +2 -2
  265. package/web/.next/server/chunks/ssr/_1879404a._.js.map +1 -0
  266. package/web/.next/server/chunks/ssr/{_b9ba2473._.js → _1e08a336._.js} +2 -2
  267. package/web/.next/server/chunks/ssr/_1e08a336._.js.map +1 -0
  268. package/web/.next/server/chunks/ssr/{_3f23f48f._.js → _2075adc9._.js} +2 -2
  269. package/web/.next/server/chunks/ssr/{_3f23f48f._.js.map → _2075adc9._.js.map} +1 -1
  270. package/web/.next/server/chunks/ssr/_22e00a14._.js +4 -0
  271. package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -0
  272. package/web/.next/server/chunks/ssr/_2711cbf9._.js +3 -0
  273. package/web/.next/server/chunks/ssr/_2711cbf9._.js.map +1 -0
  274. package/web/.next/server/chunks/ssr/_4a4709c5._.js +4 -0
  275. package/web/.next/server/chunks/ssr/_4a4709c5._.js.map +1 -0
  276. package/web/.next/server/chunks/ssr/_5119a3df._.js.map +1 -1
  277. package/web/.next/server/chunks/ssr/_560f2971._.js +3 -0
  278. package/web/.next/server/chunks/ssr/_560f2971._.js.map +1 -0
  279. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  280. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  281. package/web/.next/server/chunks/ssr/_628621c7._.js +4 -0
  282. package/web/.next/server/chunks/ssr/_628621c7._.js.map +1 -0
  283. package/web/.next/server/chunks/ssr/{_18a3b7f5._.js → _662ba487._.js} +2 -2
  284. package/web/.next/server/chunks/ssr/{_18a3b7f5._.js.map → _662ba487._.js.map} +1 -1
  285. package/web/.next/server/chunks/ssr/_68996e5b._.js +3 -0
  286. package/web/.next/server/chunks/ssr/_68996e5b._.js.map +1 -0
  287. package/web/.next/server/chunks/ssr/_9412b27f._.js +4 -0
  288. package/web/.next/server/chunks/ssr/_9412b27f._.js.map +1 -0
  289. package/web/.next/server/chunks/ssr/_a5a5901d._.js +4 -0
  290. package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -0
  291. package/web/.next/server/chunks/ssr/{_ac4a3873._.js → _ae8cf39a._.js} +2 -2
  292. package/web/.next/server/chunks/ssr/{_ac4a3873._.js.map → _ae8cf39a._.js.map} +1 -1
  293. package/web/.next/server/chunks/ssr/_c3f595c6._.js +4 -0
  294. package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -0
  295. package/web/.next/server/chunks/ssr/{_1c309165._.js → _ce97386b._.js} +2 -2
  296. package/web/.next/server/chunks/ssr/_ce97386b._.js.map +1 -0
  297. package/web/.next/server/chunks/ssr/_f1ba9be6._.js +6 -0
  298. package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -0
  299. package/web/.next/server/chunks/ssr/_f33cd07e._.js +6 -0
  300. package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -0
  301. package/web/.next/server/chunks/ssr/_f535d854._.js +3 -0
  302. package/web/.next/server/chunks/ssr/_f535d854._.js.map +1 -0
  303. package/web/.next/server/chunks/ssr/_f79e241b._.js +3 -0
  304. package/web/.next/server/chunks/ssr/{_3bcda5d7._.js.map → _f79e241b._.js.map} +1 -1
  305. package/web/.next/server/chunks/ssr/_f8b45233._.js +4 -0
  306. package/web/.next/server/chunks/ssr/_f8b45233._.js.map +1 -0
  307. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  308. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  309. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  310. package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js +10 -0
  311. package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js.map +1 -0
  312. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  313. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  314. package/web/.next/server/chunks/ssr/src_presentation_web_components_common_page-header_index_ts_bdf4db0b._.js +3 -0
  315. package/web/.next/server/chunks/ssr/src_presentation_web_components_common_page-header_index_ts_bdf4db0b._.js.map +1 -0
  316. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  317. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  318. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_select_tsx_45d6b8ae._.js +3 -0
  319. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_select_tsx_45d6b8ae._.js.map +1 -0
  320. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
  321. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
  322. package/web/.next/server/middleware-build-manifest.js +3 -3
  323. package/web/.next/server/pages/500.html +2 -2
  324. package/web/.next/server/server-reference-manifest.js +1 -1
  325. package/web/.next/server/server-reference-manifest.json +678 -495
  326. package/web/.next/static/chunks/0656555df5df306a.js +1 -0
  327. package/web/.next/static/chunks/{c7b37a688ea97611.js → 0ac97a997ceaf38b.js} +1 -1
  328. package/web/.next/static/chunks/184c69943589cf9a.js +3 -0
  329. package/web/.next/static/chunks/{b5155ee03ad70945.js → 1ff800831ec16462.js} +1 -1
  330. package/web/.next/static/chunks/20f7cc98a013b11c.js +1 -0
  331. package/web/.next/static/chunks/28ae5046faef6cec.js +1 -0
  332. package/web/.next/static/chunks/3e393d6a78b2ade4.js +1 -0
  333. package/web/.next/static/chunks/{328e534d335ef687.js → 4c0efcd118653c29.js} +1 -1
  334. package/web/.next/static/chunks/4cec255f2754e5ec.js +1 -0
  335. package/web/.next/static/chunks/{e523ab79dcc7f132.js → 4e4c1fb7f2723e99.js} +1 -1
  336. package/web/.next/static/chunks/52355f60ea8362fa.js +8 -0
  337. package/web/.next/static/chunks/5354a0c5267134b1.js +7 -0
  338. package/web/.next/static/chunks/5d4a8552d5b6a4a8.js +1 -0
  339. package/web/.next/static/chunks/73662aaafd582d7d.css +1 -0
  340. package/web/.next/static/chunks/{496df1d4a9c9d83c.js → 78cc28007417fbd3.js} +2 -2
  341. package/web/.next/static/chunks/7be58b72c60a5ca7.js +1 -0
  342. package/web/.next/static/chunks/{6d60df4b3071af3b.js → 7c09e93314520e07.js} +1 -1
  343. package/web/.next/static/chunks/{990b5a6eb6b8dedb.js → 8ba11b17f44007f3.js} +1 -1
  344. package/web/.next/static/chunks/a1c50de45f07f769.js +1 -0
  345. package/web/.next/static/chunks/bbd04e5805d9f654.js +5 -0
  346. package/web/.next/static/chunks/c3a67566f78b5bc3.js +1 -0
  347. package/web/.next/static/chunks/e779296e738a812b.css +1 -0
  348. package/web/.next/static/chunks/f998b42b5cddafd6.js +1 -0
  349. package/web/.next/static/chunks/{turbopack-432ef324fc27240c.js → turbopack-62782e656a49f322.js} +1 -1
  350. package/web/package.json +2 -0
  351. package/web/.next/server/chunks/ssr/[root-of-the-server]__209c9597._.js +0 -4
  352. package/web/.next/server/chunks/ssr/[root-of-the-server]__209c9597._.js.map +0 -1
  353. package/web/.next/server/chunks/ssr/[root-of-the-server]__248ee887._.js.map +0 -1
  354. package/web/.next/server/chunks/ssr/[root-of-the-server]__27301e38._.js +0 -4
  355. package/web/.next/server/chunks/ssr/[root-of-the-server]__27301e38._.js.map +0 -1
  356. package/web/.next/server/chunks/ssr/[root-of-the-server]__56b70465._.js +0 -4
  357. package/web/.next/server/chunks/ssr/[root-of-the-server]__56b70465._.js.map +0 -1
  358. package/web/.next/server/chunks/ssr/[root-of-the-server]__6fecf886._.js +0 -4
  359. package/web/.next/server/chunks/ssr/[root-of-the-server]__6fecf886._.js.map +0 -1
  360. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b0aac03._.js +0 -4
  361. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b0aac03._.js.map +0 -1
  362. package/web/.next/server/chunks/ssr/[root-of-the-server]__8d27866c._.js +0 -4
  363. package/web/.next/server/chunks/ssr/[root-of-the-server]__8d27866c._.js.map +0 -1
  364. package/web/.next/server/chunks/ssr/[root-of-the-server]__9f3504c7._.js +0 -4
  365. package/web/.next/server/chunks/ssr/[root-of-the-server]__9f3504c7._.js.map +0 -1
  366. package/web/.next/server/chunks/ssr/[root-of-the-server]__b062b383._.js.map +0 -1
  367. package/web/.next/server/chunks/ssr/[root-of-the-server]__bd6ed91a._.js +0 -4
  368. package/web/.next/server/chunks/ssr/[root-of-the-server]__bd6ed91a._.js.map +0 -1
  369. package/web/.next/server/chunks/ssr/[root-of-the-server]__c30f1f82._.js +0 -4
  370. package/web/.next/server/chunks/ssr/[root-of-the-server]__c30f1f82._.js.map +0 -1
  371. package/web/.next/server/chunks/ssr/[root-of-the-server]__ee0eaaf9._.js +0 -3
  372. package/web/.next/server/chunks/ssr/[root-of-the-server]__ee0eaaf9._.js.map +0 -1
  373. package/web/.next/server/chunks/ssr/_1c309165._.js.map +0 -1
  374. package/web/.next/server/chunks/ssr/_3a0b989f._.js +0 -6
  375. package/web/.next/server/chunks/ssr/_3a0b989f._.js.map +0 -1
  376. package/web/.next/server/chunks/ssr/_3bcda5d7._.js +0 -3
  377. package/web/.next/server/chunks/ssr/_3c638d2f._.js +0 -3
  378. package/web/.next/server/chunks/ssr/_3c638d2f._.js.map +0 -1
  379. package/web/.next/server/chunks/ssr/_5f69c13f._.js +0 -4
  380. package/web/.next/server/chunks/ssr/_5f69c13f._.js.map +0 -1
  381. package/web/.next/server/chunks/ssr/_7c5b97c6._.js +0 -4
  382. package/web/.next/server/chunks/ssr/_7c5b97c6._.js.map +0 -1
  383. package/web/.next/server/chunks/ssr/_82c57f10._.js +0 -4
  384. package/web/.next/server/chunks/ssr/_82c57f10._.js.map +0 -1
  385. package/web/.next/server/chunks/ssr/_a0e3f7e4._.js +0 -4
  386. package/web/.next/server/chunks/ssr/_a0e3f7e4._.js.map +0 -1
  387. package/web/.next/server/chunks/ssr/_b5fc318a._.js +0 -3
  388. package/web/.next/server/chunks/ssr/_b5fc318a._.js.map +0 -1
  389. package/web/.next/server/chunks/ssr/_b9ba2473._.js.map +0 -1
  390. package/web/.next/server/chunks/ssr/_bcaea66b._.js.map +0 -1
  391. package/web/.next/server/chunks/ssr/_ca0aa7f0._.js +0 -4
  392. package/web/.next/server/chunks/ssr/_ca0aa7f0._.js.map +0 -1
  393. package/web/.next/server/chunks/ssr/_cb5a021e._.js +0 -4
  394. package/web/.next/server/chunks/ssr/_cb5a021e._.js.map +0 -1
  395. package/web/.next/server/chunks/ssr/_d86175ae._.js +0 -4
  396. package/web/.next/server/chunks/ssr/_d86175ae._.js.map +0 -1
  397. package/web/.next/server/chunks/ssr/_d8bedf13._.js +0 -4
  398. package/web/.next/server/chunks/ssr/_d8bedf13._.js.map +0 -1
  399. package/web/.next/server/chunks/ssr/_d90b0a06._.js +0 -3
  400. package/web/.next/server/chunks/ssr/_d90b0a06._.js.map +0 -1
  401. package/web/.next/server/chunks/ssr/_fa7efce3._.js +0 -6
  402. package/web/.next/server/chunks/ssr/_fa7efce3._.js.map +0 -1
  403. package/web/.next/static/chunks/076eaf8a817b5284.js +0 -7
  404. package/web/.next/static/chunks/3deefc76ea55047c.js +0 -1
  405. package/web/.next/static/chunks/3ee176daee98f78c.js +0 -1
  406. package/web/.next/static/chunks/40b6bcf1a2de4a0f.js +0 -1
  407. package/web/.next/static/chunks/419f55272dedf3b3.js +0 -1
  408. package/web/.next/static/chunks/4864ff06a738d58b.js +0 -1
  409. package/web/.next/static/chunks/63b4954715fc3423.js +0 -1
  410. package/web/.next/static/chunks/672e3da3ad26005b.js +0 -1
  411. package/web/.next/static/chunks/86c476f04ff32e7b.css +0 -1
  412. package/web/.next/static/chunks/9555d8a511c05bd5.js +0 -1
  413. package/web/.next/static/chunks/c304db8f1d27505a.js +0 -3
  414. package/web/.next/static/chunks/c7e793951b20a67f.js +0 -1
  415. package/web/.next/static/chunks/d2cbeefbc8967b16.js +0 -1
  416. package/web/.next/static/chunks/d6e702c209c413ce.js +0 -5
  417. /package/web/.next/static/{kYE1v6B90r_hNugkL9Zh- → NLhXnNSDAAYeerbvjIdJX}/_buildManifest.js +0 -0
  418. /package/web/.next/static/{kYE1v6B90r_hNugkL9Zh- → NLhXnNSDAAYeerbvjIdJX}/_clientMiddlewareManifest.json +0 -0
  419. /package/web/.next/static/{kYE1v6B90r_hNugkL9Zh- → NLhXnNSDAAYeerbvjIdJX}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/build/webpack/loaders/next-flight-loader/server-reference.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/build/webpack/loaders/next-flight-loader/action-validate.ts","../../../../../../../src/presentation/web/app/actions/get-all-agent-models.ts","../../../../../../../src/presentation/web/lib/model-metadata.ts","../../../../../../../src/presentation/web/app/actions/update-agent-and-model.ts","../../../../../../../packages/core/src/infrastructure/services/folder-dialog.service.ts","../../../../../../../src/presentation/web/app/actions/pick-folder.ts","../../../../../../../packages/core/src/application/ports/output/services/github-repository-service.interface.ts","../../../../../../../src/presentation/web/app/actions/list-github-repositories.ts","../../../../../../../src/presentation/web/app/actions/import-github-repository.ts","../../../../../../../src/presentation/web/app/actions/deploy-feature.ts","../../../../../../../packages/core/src/infrastructure/services/deployment/deployment-logger.ts","../../../../../../../src/presentation/web/lib/is-same-shep-instance.ts","../../../../../../../src/presentation/web/app/actions/deploy-repository.ts","../../../../../../../src/presentation/web/app/actions/stop-deployment.ts","../../../../../../../src/presentation/web/app/actions/get-deployment-status.ts","../../../../../../../src/presentation/web/app/actions/get-deployment-logs.ts","../../../../../../../src/presentation/web/app/actions/get-workflow-defaults.ts","../../../../../../../src/presentation/web/app/actions/get-viewer-permission.ts","../../../../../../../src/presentation/web/app/actions/create-feature.ts","../../../../../../../src/presentation/web/app/actions/compose-user-input.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/create/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["/* eslint-disable import/no-extraneous-dependencies */\nexport { registerServerReference } from 'react-server-dom-webpack/server'\n","// This function ensures that all the exported values are valid server actions,\n// during the runtime. By definition all actions are required to be async\n// functions, but here we can only check that they are functions.\nexport function ensureServerEntryExports(actions: any[]) {\n for (let i = 0; i < actions.length; i++) {\n const action = actions[i]\n if (typeof action !== 'function') {\n throw new Error(\n `A \"use server\" file can only export async functions, found ${typeof action}.\\nRead more: https://nextjs.org/docs/messages/invalid-use-server-value`\n )\n }\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport { getModelMeta } from '@/lib/model-metadata';\nimport type { IAgentExecutorFactory } from '@shepai/core/application/ports/output/agents/agent-executor-factory.interface';\n\nexport interface ModelInfo {\n id: string;\n displayName: string;\n description: string;\n}\n\nexport interface AgentModelGroup {\n agentType: string;\n label: string;\n models: ModelInfo[];\n}\n\nconst AGENT_LABELS: Record<string, string> = {\n 'claude-code': 'Claude Code',\n 'codex-cli': 'Codex CLI',\n cursor: 'Cursor CLI',\n 'gemini-cli': 'Gemini CLI',\n dev: 'Demo',\n};\n\n/** Sort weight — higher = further down. Demo always last. */\nconst AGENT_ORDER: Record<string, number> = {\n 'claude-code': 0,\n 'codex-cli': 1,\n cursor: 2,\n 'gemini-cli': 3,\n dev: 99,\n};\n\nexport async function getAllAgentModels(): Promise<AgentModelGroup[]> {\n try {\n const factory = resolve<IAgentExecutorFactory>('IAgentExecutorFactory');\n const agents = factory.getSupportedAgents();\n return agents\n .map((agentType) => ({\n agentType: agentType as string,\n label: AGENT_LABELS[agentType as string] ?? (agentType as string),\n models: factory.getSupportedModels(agentType).map((id) => ({\n id,\n ...getModelMeta(id),\n })),\n }))\n .map((g) => {\n // Dev agent gets fun demo models\n if (g.agentType === 'dev' && g.models.length === 0) {\n return {\n ...g,\n models: [\n { id: 'gpt-8', ...getModelMeta('gpt-8') },\n { id: 'opus-7', ...getModelMeta('opus-7') },\n ],\n };\n }\n return g;\n })\n .filter((g) => g.models.length > 0)\n .sort((a, b) => (AGENT_ORDER[a.agentType] ?? 50) - (AGENT_ORDER[b.agentType] ?? 50));\n } catch {\n return [];\n }\n}\n","export interface ModelMeta {\n displayName: string;\n description: string;\n}\n\n/**\n * Presentation-layer metadata for known LLM model identifiers.\n * Maps raw model IDs to human-friendly display names and short descriptions.\n */\nconst MODEL_METADATA: Record<string, ModelMeta> = {\n // Claude models\n 'claude-opus-4-6': { displayName: 'Opus 4.6', description: 'Most capable, complex tasks' },\n 'claude-sonnet-4-6': { displayName: 'Sonnet 4.6', description: 'Fast & balanced' },\n 'claude-haiku-4-5': { displayName: 'Haiku 4.5', description: 'Lightweight & quick' },\n\n // Gemini models\n 'gemini-3.1-pro': { displayName: 'Gemini 3.1 Pro', description: 'Advanced reasoning' },\n 'gemini-3-flash': { displayName: 'Gemini 3 Flash', description: 'Ultra-fast responses' },\n 'gemini-2.5-pro': { displayName: 'Gemini 2.5 Pro', description: 'Reliable workhorse' },\n 'gemini-2.5-flash': { displayName: 'Gemini 2.5 Flash', description: 'Speed-optimized' },\n\n // OpenAI models\n 'gpt-5.4-high': { displayName: 'GPT-5.4', description: 'Latest reasoning model' },\n 'gpt-5.2': { displayName: 'GPT-5.2', description: 'Flagship model' },\n 'gpt-5.3-codex': { displayName: 'GPT-5.3 Codex', description: 'Code specialist' },\n\n // Other\n 'composer-1.5': { displayName: 'Composer 1.5', description: 'Multi-file editing' },\n 'grok-code': { displayName: 'Grok Code', description: 'xAI code model' },\n\n // Demo / fun models\n 'gpt-8': { displayName: 'GPT-8', description: 'Writes code before you think it' },\n 'opus-7': { displayName: 'Opus 7', description: 'Achieved consciousness, ships on time' },\n};\n\nconst FALLBACK: ModelMeta = { displayName: '', description: '' };\n\nexport function getModelMeta(modelId: string): ModelMeta {\n const meta = MODEL_METADATA[modelId];\n if (meta) return meta;\n // Fallback: prettify the raw ID\n return {\n ...FALLBACK,\n displayName: modelId\n .replace(/^claude-/, '')\n .replace(/^gemini-/, 'Gemini ')\n .replace(/^gpt-/, 'GPT-')\n .replace(/-/g, ' ')\n .replace(/\\b\\w/g, (c) => c.toUpperCase()),\n };\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport {\n resetSettings,\n initializeSettings,\n} from '@shepai/core/infrastructure/services/settings.service';\nimport type { CompleteWebOnboardingUseCase } from '@shepai/core/application/use-cases/settings/complete-web-onboarding.use-case';\nimport type { AgentType } from '@shepai/core/domain/generated/output';\n\nexport async function updateAgentAndModel(\n agentType: string,\n model: string | null\n): Promise<{ ok: boolean; error?: string }> {\n if (!agentType.trim()) {\n return { ok: false, error: 'agent type is required' };\n }\n\n try {\n const useCase = resolve<CompleteWebOnboardingUseCase>('CompleteWebOnboardingUseCase');\n const updatedSettings = await useCase.execute({\n agentType: agentType.trim() as AgentType,\n model,\n });\n\n resetSettings();\n initializeSettings(updatedSettings);\n\n return { ok: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to update agent and model';\n return { ok: false, error: message };\n }\n}\n","import { execSync } from 'node:child_process';\n\nexport interface FolderDialogDeps {\n platform: NodeJS.Platform;\n exec: (cmd: string, opts?: { encoding: BufferEncoding; timeout?: number }) => string;\n}\n\nconst defaultDeps: FolderDialogDeps = {\n platform: process.platform,\n exec: (cmd, opts) => execSync(cmd, opts) as unknown as string,\n};\n\n/**\n * Platform-specific commands that open a native OS folder picker dialog.\n * Each returns the chosen absolute folder path on stdout, or exits non-zero / returns empty on cancel.\n */\nconst PLATFORM_COMMANDS: Record<string, string> = {\n darwin: `osascript -e 'POSIX path of (choose folder with prompt \"Select a repository folder\")'`,\n linux: `zenity --file-selection --directory --title=\"Select a repository folder\" 2>/dev/null`,\n win32: `powershell -NoProfile -Command \"Add-Type -AssemblyName System.Windows.Forms; $f = New-Object System.Windows.Forms.FolderBrowserDialog; $f.Description = 'Select a repository folder'; if ($f.ShowDialog() -eq 'OK') { $f.SelectedPath } else { exit 1 }\"`,\n};\n\nexport class FolderDialogService {\n private deps: FolderDialogDeps;\n\n constructor(deps: Partial<FolderDialogDeps> = {}) {\n this.deps = { ...defaultDeps, ...deps };\n }\n\n /** Returns the OS-specific command string, or null if the platform is unsupported. */\n getCommand(): string | null {\n return PLATFORM_COMMANDS[this.deps.platform] ?? null;\n }\n\n /**\n * Opens a native folder picker dialog and returns the selected absolute path.\n * Returns `null` if the user cancels the dialog.\n * Throws if the platform is unsupported or the command fails unexpectedly.\n */\n pickFolder(): string | null {\n const command = this.getCommand();\n if (!command) {\n throw new Error(`Unsupported platform: ${this.deps.platform}`);\n }\n\n try {\n const result = this.deps.exec(command, { encoding: 'utf-8', timeout: 60_000 });\n const trimmed = result.trim();\n return trimmed.length > 0 ? trimmed : null;\n } catch (error: unknown) {\n // User cancelled the dialog — exit code 1 from osascript/zenity/powershell\n if (isExecError(error) && error.status === 1) {\n return null;\n }\n throw error;\n }\n }\n}\n\nfunction isExecError(error: unknown): error is { status: number } {\n return typeof error === 'object' && error !== null && 'status' in error;\n}\n","'use server';\n\nimport { FolderDialogService } from '@shepai/core/infrastructure/services/folder-dialog.service';\n\nexport async function pickFolder(): Promise<{ path: string | null; error?: string }> {\n const service = new FolderDialogService();\n\n try {\n const path = service.pickFolder();\n return { path };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open folder dialog';\n return { path: null, error: message };\n }\n}\n","/**\n * GitHub Repository Service Interface\n *\n * Output port for GitHub repository operations via the gh CLI.\n * Implementations manage authentication checks, repository cloning,\n * user repository listing, and GitHub URL parsing.\n */\n\n// ---------------------------------------------------------------------------\n// Error classes\n// ---------------------------------------------------------------------------\n\n/**\n * Thrown when the GitHub CLI is not authenticated.\n */\nexport class GitHubAuthError extends Error {\n constructor(message: string, cause?: Error) {\n super(message);\n this.name = 'GitHubAuthError';\n Object.setPrototypeOf(this, new.target.prototype);\n if (cause) this.cause = cause;\n }\n}\n\n/**\n * Thrown when a `gh repo clone` operation fails.\n */\nexport class GitHubCloneError extends Error {\n constructor(message: string, cause?: Error) {\n super(message);\n this.name = 'GitHubCloneError';\n Object.setPrototypeOf(this, new.target.prototype);\n if (cause) this.cause = cause;\n }\n}\n\n/**\n * Thrown when a GitHub URL cannot be parsed into owner/repo.\n */\nexport class GitHubUrlParseError extends Error {\n constructor(message: string, cause?: Error) {\n super(message);\n this.name = 'GitHubUrlParseError';\n Object.setPrototypeOf(this, new.target.prototype);\n if (cause) this.cause = cause;\n }\n}\n\n/**\n * Thrown when listing the user's GitHub repositories fails.\n */\nexport class GitHubRepoListError extends Error {\n constructor(message: string, cause?: Error) {\n super(message);\n this.name = 'GitHubRepoListError';\n Object.setPrototypeOf(this, new.target.prototype);\n if (cause) this.cause = cause;\n }\n}\n\n/**\n * Thrown when checking the viewer's permission on a repository fails.\n */\nexport class GitHubPermissionError extends Error {\n constructor(message: string, cause?: Error) {\n super(message);\n this.name = 'GitHubPermissionError';\n Object.setPrototypeOf(this, new.target.prototype);\n if (cause) this.cause = cause;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/**\n * A GitHub repository as returned by `gh repo list --json`.\n */\nexport interface GitHubRepo {\n /** Repository name (e.g. \"my-project\") */\n name: string;\n /** Full owner/repo identifier (e.g. \"octocat/my-project\") */\n nameWithOwner: string;\n /** Repository description (may be empty string) */\n description: string;\n /** Whether the repository is private */\n isPrivate: boolean;\n /** ISO 8601 timestamp of the most recent push */\n pushedAt: string;\n}\n\n/**\n * Options for listing user repositories.\n */\nexport interface ListUserRepositoriesOptions {\n /** Maximum number of repos to return (default: 30) */\n limit?: number;\n /** Filter repos by name substring */\n search?: string;\n}\n\n/**\n * Options for cloning a repository.\n */\nexport interface CloneOptions {\n /** Callback invoked with stderr chunks during clone for progress display */\n onProgress?: (data: string) => void;\n}\n\n/**\n * Result of parsing a GitHub URL.\n */\nexport interface ParsedGitHubUrl {\n /** Repository owner (e.g. \"octocat\") */\n owner: string;\n /** Repository name (e.g. \"my-project\") */\n repo: string;\n /** Combined owner/repo (e.g. \"octocat/my-project\") */\n nameWithOwner: string;\n}\n\n// ---------------------------------------------------------------------------\n// Service interface\n// ---------------------------------------------------------------------------\n\n/**\n * Output port for GitHub repository operations.\n *\n * Implementations use the `gh` CLI for all GitHub interactions.\n */\nexport interface IGitHubRepositoryService {\n /**\n * Verify that the GitHub CLI is authenticated.\n *\n * @throws {GitHubAuthError} if `gh auth status` indicates the user is not logged in\n */\n checkAuth(): Promise<void>;\n\n /**\n * Clone a GitHub repository to a local destination directory.\n *\n * @param nameWithOwner - Full owner/repo identifier (e.g. \"octocat/my-project\")\n * @param destination - Absolute path to clone into\n * @param options - Optional clone configuration (e.g. progress callback)\n * @throws {GitHubCloneError} if the clone subprocess fails\n */\n cloneRepository(\n nameWithOwner: string,\n destination: string,\n options?: CloneOptions\n ): Promise<void>;\n\n /**\n * List the authenticated user's GitHub repositories.\n *\n * @param options - Optional filtering and pagination\n * @returns Array of GitHub repositories sorted by most recently pushed\n * @throws {GitHubRepoListError} if the list operation fails\n */\n listUserRepositories(options?: ListUserRepositoriesOptions): Promise<GitHubRepo[]>;\n\n /**\n * Parse a GitHub URL or shorthand into its owner/repo components.\n *\n * Supported formats:\n * - `https://github.com/owner/repo`\n * - `https://github.com/owner/repo.git`\n * - `git@github.com:owner/repo.git`\n * - `owner/repo` (shorthand)\n *\n * @param url - The GitHub URL or shorthand to parse\n * @returns Parsed owner, repo, and nameWithOwner\n * @throws {GitHubUrlParseError} if the URL does not match any supported format\n */\n parseGitHubUrl(url: string): ParsedGitHubUrl;\n\n /**\n * Get the authenticated user's permission level on a GitHub repository.\n *\n * Uses `gh repo view --json viewerPermission` with the given repo path\n * as the working directory.\n *\n * @param repoPath - Absolute path to a local clone of the repository\n * @returns The viewer's permission level: \"ADMIN\", \"MAINTAIN\", \"WRITE\", \"TRIAGE\", or \"READ\"\n * @throws {GitHubPermissionError} if the permission check fails (e.g. gh not installed, not authenticated)\n */\n getViewerPermission(repoPath: string): Promise<string>;\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { ListGitHubRepositoriesUseCase } from '@shepai/core/application/use-cases/repositories/list-github-repositories.use-case';\nimport type { GitHubRepo } from '@shepai/core/application/ports/output/services/github-repository-service.interface';\nimport { GitHubAuthError } from '@shepai/core/application/ports/output/services/github-repository-service.interface';\n\ninterface ListGitHubRepositoriesInput {\n search?: string;\n limit?: number;\n}\n\nexport async function listGitHubRepositories(\n input?: ListGitHubRepositoriesInput\n): Promise<{ repos?: GitHubRepo[]; error?: string }> {\n try {\n const useCase = resolve<ListGitHubRepositoriesUseCase>('ListGitHubRepositoriesUseCase');\n const repos = await useCase.execute(input);\n return { repos };\n } catch (error: unknown) {\n if (error instanceof GitHubAuthError) {\n return { error: 'GitHub CLI is not authenticated. Run `gh auth login` to sign in.' };\n }\n const message = error instanceof Error ? error.message : 'Failed to list repositories';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { ImportGitHubRepositoryUseCase } from '@shepai/core/application/use-cases/repositories/import-github-repository.use-case';\nimport type { Repository } from '@shepai/core/domain/generated/output';\nimport {\n GitHubAuthError,\n GitHubUrlParseError,\n GitHubCloneError,\n} from '@shepai/core/application/ports/output/services/github-repository-service.interface';\n\ninterface ImportGitHubRepositoryInput {\n url: string;\n dest?: string;\n}\n\nexport async function importGitHubRepository(\n input: ImportGitHubRepositoryInput\n): Promise<{ repository?: Repository; error?: string }> {\n const { url, dest } = input;\n\n if (!url?.trim()) {\n return { error: 'GitHub URL is required' };\n }\n\n try {\n const useCase = resolve<ImportGitHubRepositoryUseCase>('ImportGitHubRepositoryUseCase');\n const repository = await useCase.execute({ url, dest });\n return { repository };\n } catch (error: unknown) {\n if (error instanceof GitHubAuthError) {\n return { error: 'GitHub CLI is not authenticated. Run `gh auth login` to sign in.' };\n }\n if (error instanceof GitHubUrlParseError) {\n return { error: `Invalid GitHub URL: ${error.message}` };\n }\n if (error instanceof GitHubCloneError) {\n return { error: `Clone failed: ${error.message}` };\n }\n const message = error instanceof Error ? error.message : 'Failed to import repository';\n return { error: message };\n }\n}\n","'use server';\n\nimport { existsSync } from 'node:fs';\nimport { resolve } from '@/lib/server-container';\nimport { createDeploymentLogger } from '@shepai/core/infrastructure/services/deployment/deployment-logger';\nimport { computeWorktreePath } from '@shepai/core/infrastructure/services/ide-launchers/compute-worktree-path';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\nimport type { IDeploymentService } from '@shepai/core/application/ports/output/services/deployment-service.interface';\nimport { DeploymentState } from '@shepai/core/domain/generated/output';\nimport { isSameShepInstance } from '@/lib/is-same-shep-instance';\n\nconst log = createDeploymentLogger('[deployFeature]');\n\nexport async function deployFeature(\n featureId: string\n): Promise<{ success: boolean; error?: string; state?: DeploymentState }> {\n log.info(`called — featureId=\"${featureId}\"`);\n\n if (!featureId?.trim()) {\n log.warn('rejected — featureId is empty');\n return { success: false, error: 'featureId is required' };\n }\n\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n\n if (!feature) {\n log.warn(`feature not found in repository: \"${featureId}\"`);\n return { success: false, error: `Feature not found: ${featureId}` };\n }\n\n log.info(\n `feature found — repositoryPath=\"${feature.repositoryPath}\", branch=\"${feature.branch}\"`\n );\n\n const worktreePath = computeWorktreePath(feature.repositoryPath, feature.branch);\n log.info(`computed worktreePath=\"${worktreePath}\"`);\n\n if (!existsSync(worktreePath)) {\n log.warn(`worktree path does not exist on disk: \"${worktreePath}\"`);\n return { success: false, error: `Worktree path does not exist: ${worktreePath}` };\n }\n\n if (isSameShepInstance(feature.repositoryPath)) {\n log.warn('rejected — feature belongs to the running shep instance');\n return {\n success: false,\n error: 'Cannot start a dev server for features of the repository Shep is running from',\n };\n }\n\n log.info('worktree path exists, calling deploymentService.start()');\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n deploymentService.start(featureId, worktreePath, 'feature');\n\n log.info('start() returned successfully — state=Booting');\n return { success: true, state: DeploymentState.Booting };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to deploy feature';\n log.error(`error: ${message}`, error);\n return { success: false, error: message };\n }\n}\n","/* eslint-disable no-console */\n\n/**\n * Debug-gated logger for deployment services.\n *\n * - `info` and `debug` only emit when `process.env.DEBUG` is set.\n * - `warn` and `error` always emit (they indicate real problems).\n */\n\nconst noop = () => undefined;\n\nexport function createDeploymentLogger(prefix: string) {\n const isDebug = !!process.env.DEBUG;\n\n return {\n info: isDebug ? (...args: unknown[]) => console.info(prefix, ...args) : noop,\n debug: isDebug ? (...args: unknown[]) => console.debug(prefix, ...args) : noop,\n warn: (...args: unknown[]) => console.warn(prefix, ...args),\n error: (...args: unknown[]) => console.error(prefix, ...args),\n };\n}\n","import { realpathSync } from 'node:fs';\nimport { resolve } from 'node:path';\n\n/**\n * Check if a target path is the same directory (or a worktree of) the\n * currently running shep instance. Starting a dev server there would spawn\n * another shep instance that conflicts with the shared ~/.shep/data DB.\n */\nexport function isSameShepInstance(targetPath: string): boolean {\n const instancePath = process.env.NEXT_PUBLIC_SHEP_INSTANCE_PATH ?? process.cwd();\n\n try {\n const normalizedTarget = realpathSync(resolve(targetPath)).replace(/\\\\/g, '/');\n const normalizedInstance = realpathSync(resolve(instancePath)).replace(/\\\\/g, '/');\n return normalizedTarget === normalizedInstance;\n } catch {\n return false;\n }\n}\n","'use server';\n\nimport { existsSync } from 'node:fs';\nimport { isAbsolute } from 'node:path';\nimport { resolve } from '@/lib/server-container';\nimport { createDeploymentLogger } from '@shepai/core/infrastructure/services/deployment/deployment-logger';\nimport type { IDeploymentService } from '@shepai/core/application/ports/output/services/deployment-service.interface';\nimport { DeploymentState } from '@shepai/core/domain/generated/output';\nimport { isSameShepInstance } from '@/lib/is-same-shep-instance';\n\nconst log = createDeploymentLogger('[deployRepository]');\n\nexport async function deployRepository(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; state?: DeploymentState }> {\n log.info(`called — repositoryPath=\"${repositoryPath}\"`);\n\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n log.warn('rejected — not an absolute path');\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n log.warn(`directory does not exist: \"${repositoryPath}\"`);\n return { success: false, error: `Directory does not exist: ${repositoryPath}` };\n }\n\n if (isSameShepInstance(repositoryPath)) {\n log.warn('rejected — target is the running shep instance');\n return {\n success: false,\n error: 'Cannot start a dev server for the repository Shep is running from',\n };\n }\n\n log.info('directory exists, calling deploymentService.start()');\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n deploymentService.start(repositoryPath, repositoryPath, 'repository');\n\n log.info('start() returned successfully — state=Booting');\n return { success: true, state: DeploymentState.Booting };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to deploy repository';\n log.error(`error: ${message}`, error);\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IDeploymentService } from '@shepai/core/application/ports/output/services/deployment-service.interface';\n\nexport async function stopDeployment(\n targetId: string\n): Promise<{ success: boolean; error?: string }> {\n if (!targetId?.trim()) {\n return { success: false, error: 'targetId is required' };\n }\n\n try {\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n await deploymentService.stop(targetId);\n\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to stop deployment';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type {\n IDeploymentService,\n DeploymentStatus,\n} from '@shepai/core/application/ports/output/services/deployment-service.interface';\n\nexport async function getDeploymentStatus(targetId: string): Promise<DeploymentStatus | null> {\n if (!targetId?.trim()) {\n return null;\n }\n\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n return deploymentService.getStatus(targetId);\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type {\n IDeploymentService,\n LogEntry,\n} from '@shepai/core/application/ports/output/services/deployment-service.interface';\n\nexport async function getDeploymentLogs(targetId: string): Promise<LogEntry[] | null> {\n if (!targetId?.trim()) {\n return null;\n }\n\n const deploymentService = resolve<IDeploymentService>('IDeploymentService');\n return deploymentService.getLogs(targetId);\n}\n","'use server';\n\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\n\nexport interface WorkflowDefaults {\n approvalGates: {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge: boolean;\n };\n push: boolean;\n openPr: boolean;\n ciWatchEnabled: boolean;\n enableEvidence: boolean;\n commitEvidence: boolean;\n fast: boolean;\n}\n\nexport async function getWorkflowDefaults(): Promise<WorkflowDefaults> {\n const settings = getSettings();\n const { workflow } = settings;\n\n return {\n approvalGates: {\n allowPrd: workflow.approvalGateDefaults.allowPrd,\n allowPlan: workflow.approvalGateDefaults.allowPlan,\n allowMerge: workflow.approvalGateDefaults.allowMerge,\n },\n push: workflow.approvalGateDefaults.pushOnImplementationComplete,\n openPr: workflow.openPrOnImplementationComplete,\n ciWatchEnabled: workflow.ciWatchEnabled,\n enableEvidence: workflow.enableEvidence,\n commitEvidence: workflow.commitEvidence,\n fast: workflow.defaultFastMode,\n };\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IGitHubRepositoryService } from '@shepai/core/application/ports/output/services/github-repository-service.interface';\n\n/** Permissions that grant direct push access to a repository. */\nconst PUSH_PERMISSIONS = new Set(['ADMIN', 'MAINTAIN', 'WRITE']);\n\nexport async function getViewerPermission(repoPath: string): Promise<{ canPushDirectly: boolean }> {\n try {\n const service = resolve<IGitHubRepositoryService>('IGitHubRepositoryService');\n const permission = await service.getViewerPermission(repoPath);\n return { canPushDirectly: PUSH_PERMISSIONS.has(permission) };\n } catch {\n return { canPushDirectly: false };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { CreateFeatureUseCase } from '@shepai/core/application/use-cases/features/create/create-feature.use-case';\nimport type { Feature } from '@shepai/core/domain/generated/output';\nimport { composeUserInput } from './compose-user-input';\n\ninterface Attachment {\n path: string;\n name: string;\n notes?: string;\n}\n\ninterface ApprovalGates {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge: boolean;\n}\n\ninterface CreateFeatureInput {\n description: string;\n repositoryPath: string;\n attachments?: Attachment[];\n sessionId?: string;\n approvalGates?: {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge?: boolean;\n };\n push?: boolean;\n openPr?: boolean;\n parentId?: string;\n /** When true, skip SDLC phases and implement directly from the prompt. */\n fast?: boolean;\n /** When true, create the feature in pending state (no agent spawned). */\n pending?: boolean;\n /** Fork repo and create PR to upstream at merge time. */\n forkAndPr?: boolean;\n /** Commit specs/evidences into the repo (default: true, auto-false when forkAndPr). */\n commitSpecs?: boolean;\n /** Enable CI watch/fix loop after push. */\n ciWatchEnabled?: boolean;\n /** Enable evidence collection after implementation. */\n enableEvidence?: boolean;\n /** Commit evidence to PR. */\n commitEvidence?: boolean;\n /** Optional agent type override for this feature run */\n agentType?: string;\n /** Optional model identifier for this feature run */\n model?: string;\n /** Sync main from remote before creating the feature branch (default: true). */\n rebaseBeforeBranch?: boolean;\n}\n\nexport async function createFeature(\n input: CreateFeatureInput\n): Promise<{ feature?: Feature; error?: string }> {\n const {\n description,\n repositoryPath,\n attachments,\n sessionId,\n approvalGates,\n push,\n openPr,\n parentId,\n fast,\n pending,\n forkAndPr,\n commitSpecs,\n ciWatchEnabled,\n enableEvidence,\n commitEvidence,\n agentType,\n model,\n rebaseBeforeBranch,\n } = input;\n\n if (!description?.trim()) {\n return { error: 'description is required' };\n }\n\n if (!repositoryPath?.trim()) {\n return { error: 'repositoryPath is required' };\n }\n\n const userInput = composeUserInput(description, attachments);\n const gates: ApprovalGates = {\n allowPrd: approvalGates?.allowPrd ?? false,\n allowPlan: approvalGates?.allowPlan ?? false,\n allowMerge: approvalGates?.allowMerge ?? false,\n };\n\n try {\n const createFeatureUseCase = resolve<CreateFeatureUseCase>('CreateFeatureUseCase');\n\n // Phase 1 (fast): create DB record with real UUID — returns immediately\n const { feature, shouldSpawn } = await createFeatureUseCase.createRecord({\n userInput,\n repositoryPath,\n approvalGates: gates,\n push: push ?? false,\n openPr: openPr ?? false,\n ...(parentId ? { parentId } : {}),\n description,\n ...(fast ? { fast } : {}),\n ...(pending ? { pending } : {}),\n ...(forkAndPr != null ? { forkAndPr } : {}),\n ...(commitSpecs != null ? { commitSpecs } : {}),\n ...(ciWatchEnabled != null ? { ciWatchEnabled } : {}),\n ...(enableEvidence != null ? { enableEvidence } : {}),\n ...(commitEvidence != null ? { commitEvidence } : {}),\n ...(agentType ? { agentType } : {}),\n ...(model ? { model } : {}),\n ...(rebaseBeforeBranch != null ? { rebaseBeforeBranch } : {}),\n });\n\n // Phase 2 (background): metadata generation, worktree, spec, agent spawn\n // Fire-and-forget — the UI gets the real feature ID immediately\n createFeatureUseCase\n .initializeAndSpawn(\n feature,\n {\n userInput,\n repositoryPath,\n approvalGates: gates,\n push: push ?? false,\n openPr: openPr ?? false,\n ...(parentId ? { parentId } : {}),\n ...(fast ? { fast } : {}),\n ...(pending ? { pending } : {}),\n ...(forkAndPr != null ? { forkAndPr } : {}),\n ...(commitSpecs != null ? { commitSpecs } : {}),\n ...(ciWatchEnabled != null ? { ciWatchEnabled } : {}),\n ...(enableEvidence != null ? { enableEvidence } : {}),\n ...(commitEvidence != null ? { commitEvidence } : {}),\n ...(agentType ? { agentType } : {}),\n ...(model ? { model } : {}),\n ...(sessionId ? { sessionId } : {}),\n ...(rebaseBeforeBranch != null ? { rebaseBeforeBranch } : {}),\n },\n shouldSpawn\n )\n .catch((err: unknown) => {\n // eslint-disable-next-line no-console\n console.error('[createFeature] initializeAndSpawn failed:', err);\n });\n\n return { feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to create feature';\n return { error: message };\n }\n}\n","interface Attachment {\n path: string;\n name: string;\n notes?: string;\n}\n\nexport function composeUserInput(\n description: string,\n attachments: Attachment[] | undefined\n): string {\n if (!attachments || attachments.length === 0) {\n return description;\n }\n\n const refs = attachments\n .map((a) => (a.notes?.trim() ? `@${a.path} [Note: ${a.notes.trim()}]` : `@${a.path}`))\n .join(' ');\n return `${description}\\n\\n${refs}`;\n}\n","export {getAllAgentModels as '00de9e5961a2b0b6f3cabb441cd2dc4d3bb2b159f6'} from 'ACTIONS_MODULE0'\nexport {updateAgentAndModel as '60e2d1fb3a7307240a73b78126b6edd2aa2f7fdf77'} from 'ACTIONS_MODULE1'\nexport {pickFolder as '009bf40fc3526ab4ccd72640dcf832deba8a5382a0'} from 'ACTIONS_MODULE2'\nexport {listGitHubRepositories as '40133c0a040cdbc01bcabb543a3f07cb8adacac812'} from 'ACTIONS_MODULE3'\nexport {importGitHubRepository as '40dd1d95dcf17692ce1b7478a131c3e6bf601a0630'} from 'ACTIONS_MODULE4'\nexport {deployFeature as '402b26eeeffc14fec3542f7d7f6d77ab8253ffc95c'} from 'ACTIONS_MODULE5'\nexport {deployRepository as '408b38c3637b9c818c5110400a4ba506b75519273a'} from 'ACTIONS_MODULE6'\nexport {stopDeployment as '404d1c921536cc070dce581b2feabfc6699d142ed7'} from 'ACTIONS_MODULE7'\nexport {getDeploymentStatus as '40ce733dce2b23aef6ed1be4c62e7e8e6c8469913e'} from 'ACTIONS_MODULE8'\nexport {openIde as '4042afe16d653b3b0a666613dd9aa3e115959942b8'} from 'ACTIONS_MODULE9'\nexport {openShell as '40ab8c38d7d58b14a14a05c9d80c1785b5c71c799d'} from 'ACTIONS_MODULE10'\nexport {openFolder as '40e27534dc00eaf5518eafe3e10c567153370e2bb4'} from 'ACTIONS_MODULE11'\nexport {syncRepository as '40db351779757e15461ffc3fe5721e9403330d4373'} from 'ACTIONS_MODULE12'\nexport {getDeploymentLogs as '40acd047b434b1d27bfa0d40a603766297110ea88d'} from 'ACTIONS_MODULE13'\nexport {isAgentSetupComplete as '0020f1a016254d9e1ea7860a88f5a2d91276e039eb'} from 'ACTIONS_MODULE14'\nexport {checkAgentAuth as '00441217a320ae6863f4c1e213fbadcef84bd5fe8a'} from 'ACTIONS_MODULE15'\nexport {checkToolStatus as '0093c102564b3103e5982d08af0419f4129e2a5458'} from 'ACTIONS_MODULE16'\nexport {archiveFeature as '40b26268381dcdb7fbfe7778b43746b06a5b9d4216'} from 'ACTIONS_MODULE17'\nexport {deleteFeature as '78886200f89f6827c08196d03ac663902a2fb9525e'} from 'ACTIONS_MODULE18'\nexport {resumeFeature as '401e3d437a45ffac39ecdf75083ff750ee00672c3c'} from 'ACTIONS_MODULE19'\nexport {startFeature as '40bca7a582dd83dfad1b9efc69392da25d36873210'} from 'ACTIONS_MODULE20'\nexport {stopFeature as '40fd5e9d56b5994fb60713e6d4d47cdf147e5ccae8'} from 'ACTIONS_MODULE21'\nexport {unarchiveFeature as '40578f02a225383fc626f46721fa0a401e4164d504'} from 'ACTIONS_MODULE22'\nexport {addRepository as '40da3709387837a38f34f567bc7738bf9b551ac8f2'} from 'ACTIONS_MODULE23'\nexport {deleteRepository as '4087ef6acf81d1b8146ee4d973d5132ecb2341c810'} from 'ACTIONS_MODULE24'\nexport {getFeatureMetadata as '409838d6da548e072cf28a6bc2334e5873ffd26f02'} from 'ACTIONS_MODULE25'\nexport {getWorkflowDefaults as '0036f3ec7463d9f56a1cedc17af8aade47bf0b6f81'} from 'ACTIONS_MODULE26'\nexport {getViewerPermission as '40261c31925dc65fc91dd4766d1ab7463bc8faab10'} from 'ACTIONS_MODULE27'\nexport {createFeature as '404192c677ecc2f521cd9379a4b834fbd89adb21a5'} from 'ACTIONS_MODULE28'\nexport {getViewerPermission as '40261c31925dc65fc91dd4766d1ab7463bc8faab10'} from 'ACTIONS_MODULE27'\n"],"names":["registerServerReference","ensureServerEntryExports","actions","i","length","action","Error"],"mappings":"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CA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA","ignoreList":[0,1]}
@@ -1,7 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,24270,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},34119,94819,e=>{"use strict";var t=e.i(80986);e.s(["CircleCheck",()=>t.default],34119);let r=(0,e.i(3645).default)("ban",[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Ban",()=>r],94819)},57779,80554,e=>{"use strict";var t=e.i(20314);function r({status:e,className:r=""}){return"idle"===e?null:(0,t.jsx)("span",{className:`absolute -top-0.5 -right-0.5 block rounded-full ${"processing"===e?"h-2.5 w-2.5 animate-pulse bg-blue-500":"h-2 w-2 bg-green-500"} ${r}`})}e.s(["ChatDotIndicator",()=>r],57779);var a=e.i(79054),n=e.i(62885);let i=(0,a.createContext)({getStatus:()=>"idle"});function o({children:e}){let r=function(){let{data:e}=(0,n.useQuery)({queryKey:["turn-statuses"],queryFn:async()=>{let e=await fetch("/api/interactive/chat/turn-statuses");return e.ok?e.json():{}},refetchInterval:5e3});return e??{}}(),o=(0,a.useMemo)(()=>({getStatus:e=>r[e]??"idle"}),[r]);return(0,t.jsx)(i.Provider,{value:o,children:e})}function l(e){return(0,a.useContext)(i).getStatus(e)}e.s(["TurnStatusesProvider",()=>o,"useTurnStatus",()=>l],80554)},79687,e=>{"use strict";var t=e.i(14748);e.s(["AlertCircle",()=>t.default])},39443,e=>{"use strict";var t=e.i(20314),r=e.i(79054);let a=(0,e.i(18354).createLogger)("[SSE]");function n(e,t,r,a){if("u"<typeof EventSource)return()=>{};let n=null,i=!1,o=1e3,l=null,s=null;return!function u(){i||(n=new EventSource(e?`/api/agent-events?runId=${encodeURIComponent(e)}`:"/api/agent-events"),a("connecting"),n.onopen=()=>{a("connected"),s=setTimeout(()=>{s=null,o=1e3},5e3)},n.onerror=()=>{n?.close(),n=null,a("disconnected"),null!==s&&(clearTimeout(s),s=null);let e=o;o=Math.min(2*e,3e4),l=setTimeout(()=>{l=null,u()},e)},n.addEventListener("notification",e=>{let a=JSON.parse(e.data);t(e=>{let t=[...e,a];return t.length>500?t.slice(-250):t}),r(a)}))}(),()=>{i=!0,null!==l&&(clearTimeout(l),l=null),null!==s&&(clearTimeout(s),s=null),n&&(n.close(),n=null)}}let i=(0,r.createContext)(null);function o({children:e,runId:o}){let{events:l,lastEvent:s,connectionStatus:u}=function(e){let[t,i]=(0,r.useState)([]),[o,l]=(0,r.useState)(null),[s,u]=(0,r.useState)("disconnected"),d=e?.runId,c=(0,r.useRef)(null),f=(0,r.useCallback)(e=>{let t=e.data;if(t&&"object"==typeof t)if("notification"===t.type){let e=t.data;a.debug("event received:",e.eventType,e),i(t=>{let r=[...t,e];return r.length>500?r.slice(-250):r}),l(e)}else"status"===t.type&&u(t.status)},[]);return(0,r.useEffect)(()=>{let e="u">typeof location&&new URLSearchParams(location.search).has("sse");if(!navigator.serviceWorker||e)return n(d,i,l,u);let t=!1,r={current:void 0};function a(e){t||(c.current=e,e.postMessage({type:"subscribe",runId:d}),u("connecting"))}function o(){if(t)return;let e=navigator.serviceWorker.controller;e&&(c.current=e,e.postMessage({type:"subscribe",runId:d}),u("connecting"))}return navigator.serviceWorker.addEventListener("message",f),navigator.serviceWorker.addEventListener("controllerchange",o),navigator.serviceWorker.register("/agent-events-sw.js",{scope:"/"}).then(e=>{if(t)return;let o=e.active??e.installing??e.waiting;if(!o){r.current=n(d,i,l,u);return}if("activated"===o.state)a(o);else{let e=()=>{"activated"===o.state&&(o.removeEventListener("statechange",e),a(o))};o.addEventListener("statechange",e)}}).catch(()=>{t||(r.current=n(d,i,l,u))}),()=>{t=!0,navigator.serviceWorker.removeEventListener("message",f),navigator.serviceWorker.removeEventListener("controllerchange",o),c.current?.postMessage({type:"unsubscribe"}),c.current=null,r.current?.()}},[d,f]),{events:t,lastEvent:o,connectionStatus:s}}({runId:o}),d=(0,r.useMemo)(()=>({events:l,lastEvent:s,connectionStatus:u}),[l,s,u]);return(0,t.jsx)(i.Provider,{value:d,children:e})}function l(){let e=(0,r.useContext)(i);if(!e)throw Error("useAgentEventsContext must be used within an <AgentEventsProvider>");return e}e.s(["AgentEventsProvider",()=>o,"useAgentEventsContext",()=>l],39443)},55016,e=>{"use strict";let t=(0,e.i(3645).default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Clock",()=>t],55016)},71326,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(22528),n=e.i(5978),i=e.i(567),o=e.i(91967),l=e.i(86874),s="AlertDialog",[u,d]=(0,a.createContextScope)(s,[i.createDialogScope]),c=(0,i.createDialogScope)(),f=e=>{let{__scopeAlertDialog:r,...a}=e,n=c(r);return(0,t.jsx)(i.Root,{...n,...a,modal:!0})};f.displayName=s;var p=r.forwardRef((e,r)=>{let{__scopeAlertDialog:a,...n}=e,o=c(a);return(0,t.jsx)(i.Trigger,{...o,...n,ref:r})});p.displayName="AlertDialogTrigger";var g=e=>{let{__scopeAlertDialog:r,...a}=e,n=c(r);return(0,t.jsx)(i.Portal,{...n,...a})};g.displayName="AlertDialogPortal";var h=r.forwardRef((e,r)=>{let{__scopeAlertDialog:a,...n}=e,o=c(a);return(0,t.jsx)(i.Overlay,{...o,...n,ref:r})});h.displayName="AlertDialogOverlay";var b="AlertDialogContent",[m,v]=u(b),x=(0,l.createSlottable)("AlertDialogContent"),y=r.forwardRef((e,a)=>{let{__scopeAlertDialog:l,children:s,...u}=e,d=c(l),f=r.useRef(null),p=(0,n.useComposedRefs)(a,f),g=r.useRef(null);return(0,t.jsx)(i.WarningProvider,{contentName:b,titleName:w,docsSlug:"alert-dialog",children:(0,t.jsx)(m,{scope:l,cancelRef:g,children:(0,t.jsxs)(i.Content,{role:"alertdialog",...d,...u,ref:p,onOpenAutoFocus:(0,o.composeEventHandlers)(u.onOpenAutoFocus,e=>{e.preventDefault(),g.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,t.jsx)(x,{children:s}),(0,t.jsx)(N,{contentRef:f})]})})})});y.displayName=b;var w="AlertDialogTitle",j=r.forwardRef((e,r)=>{let{__scopeAlertDialog:a,...n}=e,o=c(a);return(0,t.jsx)(i.Title,{...o,...n,ref:r})});j.displayName=w;var C="AlertDialogDescription",S=r.forwardRef((e,r)=>{let{__scopeAlertDialog:a,...n}=e,o=c(a);return(0,t.jsx)(i.Description,{...o,...n,ref:r})});S.displayName=C;var k=r.forwardRef((e,r)=>{let{__scopeAlertDialog:a,...n}=e,o=c(a);return(0,t.jsx)(i.Close,{...o,...n,ref:r})});k.displayName="AlertDialogAction";var D="AlertDialogCancel",P=r.forwardRef((e,r)=>{let{__scopeAlertDialog:a,...o}=e,{cancelRef:l}=v(D,a),s=c(a),u=(0,n.useComposedRefs)(r,l);return(0,t.jsx)(i.Close,{...s,...o,ref:u})});P.displayName=D;var N=({contentRef:e})=>{let t=`\`${b}\` requires a description for the component to be accessible for screen reader users.
2
-
3
- You can add a description to the \`${b}\` by passing a \`${C}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
4
-
5
- Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${b}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
6
-
7
- For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return r.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null};e.s(["Action",()=>k,"AlertDialog",()=>f,"AlertDialogAction",()=>k,"AlertDialogCancel",()=>P,"AlertDialogContent",()=>y,"AlertDialogDescription",()=>S,"AlertDialogOverlay",()=>h,"AlertDialogPortal",()=>g,"AlertDialogTitle",()=>j,"AlertDialogTrigger",()=>p,"Cancel",()=>P,"Content",()=>y,"Description",()=>S,"Overlay",()=>h,"Portal",()=>g,"Root",()=>f,"Title",()=>j,"Trigger",()=>p,"createAlertDialogScope",()=>d],28883);var A=e.i(28883),A=A,E=e.i(31777),O=e.i(35364);function _({...e}){return(0,t.jsx)(A.Root,{"data-slot":"alert-dialog",...e})}function T({...e}){return(0,t.jsx)(A.Portal,{"data-slot":"alert-dialog-portal",...e})}function R({className:e,onClick:r,...a}){return(0,t.jsx)(A.Overlay,{"data-slot":"alert-dialog-overlay",className:(0,E.cn)("fixed inset-0 z-50 bg-black/50",e),onClick:e=>{e.stopPropagation(),r?.(e)},...a})}function M({className:e,size:r="default",...a}){return(0,t.jsxs)(T,{children:[(0,t.jsx)(R,{}),(0,t.jsx)(A.Content,{"data-slot":"alert-dialog-content","data-size":r,className:(0,E.cn)("bg-background group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg",e),...a})]})}function L({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,E.cn)("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-start sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",e),...r})}function z({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,E.cn)("flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",e),...r})}function F({className:e,...r}){return(0,t.jsx)(A.Title,{"data-slot":"alert-dialog-title",className:(0,E.cn)("text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",e),...r})}function I({className:e,...r}){return(0,t.jsx)(A.Description,{"data-slot":"alert-dialog-description",className:(0,E.cn)("text-muted-foreground text-sm",e),...r})}function $({className:e,variant:r="default",size:a="default",...n}){return(0,t.jsx)(O.Button,{variant:r,size:a,asChild:!0,children:(0,t.jsx)(A.Action,{"data-slot":"alert-dialog-action",className:(0,E.cn)(e),...n})})}function U({className:e,variant:r="outline",size:a="default",...n}){return(0,t.jsx)(O.Button,{variant:r,size:a,asChild:!0,children:(0,t.jsx)(A.Cancel,{"data-slot":"alert-dialog-cancel",className:(0,E.cn)(e),...n})})}e.s(["AlertDialog",()=>_,"AlertDialogAction",()=>$,"AlertDialogCancel",()=>U,"AlertDialogContent",()=>M,"AlertDialogDescription",()=>I,"AlertDialogFooter",()=>z,"AlertDialogHeader",()=>L,"AlertDialogTitle",()=>F],71326)},30153,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(71326);let n=(0,r.createContext)(null);function i({children:e}){let i=(0,r.useRef)(null),o=(0,r.useRef)(null),[l,s]=(0,r.useState)(!1),u=(0,r.useCallback)(e=>{i.current=e},[]),d=(0,r.useCallback)(e=>{if(i.current?.isDirty){o.current=e,s(!0);return}e()},[]),c=(0,r.useCallback)(()=>{s(!1),i.current?.onReset(),i.current=null,o.current?.(),o.current=null},[]),f=(0,r.useCallback)(()=>{s(!1),o.current=null},[]),p=(0,r.useCallback)(()=>i.current?.isDirty??!1,[]);return(0,t.jsxs)(n,{value:{setGuard:u,guardedNavigate:d,getIsDirty:p},children:[e,(0,t.jsx)(a.AlertDialog,{open:l,children:(0,t.jsxs)(a.AlertDialogContent,{children:[(0,t.jsxs)(a.AlertDialogHeader,{children:[(0,t.jsx)(a.AlertDialogTitle,{children:"Discard unsaved changes?"}),(0,t.jsx)(a.AlertDialogDescription,{children:"You have unsaved changes. Are you sure you want to discard them?"})]}),(0,t.jsxs)(a.AlertDialogFooter,{children:[(0,t.jsx)(a.AlertDialogAction,{variant:"destructive",onClick:c,children:"Discard"}),(0,t.jsx)(a.AlertDialogCancel,{onClick:f,children:"Keep editing"})]})]})})]})}function o(){let e=(0,r.useContext)(n);if(!e)throw Error("useDrawerCloseGuard must be used within DrawerCloseGuardProvider");return e}function l({open:e,isDirty:t,onClose:a,onReset:n}){let{setGuard:i,guardedNavigate:l}=o();return(0,r.useEffect)(()=>(e?i({isDirty:t,onReset:n}):i(null),()=>i(null)),[e,t,n,i]),{attemptClose:(0,r.useCallback)(()=>{l(()=>{n(),a()})},[l,a,n])}}e.s(["DrawerCloseGuardProvider",()=>i,"useDrawerCloseGuard",()=>o,"useGuardedDrawerClose",()=>l])},80986,e=>{"use strict";let t=(0,e.i(3645).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["default",()=>t])},54277,30090,e=>{"use strict";let t=(0,e.i(3645).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["default",()=>t],30090),e.s(["CircleX",()=>t],54277)},48109,e=>{"use strict";let t=(0,e.i(3645).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",()=>t],48109)},32494,e=>{"use strict";let t=(0,e.i(3645).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"}]]);e.s(["Globe",()=>t],32494)},27069,e=>{"use strict";function t(e,[t,r]){return Math.min(r,Math.max(t,e))}e.s(["clamp",()=>t])},81975,e=>{"use strict";let t=(0,e.i(3645).default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]);e.s(["Wrench",()=>t],81975)},98127,e=>{"use strict";var t=e.i(20314),r=e.i(31777);function a({className:e,type:a,...n}){return(0,t.jsx)("input",{type:a,"data-slot":"input",className:(0,r.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...n})}e.s(["Input",()=>a])},66459,e=>{"use strict";let t=(0,e.i(3645).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",()=>t],66459)},12103,e=>{"use strict";let t=(0,e.i(3645).default)("puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]);e.s(["Puzzle",()=>t],12103)},83241,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return n}});let a=e.r(9328);function n({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new a.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},90891,(e,t,r)=>{"use strict";function a(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return a}})},31218,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return s}});let a=e.r(20314),n=e.r(26036),i=e.r(58988),o=e.r(90891),l=e.r(22193);function s({moduleIds:e}){if("u">typeof window)return null;let t=i.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let a=t.reactLoadableManifest;for(let t of e){if(!a[t])continue;let e=a[t].files;r.push(...e)}}if(0===r.length)return null;let s=(0,l.getDeploymentIdQueryOrEmptyString)();return(0,a.jsx)(a.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,o.encodeURIPath)(e)}${s}`;return e.endsWith(".css")?(0,a.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,n.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},84929,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return u}});let a=e.r(20314),n=e.r(79054),i=e.r(83241),o=e.r(31218);function l(e){return{default:e&&"default"in e?e.default:e}}let s={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},u=function(e){let t={...s,...e},r=(0,n.lazy)(()=>t.loader().then(l)),u=t.loading;function d(e){let l=u?(0,a.jsx)(u,{isLoading:!0,pastDelay:!0,error:null}):null,s=!t.ssr||!!t.loading,d=s?n.Suspense:n.Fragment,c=t.ssr?(0,a.jsxs)(a.Fragment,{children:["u"<typeof window?(0,a.jsx)(o.PreloadChunks,{moduleIds:t.modules}):null,(0,a.jsx)(r,{...e})]}):(0,a.jsx)(i.BailoutToCSR,{reason:"next/dynamic",children:(0,a.jsx)(r,{...e})});return(0,a.jsx)(d,{...s?{fallback:l}:{},children:c})}return d.displayName="LoadableComponent",d}},47901,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return n}});let a=e.r(81258)._(e.r(84929));function n(e,t){let r={};"function"==typeof e&&(r.loader=e);let n={...r,...t};return(0,a.default)({...n,modules:n.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},13322,61201,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(47901),n=e.i(83428),i=e.i(60112),o=e.i(2287),l=e.i(35364);let s=(0,a.default)(()=>e.A(89305).then(e=>e.FileManager),{loadableGenerated:{modules:[15567]},ssr:!1,loading:()=>(0,t.jsx)(u,{})});function u(){return(0,t.jsx)("div",{className:"flex h-full w-full items-center justify-center",children:(0,t.jsx)(n.Loader2,{className:"text-muted-foreground h-8 w-8 animate-spin"})})}async function d(e){let t=new URLSearchParams;e&&t.set("path",e);let r=await fetch(`/api/directory/list?${t.toString()}`);if(!r.ok)throw Error((await r.json().catch(()=>({error:"Failed to load directory"}))).error??"Failed to load directory");return r.json()}function c({open:e,onOpenChange:a,onSelect:n,initialPath:u}){let[c,f]=(0,r.useState)([]),[p,g]=(0,r.useState)(""),[h,b]=(0,r.useState)(!1),[m,v]=(0,r.useState)(null),x=(0,r.useRef)(!1),y=(0,r.useCallback)(async e=>{b(!0),v(null);try{let t=await d(e);f(t.entries),g(t.currentPath)}catch(t){let e=t instanceof Error?t.message:"Failed to load directory";i.toast.error(e)}finally{b(!1)}},[]);(0,r.useEffect)(()=>{e&&!x.current&&(x.current=!0,y(u)),e||(x.current=!1)},[e,u,y]);let w=(0,r.useCallback)(e=>{let t=e.absolutePath;e.isDirectory&&t&&y(t)},[y]),j=(0,r.useCallback)(e=>{1===e.length&&e[0].isDirectory?v(e[0].absolutePath??null):v(null)},[]);function C(){n(null),a(!1)}return(0,t.jsx)(o.Dialog,{open:e,onOpenChange:e=>{e||C()},children:(0,t.jsxs)(o.DialogContent,{className:"flex h-[95dvh] max-w-[95vw] flex-col",onCloseAutoFocus:e=>e.preventDefault(),children:[(0,t.jsxs)(o.DialogHeader,{children:[(0,t.jsx)(o.DialogTitle,{children:"Select Folder"}),(0,t.jsx)(o.DialogDescription,{className:"truncate font-mono text-xs",children:p||"Loading..."})]}),(0,t.jsx)("div",{className:"shep-file-manager min-h-0 flex-1 overflow-hidden rounded-md border",children:(0,t.jsx)(s,{files:c.map(e=>({name:e.name,isDirectory:!0,path:`/${e.name}`,absolutePath:e.path,updatedAt:e.updatedAt})),isLoading:h,height:"100%",width:"100%",layout:"list",enableFilePreview:!1,permissions:{upload:!1,delete:!1,create:!1,download:!1,copy:!1,move:!1,rename:!1},onFileOpen:w,onSelectionChange:j,onRefresh:()=>y(p)},p)}),(0,t.jsxs)(o.DialogFooter,{children:[(0,t.jsx)(l.Button,{variant:"outline",onClick:C,children:"Cancel"}),(0,t.jsx)(l.Button,{variant:"secondary",onClick:function(){p&&(n(p),a(!1))},disabled:!p,children:"Select Current Folder"}),(0,t.jsx)(l.Button,{onClick:function(){m&&(n(m),a(!1))},disabled:!m,children:"Select Folder"})]})]})})}e.s(["ReactFileManagerDialog",()=>c],61201),e.s([],13322)},78521,e=>{"use strict";var t=e.i(21023);let r=(0,t.createServerReference)("009bf40fc3526ab4ccd72640dcf832deba8a5382a0",t.callServer,void 0,t.findSourceMapURL,"pickFolder");async function a(){let e=await r();if(e.error)throw Error(e.error);return e.path}e.s(["pickFolder",()=>a],78521)},81542,e=>{"use strict";let t=(0,e.i(3645).default)("git-fork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]]);e.s(["GitFork",()=>t],81542)},76314,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={assign:function(){return s},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return l}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});function i(e){let t={};for(let[r,a]of e.entries()){let e=t[r];void 0===e?t[r]=a:Array.isArray(e)?e.push(a):t[r]=[e,a]}return t}function o(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function l(e){let t=new URLSearchParams;for(let[r,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(r,o(e));else t.set(r,o(a));return t}function s(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,a]of r.entries())e.append(t,a)}return e}},95889,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={formatUrl:function(){return l},formatWithValidation:function(){return u},urlObjectKeys:function(){return s}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let i=e.r(44066)._(e.r(76314)),o=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:r}=e,a=e.protocol||"",n=e.pathname||"",l=e.hash||"",s=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:r&&(u=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(u+=":"+e.port)),s&&"object"==typeof s&&(s=String(i.urlQueryToSearchParams(s)));let d=e.search||s&&`?${s}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||o.test(a))&&!1!==u?(u="//"+(u||""),n&&"/"!==n[0]&&(n="/"+n)):u||(u=""),l&&"#"!==l[0]&&(l="#"+l),d&&"?"!==d[0]&&(d="?"+d),n=n.replace(/[?#]/g,encodeURIComponent),d=d.replace("#","%23"),`${a}${u}${n}${d}${l}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return l(e)}},58464,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={DecodeError:function(){return m},MiddlewareNotFoundError:function(){return w},MissingStaticPage:function(){return y},NormalizeError:function(){return v},PageNotFoundError:function(){return x},SP:function(){return h},ST:function(){return b},WEB_VITALS:function(){return i},execOnce:function(){return o},getDisplayName:function(){return c},getLocationOrigin:function(){return u},getURL:function(){return d},isAbsoluteUrl:function(){return s},isResSent:function(){return f},loadGetInitialProps:function(){return g},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return j}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function o(e){let t,r=!1;return(...a)=>(r||(r=!0,t=e(...a)),t)}let l=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>l.test(e);function u(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function d(){let{href:e}=window.location,t=u();return e.substring(t.length)}function c(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function g(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await g(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(r&&f(r))return a;if(!a)throw Object.defineProperty(Error(`"${c(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return a}let h="u">typeof performance,b=h&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class m extends Error{}class v extends Error{}class x extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class y extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class w extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function j(e){return JSON.stringify({message:e.message,stack:e.stack})}},51380,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return i}});let a=e.r(58464),n=e.r(53626);function i(e){if(!(0,a.isAbsoluteUrl)(e))return!0;try{let t=(0,a.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,n.hasBasePath)(r.pathname)}catch(e){return!1}}},38670,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return a}});let a=e=>{}},24035,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var a={default:function(){return m},useLinkStatus:function(){return x}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let i=e.r(44066),o=e.r(20314),l=i._(e.r(79054)),s=e.r(95889),u=e.r(18152),d=e.r(80764),c=e.r(58464),f=e.r(99267);e.r(24270);let p=e.r(59624),g=e.r(51380),h=e.r(95555);function b(e){return"string"==typeof e?e:(0,s.formatUrl)(e)}function m(t){var r;let a,n,i,[s,m]=(0,l.useOptimistic)(p.IDLE_LINK_STATUS),x=(0,l.useRef)(null),{href:y,as:w,children:j,prefetch:C=null,passHref:S,replace:k,shallow:D,scroll:P,onClick:N,onMouseEnter:A,onTouchStart:E,legacyBehavior:O=!1,onNavigate:_,ref:T,unstable_dynamicOnHover:R,...M}=t;a=j,O&&("string"==typeof a||"number"==typeof a)&&(a=(0,o.jsx)("a",{children:a}));let L=l.default.useContext(u.AppRouterContext),z=!1!==C,F=!1!==C?null===(r=C)||"auto"===r?h.FetchStrategy.PPR:h.FetchStrategy.Full:h.FetchStrategy.PPR,{href:I,as:$}=l.default.useMemo(()=>{let e=b(y);return{href:e,as:w?b(w):e}},[y,w]);if(O){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});n=l.default.Children.only(a)}let U=O?n&&"object"==typeof n&&n.ref:T,B=l.default.useCallback(e=>(null!==L&&(x.current=(0,p.mountLinkInstance)(e,I,L,F,z,m)),()=>{x.current&&((0,p.unmountLinkForCurrentNavigation)(x.current),x.current=null),(0,p.unmountPrefetchableInstance)(e)}),[z,I,L,F,m]),W={ref:(0,d.useMergedRef)(B,U),onClick(t){O||"function"!=typeof N||N(t),O&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(t),!L||t.defaultPrevented||function(t,r,a,n,i,o,s){if("u">typeof window){let u,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((u=t.currentTarget.getAttribute("target"))&&"_self"!==u||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,g.isLocalURL)(r)){i&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),s){let e=!1;if(s({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:c}=e.r(81574);l.default.startTransition(()=>{c(a||r,i?"replace":"push",o??!0,n.current)})}}(t,I,$,x,k,P,_)},onMouseEnter(e){O||"function"!=typeof A||A(e),O&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),L&&z&&(0,p.onNavigationIntent)(e.currentTarget,!0===R)},onTouchStart:function(e){O||"function"!=typeof E||E(e),O&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),L&&z&&(0,p.onNavigationIntent)(e.currentTarget,!0===R)}};return(0,c.isAbsoluteUrl)($)?W.href=$:O&&!S&&("a"!==n.type||"href"in n.props)||(W.href=(0,f.addBasePath)($)),i=O?l.default.cloneElement(n,W):(0,o.jsx)("a",{...M,...W,children:a}),(0,o.jsx)(v.Provider,{value:s,children:i})}e.r(38670);let v=(0,l.createContext)(p.IDLE_LINK_STATUS),x=()=>(0,l.useContext)(v);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},84840,e=>{"use strict";var t=e.i(66033);e.s(["Direction",0,t])},5812,71379,e=>{"use strict";let t=(0,e.i(3645).default)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);e.s(["default",()=>t],71379),e.s(["PanelLeftIcon",()=>t],5812)},57638,61238,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(94237);e.i(5812);var n=e.i(84840),i=e.i(5240),o=e.i(31777);e.i(35364),e.i(98127),e.i(25235);var l=e.i(48249),s=e.i(90033);function u({...e}){return(0,t.jsx)(s.Dialog.Root,{"data-slot":"sheet",...e})}function d({...e}){return(0,t.jsx)(s.Dialog.Portal,{"data-slot":"sheet-portal",...e})}function c({className:e,...r}){return(0,t.jsx)(s.Dialog.Overlay,{"data-slot":"sheet-overlay",className:(0,o.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...r})}function f({className:e,children:r,side:a="right",showCloseButton:n=!0,...i}){return(0,t.jsxs)(d,{children:[(0,t.jsx)(c,{}),(0,t.jsxs)(s.Dialog.Content,{"data-slot":"sheet-content",className:(0,o.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500","right"===a&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 end-0 h-full w-3/4 border-s sm:max-w-sm","left"===a&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 start-0 h-full w-3/4 border-e sm:max-w-sm","top"===a&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===a&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",e),...i,children:[r,n?(0,t.jsxs)(s.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute end-4 top-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[(0,t.jsx)(l.XIcon,{className:"size-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})]})}function p({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sheet-header",className:(0,o.cn)("flex flex-col gap-1.5 p-4",e),...r})}function g({className:e,...r}){return(0,t.jsx)(s.Dialog.Title,{"data-slot":"sheet-title",className:(0,o.cn)("text-foreground font-semibold",e),...r})}function h({className:e,...r}){return(0,t.jsx)(s.Dialog.Description,{"data-slot":"sheet-description",className:(0,o.cn)("text-muted-foreground text-sm",e),...r})}function b({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"skeleton",className:(0,o.cn)("bg-accent animate-pulse rounded-md",e),...r})}e.s(["Skeleton",()=>b],61238);var m=e.i(2828);let v="shep-sidebar-open",x=r.createContext(null);function y(){let e=r.useContext(x);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}function w({defaultOpen:e=!0,open:a,onOpenChange:n,className:i,style:l,children:s,...u}){let d=function(){let[e,t]=r.useState(void 0);return r.useEffect(()=>{let e=window.matchMedia("(max-width: 767px)"),r=()=>{t(window.innerWidth<768)};return e.addEventListener("change",r),t(window.innerWidth<768),()=>e.removeEventListener("change",r)},[]),!!e}(),[c,f]=r.useState(!1),[p,g]=r.useState(!1),[h,b]=r.useState(e),y=a??h,w=r.useCallback(e=>{let t="function"==typeof e?e(y):e;n?n(t):b(t);try{localStorage.setItem(v,String(t)),document.cookie=`${v}=${t}; path=/; max-age=31536000; SameSite=Lax`}catch{}},[n,y]),j=r.useCallback(()=>(g(!0),d?f(e=>!e):w(e=>!e)),[d,w,f]);r.useEffect(()=>{try{if(!document.cookie.includes(v)){let e=localStorage.getItem(v);null!=e&&(document.cookie=`${v}=${e}; path=/; max-age=31536000; SameSite=Lax`)}}catch{}},[]),r.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),j())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[j]);let C=y?"expanded":"collapsed",S=r.useMemo(()=>({state:C,open:y,setOpen:w,isMobile:d,openMobile:c,setOpenMobile:f,toggleSidebar:j,animated:p}),[C,y,w,d,c,f,j,p]);return(0,t.jsx)(x.Provider,{value:S,children:(0,t.jsx)(m.TooltipProvider,{delayDuration:0,children:(0,t.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...l},className:(0,o.cn)("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",i),...u,children:s})})})}function j({side:e="left",variant:r="sidebar",collapsible:a="offcanvas",className:n,children:i,...l}){let{isMobile:s,state:d,openMobile:c,setOpenMobile:b,animated:m}=y();return"none"===a?(0,t.jsx)("div",{"data-slot":"sidebar",className:(0,o.cn)("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",n),...l,children:i}):s?(0,t.jsx)(u,{open:c,onOpenChange:b,...l,children:(0,t.jsxs)(f,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:e,children:[(0,t.jsxs)(p,{className:"sr-only",children:[(0,t.jsx)(g,{children:"Sidebar"}),(0,t.jsx)(h,{children:"Displays the mobile sidebar."})]}),(0,t.jsx)("div",{className:"flex h-full w-full flex-col",children:i})]})}):(0,t.jsxs)("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":d,"data-collapsible":"collapsed"===d?a:"","data-variant":r,"data-side":e,"data-slot":"sidebar",children:[(0,t.jsx)("div",{"data-slot":"sidebar-gap",className:(0,o.cn)("relative w-(--sidebar-width) bg-transparent",m&&"transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","floating"===r||"inset"===r?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,t.jsx)("div",{"data-slot":"sidebar-container",className:(0,o.cn)("fixed inset-y-0 start-0 z-10 hidden h-svh w-(--sidebar-width) md:flex",m&&"transition-[inset-inline-start,width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:start-[calc(var(--sidebar-width)*-1)]","floating"===r||"inset"===r?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"border-e group-data-[collapsible=icon]:w-(--sidebar-width-icon)",n),...l,children:(0,t.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",children:i})})]})}function C({className:e,...r}){let{toggleSidebar:a}=y();return(0,t.jsx)("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:a,title:"Toggle Sidebar",className:(0,o.cn)("hover:after:bg-sidebar-border absolute inset-y-0 -end-4 z-20 hidden w-4 transition-all ease-linear after:absolute after:inset-y-0 after:start-1/2 after:w-0.5 sm:flex","cursor-w-resize rtl:cursor-e-resize","in-data-[state=collapsed]:cursor-e-resize rtl:in-data-[state=collapsed]:cursor-w-resize","hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:start-full","in-data-[collapsible=offcanvas]:-end-2",e),...r})}function S({className:e,...r}){return(0,t.jsx)("main",{"data-slot":"sidebar-inset",className:(0,o.cn)("bg-background relative flex w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2",e),...r})}function k({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,o.cn)("flex flex-col gap-2 p-2",e),...r})}function D({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,o.cn)("flex flex-col gap-2 p-2",e),...r})}function P({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,o.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",e),...r})}function N({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,o.cn)("relative flex w-full min-w-0 flex-col p-2",e),...r})}function A({className:e,asChild:r=!1,...a}){let n=r?i.Slot.Root:"div";return(0,t.jsx)(n,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,o.cn)("text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",e),...a})}function E({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,o.cn)("w-full text-sm",e),...r})}function O({className:e,...r}){return(0,t.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,o.cn)("flex w-full min-w-0 flex-col gap-1",e),...r})}function _({className:e,...r}){return(0,t.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,o.cn)("group/menu-item relative",e),...r})}let T=(0,a.cva)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function R({asChild:e=!1,isActive:r=!1,variant:a="default",size:l="default",tooltip:s,className:u,...d}){let c=e?i.Slot.Root:"button",{isMobile:f,state:p}=y(),g=n.Direction.useDirection(),h=(0,t.jsx)(c,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":l,"data-active":r,className:(0,o.cn)(T({variant:a,size:l}),u),...d});return s?("string"==typeof s&&(s={children:s}),(0,t.jsxs)(m.Tooltip,{children:[(0,t.jsx)(m.TooltipTrigger,{asChild:!0,children:h}),(0,t.jsx)(m.TooltipContent,{side:"rtl"===g?"left":"right",align:"center",hidden:"collapsed"!==p||f,...s})]})):h}e.s(["Sidebar",()=>j,"SidebarContent",()=>P,"SidebarFooter",()=>D,"SidebarGroup",()=>N,"SidebarGroupContent",()=>E,"SidebarGroupLabel",()=>A,"SidebarHeader",()=>k,"SidebarInset",()=>S,"SidebarMenu",()=>O,"SidebarMenuButton",()=>R,"SidebarMenuItem",()=>_,"SidebarProvider",()=>w,"SidebarRail",()=>C,"useSidebar",()=>y],57638)},5147,e=>{"use strict";var t=e.i(20314),r=e.i(79054);let a={"action-required":"action-needed",running:"in-progress",done:"done",blocked:"blocked",pending:"pending",error:"error",creating:null,deleting:null,archived:null};function n(e){return a[e]}let i=(0,r.createContext)(null);function o({children:e}){let[a,n]=(0,r.useState)([]),[o,l]=(0,r.useState)(!1),s=(0,r.useMemo)(()=>({features:a,setFeatures:n,hasRepositories:o,setHasRepositories:l}),[a,o]);return(0,t.jsx)(i.Provider,{value:s,children:e})}function l(){let e=(0,r.useContext)(i);if(!e)throw Error("useSidebarFeaturesContext must be used within a <SidebarFeaturesProvider>");return e}e.s(["SidebarFeaturesProvider",()=>o,"mapNodeStateToSidebarStatus",()=>n,"useSidebarFeaturesContext",()=>l])},89305,e=>{e.v(t=>Promise.all(["static/chunks/6d7b999c99d6d175.js"].map(t=>e.l(t))).then(()=>t(15567)))}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,30702,e=>{"use strict";let s=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>s],30702)},38573,e=>{"use strict";let s=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>s],38573)},1650,e=>{"use strict";e.i(11495),e.s([])},19933,e=>{"use strict";let s=(0,e.i(3645).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",()=>s],19933)},956,e=>{"use strict";var s=e.i(20314),l=e.i(79054),t=e.i(31777);let a=l.forwardRef(({className:e,...l},a)=>(0,s.jsx)("div",{ref:a,className:(0,t.cn)("bg-card text-card-foreground rounded-xl border shadow",e),...l}));a.displayName="Card";let r=l.forwardRef(({className:e,...l},a)=>(0,s.jsx)("div",{ref:a,className:(0,t.cn)("flex flex-col space-y-1.5 p-6",e),...l}));r.displayName="CardHeader";let n=l.forwardRef(({className:e,...l},a)=>(0,s.jsx)("div",{ref:a,className:(0,t.cn)("leading-none font-semibold tracking-tight",e),...l}));n.displayName="CardTitle";let i=l.forwardRef(({className:e,...l},a)=>(0,s.jsx)("div",{ref:a,className:(0,t.cn)("text-muted-foreground text-sm",e),...l}));i.displayName="CardDescription";let o=l.forwardRef(({className:e,...l},a)=>(0,s.jsx)("div",{ref:a,className:(0,t.cn)("p-6 pt-0",e),...l}));o.displayName="CardContent",l.forwardRef(({className:e,...l},a)=>(0,s.jsx)("div",{ref:a,className:(0,t.cn)("flex items-center p-6 pt-0",e),...l})).displayName="CardFooter",e.s(["Card",()=>a,"CardContent",()=>o,"CardDescription",()=>i,"CardHeader",()=>r,"CardTitle",()=>n])},54793,7729,e=>{"use strict";var s=e.i(20314),l=e.i(31777);function t({icon:e,title:t,description:a,action:r,className:n,...i}){return(0,s.jsxs)("div",{className:(0,l.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",n),...i,children:[e?(0,s.jsx)("div",{className:"text-muted-foreground",children:e}):null,(0,s.jsx)("h3",{className:"text-lg font-semibold",children:t}),a?(0,s.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:a}):null,r?(0,s.jsx)("div",{className:"mt-2",children:r}):null]})}e.s(["EmptyState",()=>t],7729),e.s([],54793)},38752,e=>{"use strict";var s=e.i(20314);e.i(1650);var l=e.i(11495),t=e.i(45811),a=e.i(81846),r=e.i(25235),n=e.i(19933);function i({skill:e,onClose:i}){return(0,s.jsx)(l.BaseDrawer,{open:null!==e,onClose:i,size:"sm",modal:!0,"data-testid":"skill-detail-drawer",header:e?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.DrawerTitle,{children:e.displayName}),(0,s.jsx)(t.DrawerDescription,{children:e.name})]}):void 0,children:e?(0,s.jsxs)("div",{className:"px-4 pb-4",children:[(0,s.jsx)("p",{className:"text-muted-foreground text-sm",children:e.description}),(0,s.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-1.5",children:[(0,s.jsx)(a.Badge,{variant:"project"===e.source?"secondary":"outline",children:"project"===e.source?"Project":"Global"}),(0,s.jsx)(a.Badge,{variant:"outline",children:e.category}),e.context?(0,s.jsx)(a.Badge,{variant:"outline",children:e.context}):null]}),e.allowedTools?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.Separator,{className:"my-4"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-semibold",children:"Allowed Tools"}),(0,s.jsx)("p",{className:"text-muted-foreground mt-1 text-sm",children:e.allowedTools})]})]}):null,e.resources.length>0?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.Separator,{className:"my-4"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-semibold",children:"Resources"}),(0,s.jsx)("ul",{className:"mt-2 space-y-1.5",children:e.resources.map(e=>(0,s.jsxs)("li",{className:"text-muted-foreground flex items-center gap-2 text-sm",children:[(0,s.jsx)(n.FolderOpen,{className:"size-3.5 shrink-0"}),(0,s.jsxs)("span",{children:[e.name,"/ — ",e.fileCount," ",1===e.fileCount?"file":"files"]})]},e.name))})]})]}):null,e.body?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.Separator,{className:"my-4"}),(0,s.jsx)("pre",{className:"text-muted-foreground text-sm leading-relaxed whitespace-pre-wrap",children:e.body})]}):null]}):null})}e.s(["SkillDetailDrawer",()=>i])},16919,e=>{"use strict";var s=e.i(20314),l=e.i(79054),t=e.i(66459),a=e.i(12103),r=e.i(98127),n=e.i(35364),i=e.i(31777);function o({title:e,description:l,children:t,className:a}){return(0,s.jsxs)("header",{className:(0,i.cn)("flex items-center justify-between gap-4",a),children:[(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:e}),l?(0,s.jsx)("p",{className:"text-muted-foreground",children:l}):null]}),t?(0,s.jsx)("div",{"data-slot":"actions",children:t}):null]})}e.i(54793);var c=e.i(7729),d=e.i(956),x=e.i(81846),u=e.i(19933);function m({skill:e,onSelect:l}){return(0,s.jsxs)(d.Card,{className:"hover:border-primary/50 cursor-pointer transition-colors",role:"button",tabIndex:0,onClick:()=>l(e),onKeyDown:s=>{("Enter"===s.key||" "===s.key)&&(s.preventDefault(),l(e))},"data-testid":`skill-card-${e.name}`,children:[(0,s.jsxs)(d.CardHeader,{className:"pb-3",children:[(0,s.jsx)(d.CardTitle,{className:"text-base",children:e.displayName}),(0,s.jsx)("p",{className:"text-muted-foreground font-mono text-xs",children:e.name})]}),(0,s.jsxs)(d.CardContent,{className:"space-y-3",children:[(0,s.jsx)("p",{className:"text-muted-foreground line-clamp-2 text-sm",children:e.description}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,s.jsx)(x.Badge,{variant:"project"===e.source?"secondary":"outline",children:"project"===e.source?"Project":"Global"}),e.context?(0,s.jsx)(x.Badge,{variant:"outline",children:e.context}):null,e.allowedTools?(0,s.jsx)(x.Badge,{variant:"outline",children:"Tools"}):null,e.resources.length>0?(0,s.jsxs)("span",{className:"text-muted-foreground inline-flex items-center gap-1 text-xs",children:[(0,s.jsx)(u.FolderOpen,{className:"size-3"}),e.resources.length," ",1===e.resources.length?"resource":"resources"]}):null]})]})]})}let p=["Workflow","Code Generation","Analysis","Reference"];function h({skills:e,onSkillSelect:l}){let t=function(e){let s=new Map;for(let l of e){let e=s.get(l.category)??[];e.push(l),s.set(l.category,e)}return s}(e);return(0,s.jsx)("div",{className:"space-y-8",children:p.map(e=>{let a=t.get(e);return a&&0!==a.length?(0,s.jsxs)("section",{children:[(0,s.jsxs)("h2",{className:"mb-4 text-lg font-semibold",children:[e," ",(0,s.jsxs)("span",{className:"text-muted-foreground text-sm font-normal",children:["(",a.length,")"]})]}),(0,s.jsx)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:a.map(e=>(0,s.jsx)(m,{skill:e,onSelect:l},e.name))})]},e):null})})}let f=[{label:"All",value:null},{label:"Workflow",value:"Workflow"},{label:"Code Generation",value:"Code Generation"},{label:"Analysis",value:"Analysis"},{label:"Reference",value:"Reference"}];function j({activeCategory:e,onCategoryChange:l,counts:t}){return(0,s.jsx)("div",{className:"flex flex-wrap gap-2",role:"group","aria-label":"Filter by category",children:f.map(({label:a,value:r})=>(0,s.jsxs)(n.Button,{variant:e===r?"default":"outline",size:"sm",onClick:()=>l(r),children:[a,t&&r?(0,s.jsxs)("span",{className:"ms-1 text-xs opacity-70",children:["(",t[r],")"]}):null]},a))})}var g=e.i(38752);function N({skills:e}){let[i,d]=(0,l.useState)(""),[x,u]=(0,l.useState)(null),[m,p]=(0,l.useState)(null),f=(0,l.useMemo)(()=>(function(e){let s={Workflow:0,"Code Generation":0,Analysis:0,Reference:0};for(let l of e)s[l.category]++;return s})(e),[e]),N=(0,l.useMemo)(()=>{let s=i.toLowerCase();return e.filter(e=>{if(x&&e.category!==x)return!1;if(s){let l=e.name.toLowerCase().includes(s),t=e.description.toLowerCase().includes(s);if(!l&&!t)return!1}return!0})},[e,i,x]);return 0===e.length?(0,s.jsxs)("div",{className:"flex flex-col gap-6 p-6",children:[(0,s.jsx)(o,{title:"Skills",description:"Claude Code skills installed in this project"}),(0,s.jsx)(c.EmptyState,{icon:(0,s.jsx)(a.Puzzle,{className:"size-10"}),title:"No skills found",description:"No Claude Code skills are installed. Add skills to .claude/skills/ to get started."})]}):(0,s.jsxs)("div",{className:"flex flex-col gap-6 p-6",children:[(0,s.jsx)(o,{title:"Skills",description:"Claude Code skills installed in this project"}),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(t.Search,{className:"text-muted-foreground absolute top-1/2 left-3 size-4 -translate-y-1/2"}),(0,s.jsx)(r.Input,{placeholder:"Search skills...",value:i,onChange:e=>d(e.target.value),className:"ps-9"})]}),(0,s.jsx)(j,{activeCategory:x,onCategoryChange:u,counts:f}),N.length>0?(0,s.jsx)(h,{skills:N,onSkillSelect:p}):(0,s.jsx)(c.EmptyState,{icon:(0,s.jsx)(t.Search,{className:"size-10"}),title:"No matching skills",description:"No skills match your current search and filter criteria.",action:(0,s.jsx)(n.Button,{variant:"outline",onClick:()=>{d(""),u(null)},children:"Clear filters"})}),(0,s.jsx)(g.SkillDetailDrawer,{skill:m,onClose:()=>p(null)})]})}e.s(["SkillsPageClient",()=>N],16919)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,76852,e=>{"use strict";var t=e.i(79054),r=e.i(13743),a=e.i(11912),l=e.i(26949),c=e.i(21023);let s=(0,c.createServerReference)("40db351779757e15461ffc3fe5721e9403330d4373",c.callServer,void 0,c.findSourceMapURL,"syncRepository");function u(e){let[c,u]=(0,t.useState)(!1),[i,n]=(0,t.useState)(!1),[o,d]=(0,t.useState)(!1),[p,f]=(0,t.useState)(!1),[h,y]=(0,t.useState)(null),[m,v]=(0,t.useState)(null),[k,S]=(0,t.useState)(null),[x,b]=(0,t.useState)(null),R=(0,t.useRef)(null),M=(0,t.useRef)(null),g=(0,t.useRef)(null),C=(0,t.useRef)(null);(0,t.useEffect)(()=>()=>{R.current&&clearTimeout(R.current),M.current&&clearTimeout(M.current),g.current&&clearTimeout(g.current),C.current&&clearTimeout(C.current)},[]);let T=(0,t.useCallback)(async(t,r,a,l,c)=>{if(e&&!c){l.current&&clearTimeout(l.current),r(!0),a(null);try{let e=await t();if(!e.success){let t=e.error??"An unexpected error occurred";a(t),l.current=setTimeout(()=>a(null),5e3)}}catch(e){a(e instanceof Error?e.message:"An unexpected error occurred"),l.current=setTimeout(()=>a(null),5e3)}finally{r(!1)}}},[e]);return{openInIde:(0,t.useCallback)(()=>T(()=>(0,r.openIde)({repositoryPath:e.repositoryPath}),u,y,R,c),[T,c,e]),openInShell:(0,t.useCallback)(()=>T(()=>(0,a.openShell)({repositoryPath:e.repositoryPath}),n,v,M,i),[T,i,e]),openFolder:(0,t.useCallback)(()=>T(()=>(0,l.openFolder)(e.repositoryPath),d,S,g,o),[T,o,e]),syncMain:(0,t.useCallback)(()=>T(()=>s(e.repositoryId??""),f,b,C,p),[T,p,e]),ideLoading:c,shellLoading:i,folderLoading:o,syncLoading:p,ideError:h,shellError:m,folderError:k,syncError:x}}e.s(["useRepositoryActions",()=>u],76852)},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},1650,e=>{"use strict";e.i(11495),e.s([])},19933,e=>{"use strict";let t=(0,e.i(3645).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",()=>t],19933)},8986,13743,11912,26949,e=>{"use strict";let t=(0,e.i(3645).default)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);e.s(["Code2",()=>t],8986);var r=e.i(21023);let a=(0,r.createServerReference)("4042afe16d653b3b0a666613dd9aa3e115959942b8",r.callServer,void 0,r.findSourceMapURL,"openIde");e.s(["openIde",()=>a],13743);let l=(0,r.createServerReference)("40ab8c38d7d58b14a14a05c9d80c1785b5c71c799d",r.callServer,void 0,r.findSourceMapURL,"openShell");e.s(["openShell",()=>l],11912);let c=(0,r.createServerReference)("40e27534dc00eaf5518eafe3e10c567153370e2bb4",r.callServer,void 0,r.findSourceMapURL,"openFolder");e.s(["openFolder",()=>c],26949)},53360,e=>{"use strict";let t=(0,e.i(3645).default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);e.s(["Zap",()=>t],53360)},97667,e=>{"use strict";var t=e.i(1012);e.s(["CheckIcon",()=>t.default])},23405,e=>{"use strict";var t=e.i(79054);function r(e){let r=t.useRef({value:e,previous:e});return t.useMemo(()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous),[e])}e.s(["usePrevious",()=>r])},3214,e=>{"use strict";let t=(0,e.i(3645).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>t],3214)},10714,e=>{"use strict";let t=(0,e.i(3645).default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);e.s(["default",()=>t])},49228,e=>{"use strict";let t=(0,e.i(3645).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",()=>t],49228)},95812,35e3,e=>{"use strict";let t=(0,e.i(3645).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Circle",()=>t],95812);var r=e.i(80986);e.s(["CheckCircle2",()=>r.default],35e3)},54793,7729,e=>{"use strict";var t=e.i(20314),r=e.i(31777);function a({icon:e,title:a,description:l,action:c,className:s,...u}){return(0,t.jsxs)("div",{className:(0,r.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",s),...u,children:[e?(0,t.jsx)("div",{className:"text-muted-foreground",children:e}):null,(0,t.jsx)("h3",{className:"text-lg font-semibold",children:a}),l?(0,t.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:l}):null,c?(0,t.jsx)("div",{className:"mt-2",children:c}):null]})}e.s(["EmptyState",()=>a],7729),e.s([],54793)},91925,e=>{"use strict";let t=(0,e.i(3645).default)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["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"}]]);e.s(["FolderPlus",()=>t],91925)},53458,e=>{"use strict";var t=e.i(21023);let r=(0,t.createServerReference)("40da3709387837a38f34f567bc7738bf9b551ac8f2",t.callServer,void 0,t.findSourceMapURL,"addRepository");e.s(["addRepository",()=>r])}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,81258,(e,t,r)=>{"use strict";r._=function(e){return e&&e.__esModule?e:{default:e}}},22193,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getDeploymentId:function(){return u},getDeploymentIdQueryOrEmptyString:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(){return!1}function i(){return""}},34558,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RedirectStatusCode",{enumerable:!0,get:function(){return o}});var n,o=((n={})[n.SeeOther=303]="SeeOther",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},54809,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={REDIRECT_ERROR_CODE:function(){return l},RedirectType:function(){return a},isRedirectError:function(){return c}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let i=e.r(34558),l="NEXT_REDIRECT";var a=((n={}).push="push",n.replace="replace",n);function c(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,o=t.slice(2,-2).join(";"),u=Number(t.at(-2));return r===l&&("replace"===n||"push"===n)&&"string"==typeof o&&!isNaN(u)&&u in i.RedirectStatusCode}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},65064,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={bindSnapshot:function(){return c},createAsyncLocalStorage:function(){return a},createSnapshot:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class i{disable(){throw u}getStore(){}run(){throw u}exit(){throw u}enterWith(){throw u}static bind(e){return e}}let l="u">typeof globalThis&&globalThis.AsyncLocalStorage;function a(){return l?new l:new i}function c(e){return l?l.bind(e):i.bind(e)}function d(){return l?l.snapshot():function(e,...t){return e(...t)}}},82157,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_HEADER:function(){return i},FLIGHT_HEADERS:function(){return p},NEXT_ACTION_NOT_FOUND_HEADER:function(){return j},NEXT_ACTION_REVALIDATED_HEADER:function(){return T},NEXT_DID_POSTPONE_HEADER:function(){return R},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return f},NEXT_HMR_REFRESH_HEADER:function(){return d},NEXT_HTML_REQUEST_ID_HEADER:function(){return v},NEXT_IS_PRERENDER_HEADER:function(){return g},NEXT_REQUEST_ID_HEADER:function(){return h},NEXT_REWRITTEN_PATH_HEADER:function(){return b},NEXT_REWRITTEN_QUERY_HEADER:function(){return O},NEXT_ROUTER_PREFETCH_HEADER:function(){return a},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return c},NEXT_ROUTER_STALE_TIME_HEADER:function(){return y},NEXT_ROUTER_STATE_TREE_HEADER:function(){return l},NEXT_RSC_UNION_QUERY:function(){return E},NEXT_URL:function(){return s},RSC_CONTENT_TYPE_HEADER:function(){return _},RSC_HEADER:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="rsc",i="next-action",l="next-router-state-tree",a="next-router-prefetch",c="next-router-segment-prefetch",d="next-hmr-refresh",f="__next_hmr_refresh_hash__",s="next-url",_="text/x-component",p=[u,l,a,d,c],E="_rsc",y="x-nextjs-stale-time",R="x-nextjs-postponed",b="x-nextjs-rewritten-path",O="x-nextjs-rewritten-query",g="x-nextjs-prerender",j="x-nextjs-action-not-found",h="x-nextjs-request-id",v="x-nextjs-html-request-id",T="x-action-revalidated";("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},5161,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DEFAULT_SEGMENT_KEY:function(){return f},NOT_FOUND_SEGMENT_KEY:function(){return s},PAGE_SEGMENT_KEY:function(){return d},addSearchParamsIfPageSegment:function(){return a},computeSelectedLayoutSegment:function(){return c},getSegmentValue:function(){return u},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,o=[]){let i;if(n)i=t[1][r];else{let e=t[1];i=e.children??Object.values(e)[0]}if(!i)return o;let l=u(i[0]);return!l||l.startsWith(d)?o:(o.push(l),e(i,r,!1,o))}},isGroupSegment:function(){return i},isParallelRouteSegment:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return Array.isArray(e)?e[1]:e}function i(e){return"("===e[0]&&e.endsWith(")")}function l(e){return e.startsWith("@")&&"@children"!==e}function a(e,t){if(e.includes(d)){let e=JSON.stringify(t);return"{}"!==e?d+"?"+e:d}return e}function c(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===f?null:r}let d="__PAGE__",f="__DEFAULT__",s="/_not-found"},50389,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnrecognizedActionError:function(){return u},unstable_isUnrecognizedActionError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});class u extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function i(e){return!!(e&&"object"==typeof e&&e instanceof u)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},89637,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(65064).createAsyncLocalStorage)()},54293,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorage",{enumerable:!0,get:function(){return n.actionAsyncStorageInstance}});let n=e.r(89637)},25133,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getRedirectError:function(){return a},getRedirectStatusCodeFromError:function(){return _},getRedirectTypeFromError:function(){return s},getURLFromRedirectError:function(){return f},permanentRedirect:function(){return d},redirect:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(34558),i=e.r(54809),l="u"<typeof window?e.r(54293).actionAsyncStorage:void 0;function a(e,t,r=u.RedirectStatusCode.TemporaryRedirect){let n=Object.defineProperty(Error(i.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n.digest=`${i.REDIRECT_ERROR_CODE};${t};${e};${r};`,n}function c(e,t){throw a(e,t??=l?.getStore()?.isAction?i.RedirectType.push:i.RedirectType.replace,u.RedirectStatusCode.TemporaryRedirect)}function d(e,t=i.RedirectType.replace){throw a(e,t,u.RedirectStatusCode.PermanentRedirect)}function f(e){return(0,i.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function s(e){if(!(0,i.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function _(e){if(!(0,i.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18152,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={AppRouterContext:function(){return i},GlobalLayoutRouterContext:function(){return a},LayoutRouterContext:function(){return l},MissingSlotContext:function(){return d},TemplateContext:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(81258)._(e.r(79054)),i=u.default.createContext(null),l=u.default.createContext(null),a=u.default.createContext(null),c=u.default.createContext(null),d=u.default.createContext(new Set)},9338,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useUntrackedPathname",{enumerable:!0,get:function(){return u}});let n=e.r(79054),o=e.r(14869);function u(){return!function(){if("u"<typeof window){let{workUnitAsyncStorage:t}=e.r(3163),r=t.getStore();if(!r)return!1;switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":let n=r.fallbackRouteParams;return!!n&&n.size>0}}return!1}()?(0,n.useContext)(o.PathnameContext):null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},62949,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={handleHardNavError:function(){return i},useNavFailureHandler:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(79054);let u=e.r(32801);function i(e){return!!(e&&"u">typeof window)&&!!window.next.__pendingUrl&&(0,u.createHrefFromUrl)(new URL(window.location.href))!==(0,u.createHrefFromUrl)(window.next.__pendingUrl)&&(console.error("Error occurred during navigation, falling back to hard navigation",e),window.location.href=window.next.__pendingUrl.toString(),!0)}function l(){}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},86762,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HandleISRError",{enumerable:!0,get:function(){return o}});let n="u"<typeof window?e.r(58988).workAsyncStorage:void 0;function o({error:e}){if(n){let t=n.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}return null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},57351,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ErrorBoundary:function(){return p},ErrorBoundaryHandler:function(){return _}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(81258),i=e.r(20314),l=u._(e.r(79054)),a=e.r(9338),c=e.r(86092);e.r(62949);let d=e.r(86762),f=e.r(41608),s="u">typeof window&&(0,f.isBot)(window.navigator.userAgent);class _ extends l.default.Component{constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,c.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&!s?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(d.HandleISRError,{error:this.state.error}),this.props.errorStyles,this.props.errorScripts,(0,i.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset})]}):this.props.children}}function p({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let o=(0,a.useUntrackedPathname)();return e?(0,i.jsx)(_,{pathname:o,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,i.jsx)(i.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},10706,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={RedirectBoundary:function(){return _},RedirectErrorBoundary:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(44066),i=e.r(20314),l=u._(e.r(79054)),a=e.r(67013),c=e.r(25133),d=e.r(54809);function f({redirect:e,reset:t,redirectType:r}){let n=(0,a.useRouter)();return(0,l.useEffect)(()=>{l.default.startTransition(()=>{r===d.RedirectType.push?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class s extends l.default.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,d.isRedirectError)(e)){let t=(0,c.getURLFromRedirectError)(e),r=(0,c.getRedirectTypeFromError)(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,i.jsx)(f,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function _({children:e}){let t=(0,a.useRouter)();return(0,i.jsx)(s,{router:t,children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},99271,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unresolvedThenable",{enumerable:!0,get:function(){return n}});let n={then:()=>{}};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66658,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={MetadataBoundary:function(){return l},OutletBoundary:function(){return c},RootLayoutBoundary:function(){return d},ViewportBoundary:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(42771),i={[u.METADATA_BOUNDARY_NAME]:function({children:e}){return e},[u.VIEWPORT_BOUNDARY_NAME]:function({children:e}){return e},[u.OUTLET_BOUNDARY_NAME]:function({children:e}){return e},[u.ROOT_LAYOUT_BOUNDARY_NAME]:function({children:e}){return e}},l=i[u.METADATA_BOUNDARY_NAME.slice(0)],a=i[u.VIEWPORT_BOUNDARY_NAME.slice(0)],c=i[u.OUTLET_BOUNDARY_NAME.slice(0)],d=i[u.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]},84210,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HeadManagerContext",{enumerable:!0,get:function(){return n}});let n=e.r(81258)._(e.r(79054)).default.createContext({})},42726,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}});let n=e.r(20314),o=e.r(86762),u={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},i={fontSize:"14px",fontWeight:400,lineHeight:"28px",margin:"0 8px"},l=function({error:e}){let t=e?.digest;return(0,n.jsxs)("html",{id:"__next_error__",children:[(0,n.jsx)("head",{}),(0,n.jsxs)("body",{children:[(0,n.jsx)(o.HandleISRError,{error:e}),(0,n.jsx)("div",{style:u,children:(0,n.jsxs)("div",{children:[(0,n.jsxs)("h2",{style:i,children:["Application error: a ",t?"server":"client","-side exception has occurred while loading ",window.location.hostname," (see the"," ",t?"server logs":"browser console"," for more information)."]}),t?(0,n.jsx)("p",{style:i,children:`Digest: ${t}`}):null]})})]})]})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,41952,e=>{"use strict";var t=e.i(20314),n=e.i(79054),i=e.i(23925),s=e.i(26370),a=e.i(38573),r=e.i(49228),l=e.i(3645);let o=(0,l.default)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]),c=(0,l.default)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]),d=(0,l.default)("flag",[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]),u=(0,l.default)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);var p=e.i(32494),g=e.i(10714),g=g,m=e.i(3214),h=e.i(30702);let f=(0,l.default)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);var v=e.i(58860),x=e.i(48109),w=e.i(60112);e.i(41001);var b=e.i(64780),y=e.i(31777),j=e.i(41957),S=e.i(51911),C=e.i(26036),k=e.i(27069),N=e.i(91967),M=e.i(87342),I=e.i(5978),T=e.i(22528),E=e.i(66033),P=e.i(53532),D=e.i(41687),R=e.i(56720),A=e.i(13123),F=e.i(52740),L=e.i(39979),B=e.i(87620),H=e.i(86874),z=e.i(29297),_=e.i(36589),V=e.i(5192),K=e.i(23405),O=e.i(1693),W=e.i(73772),U=e.i(13044),G=[" ","Enter","ArrowUp","ArrowDown"],q=[" ","Enter"],$="Select",[Y,Z,X]=(0,M.createCollection)($),[J,Q]=(0,T.createContextScope)($,[X,F.createPopperScope]),ee=(0,F.createPopperScope)(),[et,en]=J($),[ei,es]=J($),ea=e=>{let{__scopeSelect:i,children:s,open:a,defaultOpen:r,onOpenChange:l,value:o,defaultValue:c,onValueChange:d,dir:u,name:p,autoComplete:g,disabled:m,required:h,form:f}=e,v=ee(i),[x,w]=n.useState(null),[b,y]=n.useState(null),[j,S]=n.useState(!1),C=(0,E.useDirection)(u),[k,N]=(0,_.useControllableState)({prop:a,defaultProp:r??!1,onChange:l,caller:$}),[M,I]=(0,_.useControllableState)({prop:o,defaultProp:c,onChange:d,caller:$}),T=n.useRef(null),P=!x||f||!!x.closest("form"),[D,R]=n.useState(new Set),L=Array.from(D).map(e=>e.props.value).join(";");return(0,t.jsx)(F.Root,{...v,children:(0,t.jsxs)(et,{required:h,scope:i,trigger:x,onTriggerChange:w,valueNode:b,onValueNodeChange:y,valueNodeHasChildren:j,onValueNodeHasChildrenChange:S,contentId:(0,A.useId)(),value:M,onValueChange:I,open:k,onOpenChange:N,dir:C,triggerPointerDownPosRef:T,disabled:m,children:[(0,t.jsx)(Y.Provider,{scope:i,children:(0,t.jsx)(ei,{scope:e.__scopeSelect,onNativeOptionAdd:n.useCallback(e=>{R(t=>new Set(t).add(e))},[]),onNativeOptionRemove:n.useCallback(e=>{R(t=>{let n=new Set(t);return n.delete(e),n})},[]),children:s})}),P?(0,t.jsxs)(eG,{"aria-hidden":!0,required:h,tabIndex:-1,name:p,autoComplete:g,value:M,onChange:e=>I(e.target.value),disabled:m,form:f,children:[void 0===M?(0,t.jsx)("option",{value:""}):null,Array.from(D)]},L):null]})})};ea.displayName=$;var er="SelectTrigger",el=n.forwardRef((e,i)=>{let{__scopeSelect:s,disabled:a=!1,...r}=e,l=ee(s),o=en(er,s),c=o.disabled||a,d=(0,I.useComposedRefs)(i,o.onTriggerChange),u=Z(s),p=n.useRef("touch"),[g,m,h]=e$(e=>{let t=u().filter(e=>!e.disabled),n=t.find(e=>e.value===o.value),i=eY(t,e,n);void 0!==i&&o.onValueChange(i.value)}),f=e=>{c||(o.onOpenChange(!0),h()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,t.jsx)(F.Anchor,{asChild:!0,...l,children:(0,t.jsx)(B.Primitive.button,{type:"button",role:"combobox","aria-controls":o.contentId,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":"none",dir:o.dir,"data-state":o.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":eq(o.value)?"":void 0,...r,ref:d,onClick:(0,N.composeEventHandlers)(r.onClick,e=>{e.currentTarget.focus(),"mouse"!==p.current&&f(e)}),onPointerDown:(0,N.composeEventHandlers)(r.onPointerDown,e=>{p.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(f(e),e.preventDefault())}),onKeyDown:(0,N.composeEventHandlers)(r.onKeyDown,e=>{let t=""!==g.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||m(e.key),(!t||" "!==e.key)&&G.includes(e.key)&&(f(),e.preventDefault())})})})});el.displayName=er;var eo="SelectValue",ec=n.forwardRef((e,n)=>{let{__scopeSelect:i,className:s,style:a,children:r,placeholder:l="",...o}=e,c=en(eo,i),{onValueNodeHasChildrenChange:d}=c,u=void 0!==r,p=(0,I.useComposedRefs)(n,c.onValueNodeChange);return(0,V.useLayoutEffect)(()=>{d(u)},[d,u]),(0,t.jsx)(B.Primitive.span,{...o,ref:p,style:{pointerEvents:"none"},children:eq(c.value)?(0,t.jsx)(t.Fragment,{children:l}):r})});ec.displayName=eo;var ed=n.forwardRef((e,n)=>{let{__scopeSelect:i,children:s,...a}=e;return(0,t.jsx)(B.Primitive.span,{"aria-hidden":!0,...a,ref:n,children:s||"▼"})});ed.displayName="SelectIcon";var eu=e=>(0,t.jsx)(L.Portal,{asChild:!0,...e});eu.displayName="SelectPortal";var ep="SelectContent",eg=n.forwardRef((e,i)=>{let s=en(ep,e.__scopeSelect),[a,r]=n.useState();return((0,V.useLayoutEffect)(()=>{r(new DocumentFragment)},[]),s.open)?(0,t.jsx)(ev,{...e,ref:i}):a?C.createPortal((0,t.jsx)(em,{scope:e.__scopeSelect,children:(0,t.jsx)(Y.Slot,{scope:e.__scopeSelect,children:(0,t.jsx)("div",{children:e.children})})}),a):null});eg.displayName=ep;var[em,eh]=J(ep),ef=(0,H.createSlot)("SelectContent.RemoveScroll"),ev=n.forwardRef((e,i)=>{let{__scopeSelect:s,position:a="item-aligned",onCloseAutoFocus:r,onEscapeKeyDown:l,onPointerDownOutside:o,side:c,sideOffset:d,align:u,alignOffset:p,arrowPadding:g,collisionBoundary:m,collisionPadding:h,sticky:f,hideWhenDetached:v,avoidCollisions:x,...w}=e,b=en(ep,s),[y,j]=n.useState(null),[S,C]=n.useState(null),k=(0,I.useComposedRefs)(i,e=>j(e)),[M,T]=n.useState(null),[E,A]=n.useState(null),F=Z(s),[L,B]=n.useState(!1),H=n.useRef(!1);n.useEffect(()=>{if(y)return(0,W.hideOthers)(y)},[y]),(0,D.useFocusGuards)();let z=n.useCallback(e=>{let[t,...n]=F().map(e=>e.ref.current),[i]=n.slice(-1),s=document.activeElement;for(let n of e)if(n===s||(n?.scrollIntoView({block:"nearest"}),n===t&&S&&(S.scrollTop=0),n===i&&S&&(S.scrollTop=S.scrollHeight),n?.focus(),document.activeElement!==s))return},[F,S]),_=n.useCallback(()=>z([M,y]),[z,M,y]);n.useEffect(()=>{L&&_()},[L,_]);let{onOpenChange:V,triggerPointerDownPosRef:K}=b;n.useEffect(()=>{if(y){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(K.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(K.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():y.contains(n.target)||V(!1),document.removeEventListener("pointermove",t),K.current=null};return null!==K.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",n,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",n,{capture:!0})}}},[y,V,K]),n.useEffect(()=>{let e=()=>V(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[V]);let[O,G]=e$(e=>{let t=F().filter(e=>!e.disabled),n=t.find(e=>e.ref.current===document.activeElement),i=eY(t,e,n);i&&setTimeout(()=>i.ref.current.focus())}),q=n.useCallback((e,t,n)=>{let i=!H.current&&!n;(void 0!==b.value&&b.value===t||i)&&(T(e),i&&(H.current=!0))},[b.value]),$=n.useCallback(()=>y?.focus(),[y]),Y=n.useCallback((e,t,n)=>{let i=!H.current&&!n;(void 0!==b.value&&b.value===t||i)&&A(e)},[b.value]),X="popper"===a?ew:ex,J=X===ew?{side:c,sideOffset:d,align:u,alignOffset:p,arrowPadding:g,collisionBoundary:m,collisionPadding:h,sticky:f,hideWhenDetached:v,avoidCollisions:x}:{};return(0,t.jsx)(em,{scope:s,content:y,viewport:S,onViewportChange:C,itemRefCallback:q,selectedItem:M,onItemLeave:$,itemTextRefCallback:Y,focusSelectedItem:_,selectedItemText:E,position:a,isPositioned:L,searchRef:O,children:(0,t.jsx)(U.RemoveScroll,{as:ef,allowPinchZoom:!0,children:(0,t.jsx)(R.FocusScope,{asChild:!0,trapped:b.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,N.composeEventHandlers)(r,e=>{b.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,t.jsx)(P.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:l,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>b.onOpenChange(!1),children:(0,t.jsx)(X,{role:"listbox",id:b.contentId,"data-state":b.open?"open":"closed",dir:b.dir,onContextMenu:e=>e.preventDefault(),...w,...J,onPlaced:()=>B(!0),ref:k,style:{display:"flex",flexDirection:"column",outline:"none",...w.style},onKeyDown:(0,N.composeEventHandlers)(w.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||G(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=F().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let n=e.target,i=t.indexOf(n);t=t.slice(i+1)}setTimeout(()=>z(t)),e.preventDefault()}})})})})})})});ev.displayName="SelectContentImpl";var ex=n.forwardRef((e,i)=>{let{__scopeSelect:s,onPlaced:a,...r}=e,l=en(ep,s),o=eh(ep,s),[c,d]=n.useState(null),[u,p]=n.useState(null),g=(0,I.useComposedRefs)(i,e=>p(e)),m=Z(s),h=n.useRef(!1),f=n.useRef(!0),{viewport:v,selectedItem:x,selectedItemText:w,focusSelectedItem:b}=o,y=n.useCallback(()=>{if(l.trigger&&l.valueNode&&c&&u&&v&&x&&w){let e=l.trigger.getBoundingClientRect(),t=u.getBoundingClientRect(),n=l.valueNode.getBoundingClientRect(),i=w.getBoundingClientRect();if("rtl"!==l.dir){let s=i.left-t.left,a=n.left-s,r=e.left-a,l=e.width+r,o=Math.max(l,t.width),d=window.innerWidth-10,u=(0,k.clamp)(a,[10,Math.max(10,d-o)]);c.style.minWidth=l+"px",c.style.left=u+"px"}else{let s=t.right-i.right,a=window.innerWidth-n.right-s,r=window.innerWidth-e.right-a,l=e.width+r,o=Math.max(l,t.width),d=window.innerWidth-10,u=(0,k.clamp)(a,[10,Math.max(10,d-o)]);c.style.minWidth=l+"px",c.style.right=u+"px"}let s=m(),r=window.innerHeight-20,o=v.scrollHeight,d=window.getComputedStyle(u),p=parseInt(d.borderTopWidth,10),g=parseInt(d.paddingTop,10),f=parseInt(d.borderBottomWidth,10),b=p+g+o+parseInt(d.paddingBottom,10)+f,y=Math.min(5*x.offsetHeight,b),j=window.getComputedStyle(v),S=parseInt(j.paddingTop,10),C=parseInt(j.paddingBottom,10),N=e.top+e.height/2-10,M=x.offsetHeight/2,I=p+g+(x.offsetTop+M);if(I<=N){let e=s.length>0&&x===s[s.length-1].ref.current;c.style.bottom="0px";let t=Math.max(r-N,M+(e?C:0)+(u.clientHeight-v.offsetTop-v.offsetHeight)+f);c.style.height=I+t+"px"}else{let e=s.length>0&&x===s[0].ref.current;c.style.top="0px";let t=Math.max(N,p+v.offsetTop+(e?S:0)+M);c.style.height=t+(b-I)+"px",v.scrollTop=I-N+v.offsetTop}c.style.margin="10px 0",c.style.minHeight=y+"px",c.style.maxHeight=r+"px",a?.(),requestAnimationFrame(()=>h.current=!0)}},[m,l.trigger,l.valueNode,c,u,v,x,w,l.dir,a]);(0,V.useLayoutEffect)(()=>y(),[y]);let[j,S]=n.useState();(0,V.useLayoutEffect)(()=>{u&&S(window.getComputedStyle(u).zIndex)},[u]);let C=n.useCallback(e=>{e&&!0===f.current&&(y(),b?.(),f.current=!1)},[y,b]);return(0,t.jsx)(eb,{scope:s,contentWrapper:c,shouldExpandOnScrollRef:h,onScrollButtonChange:C,children:(0,t.jsx)("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:j},children:(0,t.jsx)(B.Primitive.div,{...r,ref:g,style:{boxSizing:"border-box",maxHeight:"100%",...r.style}})})})});ex.displayName="SelectItemAlignedPosition";var ew=n.forwardRef((e,n)=>{let{__scopeSelect:i,align:s="start",collisionPadding:a=10,...r}=e,l=ee(i);return(0,t.jsx)(F.Content,{...l,...r,ref:n,align:s,collisionPadding:a,style:{boxSizing:"border-box",...r.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});ew.displayName="SelectPopperPosition";var[eb,ey]=J(ep,{}),ej="SelectViewport",eS=n.forwardRef((e,i)=>{let{__scopeSelect:s,nonce:a,...r}=e,l=eh(ej,s),o=ey(ej,s),c=(0,I.useComposedRefs)(i,l.onViewportChange),d=n.useRef(0);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),(0,t.jsx)(Y.Slot,{scope:s,children:(0,t.jsx)(B.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...r,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...r.style},onScroll:(0,N.composeEventHandlers)(r.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:i}=o;if(i?.current&&n){let e=Math.abs(d.current-t.scrollTop);if(e>0){let i=window.innerHeight-20,s=Math.max(parseFloat(n.style.minHeight),parseFloat(n.style.height));if(s<i){let a=s+e,r=Math.min(i,a),l=a-r;n.style.height=r+"px","0px"===n.style.bottom&&(t.scrollTop=l>0?l:0,n.style.justifyContent="flex-end")}}}d.current=t.scrollTop})})})]})});eS.displayName=ej;var eC="SelectGroup",[ek,eN]=J(eC),eM=n.forwardRef((e,n)=>{let{__scopeSelect:i,...s}=e,a=(0,A.useId)();return(0,t.jsx)(ek,{scope:i,id:a,children:(0,t.jsx)(B.Primitive.div,{role:"group","aria-labelledby":a,...s,ref:n})})});eM.displayName=eC;var eI="SelectLabel",eT=n.forwardRef((e,n)=>{let{__scopeSelect:i,...s}=e,a=eN(eI,i);return(0,t.jsx)(B.Primitive.div,{id:a.id,...s,ref:n})});eT.displayName=eI;var eE="SelectItem",[eP,eD]=J(eE),eR=n.forwardRef((e,i)=>{let{__scopeSelect:s,value:a,disabled:r=!1,textValue:l,...o}=e,c=en(eE,s),d=eh(eE,s),u=c.value===a,[p,g]=n.useState(l??""),[m,h]=n.useState(!1),f=(0,I.useComposedRefs)(i,e=>d.itemRefCallback?.(e,a,r)),v=(0,A.useId)(),x=n.useRef("touch"),w=()=>{r||(c.onValueChange(a),c.onOpenChange(!1))};if(""===a)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,t.jsx)(eP,{scope:s,value:a,disabled:r,textId:v,isSelected:u,onItemTextChange:n.useCallback(e=>{g(t=>t||(e?.textContent??"").trim())},[]),children:(0,t.jsx)(Y.ItemSlot,{scope:s,value:a,disabled:r,textValue:p,children:(0,t.jsx)(B.Primitive.div,{role:"option","aria-labelledby":v,"data-highlighted":m?"":void 0,"aria-selected":u&&m,"data-state":u?"checked":"unchecked","aria-disabled":r||void 0,"data-disabled":r?"":void 0,tabIndex:r?void 0:-1,...o,ref:f,onFocus:(0,N.composeEventHandlers)(o.onFocus,()=>h(!0)),onBlur:(0,N.composeEventHandlers)(o.onBlur,()=>h(!1)),onClick:(0,N.composeEventHandlers)(o.onClick,()=>{"mouse"!==x.current&&w()}),onPointerUp:(0,N.composeEventHandlers)(o.onPointerUp,()=>{"mouse"===x.current&&w()}),onPointerDown:(0,N.composeEventHandlers)(o.onPointerDown,e=>{x.current=e.pointerType}),onPointerMove:(0,N.composeEventHandlers)(o.onPointerMove,e=>{x.current=e.pointerType,r?d.onItemLeave?.():"mouse"===x.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,N.composeEventHandlers)(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:(0,N.composeEventHandlers)(o.onKeyDown,e=>{(d.searchRef?.current===""||" "!==e.key)&&(q.includes(e.key)&&w()," "===e.key&&e.preventDefault())})})})})});eR.displayName=eE;var eA="SelectItemText",eF=n.forwardRef((e,i)=>{let{__scopeSelect:s,className:a,style:r,...l}=e,o=en(eA,s),c=eh(eA,s),d=eD(eA,s),u=es(eA,s),[p,g]=n.useState(null),m=(0,I.useComposedRefs)(i,e=>g(e),d.onItemTextChange,e=>c.itemTextRefCallback?.(e,d.value,d.disabled)),h=p?.textContent,f=n.useMemo(()=>(0,t.jsx)("option",{value:d.value,disabled:d.disabled,children:h},d.value),[d.disabled,d.value,h]),{onNativeOptionAdd:v,onNativeOptionRemove:x}=u;return(0,V.useLayoutEffect)(()=>(v(f),()=>x(f)),[v,x,f]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(B.Primitive.span,{id:d.textId,...l,ref:m}),d.isSelected&&o.valueNode&&!o.valueNodeHasChildren?C.createPortal(l.children,o.valueNode):null]})});eF.displayName=eA;var eL="SelectItemIndicator",eB=n.forwardRef((e,n)=>{let{__scopeSelect:i,...s}=e;return eD(eL,i).isSelected?(0,t.jsx)(B.Primitive.span,{"aria-hidden":!0,...s,ref:n}):null});eB.displayName=eL;var eH="SelectScrollUpButton",ez=n.forwardRef((e,i)=>{let s=eh(eH,e.__scopeSelect),a=ey(eH,e.__scopeSelect),[r,l]=n.useState(!1),o=(0,I.useComposedRefs)(i,a.onScrollButtonChange);return(0,V.useLayoutEffect)(()=>{if(s.viewport&&s.isPositioned){let e=function(){l(t.scrollTop>0)},t=s.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[s.viewport,s.isPositioned]),r?(0,t.jsx)(eK,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=s;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null});ez.displayName=eH;var e_="SelectScrollDownButton",eV=n.forwardRef((e,i)=>{let s=eh(e_,e.__scopeSelect),a=ey(e_,e.__scopeSelect),[r,l]=n.useState(!1),o=(0,I.useComposedRefs)(i,a.onScrollButtonChange);return(0,V.useLayoutEffect)(()=>{if(s.viewport&&s.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;l(Math.ceil(t.scrollTop)<e)},t=s.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[s.viewport,s.isPositioned]),r?(0,t.jsx)(eK,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=s;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null});eV.displayName=e_;var eK=n.forwardRef((e,i)=>{let{__scopeSelect:s,onAutoScroll:a,...r}=e,l=eh("SelectScrollButton",s),o=n.useRef(null),c=Z(s),d=n.useCallback(()=>{null!==o.current&&(window.clearInterval(o.current),o.current=null)},[]);return n.useEffect(()=>()=>d(),[d]),(0,V.useLayoutEffect)(()=>{let e=c().find(e=>e.ref.current===document.activeElement);e?.ref.current?.scrollIntoView({block:"nearest"})},[c]),(0,t.jsx)(B.Primitive.div,{"aria-hidden":!0,...r,ref:i,style:{flexShrink:0,...r.style},onPointerDown:(0,N.composeEventHandlers)(r.onPointerDown,()=>{null===o.current&&(o.current=window.setInterval(a,50))}),onPointerMove:(0,N.composeEventHandlers)(r.onPointerMove,()=>{l.onItemLeave?.(),null===o.current&&(o.current=window.setInterval(a,50))}),onPointerLeave:(0,N.composeEventHandlers)(r.onPointerLeave,()=>{d()})})}),eO=n.forwardRef((e,n)=>{let{__scopeSelect:i,...s}=e;return(0,t.jsx)(B.Primitive.div,{"aria-hidden":!0,...s,ref:n})});eO.displayName="SelectSeparator";var eW="SelectArrow",eU=n.forwardRef((e,n)=>{let{__scopeSelect:i,...s}=e,a=ee(i),r=en(eW,i),l=eh(eW,i);return r.open&&"popper"===l.position?(0,t.jsx)(F.Arrow,{...a,...s,ref:n}):null});eU.displayName=eW;var eG=n.forwardRef(({__scopeSelect:e,value:i,...s},a)=>{let r=n.useRef(null),l=(0,I.useComposedRefs)(a,r),o=(0,K.usePrevious)(i);return n.useEffect(()=>{let e=r.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(o!==i&&t){let n=new Event("change",{bubbles:!0});t.call(e,i),e.dispatchEvent(n)}},[o,i]),(0,t.jsx)(B.Primitive.select,{...s,style:{...O.VISUALLY_HIDDEN_STYLES,...s.style},ref:l,defaultValue:i})});function eq(e){return""===e||void 0===e}function e$(e){let t=(0,z.useCallbackRef)(e),i=n.useRef(""),s=n.useRef(0),a=n.useCallback(e=>{let n=i.current+e;t(n),function e(t){i.current=t,window.clearTimeout(s.current),""!==t&&(s.current=window.setTimeout(()=>e(""),1e3))}(n)},[t]),r=n.useCallback(()=>{i.current="",window.clearTimeout(s.current)},[]);return n.useEffect(()=>()=>window.clearTimeout(s.current),[]),[i,a,r]}function eY(e,t,n){var i,s;let a=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,r=n?e.indexOf(n):-1,l=(i=e,s=Math.max(r,0),i.map((e,t)=>i[(s+t)%i.length]));1===a.length&&(l=l.filter(e=>e!==n));let o=l.find(e=>e.textValue.toLowerCase().startsWith(a.toLowerCase()));return o!==n?o:void 0}eG.displayName="SelectBubbleInput",e.s(["Arrow",()=>eU,"Content",()=>eg,"Group",()=>eM,"Icon",()=>ed,"Item",()=>eR,"ItemIndicator",()=>eB,"ItemText",()=>eF,"Label",()=>eT,"Portal",()=>eu,"Root",()=>ea,"ScrollDownButton",()=>eV,"ScrollUpButton",()=>ez,"Select",()=>ea,"SelectArrow",()=>eU,"SelectContent",()=>eg,"SelectGroup",()=>eM,"SelectIcon",()=>ed,"SelectItem",()=>eR,"SelectItemIndicator",()=>eB,"SelectItemText",()=>eF,"SelectLabel",()=>eT,"SelectPortal",()=>eu,"SelectScrollDownButton",()=>eV,"SelectScrollUpButton",()=>ez,"SelectSeparator",()=>eO,"SelectTrigger",()=>el,"SelectValue",()=>ec,"SelectViewport",()=>eS,"Separator",()=>eO,"Trigger",()=>el,"Value",()=>ec,"Viewport",()=>eS,"createSelectScope",()=>Q],83830);var eZ=e.i(83830),eZ=eZ,eX=e.i(99105),eJ=e.i(48829);let eQ=eZ.Root;eZ.Group;let e0=eZ.Value,e1=n.forwardRef(({className:e,children:n,...i},s)=>(0,t.jsxs)(eZ.Trigger,{ref:s,className:(0,y.cn)("border-input ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...i,children:[n,(0,t.jsx)(eZ.Icon,{asChild:!0,children:(0,t.jsx)(eX.ChevronDown,{className:"h-4 w-4 opacity-50"})})]}));e1.displayName=eZ.Trigger.displayName;let e2=n.forwardRef(({className:e,...n},i)=>(0,t.jsx)(eZ.ScrollUpButton,{ref:i,className:(0,y.cn)("flex cursor-default items-center justify-center py-1",e),...n,children:(0,t.jsx)(eJ.ChevronUp,{className:"h-4 w-4"})}));e2.displayName=eZ.ScrollUpButton.displayName;let e3=n.forwardRef(({className:e,...n},i)=>(0,t.jsx)(eZ.ScrollDownButton,{ref:i,className:(0,y.cn)("flex cursor-default items-center justify-center py-1",e),...n,children:(0,t.jsx)(eX.ChevronDown,{className:"h-4 w-4"})}));e3.displayName=eZ.ScrollDownButton.displayName;let e5=n.forwardRef(({className:e,children:n,position:i="popper",...s},a)=>(0,t.jsx)(eZ.Portal,{children:(0,t.jsxs)(eZ.Content,{ref:a,className:(0,y.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md","popper"===i&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:i,...s,children:[(0,t.jsx)(e2,{}),(0,t.jsx)(eZ.Viewport,{className:(0,y.cn)("p-1","popper"===i&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:n}),(0,t.jsx)(e3,{})]})}));e5.displayName=eZ.Content.displayName,n.forwardRef(({className:e,...n},i)=>(0,t.jsx)(eZ.Label,{ref:i,className:(0,y.cn)("px-2 py-1.5 text-sm font-semibold",e),...n})).displayName=eZ.Label.displayName;let e4=n.forwardRef(({className:e,children:n,...s},a)=>(0,t.jsxs)(eZ.Item,{ref:a,className:(0,y.cn)("focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 ps-2 pe-8 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...s,children:[(0,t.jsx)("span",{className:"absolute end-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,t.jsx)(eZ.ItemIndicator,{children:(0,t.jsx)(i.Check,{className:"h-4 w-4"})})}),(0,t.jsx)(eZ.ItemText,{children:n})]}));e4.displayName=eZ.Item.displayName,n.forwardRef(({className:e,...n},i)=>(0,t.jsx)(eZ.Separator,{ref:i,className:(0,y.cn)("bg-muted -mx-1 my-1 h-px",e),...n})).displayName=eZ.Separator.displayName;var e8=e.i(21023);let e6=(0,e8.createServerReference)("406f8cb63814264afe46d20e25917ff67b344562a6",e8.callServer,void 0,e8.findSourceMapURL,"updateSettingsAction");var e9=e.i(17406),e7=e.i(98804),te=e.i(44229),tt=e.i(83902);function tn(e){return(0,t.jsx)(te.Code,{className:(0,y.cn)("h-4 w-4",e.className),...e})}function ti({className:e}){return(0,t.jsx)(e7.default,{src:"/icons/editors/vscode.svg",alt:"VS Code",width:24,height:24,className:(0,y.cn)("rounded-sm object-contain",e)})}function ts({className:e}){return(0,t.jsx)(e7.default,{src:"/icons/agents/cursor.jpeg",alt:"Cursor",width:24,height:24,className:(0,y.cn)("rounded-sm object-contain",e)})}function ta({className:e}){return(0,t.jsx)(e7.default,{src:"/icons/editors/windsurf.svg",alt:"Windsurf",width:24,height:24,className:(0,y.cn)("rounded-sm object-contain",e)})}function tr({className:e}){return(0,t.jsx)(e7.default,{src:"/icons/editors/zed.svg",alt:"Zed",width:24,height:24,className:(0,y.cn)("rounded-sm object-contain",e)})}function tl({className:e,...n}){return(0,t.jsx)(tt.Rocket,{className:(0,y.cn)("h-4 w-4",e),...n})}ti.displayName="VsCodeIcon",ts.displayName="CursorEditorIcon",ta.displayName="WindsurfIcon",tr.displayName="ZedIcon",tl.displayName="AntigravityIcon";let to={vscode:ti,cursor:ts,windsurf:ta,zed:tr,antigravity:tl};var tc=e.i(41413),td=e.i(956);let tu=[{value:e9.Language.English,label:"English",nativeName:"English"},{value:e9.Language.Russian,label:"Русский",nativeName:"Русский"},{value:e9.Language.Portuguese,label:"Português",nativeName:"Português"},{value:e9.Language.Spanish,label:"Español",nativeName:"Español"},{value:e9.Language.Arabic,label:"العربية",nativeName:"العربية"},{value:e9.Language.Hebrew,label:"עברית",nativeName:"עברית"},{value:e9.Language.French,label:"Français",nativeName:"Français"},{value:e9.Language.German,label:"Deutsch",nativeName:"Deutsch"}];function tp({language:e}){let{t:s,i18n:a}=(0,b.useTranslation)("web"),[r,l]=(0,n.useState)(e),[o,c]=(0,n.useTransition)(),[d,u]=(0,n.useState)(!1),g=(0,n.useRef)(!1);return(0,n.useEffect)(()=>{if(g.current&&!o){u(!0);let e=setTimeout(()=>u(!1),2e3);return()=>clearTimeout(e)}g.current=o},[o]),(0,t.jsxs)(td.Card,{id:"language",className:"scroll-mt-6","data-testid":"language-settings-section",children:[(0,t.jsxs)(td.CardHeader,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(p.Globe,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)(td.CardTitle,{children:s("settings.language.title")})]}),o?(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:s("common:labels.saving")}):null,d&&!o?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-xs text-green-600",children:[(0,t.jsx)(i.Check,{className:"h-3 w-3"}),s("common:labels.saved")]}):null]}),(0,t.jsx)(td.CardDescription,{children:s("settings.language.description")})]}),(0,t.jsx)(td.CardContent,{className:"space-y-4",children:(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(j.Label,{htmlFor:"display-language",children:s("settings.language.label")}),(0,t.jsxs)(eQ,{value:r,onValueChange:function(e){l(e),a.changeLanguage(e);let t="ar"===e||"he"===e?"rtl":"ltr";document.documentElement.lang=e,document.documentElement.dir=t,c(async()=>{let t=await e6({user:{preferredLanguage:e}});t.success||w.toast.error(t.error??s("settings.language.failedToSave","Failed to save language settings"))})},children:[(0,t.jsx)(e1,{id:"display-language","data-testid":"language-select",children:(0,t.jsx)(e0,{placeholder:s("settings.language.placeholder")})}),(0,t.jsx)(e5,{children:tu.map(e=>(0,t.jsx)(e4,{value:e.value,children:e.nativeName},e.value))})]})]})})]})}var tg=e.i(77624),tm=["PageUp","PageDown"],th=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],tf={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},tv="Slider",[tx,tw,tb]=(0,M.createCollection)(tv),[ty,tj]=(0,T.createContextScope)(tv,[tb]),[tS,tC]=ty(tv),tk=n.forwardRef((e,i)=>{let{name:s,min:a=0,max:r=100,step:l=1,orientation:o="horizontal",disabled:c=!1,minStepsBetweenThumbs:d=0,defaultValue:u=[a],value:p,onValueChange:g=()=>{},onValueCommit:m=()=>{},inverted:h=!1,form:f,...v}=e,x=n.useRef(new Set),w=n.useRef(0),b="horizontal"===o,[y=[],j]=(0,_.useControllableState)({prop:p,defaultProp:u,onChange:e=>{let t=[...x.current];t[w.current]?.focus(),g(e)}}),S=n.useRef(y);function C(e,t,{commit:n}={commit:!1}){let i,s=(String(l).split(".")[1]||"").length,o=Math.round((Math.round((e-a)/l)*l+a)*(i=Math.pow(10,s)))/i,c=(0,k.clamp)(o,[a,r]);j((e=[])=>{let i=function(e=[],t,n){let i=[...e];return i[n]=t,i.sort((e,t)=>e-t)}(e,c,t);if(!function(e,t){if(t>0)return Math.min(...e.slice(0,-1).map((t,n)=>e[n+1]-t))>=t;return!0}(i,d*l))return e;{w.current=i.indexOf(c);let t=String(i)!==String(e);return t&&n&&m(i),t?i:e}})}return(0,t.jsx)(tS,{scope:e.__scopeSlider,name:s,disabled:c,min:a,max:r,valueIndexToChangeRef:w,thumbs:x.current,values:y,orientation:o,form:f,children:(0,t.jsx)(tx.Provider,{scope:e.__scopeSlider,children:(0,t.jsx)(tx.Slot,{scope:e.__scopeSlider,children:(0,t.jsx)(b?tI:tT,{"aria-disabled":c,"data-disabled":c?"":void 0,...v,ref:i,onPointerDown:(0,N.composeEventHandlers)(v.onPointerDown,()=>{c||(S.current=y)}),min:a,max:r,inverted:h,onSlideStart:c?void 0:function(e){let t=function(e,t){if(1===e.length)return 0;let n=e.map(e=>Math.abs(e-t)),i=Math.min(...n);return n.indexOf(i)}(y,e);C(e,t)},onSlideMove:c?void 0:function(e){C(e,w.current)},onSlideEnd:c?void 0:function(){let e=S.current[w.current];y[w.current]!==e&&m(y)},onHomeKeyDown:()=>!c&&C(a,0,{commit:!0}),onEndKeyDown:()=>!c&&C(r,y.length-1,{commit:!0}),onStepKeyDown:({event:e,direction:t})=>{if(!c){let n=tm.includes(e.key)||e.shiftKey&&th.includes(e.key),i=w.current;C(y[i]+l*(n?10:1)*t,i,{commit:!0})}}})})})})});tk.displayName=tv;var[tN,tM]=ty(tv,{startEdge:"left",endEdge:"right",size:"width",direction:1}),tI=n.forwardRef((e,i)=>{let{min:s,max:a,dir:r,inverted:l,onSlideStart:o,onSlideMove:c,onSlideEnd:d,onStepKeyDown:u,...p}=e,[g,m]=n.useState(null),h=(0,I.useComposedRefs)(i,e=>m(e)),f=n.useRef(void 0),v=(0,E.useDirection)(r),x="ltr"===v,w=x&&!l||!x&&l;function b(e){let t=f.current||g.getBoundingClientRect(),n=t_([0,t.width],w?[s,a]:[a,s]);return f.current=t,n(e-t.left)}return(0,t.jsx)(tN,{scope:e.__scopeSlider,startEdge:w?"left":"right",endEdge:w?"right":"left",direction:w?1:-1,size:"width",children:(0,t.jsx)(tE,{dir:v,"data-orientation":"horizontal",...p,ref:h,style:{...p.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:e=>{let t=b(e.clientX);o?.(t)},onSlideMove:e=>{let t=b(e.clientX);c?.(t)},onSlideEnd:()=>{f.current=void 0,d?.()},onStepKeyDown:e=>{let t=tf[w?"from-left":"from-right"].includes(e.key);u?.({event:e,direction:t?-1:1})}})})}),tT=n.forwardRef((e,i)=>{let{min:s,max:a,inverted:r,onSlideStart:l,onSlideMove:o,onSlideEnd:c,onStepKeyDown:d,...u}=e,p=n.useRef(null),g=(0,I.useComposedRefs)(i,p),m=n.useRef(void 0),h=!r;function f(e){let t=m.current||p.current.getBoundingClientRect(),n=t_([0,t.height],h?[a,s]:[s,a]);return m.current=t,n(e-t.top)}return(0,t.jsx)(tN,{scope:e.__scopeSlider,startEdge:h?"bottom":"top",endEdge:h?"top":"bottom",size:"height",direction:h?1:-1,children:(0,t.jsx)(tE,{"data-orientation":"vertical",...u,ref:g,style:{...u.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:e=>{let t=f(e.clientY);l?.(t)},onSlideMove:e=>{let t=f(e.clientY);o?.(t)},onSlideEnd:()=>{m.current=void 0,c?.()},onStepKeyDown:e=>{let t=tf[h?"from-bottom":"from-top"].includes(e.key);d?.({event:e,direction:t?-1:1})}})})}),tE=n.forwardRef((e,n)=>{let{__scopeSlider:i,onSlideStart:s,onSlideMove:a,onSlideEnd:r,onHomeKeyDown:l,onEndKeyDown:o,onStepKeyDown:c,...d}=e,u=tC(tv,i);return(0,t.jsx)(B.Primitive.span,{...d,ref:n,onKeyDown:(0,N.composeEventHandlers)(e.onKeyDown,e=>{"Home"===e.key?(l(e),e.preventDefault()):"End"===e.key?(o(e),e.preventDefault()):tm.concat(th).includes(e.key)&&(c(e),e.preventDefault())}),onPointerDown:(0,N.composeEventHandlers)(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),u.thumbs.has(t)?t.focus():s(e)}),onPointerMove:(0,N.composeEventHandlers)(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&a(e)}),onPointerUp:(0,N.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),r(e))})})}),tP="SliderTrack",tD=n.forwardRef((e,n)=>{let{__scopeSlider:i,...s}=e,a=tC(tP,i);return(0,t.jsx)(B.Primitive.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...s,ref:n})});tD.displayName=tP;var tR="SliderRange",tA=n.forwardRef((e,i)=>{let{__scopeSlider:s,...a}=e,r=tC(tR,s),l=tM(tR,s),o=n.useRef(null),c=(0,I.useComposedRefs)(i,o),d=r.values.length,u=r.values.map(e=>tz(e,r.min,r.max)),p=d>1?Math.min(...u):0,g=100-Math.max(...u);return(0,t.jsx)(B.Primitive.span,{"data-orientation":r.orientation,"data-disabled":r.disabled?"":void 0,...a,ref:c,style:{...e.style,[l.startEdge]:p+"%",[l.endEdge]:g+"%"}})});tA.displayName=tR;var tF="SliderThumb",tL=n.forwardRef((e,i)=>{let s=tw(e.__scopeSlider),[a,r]=n.useState(null),l=(0,I.useComposedRefs)(i,e=>r(e)),o=n.useMemo(()=>a?s().findIndex(e=>e.ref.current===a):-1,[s,a]);return(0,t.jsx)(tB,{...e,ref:l,index:o})}),tB=n.forwardRef((e,i)=>{var s,a,r,l,o;let c,d,{__scopeSlider:u,index:p,name:g,...m}=e,h=tC(tF,u),f=tM(tF,u),[v,x]=n.useState(null),w=(0,I.useComposedRefs)(i,e=>x(e)),b=!v||h.form||!!v.closest("form"),y=(0,tg.useSize)(v),j=h.values[p],S=void 0===j?0:tz(j,h.min,h.max),C=(s=p,(a=h.values.length)>2?`Value ${s+1} of ${a}`:2===a?["Minimum","Maximum"][s]:void 0),k=y?.[f.size],M=k?(r=k,l=S,o=f.direction,d=t_([0,50],[0,c=r/2]),(c-d(l)*o)*o):0;return n.useEffect(()=>{if(v)return h.thumbs.add(v),()=>{h.thumbs.delete(v)}},[v,h.thumbs]),(0,t.jsxs)("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[f.startEdge]:`calc(${S}% + ${M}px)`},children:[(0,t.jsx)(tx.ItemSlot,{scope:e.__scopeSlider,children:(0,t.jsx)(B.Primitive.span,{role:"slider","aria-label":e["aria-label"]||C,"aria-valuemin":h.min,"aria-valuenow":j,"aria-valuemax":h.max,"aria-orientation":h.orientation,"data-orientation":h.orientation,"data-disabled":h.disabled?"":void 0,tabIndex:h.disabled?void 0:0,...m,ref:w,style:void 0===j?{display:"none"}:e.style,onFocus:(0,N.composeEventHandlers)(e.onFocus,()=>{h.valueIndexToChangeRef.current=p})})}),b&&(0,t.jsx)(tH,{name:g??(h.name?h.name+(h.values.length>1?"[]":""):void 0),form:h.form,value:j},p)]})});tL.displayName=tF;var tH=n.forwardRef(({__scopeSlider:e,value:i,...s},a)=>{let r=n.useRef(null),l=(0,I.useComposedRefs)(r,a),o=(0,K.usePrevious)(i);return n.useEffect(()=>{let e=r.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set;if(o!==i&&t){let n=new Event("input",{bubbles:!0});t.call(e,i),e.dispatchEvent(n)}},[o,i]),(0,t.jsx)(B.Primitive.input,{style:{display:"none"},...s,ref:l,defaultValue:i})});function tz(e,t,n){return(0,k.clamp)(100/(n-t)*(e-t),[0,100])}function t_(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let i=(t[1]-t[0])/(e[1]-e[0]);return t[0]+i*(n-e[0])}}tH.displayName="RadioBubbleInput",e.s(["Range",()=>tA,"Root",()=>tk,"Slider",()=>tk,"SliderRange",()=>tA,"SliderThumb",()=>tL,"SliderTrack",()=>tD,"Thumb",()=>tL,"Track",()=>tD,"createSliderScope",()=>tj],29991);var tV=e.i(29991),tV=tV;function tK({className:e,defaultValue:i,value:s,min:a=0,max:r=100,...l}){let o=n.useMemo(()=>Array.isArray(s)?s:Array.isArray(i)?i:[a,r],[s,i,a,r]);return(0,t.jsxs)(tV.Root,{"data-slot":"slider",defaultValue:i,value:s,min:a,max:r,className:(0,y.cn)("relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",e),...l,children:[(0,t.jsx)(tV.Track,{"data-slot":"slider-track",className:(0,y.cn)("bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"),children:(0,t.jsx)(tV.Range,{"data-slot":"slider-range",className:(0,y.cn)("bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")})}),Array.from({length:o.length},(e,n)=>(0,t.jsx)(tV.Thumb,{"data-slot":"slider-thumb",className:"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"},n))]})}let tO=[60,120,300,600,900,1800,2700,3600,7200,10800,14400,21600,28800,43200,86400],tW=tO.length-1;function tU(e){let t=0,n=Math.abs(e-tO[0]);for(let i=1;i<tO.length;i++){let s=Math.abs(e-tO[i]);s<n&&(n=s,t=i)}return t}function tG({id:e,testId:i,value:s,onChange:a,onBlur:r,defaultSeconds:l=1800}){var o;let c,d,u=(""===s?l:parseInt(s,10))||l,[p,g]=(0,n.useState)(()=>tU(u)),m=tU(u);m!==p&&tO[p]!==u&&g(m);let h=(0,n.useCallback)(([e])=>{g(e),a(String(tO[e]))},[a]);return(0,t.jsxs)("div",{className:"flex w-55 items-center gap-2",children:[(0,t.jsx)(tK,{id:e,"data-testid":i,min:0,max:tW,step:1,value:[p],onValueChange:h,onValueCommit:()=>r(),className:"min-w-0 flex-1"}),(0,t.jsx)("span",{className:"text-muted-foreground shrink-0 text-end text-xs tabular-nums",children:(c=Math.floor((o=tO[p])/3600),d=Math.round(o%3600/60),0===c?`${d}m`:0===d?`${c}h`:`${c}h ${d}m`)})]})}let tq=[{value:e9.EditorType.VsCode,label:"VS Code"},{value:e9.EditorType.Cursor,label:"Cursor"},{value:e9.EditorType.Windsurf,label:"Windsurf"},{value:e9.EditorType.Zed,label:"Zed"},{value:e9.EditorType.Antigravity,label:"Antigravity"}],t$=[{value:"bash",label:"Bash"},{value:"zsh",label:"Zsh"},{value:"fish",label:"Fish"}],tY=[{id:"language",labelKey:"settings.sections.language",icon:p.Globe},{id:"agent",labelKey:"settings.sections.agent",icon:s.Bot},{id:"environment",labelKey:"settings.sections.environment",icon:a.Terminal},{id:"workflow",labelKey:"settings.sections.workflow",icon:r.GitBranch},{id:"ci",labelKey:"settings.sections.ci",icon:o},{id:"stage-timeouts",labelKey:"settings.sections.timeouts",icon:v.Timer},{id:"notifications",labelKey:"settings.sections.notifications",icon:c},{id:"feature-flags",labelKey:"settings.sections.flags",icon:d},{id:"interactive-agent",labelKey:"settings.sections.chat",icon:x.MessageSquare},{id:"database",labelKey:"settings.sections.database",icon:u}];function tZ({label:e,description:n,htmlFor:i,children:s}){return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4 border-b py-2.5 last:border-b-0",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)(j.Label,{htmlFor:i,className:"cursor-pointer text-sm font-normal whitespace-nowrap",children:e}),n?(0,t.jsx)("p",{className:"text-muted-foreground text-[11px] leading-tight",children:n}):null]}),(0,t.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:s})]})}function tX({label:e,description:n,id:i,testId:s,checked:a,onChange:r,disabled:l}){return(0,t.jsx)(tZ,{label:e,description:n,htmlFor:i,children:(0,t.jsx)(S.Switch,{id:i,"data-testid":s,checked:a,onCheckedChange:r,disabled:l,className:(0,y.cn)("cursor-pointer",l&&"cursor-not-allowed opacity-50")})})}function tJ({icon:e,title:n,description:i,badge:s,testId:a,children:r}){return(0,t.jsxs)("div",{className:"bg-background rounded-lg border","data-testid":a,children:[(0,t.jsxs)("div",{className:"bg-muted/30 border-b px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(e,{className:"text-muted-foreground h-3.5 w-3.5"}),(0,t.jsx)("h2",{className:"text-sm font-semibold",children:n}),s?(0,t.jsx)("span",{className:"bg-muted text-muted-foreground rounded px-1.5 py-0.5 text-[9px] font-medium tracking-wider uppercase",children:s}):null]}),(0,t.jsx)("p",{className:"text-muted-foreground mt-0.5 text-[11px]",children:i})]}),(0,t.jsx)("div",{className:"px-4",children:r})]})}function tQ({id:e,testId:n,value:i,onChange:s,onBlur:a,placeholder:r,min:l=1,max:o,step:c=1,suffix:d}){let{t:u}=(0,b.useTranslation)("web"),p=""===i?void 0:parseInt(i,10);return(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)("div",{className:"flex items-center overflow-hidden rounded-md border",children:[(0,t.jsx)("button",{type:"button",onClick:()=>{s(String(Math.max(l,(p??parseInt(r,10))-c)))},onMouseUp:a,className:"text-muted-foreground hover:bg-muted hover:text-foreground flex h-8 w-7 cursor-pointer items-center justify-center border-r transition-colors","aria-label":u("common.decrease"),children:(0,t.jsx)(g.default,{className:"h-3 w-3"})}),(0,t.jsx)("input",{id:e,"data-testid":n,type:"text",inputMode:"numeric",pattern:"[0-9]*",value:i,placeholder:r,onChange:e=>{s(e.target.value.replace(/[^0-9]/g,""))},onBlur:a,className:"h-8 w-14 bg-transparent text-center text-xs outline-none"}),(0,t.jsx)("button",{type:"button",onClick:()=>{let e;e=p??parseInt(r,10),s(String(null!=o?Math.min(o,e+c):e+c))},onMouseUp:a,className:"text-muted-foreground hover:bg-muted hover:text-foreground flex h-8 w-7 cursor-pointer items-center justify-center border-l transition-colors","aria-label":u("common.increase"),children:(0,t.jsx)(m.Plus,{className:"h-3 w-3"})})]}),d?(0,t.jsx)("span",{className:"text-muted-foreground text-[11px]",children:d}):null]})}function t0({children:e}){return(0,t.jsx)("div",{className:"border-b pt-3 pb-1",children:(0,t.jsx)("span",{className:"text-muted-foreground text-[10px] font-semibold tracking-wider uppercase",children:e})})}function t1({children:e,links:n}){return(0,t.jsxs)("div",{className:"hidden pt-2 lg:block",children:[(0,t.jsx)("p",{className:"text-muted-foreground/70 text-[11px] leading-relaxed",children:e}),null!=n&&n.length>0?(0,t.jsx)("div",{className:"mt-2 flex flex-col gap-1",children:n.map(e=>(0,t.jsxs)("a",{href:e.href,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:text-foreground inline-flex items-center gap-1 text-[10px] transition-colors",children:[(0,t.jsx)(h.ExternalLink,{className:"h-2.5 w-2.5"}),e.label]},e.href))}):null]})}function t2({settings:e,shepHome:l,dbFileSize:p,availableTerminals:g}){let{t:m}=(0,b.useTranslation)("web"),{showSaving:h,showSaved:j,save:S}=function(){let{t:e}=(0,b.useTranslation)("web"),[t,i]=(0,n.useTransition)(),[s,a]=(0,n.useState)(!1),[r,l]=(0,n.useState)(!1),o=(0,n.useRef)(null),c=(0,n.useRef)(!1);return(0,n.useEffect)(()=>{t&&!s&&(a(!0),c.current=!1,o.current=setTimeout(()=>{o.current=null,c.current&&(a(!1),l(!0),setTimeout(()=>l(!1),2e3))},350)),!t&&s&&(c.current=!0,o.current||(a(!1),l(!0),setTimeout(()=>l(!1),2e3)))},[t,s]),{showSaving:s,showSaved:r,save:(0,n.useCallback)(t=>{i(async()=>{let n=await e6(t);n.success||w.toast.error(n.error??e("settings.failedToSave"))})},[i,e])}}(),C=e.featureFlags??{skills:!1,envDeploy:!1,debug:!1,githubImport:!1,adoptBranch:!1,gitRebaseSync:!1,reactFileManager:!1},[k,N]=(0,n.useState)(e.agent.type),[M,I]=(0,n.useState)(e.environment.defaultEditor),[T,E]=(0,n.useState)(e.environment.shellPreference),[P,D]=(0,n.useState)(e.environment.terminalPreference??e9.TerminalType.System),R=g?g.filter(e=>e.available):[{id:e9.TerminalType.System,name:m("settings.environment.systemTerminal"),available:!0}],[A,F]=(0,n.useState)(e.workflow.openPrOnImplementationComplete),[L,B]=(0,n.useState)(e.workflow.approvalGateDefaults.pushOnImplementationComplete),[H,z]=(0,n.useState)(e.workflow.approvalGateDefaults.allowPrd),[_,V]=(0,n.useState)(e.workflow.approvalGateDefaults.allowPlan),[K,O]=(0,n.useState)(e.workflow.approvalGateDefaults.allowMerge),[W,U]=(0,n.useState)(e.workflow.enableEvidence),[G,q]=(0,n.useState)(e.workflow.commitEvidence),[$,Y]=(0,n.useState)(!1!==e.workflow.ciWatchEnabled),[Z,X]=(0,n.useState)(!1!==e.workflow.hideCiStatus),[J,Q]=(0,n.useState)(!1!==e.workflow.defaultFastMode),[ee,et]=(0,n.useState)((e.workflow.autoArchiveDelayMinutes??10)>0),[en,ei]=(0,n.useState)(String(e.workflow.autoArchiveDelayMinutes??10)),[es,ea]=(0,n.useState)(null!=e.workflow.ciMaxFixAttempts?String(e.workflow.ciMaxFixAttempts):""),[er,el]=(0,n.useState)(null!=e.workflow.ciWatchTimeoutMs?String(Math.round(e.workflow.ciWatchTimeoutMs/1e3)):""),[eo,ec]=(0,n.useState)(null!=e.workflow.ciLogMaxChars?String(e.workflow.ciLogMaxChars):""),[ed,eu]=(0,n.useState)(null!=e.workflow.ciWatchPollIntervalSeconds?String(e.workflow.ciWatchPollIntervalSeconds):""),ep=e.workflow.stageTimeouts,[eg,em]=(0,n.useState)(String(Math.round((ep?.analyzeMs??18e5)/1e3))),[eh,ef]=(0,n.useState)(String(Math.round((ep?.requirementsMs??18e5)/1e3))),[ev,ex]=(0,n.useState)(String(Math.round((ep?.researchMs??18e5)/1e3))),[ew,eb]=(0,n.useState)(String(Math.round((ep?.planMs??18e5)/1e3))),[ey,ej]=(0,n.useState)(String(Math.round((ep?.implementMs??18e5)/1e3))),[eS,eC]=(0,n.useState)(String(Math.round((ep?.mergeMs??18e5)/1e3))),ek=e.workflow.analyzeRepoTimeouts,[eN,eM]=(0,n.useState)(String(Math.round((ek?.analyzeMs??6e5)/1e3))),eI=e.interactiveAgent??{enabled:!0,autoTimeoutMinutes:15,maxConcurrentSessions:3},[eT,eE]=(0,n.useState)(eI.enabled),[eP,eD]=(0,n.useState)(String(eI.autoTimeoutMinutes)),[eR,eA]=(0,n.useState)(String(eI.maxConcurrentSessions)),[eF,eL]=(0,n.useState)(e.notifications.inApp.enabled),[eB,eH]=(0,n.useState)({...e.notifications.events}),[ez,e_]=(0,n.useState)({...C}),eV=null!=e.workflow.ciMaxFixAttempts?String(e.workflow.ciMaxFixAttempts):"",eK=null!=e.workflow.ciWatchTimeoutMs?String(Math.round(e.workflow.ciWatchTimeoutMs/1e3)):"",eO=null!=e.workflow.ciLogMaxChars?String(e.workflow.ciLogMaxChars):"",eW=null!=e.workflow.ciWatchPollIntervalSeconds?String(e.workflow.ciWatchPollIntervalSeconds):"",eU=ep?.analyzeMs!=null?String(Math.round(ep.analyzeMs/1e3)):"",eG=ep?.requirementsMs!=null?String(Math.round(ep.requirementsMs/1e3)):"",eq=ep?.researchMs!=null?String(Math.round(ep.researchMs/1e3)):"",e$=ep?.planMs!=null?String(Math.round(ep.planMs/1e3)):"",eY=ep?.implementMs!=null?String(Math.round(ep.implementMs/1e3)):"",eZ=ep?.mergeMs!=null?String(Math.round(ep.mergeMs/1e3)):"",eX=ek?.analyzeMs!=null?String(Math.round(ek.analyzeMs/1e3)):"";function eJ(e){if(""===e)return;let t=parseInt(e,10);return Number.isNaN(t)||t<=0?void 0:t}function e2(e){if(void 0===e)return;let t=eJ(e);return null!=t?1e3*t:void 0}function e3(e={}){let t=eJ(e.ciTimeout??er),n=e.autoArchiveEnabled??ee,i=parseInt(e.autoArchiveDelay??en,10);return{workflow:{openPrOnImplementationComplete:e.openPr??A,approvalGateDefaults:{pushOnImplementationComplete:e.pushOnComplete??L,allowPrd:e.allowPrd??H,allowPlan:e.allowPlan??_,allowMerge:e.allowMerge??K},enableEvidence:e.enableEvidence??W,commitEvidence:e.commitEvidence??G,ciWatchEnabled:e.ciWatchEnabled??$,hideCiStatus:e.hideCiStatus??Z,defaultFastMode:e.defaultFastMode??J,autoArchiveDelayMinutes:n?Number.isNaN(i)||i<1?10:i:0,ciMaxFixAttempts:eJ(e.ciMaxFix??es),ciWatchTimeoutMs:null!=t?1e3*t:void 0,ciLogMaxChars:eJ(e.ciLogMax??eo),ciWatchPollIntervalSeconds:eJ(e.ciPollInterval??ed),stageTimeouts:{analyzeMs:e2(e.analyzeTimeout??eg),requirementsMs:e2(e.requirementsTimeout??eh),researchMs:e2(e.researchTimeout??ev),planMs:e2(e.planTimeout??ew),implementMs:e2(e.implementTimeout??ey),mergeMs:e2(e.mergeTimeout??eS)},analyzeRepoTimeouts:{analyzeMs:e2(e.analyzeRepoTimeout??eN)}}}}function e8(e={}){return{notifications:{inApp:{enabled:e.inApp??eF},events:e.events??eB}}}let[e7,te]=(0,n.useState)("agent");(0,n.useEffect)(()=>{let e=tY.map(e=>document.getElementById(`section-${e.id}`)).filter(Boolean);if(0===e.length)return;let t=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&te(t.target.id.replace("section-",""))},{rootMargin:"-65px 0px -60% 0px",threshold:0});for(let n of e)t.observe(n);return()=>t.disconnect()},[]);let tt=(0,n.useCallback)(e=>{let t=document.getElementById(`section-${e}`);t&&(t.scrollIntoView({behavior:"smooth",block:"start"}),t.style.animation="none",t.offsetHeight,t.style.animation="section-flash 1s ease-out")},[]);return(0,t.jsxs)("div",{"data-testid":"settings-page-client",className:"max-w-5xl",children:[(0,t.jsx)("div",{className:"bg-background/95 supports-backdrop-filter:bg-background/80 sticky top-0 z-10 grid grid-cols-1 gap-x-5 pt-6 pb-4 backdrop-blur lg:grid-cols-[1fr_280px]",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(f,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)("h1",{className:"text-sm font-bold tracking-tight",children:m("settings.title")}),(0,t.jsxs)("span",{className:"relative h-4 w-16",children:[(0,t.jsx)("span",{className:(0,y.cn)("text-muted-foreground absolute inset-0 flex items-center text-xs transition-opacity duration-300",h?"opacity-100":"opacity-0"),children:m("settings.saving")}),(0,t.jsxs)("span",{className:(0,y.cn)("absolute inset-0 flex items-center gap-1 text-xs text-green-600 transition-opacity duration-300",j&&!h?"opacity-100":"opacity-0"),children:[(0,t.jsx)(i.Check,{className:"h-3 w-3"}),m("settings.saved")]})]}),(0,t.jsx)("nav",{className:"ml-auto flex items-center gap-0.5",children:tY.map(e=>{let n=e.icon,i=e7===e.id;return(0,t.jsxs)("button",{type:"button",onClick:()=>tt(e.id),className:(0,y.cn)("flex cursor-pointer items-center gap-1 rounded-md px-1.5 py-1 text-[11px] transition-all",i?"bg-accent text-foreground font-medium":"text-muted-foreground/60 hover:text-foreground hover:bg-accent/50"),children:[(0,t.jsx)(n,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:m(e.labelKey)})]},e.id)})})]})}),(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsx)("div",{id:"section-language",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:(0,t.jsx)(tp,{language:e.user?.preferredLanguage??e9.Language.English})}),(0,t.jsxs)("div",{id:"section-agent",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsx)(tJ,{icon:s.Bot,title:m("settings.agent.sectionTitle"),description:m("settings.agent.sectionDescription"),testId:"agent-settings-section",children:(0,t.jsx)(tZ,{label:m("settings.agent.agentAndModel"),description:m("settings.agent.agentAndModelDescription"),htmlFor:"agent-model-picker",children:(0,t.jsx)(tc.AgentModelPicker,{initialAgentType:k,initialModel:e.models.default,mode:"settings",onAgentModelChange:e=>N(e),className:"w-55"})})}),(0,t.jsx)(t1,{links:[{label:m("settings.agent.links.agentSystem"),href:"https://github.com/shep-ai/shep/blob/main/docs/architecture/agent-system.md"},{label:m("settings.agent.links.addingAgents"),href:"https://github.com/shep-ai/shep/blob/main/docs/development/adding-agents.md"},{label:m("settings.agent.links.configurationGuide"),href:"https://github.com/shep-ai/shep/blob/main/docs/guides/configuration.md"}],children:m("settings.agent.hint")})]}),(0,t.jsxs)("div",{id:"section-environment",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(tJ,{icon:a.Terminal,title:m("settings.environment.sectionTitle"),description:m("settings.environment.sectionDescription"),testId:"environment-settings-section",children:[(0,t.jsx)(tZ,{label:m("settings.environment.defaultEditor"),description:m("settings.environment.defaultEditorDescription"),htmlFor:"default-editor",children:(0,t.jsxs)(eQ,{value:M,onValueChange:e=>{I(e),S({environment:{defaultEditor:e,shellPreference:T,terminalPreference:P}})},children:[(0,t.jsx)(e1,{id:"default-editor","data-testid":"editor-select",className:"w-55 cursor-pointer text-xs",children:(0,t.jsx)(e0,{})}),(0,t.jsx)(e5,{children:tq.map(e=>{var n;let i=(n=e.value)&&n in to?to[n]:tn;return(0,t.jsx)(e4,{value:e.value,children:(0,t.jsxs)("span",{className:"flex items-center gap-2 text-xs",children:[(0,t.jsx)(i,{className:"h-4 w-4 shrink-0"}),e.label]})},e.value)})})]})}),(0,t.jsx)(tZ,{label:m("settings.environment.shell"),description:m("settings.environment.shellDescription"),htmlFor:"shell-preference",children:(0,t.jsxs)(eQ,{value:T,onValueChange:e=>{E(e),S({environment:{defaultEditor:M,shellPreference:e,terminalPreference:P}})},children:[(0,t.jsx)(e1,{id:"shell-preference","data-testid":"shell-select",className:"w-55 cursor-pointer text-xs",children:(0,t.jsx)(e0,{})}),(0,t.jsx)(e5,{children:t$.map(e=>(0,t.jsx)(e4,{value:e.value,children:e.label},e.value))})]})}),(0,t.jsx)(tZ,{label:m("settings.environment.terminal"),description:m("settings.environment.terminalDescription"),htmlFor:"terminal-preference",children:(0,t.jsxs)(eQ,{value:P,onValueChange:e=>{D(e),S({environment:{defaultEditor:M,shellPreference:T,terminalPreference:e}})},children:[(0,t.jsx)(e1,{id:"terminal-preference","data-testid":"terminal-select",className:"w-55 cursor-pointer text-xs",children:(0,t.jsx)(e0,{})}),(0,t.jsx)(e5,{children:R.map(e=>(0,t.jsx)(e4,{value:e.id,children:e.name},e.id))})]})})]}),(0,t.jsx)(t1,{links:[{label:m("settings.environment.links.configurationGuide"),href:"https://github.com/shep-ai/shep/blob/main/docs/guides/configuration.md"}],children:m("settings.environment.hint")})]}),(0,t.jsxs)("div",{id:"section-workflow",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(tJ,{icon:r.GitBranch,title:m("settings.workflow.title"),description:m("settings.workflow.sectionDescription"),testId:"workflow-settings-section",children:[(0,t.jsx)(tX,{label:m("settings.workflow.defaultFastMode"),description:m("settings.workflow.defaultFastModeDescription"),id:"default-fast-mode",testId:"switch-default-fast-mode",checked:J,onChange:e=>{Q(e),S(e3({defaultFastMode:e}))}}),(0,t.jsx)(t0,{children:m("settings.workflow.subsections.approve")}),(0,t.jsx)(tX,{label:m("settings.workflow.autoApprovePrd"),description:m("settings.workflow.autoApprovePrdDescription"),id:"allow-prd",testId:"switch-allow-prd",checked:H,onChange:e=>{z(e),S(e3({allowPrd:e}))}}),(0,t.jsx)(tX,{label:m("settings.workflow.autoApprovePlan"),description:m("settings.workflow.autoApprovePlanDescription"),id:"allow-plan",testId:"switch-allow-plan",checked:_,onChange:e=>{V(e),S(e3({allowPlan:e}))}}),(0,t.jsx)(tX,{label:m("settings.workflow.autoApproveMerge"),description:m("settings.workflow.autoApproveMergeDescription"),id:"allow-merge",testId:"switch-allow-merge",checked:K,onChange:e=>{O(e),S(e3({allowMerge:e}))}}),(0,t.jsx)(t0,{children:m("settings.workflow.subsections.evidence")}),(0,t.jsx)(tX,{label:m("settings.workflow.collectEvidence"),description:m("settings.workflow.collectEvidenceDescription"),id:"enable-evidence",testId:"switch-enable-evidence",checked:W,onChange:e=>{U(e),e?S(e3({enableEvidence:e})):(q(!1),S(e3({enableEvidence:e,commitEvidence:!1})))}}),(0,t.jsx)(tX,{label:m("settings.workflow.addEvidenceToPr"),description:m("settings.workflow.addEvidenceToPrDescription"),id:"commit-evidence",testId:"switch-commit-evidence",checked:G,disabled:!W||!A,onChange:e=>{q(e),S(e3({commitEvidence:e}))}}),(0,t.jsx)(t0,{children:m("settings.workflow.subsections.git")}),(0,t.jsx)(tX,{label:m("settings.workflow.pushOnComplete"),description:m("settings.workflow.pushOnCompleteDescription"),id:"push-on-complete",testId:"switch-push-on-complete",checked:L,onChange:e=>{B(e),S(e3({pushOnComplete:e}))}}),(0,t.jsx)(tX,{label:m("settings.workflow.openPrOnComplete"),description:m("settings.workflow.openPrOnCompleteDescription"),id:"open-pr",testId:"switch-open-pr",checked:A,onChange:e=>{F(e),e?S(e3({openPr:e})):(q(!1),S(e3({openPr:e,commitEvidence:!1})))}}),(0,t.jsx)(tX,{label:m("settings.workflow.watchCiAfterPush"),description:m("settings.workflow.watchCiAfterPushDescription"),id:"ci-watch-enabled",testId:"switch-ci-watch-enabled",checked:$,onChange:e=>{Y(e),S(e3({ciWatchEnabled:e}))}}),(0,t.jsx)(t0,{children:"Archive"}),(0,t.jsx)(tX,{label:"Auto-archive completed",description:"Automatically archive features after they reach the completed state",id:"auto-archive-enabled",testId:"switch-auto-archive-enabled",checked:ee,onChange:e=>{et(e),S(e3({autoArchiveEnabled:e}))}}),(0,t.jsx)(tZ,{label:"Archive delay",description:"Minutes to wait after completion before archiving (1–1440)",htmlFor:"auto-archive-delay",children:(0,t.jsx)(tQ,{id:"auto-archive-delay",testId:"input-auto-archive-delay",value:en,placeholder:"10",min:1,max:1440,suffix:"min",onChange:e=>{ei(e)},onBlur:()=>{if(!ee)return;let e=parseInt(en,10),t=Number.isNaN(e)?10:Math.min(1440,Math.max(1,e));ei(String(t)),S(e3({autoArchiveDelay:String(t)}))}})})]}),(0,t.jsx)(t1,{links:[{label:m("settings.workflow.links.approvalGates"),href:"https://github.com/shep-ai/shep/blob/main/specs/016-hitl-approval-gates/spec.yaml"},{label:m("settings.workflow.links.pushAndPrFlags"),href:"https://github.com/shep-ai/shep/blob/main/specs/037-feature-pr-push-flags/spec.yaml"}],children:m("settings.workflow.hint")})]}),(0,t.jsxs)("div",{id:"section-ci",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(tJ,{icon:o,title:m("settings.ci.title"),description:m("settings.ci.description"),testId:"ci-settings-section",children:[(0,t.jsx)(tZ,{label:m("settings.ci.maxFixAttempts"),description:m("settings.ci.maxFixAttemptsDescription"),htmlFor:"ci-max-fix",children:(0,t.jsx)(tQ,{id:"ci-max-fix",testId:"ci-max-fix-input",placeholder:"3",value:es,onChange:ea,onBlur:()=>{es!==eV&&S(e3({ciMaxFix:es}))},min:1,max:10})}),(0,t.jsx)(tZ,{label:m("settings.ci.watchTimeout"),description:m("settings.ci.watchTimeoutDescription"),htmlFor:"ci-timeout",children:(0,t.jsx)(tQ,{id:"ci-timeout",testId:"ci-timeout-input",placeholder:"300",value:er,onChange:el,onBlur:()=>{er!==eK&&S(e3({ciTimeout:er}))},min:30,step:30,suffix:"sec"})}),(0,t.jsx)(tZ,{label:m("settings.ci.maxLogSize"),description:m("settings.ci.maxLogSizeDescription"),htmlFor:"ci-log-max",children:(0,t.jsx)(tQ,{id:"ci-log-max",testId:"ci-log-max-input",placeholder:"50000",value:eo,onChange:ec,onBlur:()=>{eo!==eO&&S(e3({ciLogMax:eo}))},min:1e3,step:5e3,suffix:"chars"})}),(0,t.jsx)(tZ,{label:m("settings.ci.pollInterval"),description:m("settings.ci.pollIntervalDescription"),htmlFor:"ci-poll-interval",children:(0,t.jsx)(tQ,{id:"ci-poll-interval",testId:"ci-poll-interval-input",placeholder:"30",value:ed,onChange:eu,onBlur:()=>{ed!==eW&&S(e3({ciPollInterval:ed}))},min:5,step:5,suffix:"sec"})}),(0,t.jsx)(tX,{label:m("settings.ci.hideCiStatus"),description:m("settings.ci.hideCiStatusDescription"),id:"hide-ci-status",testId:"switch-hide-ci-status",checked:Z,onChange:e=>{X(e),S(e3({hideCiStatus:e}))}})]}),(0,t.jsx)(t1,{links:[{label:m("settings.ci.links.cicdPipeline"),href:"https://github.com/shep-ai/shep/blob/main/docs/development/cicd.md"},{label:m("settings.ci.links.ciSecurityGates"),href:"https://github.com/shep-ai/shep/blob/main/specs/003-cicd-security-gates/spec.md"}],children:m("settings.ci.hint")})]}),(0,t.jsxs)("div",{id:"section-stage-timeouts",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(tJ,{icon:v.Timer,title:m("settings.stageTimeouts.title"),description:m("settings.stageTimeouts.description"),testId:"stage-timeouts-settings-section",children:[(0,t.jsx)(t0,{children:m("settings.stageTimeouts.subsections.featureAgent")}),(0,t.jsx)(tZ,{label:m("settings.stageTimeouts.analyze"),description:m("settings.stageTimeouts.analyzeDescription"),htmlFor:"timeout-analyze",children:(0,t.jsx)(tG,{id:"timeout-analyze",testId:"timeout-analyze-input",value:eg,onChange:em,onBlur:()=>{eg!==eU&&S(e3({analyzeTimeout:eg}))},defaultSeconds:1800})}),(0,t.jsx)(tZ,{label:m("settings.stageTimeouts.requirements"),description:m("settings.stageTimeouts.requirementsDescription"),htmlFor:"timeout-requirements",children:(0,t.jsx)(tG,{id:"timeout-requirements",testId:"timeout-requirements-input",value:eh,onChange:ef,onBlur:()=>{eh!==eG&&S(e3({requirementsTimeout:eh}))},defaultSeconds:1800})}),(0,t.jsx)(tZ,{label:m("settings.stageTimeouts.research"),description:m("settings.stageTimeouts.researchDescription"),htmlFor:"timeout-research",children:(0,t.jsx)(tG,{id:"timeout-research",testId:"timeout-research-input",value:ev,onChange:ex,onBlur:()=>{ev!==eq&&S(e3({researchTimeout:ev}))},defaultSeconds:1800})}),(0,t.jsx)(tZ,{label:m("settings.stageTimeouts.plan"),description:m("settings.stageTimeouts.planDescription"),htmlFor:"timeout-plan",children:(0,t.jsx)(tG,{id:"timeout-plan",testId:"timeout-plan-input",value:ew,onChange:eb,onBlur:()=>{ew!==e$&&S(e3({planTimeout:ew}))},defaultSeconds:1800})}),(0,t.jsx)(tZ,{label:m("settings.stageTimeouts.implement"),description:m("settings.stageTimeouts.implementDescription"),htmlFor:"timeout-implement",children:(0,t.jsx)(tG,{id:"timeout-implement",testId:"timeout-implement-input",value:ey,onChange:ej,onBlur:()=>{ey!==eY&&S(e3({implementTimeout:ey}))},defaultSeconds:1800})}),(0,t.jsx)(tZ,{label:m("settings.stageTimeouts.merge"),description:m("settings.stageTimeouts.mergeDescription"),htmlFor:"timeout-merge",children:(0,t.jsx)(tG,{id:"timeout-merge",testId:"timeout-merge-input",value:eS,onChange:eC,onBlur:()=>{eS!==eZ&&S(e3({mergeTimeout:eS}))},defaultSeconds:1800})}),(0,t.jsx)(t0,{children:m("settings.stageTimeouts.subsections.analyzeRepoAgent")}),(0,t.jsx)(tZ,{label:m("settings.stageTimeouts.analyze"),description:m("settings.stageTimeouts.analyzeDescription"),htmlFor:"timeout-analyze-repo",children:(0,t.jsx)(tG,{id:"timeout-analyze-repo",testId:"timeout-analyze-repo-input",value:eN,onChange:eM,onBlur:()=>{eN!==eX&&S(e3({analyzeRepoTimeout:eN}))},defaultSeconds:600})})]}),(0,t.jsx)(t1,{children:m("settings.stageTimeouts.hint")})]}),(0,t.jsxs)("div",{id:"section-notifications",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(tJ,{icon:c,title:m("settings.notifications.title"),description:m("settings.notifications.sectionDescription"),testId:"notification-settings-section",children:[(0,t.jsx)(t0,{children:m("settings.notifications.channels")}),(0,t.jsx)(tX,{label:m("settings.notifications.inAppLabel"),description:m("settings.notifications.inAppDescription"),id:"notif-in-app",testId:"switch-in-app",checked:eF,onChange:e=>{eL(e),S(e8({inApp:e}))}}),(0,t.jsx)(t0,{children:m("settings.notifications.subsections.agentEvents")}),(0,t.jsx)(tX,{label:m("settings.notifications.events.agentStarted"),id:"notif-event-agentStarted",testId:"switch-event-agentStarted",checked:eB.agentStarted,onChange:e=>{let t={...eB,agentStarted:e};eH(t),S(e8({events:t}))}}),(0,t.jsx)(tX,{label:m("settings.notifications.events.phaseCompleted"),id:"notif-event-phaseCompleted",testId:"switch-event-phaseCompleted",checked:eB.phaseCompleted,onChange:e=>{let t={...eB,phaseCompleted:e};eH(t),S(e8({events:t}))}}),(0,t.jsx)(tX,{label:m("settings.notifications.events.waitingApproval"),id:"notif-event-waitingApproval",testId:"switch-event-waitingApproval",checked:eB.waitingApproval,onChange:e=>{let t={...eB,waitingApproval:e};eH(t),S(e8({events:t}))}}),(0,t.jsx)(tX,{label:m("settings.notifications.events.agentCompleted"),id:"notif-event-agentCompleted",testId:"switch-event-agentCompleted",checked:eB.agentCompleted,onChange:e=>{let t={...eB,agentCompleted:e};eH(t),S(e8({events:t}))}}),(0,t.jsx)(tX,{label:m("settings.notifications.events.agentFailed"),id:"notif-event-agentFailed",testId:"switch-event-agentFailed",checked:eB.agentFailed,onChange:e=>{let t={...eB,agentFailed:e};eH(t),S(e8({events:t}))}}),(0,t.jsx)(t0,{children:m("settings.notifications.subsections.pullRequestEvents")}),(0,t.jsx)(tX,{label:m("settings.notifications.events.prMerged"),id:"notif-event-prMerged",testId:"switch-event-prMerged",checked:eB.prMerged,onChange:e=>{let t={...eB,prMerged:e};eH(t),S(e8({events:t}))}}),(0,t.jsx)(tX,{label:m("settings.notifications.events.prClosed"),id:"notif-event-prClosed",testId:"switch-event-prClosed",checked:eB.prClosed,onChange:e=>{let t={...eB,prClosed:e};eH(t),S(e8({events:t}))}}),(0,t.jsx)(tX,{label:m("settings.notifications.events.prChecksPassed"),id:"notif-event-prChecksPassed",testId:"switch-event-prChecksPassed",checked:eB.prChecksPassed,onChange:e=>{let t={...eB,prChecksPassed:e};eH(t),S(e8({events:t}))}}),(0,t.jsx)(tX,{label:m("settings.notifications.events.prChecksFailed"),id:"notif-event-prChecksFailed",testId:"switch-event-prChecksFailed",checked:eB.prChecksFailed,onChange:e=>{let t={...eB,prChecksFailed:e};eH(t),S(e8({events:t}))}}),(0,t.jsx)(tX,{label:m("settings.notifications.events.prBlocked"),id:"notif-event-prBlocked",testId:"switch-event-prBlocked",checked:eB.prBlocked,onChange:e=>{let t={...eB,prBlocked:e};eH(t),S(e8({events:t}))}}),(0,t.jsx)(tX,{label:m("settings.notifications.events.mergeReviewReady"),id:"notif-event-mergeReviewReady",testId:"switch-event-mergeReviewReady",checked:eB.mergeReviewReady,onChange:e=>{let t={...eB,mergeReviewReady:e};eH(t),S(e8({events:t}))}})]}),(0,t.jsx)(t1,{links:[{label:m("settings.notifications.links.notificationSystem"),href:"https://github.com/shep-ai/shep/blob/main/specs/021-agent-notifications/spec.yaml"}],children:m("settings.notifications.hint")})]}),(0,t.jsxs)("div",{id:"section-feature-flags",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(tJ,{icon:d,title:m("settings.featureFlags.title"),description:m("settings.featureFlags.sectionDescription"),badge:m("settings.featureFlags.badge"),testId:"feature-flags-settings-section",children:[(0,t.jsx)(tX,{label:m("settings.featureFlags.skills"),description:m("settings.featureFlags.skillsDescription"),id:"flag-skills",testId:"switch-flag-skills",checked:ez.skills,onChange:e=>{let t={...ez,skills:e};e_(t),S({featureFlags:t})}}),(0,t.jsx)(tX,{label:m("settings.featureFlags.deployments"),description:m("settings.featureFlags.deploymentsDescription"),id:"flag-envDeploy",testId:"switch-flag-envDeploy",checked:ez.envDeploy,onChange:e=>{let t={...ez,envDeploy:e};e_(t),S({featureFlags:t})}}),(0,t.jsx)(tX,{label:m("settings.featureFlags.debug"),description:m("settings.featureFlags.debugDescription"),id:"flag-debug",testId:"switch-flag-debug",checked:ez.debug,onChange:e=>{let t={...ez,debug:e};e_(t),S({featureFlags:t})}}),(0,t.jsx)(tX,{label:m("settings.featureFlags.githubImport"),description:m("settings.featureFlags.githubImportDescription"),id:"flag-githubImport",testId:"switch-flag-githubImport",checked:ez.githubImport,onChange:e=>{let t={...ez,githubImport:e};e_(t),S({featureFlags:t})}}),(0,t.jsx)(tX,{label:m("settings.featureFlags.adoptBranch"),description:m("settings.featureFlags.adoptBranchDescription"),id:"flag-adoptBranch",testId:"switch-flag-adoptBranch",checked:ez.adoptBranch,onChange:e=>{let t={...ez,adoptBranch:e};e_(t),S({featureFlags:t})}}),(0,t.jsx)(tX,{label:m("settings.featureFlags.gitRebaseSync"),description:m("settings.featureFlags.gitRebaseSyncDescription"),id:"flag-gitRebaseSync",testId:"switch-flag-gitRebaseSync",checked:ez.gitRebaseSync,onChange:e=>{let t={...ez,gitRebaseSync:e};e_(t),S({featureFlags:t})}}),(0,t.jsx)(tX,{label:m("settings.featureFlags.reactFileManager"),description:m("settings.featureFlags.reactFileManagerDescription"),id:"flag-reactFileManager",testId:"switch-flag-reactFileManager",checked:ez.reactFileManager,onChange:e=>{let t={...ez,reactFileManager:e};e_(t),S({featureFlags:t})}})]}),(0,t.jsx)(t1,{children:m("settings.featureFlags.hint")})]}),(0,t.jsxs)("div",{id:"section-interactive-agent",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(tJ,{icon:x.MessageSquare,title:m("settings.interactiveAgent.title"),description:m("settings.interactiveAgent.description"),testId:"interactive-agent-settings-section",children:[(0,t.jsx)(tX,{label:m("settings.interactiveAgent.enableChatTab"),description:m("settings.interactiveAgent.enableChatTabDescription"),id:"interactive-agent-enabled",testId:"switch-interactive-agent-enabled",checked:eT,onChange:e=>{eE(e),S({interactiveAgent:{enabled:e,autoTimeoutMinutes:parseInt(eP,10)||15,maxConcurrentSessions:parseInt(eR,10)||3}})}}),(0,t.jsx)(tZ,{label:m("settings.interactiveAgent.autoTimeout"),description:m("settings.interactiveAgent.autoTimeoutDescription"),htmlFor:"interactive-agent-timeout",children:(0,t.jsx)(tQ,{id:"interactive-agent-timeout",testId:"input-interactive-agent-timeout",value:eP,placeholder:"15",min:1,max:120,suffix:"min",onChange:eD,onBlur:()=>{let e=parseInt(eP,10),t=Number.isNaN(e)?15:Math.min(120,Math.max(1,e));eD(String(t)),S({interactiveAgent:{enabled:eT,autoTimeoutMinutes:t,maxConcurrentSessions:parseInt(eR,10)||3}})}})}),(0,t.jsx)(tZ,{label:m("settings.interactiveAgent.maxConcurrentSessions"),description:m("settings.interactiveAgent.maxConcurrentSessionsDescription"),htmlFor:"interactive-agent-sessions",children:(0,t.jsx)(tQ,{id:"interactive-agent-sessions",testId:"input-interactive-agent-sessions",value:eR,placeholder:"3",min:1,max:10,onChange:eA,onBlur:()=>{let e=parseInt(eR,10),t=Number.isNaN(e)?3:Math.min(10,Math.max(1,e));eA(String(t)),S({interactiveAgent:{enabled:eT,autoTimeoutMinutes:parseInt(eP,10)||15,maxConcurrentSessions:t}})}})})]}),(0,t.jsx)(t1,{children:m("settings.interactiveAgent.hint")})]}),(0,t.jsxs)("div",{id:"section-database",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(tJ,{icon:u,title:m("settings.database.title"),description:m("settings.database.sectionDescription"),testId:"database-settings-section",children:[(0,t.jsx)(tZ,{label:m("settings.database.location"),description:m("settings.database.locationDescription"),children:(0,t.jsx)("span",{className:"text-muted-foreground max-w-50 truncate font-mono text-xs","data-testid":"shep-home-path",children:l})}),(0,t.jsx)(tZ,{label:m("settings.database.size"),children:(0,t.jsx)("span",{className:"text-muted-foreground text-xs","data-testid":"db-file-size",children:p})})]}),(0,t.jsx)(t1,{links:[{label:m("settings.database.links.settingsService"),href:"https://github.com/shep-ai/shep/blob/main/docs/architecture/settings-service.md"},{label:m("settings.database.links.settingsSpec"),href:"https://github.com/shep-ai/shep/blob/main/specs/005-global-settings-service/spec.md"}],children:m("settings.database.hint")})]})]})]})}e.s(["SettingsPageClient",()=>t2],41952)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,956,e=>{"use strict";var t=e.i(20314),a=e.i(79054),r=e.i(31777);let s=a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("bg-card text-card-foreground rounded-xl border shadow",e),...a}));s.displayName="Card";let i=a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("flex flex-col space-y-1.5 p-6",e),...a}));i.displayName="CardHeader";let d=a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("leading-none font-semibold tracking-tight",e),...a}));d.displayName="CardTitle";let c=a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("text-muted-foreground text-sm",e),...a}));c.displayName="CardDescription";let n=a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("p-6 pt-0",e),...a}));n.displayName="CardContent",a.forwardRef(({className:e,...a},s)=>(0,t.jsx)("div",{ref:s,className:(0,r.cn)("flex items-center p-6 pt-0",e),...a})).displayName="CardFooter",e.s(["Card",()=>s,"CardContent",()=>n,"CardDescription",()=>c,"CardHeader",()=>i,"CardTitle",()=>d])},10714,e=>{"use strict";let t=(0,e.i(3645).default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);e.s(["default",()=>t])},3214,e=>{"use strict";let t=(0,e.i(3645).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>t],3214)},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},49228,e=>{"use strict";let t=(0,e.i(3645).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",()=>t],49228)},23405,e=>{"use strict";var t=e.i(79054);function a(e){let a=t.useRef({value:e,previous:e});return t.useMemo(()=>(a.current.value!==e&&(a.current.previous=a.current.value,a.current.value=e),a.current.previous),[e])}e.s(["usePrevious",()=>a])},58860,44229,e=>{"use strict";let t=(0,e.i(3645).default)("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);e.s(["Timer",()=>t],58860);var a=e.i(93752);e.s(["Code",()=>a.default],44229)},83902,e=>{"use strict";let t=(0,e.i(3645).default)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);e.s(["Rocket",()=>t],83902)},51911,e=>{"use strict";var t=e.i(20314),a=e.i(79054),r=e.i(91967),s=e.i(5978),i=e.i(22528),d=e.i(36589),c=e.i(23405),n=e.i(77624),l=e.i(87620),o="Switch",[u,p]=(0,i.createContextScope)(o),[f,h]=u(o),m=a.forwardRef((e,i)=>{let{__scopeSwitch:c,name:n,checked:u,defaultChecked:p,required:h,disabled:m,value:y="on",onCheckedChange:k,form:v,...g}=e,[w,C]=a.useState(null),R=(0,s.useComposedRefs)(i,e=>C(e)),N=a.useRef(!1),j=!w||v||!!w.closest("form"),[S,z]=(0,d.useControllableState)({prop:u,defaultProp:p??!1,onChange:k,caller:o});return(0,t.jsxs)(f,{scope:c,checked:S,disabled:m,children:[(0,t.jsx)(l.Primitive.button,{type:"button",role:"switch","aria-checked":S,"aria-required":h,"data-state":x(S),"data-disabled":m?"":void 0,disabled:m,value:y,...g,ref:R,onClick:(0,r.composeEventHandlers)(e.onClick,e=>{z(e=>!e),j&&(N.current=e.isPropagationStopped(),N.current||e.stopPropagation())})}),j&&(0,t.jsx)(b,{control:w,bubbles:!N.current,name:n,value:y,checked:S,required:h,disabled:m,form:v,style:{transform:"translateX(-100%)"}})]})});m.displayName=o;var y="SwitchThumb",k=a.forwardRef((e,a)=>{let{__scopeSwitch:r,...s}=e,i=h(y,r);return(0,t.jsx)(l.Primitive.span,{"data-state":x(i.checked),"data-disabled":i.disabled?"":void 0,...s,ref:a})});k.displayName=y;var b=a.forwardRef(({__scopeSwitch:e,control:r,checked:i,bubbles:d=!0,...l},o)=>{let u=a.useRef(null),p=(0,s.useComposedRefs)(u,o),f=(0,c.usePrevious)(i),h=(0,n.useSize)(r);return a.useEffect(()=>{let e=u.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(f!==i&&t){let a=new Event("click",{bubbles:d});t.call(e,i),e.dispatchEvent(a)}},[f,i,d]),(0,t.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:i,...l,tabIndex:-1,ref:p,style:{...l.style,...h,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function x(e){return e?"checked":"unchecked"}b.displayName="SwitchBubbleInput",e.s(["Root",()=>m,"Switch",()=>m,"SwitchThumb",()=>k,"Thumb",()=>k,"createSwitchScope",()=>p],95291);var v=e.i(95291),v=v,g=e.i(31777);function w({className:e,size:a="default",...r}){return(0,t.jsx)(v.Root,{"data-slot":"switch","data-size":a,className:(0,g.cn)("peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6",e),...r,children:(0,t.jsx)(v.Thumb,{"data-slot":"switch-thumb",className:(0,g.cn)("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 rtl:data-[state=checked]:-translate-x-[calc(100%-2px)]")})})}e.s(["Switch",()=>w],51911)}]);