@shepai/cli 1.136.0-pr440.bb6800a → 1.136.0-pr441.5eaafd1

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 (552) hide show
  1. package/apis/json-schema/Feature.yaml +0 -3
  2. package/apis/json-schema/FeatureFlags.yaml +5 -0
  3. package/apis/json-schema/NotificationEventConfig.yaml +15 -0
  4. package/apis/json-schema/NotificationEventType.yaml +3 -0
  5. package/apis/json-schema/ScheduledWorkflow.yaml +46 -0
  6. package/apis/json-schema/SdlcLifecycle.yaml +0 -1
  7. package/apis/json-schema/WorkflowExecution.yaml +38 -0
  8. package/apis/json-schema/WorkflowExecutionStatus.yaml +10 -0
  9. package/apis/json-schema/WorkflowTriggerType.yaml +7 -0
  10. package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.d.ts +0 -2
  11. package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.d.ts.map +1 -1
  12. package/dist/packages/core/src/application/ports/output/repositories/index.d.ts +2 -0
  13. package/dist/packages/core/src/application/ports/output/repositories/index.d.ts.map +1 -1
  14. package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.d.ts +66 -0
  15. package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.d.ts.map +1 -0
  16. package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.js +11 -0
  17. package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.d.ts +81 -0
  18. package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.d.ts.map +1 -0
  19. package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.js +11 -0
  20. package/dist/packages/core/src/application/ports/output/services/clock.interface.d.ts +28 -0
  21. package/dist/packages/core/src/application/ports/output/services/clock.interface.d.ts.map +1 -0
  22. package/dist/packages/core/src/application/ports/output/services/clock.interface.js +13 -0
  23. package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -0
  24. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  25. package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.d.ts +28 -0
  26. package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.d.ts.map +1 -0
  27. package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.js +72 -0
  28. package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.d.ts +27 -0
  29. package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.d.ts.map +1 -0
  30. package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.js +43 -0
  31. package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.d.ts +18 -0
  32. package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.d.ts.map +1 -0
  33. package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.js +64 -0
  34. package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.d.ts +16 -0
  35. package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.d.ts.map +1 -0
  36. package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.js +46 -0
  37. package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.d.ts +13 -0
  38. package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.d.ts.map +1 -0
  39. package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.js +42 -0
  40. package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.d.ts +13 -0
  41. package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.d.ts.map +1 -0
  42. package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.js +33 -0
  43. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts +19 -0
  44. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts.map +1 -0
  45. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.js +62 -0
  46. package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.d.ts +22 -0
  47. package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.d.ts.map +1 -0
  48. package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.js +73 -0
  49. package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.d.ts +9 -0
  50. package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.d.ts.map +1 -0
  51. package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.js +27 -0
  52. package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.d.ts +11 -0
  53. package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.d.ts.map +1 -0
  54. package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.js +27 -0
  55. package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.d.ts +16 -0
  56. package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.d.ts.map +1 -0
  57. package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.js +60 -0
  58. package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.d.ts +25 -0
  59. package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.d.ts.map +1 -0
  60. package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.js +83 -0
  61. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  62. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +4 -0
  63. package/dist/packages/core/src/domain/generated/output.d.ts +115 -7
  64. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  65. package/dist/packages/core/src/domain/generated/output.js +16 -1
  66. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  67. package/dist/packages/core/src/infrastructure/di/container.js +66 -10
  68. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +0 -1
  69. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  70. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +0 -6
  71. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +4 -0
  72. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  73. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +8 -0
  74. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.d.ts +46 -0
  75. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.d.ts.map +1 -0
  76. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.js +57 -0
  77. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.d.ts +51 -0
  78. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.d.ts.map +1 -0
  79. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.js +71 -0
  80. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.d.ts +12 -0
  81. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.d.ts.map +1 -0
  82. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.js +22 -0
  83. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.d.ts +14 -0
  84. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.d.ts.map +1 -0
  85. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.js +65 -0
  86. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.d.ts +11 -0
  87. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.d.ts.map +1 -0
  88. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.js +17 -0
  89. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  90. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +2 -7
  91. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.d.ts +24 -0
  92. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.d.ts.map +1 -0
  93. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.js +92 -0
  94. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.d.ts +26 -0
  95. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.d.ts.map +1 -0
  96. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.js +117 -0
  97. package/dist/packages/core/src/infrastructure/services/clock.d.ts +11 -0
  98. package/dist/packages/core/src/infrastructure/services/clock.d.ts.map +1 -0
  99. package/dist/packages/core/src/infrastructure/services/clock.js +22 -0
  100. package/dist/packages/core/src/infrastructure/services/notifications/notification.service.d.ts.map +1 -1
  101. package/dist/packages/core/src/infrastructure/services/notifications/notification.service.js +3 -0
  102. package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.d.ts +69 -0
  103. package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.d.ts.map +1 -0
  104. package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.js +270 -0
  105. package/dist/src/presentation/cli/commands/_serve.command.d.ts.map +1 -1
  106. package/dist/src/presentation/cli/commands/_serve.command.js +14 -0
  107. package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
  108. package/dist/src/presentation/cli/commands/feat/index.js +1 -5
  109. package/dist/src/presentation/cli/commands/feat/ls.command.d.ts.map +1 -1
  110. package/dist/src/presentation/cli/commands/feat/ls.command.js +0 -5
  111. package/dist/src/presentation/cli/commands/workflow/create.command.d.ts +13 -0
  112. package/dist/src/presentation/cli/commands/workflow/create.command.d.ts.map +1 -0
  113. package/dist/src/presentation/cli/commands/workflow/create.command.js +83 -0
  114. package/dist/src/presentation/cli/commands/workflow/delete.command.d.ts +13 -0
  115. package/dist/src/presentation/cli/commands/workflow/delete.command.d.ts.map +1 -0
  116. package/dist/src/presentation/cli/commands/workflow/delete.command.js +50 -0
  117. package/dist/src/presentation/cli/commands/workflow/disable.command.d.ts +11 -0
  118. package/dist/src/presentation/cli/commands/workflow/disable.command.d.ts.map +1 -0
  119. package/dist/src/presentation/cli/commands/workflow/disable.command.js +32 -0
  120. package/dist/src/presentation/cli/commands/workflow/enable.command.d.ts +11 -0
  121. package/dist/src/presentation/cli/commands/workflow/enable.command.d.ts.map +1 -0
  122. package/dist/src/presentation/cli/commands/workflow/enable.command.js +35 -0
  123. package/dist/src/presentation/cli/commands/workflow/format-helpers.d.ts +35 -0
  124. package/dist/src/presentation/cli/commands/workflow/format-helpers.d.ts.map +1 -0
  125. package/dist/src/presentation/cli/commands/workflow/format-helpers.js +89 -0
  126. package/dist/src/presentation/cli/commands/workflow/history.command.d.ts +12 -0
  127. package/dist/src/presentation/cli/commands/workflow/history.command.d.ts.map +1 -0
  128. package/dist/src/presentation/cli/commands/workflow/history.command.js +46 -0
  129. package/dist/src/presentation/cli/commands/workflow/index.d.ts +26 -0
  130. package/dist/src/presentation/cli/commands/workflow/index.d.ts.map +1 -0
  131. package/dist/src/presentation/cli/commands/workflow/index.js +48 -0
  132. package/dist/src/presentation/cli/commands/workflow/list.command.d.ts +11 -0
  133. package/dist/src/presentation/cli/commands/workflow/list.command.d.ts.map +1 -0
  134. package/dist/src/presentation/cli/commands/workflow/list.command.js +52 -0
  135. package/dist/src/presentation/cli/commands/workflow/run.command.d.ts +11 -0
  136. package/dist/src/presentation/cli/commands/workflow/run.command.d.ts.map +1 -0
  137. package/dist/src/presentation/cli/commands/workflow/run.command.js +37 -0
  138. package/dist/src/presentation/cli/commands/workflow/schedule.command.d.ts +13 -0
  139. package/dist/src/presentation/cli/commands/workflow/schedule.command.d.ts.map +1 -0
  140. package/dist/src/presentation/cli/commands/workflow/schedule.command.js +76 -0
  141. package/dist/src/presentation/cli/commands/workflow/show.command.d.ts +11 -0
  142. package/dist/src/presentation/cli/commands/workflow/show.command.d.ts.map +1 -0
  143. package/dist/src/presentation/cli/commands/workflow/show.command.js +93 -0
  144. package/dist/src/presentation/cli/commands/workflow/update.command.d.ts +13 -0
  145. package/dist/src/presentation/cli/commands/workflow/update.command.d.ts.map +1 -0
  146. package/dist/src/presentation/cli/commands/workflow/update.command.js +67 -0
  147. package/dist/src/presentation/cli/index.js +2 -0
  148. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
  149. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +1 -6
  150. package/dist/src/presentation/web/app/actions/get-workflow-history.d.ts +7 -0
  151. package/dist/src/presentation/web/app/actions/get-workflow-history.d.ts.map +1 -0
  152. package/dist/src/presentation/web/app/actions/get-workflow-history.js +17 -0
  153. package/dist/src/presentation/web/app/actions/list-workflows.d.ts +7 -0
  154. package/dist/src/presentation/web/app/actions/list-workflows.d.ts.map +1 -0
  155. package/dist/src/presentation/web/app/actions/list-workflows.js +17 -0
  156. package/dist/src/presentation/web/app/actions/toggle-workflow.d.ts +8 -0
  157. package/dist/src/presentation/web/app/actions/toggle-workflow.d.ts.map +1 -0
  158. package/dist/src/presentation/web/app/actions/toggle-workflow.js +19 -0
  159. package/dist/src/presentation/web/app/actions/trigger-workflow.d.ts +8 -0
  160. package/dist/src/presentation/web/app/actions/trigger-workflow.d.ts.map +1 -0
  161. package/dist/src/presentation/web/app/actions/trigger-workflow.js +19 -0
  162. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  163. package/dist/src/presentation/web/app/api/agent-events/route.js +0 -1
  164. package/dist/src/presentation/web/app/workflows/page.d.ts +4 -0
  165. package/dist/src/presentation/web/app/workflows/page.d.ts.map +1 -0
  166. package/dist/src/presentation/web/app/workflows/page.js +18 -0
  167. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  168. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +4 -6
  169. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +1 -3
  170. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  171. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +1 -11
  172. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  173. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +2 -16
  174. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts +0 -5
  175. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
  176. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +1 -75
  177. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  178. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +4 -13
  179. package/dist/src/presentation/web/components/features/control-center/control-center.stories.d.ts +0 -6
  180. package/dist/src/presentation/web/components/features/control-center/control-center.stories.d.ts.map +1 -1
  181. package/dist/src/presentation/web/components/features/control-center/control-center.stories.js +0 -70
  182. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +0 -6
  183. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  184. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +2 -43
  185. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
  186. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +3 -0
  187. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
  188. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +3 -0
  189. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts.map +1 -1
  190. package/dist/src/presentation/web/components/features/settings/notification-settings-section.js +6 -1
  191. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts.map +1 -1
  192. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.js +6 -0
  193. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  194. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +19 -2
  195. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  196. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +1 -0
  197. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.d.ts +7 -0
  198. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.d.ts.map +1 -0
  199. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.js +84 -0
  200. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.d.ts +11 -0
  201. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.d.ts.map +1 -0
  202. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.js +104 -0
  203. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.d.ts +8 -0
  204. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.d.ts.map +1 -0
  205. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.js +68 -0
  206. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.d.ts +11 -0
  207. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.d.ts.map +1 -0
  208. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.js +89 -0
  209. package/dist/src/presentation/web/components/features/workflows/workflow-list.d.ts +8 -0
  210. package/dist/src/presentation/web/components/features/workflows/workflow-list.d.ts.map +1 -0
  211. package/dist/src/presentation/web/components/features/workflows/workflow-list.js +10 -0
  212. package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.d.ts +11 -0
  213. package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.d.ts.map +1 -0
  214. package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.js +90 -0
  215. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.d.ts +6 -0
  216. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.d.ts.map +1 -0
  217. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.js +14 -0
  218. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.d.ts +10 -0
  219. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.d.ts.map +1 -0
  220. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.js +70 -0
  221. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  222. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  223. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
  224. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +1 -0
  225. package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
  226. package/dist/src/presentation/web/hooks/feature-flags-context.js +1 -0
  227. package/dist/src/presentation/web/hooks/sidebar-features-context.d.ts.map +1 -1
  228. package/dist/src/presentation/web/hooks/sidebar-features-context.js +0 -1
  229. package/dist/src/presentation/web/hooks/use-graph-state.d.ts +1 -1
  230. package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
  231. package/dist/src/presentation/web/hooks/use-graph-state.js +2 -17
  232. package/dist/src/presentation/web/lib/derive-graph.d.ts +0 -4
  233. package/dist/src/presentation/web/lib/derive-graph.d.ts.map +1 -1
  234. package/dist/src/presentation/web/lib/derive-graph.js +0 -12
  235. package/dist/src/presentation/web/lib/feature-flags.d.ts +2 -0
  236. package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
  237. package/dist/src/presentation/web/lib/feature-flags.js +5 -0
  238. package/dist/tsconfig.build.tsbuildinfo +1 -1
  239. package/package.json +2 -1
  240. package/web/.next/BUILD_ID +1 -1
  241. package/web/.next/app-path-routes-manifest.json +2 -1
  242. package/web/.next/build-manifest.json +2 -2
  243. package/web/.next/fallback-build-manifest.json +2 -2
  244. package/web/.next/prerender-manifest.json +3 -3
  245. package/web/.next/required-server-files.js +1 -1
  246. package/web/.next/required-server-files.json +1 -1
  247. package/web/.next/routes-manifest.json +6 -0
  248. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +50 -80
  249. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +3 -3
  250. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  251. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  252. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +50 -80
  253. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +3 -3
  254. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  255. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  256. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +62 -92
  257. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +3 -3
  258. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  259. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  260. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +62 -92
  261. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +3 -3
  262. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  263. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  264. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +46 -76
  265. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +3 -3
  266. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  267. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  268. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +50 -80
  269. package/web/.next/server/app/(dashboard)/create/page.js +3 -3
  270. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  271. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  272. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +62 -92
  273. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +3 -3
  274. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  275. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  276. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +62 -92
  277. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +3 -3
  278. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  279. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  280. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +46 -76
  281. package/web/.next/server/app/(dashboard)/page.js +3 -3
  282. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  283. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  284. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +46 -76
  285. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +3 -3
  286. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  287. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  288. package/web/.next/server/app/_global-error.html +2 -2
  289. package/web/.next/server/app/_global-error.rsc +1 -1
  290. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  291. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  292. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  293. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  294. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  295. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +3 -3
  296. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  297. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  298. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  299. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  300. package/web/.next/server/app/api/feature-logs/route.js +1 -1
  301. package/web/.next/server/app/api/feature-logs/route.js.nft.json +1 -1
  302. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  303. package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  304. package/web/.next/server/app/settings/page.js +2 -2
  305. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  306. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  307. package/web/.next/server/app/skills/page/server-reference-manifest.json +8 -8
  308. package/web/.next/server/app/skills/page.js +1 -1
  309. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  310. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  311. package/web/.next/server/app/tools/page/server-reference-manifest.json +8 -8
  312. package/web/.next/server/app/tools/page.js +1 -1
  313. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  314. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  315. package/web/.next/server/app/version/page/server-reference-manifest.json +3 -3
  316. package/web/.next/server/app/version/page.js.nft.json +1 -1
  317. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  318. package/web/.next/server/app/workflows/page/app-paths-manifest.json +3 -0
  319. package/web/.next/server/app/workflows/page/build-manifest.json +18 -0
  320. package/web/.next/server/app/workflows/page/next-font-manifest.json +6 -0
  321. package/web/.next/server/app/workflows/page/react-loadable-manifest.json +8 -0
  322. package/web/.next/server/app/workflows/page/server-reference-manifest.json +110 -0
  323. package/web/.next/server/app/workflows/page.js +18 -0
  324. package/web/.next/server/app/workflows/page.js.map +5 -0
  325. package/web/.next/server/app/workflows/page.js.nft.json +1 -0
  326. package/web/.next/server/app/workflows/page_client-reference-manifest.js +2 -0
  327. package/web/.next/server/app-paths-manifest.json +2 -1
  328. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  329. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  330. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +2 -2
  331. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  332. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  333. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js +1 -1
  334. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js.map +1 -1
  335. package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js → [root-of-the-server]__c7d52490._.js} +2 -2
  336. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  337. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  338. package/web/.next/server/chunks/ssr/{_02ec1aea._.js → 403f9_next_53742624._.js} +2 -2
  339. package/web/.next/server/chunks/ssr/403f9_next_53742624._.js.map +1 -0
  340. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_b49d9c97.js +3 -0
  341. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_b49d9c97.js.map +1 -0
  342. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  343. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  344. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_0c7787d0._.js +3 -0
  345. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_0c7787d0._.js.map +1 -0
  346. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_28632197.js +3 -0
  347. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_28632197.js.map +1 -0
  348. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_10695d37.js +3 -0
  349. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_10695d37.js.map +1 -0
  350. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a5f9c6e5._.js → [root-of-the-server]__07f12984._.js} +3 -3
  351. package/web/.next/server/chunks/ssr/[root-of-the-server]__07f12984._.js.map +1 -0
  352. package/web/.next/server/chunks/ssr/[root-of-the-server]__082758f6._.js +3 -0
  353. package/web/.next/server/chunks/ssr/[root-of-the-server]__082758f6._.js.map +1 -0
  354. package/web/.next/server/chunks/ssr/[root-of-the-server]__32cd6108._.js +3 -0
  355. package/web/.next/server/chunks/ssr/[root-of-the-server]__32cd6108._.js.map +1 -0
  356. package/web/.next/server/chunks/ssr/[root-of-the-server]__33ac1a70._.js +3 -0
  357. package/web/.next/server/chunks/ssr/[root-of-the-server]__33ac1a70._.js.map +1 -0
  358. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  359. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
  360. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
  361. package/web/.next/server/chunks/ssr/[root-of-the-server]__44358910._.js +4 -0
  362. package/web/.next/server/chunks/ssr/[root-of-the-server]__44358910._.js.map +1 -0
  363. package/web/.next/server/chunks/ssr/[root-of-the-server]__47ded061._.js +3 -0
  364. package/web/.next/server/chunks/ssr/[root-of-the-server]__47ded061._.js.map +1 -0
  365. package/web/.next/server/chunks/ssr/{[root-of-the-server]__3ef34e4c._.js → [root-of-the-server]__57e0ee34._.js} +3 -3
  366. package/web/.next/server/chunks/ssr/[root-of-the-server]__57e0ee34._.js.map +1 -0
  367. package/web/.next/server/chunks/ssr/[root-of-the-server]__68ce373c._.js +3 -0
  368. package/web/.next/server/chunks/ssr/[root-of-the-server]__68ce373c._.js.map +1 -0
  369. package/web/.next/server/chunks/ssr/[root-of-the-server]__6e93b49c._.js +3 -0
  370. package/web/.next/server/chunks/ssr/{[root-of-the-server]__b3dbadca._.js.map → [root-of-the-server]__6e93b49c._.js.map} +1 -1
  371. package/web/.next/server/chunks/ssr/[root-of-the-server]__718766da._.js +3 -0
  372. package/web/.next/server/chunks/ssr/[root-of-the-server]__718766da._.js.map +1 -0
  373. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
  374. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
  375. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  376. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  377. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdd058b2._.js +3 -0
  378. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdd058b2._.js.map +1 -0
  379. package/web/.next/server/chunks/ssr/_20a4a0d5._.js +3 -0
  380. package/web/.next/server/chunks/ssr/_20a4a0d5._.js.map +1 -0
  381. package/web/.next/server/chunks/ssr/_25555eb5._.js +3 -0
  382. package/web/.next/server/chunks/ssr/_25555eb5._.js.map +1 -0
  383. package/web/.next/server/chunks/ssr/{_b5fc318a._.js → _277acdde._.js} +2 -2
  384. package/web/.next/server/chunks/ssr/_277acdde._.js.map +1 -0
  385. package/web/.next/server/chunks/ssr/_4711e8cf._.js +3 -0
  386. package/web/.next/server/chunks/ssr/_4711e8cf._.js.map +1 -0
  387. package/web/.next/server/chunks/ssr/{_a9f57758._.js → _6701ee41._.js} +2 -2
  388. package/web/.next/server/chunks/ssr/{_a9f57758._.js.map → _6701ee41._.js.map} +1 -1
  389. package/web/.next/server/chunks/ssr/_89a36303._.js +3 -0
  390. package/web/.next/server/chunks/ssr/_89a36303._.js.map +1 -0
  391. package/web/.next/server/chunks/ssr/_8e8cd7e1._.js +4 -0
  392. package/web/.next/server/chunks/ssr/_8e8cd7e1._.js.map +1 -0
  393. package/web/.next/server/chunks/ssr/_9869d3da._.js +3 -0
  394. package/web/.next/server/chunks/ssr/_9869d3da._.js.map +1 -0
  395. package/web/.next/server/chunks/ssr/{_0020fddd._.js → _a3721140._.js} +2 -2
  396. package/web/.next/server/chunks/ssr/_a3721140._.js.map +1 -0
  397. package/web/.next/server/chunks/ssr/_a37f5f18._.js +1 -1
  398. package/web/.next/server/chunks/ssr/_a37f5f18._.js.map +1 -1
  399. package/web/.next/server/chunks/ssr/_cc1243e6._.js +3 -0
  400. package/web/.next/server/chunks/ssr/_cc1243e6._.js.map +1 -0
  401. package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
  402. package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
  403. package/web/.next/server/chunks/ssr/_e3411387._.js +9 -0
  404. package/web/.next/server/chunks/ssr/_e3411387._.js.map +1 -0
  405. package/web/.next/server/chunks/ssr/_e69a26ba._.js +4 -0
  406. package/web/.next/server/chunks/ssr/_e69a26ba._.js.map +1 -0
  407. package/web/.next/server/chunks/ssr/_f64ffec0._.js +4 -0
  408. package/web/.next/server/chunks/ssr/_f64ffec0._.js.map +1 -0
  409. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  410. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  411. package/web/.next/server/chunks/ssr/{_1b7dae9a._.js → f7870_sonner_dist_index_mjs_dbf63824._.js} +2 -2
  412. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +1 -0
  413. package/web/.next/server/chunks/ssr/node_modules__pnpm_28388798._.js +3 -0
  414. package/web/.next/server/chunks/ssr/node_modules__pnpm_28388798._.js.map +1 -0
  415. package/web/.next/server/chunks/ssr/node_modules__pnpm_ae1705ef._.js +3 -0
  416. package/web/.next/server/chunks/ssr/node_modules__pnpm_ae1705ef._.js.map +1 -0
  417. package/web/.next/server/chunks/ssr/src_presentation_web_53666118._.js +5 -0
  418. package/web/.next/server/chunks/ssr/src_presentation_web_53666118._.js.map +1 -0
  419. package/web/.next/server/chunks/ssr/src_presentation_web_53fa3010._.js +3 -0
  420. package/web/.next/server/chunks/ssr/{src_presentation_web_97dc2fb0._.js.map → src_presentation_web_53fa3010._.js.map} +1 -1
  421. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_d95e128d.js +3 -0
  422. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_d95e128d.js.map +1 -0
  423. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
  424. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
  425. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
  426. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
  427. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  428. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  429. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  430. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  431. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  432. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  433. package/web/.next/server/chunks/ssr/src_presentation_web_e4df6dd7._.js +5 -0
  434. package/web/.next/server/chunks/ssr/src_presentation_web_e4df6dd7._.js.map +1 -0
  435. package/web/.next/server/pages/500.html +2 -2
  436. package/web/.next/server/server-reference-manifest.js +1 -1
  437. package/web/.next/server/server-reference-manifest.json +391 -466
  438. package/web/.next/static/chunks/{791e64500a080d4f.js → 196650f8cd7fb06a.js} +1 -1
  439. package/web/.next/static/chunks/2002f5eec5ffec42.css +1 -0
  440. package/web/.next/static/chunks/2c1ff62df9b34313.js +1 -0
  441. package/web/.next/static/chunks/3005583e819fc4fc.js +1 -0
  442. package/web/.next/static/chunks/333c7873f6b17ef1.js +1 -0
  443. package/web/.next/static/chunks/3b3f8c4f6c36a7ba.js +1 -0
  444. package/web/.next/static/chunks/{672e3da3ad26005b.js → 42c9564e375717ed.js} +1 -1
  445. package/web/.next/static/chunks/43e0eea352eb5106.js +5 -0
  446. package/web/.next/static/chunks/5420560352333486.js +1 -0
  447. package/web/.next/static/chunks/62fa33876b0964a4.js +1 -0
  448. package/web/.next/static/chunks/6db2addb5e13e372.js +1 -0
  449. package/web/.next/static/chunks/886d0385ca1d4484.js +1 -0
  450. package/web/.next/static/chunks/8e52a649c3f6bdf4.js +1 -0
  451. package/web/.next/static/chunks/a02fc9467a585a1f.js +2 -0
  452. package/web/.next/static/chunks/bee578019062e7f9.js +2 -0
  453. package/web/.next/static/chunks/cdb51cfd682387d2.js +1 -0
  454. package/web/.next/static/chunks/ed35b4293a81c861.js +9 -0
  455. package/web/.next/static/chunks/ed7fbcdf0b48e735.js +1 -0
  456. package/web/.next/static/chunks/f75142a1b75f1c32.js +1 -0
  457. package/web/.next/static/chunks/fabcd29d488281fa.js +1 -0
  458. package/web/.next/static/chunks/fd925f996c3fa318.js +1 -0
  459. package/dist/packages/core/src/application/use-cases/features/archive-feature.use-case.d.ts +0 -20
  460. package/dist/packages/core/src/application/use-cases/features/archive-feature.use-case.d.ts.map +0 -1
  461. package/dist/packages/core/src/application/use-cases/features/archive-feature.use-case.js +0 -74
  462. package/dist/packages/core/src/application/use-cases/features/unarchive-feature.use-case.d.ts +0 -20
  463. package/dist/packages/core/src/application/use-cases/features/unarchive-feature.use-case.d.ts.map +0 -1
  464. package/dist/packages/core/src/application/use-cases/features/unarchive-feature.use-case.js +0 -65
  465. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-previous-lifecycle.d.ts +0 -12
  466. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-previous-lifecycle.d.ts.map +0 -1
  467. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-previous-lifecycle.js +0 -16
  468. package/dist/src/presentation/cli/commands/feat/archive.command.d.ts +0 -18
  469. package/dist/src/presentation/cli/commands/feat/archive.command.d.ts.map +0 -1
  470. package/dist/src/presentation/cli/commands/feat/archive.command.js +0 -54
  471. package/dist/src/presentation/cli/commands/feat/unarchive.command.d.ts +0 -17
  472. package/dist/src/presentation/cli/commands/feat/unarchive.command.d.ts.map +0 -1
  473. package/dist/src/presentation/cli/commands/feat/unarchive.command.js +0 -42
  474. package/dist/src/presentation/web/app/actions/archive-feature.d.ts +0 -6
  475. package/dist/src/presentation/web/app/actions/archive-feature.d.ts.map +0 -1
  476. package/dist/src/presentation/web/app/actions/archive-feature.js +0 -16
  477. package/dist/src/presentation/web/app/actions/unarchive-feature.d.ts +0 -6
  478. package/dist/src/presentation/web/app/actions/unarchive-feature.d.ts.map +0 -1
  479. package/dist/src/presentation/web/app/actions/unarchive-feature.js +0 -16
  480. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js +0 -3
  481. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js.map +0 -1
  482. package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js.map +0 -1
  483. package/web/.next/server/chunks/ssr/[root-of-the-server]__61564698._.js +0 -4
  484. package/web/.next/server/chunks/ssr/[root-of-the-server]__61564698._.js.map +0 -1
  485. package/web/.next/server/chunks/ssr/[root-of-the-server]__6ec59045._.js +0 -3
  486. package/web/.next/server/chunks/ssr/[root-of-the-server]__6ec59045._.js.map +0 -1
  487. package/web/.next/server/chunks/ssr/[root-of-the-server]__74ab160c._.js +0 -4
  488. package/web/.next/server/chunks/ssr/[root-of-the-server]__74ab160c._.js.map +0 -1
  489. package/web/.next/server/chunks/ssr/[root-of-the-server]__a5f9c6e5._.js.map +0 -1
  490. package/web/.next/server/chunks/ssr/[root-of-the-server]__b3dbadca._.js +0 -3
  491. package/web/.next/server/chunks/ssr/[root-of-the-server]__bd16cded._.js +0 -4
  492. package/web/.next/server/chunks/ssr/[root-of-the-server]__bd16cded._.js.map +0 -1
  493. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js +0 -3
  494. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js.map +0 -1
  495. package/web/.next/server/chunks/ssr/[root-of-the-server]__f14fffe1._.js +0 -4
  496. package/web/.next/server/chunks/ssr/[root-of-the-server]__f14fffe1._.js.map +0 -1
  497. package/web/.next/server/chunks/ssr/_0020fddd._.js.map +0 -1
  498. package/web/.next/server/chunks/ssr/_01046927._.js +0 -9
  499. package/web/.next/server/chunks/ssr/_01046927._.js.map +0 -1
  500. package/web/.next/server/chunks/ssr/_02ec1aea._.js.map +0 -1
  501. package/web/.next/server/chunks/ssr/_1b7dae9a._.js.map +0 -1
  502. package/web/.next/server/chunks/ssr/_2fdfd9ab._.js +0 -4
  503. package/web/.next/server/chunks/ssr/_2fdfd9ab._.js.map +0 -1
  504. package/web/.next/server/chunks/ssr/_36059d08._.js +0 -4
  505. package/web/.next/server/chunks/ssr/_36059d08._.js.map +0 -1
  506. package/web/.next/server/chunks/ssr/_65f6e0e0._.js +0 -6
  507. package/web/.next/server/chunks/ssr/_65f6e0e0._.js.map +0 -1
  508. package/web/.next/server/chunks/ssr/_67104d9e._.js +0 -3
  509. package/web/.next/server/chunks/ssr/_67104d9e._.js.map +0 -1
  510. package/web/.next/server/chunks/ssr/_7dca1882._.js +0 -3
  511. package/web/.next/server/chunks/ssr/_7dca1882._.js.map +0 -1
  512. package/web/.next/server/chunks/ssr/_913fb649._.js +0 -3
  513. package/web/.next/server/chunks/ssr/_913fb649._.js.map +0 -1
  514. package/web/.next/server/chunks/ssr/_a51673dd._.js +0 -4
  515. package/web/.next/server/chunks/ssr/_a51673dd._.js.map +0 -1
  516. package/web/.next/server/chunks/ssr/_ae587066._.js +0 -4
  517. package/web/.next/server/chunks/ssr/_ae587066._.js.map +0 -1
  518. package/web/.next/server/chunks/ssr/_b5fc318a._.js.map +0 -1
  519. package/web/.next/server/chunks/ssr/_d162e30d._.js +0 -4
  520. package/web/.next/server/chunks/ssr/_d162e30d._.js.map +0 -1
  521. package/web/.next/server/chunks/ssr/_d4b20e29._.js +0 -3
  522. package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +0 -1
  523. package/web/.next/server/chunks/ssr/_d763f022._.js +0 -6
  524. package/web/.next/server/chunks/ssr/_d763f022._.js.map +0 -1
  525. package/web/.next/server/chunks/ssr/_f39a1adb._.js +0 -3
  526. package/web/.next/server/chunks/ssr/_f39a1adb._.js.map +0 -1
  527. package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js +0 -3
  528. package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js.map +0 -1
  529. package/web/.next/server/chunks/ssr/src_presentation_web_97dc2fb0._.js +0 -3
  530. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +0 -3
  531. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +0 -1
  532. package/web/.next/static/chunks/0b7fe2ac4f078f54.js +0 -13
  533. package/web/.next/static/chunks/2d6eb4409cc6324d.js +0 -1
  534. package/web/.next/static/chunks/3a7ff215d6a2c489.js +0 -2
  535. package/web/.next/static/chunks/4b3e7454c2b07877.js +0 -1
  536. package/web/.next/static/chunks/601d93593f5f664f.js +0 -1
  537. package/web/.next/static/chunks/688971d5bad5dc7c.js +0 -1
  538. package/web/.next/static/chunks/79c9871d46b22bf8.css +0 -1
  539. package/web/.next/static/chunks/7ee0606f698b032c.js +0 -1
  540. package/web/.next/static/chunks/87640f53f3bff3a6.js +0 -1
  541. package/web/.next/static/chunks/b70dd4985a814b27.js +0 -1
  542. package/web/.next/static/chunks/bb5bd1b5aafc70cd.js +0 -1
  543. package/web/.next/static/chunks/bf0a401666f990e2.js +0 -1
  544. package/web/.next/static/chunks/c4c3fcf18262b386.js +0 -2
  545. package/web/.next/static/chunks/cd14232b3d8f5052.js +0 -1
  546. package/web/.next/static/chunks/d0dff217a94d4ee1.js +0 -1
  547. package/web/.next/static/chunks/dd8f2197640aea64.js +0 -1
  548. package/web/.next/static/chunks/fc442d957b35bd5e.js +0 -1
  549. /package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js.map → [root-of-the-server]__c7d52490._.js.map} +0 -0
  550. /package/web/.next/static/{JaRBeVSDLWZLQIl_k7ChK → w0YQoUPySQy1O9cN91KEk}/_buildManifest.js +0 -0
  551. /package/web/.next/static/{JaRBeVSDLWZLQIl_k7ChK → w0YQoUPySQy1O9cN91KEk}/_clientMiddlewareManifest.json +0 -0
  552. /package/web/.next/static/{JaRBeVSDLWZLQIl_k7ChK → w0YQoUPySQy1O9cN91KEk}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/open-ide.ts","../../../../../../../src/presentation/web/app/actions/open-shell.ts","../../../../../../../src/presentation/web/app/actions/open-folder.ts","../../../../../../../src/presentation/web/app/actions/agent-setup-flag.ts","../../../../../../../src/presentation/web/app/actions/check-agent-auth.ts","../../../../../../../src/presentation/web/app/actions/check-tool-status.ts","../../../../../../../src/presentation/web/app/actions/archive-feature.ts","../../../../../../../src/presentation/web/app/actions/delete-feature.ts","../../../../../../../src/presentation/web/app/actions/resume-feature.ts","../../../../../../../src/presentation/web/app/actions/start-feature.ts","../../../../../../../src/presentation/web/app/actions/stop-feature.ts","../../../../../../../src/presentation/web/app/actions/unarchive-feature.ts","../../../../../../../src/presentation/web/app/actions/add-repository.ts","../../../../../../../src/presentation/web/app/actions/delete-repository.ts","../../../../../../../src/presentation/web/app/actions/get-feature-metadata.ts"],"sourcesContent":["'use server';\n\nimport { isAbsolute } from 'node:path';\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\nimport type { LaunchIdeUseCase } from '@shepai/core/application/use-cases/ide/launch-ide.use-case';\nimport { resolve } from '@/lib/server-container';\n\ninterface OpenIdeInput {\n repositoryPath: string;\n branch?: string;\n}\n\nexport async function openIde(\n input: OpenIdeInput\n): Promise<{ success: boolean; error?: string; editor?: string; path?: string }> {\n const { repositoryPath, branch } = input;\n\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n const settings = getSettings();\n const editor = settings.environment.defaultEditor;\n\n const useCase = resolve<LaunchIdeUseCase>('LaunchIdeUseCase');\n const result = await useCase.execute({\n editorId: editor,\n repositoryPath,\n branch,\n checkAvailability: true,\n });\n\n if (!result.ok) {\n return { success: false, error: result.message };\n }\n\n return { success: true, editor: result.editorName, path: result.worktreePath };\n}\n","'use server';\n\nimport { existsSync } from 'node:fs';\nimport { platform } from 'node:os';\nimport { isAbsolute } from 'node:path';\nimport { spawn } from 'node:child_process';\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\nimport { computeWorktreePath } from '@shepai/core/infrastructure/services/ide-launchers/compute-worktree-path';\nimport { resolve } from '@/lib/server-container';\nimport type { IToolInstallerService } from '@shepai/core/application/ports/output/services/tool-installer.service';\n\n// Fallback commands for the \"system\" terminal when no tool metadata entry exists.\n// Uses a record lookup instead of if/else to prevent the bundler from\n// tree-shaking platform branches at build time. Turbopack evaluates\n// os.platform() during the build and dead-code-eliminates unused branches,\n// baking in the CI platform (linux) and breaking macOS/Windows installs.\nconst SYSTEM_TERMINAL_COMMANDS: Record<string, { cmd: string; args: (path: string) => string[] }> =\n {\n darwin: { cmd: 'open', args: (p) => ['-a', 'Terminal', p] },\n linux: { cmd: 'x-terminal-emulator', args: (p) => [`--working-directory=${p}`] },\n win32: {\n cmd: 'cmd.exe',\n args: (p) => ['/c', 'start', 'powershell', '-NoExit', '-Command', `Set-Location \"${p}\"`],\n },\n };\n\ninterface OpenShellInput {\n repositoryPath: string;\n branch?: string;\n}\n\nexport async function openShell(\n input: OpenShellInput\n): Promise<{ success: boolean; error?: string; path?: string; shell?: string }> {\n const { repositoryPath, branch } = input;\n\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n const settings = getSettings();\n const shell = settings.environment.shellPreference;\n const terminalPref = settings.environment.terminalPreference ?? 'system';\n const targetPath = branch ? computeWorktreePath(repositoryPath, branch) : repositoryPath;\n\n if (!existsSync(targetPath)) {\n return { success: false, error: `Path does not exist: ${targetPath}` };\n }\n\n // Try to find the terminal in tool metadata via DI container.\n // Using DI (not a direct import from tool-metadata) ensures that\n // TOOL_METADATA is read from the correct tools/ directory path — it is loaded once\n // in the Node.js CLI bootstrap context where import.meta.url resolves correctly.\n // Direct imports of tool-metadata break in standalone production builds.\n if (terminalPref !== 'system') {\n try {\n const service = resolve<IToolInstallerService>('IToolInstallerService');\n const config = service.getTerminalOpenConfig(terminalPref);\n\n if (config?.openDirectory.includes('{dir}')) {\n const resolved = config.openDirectory.replace('{dir}', targetPath);\n\n if (config.shell) {\n const child = spawn(resolved, [], {\n detached: true,\n stdio: 'ignore',\n shell: true,\n });\n child.on('error', () => undefined);\n child.unref();\n } else {\n const [command, ...args] = resolved.split(/\\s+/);\n const child = spawn(command, args, {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined);\n child.unref();\n }\n\n return { success: true, path: targetPath, shell };\n }\n } catch {\n // DI container not available — fall through to system terminal\n }\n }\n\n // Fallback to system terminal\n const entry = SYSTEM_TERMINAL_COMMANDS[platform()];\n if (!entry) {\n return {\n success: false,\n error: `Unsupported platform: ${platform()}`,\n };\n }\n\n const child = spawn(entry.cmd, entry.args(targetPath), {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined); // Prevent uncaught exception on spawn failure\n child.unref();\n\n return { success: true, path: targetPath, shell };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open shell';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { existsSync } from 'node:fs';\nimport { platform } from 'node:os';\nimport { isAbsolute } from 'node:path';\nimport { spawn } from 'node:child_process';\n\n// Use a record lookup instead of if/else to prevent the bundler from\n// tree-shaking platform branches at build time. Turbopack evaluates\n// os.platform() during the build and dead-code-eliminates unused branches,\n// baking in the CI platform (linux) and breaking macOS/Windows installs.\nconst FOLDER_COMMANDS: Record<string, { cmd: string; args: (path: string) => string[] }> = {\n darwin: { cmd: 'open', args: (p) => [p] },\n linux: { cmd: 'xdg-open', args: (p) => [p] },\n win32: { cmd: 'explorer', args: (p) => [p] },\n};\n\nexport async function openFolder(\n repositoryPath: string\n): Promise<{ success: boolean; error?: string; path?: string }> {\n if (!repositoryPath || !isAbsolute(repositoryPath)) {\n return { success: false, error: 'repositoryPath must be an absolute path' };\n }\n\n try {\n if (!existsSync(repositoryPath)) {\n return { success: false, error: 'Directory not found' };\n }\n\n const entry = FOLDER_COMMANDS[platform()];\n if (!entry) {\n return {\n success: false,\n error: `Unsupported platform: ${platform()}`,\n };\n }\n\n const child = spawn(entry.cmd, entry.args(repositoryPath), {\n detached: true,\n stdio: 'ignore',\n });\n child.on('error', () => undefined); // Prevent uncaught exception on spawn failure\n child.unref();\n\n return { success: true, path: repositoryPath };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to open folder';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\n\n/**\n * Check whether onboarding has been completed.\n * Delegates to the in-memory settings singleton (zero DB overhead).\n */\nexport async function isAgentSetupComplete(): Promise<boolean> {\n try {\n return getSettings().onboardingComplete;\n } catch {\n return false;\n }\n}\n","'use server';\n\nimport { existsSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { homedir } from 'node:os';\nimport { execFile } from 'node:child_process';\nimport { IS_WINDOWS } from '@shepai/core/infrastructure/platform';\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\nimport { resolve } from '@/lib/server-container';\nimport type { ListToolsUseCase } from '@shepai/core/application/use-cases/tools/list-tools.use-case';\n\nexport interface AgentAuthStatus {\n agentType: string;\n /** Whether the CLI tool binary is installed */\n installed: boolean;\n /** Whether credentials / auth appear valid */\n authenticated: boolean;\n /** Human-readable label for the agent */\n label: string;\n /** CLI binary name (e.g. \"claude\", \"gemini\") */\n binaryName: string | null;\n /** Shell command to install the tool (e.g. \"npm install -g @anthropic-ai/claude-code\") */\n installCommand: string | null;\n /** Instructions to authenticate if not authenticated */\n authCommand: string | null;\n}\n\nconst AGENT_LABELS: Record<string, string> = {\n 'claude-code': 'Claude Code',\n cursor: 'Cursor Agent',\n 'gemini-cli': 'Gemini CLI',\n aider: 'Aider',\n continue: 'Continue',\n dev: 'Demo',\n};\n\nconst AGENT_TOOL_MAP: Record<string, string> = {\n 'claude-code': 'claude-code',\n cursor: 'cursor-cli',\n 'gemini-cli': 'gemini-cli',\n};\n\nconst AGENT_BINARY_MAP: Record<string, string> = {\n 'claude-code': 'claude',\n cursor: 'cursor-agent',\n 'gemini-cli': 'gemini',\n};\n\n/**\n * Tier 1: Instant credential/env check (~5ms, no subprocess).\n * Returns true if credentials likely exist.\n */\nfunction tier1AuthCheck(agentType: string): boolean {\n const home = homedir();\n\n switch (agentType) {\n case 'claude-code': {\n if (process.env['ANTHROPIC_API_KEY']) return true;\n if (process.env['CLAUDE_CODE_USE_BEDROCK']) return true;\n if (process.env['CLAUDE_CODE_USE_VERTEX']) return true;\n if (process.env['CLAUDE_CODE_OAUTH_TOKEN']) return true;\n const credPath = join(home, '.claude', '.credentials.json');\n return existsSync(credPath);\n }\n case 'cursor': {\n if (process.env['CURSOR_API_KEY']) return true;\n // Cursor Agent stores creds after `agent login` — check common locations\n const cursorDir = join(home, '.cursor');\n return existsSync(cursorDir);\n }\n case 'gemini-cli': {\n if (process.env['GEMINI_API_KEY']) return true;\n if (process.env['GOOGLE_API_KEY']) return true;\n if (process.env['GOOGLE_APPLICATION_CREDENTIALS']) return true;\n const accountsPath = join(home, '.gemini', 'google_accounts.json');\n return existsSync(accountsPath);\n }\n default:\n // dev, aider, continue — assume no auth needed\n return true;\n }\n}\n\n/**\n * Tier 2: Subprocess verification (~200ms).\n * Only called if tier 1 passes, to confirm tokens aren't expired.\n */\nfunction tier2AuthVerify(agentType: string, binaryName: string): Promise<boolean> {\n return new Promise((resolve) => {\n let cmd: string;\n let args: string[];\n\n switch (agentType) {\n case 'claude-code':\n cmd = binaryName;\n args = ['auth', 'status'];\n break;\n case 'cursor':\n cmd = binaryName;\n args = ['status'];\n break;\n default:\n // No tier 2 command available — trust tier 1\n resolve(true);\n return;\n }\n\n try {\n const opts = IS_WINDOWS ? { timeout: 5000, windowsHide: true } : { timeout: 5000 };\n execFile(cmd, args, opts, (error) => {\n resolve(!error);\n });\n } catch {\n resolve(false);\n }\n });\n}\n\n/**\n * Check agent tool installation + auth status.\n * Uses two-tier detection: instant file/env check, then optional subprocess verify.\n */\nexport async function checkAgentAuth(): Promise<AgentAuthStatus> {\n let agentType: string;\n try {\n agentType = getSettings().agent.type;\n } catch {\n return {\n agentType: 'unknown',\n installed: false,\n authenticated: false,\n label: 'Unknown',\n binaryName: null,\n installCommand: null,\n authCommand: null,\n };\n }\n\n const label = AGENT_LABELS[agentType] ?? agentType;\n const toolId = AGENT_TOOL_MAP[agentType] ?? null;\n const binaryName = AGENT_BINARY_MAP[agentType] ?? null;\n\n // Dev/demo agents — always good\n if (!toolId) {\n return {\n agentType,\n installed: true,\n authenticated: true,\n label,\n binaryName: null,\n installCommand: null,\n authCommand: null,\n };\n }\n\n // Check if tool is installed (also grab install command from metadata)\n let installed = false;\n let installCommand: string | null = null;\n try {\n const useCase = resolve<ListToolsUseCase>('ListToolsUseCase');\n const tools = await useCase.execute();\n const tool = tools.find((t) => t.id === toolId);\n installed = tool?.status.status === 'available';\n installCommand = tool?.installCommand ?? null;\n } catch {\n installed = false;\n }\n\n if (!installed) {\n return {\n agentType,\n installed: false,\n authenticated: false,\n label,\n binaryName,\n installCommand,\n authCommand: binaryName ? `Install ${label} first` : null,\n };\n }\n\n // Tier 1: instant file/env check\n const tier1 = tier1AuthCheck(agentType);\n\n if (!tier1) {\n return {\n agentType,\n installed: true,\n authenticated: false,\n label,\n binaryName,\n installCommand,\n authCommand: binaryName,\n };\n }\n\n // Tier 2: subprocess verify (best effort, ~200ms)\n let authenticated = true;\n if (binaryName) {\n authenticated = await tier2AuthVerify(agentType, binaryName);\n }\n\n return {\n agentType,\n installed: true,\n authenticated,\n label,\n binaryName,\n installCommand,\n authCommand: authenticated ? null : binaryName,\n };\n}\n","'use server';\n\nimport { execFile } from 'node:child_process';\nimport { IS_WINDOWS } from '@shepai/core/infrastructure/platform';\nimport { resolve } from '@/lib/server-container';\nimport type { ListToolsUseCase } from '@shepai/core/application/use-cases/tools/list-tools.use-case';\n\nexport interface ToolStatusEntry {\n installed: boolean;\n version: string | null;\n /** Platform-specific install command from tool JSON metadata */\n installCommand: string | null;\n /** Documentation/website URL */\n installUrl: string | null;\n}\n\nexport interface ToolStatusResult {\n git: ToolStatusEntry;\n gh: ToolStatusEntry;\n}\n\nfunction getVersion(\n command: string,\n args: string[]\n): Promise<{ installed: boolean; version: string | null }> {\n return new Promise((resolve) => {\n try {\n const opts = IS_WINDOWS ? { timeout: 5000, windowsHide: true } : { timeout: 5000 };\n execFile(command, args, opts, (error, stdout) => {\n if (error) {\n resolve({ installed: false, version: null });\n return;\n }\n // Extract version number from output like \"git version 2.43.0\" or \"gh version 2.40.1\"\n const match = stdout.match(/(\\d+\\.\\d+(?:\\.\\d+)?)/);\n resolve({ installed: true, version: match?.[1] ?? null });\n });\n } catch {\n resolve({ installed: false, version: null });\n }\n });\n}\n\nexport async function checkToolStatus(): Promise<ToolStatusResult> {\n // Run version checks and tool metadata lookup in parallel\n const [gitVersion, ghVersion, tools] = await Promise.all([\n getVersion('git', ['--version']),\n getVersion('gh', ['--version']),\n (async () => {\n try {\n const useCase = resolve<ListToolsUseCase>('ListToolsUseCase');\n return await useCase.execute();\n } catch {\n return [];\n }\n })(),\n ]);\n\n const gitTool = tools.find((t) => t.id === 'git');\n const ghTool = tools.find((t) => t.id === 'gh');\n\n return {\n git: {\n ...gitVersion,\n installCommand: gitTool?.installCommand ?? null,\n installUrl: gitTool?.website ?? 'https://git-scm.com',\n },\n gh: {\n ...ghVersion,\n installCommand: ghTool?.installCommand ?? null,\n installUrl: ghTool?.website ?? 'https://cli.github.com',\n },\n };\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { ArchiveFeatureUseCase } from '@shepai/core/application/use-cases/features/archive-feature.use-case';\nimport type { Feature } from '@shepai/core/domain/generated/output';\n\nexport async function archiveFeature(\n featureId: string\n): Promise<{ feature?: Feature; error?: string }> {\n if (!featureId?.trim()) {\n return { error: 'id is required' };\n }\n\n try {\n const archiveFeatureUseCase = resolve<ArchiveFeatureUseCase>('ArchiveFeatureUseCase');\n const feature = await archiveFeatureUseCase.execute(featureId);\n return { feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to archive feature';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { DeleteFeatureUseCase } from '@shepai/core/application/use-cases/features/delete-feature.use-case';\nimport type { Feature } from '@shepai/core/domain/generated/output';\n\nexport async function deleteFeature(\n featureId: string,\n cleanup?: boolean,\n cascadeDelete?: boolean,\n closePr?: boolean\n): Promise<{ feature?: Feature; error?: string }> {\n if (!featureId?.trim()) {\n return { error: 'id is required' };\n }\n\n try {\n const deleteFeatureUseCase = resolve<DeleteFeatureUseCase>('DeleteFeatureUseCase');\n const options: { cleanup?: boolean; cascadeDelete?: boolean; closePr?: boolean } = {};\n if (cleanup !== undefined) options.cleanup = cleanup;\n if (cascadeDelete !== undefined) options.cascadeDelete = cascadeDelete;\n if (closePr !== undefined) options.closePr = closePr;\n const feature =\n Object.keys(options).length > 0\n ? await deleteFeatureUseCase.execute(featureId, options)\n : await deleteFeatureUseCase.execute(featureId);\n return { feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to delete feature';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { ResumeFeatureUseCase } from '@shepai/core/application/use-cases/features/resume-feature.use-case';\n\nexport async function resumeFeature(\n featureId: string\n): Promise<{ resumed: boolean; error?: string }> {\n if (!featureId.trim()) {\n return { resumed: false, error: 'Feature id is required' };\n }\n\n try {\n const useCase = resolve<ResumeFeatureUseCase>('ResumeFeatureUseCase');\n await useCase.execute(featureId);\n return { resumed: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to resume feature';\n return { resumed: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { StartFeatureUseCase } from '@shepai/core/application/use-cases/features/start-feature.use-case';\n\nexport async function startFeature(\n featureId: string\n): Promise<{ started: boolean; error?: string }> {\n if (!featureId.trim()) {\n return { started: false, error: 'Feature id is required' };\n }\n\n try {\n const useCase = resolve<StartFeatureUseCase>('StartFeatureUseCase');\n await useCase.execute(featureId);\n return { started: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to start feature';\n return { started: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { StopAgentRunUseCase } from '@shepai/core/application/use-cases/agents/stop-agent-run.use-case';\nimport type { IAgentRunRepository } from '@shepai/core/application/ports/output/agents/agent-run-repository.interface';\n\nexport async function stopFeature(\n featureId: string\n): Promise<{ stopped: boolean; error?: string }> {\n if (!featureId.trim()) {\n return { stopped: false, error: 'Feature id is required' };\n }\n\n try {\n // Find the active agent run for this feature\n const runRepo = resolve<IAgentRunRepository>('IAgentRunRepository');\n const allRuns = await runRepo.list();\n const activeRun = allRuns.find(\n (r) =>\n r.featureId === featureId &&\n r.status !== 'completed' &&\n r.status !== 'failed' &&\n r.status !== 'interrupted' &&\n r.status !== 'cancelled'\n );\n\n if (!activeRun) {\n return { stopped: false, error: 'No active agent run found for this feature' };\n }\n\n const useCase = resolve<StopAgentRunUseCase>('StopAgentRunUseCase');\n const result = await useCase.execute(activeRun.id);\n\n if (!result.stopped) {\n return { stopped: false, error: result.reason };\n }\n return { stopped: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to stop agent';\n return { stopped: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { UnarchiveFeatureUseCase } from '@shepai/core/application/use-cases/features/unarchive-feature.use-case';\nimport type { Feature } from '@shepai/core/domain/generated/output';\n\nexport async function unarchiveFeature(\n featureId: string\n): Promise<{ feature?: Feature; error?: string }> {\n if (!featureId?.trim()) {\n return { error: 'id is required' };\n }\n\n try {\n const unarchiveFeatureUseCase = resolve<UnarchiveFeatureUseCase>('UnarchiveFeatureUseCase');\n const feature = await unarchiveFeatureUseCase.execute(featureId);\n return { feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to unarchive feature';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { AddRepositoryUseCase } from '@shepai/core/application/use-cases/repositories/add-repository.use-case';\nimport type { Repository } from '@shepai/core/domain/generated/output';\n\ninterface AddRepositoryInput {\n path: string;\n name?: string;\n}\n\nexport async function addRepository(\n input: AddRepositoryInput\n): Promise<{ repository?: Repository; error?: string }> {\n const { path, name } = input;\n\n if (!path?.trim()) {\n return { error: 'path is required' };\n }\n\n try {\n const addRepoUseCase = resolve<AddRepositoryUseCase>('AddRepositoryUseCase');\n const repository = await addRepoUseCase.execute({ path, name });\n return { repository };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to add repository';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { DeleteRepositoryUseCase } from '@shepai/core/application/use-cases/repositories/delete-repository.use-case';\n\nexport async function deleteRepository(\n repositoryId: string\n): Promise<{ success: boolean; error?: string }> {\n if (!repositoryId?.trim()) {\n return { success: false, error: 'id is required' };\n }\n\n try {\n const useCase = resolve<DeleteRepositoryUseCase>('DeleteRepositoryUseCase');\n await useCase.execute(repositoryId);\n return { success: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to delete repository';\n return { success: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\n\n/**\n * Lightweight server action to fetch a single feature's name and description.\n * Used by the SSE effect to update node metadata after AI metadata generation\n * without a full graph reconcile (which can overwrite SSE-driven state).\n */\nexport async function getFeatureMetadata(\n featureId: string\n): Promise<{ name: string; description: string } | null> {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n if (!feature) return null;\n return { name: feature.name, description: feature.description };\n}\n"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,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),o=e.i(22528),n=e.i(5978),i=e.i(567),a=e.i(91967),l=e.i(86874),s="AlertDialog",[d,u]=(0,o.createContextScope)(s,[i.createDialogScope]),c=(0,i.createDialogScope)(),p=e=>{let{__scopeAlertDialog:r,...o}=e,n=c(r);return(0,t.jsx)(i.Root,{...n,...o,modal:!0})};p.displayName=s;var f=r.forwardRef((e,r)=>{let{__scopeAlertDialog:o,...n}=e,a=c(o);return(0,t.jsx)(i.Trigger,{...a,...n,ref:r})});f.displayName="AlertDialogTrigger";var g=e=>{let{__scopeAlertDialog:r,...o}=e,n=c(r);return(0,t.jsx)(i.Portal,{...n,...o})};g.displayName="AlertDialogPortal";var m=r.forwardRef((e,r)=>{let{__scopeAlertDialog:o,...n}=e,a=c(o);return(0,t.jsx)(i.Overlay,{...a,...n,ref:r})});m.displayName="AlertDialogOverlay";var h="AlertDialogContent",[v,y]=d(h),x=(0,l.createSlottable)("AlertDialogContent"),b=r.forwardRef((e,o)=>{let{__scopeAlertDialog:l,children:s,...d}=e,u=c(l),p=r.useRef(null),f=(0,n.useComposedRefs)(o,p),g=r.useRef(null);return(0,t.jsx)(i.WarningProvider,{contentName:h,titleName:w,docsSlug:"alert-dialog",children:(0,t.jsx)(v,{scope:l,cancelRef:g,children:(0,t.jsxs)(i.Content,{role:"alertdialog",...u,...d,ref:f,onOpenAutoFocus:(0,a.composeEventHandlers)(d.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)(E,{contentRef:p})]})})})});b.displayName=h;var w="AlertDialogTitle",C=r.forwardRef((e,r)=>{let{__scopeAlertDialog:o,...n}=e,a=c(o);return(0,t.jsx)(i.Title,{...a,...n,ref:r})});C.displayName=w;var j="AlertDialogDescription",D=r.forwardRef((e,r)=>{let{__scopeAlertDialog:o,...n}=e,a=c(o);return(0,t.jsx)(i.Description,{...a,...n,ref:r})});D.displayName=j;var P=r.forwardRef((e,r)=>{let{__scopeAlertDialog:o,...n}=e,a=c(o);return(0,t.jsx)(i.Close,{...a,...n,ref:r})});P.displayName="AlertDialogAction";var _="AlertDialogCancel",R=r.forwardRef((e,r)=>{let{__scopeAlertDialog:o,...a}=e,{cancelRef:l}=y(_,o),s=c(o),d=(0,n.useComposedRefs)(r,l);return(0,t.jsx)(i.Close,{...s,...a,ref:d})});R.displayName=_;var E=({contentRef:e})=>{let t=`\`${h}\` requires a description for the component to be accessible for screen reader users.
2
-
3
- You can add a description to the \`${h}\` by passing a \`${j}\` 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 \`${h}\`. 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",()=>P,"AlertDialog",()=>p,"AlertDialogAction",()=>P,"AlertDialogCancel",()=>R,"AlertDialogContent",()=>b,"AlertDialogDescription",()=>D,"AlertDialogOverlay",()=>m,"AlertDialogPortal",()=>g,"AlertDialogTitle",()=>C,"AlertDialogTrigger",()=>f,"Cancel",()=>R,"Content",()=>b,"Description",()=>D,"Overlay",()=>m,"Portal",()=>g,"Root",()=>p,"Title",()=>C,"Trigger",()=>f,"createAlertDialogScope",()=>u],28883);var T=e.i(28883),T=T,O=e.i(31777),N=e.i(35364);function A({...e}){return(0,t.jsx)(T.Root,{"data-slot":"alert-dialog",...e})}function k({...e}){return(0,t.jsx)(T.Portal,{"data-slot":"alert-dialog-portal",...e})}function S({className:e,onClick:r,...o}){return(0,t.jsx)(T.Overlay,{"data-slot":"alert-dialog-overlay",className:(0,O.cn)("fixed inset-0 z-50 bg-black/50",e),onClick:e=>{e.stopPropagation(),r?.(e)},...o})}function I({className:e,size:r="default",...o}){return(0,t.jsxs)(k,{children:[(0,t.jsx)(S,{}),(0,t.jsx)(T.Content,{"data-slot":"alert-dialog-content","data-size":r,className:(0,O.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),...o})]})}function z({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,O.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-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",e),...r})}function M({className:e,...r}){return(0,t.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,O.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)(T.Title,{"data-slot":"alert-dialog-title",className:(0,O.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 L({className:e,...r}){return(0,t.jsx)(T.Description,{"data-slot":"alert-dialog-description",className:(0,O.cn)("text-muted-foreground text-sm",e),...r})}function $({className:e,variant:r="default",size:o="default",...n}){return(0,t.jsx)(N.Button,{variant:r,size:o,asChild:!0,children:(0,t.jsx)(T.Action,{"data-slot":"alert-dialog-action",className:(0,O.cn)(e),...n})})}function B({className:e,variant:r="outline",size:o="default",...n}){return(0,t.jsx)(N.Button,{variant:r,size:o,asChild:!0,children:(0,t.jsx)(T.Cancel,{"data-slot":"alert-dialog-cancel",className:(0,O.cn)(e),...n})})}e.s(["AlertDialog",()=>A,"AlertDialogAction",()=>$,"AlertDialogCancel",()=>B,"AlertDialogContent",()=>I,"AlertDialogDescription",()=>L,"AlertDialogFooter",()=>M,"AlertDialogHeader",()=>z,"AlertDialogTitle",()=>F],71326)},30153,e=>{"use strict";var t=e.i(20314),r=e.i(79054),o=e.i(71326);let n=(0,r.createContext)(null);function i({children:e}){let i=(0,r.useRef)(null),a=(0,r.useRef)(null),[l,s]=(0,r.useState)(!1),d=(0,r.useCallback)(e=>{i.current=e},[]),u=(0,r.useCallback)(e=>{if(i.current?.isDirty){a.current=e,s(!0);return}e()},[]),c=(0,r.useCallback)(()=>{s(!1),i.current?.onReset(),i.current=null,a.current?.(),a.current=null},[]),p=(0,r.useCallback)(()=>{s(!1),a.current=null},[]),f=(0,r.useCallback)(()=>i.current?.isDirty??!1,[]);return(0,t.jsxs)(n,{value:{setGuard:d,guardedNavigate:u,getIsDirty:f},children:[e,(0,t.jsx)(o.AlertDialog,{open:l,children:(0,t.jsxs)(o.AlertDialogContent,{children:[(0,t.jsxs)(o.AlertDialogHeader,{children:[(0,t.jsx)(o.AlertDialogTitle,{children:"Discard unsaved changes?"}),(0,t.jsx)(o.AlertDialogDescription,{children:"You have unsaved changes. Are you sure you want to discard them?"})]}),(0,t.jsxs)(o.AlertDialogFooter,{children:[(0,t.jsx)(o.AlertDialogAction,{variant:"destructive",onClick:c,children:"Discard"}),(0,t.jsx)(o.AlertDialogCancel,{onClick:p,children:"Keep editing"})]})]})})]})}function a(){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:o,onReset:n}){let{setGuard:i,guardedNavigate:l}=a();return(0,r.useEffect)(()=>(e?i({isDirty:t,onReset:n}):i(null),()=>i(null)),[e,t,n,i]),{attemptClose:(0,r.useCallback)(()=>{l(()=>{n(),o()})},[l,o,n])}}e.s(["DrawerCloseGuardProvider",()=>i,"useDrawerCloseGuard",()=>a,"useGuardedDrawerClose",()=>l])},81846,e=>{"use strict";var t=e.i(20314),r=e.i(94237),o=e.i(31777);let n=(0,r.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function i({className:e,variant:r,...i}){return(0,t.jsx)("div",{className:(0,o.cn)(n({variant:r}),e),...i})}e.s(["Badge",()=>i])},25235,e=>{"use strict";var t=e.i(20314),r=e.i(79054),o=e.i(87620),n="horizontal",i=["horizontal","vertical"],a=r.forwardRef((e,r)=>{var a;let{decorative:l,orientation:s=n,...d}=e,u=(a=s,i.includes(a))?s:n;return(0,t.jsx)(o.Primitive.div,{"data-orientation":u,...l?{role:"none"}:{"aria-orientation":"vertical"===u?u:void 0,role:"separator"},...d,ref:r})});a.displayName="Separator",e.s(["Root",()=>a,"Separator",()=>a],47402);var l=e.i(47402),l=l,s=e.i(31777);function d({className:e,orientation:r="horizontal",decorative:o=!0,...n}){return(0,t.jsx)(l.Root,{"data-slot":"separator",decorative:o,orientation:r,className:(0,s.cn)("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",e),...n})}e.s(["Separator",()=>d],25235)},90537,e=>{"use strict";let t=(0,e.i(3645).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["default",()=>t])},48249,e=>{"use strict";var t=e.i(90537);e.s(["XIcon",()=>t.default])},567,e=>{"use strict";var t=e.i(79054),r=e.i(91967),o=e.i(5978),n=e.i(22528),i=e.i(13123),a=e.i(36589),l=e.i(53532),s=e.i(56720),d=e.i(39979),u=e.i(85995),c=e.i(87620),p=e.i(41687),f=e.i(13044),g=e.i(73772),m=e.i(86874),h=e.i(20314),v="Dialog",[y,x]=(0,n.createContextScope)(v),[b,w]=y(v),C=e=>{let{__scopeDialog:r,children:o,open:n,defaultOpen:l,onOpenChange:s,modal:d=!0}=e,u=t.useRef(null),c=t.useRef(null),[p,f]=(0,a.useControllableState)({prop:n,defaultProp:l??!1,onChange:s,caller:v});return(0,h.jsx)(b,{scope:r,triggerRef:u,contentRef:c,contentId:(0,i.useId)(),titleId:(0,i.useId)(),descriptionId:(0,i.useId)(),open:p,onOpenChange:f,onOpenToggle:t.useCallback(()=>f(e=>!e),[f]),modal:d,children:o})};C.displayName=v;var j="DialogTrigger",D=t.forwardRef((e,t)=>{let{__scopeDialog:n,...i}=e,a=w(j,n),l=(0,o.useComposedRefs)(t,a.triggerRef);return(0,h.jsx)(c.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":U(a.open),...i,ref:l,onClick:(0,r.composeEventHandlers)(e.onClick,a.onOpenToggle)})});D.displayName=j;var P="DialogPortal",[_,R]=y(P,{forceMount:void 0}),E=e=>{let{__scopeDialog:r,forceMount:o,children:n,container:i}=e,a=w(P,r);return(0,h.jsx)(_,{scope:r,forceMount:o,children:t.Children.map(n,e=>(0,h.jsx)(u.Presence,{present:o||a.open,children:(0,h.jsx)(d.Portal,{asChild:!0,container:i,children:e})}))})};E.displayName=P;var T="DialogOverlay",O=t.forwardRef((e,t)=>{let r=R(T,e.__scopeDialog),{forceMount:o=r.forceMount,...n}=e,i=w(T,e.__scopeDialog);return i.modal?(0,h.jsx)(u.Presence,{present:o||i.open,children:(0,h.jsx)(A,{...n,ref:t})}):null});O.displayName=T;var N=(0,m.createSlot)("DialogOverlay.RemoveScroll"),A=t.forwardRef((e,t)=>{let{__scopeDialog:r,...o}=e,n=w(T,r);return(0,h.jsx)(f.RemoveScroll,{as:N,allowPinchZoom:!0,shards:[n.contentRef],children:(0,h.jsx)(c.Primitive.div,{"data-state":U(n.open),...o,ref:t,style:{pointerEvents:"auto",...o.style}})})}),k="DialogContent",S=t.forwardRef((e,t)=>{let r=R(k,e.__scopeDialog),{forceMount:o=r.forceMount,...n}=e,i=w(k,e.__scopeDialog);return(0,h.jsx)(u.Presence,{present:o||i.open,children:i.modal?(0,h.jsx)(I,{...n,ref:t}):(0,h.jsx)(z,{...n,ref:t})})});S.displayName=k;var I=t.forwardRef((e,n)=>{let i=w(k,e.__scopeDialog),a=t.useRef(null),l=(0,o.useComposedRefs)(n,i.contentRef,a);return t.useEffect(()=>{let e=a.current;if(e)return(0,g.hideOthers)(e)},[]),(0,h.jsx)(M,{...e,ref:l,trapFocus:i.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,r.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),i.triggerRef.current?.focus()}),onPointerDownOutside:(0,r.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;(2===t.button||r)&&e.preventDefault()}),onFocusOutside:(0,r.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault())})}),z=t.forwardRef((e,r)=>{let o=w(k,e.__scopeDialog),n=t.useRef(!1),i=t.useRef(!1);return(0,h.jsx)(M,{...e,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(n.current||o.triggerRef.current?.focus(),t.preventDefault()),n.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(n.current=!0,"pointerdown"===t.detail.originalEvent.type&&(i.current=!0));let r=t.target;o.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}})}),M=t.forwardRef((e,r)=>{let{__scopeDialog:n,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:d,...u}=e,c=w(k,n),f=t.useRef(null),g=(0,o.useComposedRefs)(r,f);return(0,p.useFocusGuards)(),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(s.FocusScope,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:a,onUnmountAutoFocus:d,children:(0,h.jsx)(l.DismissableLayer,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":U(c.open),...u,ref:g,onDismiss:()=>c.onOpenChange(!1)})}),(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(V,{titleId:c.titleId}),(0,h.jsx)(Y,{contentRef:f,descriptionId:c.descriptionId})]})]})}),F="DialogTitle",L=t.forwardRef((e,t)=>{let{__scopeDialog:r,...o}=e,n=w(F,r);return(0,h.jsx)(c.Primitive.h2,{id:n.titleId,...o,ref:t})});L.displayName=F;var $="DialogDescription",B=t.forwardRef((e,t)=>{let{__scopeDialog:r,...o}=e,n=w($,r);return(0,h.jsx)(c.Primitive.p,{id:n.descriptionId,...o,ref:t})});B.displayName=$;var G="DialogClose",H=t.forwardRef((e,t)=>{let{__scopeDialog:o,...n}=e,i=w(G,o);return(0,h.jsx)(c.Primitive.button,{type:"button",...n,ref:t,onClick:(0,r.composeEventHandlers)(e.onClick,()=>i.onOpenChange(!1))})});function U(e){return e?"open":"closed"}H.displayName=G;var W="DialogTitleWarning",[q,X]=(0,n.createContext)(W,{contentName:k,titleName:F,docsSlug:"dialog"}),V=({titleId:e})=>{let r=X(W),o=`\`${r.contentName}\` requires a \`${r.titleName}\` for the component to be accessible for screen reader users.
8
-
9
- If you want to hide the \`${r.titleName}\`, you can wrap it with our VisuallyHidden component.
10
-
11
- For more information, see https://radix-ui.com/primitives/docs/components/${r.docsSlug}`;return t.useEffect(()=>{e&&(document.getElementById(e)||console.error(o))},[o,e]),null},Y=({contentRef:e,descriptionId:r})=>{let o=X("DialogDescriptionWarning"),n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${o.contentName}}.`;return t.useEffect(()=>{let t=e.current?.getAttribute("aria-describedby");r&&t&&(document.getElementById(r)||console.warn(n))},[n,e,r]),null};e.s(["Close",()=>H,"Content",()=>S,"Description",()=>B,"Dialog",()=>C,"DialogClose",()=>H,"DialogContent",()=>S,"DialogDescription",()=>B,"DialogOverlay",()=>O,"DialogPortal",()=>E,"DialogTitle",()=>L,"DialogTrigger",()=>D,"Overlay",()=>O,"Portal",()=>E,"Root",()=>C,"Title",()=>L,"Trigger",()=>D,"WarningProvider",()=>q,"createDialogScope",()=>x])},90033,e=>{"use strict";var t=e.i(567);e.s(["Dialog",0,t])},2828,e=>{"use strict";var t=e.i(20314),r=e.i(79054),o=e.i(91967),n=e.i(5978),i=e.i(22528),a=e.i(53532),l=e.i(13123),s=e.i(52740),d=e.i(39979),u=e.i(85995),c=e.i(87620),p=e.i(86874),f=e.i(36589),g=e.i(1693),[m,h]=(0,i.createContextScope)("Tooltip",[s.createPopperScope]),v=(0,s.createPopperScope)(),y="TooltipProvider",x="tooltip.open",[b,w]=m(y),C=e=>{let{__scopeTooltip:o,delayDuration:n=700,skipDelayDuration:i=300,disableHoverableContent:a=!1,children:l}=e,s=r.useRef(!0),d=r.useRef(!1),u=r.useRef(0);return r.useEffect(()=>{let e=u.current;return()=>window.clearTimeout(e)},[]),(0,t.jsx)(b,{scope:o,isOpenDelayedRef:s,delayDuration:n,onOpen:r.useCallback(()=>{window.clearTimeout(u.current),s.current=!1},[]),onClose:r.useCallback(()=>{window.clearTimeout(u.current),u.current=window.setTimeout(()=>s.current=!0,i)},[i]),isPointerInTransitRef:d,onPointerInTransitChange:r.useCallback(e=>{d.current=e},[]),disableHoverableContent:a,children:l})};C.displayName=y;var j="Tooltip",[D,P]=m(j),_=e=>{let{__scopeTooltip:o,children:n,open:i,defaultOpen:a,onOpenChange:d,disableHoverableContent:u,delayDuration:c}=e,p=w(j,e.__scopeTooltip),g=v(o),[m,h]=r.useState(null),y=(0,l.useId)(),b=r.useRef(0),C=u??p.disableHoverableContent,P=c??p.delayDuration,_=r.useRef(!1),[R,E]=(0,f.useControllableState)({prop:i,defaultProp:a??!1,onChange:e=>{e?(p.onOpen(),document.dispatchEvent(new CustomEvent(x))):p.onClose(),d?.(e)},caller:j}),T=r.useMemo(()=>R?_.current?"delayed-open":"instant-open":"closed",[R]),O=r.useCallback(()=>{window.clearTimeout(b.current),b.current=0,_.current=!1,E(!0)},[E]),N=r.useCallback(()=>{window.clearTimeout(b.current),b.current=0,E(!1)},[E]),A=r.useCallback(()=>{window.clearTimeout(b.current),b.current=window.setTimeout(()=>{_.current=!0,E(!0),b.current=0},P)},[P,E]);return r.useEffect(()=>()=>{b.current&&(window.clearTimeout(b.current),b.current=0)},[]),(0,t.jsx)(s.Root,{...g,children:(0,t.jsx)(D,{scope:o,contentId:y,open:R,stateAttribute:T,trigger:m,onTriggerChange:h,onTriggerEnter:r.useCallback(()=>{p.isOpenDelayedRef.current?A():O()},[p.isOpenDelayedRef,A,O]),onTriggerLeave:r.useCallback(()=>{C?N():(window.clearTimeout(b.current),b.current=0)},[N,C]),onOpen:O,onClose:N,disableHoverableContent:C,children:n})})};_.displayName=j;var R="TooltipTrigger",E=r.forwardRef((e,i)=>{let{__scopeTooltip:a,...l}=e,d=P(R,a),u=w(R,a),p=v(a),f=r.useRef(null),g=(0,n.useComposedRefs)(i,f,d.onTriggerChange),m=r.useRef(!1),h=r.useRef(!1),y=r.useCallback(()=>m.current=!1,[]);return r.useEffect(()=>()=>document.removeEventListener("pointerup",y),[y]),(0,t.jsx)(s.Anchor,{asChild:!0,...p,children:(0,t.jsx)(c.Primitive.button,{"aria-describedby":d.open?d.contentId:void 0,"data-state":d.stateAttribute,...l,ref:g,onPointerMove:(0,o.composeEventHandlers)(e.onPointerMove,e=>{"touch"!==e.pointerType&&(h.current||u.isPointerInTransitRef.current||(d.onTriggerEnter(),h.current=!0))}),onPointerLeave:(0,o.composeEventHandlers)(e.onPointerLeave,()=>{d.onTriggerLeave(),h.current=!1}),onPointerDown:(0,o.composeEventHandlers)(e.onPointerDown,()=>{d.open&&d.onClose(),m.current=!0,document.addEventListener("pointerup",y,{once:!0})}),onFocus:(0,o.composeEventHandlers)(e.onFocus,()=>{m.current||d.onOpen()}),onBlur:(0,o.composeEventHandlers)(e.onBlur,d.onClose),onClick:(0,o.composeEventHandlers)(e.onClick,d.onClose)})})});E.displayName=R;var T="TooltipPortal",[O,N]=m(T,{forceMount:void 0}),A=e=>{let{__scopeTooltip:r,forceMount:o,children:n,container:i}=e,a=P(T,r);return(0,t.jsx)(O,{scope:r,forceMount:o,children:(0,t.jsx)(u.Presence,{present:o||a.open,children:(0,t.jsx)(d.Portal,{asChild:!0,container:i,children:n})})})};A.displayName=T;var k="TooltipContent",S=r.forwardRef((e,r)=>{let o=N(k,e.__scopeTooltip),{forceMount:n=o.forceMount,side:i="top",...a}=e,l=P(k,e.__scopeTooltip);return(0,t.jsx)(u.Presence,{present:n||l.open,children:l.disableHoverableContent?(0,t.jsx)(L,{side:i,...a,ref:r}):(0,t.jsx)(I,{side:i,...a,ref:r})})}),I=r.forwardRef((e,o)=>{let i=P(k,e.__scopeTooltip),a=w(k,e.__scopeTooltip),l=r.useRef(null),s=(0,n.useComposedRefs)(o,l),[d,u]=r.useState(null),{trigger:c,onClose:p}=i,f=l.current,{onPointerInTransitChange:g}=a,m=r.useCallback(()=>{u(null),g(!1)},[g]),h=r.useCallback((e,t)=>{let r,o=e.currentTarget,n={x:e.clientX,y:e.clientY},i=function(e,t){let r=Math.abs(t.top-e.y),o=Math.abs(t.bottom-e.y),n=Math.abs(t.right-e.x),i=Math.abs(t.left-e.x);switch(Math.min(r,o,n,i)){case i:return"left";case n:return"right";case r:return"top";case o:return"bottom";default:throw Error("unreachable")}}(n,o.getBoundingClientRect());u(((r=[...function(e,t,r=5){let o=[];switch(t){case"top":o.push({x:e.x-r,y:e.y+r},{x:e.x+r,y:e.y+r});break;case"bottom":o.push({x:e.x-r,y:e.y-r},{x:e.x+r,y:e.y-r});break;case"left":o.push({x:e.x+r,y:e.y-r},{x:e.x+r,y:e.y+r});break;case"right":o.push({x:e.x-r,y:e.y-r},{x:e.x-r,y:e.y+r})}return o}(n,i),...function(e){let{top:t,right:r,bottom:o,left:n}=e;return[{x:n,y:t},{x:r,y:t},{x:r,y:o},{x:n,y:o}]}(t.getBoundingClientRect())].slice()).sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:1*!!(e.y>t.y)),function(e){if(e.length<=1)return e.slice();let t=[];for(let r=0;r<e.length;r++){let o=e[r];for(;t.length>=2;){let e=t[t.length-1],r=t[t.length-2];if((e.x-r.x)*(o.y-r.y)>=(e.y-r.y)*(o.x-r.x))t.pop();else break}t.push(o)}t.pop();let r=[];for(let t=e.length-1;t>=0;t--){let o=e[t];for(;r.length>=2;){let e=r[r.length-1],t=r[r.length-2];if((e.x-t.x)*(o.y-t.y)>=(e.y-t.y)*(o.x-t.x))r.pop();else break}r.push(o)}return(r.pop(),1===t.length&&1===r.length&&t[0].x===r[0].x&&t[0].y===r[0].y)?t:t.concat(r)}(r))),g(!0)},[g]);return r.useEffect(()=>()=>m(),[m]),r.useEffect(()=>{if(c&&f){let e=e=>h(e,f),t=e=>h(e,c);return c.addEventListener("pointerleave",e),f.addEventListener("pointerleave",t),()=>{c.removeEventListener("pointerleave",e),f.removeEventListener("pointerleave",t)}}},[c,f,h,m]),r.useEffect(()=>{if(d){let e=e=>{let t=e.target,r={x:e.clientX,y:e.clientY},o=c?.contains(t)||f?.contains(t),n=!function(e,t){let{x:r,y:o}=e,n=!1;for(let e=0,i=t.length-1;e<t.length;i=e++){let a=t[e],l=t[i],s=a.x,d=a.y,u=l.x,c=l.y;d>o!=c>o&&r<(u-s)*(o-d)/(c-d)+s&&(n=!n)}return n}(r,d);o?m():n&&(m(),p())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[c,f,d,p,m]),(0,t.jsx)(L,{...e,ref:s})}),[z,M]=m(j,{isInside:!1}),F=(0,p.createSlottable)("TooltipContent"),L=r.forwardRef((e,o)=>{let{__scopeTooltip:n,children:i,"aria-label":l,onEscapeKeyDown:d,onPointerDownOutside:u,...c}=e,p=P(k,n),f=v(n),{onClose:m}=p;return r.useEffect(()=>(document.addEventListener(x,m),()=>document.removeEventListener(x,m)),[m]),r.useEffect(()=>{if(p.trigger){let e=e=>{let t=e.target;t?.contains(p.trigger)&&m()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[p.trigger,m]),(0,t.jsx)(a.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:d,onPointerDownOutside:u,onFocusOutside:e=>e.preventDefault(),onDismiss:m,children:(0,t.jsxs)(s.Content,{"data-state":p.stateAttribute,...f,...c,ref:o,style:{...c.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,t.jsx)(F,{children:i}),(0,t.jsx)(z,{scope:n,isInside:!0,children:(0,t.jsx)(g.Root,{id:p.contentId,role:"tooltip",children:l||i})})]})})});S.displayName=k;var $="TooltipArrow",B=r.forwardRef((e,r)=>{let{__scopeTooltip:o,...n}=e,i=v(o);return M($,o).isInside?null:(0,t.jsx)(s.Arrow,{...i,...n,ref:r})});B.displayName=$,e.s(["Arrow",()=>B,"Content",()=>S,"Portal",()=>A,"Provider",()=>C,"Root",()=>_,"Tooltip",()=>_,"TooltipArrow",()=>B,"TooltipContent",()=>S,"TooltipPortal",()=>A,"TooltipProvider",()=>C,"TooltipTrigger",()=>E,"Trigger",()=>E,"createTooltipScope",()=>h],30643);var G=e.i(30643),G=G,H=e.i(31777);function U({delayDuration:e=0,...r}){return(0,t.jsx)(G.Provider,{"data-slot":"tooltip-provider",delayDuration:e,...r})}function W({...e}){return(0,t.jsx)(G.Root,{"data-slot":"tooltip",...e})}function q({...e}){return(0,t.jsx)(G.Trigger,{"data-slot":"tooltip-trigger",...e})}function X({className:e,sideOffset:r=0,children:o,...n}){return(0,t.jsx)(G.Portal,{children:(0,t.jsxs)(G.Content,{"data-slot":"tooltip-content",sideOffset:r,className:(0,H.cn)("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",e),...n,children:[o,(0,t.jsx)(G.Arrow,{className:"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}e.s(["Tooltip",()=>W,"TooltipContent",()=>X,"TooltipProvider",()=>U,"TooltipTrigger",()=>q],2828)},51251,14748,e=>{"use strict";let t=(0,e.i(3645).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["default",()=>t],14748),e.s(["CircleAlert",()=>t],51251)},83428,15506,e=>{"use strict";let t=(0,e.i(3645).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["default",()=>t],15506),e.s(["Loader2",()=>t],83428)},2287,60253,e=>{"use strict";var t=e.i(20314),r=e.i(79054),o=e.i(90033),n=e.i(90537);e.s(["X",()=>n.default],60253);var n=n,i=e.i(31777);let a=o.Dialog.Root,l=o.Dialog.Trigger,s=o.Dialog.Portal,d=o.Dialog.Close,u=r.forwardRef(({className:e,onClick:r,...n},a)=>(0,t.jsx)(o.Dialog.Overlay,{ref:a,className:(0,i.cn)("data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed inset-0 z-50 bg-black/80 duration-150",e),onClick:e=>{e.stopPropagation(),r?.(e)},...n}));u.displayName=o.Dialog.Overlay.displayName;let c=r.forwardRef(({className:e,children:r,...a},l)=>(0,t.jsxs)(s,{children:[(0,t.jsx)(u,{}),(0,t.jsxs)(o.Dialog.Content,{ref:l,className:(0,i.cn)("bg-background data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-150 sm:rounded-lg",e),...a,children:[r,(0,t.jsxs)(o.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 cursor-pointer rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[(0,t.jsx)(n.default,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));c.displayName=o.Dialog.Content.displayName;let p=({className:e,...r})=>(0,t.jsx)("div",{className:(0,i.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...r});p.displayName="DialogHeader";let f=({className:e,...r})=>(0,t.jsx)("div",{className:(0,i.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...r});f.displayName="DialogFooter";let g=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(o.Dialog.Title,{ref:n,className:(0,i.cn)("text-lg leading-none font-semibold tracking-tight",e),...r}));g.displayName=o.Dialog.Title.displayName;let m=r.forwardRef(({className:e,...r},n)=>(0,t.jsx)(o.Dialog.Description,{ref:n,className:(0,i.cn)("text-muted-foreground text-sm",e),...r}));m.displayName=o.Dialog.Description.displayName,e.s(["Dialog",()=>a,"DialogClose",()=>d,"DialogContent",()=>c,"DialogDescription",()=>m,"DialogFooter",()=>f,"DialogHeader",()=>p,"DialogTitle",()=>g,"DialogTrigger",()=>l],2287)},8361,73709,18354,e=>{"use strict";var t=e.i(44172),r=e.i(79054);let o="shep-sound-enabled",n="shep:sound-toggle";function i(){let[e,t]=(0,r.useState)(!0);(0,r.useEffect)(()=>{"false"===localStorage.getItem(o)&&t(!1);let e=e=>{t(e.detail)};return window.addEventListener(n,e),()=>window.removeEventListener(n,e)},[]);let i=(0,r.useCallback)(()=>{let r=!e;localStorage.setItem(o,String(r)),t(r),window.dispatchEvent(new CustomEvent(n,{detail:r}))},[e]);return{enabled:e,toggle:i}}e.s(["useSoundEnabled",()=>i],73709);let a=new Map,l={navigate:{sound:"tap_01",volume:.2},"menu-item":{sound:"tap_01",volume:.2},select:{sound:"select",volume:.3},"toggle-on":{sound:"toggle_on",volume:.3},"toggle-off":{sound:"toggle_off",volume:.3},click:{sound:"tap_01",volume:.3},cancel:{sound:"transition_down",volume:.3},expand:{sound:"swipe",volume:.3},collapse:{sound:"swipe",volume:.3},"menu-open":{sound:"select",volume:.3},copy:{sound:"select",volume:.3},"drawer-open":{sound:"transition_up",volume:.4},"drawer-close":{sound:"transition_down",volume:.4},submit:{sound:"button",volume:.4},approve:{sound:"celebration",volume:.5},reject:{sound:"caution",volume:.5},create:{sound:"transition_up",volume:.5},delete:{sound:"transition_down",volume:.5},"notification-success":{sound:"celebration",volume:.5},"notification-error":{sound:"caution",volume:.5},"notification-warning":{sound:"notification",volume:.5},"notification-info":{sound:"button",volume:.5}};function s(e){let{sound:t,volume:o}=l[e];return function(e,t={}){let{volume:o=1,loop:n=!1}=t,{enabled:l}=i(),s=(0,r.useRef)(null),d=(0,r.useRef)(!1);return(0,r.useEffect)(()=>{let t,r=((t=a.get(e))||((t=new Audio(`/sounds/${e}.wav`)).preload="auto",a.set(e,t)),t);return r.loop=n,r.volume=Math.max(0,Math.min(1,o)),r.addEventListener("ended",()=>{d.current=!1}),s.current=r,()=>{r.pause(),s.current=null,d.current=!1}},[e,n,o]),{play:(0,r.useCallback)(()=>{if(!l)return;let e=s.current;e&&(e.currentTime=0,e.play()?.catch(e=>{}),d.current=!0)},[l,e]),stop:(0,r.useCallback)(()=>{let e=s.current;e&&(e.pause(),e.currentTime=0,d.current=!1)},[]),isPlaying:d.current}}(t,{volume:o})}e.s(["useSoundAction",()=>s],8361);let d=!!t.default.env.NEXT_PUBLIC_DEBUG,u=()=>void 0;function c(e){return{info:d?(...t)=>console.info(e,...t):u,debug:d?(...t)=>console.debug(e,...t):u,warn:(...t)=>console.warn(e,...t),error:(...t)=>console.error(e,...t)}}e.s(["createLogger",()=>c],18354)},75921,e=>{"use strict";var t=e.i(20314),r=e.i(79054);let o=(0,r.createContext)({skills:!1,envDeploy:!0,debug:!1,githubImport:!1,adoptBranch:!1,reactFileManager:!1});function n({children:e,flags:r}){return(0,t.jsx)(o.Provider,{value:r,children:e})}function i(){return(0,r.useContext)(o)}e.s(["FeatureFlagsProvider",()=>n,"useFeatureFlags",()=>i])},31406,(e,t,r)=>{t.exports=e.r(67013)},80764,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return n}});let o=e.r(79054);function n(e,t){let r=(0,o.useRef)(null),n=(0,o.useRef)(null);return(0,o.useCallback)(o=>{if(null===o){let e=r.current;e&&(r.current=null,e());let t=n.current;t&&(n.current=null,t())}else e&&(r.current=i(e,o)),t&&(n.current=i(t,o))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(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)},47904,(e,t,r)=>{"use strict";function o({widthInt:e,heightInt:t,blurWidth:r,blurHeight:o,blurDataURL:n,objectFit:i}){let a=r?40*r:e,l=o?40*o:t,s=a&&l?`viewBox='0 0 ${a} ${l}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${s}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${s?"none":"contain"===i?"xMidYMid":"cover"===i?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${n}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return o}})},49261,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var o={VALID_LOADERS:function(){return i},imageConfigDefault:function(){return a}};for(var n in o)Object.defineProperty(r,n,{enumerable:!0,get:o[n]});let i=["default","imgix","cloudinary","akamai","custom"],a={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},81241,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return d}}),e.r(24270);let o=e.r(22193),n=e.r(47904),i=e.r(49261),a=["-moz-initial","fill","none","scale-down",void 0];function l(e){return void 0!==e.default}function s(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function d({src:e,sizes:t,unoptimized:r=!1,priority:d=!1,preload:u=!1,loading:c,className:p,quality:f,width:g,height:m,fill:h=!1,style:v,overrideSrc:y,onLoad:x,onLoadingComplete:b,placeholder:w="empty",blurDataURL:C,fetchPriority:j,decoding:D="async",layout:P,objectFit:_,objectPosition:R,lazyBoundary:E,lazyRoot:T,...O},N){var A;let k,S,I,{imgConf:z,showAltText:M,blurComplete:F,defaultLoader:L}=N,$=z||i.imageConfigDefault;if("allSizes"in $)k=$;else{let e=[...$.deviceSizes,...$.imageSizes].sort((e,t)=>e-t),t=$.deviceSizes.sort((e,t)=>e-t),r=$.qualities?.sort((e,t)=>e-t);k={...$,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===L)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let B=O.loader||L;delete O.loader,delete O.srcSet;let G="__next_img_default"in B;if(G){if("custom"===k.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
12
- Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=B;B=t=>{let{config:r,...o}=t;return e(o)}}if(P){"fill"===P&&(h=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[P];e&&(v={...v,...e});let r={responsive:"100vw",fill:"100vw"}[P];r&&!t&&(t=r)}let H="",U=s(g),W=s(m);if((A=e)&&"object"==typeof A&&(l(A)||void 0!==A.src)){let t=l(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(S=t.blurWidth,I=t.blurHeight,C=C||t.blurDataURL,H=t.src,!h)if(U||W){if(U&&!W){let e=U/t.width;W=Math.round(t.height*e)}else if(!U&&W){let e=W/t.height;U=Math.round(t.width*e)}}else U=t.width,W=t.height}let q=!d&&!u&&("lazy"===c||void 0===c);(!(e="string"==typeof e?e:H)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,q=!1),k.unoptimized&&(r=!0),G&&!k.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let X=s(f),V=Object.assign(h?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:_,objectPosition:R}:{},M?{}:{color:"transparent"},v),Y=F||"empty"===w?null:"blur"===w?`url("data:image/svg+xml;charset=utf-8,${(0,n.getImageBlurSvg)({widthInt:U,heightInt:W,blurWidth:S,blurHeight:I,blurDataURL:C||"",objectFit:V.objectFit})}")`:`url("${w}")`,K=a.includes(V.objectFit)?"fill"===V.objectFit?"100% 100%":"cover":V.objectFit,J=Y?{backgroundSize:K,backgroundPosition:V.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},Q=function({config:e,src:t,unoptimized:r,width:n,quality:i,sizes:a,loader:l}){if(r){let e=(0,o.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")&&e){let r=t.includes("?")?"&":"?";t=`${t}${r}dpl=${e}`}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:s,kind:d}=function({deviceSizes:e,allSizes:t},r,o){if(o){let r=/(^|\s)(1?\d?\d)vw/g,n=[];for(let e;e=r.exec(o);)n.push(parseInt(e[2]));if(n.length){let r=.01*Math.min(...n);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,n,a),u=s.length-1;return{sizes:a||"w"!==d?a:"100vw",srcSet:s.map((r,o)=>`${l({config:e,src:t,quality:i,width:r})} ${"w"===d?r:o+1}${d}`).join(", "),src:l({config:e,src:t,quality:i,width:s[u]})}}({config:k,src:e,unoptimized:r,width:U,quality:X,sizes:t,loader:B}),Z=q?"lazy":c;return{props:{...O,loading:Z,fetchPriority:j,width:U,height:W,decoding:D,className:p,style:{...V,...J},sizes:Q.sizes,srcSet:Q.srcSet,src:y||Q.src},meta:{unoptimized:r,preload:u||d,placeholder:w,fill:h}}}},38820,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}});let o=e.r(79054),n="u"<typeof window,i=n?()=>{}:o.useLayoutEffect,a=n?()=>{}:o.useEffect;function l(e){let{headManager:t,reduceComponentsToState:r}=e;function l(){if(t&&t.mountedInstances){let e=o.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return n&&(t?.mountedInstances?.add(e.children),l()),i(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),i(()=>(t&&(t._pendingUpdate=l),()=>{t&&(t._pendingUpdate=l)})),a(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},79646,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var o={default:function(){return m},defaultHead:function(){return c}};for(var n in o)Object.defineProperty(r,n,{enumerable:!0,get:o[n]});let i=e.r(81258),a=e.r(44066),l=e.r(20314),s=a._(e.r(79054)),d=i._(e.r(38820)),u=e.r(84210);function c(){return[(0,l.jsx)("meta",{charSet:"utf-8"},"charset"),(0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function p(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===s.default.Fragment?e.concat(s.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(24270);let f=["name","httpEquiv","charSet","itemProp"];function g(e){let t,r,o,n;return e.reduce(p,[]).reverse().concat(c().reverse()).filter((t=new Set,r=new Set,o=new Set,n={},e=>{let i=!0,a=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){a=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?i=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?i=!1:r.add(e.type);break;case"meta":for(let t=0,r=f.length;t<r;t++){let r=f[t];if(e.props.hasOwnProperty(r))if("charSet"===r)o.has(r)?i=!1:o.add(r);else{let t=e.props[r],o=n[r]||new Set;("name"!==r||!a)&&o.has(t)?i=!1:(o.add(t),n[r]=o)}}}return i})).reverse().map((e,t)=>{let r=e.key||t;return s.default.cloneElement(e,{key:r})})}let m=function({children:e}){let t=(0,s.useContext)(u.HeadManagerContext);return(0,l.jsx)(d.default,{reduceComponentsToState:g,headManager: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)},5160,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return i}});let o=e.r(81258)._(e.r(79054)),n=e.r(49261),i=o.default.createContext(n.imageConfigDefault)},2880,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return o}});let o=e.r(81258)._(e.r(79054)).default.createContext(null)},36200,(e,t,r)=>{"use strict";function o(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,0):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return o}})},78200,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return a}});let o=e.r(36200),n=e.r(22193);function i({config:e,src:t,width:r,quality:i}){if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
13
- Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let a=(0,o.findClosestQuality)(i,e),l=(0,n.getDeploymentId)();return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${a}${t.startsWith("/")&&l?`&dpl=${l}`:""}`}i.__next_img_default=!0;let a=i},81819,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return b}});let o=e.r(81258),n=e.r(44066),i=e.r(20314),a=n._(e.r(79054)),l=o._(e.r(26036)),s=o._(e.r(79646)),d=e.r(81241),u=e.r(49261),c=e.r(5160);e.r(24270);let p=e.r(2880),f=o._(e.r(78200)),g=e.r(80764),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(e,t,r,o,n,i,a){let l=e?.src;e&&e["data-loaded-src"]!==l&&(e["data-loaded-src"]=l,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&n(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let o=!1,n=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>o,isPropagationStopped:()=>n,persist:()=>{},preventDefault:()=>{o=!0,t.preventDefault()},stopPropagation:()=>{n=!0,t.stopPropagation()}})}o?.current&&o.current(e)}}))}function v(e){return a.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let y=(0,a.forwardRef)(({src:e,srcSet:t,sizes:r,height:o,width:n,decoding:l,className:s,style:d,fetchPriority:u,placeholder:c,loading:p,unoptimized:f,fill:m,onLoadRef:y,onLoadingCompleteRef:x,setBlurComplete:b,setShowAltText:w,sizesInput:C,onLoad:j,onError:D,...P},_)=>{let R=(0,a.useCallback)(e=>{e&&(D&&(e.src=e.src),e.complete&&h(e,c,y,x,b,f,C))},[e,c,y,x,b,D,f,C]),E=(0,g.useMergedRef)(_,R);return(0,i.jsx)("img",{...P,...v(u),loading:p,width:n,height:o,decoding:l,"data-nimg":m?"fill":"1",className:s,style:d,sizes:r,srcSet:t,src:e,ref:E,onLoad:e=>{h(e.currentTarget,c,y,x,b,f,C)},onError:e=>{w(!0),"empty"!==c&&b(!0),D&&D(e)}})});function x({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...v(t.fetchPriority)};return e&&l.default.preload?(l.default.preload(t.src,r),null):(0,i.jsx)(s.default,{children:(0,i.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let b=(0,a.forwardRef)((e,t)=>{let r=(0,a.useContext)(p.RouterContext),o=(0,a.useContext)(c.ImageConfigContext),n=(0,a.useMemo)(()=>{let e=m||o||u.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),n=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:n,localPatterns:"u"<typeof window?o?.localPatterns:e.localPatterns}},[o]),{onLoad:l,onLoadingComplete:s}=e,g=(0,a.useRef)(l);(0,a.useEffect)(()=>{g.current=l},[l]);let h=(0,a.useRef)(s);(0,a.useEffect)(()=>{h.current=s},[s]);let[v,b]=(0,a.useState)(!1),[w,C]=(0,a.useState)(!1),{props:j,meta:D}=(0,d.getImgProps)(e,{defaultLoader:f.default,imgConf:n,blurComplete:v,showAltText:w});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(y,{...j,unoptimized:D.unoptimized,placeholder:D.placeholder,fill:D.fill,onLoadRef:g,onLoadingCompleteRef:h,setBlurComplete:b,setShowAltText:C,sizesInput:e.sizes,ref:t}),D.preload?(0,i.jsx)(x,{isAppRouter:!r,imgAttributes:j}):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)},78639,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var o={default:function(){return u},getImageProps:function(){return d}};for(var n in o)Object.defineProperty(r,n,{enumerable:!0,get:o[n]});let i=e.r(81258),a=e.r(81241),l=e.r(81819),s=i._(e.r(78200));function d(e){let{props:t}=(0,a.getImgProps)(e,{defaultLoader:s.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let u=l.Image},98804,(e,t,r)=>{t.exports=e.r(78639)},86782,29847,e=>{"use strict";var t=e.i(20314),r=e.i(98804),o=e.i(31777);function n(e,n){function i({className:i}){return(0,t.jsx)(r.default,{src:e,alt:n,width:24,height:24,className:(0,o.cn)("rounded-sm object-contain",i)})}return i.displayName=`BrandIcon(${n})`,i}function i(e){return(0,t.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"3",fill:"currentColor"})]})}function a({className:e,...r}){return(0,t.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:(0,o.cn)("h-6 w-6",e),...r,children:[(0,t.jsx)("defs",{children:(0,t.jsxs)("linearGradient",{id:"dev-flask-grad",x1:"6",y1:"22",x2:"18",y2:"8",gradientUnits:"userSpaceOnUse",children:[(0,t.jsx)("stop",{offset:"0%",stopColor:"#8B5CF6"}),(0,t.jsx)("stop",{offset:"50%",stopColor:"#EC4899"}),(0,t.jsx)("stop",{offset:"100%",stopColor:"#F59E0B"})]})}),(0,t.jsx)("path",{d:"M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z",fill:"url(#dev-flask-grad)",opacity:"0.9"}),(0,t.jsx)("path",{d:"M9 2h6v6l4.5 9a2 2 0 0 1-1.79 2.89H6.29A2 2 0 0 1 4.5 17L9 8V2z",stroke:"url(#dev-flask-grad)",strokeWidth:"1.5",fill:"none"}),(0,t.jsx)("circle",{cx:"10",cy:"14",r:"1.2",fill:"white",opacity:"0.7"}),(0,t.jsx)("circle",{cx:"13.5",cy:"16",r:"0.8",fill:"white",opacity:"0.5"}),(0,t.jsx)("circle",{cx:"11.5",cy:"17.5",r:"0.6",fill:"white",opacity:"0.4"}),(0,t.jsx)("path",{d:"M16 4l1-2 1 2-2 1 2 1-1 2-1-2-2-1z",fill:"#F59E0B"})]})}a.displayName="DevAgentIcon";let l={"claude-code":n("/icons/agents/claude-ai-icon.svg","Claude Code"),cursor:n("/icons/agents/cursor.jpeg","Cursor"),"gemini-cli":n("/icons/agents/gemini-cli.jpeg","Gemini CLI"),aider:n("/icons/agents/aider.png","Aider"),continue:n("/icons/agents/continue.jpeg","Continue"),dev:a};function s(e){return e&&e in l?l[e]:i}e.s(["agentTypeLabels",0,{"claude-code":"Claude Code",cursor:"Cursor","gemini-cli":"Gemini CLI",aider:"Aider",continue:"Continue",dev:"Demo"},"getAgentTypeIcon",()=>s],86782);let d={"claude-opus-4-6":{displayName:"Opus 4.6",description:"Most capable, complex tasks"},"claude-sonnet-4-6":{displayName:"Sonnet 4.6",description:"Fast & balanced"},"claude-haiku-4-5":{displayName:"Haiku 4.5",description:"Lightweight & quick"},"gemini-3.1-pro":{displayName:"Gemini 3.1 Pro",description:"Advanced reasoning"},"gemini-3-flash":{displayName:"Gemini 3 Flash",description:"Ultra-fast responses"},"gemini-2.5-pro":{displayName:"Gemini 2.5 Pro",description:"Reliable workhorse"},"gemini-2.5-flash":{displayName:"Gemini 2.5 Flash",description:"Speed-optimized"},"gpt-5.4-high":{displayName:"GPT-5.4",description:"Latest reasoning model"},"gpt-5.2":{displayName:"GPT-5.2",description:"Flagship model"},"gpt-5.3-codex":{displayName:"GPT-5.3 Codex",description:"Code specialist"},"composer-1.5":{displayName:"Composer 1.5",description:"Multi-file editing"},"grok-code":{displayName:"Grok Code",description:"xAI code model"},"gpt-8":{displayName:"GPT-8",description:"Writes code before you think it"},"opus-7":{displayName:"Opus 7",description:"Achieved consciousness, ships on time"}},u={displayName:"",description:""};function c(e){let t=d[e];return t||{...u,displayName:e.replace(/^claude-/,"").replace(/^gemini-/,"Gemini ").replace(/^gpt-/,"GPT-").replace(/-/g," ").replace(/\b\w/g,e=>e.toUpperCase())}}e.s(["getModelMeta",()=>c],29847)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,87292,e=>{"use strict";var t=e.i(20314),a=e.i(79054),r=e.i(31406),i=e.i(3214),s=e.i(91925),n=e.i(82569),o=e.i(49228),l=e.i(94237),d=e.i(3645);let c=(0,d.default)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);var u=e.i(5240),p=e.i(31777),h=e.i(35364),f=e.i(98127);e.i(25235);var m=e.i(48249),g=e.i(90033);function b({...e}){return(0,t.jsx)(g.Dialog.Root,{"data-slot":"sheet",...e})}function x({...e}){return(0,t.jsx)(g.Dialog.Portal,{"data-slot":"sheet-portal",...e})}function v({className:e,...a}){return(0,t.jsx)(g.Dialog.Overlay,{"data-slot":"sheet-overlay",className:(0,p.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),...a})}function w({className:e,children:a,side:r="right",showCloseButton:i=!0,...s}){return(0,t.jsxs)(x,{children:[(0,t.jsx)(v,{}),(0,t.jsxs)(g.Dialog.Content,{"data-slot":"sheet-content",className:(0,p.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"===r&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm","left"===r&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm","top"===r&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===r&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",e),...s,children:[a,i?(0,t.jsxs)(g.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-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)(m.XIcon,{className:"size-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})]})}function j({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sheet-header",className:(0,p.cn)("flex flex-col gap-1.5 p-4",e),...a})}function y({className:e,...a}){return(0,t.jsx)(g.Dialog.Title,{"data-slot":"sheet-title",className:(0,p.cn)("text-foreground font-semibold",e),...a})}function C({className:e,...a}){return(0,t.jsx)(g.Dialog.Description,{"data-slot":"sheet-description",className:(0,p.cn)("text-muted-foreground text-sm",e),...a})}function N({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"skeleton",className:(0,p.cn)("bg-accent animate-pulse rounded-md",e),...a})}var S=e.i(2828);let k="shep-sidebar-open",T=a.createContext(null);function E(){let e=a.useContext(T);if(!e)throw Error("useSidebar must be used within a SidebarProvider.");return e}function R({defaultOpen:e=!0,open:r,onOpenChange:i,className:s,style:n,children:o,...l}){let d=function(){let[e,t]=a.useState(void 0);return a.useEffect(()=>{let e=window.matchMedia("(max-width: 767px)"),a=()=>{t(window.innerWidth<768)};return e.addEventListener("change",a),t(window.innerWidth<768),()=>e.removeEventListener("change",a)},[]),!!e}(),[c,u]=a.useState(!1),[h,f]=a.useState(e),m=r??h;a.useEffect(()=>{if(void 0!==r)return;let t=function(e){try{let t=localStorage.getItem(k);if("true"===t)return!0;if("false"===t)return!1;return e}catch{return e}}(e);t!==e&&f(t)},[]);let g=a.useCallback(e=>{let t="function"==typeof e?e(m):e;i?i(t):f(t);try{localStorage.setItem(k,String(t))}catch{}},[i,m]),b=a.useCallback(()=>d?u(e=>!e):g(e=>!e),[d,g,u]);a.useEffect(()=>{let e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),b())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[b]);let x=m?"expanded":"collapsed",v=a.useMemo(()=>({state:x,open:m,setOpen:g,isMobile:d,openMobile:c,setOpenMobile:u,toggleSidebar:b}),[x,m,g,d,c,u,b]);return(0,t.jsx)(T.Provider,{value:v,children:(0,t.jsx)(S.TooltipProvider,{delayDuration:0,children:(0,t.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...n},className:(0,p.cn)("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",s),...l,children:o})})})}function A({side:e="left",variant:a="sidebar",collapsible:r="offcanvas",className:i,children:s,...n}){let{isMobile:o,state:l,openMobile:d,setOpenMobile:c}=E();return"none"===r?(0,t.jsx)("div",{"data-slot":"sidebar",className:(0,p.cn)("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",i),...n,children:s}):o?(0,t.jsx)(b,{open:d,onOpenChange:c,...n,children:(0,t.jsxs)(w,{"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)(j,{className:"sr-only",children:[(0,t.jsx)(y,{children:"Sidebar"}),(0,t.jsx)(C,{children:"Displays the mobile sidebar."})]}),(0,t.jsx)("div",{className:"flex h-full w-full flex-col",children:s})]})}):(0,t.jsxs)("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":l,"data-collapsible":"collapsed"===l?r:"","data-variant":a,"data-side":e,"data-slot":"sidebar",children:[(0,t.jsx)("div",{"data-slot":"sidebar-gap",className:(0,p.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===a||"inset"===a?"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,p.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===e?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]","floating"===a||"inset"===a?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",i),...n,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:s})})]})}function L({className:e,...a}){let{toggleSidebar:r}=E();return(0,t.jsx)("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:r,title:"Toggle Sidebar",className:(0,p.cn)("hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][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:left-full","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",e),...a})}function P({className:e,...a}){return(0,t.jsx)("main",{"data-slot":"sidebar-inset",className:(0,p.cn)("bg-background relative flex w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",e),...a})}function D({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,p.cn)("flex flex-col gap-2 p-2",e),...a})}function z({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,p.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",e),...a})}function M({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,p.cn)("relative flex w-full min-w-0 flex-col p-2",e),...a})}function _({className:e,asChild:a=!1,...r}){let i=a?u.Slot.Root:"div";return(0,t.jsx)(i,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,p.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),...r})}function I({className:e,...a}){return(0,t.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,p.cn)("w-full text-sm",e),...a})}function H({className:e,...a}){return(0,t.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,p.cn)("flex w-full min-w-0 flex-col gap-1",e),...a})}function O({className:e,...a}){return(0,t.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,p.cn)("group/menu-item relative",e),...a})}let W=(0,l.cva)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-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 F({asChild:e=!1,isActive:a=!1,variant:r="default",size:i="default",tooltip:s,className:n,...o}){let l=e?u.Slot.Root:"button",{isMobile:d,state:c}=E(),h=(0,t.jsx)(l,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":i,"data-active":a,className:(0,p.cn)(W({variant:r,size:i}),n),...o});return s?("string"==typeof s&&(s={children:s}),(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:h}),(0,t.jsx)(S.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==c||d,...s})]})):h}let B=(0,d.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);var U=e.i(81975),$=e.i(12103);let G=(0,d.default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var V=e.i(87620),X=e.i(85995),Y=e.i(22528),Z=e.i(5978),q=e.i(29297),K=e.i(66033),J=e.i(5192),Q=e.i(27069),ee=e.i(91967),et="ScrollArea",[ea,er]=(0,Y.createContextScope)(et),[ei,es]=ea(et),en=a.forwardRef((e,r)=>{let{__scopeScrollArea:i,type:s="hover",dir:n,scrollHideDelay:o=600,...l}=e,[d,c]=a.useState(null),[u,p]=a.useState(null),[h,f]=a.useState(null),[m,g]=a.useState(null),[b,x]=a.useState(null),[v,w]=a.useState(0),[j,y]=a.useState(0),[C,N]=a.useState(!1),[S,k]=a.useState(!1),T=(0,Z.useComposedRefs)(r,e=>c(e)),E=(0,K.useDirection)(n);return(0,t.jsx)(ei,{scope:i,type:s,dir:E,scrollHideDelay:o,scrollArea:d,viewport:u,onViewportChange:p,content:h,onContentChange:f,scrollbarX:m,onScrollbarXChange:g,scrollbarXEnabled:C,onScrollbarXEnabledChange:N,scrollbarY:b,onScrollbarYChange:x,scrollbarYEnabled:S,onScrollbarYEnabledChange:k,onCornerWidthChange:w,onCornerHeightChange:y,children:(0,t.jsx)(V.Primitive.div,{dir:E,...l,ref:T,style:{position:"relative","--radix-scroll-area-corner-width":v+"px","--radix-scroll-area-corner-height":j+"px",...e.style}})})});en.displayName=et;var eo="ScrollAreaViewport",el=a.forwardRef((e,r)=>{let{__scopeScrollArea:i,children:s,nonce:n,...o}=e,l=es(eo,i),d=a.useRef(null),c=(0,Z.useComposedRefs)(r,d,l.onViewportChange);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:n}),(0,t.jsx)(V.Primitive.div,{"data-radix-scroll-area-viewport":"",...o,ref:c,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,t.jsx)("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:s})})]})});el.displayName=eo;var ed="ScrollAreaScrollbar",ec=a.forwardRef((e,r)=>{let{forceMount:i,...s}=e,n=es(ed,e.__scopeScrollArea),{onScrollbarXEnabledChange:o,onScrollbarYEnabledChange:l}=n,d="horizontal"===e.orientation;return a.useEffect(()=>(d?o(!0):l(!0),()=>{d?o(!1):l(!1)}),[d,o,l]),"hover"===n.type?(0,t.jsx)(eu,{...s,ref:r,forceMount:i}):"scroll"===n.type?(0,t.jsx)(ep,{...s,ref:r,forceMount:i}):"auto"===n.type?(0,t.jsx)(eh,{...s,ref:r,forceMount:i}):"always"===n.type?(0,t.jsx)(ef,{...s,ref:r}):null});ec.displayName=ed;var eu=a.forwardRef((e,r)=>{let{forceMount:i,...s}=e,n=es(ed,e.__scopeScrollArea),[o,l]=a.useState(!1);return a.useEffect(()=>{let e=n.scrollArea,t=0;if(e){let a=()=>{window.clearTimeout(t),l(!0)},r=()=>{t=window.setTimeout(()=>l(!1),n.scrollHideDelay)};return e.addEventListener("pointerenter",a),e.addEventListener("pointerleave",r),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",a),e.removeEventListener("pointerleave",r)}}},[n.scrollArea,n.scrollHideDelay]),(0,t.jsx)(X.Presence,{present:i||o,children:(0,t.jsx)(eh,{"data-state":o?"visible":"hidden",...s,ref:r})})}),ep=a.forwardRef((e,r)=>{var i;let{forceMount:s,...n}=e,o=es(ed,e.__scopeScrollArea),l="horizontal"===e.orientation,d=eP(()=>u("SCROLL_END"),100),[c,u]=(i={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},a.useReducer((e,t)=>i[e][t]??e,"hidden"));return a.useEffect(()=>{if("idle"===c){let e=window.setTimeout(()=>u("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(e)}},[c,o.scrollHideDelay,u]),a.useEffect(()=>{let e=o.viewport,t=l?"scrollLeft":"scrollTop";if(e){let a=e[t],r=()=>{let r=e[t];a!==r&&(u("SCROLL"),d()),a=r};return e.addEventListener("scroll",r),()=>e.removeEventListener("scroll",r)}},[o.viewport,l,u,d]),(0,t.jsx)(X.Presence,{present:s||"hidden"!==c,children:(0,t.jsx)(ef,{"data-state":"hidden"===c?"hidden":"visible",...n,ref:r,onPointerEnter:(0,ee.composeEventHandlers)(e.onPointerEnter,()=>u("POINTER_ENTER")),onPointerLeave:(0,ee.composeEventHandlers)(e.onPointerLeave,()=>u("POINTER_LEAVE"))})})}),eh=a.forwardRef((e,r)=>{let i=es(ed,e.__scopeScrollArea),{forceMount:s,...n}=e,[o,l]=a.useState(!1),d="horizontal"===e.orientation,c=eP(()=>{if(i.viewport){let e=i.viewport.offsetWidth<i.viewport.scrollWidth,t=i.viewport.offsetHeight<i.viewport.scrollHeight;l(d?e:t)}},10);return eD(i.viewport,c),eD(i.content,c),(0,t.jsx)(X.Presence,{present:s||o,children:(0,t.jsx)(ef,{"data-state":o?"visible":"hidden",...n,ref:r})})}),ef=a.forwardRef((e,r)=>{let{orientation:i="vertical",...s}=e,n=es(ed,e.__scopeScrollArea),o=a.useRef(null),l=a.useRef(0),[d,c]=a.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=eT(d.viewport,d.content),p={...s,sizes:d,onSizesChange:c,hasThumb:!!(u>0&&u<1),onThumbChange:e=>o.current=e,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:e=>l.current=e};function h(e,t){return function(e,t,a,r="ltr"){let i=eE(a),s=t||i/2,n=a.scrollbar.paddingStart+s,o=a.scrollbar.size-a.scrollbar.paddingEnd-(i-s),l=a.content-a.viewport;return eA([n,o],"ltr"===r?[0,l]:[-1*l,0])(e)}(e,l.current,d,t)}return"horizontal"===i?(0,t.jsx)(em,{...p,ref:r,onThumbPositionChange:()=>{if(n.viewport&&o.current){let e=eR(n.viewport.scrollLeft,d,n.dir);o.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{n.viewport&&(n.viewport.scrollLeft=e)},onDragScroll:e=>{n.viewport&&(n.viewport.scrollLeft=h(e,n.dir))}}):"vertical"===i?(0,t.jsx)(eg,{...p,ref:r,onThumbPositionChange:()=>{if(n.viewport&&o.current){let e=eR(n.viewport.scrollTop,d);o.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{n.viewport&&(n.viewport.scrollTop=e)},onDragScroll:e=>{n.viewport&&(n.viewport.scrollTop=h(e))}}):null}),em=a.forwardRef((e,r)=>{let{sizes:i,onSizesChange:s,...n}=e,o=es(ed,e.__scopeScrollArea),[l,d]=a.useState(),c=a.useRef(null),u=(0,Z.useComposedRefs)(r,c,o.onScrollbarXChange);return a.useEffect(()=>{c.current&&d(getComputedStyle(c.current))},[c]),(0,t.jsx)(ev,{"data-orientation":"horizontal",...n,ref:u,sizes:i,style:{bottom:0,left:"rtl"===o.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===o.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":eE(i)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,a)=>{if(o.viewport){var r,i;let s=o.viewport.scrollLeft+t.deltaX;e.onWheelScroll(s),r=s,i=a,r>0&&r<i&&t.preventDefault()}},onResize:()=>{c.current&&o.viewport&&l&&s({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:ek(l.paddingLeft),paddingEnd:ek(l.paddingRight)}})}})}),eg=a.forwardRef((e,r)=>{let{sizes:i,onSizesChange:s,...n}=e,o=es(ed,e.__scopeScrollArea),[l,d]=a.useState(),c=a.useRef(null),u=(0,Z.useComposedRefs)(r,c,o.onScrollbarYChange);return a.useEffect(()=>{c.current&&d(getComputedStyle(c.current))},[c]),(0,t.jsx)(ev,{"data-orientation":"vertical",...n,ref:u,sizes:i,style:{top:0,right:"ltr"===o.dir?0:void 0,left:"rtl"===o.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":eE(i)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,a)=>{if(o.viewport){var r,i;let s=o.viewport.scrollTop+t.deltaY;e.onWheelScroll(s),r=s,i=a,r>0&&r<i&&t.preventDefault()}},onResize:()=>{c.current&&o.viewport&&l&&s({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:ek(l.paddingTop),paddingEnd:ek(l.paddingBottom)}})}})}),[eb,ex]=ea(ed),ev=a.forwardRef((e,r)=>{let{__scopeScrollArea:i,sizes:s,hasThumb:n,onThumbChange:o,onThumbPointerUp:l,onThumbPointerDown:d,onThumbPositionChange:c,onDragScroll:u,onWheelScroll:p,onResize:h,...f}=e,m=es(ed,i),[g,b]=a.useState(null),x=(0,Z.useComposedRefs)(r,e=>b(e)),v=a.useRef(null),w=a.useRef(""),j=m.viewport,y=s.content-s.viewport,C=(0,q.useCallbackRef)(p),N=(0,q.useCallbackRef)(c),S=eP(h,10);function k(e){v.current&&u({x:e.clientX-v.current.left,y:e.clientY-v.current.top})}return a.useEffect(()=>{let e=e=>{let t=e.target;g?.contains(t)&&C(e,y)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[j,g,y,C]),a.useEffect(N,[s,N]),eD(g,S),eD(m.content,S),(0,t.jsx)(eb,{scope:i,scrollbar:g,hasThumb:n,onThumbChange:(0,q.useCallbackRef)(o),onThumbPointerUp:(0,q.useCallbackRef)(l),onThumbPositionChange:N,onThumbPointerDown:(0,q.useCallbackRef)(d),children:(0,t.jsx)(V.Primitive.div,{...f,ref:x,style:{position:"absolute",...f.style},onPointerDown:(0,ee.composeEventHandlers)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),v.current=g.getBoundingClientRect(),w.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",m.viewport&&(m.viewport.style.scrollBehavior="auto"),k(e))}),onPointerMove:(0,ee.composeEventHandlers)(e.onPointerMove,k),onPointerUp:(0,ee.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=w.current,m.viewport&&(m.viewport.style.scrollBehavior=""),v.current=null})})})}),ew="ScrollAreaThumb",ej=a.forwardRef((e,a)=>{let{forceMount:r,...i}=e,s=ex(ew,e.__scopeScrollArea);return(0,t.jsx)(X.Presence,{present:r||s.hasThumb,children:(0,t.jsx)(ey,{ref:a,...i})})}),ey=a.forwardRef((e,r)=>{let{__scopeScrollArea:i,style:s,...n}=e,o=es(ew,i),l=ex(ew,i),{onThumbPositionChange:d}=l,c=(0,Z.useComposedRefs)(r,e=>l.onThumbChange(e)),u=a.useRef(void 0),p=eP(()=>{u.current&&(u.current(),u.current=void 0)},100);return a.useEffect(()=>{let e=o.viewport;if(e){let t=()=>{p(),u.current||(u.current=eL(e,d),d())};return d(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}},[o.viewport,p,d]),(0,t.jsx)(V.Primitive.div,{"data-state":l.hasThumb?"visible":"hidden",...n,ref:c,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...s},onPointerDownCapture:(0,ee.composeEventHandlers)(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),a=e.clientX-t.left,r=e.clientY-t.top;l.onThumbPointerDown({x:a,y:r})}),onPointerUp:(0,ee.composeEventHandlers)(e.onPointerUp,l.onThumbPointerUp)})});ej.displayName=ew;var eC="ScrollAreaCorner",eN=a.forwardRef((e,a)=>{let r=es(eC,e.__scopeScrollArea),i=!!(r.scrollbarX&&r.scrollbarY);return"scroll"!==r.type&&i?(0,t.jsx)(eS,{...e,ref:a}):null});eN.displayName=eC;var eS=a.forwardRef((e,r)=>{let{__scopeScrollArea:i,...s}=e,n=es(eC,i),[o,l]=a.useState(0),[d,c]=a.useState(0),u=!!(o&&d);return eD(n.scrollbarX,()=>{let e=n.scrollbarX?.offsetHeight||0;n.onCornerHeightChange(e),c(e)}),eD(n.scrollbarY,()=>{let e=n.scrollbarY?.offsetWidth||0;n.onCornerWidthChange(e),l(e)}),u?(0,t.jsx)(V.Primitive.div,{...s,ref:r,style:{width:o,height:d,position:"absolute",right:"ltr"===n.dir?0:void 0,left:"rtl"===n.dir?0:void 0,bottom:0,...e.style}}):null});function ek(e){return e?parseInt(e,10):0}function eT(e,t){let a=e/t;return isNaN(a)?0:a}function eE(e){let t=eT(e.viewport,e.content),a=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-a)*t,18)}function eR(e,t,a="ltr"){let r=eE(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,s=t.scrollbar.size-i,n=t.content-t.viewport,o=(0,Q.clamp)(e,"ltr"===a?[0,n]:[-1*n,0]);return eA([0,n],[0,s-r])(o)}function eA(e,t){return a=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(a-e[0])}}var eL=(e,t=()=>{})=>{let a={left:e.scrollLeft,top:e.scrollTop},r=0;return!function i(){let s={left:e.scrollLeft,top:e.scrollTop},n=a.left!==s.left,o=a.top!==s.top;(n||o)&&t(),a=s,r=window.requestAnimationFrame(i)}(),()=>window.cancelAnimationFrame(r)};function eP(e,t){let r=(0,q.useCallbackRef)(e),i=a.useRef(0);return a.useEffect(()=>()=>window.clearTimeout(i.current),[]),a.useCallback(()=>{window.clearTimeout(i.current),i.current=window.setTimeout(r,t)},[r,t])}function eD(e,t){let a=(0,q.useCallbackRef)(t);(0,J.useLayoutEffect)(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(a)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,a])}e.s(["Corner",()=>eN,"Root",()=>en,"ScrollArea",()=>en,"ScrollAreaCorner",()=>eN,"ScrollAreaScrollbar",()=>ec,"ScrollAreaThumb",()=>ej,"ScrollAreaViewport",()=>el,"Scrollbar",()=>ec,"Thumb",()=>ej,"Viewport",()=>el,"createScrollAreaScope",()=>er],87516);var ez=e.i(87516),ez=ez;function eM({className:e,children:a,...r}){return(0,t.jsxs)(ez.Root,{"data-slot":"scroll-area",className:(0,p.cn)("relative",e),...r,children:[(0,t.jsx)(ez.Viewport,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&>div]:block!",children:a}),(0,t.jsx)(e_,{}),(0,t.jsx)(ez.Corner,{})]})}function e_({className:e,orientation:a="vertical",...r}){return(0,t.jsx)(ez.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:a,className:(0,p.cn)("flex touch-none p-px transition-colors select-none","vertical"===a&&"h-full w-2.5 border-l border-l-transparent","horizontal"===a&&"h-2.5 flex-col border-t border-t-transparent",e),...r,children:(0,t.jsx)(ez.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}var eI=e.i(24035),eH=e.i(8361);function eO({icon:e,label:a,href:r,active:i=!1}){let s=(0,eH.useSoundAction)("navigate");return(0,t.jsx)(O,{"data-testid":"sidebar-nav-item",children:(0,t.jsx)(F,{asChild:!0,isActive:i,tooltip:a,children:(0,t.jsxs)(eI.default,{href:r,onClick:()=>s.play(),children:[(0,t.jsx)(e,{}),(0,t.jsx)("span",{children:a})]})})})}function eW({className:e}){let{toggleSidebar:a,open:r}=E(),i=(0,eH.useSoundAction)("expand"),s=(0,eH.useSoundAction)("collapse");return(0,t.jsx)("div",{className:(0,p.cn)("flex",e),children:(0,t.jsx)(h.Button,{"data-testid":"sidebar-collapse-toggle",variant:"ghost",size:"icon",className:"size-7 cursor-pointer group-data-[collapsible=icon]:size-8!",onClick:()=>{r?s.play():i.play(),a()},"aria-label":r?"Collapse sidebar":"Expand sidebar",children:(0,t.jsx)(c,{className:"size-4"})})})}function eF({className:e,size:a=24,variant:r="default"}){return(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 194 200",width:a,height:a,className:(0,p.cn)("shrink-0","dev"===r&&"text-cyan-400",e),"aria-hidden":"true",children:(0,t.jsx)("g",{transform:"matrix(1, 0, 0, 1, -111, -208)",children:(0,t.jsx)("path",{d:"M 198 406 C196,405 194,403 193,401 C192,399 191,398 186,398 C178,397 174,394 170,387 L 168 381 L 163 381 C156,381 150,377 147,370 C144,364 143,359 146,353 C148,348 148,347 147,347 C145,347 140,343 138,339 C133,329 139,314 149,311 L 152 311 L 149 307 C145,302 145,294 149,290 C151,288 152,287 151,286 C150,283 152,278 155,276 C156,275 159,274 162,273 C165,273 166,273 168,276 C171,278 171,280 172,287 C173,294 174,297 177,304 C180,309 182,314 183,316 C186,327 193,336 199,339 C204,342 211,342 216,340 C222,336 231,324 234,314 C235,312 237,307 239,302 C240,298 242,292 242,289 C243,281 245,278 247,275 C250,273 251,273 255,273 C261,274 264,278 264,282 C264,284 264,286 263,287 C262,287 263,288 265,290 C272,295 272,303 267,309 L 265 312 L 269 314 C276,317 279,323 279,332 C279,339 277,343 272,347 C268,351 268,351 269,354 C272,358 271,366 269,371 C266,376 259,381 254,381 C252,381 251,382 248,386 C242,395 234,400 227,399 C224,398 223,398 221,401 C220,403 217,405 216,406 C211,409 203,409 198,406 ZM 136 271 C123,267 115,262 113,256 C111,251 111,251 113,251 C118,254 124,254 132,252 C136,252 141,251 144,251 C149,251 157,253 162,256 C166,258 166,258 166,264 L 166 269 L 160 270 C149,272 142,272 136,271 ZM 264 271 C263,271 259,270 256,270 L 250 270 L 250 265 C249,259 250,257 259,254 C265,251 272,251 289,252 C297,253 299,253 302,252 C305,250 305,250 305,252 C305,255 301,262 297,264 C289,270 272,273 264,271 ZM 162 249 C160,247 159,245 159,242 C159,236 164,230 169,230 C170,230 171,228 171,225 C171,216 176,210 184,209 C189,209 195,211 195,213 C195,214 196,213 197,212 C201,209 204,208 208,208 C212,208 217,210 219,212 C220,214 220,213 223,211 C226,208 234,208 239,211 C243,214 246,221 246,226 C245,230 245,230 247,230 C253,230 258,238 257,244 C256,249 251,252 245,252 C241,252 237,251 234,248 C232,247 232,247 228,249 C225,251 222,252 220,252 C216,252 212,250 210,247 C209,246 209,246 206,248 C201,252 192,253 185,248 C183,247 183,247 178,249 C172,253 166,253 162,249 ZM 116 249 C112,248 114,247 119,247 C122,247 127,246 130,245 C138,242 146,242 152,245 L 158 248 L 148 247 C142,247 138,247 133,248 C128,250 120,250 116,249 ZM 284 248 C281,247 277,247 270,247 L 260 248 L 263 246 C269,243 276,242 284,245 C289,246 295,247 298,247 C303,247 304,247 303,248 C301,250 289,250 284,248 Z",fill:"currentColor"})})})}function eB({version:e,branch:r,commitHash:i,isDev:s=!1,packageName:n="@shepai/cli",description:o,instancePath:l}){let d=i?.slice(0,7),{latest:c,updateAvailable:u}=function(e){let[t,r]=(0,a.useState)(null),[i,s]=(0,a.useState)(!0);(0,a.useEffect)(()=>{let e=!1;return async function(){try{let t=await fetch("/api/npm-version");if(!t.ok)return;let a=await t.json();!e&&a.latest&&r(a.latest)}catch{}finally{e||s(!1)}}(),()=>{e=!0}},[]);let n=null!==t&&function(e,t){let a=e=>e.split("-")[0].split(".").map(Number),r=a(e),i=a(t);for(let e=0;e<3;e++){let t=r[e]??0,a=i[e]??0;if(t>a)return 1;if(t<a)return -1}return 0}(t,e)>0;return{latest:t,updateAvailable:n,loading:i}}(e),{status:p,startUpgrade:h}=function(){let[e,t]=(0,a.useState)("idle"),[r,i]=(0,a.useState)(""),[s,n]=(0,a.useState)(),o=(0,a.useRef)(null),l=(0,a.useRef)(!1),d=(0,a.useCallback)(()=>{if("upgrading"===e||"restarting"===e)return;t("upgrading"),i(""),n(void 0),l.current=!1;let a=new AbortController;return o.current=a,fetch("/api/cli-upgrade",{method:"POST",signal:a.signal}).then(async e=>{if(!e.ok||!e.body){t("error"),n(`Server returned ${e.status}`);return}let a=e.body.getReader(),r=new TextDecoder,s="";for(;;){let{done:e,value:o}=await a.read();if(e)break;let d=(s+=r.decode(o,{stream:!0})).split("\n");for(let e of(s=d.pop()??"",d)){if(e.startsWith("event: restarting")){l.current=!0,t("restarting"),function(e,t){let a=Date.now()+3e4,r=()=>{Date.now()>a||fetch("/api/version",{method:"GET",cache:"no-store"}).then(e=>{e.ok?window.location.reload():setTimeout(r,500)}).catch(()=>{setTimeout(r,500)})};setTimeout(r,500)}(0,0);continue}if(!e.startsWith("event: done")&&e.startsWith("data: ")){let a=e.slice(6);try{let e=JSON.parse(a);"upgraded"===e.status?t("upgraded"):"up-to-date"===e.status?t("up-to-date"):"error"===e.status&&(t("error"),n(e.errorMessage))}catch{i(e=>e+a)}}}}}).catch(e=>{l.current||e instanceof DOMException&&"AbortError"===e.name||(t("error"),n(e instanceof Error?e.message:"Upgrade failed"))}),()=>{a.abort()}},[e]);return{status:e,output:r,errorMessage:s,startUpgrade:d}}(),f=s?`${e}-dev`:`v${e}`,m="upgrading"===p,g="restarting"===p,b="upgraded"===p;return(0,t.jsx)(S.TooltipProvider,{delayDuration:200,children:(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)("span",{className:"text-muted-foreground/80 hover:text-muted-foreground relative cursor-default text-[11px] leading-tight transition-colors","data-testid":"version-label",children:[f,!u||b||g?null:(0,t.jsx)("span",{className:"absolute -top-0.5 -right-1.5 size-1.5 rounded-full bg-emerald-400","data-testid":"update-dot"})]})}),(0,t.jsxs)(S.TooltipContent,{side:"right",className:"max-w-[280px] space-y-1 p-3 text-left",children:[(0,t.jsx)("div",{className:"mb-1.5 text-xs font-semibold",children:n}),o?(0,t.jsx)("div",{className:"text-[10px] leading-snug opacity-70",children:o}):null,(0,t.jsxs)("div",{className:"border-t border-white/10 pt-1.5",children:[(0,t.jsx)(eU,{label:"Version",value:f}),s&&r?(0,t.jsx)(eU,{label:"Branch",value:r}):null,s&&d?(0,t.jsx)(eU,{label:"Commit",value:d,mono:!0}):null,s&&l?(0,t.jsx)(eU,{label:"Path",value:l,mono:!0}):null,c?(0,t.jsx)(eU,{label:"Latest",value:`v${c}`,highlight:u}):null]}),g?(0,t.jsx)("div",{className:"border-t border-white/10 pt-1.5",children:(0,t.jsx)("span",{className:"text-[10px] font-medium text-emerald-400","data-testid":"upgrade-restarting",children:"Restarting..."})}):b?(0,t.jsx)("div",{className:"border-t border-white/10 pt-1.5",children:(0,t.jsx)("span",{className:"text-[10px] font-medium text-emerald-400","data-testid":"upgrade-success",children:"Upgraded successfully"})}):"error"===p?(0,t.jsx)("div",{className:"border-t border-white/10 pt-1.5",children:(0,t.jsx)("span",{className:"text-[10px] font-medium text-red-400","data-testid":"upgrade-error",children:"Upgrade failed"})}):u?(0,t.jsx)("div",{className:"border-t border-white/10 pt-1.5",children:(0,t.jsx)("button",{type:"button",onClick:h,disabled:m||g,className:"inline-flex items-center gap-1 text-[10px] font-medium text-emerald-400 transition-colors hover:text-emerald-300 disabled:opacity-50","data-testid":"upgrade-button",children:m?"Upgrading...":g?"Restarting...":`Upgrade to v${c}`})}):null]})]})})}function eU({label:e,value:a,highlight:r,mono:i}){return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4 text-[10px]",children:[(0,t.jsx)("span",{className:"opacity-60",children:e}),(0,t.jsx)("span",{className:[r?"font-medium text-emerald-400":"",i||!r?"font-mono":""].filter(Boolean).join(" "),children:a})]})}function e$({startedAt:e}){let[r,i]=(0,a.useState)(()=>Date.now()-e);return(0,a.useEffect)(()=>{let t=setInterval(()=>{(0,a.startTransition)(()=>i(Date.now()-e))},1e3);return()=>clearInterval(t)},[e]),(0,t.jsx)("span",{"data-testid":"elapsed-time",className:"tabular-nums",children:function(e){let t=Math.floor(e/1e3);if(t>=3600){let e=Math.floor(t/3600);return`${e}h`}let a=Math.floor(t/60);return`${String(a).padStart(2,"0")}:${String(t%60).padStart(2,"0")}`}(r)})}var eG=e.i(51251),eV=e.i(83428),eX=e.i(10942),eY=e.i(94819),eZ=e.i(54277),eq=e.i(55016);let eK={"action-needed":{icon:eG.CircleAlert,iconClass:"text-amber-500",bgClass:"bg-amber-500/10",label:"Action Needed"},"in-progress":{icon:eV.Loader2,iconClass:"text-blue-500 animate-spin",bgClass:"bg-blue-500/10",label:"In Progress"},pending:{icon:eq.Clock,iconClass:"text-slate-400",bgClass:"bg-slate-400/10",label:"Pending"},blocked:{icon:eY.Ban,iconClass:"text-gray-400",bgClass:"bg-gray-400/10",label:"Blocked"},error:{icon:eZ.CircleX,iconClass:"text-red-500",bgClass:"bg-red-500/10",label:"Error"},done:{icon:eX.CircleCheck,iconClass:"text-emerald-500",bgClass:"bg-emerald-500/10",label:"Done"}},eJ=["action-needed","error","blocked","in-progress","pending","done"];var eQ=e.i(86782),e0=e.i(29847);function e2({name:e,status:a,startedAt:r,duration:i,agentType:s,modelId:n,onClick:o}){let{icon:l,iconClass:d}=eK[a],c=s?(0,eQ.getAgentTypeIcon)(s):null;return(0,t.jsx)(O,{"data-testid":"feature-list-item",children:(0,t.jsxs)(F,{size:"sm",onClick:o,tooltip:e,className:"cursor-pointer",children:[(0,t.jsx)(l,{className:d}),(0,t.jsx)("span",{className:"flex-1 truncate font-medium",children:e}),"in-progress"===a&&null!=r?(0,t.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:(0,t.jsx)(e$,{startedAt:r})}):null,"done"===a&&i?(0,t.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:i}):null,c?(0,t.jsx)(S.TooltipProvider,{children:(0,t.jsxs)(S.Tooltip,{children:[(0,t.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("span",{className:"ml-auto shrink-0",children:(0,t.jsx)(c,{className:"h-3.5 w-3.5"})})}),(0,t.jsxs)(S.TooltipContent,{side:"right",children:[(0,t.jsx)("span",{className:"font-medium",children:eQ.agentTypeLabels[s]??s}),n?(0,t.jsxs)("span",{className:"ml-1 opacity-70",children:["· ",(0,e0.getModelMeta)(n).displayName||n]}):null]})]})}):null]})})}function e1({label:e,count:a,children:r}){return(0,t.jsxs)(M,{"data-testid":"feature-status-group",className:"px-2 py-1",children:[(0,t.jsxs)(_,{className:"text-muted-foreground h-6 px-2 text-[0.65rem] font-semibold tracking-wider uppercase",children:[e,(0,t.jsx)("span",{"aria-label":`${a} items`,className:"bg-sidebar-accent text-sidebar-accent-foreground ml-1.5 inline-flex h-4 min-w-4 items-center justify-center rounded-full px-1 text-[0.6rem] font-medium tabular-nums",role:"img",children:a})]}),(0,t.jsx)(I,{children:(0,t.jsx)(H,{className:"gap-0.5",children:r})})]})}function e4({label:e,className:a}){return(0,t.jsx)(M,{"data-testid":"sidebar-section-header",className:(0,p.cn)("px-2 py-1",a),children:(0,t.jsx)("div",{className:"text-sidebar-foreground flex h-7 w-full shrink-0 items-center px-2 text-sm font-medium",children:(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e})})})}let e3={version:"unknown",packageName:"@shepai/cli",description:"Autonomous AI Native SDLC Platform",branch:"",commitHash:"",instancePath:"",isDev:!1};function e5({features:e,featureFlags:i,onFeatureClick:s}){let n=(0,r.usePathname)(),{state:o}=E(),{mounted:l,visible:d}=function(e,t){let[r,i]=(0,a.useState)(!e),[s,n]=(0,a.useState)(!e);return(0,a.useEffect)(()=>{if(!e){i(!0);let e=requestAnimationFrame(()=>n(!0));return()=>cancelAnimationFrame(e)}n(!1);let t=window.setTimeout(()=>i(!1),200);return()=>window.clearTimeout(t)},[e,200]),{mounted:r,visible:s}}("collapsed"===o,0),c=function(){let[e,t]=(0,a.useState)(e3);return(0,a.useEffect)(()=>{let e=!1;return async function(){try{let a=await fetch("/api/version");if(!a.ok)return;let r=await a.json();e||t(r)}catch{}}(),()=>{e=!0}},[]),e}(),u=eJ.map(t=>{let{label:a}=eK[t],r=e.filter(e=>e.status===t);return{key:t,label:a,items:r}});return(0,t.jsxs)(A,{"data-testid":"app-sidebar","data-no-drawer-close":!0,collapsible:"icon",children:[(0,t.jsx)(D,{children:(0,t.jsxs)(H,{children:[(0,t.jsx)(O,{children:(0,t.jsxs)("div",{className:"flex h-8 items-center group-data-[collapsible=icon]:justify-center",children:[l?(0,t.jsxs)("div",{className:["flex min-w-0 flex-1 items-center gap-2 overflow-hidden px-2 transition-opacity duration-200 ease-out",d?"opacity-100":"opacity-0"].join(" "),"aria-hidden":!d,children:[(0,t.jsx)(eF,{className:"shrink-0",size:20,variant:c.isDev?"dev":"default"}),(0,t.jsx)("span",{className:"truncate text-sm font-semibold tracking-tight",children:"Shep"}),(0,t.jsx)(eB,{version:c.version,branch:c.branch||void 0,commitHash:c.commitHash||void 0,isDev:c.isDev,packageName:c.packageName,description:c.description,instancePath:c.instancePath||void 0})]}):null,(0,t.jsx)(eW,{className:"shrink-0 transition-all duration-200"})]})}),(0,t.jsx)(eO,{icon:B,label:"Control Center",href:"/",active:"/"===n}),(0,t.jsx)(eO,{icon:U.Wrench,label:"Tools",href:"/tools",active:"/tools"===n}),i.skills?(0,t.jsx)(eO,{icon:$.Puzzle,label:"Skills",href:"/skills",active:"/skills"===n}):null,(0,t.jsx)(eO,{icon:G,label:"Settings",href:"/settings",active:"/settings"===n})]})}),(0,t.jsx)(z,{children:l?(0,t.jsxs)("div",{className:["min-w-0 overflow-hidden transition-opacity duration-200 ease-out [&_[data-sidebar=group-label]]:!mt-0 [&_[data-sidebar=group-label]]:!opacity-100 [&_[data-sidebar=group-label]]:!transition-none",d?"opacity-100":"opacity-0"].join(" "),children:[(0,t.jsx)(e4,{label:"Features"}),(0,t.jsx)(eM,{children:u.map(({key:e,label:a,items:r})=>r.length>0?(0,t.jsx)(e1,{label:a,count:r.length,children:r.map(e=>(0,t.jsx)(e2,{name:e.name,status:e.status,startedAt:e.startedAt,duration:e.duration,agentType:e.agentType,modelId:e.modelId,onClick:s?()=>s(e.featureId):void 0},e.featureId))},e):null)})]}):null}),(0,t.jsx)(L,{})]})}var e7=e.i(60253);function e6({actions:e,className:r}){let[s,n]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(s)return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e);function e(e){"Escape"===e.key&&n(!1)}},[s]);let o=[...e].reverse();return(0,t.jsxs)(t.Fragment,{children:[s?(0,t.jsx)("div",{"data-testid":"fab-overlay",className:"fixed inset-0 z-40",onClick:()=>n(!1),"aria-hidden":"true"}):null,(0,t.jsxs)("div",{"data-testid":"floating-action-button",className:(0,p.cn)("fixed right-6 bottom-6 z-50",r),children:[(0,t.jsx)("div",{className:"absolute right-0 bottom-16 flex flex-col-reverse items-end gap-3","data-testid":"fab-actions",children:o.map((a,r)=>{let i=e.length-1-r;return(0,t.jsxs)("button",{"data-testid":`fab-action-${a.id}`,"aria-label":a.label,disabled:a.disabled??a.loading,className:(0,p.cn)("flex items-center gap-3 rounded-full px-4 py-2.5","bg-background text-foreground shadow-lg","border-border border","transition-all ease-out","hover:bg-accent hover:text-accent-foreground","disabled:pointer-events-none disabled:opacity-50",s?"translate-y-0 scale-100 opacity-100":"pointer-events-none translate-y-4 scale-95 opacity-0"),style:{transitionDuration:"250ms",transitionDelay:s?`${50*i}ms`:`${50*r}ms`},onClick:()=>{a.onClick(),n(!1)},children:[(0,t.jsx)("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:a.loading?(0,t.jsx)(eV.Loader2,{className:"h-5 w-5 animate-spin"}):a.icon}),(0,t.jsx)("span",{className:"text-sm font-medium whitespace-nowrap",children:a.label})]},a.id)})}),(0,t.jsxs)(h.Button,{size:"icon","data-testid":"fab-trigger","aria-label":s?"Close actions":"Open actions",className:(0,p.cn)("relative h-12 w-12 rounded-full shadow-lg","transition-colors duration-200"),onClick:()=>n(e=>!e),children:[(0,t.jsx)(i.Plus,{className:(0,p.cn)("absolute h-5 w-5 transition-all",s?"scale-0 rotate-90 opacity-0":"scale-100 rotate-0 opacity-100"),style:{transitionDuration:"250ms"}}),(0,t.jsx)(e7.X,{className:(0,p.cn)("absolute h-5 w-5 transition-all",s?"scale-100 rotate-0 opacity-100":"scale-0 -rotate-90 opacity-0"),style:{transitionDuration:"250ms"}})]})]})]})}let e8=(0,d.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),e9=(0,d.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),te="shep-theme";function tt(){let{theme:e,resolvedTheme:r,setTheme:i}=function(){let[e,t]=(0,a.useState)("system"),[r,i]=(0,a.useState)("light"),s=(0,a.useCallback)(()=>window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",[]),n=(0,a.useCallback)(e=>"system"===e?s():e,[s]),o=(0,a.useCallback)(e=>{if("u"<typeof document)return;let t=document.documentElement;t.classList.remove("light","dark"),t.classList.add(e),i(e)},[]),l=(0,a.useCallback)(e=>{t(e),"u">typeof localStorage&&localStorage.setItem(te,e),o(n(e))},[n,o]);return(0,a.useEffect)(()=>{let e=localStorage.getItem(te)??"system";t(e),o(n(e))},[n,o]),(0,a.useEffect)(()=>{let t=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>{"system"===e&&o(n("system"))};return t.addEventListener("change",a),()=>t.removeEventListener("change",a)},[e,n,o]),{theme:e,resolvedTheme:r,setTheme:l}}(),s=(0,eH.useSoundAction)("toggle-on"),n=(0,eH.useSoundAction)("toggle-off");return(0,t.jsxs)(h.Button,{variant:"ghost",size:"icon",onClick:t=>{let a="system"===e?"dark"===r?"light":"dark":"dark"===e?"light":"dark";"dark"!==("system"===e?r:e)?s.play():n.play();let o=window.matchMedia("(prefers-reduced-motion: reduce)").matches;!document.startViewTransition||o?i(a):(document.documentElement.style.setProperty("--x",`${t.clientX}px`),document.documentElement.style.setProperty("--y",`${t.clientY}px`),document.startViewTransition(()=>{i(a)}))},"aria-label":`Switch to ${"dark"===r?"light":"dark"} mode`,children:[(0,t.jsx)(e9,{className:"h-5 w-5 scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"}),(0,t.jsx)(e8,{className:"absolute h-5 w-5 scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0"}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle theme"})]})}let ta=(0,d.default)("volume-2",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]]),tr=(0,d.default)("volume-off",[["path",{d:"M16 9a5 5 0 0 1 .95 2.293",key:"1fgyg8"}],["path",{d:"M19.364 5.636a9 9 0 0 1 1.889 9.96",key:"l3zxae"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"m7 7-.587.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298V11",key:"1gbwow"}],["path",{d:"M9.828 4.172A.686.686 0 0 1 11 4.657v.686",key:"s2je0y"}]]);var ti=e.i(73709);function ts(){let{enabled:e,toggle:a}=(0,ti.useSoundEnabled)();return(0,t.jsxs)(h.Button,{variant:"ghost",size:"icon",onClick:a,"aria-label":e?"Mute sounds":"Unmute sounds",children:[e?(0,t.jsx)(ta,{className:"h-5 w-5"}):(0,t.jsx)(tr,{className:"h-5 w-5"}),(0,t.jsx)("span",{className:"sr-only",children:"Toggle sound"})]})}e.i(13322);var tn=e.i(61201),to=e.i(78521),tl=e.i(2287),td=e.i(68304),tc=e.i(41957);let tu=/^(?:https:\/\/github\.com\/([a-zA-Z0-9._-]+)\/([a-zA-Z0-9._-]+?)(?:\.git)?|git@github\.com:([a-zA-Z0-9._-]+)\/([a-zA-Z0-9._-]+?)(?:\.git)?|([a-zA-Z0-9._-]+)\/([a-zA-Z0-9._-]+))$/;function tp({onSubmit:e,loading:r=!1}){let[i,s]=(0,a.useState)(""),[n,o]=(0,a.useState)("");function l(){let t=i.trim();t?tu.test(t.trim())?(o(""),e(t)):o("Enter a valid GitHub URL (e.g. owner/repo or https://github.com/owner/repo)"):o("Please enter a GitHub URL")}return(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)(tc.Label,{htmlFor:"github-url-input",children:"GitHub URL"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(f.Input,{id:"github-url-input",placeholder:"owner/repo or https://github.com/owner/repo",value:i,onChange:e=>{s(e.target.value),n&&o("")},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),l())},disabled:r,"aria-invalid":!!n,"aria-describedby":n?"github-url-error":void 0}),(0,t.jsx)(h.Button,{onClick:l,disabled:r||!i.trim(),size:"sm",children:r?(0,t.jsx)(eV.Loader2,{className:"h-4 w-4 animate-spin"}):"Import"})]}),n?(0,t.jsx)("p",{id:"github-url-error",className:"text-destructive text-sm",role:"alert",children:n}):null]})}let th=(0,d.default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);var tf=e.i(32494),tm=e.i(66459),tg=e.i(79687),tb=e.i(81846),tx=e.i(21023);let tv=(0,tx.createServerReference)("40eecf3f9e755160a22929db838e7e841e7736c7be",tx.callServer,void 0,tx.findSourceMapURL,"listGitHubRepositories");function tw({onSelect:e,loading:r=!1,fetchRepos:i=tv}){let[s,n]=(0,a.useState)([]),[o,l]=(0,a.useState)(!0),[d,c]=(0,a.useState)(""),[u,p]=(0,a.useState)(""),h=(0,a.useRef)(null),m=(0,a.useCallback)(async e=>{l(!0),c("");try{let t=await i(e?{search:e}:void 0);t.error?(c(t.error),n([])):n(t.repos??[])}catch{c("Failed to fetch repositories"),n([])}finally{l(!1)}},[i]);return((0,a.useEffect)(()=>{m()},[m]),d&&!o)?(0,t.jsxs)("div",{className:"flex flex-col items-center gap-2 py-8 text-center","data-testid":"repo-browser-error",children:[(0,t.jsx)(tg.AlertCircle,{className:"text-destructive h-8 w-8"}),(0,t.jsx)("p",{className:"text-destructive text-sm",children:d})]}):(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(tm.Search,{className:"text-muted-foreground absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2"}),(0,t.jsx)(f.Input,{placeholder:"Search repositories...",value:u,onChange:e=>{var t;p(t=e.target.value),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{m(t||void 0)},300)},className:"pl-9",disabled:r,"aria-label":"Search repositories"})]}),(0,t.jsx)("div",{className:"max-h-64 overflow-x-hidden overflow-y-auto rounded-md border",role:"listbox","aria-label":"GitHub repositories",children:o?(0,t.jsx)("div",{className:"flex flex-col gap-2 p-3","data-testid":"repo-browser-loading",children:Array.from({length:5}).map((e,a)=>(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)(N,{className:"h-4 w-48"}),(0,t.jsx)(N,{className:"h-3 w-72"})]},`skeleton-${String(a)}`))}):0===s.length?(0,t.jsx)("div",{className:"text-muted-foreground py-8 text-center text-sm","data-testid":"repo-browser-empty",children:"No repositories found"}):s.map(a=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":!1,className:"hover:bg-accent flex w-full items-start gap-2 border-b px-3 py-2.5 text-left last:border-b-0 disabled:opacity-50",onClick:()=>e(a.nameWithOwner),disabled:r,children:[(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:a.nameWithOwner}),(0,t.jsx)(tb.Badge,{variant:a.isPrivate?"secondary":"outline",className:"shrink-0 text-xs",children:a.isPrivate?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(th,{className:"mr-1 h-3 w-3"}),"Private"]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(tf.Globe,{className:"mr-1 h-3 w-3"}),"Public"]})})]}),a.description?(0,t.jsx)("p",{className:"text-muted-foreground mt-0.5 truncate text-xs",children:a.description}):null]}),r?(0,t.jsx)(eV.Loader2,{className:"mt-0.5 h-4 w-4 shrink-0 animate-spin"}):null]},a.nameWithOwner))})]})}let tj=(0,tx.createServerReference)("4085dc7531dbffb7ce94b3f6cf25fa6d3dded27af2",tx.callServer,void 0,tx.findSourceMapURL,"importGitHubRepository");function ty({open:e,onOpenChange:r,onImportComplete:i}){let[s,n]=(0,a.useState)(!1),[o,l]=(0,a.useState)("");async function d(e){n(!0),l("");try{let t=await tj({url:e});t.error?l(t.error):t.repository&&(i(t.repository),r(!1))}catch{l("An unexpected error occurred")}finally{n(!1)}}return(0,t.jsx)(tl.Dialog,{open:e,onOpenChange:r,children:(0,t.jsxs)(tl.DialogContent,{className:"overflow-hidden sm:max-w-lg",children:[(0,t.jsxs)(tl.DialogHeader,{children:[(0,t.jsx)(tl.DialogTitle,{children:"Import from GitHub"}),(0,t.jsx)(tl.DialogDescription,{children:"Clone a GitHub repository and add it to Shep."})]}),(0,t.jsxs)(td.Tabs,{defaultValue:"url",className:"min-w-0",children:[(0,t.jsxs)(td.TabsList,{className:"grid w-full grid-cols-2",children:[(0,t.jsx)(td.TabsTrigger,{value:"url",children:"URL"}),(0,t.jsx)(td.TabsTrigger,{value:"browse",children:"Browse"})]}),(0,t.jsx)(td.TabsContent,{value:"url",className:"mt-4",children:(0,t.jsx)(tp,{onSubmit:d,loading:s})}),(0,t.jsx)(td.TabsContent,{value:"browse",className:"mt-4",children:(0,t.jsx)(tw,{onSelect:d,loading:s})})]}),o?(0,t.jsx)("p",{className:"text-destructive text-sm",role:"alert",children:o}):null]})})}var tC=e.i(39443),tN=e.i(30153),tS=e.i(5147),tk=e.i(60112),tT=e.i(17406);let tE={[tT.NotificationSeverity.Success]:"success",[tT.NotificationSeverity.Error]:"error",[tT.NotificationSeverity.Warning]:"warning",[tT.NotificationSeverity.Info]:"info"},tR={[tT.NotificationSeverity.Success]:"notification-success",[tT.NotificationSeverity.Error]:"notification-error",[tT.NotificationSeverity.Warning]:"notification-warning",[tT.NotificationSeverity.Info]:"notification-info"};var tA=e.i(75921);let tL=["/","/create","/adopt","/feature","/repository"];function tP({children:e}){let l=(0,r.useRouter)(),d=(0,r.usePathname)(),{guardedNavigate:c}=(0,tN.useDrawerCloseGuard)(),u=(0,tA.useFeatureFlags)();!function(){let e=(0,r.useRouter)(),{events:t}=(0,tC.useAgentEventsContext)(),i=(0,eH.useSoundAction)("notification-success"),s=(0,eH.useSoundAction)("notification-error"),n=(0,eH.useSoundAction)("notification-warning"),o=(0,eH.useSoundAction)("notification-info"),l=(0,a.useMemo)(()=>({"notification-success":i,"notification-error":s,"notification-warning":n,"notification-info":o}),[i,s,n,o]),d=(0,a.useRef)(0);(0,a.useEffect)(()=>{if(t.length<=d.current)return;let a=t.slice(d.current);for(let r of(d.current=t.length,a)){if(r.eventType!==tT.NotificationEventType.MergeReviewReady&&r.severity!==tT.NotificationSeverity.Error&&r.severity!==tT.NotificationSeverity.Warning&&r.severity!==tT.NotificationSeverity.Success)continue;!function(e,t){let a=tE[e.severity]??"info",r=e.eventType===tT.NotificationEventType.WaitingApproval||e.eventType===tT.NotificationEventType.MergeReviewReady;tk.toast[a](e.featureName,{description:e.message,...r&&t&&{action:{label:"Review",onClick:()=>{t(`/feature/${e.featureId}`)}}}})}(r,t=>e.push(t));let t=tR[r.severity];l[t]?.play()}},[t,l,e])}();let{features:p,hasRepositories:h}=(0,tS.useSidebarFeaturesContext)(),f=(0,a.useCallback)(()=>{c(()=>l.push("/create"))},[l,c]),m=(0,a.useCallback)(()=>{c(()=>l.push("/adopt"))},[l,c]),g=(0,a.useCallback)(e=>{c(()=>l.push(`/feature/${e}`))},[l,c]),[b,x]=(0,a.useState)(!1),[v,w]=(0,a.useState)(!1),[j,y]=(0,a.useState)(!1),C=(0,a.useCallback)(async()=>{if(!b){if(u.reactFileManager)return void y(!0);x(!0);try{let e=await (0,to.pickFolder)();e&&window.dispatchEvent(new CustomEvent("shep:add-repository",{detail:{path:e}}))}catch{y(!0)}finally{x(!1)}}},[b,u.reactFileManager]),N=(0,a.useCallback)(e=>{e&&window.dispatchEvent(new CustomEvent("shep:add-repository",{detail:{path:e}})),y(!1)},[]),S=(0,a.useCallback)(()=>{w(!0)},[]),k=(0,a.useCallback)(e=>{e.path&&window.dispatchEvent(new CustomEvent("shep:add-repository",{detail:{path:e.path}}))},[]),T=(0,a.useMemo)(()=>{let e=[{id:"new-feature",label:"New Feature",icon:(0,t.jsx)(i.Plus,{className:"h-4 w-4"}),onClick:f},...u.adoptBranch?[{id:"adopt-branch",label:"Adopt Branch",icon:(0,t.jsx)(o.GitBranch,{className:"h-4 w-4"}),onClick:m}]:[],{id:"add-repository",label:"Add Repository",icon:(0,t.jsx)(s.FolderPlus,{className:"h-4 w-4"}),onClick:C,loading:b}];return u.githubImport&&e.push({id:"import-github",label:"Import from GitHub",icon:(0,t.jsx)(n.Github,{className:"h-4 w-4"}),onClick:S}),e},[f,m,C,b,S,u.githubImport,u.adoptBranch]);return(0,t.jsxs)(R,{defaultOpen:!1,children:[(0,t.jsx)(e5,{features:p,featureFlags:u,onFeatureClick:g}),(0,t.jsx)(P,{children:(0,t.jsxs)("div",{className:"relative h-full",children:[(0,t.jsxs)("div",{className:"absolute top-3 right-3 z-50 flex gap-1","data-test-id":"canvas-actions-toolbar",children:[(0,t.jsx)(ts,{}),(0,t.jsx)(tt,{})]}),(0,t.jsx)("main",{className:"h-full",children:e}),tL.some(e=>d===e||"/"!==e&&d.startsWith(`${e}/`))&&h?(0,t.jsx)(e6,{actions:T}):null,u.githubImport?(0,t.jsx)(ty,{open:v,onOpenChange:w,onImportComplete:k}):null]})}),(0,t.jsx)(tn.ReactFileManagerDialog,{open:j,onOpenChange:e=>{e||y(!1)},onSelect:N})]})}function tD({children:e}){return(0,t.jsx)(tC.AgentEventsProvider,{children:(0,t.jsx)(tN.DrawerCloseGuardProvider,{children:(0,t.jsx)(tS.SidebarFeaturesProvider,{children:(0,t.jsx)(tP,{children:e})})})})}e.s(["AppShell",()=>tD],87292)},25251,e=>{"use strict";var t=e.i(20314),a=e.i(60112);let r=({...e})=>(0,t.jsx)(a.Toaster,{className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e});e.s(["Toaster",()=>r])}]);