@shepai/cli 1.76.0 → 1.77.0-pr244.422e487

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 (692) hide show
  1. package/apis/json-schema/FeatureFlags.yaml +21 -0
  2. package/apis/json-schema/Settings.yaml +3 -0
  3. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts +1 -0
  4. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts.map +1 -1
  5. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +4 -1
  6. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -1
  7. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  8. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +5 -2
  9. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +2 -0
  10. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
  11. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  12. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +7 -2
  13. package/dist/packages/core/src/domain/generated/output.d.ts +21 -0
  14. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  15. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  16. package/dist/packages/core/src/infrastructure/di/container.js +6 -0
  17. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +6 -0
  18. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  19. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +17 -0
  20. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -1
  21. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +27 -0
  22. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
  23. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +13 -3
  24. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +220 -0
  25. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts.map +1 -0
  26. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.js +66 -0
  27. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +1 -0
  28. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
  29. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +3 -0
  30. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +1 -0
  31. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
  32. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +10 -1
  33. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.d.ts.map +1 -1
  34. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.js +1 -0
  35. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/fast-implement.node.d.ts +21 -0
  36. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/fast-implement.node.d.ts.map +1 -0
  37. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/fast-implement.node.js +60 -0
  38. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  39. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +1 -2
  40. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.d.ts +25 -0
  41. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.d.ts.map +1 -0
  42. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/fast-implement.prompt.js +176 -0
  43. package/dist/packages/core/src/infrastructure/services/settings.service.d.ts +10 -0
  44. package/dist/packages/core/src/infrastructure/services/settings.service.d.ts.map +1 -1
  45. package/dist/packages/core/src/infrastructure/services/settings.service.js +15 -0
  46. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +1 -1
  47. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
  48. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +8 -3
  49. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  50. package/dist/src/presentation/cli/commands/feat/new.command.js +2 -0
  51. package/dist/src/presentation/web/app/actions/create-feature.d.ts +2 -0
  52. package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
  53. package/dist/src/presentation/web/app/actions/create-feature.js +3 -1
  54. package/dist/src/presentation/web/app/actions/load-settings.d.ts +9 -0
  55. package/dist/src/presentation/web/app/actions/load-settings.d.ts.map +1 -0
  56. package/dist/src/presentation/web/app/actions/load-settings.js +33 -0
  57. package/dist/src/presentation/web/app/actions/update-settings.d.ts +11 -0
  58. package/dist/src/presentation/web/app/actions/update-settings.d.ts.map +1 -0
  59. package/dist/src/presentation/web/app/actions/update-settings.js +45 -0
  60. package/dist/src/presentation/web/app/global-error.d.ts +7 -0
  61. package/dist/src/presentation/web/app/global-error.d.ts.map +1 -0
  62. package/dist/src/presentation/web/app/global-error.js +5 -0
  63. package/dist/src/presentation/web/app/settings/page.d.ts +4 -0
  64. package/dist/src/presentation/web/app/settings/page.d.ts.map +1 -0
  65. package/dist/src/presentation/web/app/settings/page.js +12 -0
  66. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +2 -0
  67. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  68. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +5 -1
  69. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts +18 -0
  70. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
  71. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +49 -0
  72. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  73. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +28 -4
  74. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +4 -1
  75. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  76. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +6 -3
  77. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +1 -1
  78. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.d.ts +1 -0
  79. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.d.ts.map +1 -1
  80. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.stories.js +71 -2
  81. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts +6 -0
  82. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map +1 -0
  83. package/dist/src/presentation/web/components/features/settings/agent-settings-section.js +71 -0
  84. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts +16 -0
  85. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts.map +1 -0
  86. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.js +36 -0
  87. package/dist/src/presentation/web/components/features/settings/database-settings-section.d.ts +6 -0
  88. package/dist/src/presentation/web/components/features/settings/database-settings-section.d.ts.map +1 -0
  89. package/dist/src/presentation/web/components/features/settings/database-settings-section.js +8 -0
  90. package/dist/src/presentation/web/components/features/settings/database-settings-section.stories.d.ts +15 -0
  91. package/dist/src/presentation/web/components/features/settings/database-settings-section.stories.d.ts.map +1 -0
  92. package/dist/src/presentation/web/components/features/settings/database-settings-section.stories.js +22 -0
  93. package/dist/src/presentation/web/components/features/settings/environment-settings-section.d.ts +6 -0
  94. package/dist/src/presentation/web/components/features/settings/environment-settings-section.d.ts.map +1 -0
  95. package/dist/src/presentation/web/components/features/settings/environment-settings-section.js +54 -0
  96. package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.d.ts +15 -0
  97. package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.d.ts.map +1 -0
  98. package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.js +27 -0
  99. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts +6 -0
  100. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -0
  101. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +45 -0
  102. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts +16 -0
  103. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -0
  104. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +37 -0
  105. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts +6 -0
  106. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts.map +1 -0
  107. package/dist/src/presentation/web/components/features/settings/notification-settings-section.js +68 -0
  108. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts +16 -0
  109. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts.map +1 -0
  110. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.js +62 -0
  111. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts +8 -0
  112. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -0
  113. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +21 -0
  114. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts +15 -0
  115. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -0
  116. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +39 -0
  117. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts +6 -0
  118. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts.map +1 -0
  119. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.js +76 -0
  120. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts +16 -0
  121. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts.map +1 -0
  122. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +55 -0
  123. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  124. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  125. package/dist/src/presentation/web/components/ui/switch.d.ts +7 -0
  126. package/dist/src/presentation/web/components/ui/switch.d.ts.map +1 -0
  127. package/dist/src/presentation/web/components/ui/switch.js +8 -0
  128. package/dist/src/presentation/web/hooks/use-graph-state.d.ts +2 -0
  129. package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
  130. package/dist/src/presentation/web/hooks/use-graph-state.js +4 -0
  131. package/dist/src/presentation/web/hooks/use-viewport-persistence.d.ts +1 -0
  132. package/dist/src/presentation/web/hooks/use-viewport-persistence.d.ts.map +1 -1
  133. package/dist/src/presentation/web/lib/feature-flags.d.ts +14 -2
  134. package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
  135. package/dist/src/presentation/web/lib/feature-flags.js +39 -4
  136. package/dist/tsconfig.build.tsbuildinfo +1 -1
  137. package/package.json +1 -1
  138. package/web/.next/BUILD_ID +1 -1
  139. package/web/.next/app-path-routes-manifest.json +1 -0
  140. package/web/.next/build-manifest.json +6 -6
  141. package/web/.next/cache/.previewinfo +1 -1
  142. package/web/.next/cache/.rscinfo +1 -1
  143. package/web/.next/cache/.tsbuildinfo +1 -1
  144. package/web/.next/cache/config.json +3 -3
  145. package/web/.next/fallback-build-manifest.json +2 -2
  146. package/web/.next/prerender-manifest.json +3 -3
  147. package/web/.next/required-server-files.js +1 -1
  148. package/web/.next/required-server-files.json +1 -1
  149. package/web/.next/routes-manifest.json +6 -0
  150. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +4 -4
  151. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +16 -16
  152. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +8 -7
  153. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  154. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  155. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +4 -4
  156. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +19 -19
  157. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +8 -7
  158. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  159. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  160. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +4 -4
  161. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  162. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +8 -7
  163. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  164. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  165. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +4 -4
  166. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +16 -16
  167. package/web/.next/server/app/(dashboard)/create/page.js +8 -7
  168. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  169. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  170. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +4 -4
  171. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +19 -19
  172. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +8 -7
  173. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  174. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  175. package/web/.next/server/app/(dashboard)/page/build-manifest.json +4 -4
  176. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
  177. package/web/.next/server/app/(dashboard)/page.js +8 -7
  178. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  179. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  180. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +4 -4
  181. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  182. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +8 -7
  183. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  184. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  185. package/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  186. package/web/.next/server/app/_global-error/page.js +4 -3
  187. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  188. package/web/.next/server/app/_global-error.html +2 -2
  189. package/web/.next/server/app/_global-error.rsc +1 -1
  190. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  191. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  192. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  193. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  194. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  195. package/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  196. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  197. package/web/.next/server/app/_not-found/page.js +9 -7
  198. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  199. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  200. package/web/.next/server/app/settings/page/app-paths-manifest.json +3 -0
  201. package/web/.next/server/app/settings/page/build-manifest.json +18 -0
  202. package/web/.next/server/app/settings/page/next-font-manifest.json +6 -0
  203. package/web/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
  204. package/web/.next/server/app/settings/page/server-reference-manifest.json +50 -0
  205. package/web/.next/server/app/settings/page.js +18 -0
  206. package/web/.next/server/app/settings/page.js.map +5 -0
  207. package/web/.next/server/app/settings/page.js.nft.json +1 -0
  208. package/web/.next/server/app/settings/page_client-reference-manifest.js +2 -0
  209. package/web/.next/server/app/skills/page/build-manifest.json +4 -4
  210. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  211. package/web/.next/server/app/skills/page.js +11 -8
  212. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  213. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  214. package/web/.next/server/app/tools/page/build-manifest.json +4 -4
  215. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  216. package/web/.next/server/app/tools/page.js +9 -7
  217. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  218. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  219. package/web/.next/server/app/version/page/build-manifest.json +4 -4
  220. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  221. package/web/.next/server/app/version/page.js +8 -7
  222. package/web/.next/server/app/version/page.js.nft.json +1 -1
  223. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  224. package/web/.next/server/app-paths-manifest.json +1 -0
  225. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  226. package/web/.next/server/chunks/ssr/403f9_next_dist_190bdc35._.js +4 -0
  227. package/web/.next/server/chunks/ssr/{403f9_next_dist_6c821c12._.js.map → 403f9_next_dist_190bdc35._.js.map} +1 -1
  228. package/web/.next/server/chunks/ssr/403f9_next_dist_31ea46d3._.js +6 -0
  229. package/web/.next/server/chunks/ssr/403f9_next_dist_31ea46d3._.js.map +1 -0
  230. package/web/.next/server/chunks/ssr/403f9_next_dist_c9d9b4d7._.js +6 -0
  231. package/web/.next/server/chunks/ssr/403f9_next_dist_c9d9b4d7._.js.map +1 -0
  232. package/web/.next/server/chunks/ssr/403f9_next_dist_compiled_dc550646._.js +3 -0
  233. package/web/.next/server/chunks/ssr/403f9_next_dist_compiled_dc550646._.js.map +1 -0
  234. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_3981ee1d._.js +3 -0
  235. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_3981ee1d._.js.map +1 -0
  236. package/web/.next/server/chunks/ssr/{403f9_next_dist_esm_build_templates_app-page_bec3d8d3.js → 403f9_next_dist_esm_build_templates_app-page_2eacac96.js} +3 -3
  237. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_2eacac96.js.map +1 -0
  238. package/web/.next/server/chunks/ssr/{403f9_next_dist_esm_build_templates_app-page_c27615b6.js → 403f9_next_dist_esm_build_templates_app-page_46d6bf1b.js} +3 -3
  239. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_46d6bf1b.js.map +1 -0
  240. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_bec3d8d3.js → server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_54b1e179.js} +3 -3
  241. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_54b1e179.js.map +1 -0
  242. package/web/.next/server/chunks/ssr/{403f9_next_dist_esm_build_templates_app-page_dbf21e04.js → 403f9_next_dist_esm_build_templates_app-page_6c70ecca.js} +3 -3
  243. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_6c70ecca.js.map +1 -0
  244. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d302115b.js → server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c9978986.js} +3 -3
  245. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c9978986.js.map +1 -0
  246. package/web/.next/server/chunks/ssr/{403f9_next_dist_esm_build_templates_app-page_d302115b.js → 403f9_next_dist_esm_build_templates_app-page_ce6dae5d.js} +3 -3
  247. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_ce6dae5d.js.map +1 -0
  248. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d82f78f0.js +4 -0
  249. package/web/.next/server/chunks/ssr/{_884ddade._.js.map → 403f9_next_dist_esm_build_templates_app-page_d82f78f0.js.map} +1 -1
  250. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  251. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  252. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
  253. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js.map +1 -1
  254. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
  255. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js.map +1 -1
  256. package/web/.next/server/chunks/ssr/[root-of-the-server]__0880ff0e._.js +3 -0
  257. package/web/.next/server/chunks/ssr/{[root-of-the-server]__8a947500._.js.map → [root-of-the-server]__0880ff0e._.js.map} +1 -1
  258. package/web/.next/server/chunks/ssr/{[root-of-the-server]__c37779e6._.js → [root-of-the-server]__09af7f56._.js} +2 -2
  259. package/web/.next/server/chunks/ssr/{[root-of-the-server]__c37779e6._.js.map → [root-of-the-server]__09af7f56._.js.map} +1 -1
  260. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +4 -0
  261. package/web/.next/server/chunks/ssr/{[root-of-the-server]__6b17a22d._.js.map → [root-of-the-server]__11033878._.js.map} +1 -1
  262. package/web/.next/server/chunks/ssr/[root-of-the-server]__1e4ddb05._.js +4 -0
  263. package/web/.next/server/chunks/ssr/[root-of-the-server]__1e4ddb05._.js.map +1 -0
  264. package/web/.next/server/chunks/ssr/[root-of-the-server]__23b5ca2c._.js +3 -0
  265. package/web/.next/server/chunks/ssr/{[root-of-the-server]__6ee2450e._.js.map → [root-of-the-server]__23b5ca2c._.js.map} +1 -1
  266. package/web/.next/server/chunks/ssr/[root-of-the-server]__2f487654._.js +3 -0
  267. package/web/.next/server/chunks/ssr/[root-of-the-server]__2f487654._.js.map +1 -0
  268. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +3 -0
  269. package/web/.next/server/chunks/ssr/{[root-of-the-server]__249c74f6._.js.map → [root-of-the-server]__357d99f9._.js.map} +1 -1
  270. package/web/.next/server/chunks/ssr/[root-of-the-server]__5edfc56b._.js +3 -0
  271. package/web/.next/server/chunks/ssr/{[root-of-the-server]__c18f84a4._.js.map → [root-of-the-server]__5edfc56b._.js.map} +1 -1
  272. package/web/.next/server/chunks/ssr/[root-of-the-server]__6eb2a2b0._.js +3 -0
  273. package/web/.next/server/chunks/ssr/[root-of-the-server]__6eb2a2b0._.js.map +1 -0
  274. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c88ef55._.js +3 -0
  275. package/web/.next/server/chunks/ssr/{[root-of-the-server]__fa87595c._.js.map → [root-of-the-server]__8c88ef55._.js.map} +1 -1
  276. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
  277. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  278. package/web/.next/server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js +3 -0
  279. package/web/.next/server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js.map +1 -0
  280. package/web/.next/server/chunks/ssr/[root-of-the-server]__c0876a83._.js +3 -0
  281. package/web/.next/server/chunks/ssr/[root-of-the-server]__c0876a83._.js.map +1 -0
  282. package/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js +3 -0
  283. package/web/.next/server/chunks/ssr/{[root-of-the-server]__2018e25f._.js.map → [root-of-the-server]__c3c963c6._.js.map} +1 -1
  284. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js +3 -0
  285. package/web/.next/server/chunks/ssr/{[root-of-the-server]__3b4af5ae._.js.map → [root-of-the-server]__c9777776._.js.map} +1 -1
  286. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9eacb2e._.js +3 -0
  287. package/web/.next/server/chunks/ssr/[root-of-the-server]__c9eacb2e._.js.map +1 -0
  288. package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +4 -0
  289. package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js.map +1 -0
  290. package/web/.next/server/chunks/ssr/[root-of-the-server]__fb243197._.js +4 -0
  291. package/web/.next/server/chunks/ssr/[root-of-the-server]__fb243197._.js.map +1 -0
  292. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +4 -0
  293. package/web/.next/server/chunks/ssr/{[root-of-the-server]__804c006d._.js.map → [root-of-the-server]__fdc75809._.js.map} +1 -1
  294. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_8e8822d6.js → server/chunks/ssr/_16235e5e._.js} +3 -3
  295. package/web/.next/server/chunks/ssr/_16235e5e._.js.map +1 -0
  296. package/web/.next/server/chunks/ssr/_3a4c94e3._.js +3 -0
  297. package/web/.next/server/chunks/ssr/_3a4c94e3._.js.map +1 -0
  298. package/web/.next/server/chunks/ssr/_4b60a2b7._.js +3 -0
  299. package/web/.next/server/chunks/ssr/_4b60a2b7._.js.map +1 -0
  300. package/web/.next/server/chunks/ssr/_6645f218._.js +21 -0
  301. package/web/.next/server/chunks/ssr/_6645f218._.js.map +1 -0
  302. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_ad8a094f._.js → server/chunks/ssr/_6887cba3._.js} +3 -3
  303. package/web/.next/server/chunks/ssr/_6887cba3._.js.map +1 -0
  304. package/web/.next/server/chunks/ssr/_6d5ca3fe._.js +3 -0
  305. package/web/.next/server/chunks/ssr/_6d5ca3fe._.js.map +1 -0
  306. package/web/.next/server/chunks/ssr/_6e08ce21._.js.map +1 -1
  307. package/web/.next/server/chunks/ssr/_77989807._.js +3 -0
  308. package/web/.next/server/chunks/ssr/_77989807._.js.map +1 -0
  309. package/web/.next/server/chunks/ssr/_800acf27._.js +3 -0
  310. package/web/.next/server/chunks/ssr/_800acf27._.js.map +1 -0
  311. package/web/.next/server/chunks/ssr/{403f9_next_dist_6c821c12._.js → _8eeee4db._.js} +3 -3
  312. package/web/.next/server/chunks/ssr/_8eeee4db._.js.map +1 -0
  313. package/web/.next/server/chunks/ssr/_9025abb8._.js +3 -0
  314. package/web/.next/server/chunks/ssr/_9025abb8._.js.map +1 -0
  315. package/web/.next/server/chunks/ssr/_9603ace6._.js +3 -0
  316. package/web/.next/server/chunks/ssr/_9603ace6._.js.map +1 -0
  317. package/web/.next/server/chunks/ssr/_ad771b49._.js +6 -0
  318. package/web/.next/server/chunks/ssr/_ad771b49._.js.map +1 -0
  319. package/web/.next/server/chunks/ssr/_b11878f5._.js +3 -0
  320. package/web/.next/server/chunks/ssr/_b11878f5._.js.map +1 -0
  321. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_3197d5cb._.js → server/chunks/ssr/_caf236b9._.js} +2 -2
  322. package/web/.next/server/chunks/ssr/_caf236b9._.js.map +1 -0
  323. package/web/.next/server/chunks/ssr/_ce38ef23._.js +9 -0
  324. package/web/.next/server/chunks/ssr/_ce38ef23._.js.map +1 -0
  325. package/web/.next/server/chunks/ssr/_d13defa2._.js +3 -0
  326. package/web/.next/server/chunks/ssr/_d13defa2._.js.map +1 -0
  327. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/_884ddade._.js → server/chunks/ssr/_ed11dcd6._.js} +3 -3
  328. package/web/.next/server/chunks/ssr/_ed11dcd6._.js.map +1 -0
  329. package/web/.next/server/chunks/ssr/_f0132aa7._.js +7 -0
  330. package/web/.next/server/chunks/ssr/_f0132aa7._.js.map +1 -0
  331. package/web/.next/server/chunks/ssr/_f38b49fe._.js +3 -0
  332. package/web/.next/server/chunks/ssr/_f38b49fe._.js.map +1 -0
  333. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_9d039634.js → server/chunks/ssr/_f4d222d6._.js} +3 -3
  334. package/web/.next/server/chunks/ssr/_f4d222d6._.js.map +1 -0
  335. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +3 -0
  336. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -0
  337. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js +3 -0
  338. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +1 -0
  339. package/web/.next/server/chunks/ssr/src_presentation_web_163038ba._.js +2 -2
  340. package/web/.next/server/chunks/ssr/src_presentation_web_163038ba._.js.map +1 -1
  341. package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +1 -1
  342. package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js.map +1 -1
  343. package/web/.next/server/chunks/ssr/src_presentation_web_459cb687._.js +2 -2
  344. package/web/.next/server/chunks/ssr/src_presentation_web_459cb687._.js.map +1 -1
  345. package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +1 -1
  346. package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js.map +1 -1
  347. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
  348. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +1 -1
  349. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +3 -0
  350. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -0
  351. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +3 -0
  352. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -0
  353. package/web/.next/server/chunks/ssr/src_presentation_web_app_global-error_tsx_14c389b5._.js +3 -0
  354. package/web/.next/server/chunks/ssr/src_presentation_web_app_global-error_tsx_14c389b5._.js.map +1 -0
  355. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  356. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  357. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  358. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  359. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_label_tsx_af3b4cd6._.js +3 -0
  360. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_label_tsx_af3b4cd6._.js.map +1 -0
  361. package/web/.next/server/middleware-build-manifest.js +4 -4
  362. package/web/.next/server/pages/500.html +2 -2
  363. package/web/.next/server/server-reference-manifest.js +1 -1
  364. package/web/.next/server/server-reference-manifest.json +59 -22
  365. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  366. package/web/.next/standalone/src/presentation/web/.next/app-path-routes-manifest.json +1 -0
  367. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +6 -6
  368. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  369. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
  370. package/web/.next/standalone/src/presentation/web/.next/routes-manifest.json +6 -0
  371. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +4 -4
  372. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +16 -16
  373. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js +8 -7
  374. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  375. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  376. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +4 -4
  377. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +19 -19
  378. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +8 -7
  379. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  380. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  381. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +4 -4
  382. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  383. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +8 -7
  384. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  385. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  386. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/build-manifest.json +4 -4
  387. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +16 -16
  388. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js +8 -7
  389. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  390. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  391. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +4 -4
  392. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +19 -19
  393. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +8 -7
  394. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  395. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  396. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/build-manifest.json +4 -4
  397. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
  398. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js +8 -7
  399. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  400. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  401. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +4 -4
  402. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  403. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +8 -7
  404. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  405. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  406. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  407. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page.js +4 -3
  408. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  409. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  410. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  411. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  412. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  413. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  414. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  415. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  416. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  417. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  418. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page.js +9 -7
  419. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  420. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  421. package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page/app-paths-manifest.json +3 -0
  422. package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page/build-manifest.json +18 -0
  423. package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page/next-font-manifest.json +6 -0
  424. package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page/react-loadable-manifest.json +1 -0
  425. package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page/server-reference-manifest.json +50 -0
  426. package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page.js +18 -0
  427. package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page.js.map +5 -0
  428. package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page.js.nft.json +1 -0
  429. package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page_client-reference-manifest.js +2 -0
  430. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/build-manifest.json +4 -4
  431. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  432. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js +11 -8
  433. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js.nft.json +1 -1
  434. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  435. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/build-manifest.json +4 -4
  436. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  437. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js +9 -7
  438. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js.nft.json +1 -1
  439. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  440. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/build-manifest.json +4 -4
  441. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  442. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page.js +8 -7
  443. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page.js.nft.json +1 -1
  444. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  445. package/web/.next/standalone/src/presentation/web/.next/server/app-paths-manifest.json +1 -0
  446. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_190bdc35._.js +4 -0
  447. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_31ea46d3._.js +6 -0
  448. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_c9d9b4d7._.js +6 -0
  449. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_compiled_dc550646._.js +3 -0
  450. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_3981ee1d._.js +3 -0
  451. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_2eacac96.js +4 -0
  452. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{403f9_next_dist_esm_build_templates_app-page_c27615b6.js → 403f9_next_dist_esm_build_templates_app-page_46d6bf1b.js} +3 -3
  453. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_54b1e179.js +4 -0
  454. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{403f9_next_dist_esm_build_templates_app-page_dbf21e04.js → 403f9_next_dist_esm_build_templates_app-page_6c70ecca.js} +3 -3
  455. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c9978986.js +4 -0
  456. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_ce6dae5d.js +4 -0
  457. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d82f78f0.js +4 -0
  458. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  459. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
  460. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
  461. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__0880ff0e._.js +3 -0
  462. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{[root-of-the-server]__c37779e6._.js → [root-of-the-server]__09af7f56._.js} +2 -2
  463. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +4 -0
  464. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__1e4ddb05._.js +4 -0
  465. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__23b5ca2c._.js +3 -0
  466. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__2f487654._.js +3 -0
  467. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +3 -0
  468. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__5edfc56b._.js +3 -0
  469. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6eb2a2b0._.js +3 -0
  470. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8c88ef55._.js +3 -0
  471. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
  472. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js +3 -0
  473. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__c0876a83._.js +3 -0
  474. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js +3 -0
  475. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__c9777776._.js +3 -0
  476. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__c9eacb2e._.js +3 -0
  477. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +4 -0
  478. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fb243197._.js +4 -0
  479. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +4 -0
  480. package/web/.next/{server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_8e8822d6.js → standalone/src/presentation/web/.next/server/chunks/ssr/_16235e5e._.js} +3 -3
  481. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_3a4c94e3._.js +3 -0
  482. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_4b60a2b7._.js +3 -0
  483. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_6645f218._.js +21 -0
  484. package/web/.next/{server/chunks/ssr/_ad8a094f._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_6887cba3._.js} +3 -3
  485. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_6d5ca3fe._.js +3 -0
  486. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_77989807._.js +3 -0
  487. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_800acf27._.js +3 -0
  488. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{403f9_next_dist_6c821c12._.js → _8eeee4db._.js} +3 -3
  489. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9025abb8._.js +3 -0
  490. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9603ace6._.js +3 -0
  491. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_ad771b49._.js +6 -0
  492. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_b11878f5._.js +3 -0
  493. package/web/.next/{server/chunks/ssr/_3197d5cb._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_caf236b9._.js} +2 -2
  494. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_ce38ef23._.js +9 -0
  495. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_d13defa2._.js +3 -0
  496. package/web/.next/{server/chunks/ssr/_884ddade._.js → standalone/src/presentation/web/.next/server/chunks/ssr/_ed11dcd6._.js} +3 -3
  497. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_f0132aa7._.js +7 -0
  498. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_f38b49fe._.js +3 -0
  499. package/web/.next/{server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_9d039634.js → standalone/src/presentation/web/.next/server/chunks/ssr/_f4d222d6._.js} +3 -3
  500. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +3 -0
  501. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js +3 -0
  502. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_163038ba._.js +2 -2
  503. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +1 -1
  504. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_459cb687._.js +2 -2
  505. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +1 -1
  506. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
  507. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +3 -0
  508. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +3 -0
  509. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_app_global-error_tsx_14c389b5._.js +3 -0
  510. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  511. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  512. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_ui_label_tsx_af3b4cd6._.js +3 -0
  513. package/web/.next/standalone/src/presentation/web/.next/server/middleware-build-manifest.js +4 -4
  514. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  515. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  516. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +59 -22
  517. package/web/.next/standalone/src/presentation/web/app/actions/create-feature.ts +6 -1
  518. package/web/.next/standalone/src/presentation/web/app/actions/load-settings.ts +43 -0
  519. package/web/.next/standalone/src/presentation/web/app/actions/update-settings.ts +73 -0
  520. package/web/.next/standalone/src/presentation/web/app/global-error.tsx +23 -0
  521. package/web/.next/standalone/src/presentation/web/app/settings/page.tsx +27 -0
  522. package/web/.next/standalone/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.tsx +57 -0
  523. package/web/.next/standalone/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.tsx +21 -0
  524. package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-inner.tsx +32 -4
  525. package/web/.next/standalone/src/presentation/web/components/features/control-center/use-control-center-state.ts +9 -4
  526. package/web/.next/standalone/src/presentation/web/components/features/features-canvas/features-canvas.stories.tsx +81 -2
  527. package/web/.next/standalone/src/presentation/web/components/features/features-canvas/features-canvas.tsx +1 -1
  528. package/web/.next/standalone/src/presentation/web/components/features/settings/agent-settings-section.stories.tsx +43 -0
  529. package/web/.next/standalone/src/presentation/web/components/features/settings/agent-settings-section.tsx +176 -0
  530. package/web/.next/standalone/src/presentation/web/components/features/settings/database-settings-section.stories.tsx +28 -0
  531. package/web/.next/standalone/src/presentation/web/components/features/settings/database-settings-section.tsx +43 -0
  532. package/web/.next/standalone/src/presentation/web/components/features/settings/environment-settings-section.stories.tsx +33 -0
  533. package/web/.next/standalone/src/presentation/web/components/features/settings/environment-settings-section.tsx +125 -0
  534. package/web/.next/standalone/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.tsx +44 -0
  535. package/web/.next/standalone/src/presentation/web/components/features/settings/feature-flags-settings-section.tsx +94 -0
  536. package/web/.next/standalone/src/presentation/web/components/features/settings/notification-settings-section.stories.tsx +71 -0
  537. package/web/.next/standalone/src/presentation/web/components/features/settings/notification-settings-section.tsx +178 -0
  538. package/web/.next/standalone/src/presentation/web/components/features/settings/settings-page-client.stories.tsx +46 -0
  539. package/web/.next/standalone/src/presentation/web/components/features/settings/settings-page-client.tsx +60 -0
  540. package/web/.next/standalone/src/presentation/web/components/features/settings/workflow-settings-section.stories.tsx +62 -0
  541. package/web/.next/standalone/src/presentation/web/components/features/settings/workflow-settings-section.tsx +274 -0
  542. package/web/.next/standalone/src/presentation/web/components/layouts/app-sidebar/app-sidebar.tsx +7 -1
  543. package/web/.next/standalone/src/presentation/web/components/ui/switch.tsx +35 -0
  544. package/web/.next/standalone/src/presentation/web/hooks/use-graph-state.ts +7 -0
  545. package/web/.next/standalone/src/presentation/web/hooks/use-viewport-persistence.ts +2 -0
  546. package/web/.next/standalone/src/presentation/web/lib/feature-flags.ts +47 -4
  547. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  548. package/web/.next/static/chunks/0c9c6fa052f30692.js +1 -0
  549. package/web/.next/static/chunks/12c0a9e7b566f998.css +2 -0
  550. package/web/.next/static/chunks/2500bf7056aaeff1.js +1 -0
  551. package/web/.next/static/chunks/27a80588cf4e08df.js +1 -0
  552. package/web/.next/static/chunks/27f7260befce4dea.js +1 -0
  553. package/web/.next/static/chunks/2bbd5c12e2c90c0c.js +1 -0
  554. package/web/.next/static/chunks/356ebc89a2a97627.js +1 -0
  555. package/web/.next/static/chunks/3b37508221559c80.js +1 -0
  556. package/web/.next/static/chunks/3e4dc2cc60a49743.js +1 -0
  557. package/web/.next/static/chunks/{716547ef8d13139d.js → 4d4a4111dec5f70f.js} +1 -1
  558. package/web/.next/static/chunks/700501f5ac2bb320.js +1 -0
  559. package/web/.next/static/chunks/736bef33b328e5e6.js +1 -0
  560. package/web/.next/static/chunks/8857165c23fc8fe5.js +1 -0
  561. package/web/.next/static/chunks/89aac43287d73b02.js +1 -0
  562. package/web/.next/static/chunks/9c74a889605bb2a3.js +1 -0
  563. package/web/.next/static/chunks/a5c6c77b79b9ed9b.js +1 -0
  564. package/web/.next/static/chunks/b1c0e555cf7bb4f8.js +1 -0
  565. package/web/.next/static/chunks/d0732d738a696000.js +1 -0
  566. package/web/.next/static/chunks/{07f00e2e73d322d2.js → d4d8f0a137bd2eb4.js} +3 -3
  567. package/web/.next/static/chunks/d9c55c5f00f6d29b.js +1 -0
  568. package/web/.next/static/chunks/db55ff93af6c8455.js +4 -0
  569. package/web/.next/static/chunks/{00adfce42dbbd5ef.js → f742ff5c1be2ef77.js} +1 -1
  570. package/web/.next/static/chunks/f97fd41212035056.js +11 -0
  571. package/web/.next/static/chunks/fa9742636bdfcce6.js +1 -0
  572. package/web/.next/static/chunks/{turbopack-05820f781f3ffc22.js → turbopack-3bdf15471eef2eec.js} +1 -1
  573. package/web/.next/trace +1 -1
  574. package/web/.next/trace-build +1 -1
  575. package/web/.next/types/link.d.ts +1 -0
  576. package/web/.next/types/routes.d.ts +2 -1
  577. package/web/.next/types/validator.ts +9 -0
  578. package/web/.next/server/chunks/ssr/403f9_next_dist_client_components_builtin_global-error_5fefc4d7.js +0 -3
  579. package/web/.next/server/chunks/ssr/403f9_next_dist_client_components_builtin_global-error_5fefc4d7.js.map +0 -1
  580. package/web/.next/server/chunks/ssr/403f9_next_dist_d738ab66._.js +0 -3
  581. package/web/.next/server/chunks/ssr/403f9_next_dist_d738ab66._.js.map +0 -1
  582. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_0f115902.js +0 -4
  583. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_0f115902.js.map +0 -1
  584. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_8e8822d6.js.map +0 -1
  585. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_9d039634.js.map +0 -1
  586. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_bec3d8d3.js.map +0 -1
  587. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_c27615b6.js.map +0 -1
  588. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_d302115b.js.map +0 -1
  589. package/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_dbf21e04.js.map +0 -1
  590. package/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js +0 -4
  591. package/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js.map +0 -1
  592. package/web/.next/server/chunks/ssr/[root-of-the-server]__2018e25f._.js +0 -3
  593. package/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +0 -3
  594. package/web/.next/server/chunks/ssr/[root-of-the-server]__3b4af5ae._.js +0 -3
  595. package/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js +0 -4
  596. package/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js.map +0 -1
  597. package/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js +0 -3
  598. package/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js.map +0 -1
  599. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +0 -4
  600. package/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js +0 -4
  601. package/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js.map +0 -1
  602. package/web/.next/server/chunks/ssr/[root-of-the-server]__6ee2450e._.js +0 -3
  603. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +0 -4
  604. package/web/.next/server/chunks/ssr/[root-of-the-server]__80e5bed2._.js +0 -3
  605. package/web/.next/server/chunks/ssr/[root-of-the-server]__80e5bed2._.js.map +0 -1
  606. package/web/.next/server/chunks/ssr/[root-of-the-server]__8a947500._.js +0 -3
  607. package/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js +0 -3
  608. package/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js.map +0 -1
  609. package/web/.next/server/chunks/ssr/[root-of-the-server]__c18f84a4._.js +0 -3
  610. package/web/.next/server/chunks/ssr/[root-of-the-server]__e062a6de._.js +0 -3
  611. package/web/.next/server/chunks/ssr/[root-of-the-server]__e062a6de._.js.map +0 -1
  612. package/web/.next/server/chunks/ssr/[root-of-the-server]__fa87595c._.js +0 -3
  613. package/web/.next/server/chunks/ssr/_07c2a32a._.js +0 -9
  614. package/web/.next/server/chunks/ssr/_07c2a32a._.js.map +0 -1
  615. package/web/.next/server/chunks/ssr/_0e9d6bf7._.js +0 -3
  616. package/web/.next/server/chunks/ssr/_0e9d6bf7._.js.map +0 -1
  617. package/web/.next/server/chunks/ssr/_3197d5cb._.js.map +0 -1
  618. package/web/.next/server/chunks/ssr/_380c6567._.js +0 -6
  619. package/web/.next/server/chunks/ssr/_380c6567._.js.map +0 -1
  620. package/web/.next/server/chunks/ssr/_44cce4e0._.js +0 -4
  621. package/web/.next/server/chunks/ssr/_44cce4e0._.js.map +0 -1
  622. package/web/.next/server/chunks/ssr/_5ee4f5a7._.js +0 -7
  623. package/web/.next/server/chunks/ssr/_5ee4f5a7._.js.map +0 -1
  624. package/web/.next/server/chunks/ssr/_61351ed3._.js +0 -3
  625. package/web/.next/server/chunks/ssr/_61351ed3._.js.map +0 -1
  626. package/web/.next/server/chunks/ssr/_8400c8bb._.js +0 -3
  627. package/web/.next/server/chunks/ssr/_8400c8bb._.js.map +0 -1
  628. package/web/.next/server/chunks/ssr/_9f940437._.js +0 -3
  629. package/web/.next/server/chunks/ssr/_9f940437._.js.map +0 -1
  630. package/web/.next/server/chunks/ssr/_a29296f0._.js +0 -3
  631. package/web/.next/server/chunks/ssr/_a29296f0._.js.map +0 -1
  632. package/web/.next/server/chunks/ssr/_a3854150._.js +0 -6
  633. package/web/.next/server/chunks/ssr/_a3854150._.js.map +0 -1
  634. package/web/.next/server/chunks/ssr/_ad8a094f._.js.map +0 -1
  635. package/web/.next/server/chunks/ssr/_dc379243._.js +0 -4
  636. package/web/.next/server/chunks/ssr/_dc379243._.js.map +0 -1
  637. package/web/.next/server/chunks/ssr/_e806976d._.js +0 -3
  638. package/web/.next/server/chunks/ssr/_e806976d._.js.map +0 -1
  639. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_tabs_tsx_b226ea9b._.js +0 -3
  640. package/web/.next/server/chunks/ssr/src_presentation_web_components_ui_tabs_tsx_b226ea9b._.js.map +0 -1
  641. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_client_components_builtin_global-error_5fefc4d7.js +0 -3
  642. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_d738ab66._.js +0 -3
  643. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/403f9_next_dist_esm_build_templates_app-page_0f115902.js +0 -4
  644. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__17a611f0._.js +0 -4
  645. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__2018e25f._.js +0 -3
  646. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +0 -3
  647. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__3b4af5ae._.js +0 -3
  648. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js +0 -4
  649. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6258349c._.js +0 -3
  650. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +0 -4
  651. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6cbc1149._.js +0 -4
  652. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6ee2450e._.js +0 -3
  653. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +0 -4
  654. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__80e5bed2._.js +0 -3
  655. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8a947500._.js +0 -3
  656. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__94a6d275._.js +0 -3
  657. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__c18f84a4._.js +0 -3
  658. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__e062a6de._.js +0 -3
  659. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fa87595c._.js +0 -3
  660. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_07c2a32a._.js +0 -9
  661. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_0e9d6bf7._.js +0 -3
  662. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_380c6567._.js +0 -6
  663. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_44cce4e0._.js +0 -4
  664. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_5ee4f5a7._.js +0 -7
  665. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_61351ed3._.js +0 -3
  666. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_8400c8bb._.js +0 -3
  667. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9f940437._.js +0 -3
  668. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_a29296f0._.js +0 -3
  669. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_a3854150._.js +0 -6
  670. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_dc379243._.js +0 -4
  671. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_e806976d._.js +0 -3
  672. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_ui_tabs_tsx_b226ea9b._.js +0 -3
  673. package/web/.next/static/chunks/11a6c88ffcbac93f.js +0 -1
  674. package/web/.next/static/chunks/1f5c93a8b939416d.js +0 -5
  675. package/web/.next/static/chunks/255140c45a023ff4.js +0 -1
  676. package/web/.next/static/chunks/293231ccc0b144fa.js +0 -1
  677. package/web/.next/static/chunks/3bc2a07d02372939.js +0 -1
  678. package/web/.next/static/chunks/3f205fd6adbfd20a.js +0 -7
  679. package/web/.next/static/chunks/424982cd78174a1a.js +0 -1
  680. package/web/.next/static/chunks/4a3b3cfcc85e7254.js +0 -1
  681. package/web/.next/static/chunks/5d0a6417c4e4e545.js +0 -1
  682. package/web/.next/static/chunks/6931ae67c2484ddf.js +0 -1
  683. package/web/.next/static/chunks/9215b6fb973482c5.js +0 -1
  684. package/web/.next/static/chunks/9a765e022ef2b815.js +0 -1
  685. package/web/.next/static/chunks/b6c507fc42d9a277.js +0 -1
  686. package/web/.next/static/chunks/c1dbeb3307dab443.js +0 -4
  687. package/web/.next/static/chunks/d7786685ec8efe10.js +0 -1
  688. package/web/.next/static/chunks/e12fff3b57456bc2.css +0 -2
  689. package/web/.next/static/chunks/edbd674102e897b4.js +0 -1
  690. /package/web/.next/static/{L6_6jZ4TnQuuDXIF5GZEf → OY9vo9JHlYYnBy-WPoYAQ}/_buildManifest.js +0 -0
  691. /package/web/.next/static/{L6_6jZ4TnQuuDXIF5GZEf → OY9vo9JHlYYnBy-WPoYAQ}/_clientMiddlewareManifest.json +0 -0
  692. /package/web/.next/static/{L6_6jZ4TnQuuDXIF5GZEf → OY9vo9JHlYYnBy-WPoYAQ}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[61402,76052,13008,74607,6542,a=>{"use strict";var b=a.i(92658),c=a.i(96380),d=a.i(12581);async function e(a,b){if(!a.trim())return{approved:!1,error:"Feature id is required"};try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(a);if(!e)return{approved:!1,error:"Feature not found"};if(!e.agentRunId)return{approved:!1,error:"Feature has no agent run"};let f=(0,c.resolve)("ApproveAgentRunUseCase"),g=await f.execute(e.agentRunId,b);if(!g.approved)return{approved:!1,error:g.reason};return{approved:!0}}catch(a){return{approved:!1,error:a instanceof Error?a.message:"Failed to approve feature"}}}async function f(a,b){if(!a.trim())return{rejected:!1,error:"Feature id is required"};if(!b.trim())return{rejected:!1,error:"Feedback is required"};try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(a);if(!e)return{rejected:!1,error:"Feature not found"};if(!e.agentRunId)return{rejected:!1,error:"Feature has no agent run"};let f=(0,c.resolve)("RejectAgentRunUseCase"),g=await f.execute(e.agentRunId,b);if(!g.rejected)return{rejected:!1,error:g.reason};return{rejected:!0,iteration:g.iteration,iterationWarning:g.iterationWarning}}catch(a){return{rejected:!1,error:a instanceof Error?a.message:"Failed to reject feature"}}}async function g(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("GetFeatureArtifactUseCase"),d=await b.execute(a),e={question:"Goal",context:d.oneLiner,questions:d.openQuestions.map((a,b)=>({id:`q-${b}`,question:a.question,type:"select",options:(a.options??[]).map((a,c)=>({id:`q-${b}-opt-${c}`,label:a.option,rationale:a.description,...a.selected?{recommended:!0}:{}}))})),finalAction:{id:"approve-reqs",label:"Approve Requirements",description:"Finalize and lock the requirements for implementation"}},f={question:"Goal",context:d.oneLiner,questions:d.openQuestions.filter(a=>a.resolved).map(a=>{let b=a.options?.find(a=>a.selected);return{question:a.question,selectedOption:b?.option??a.answer??"N/A",rationale:a.selectionRationale??b?.description??"",wasRecommended:!1}})};return{questionnaire:e,productDecisions:f,artifact:d}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature artifact"}}}async function h(a){if(!a.trim())return{error:"Feature id is required"};try{var b;let d=(0,c.resolve)("GetResearchArtifactUseCase");return{techDecisions:{name:(b=await d.execute(a)).name,summary:b.summary,decisions:b.decisions,technologies:b.technologies}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load research artifact"}}}async function i(a){if(!a.trim())return{error:"Feature id is required"};try{let b,d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(a);if(!e)return{error:"Feature not found"};let f=e.pr?{url:e.pr.url,number:e.pr.number,status:e.pr.status,commitHash:e.pr.commitHash,ciStatus:e.pr.ciStatus}:void 0,g=e.branch?{source:e.branch,target:"main"}:void 0;try{let d=(0,c.resolve)("GetPlanArtifactUseCase");b=(await d.execute(a)).phases.map(({id:a,name:b,description:c})=>({id:a,name:b,description:c}))}catch{}if(!e.worktreePath)return{pr:f,branch:g,phases:b,warning:f?void 0:"No PR or diff data available"};try{let a=(0,c.resolve)("IGitPrService"),d=await a.getPrDiffSummary(e.worktreePath,"main");return{pr:f,branch:g,phases:b,diffSummary:d}}catch{return{pr:f,branch:g,phases:b,warning:"Diff statistics unavailable"}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load merge review data"}}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"60dbc13ca125acf26363f2a53ab28268b7edbe9b84",null),a.s(["approveFeature",()=>e],61402),(0,d.ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"6011242a29faf3dc530d9678157b7320fd8d57df0d",null),a.s(["rejectFeature",()=>f],76052),(0,d.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"408dcbd92c32847e010222c00464b66d574d54c6ce",null),a.s(["getFeatureArtifact",()=>g],13008),(0,d.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"40b0e3f60f8d8c22240eb1fdb01ade17267010278a",null),a.s(["getResearchArtifact",()=>h],74607),(0,d.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"40908f89b8b9c28515b8cbc064e6352a3c6ccd045f",null),a.s(["getMergeReviewData",()=>i],6542)},48839,a=>{"use strict";var b=a.i(12513),c=a.i(94691),d=a.i(33841),e=a.i(46646),f=a.i(68670),g=a.i(85321),h=a.i(84095),i=a.i(56799),j=a.i(80496),k=a.i(50845),l=a.i(49560),m=a.i(39353),n=a.i(29207),o=a.i(31075),p=a.i(61402),q=a.i(76052),r=a.i(13008),s=a.i(74607),t=a.i(6542);a.s([],29653),a.i(29653),a.s(["005101386c33eed0a9d09d016407557035e8aafa22",()=>b.pickFolder,"00a2d7da094e900afb48965a6f13437c70bc60d6ba",()=>o.fetchGraphData,"40526e48c32bc183d1637154f656b8d5f820962f37",()=>n.getFeatureMetadata,"4054a4f64c100f11ac89f48fd0093575ce11784a51",()=>m.deleteRepository,"4064f52b4324e2f1eaac40633a3136dc1b94e94aa0",()=>h.openIde,"4068f20b6be5f5925c54041eb39b7ff451dcf12846",()=>k.deleteFeature,"408dcbd92c32847e010222c00464b66d574d54c6ce",()=>r.getFeatureArtifact,"409078876c80cdc5d4f30504dd7202cee2713ab8ff",()=>i.openShell,"40908f89b8b9c28515b8cbc064e6352a3c6ccd045f",()=>t.getMergeReviewData,"40a4ce9322d73f2b091e181ebe60681f82dfadd43c",()=>c.getDeploymentLogs,"40a4f6dc7f35746115c0acd5ea7f9b77d82a2a484b",()=>g.getDeploymentStatus,"40b0e3f60f8d8c22240eb1fdb01ade17267010278a",()=>s.getResearchArtifact,"40bbeb71465d6853434ce31d6751fb95e3d487764f",()=>d.deployFeature,"40c1954e0785d24f8aa4b9989324834bdca00b5b4c",()=>j.openFolder,"40d68d2f8e56c8f60ea925c11a1b81eec1623e69f2",()=>f.stopDeployment,"40d7bb17bc532b90cfdbbb277139facbad0b7fdc4d",()=>l.addRepository,"40da710191b67bfe20861e8fed5da370eceea977d3",()=>e.deployRepository,"6011242a29faf3dc530d9678157b7320fd8d57df0d",()=>q.rejectFeature,"60dbc13ca125acf26363f2a53ab28268b7edbe9b84",()=>p.approveFeature],48839)}];
1
+ module.exports=[61402,76052,13008,74607,6542,a=>{"use strict";var b=a.i(92658),c=a.i(96380),d=a.i(12581);async function e(a,b){if(!a.trim())return{approved:!1,error:"Feature id is required"};try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(a);if(!e)return{approved:!1,error:"Feature not found"};if(!e.agentRunId)return{approved:!1,error:"Feature has no agent run"};let f=(0,c.resolve)("ApproveAgentRunUseCase"),g=await f.execute(e.agentRunId,b);if(!g.approved)return{approved:!1,error:g.reason};return{approved:!0}}catch(a){return{approved:!1,error:a instanceof Error?a.message:"Failed to approve feature"}}}async function f(a,b){if(!a.trim())return{rejected:!1,error:"Feature id is required"};if(!b.trim())return{rejected:!1,error:"Feedback is required"};try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(a);if(!e)return{rejected:!1,error:"Feature not found"};if(!e.agentRunId)return{rejected:!1,error:"Feature has no agent run"};let f=(0,c.resolve)("RejectAgentRunUseCase"),g=await f.execute(e.agentRunId,b);if(!g.rejected)return{rejected:!1,error:g.reason};return{rejected:!0,iteration:g.iteration,iterationWarning:g.iterationWarning}}catch(a){return{rejected:!1,error:a instanceof Error?a.message:"Failed to reject feature"}}}async function g(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("GetFeatureArtifactUseCase"),d=await b.execute(a),e={question:"Goal",context:d.oneLiner,questions:d.openQuestions.map((a,b)=>({id:`q-${b}`,question:a.question,type:"select",options:(a.options??[]).map((a,c)=>({id:`q-${b}-opt-${c}`,label:a.option,rationale:a.description,...a.selected?{recommended:!0}:{}}))})),finalAction:{id:"approve-reqs",label:"Approve Requirements",description:"Finalize and lock the requirements for implementation"}},f={question:"Goal",context:d.oneLiner,questions:d.openQuestions.filter(a=>a.resolved).map(a=>{let b=a.options?.find(a=>a.selected);return{question:a.question,selectedOption:b?.option??a.answer??"N/A",rationale:a.selectionRationale??b?.description??"",wasRecommended:!1}})};return{questionnaire:e,productDecisions:f,artifact:d}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature artifact"}}}async function h(a){if(!a.trim())return{error:"Feature id is required"};try{var b;let d=(0,c.resolve)("GetResearchArtifactUseCase");return{techDecisions:{name:(b=await d.execute(a)).name,summary:b.summary,decisions:b.decisions,technologies:b.technologies}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load research artifact"}}}async function i(a){if(!a.trim())return{error:"Feature id is required"};try{let b,d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(a);if(!e)return{error:"Feature not found"};let f=e.pr?{url:e.pr.url,number:e.pr.number,status:e.pr.status,commitHash:e.pr.commitHash,ciStatus:e.pr.ciStatus}:void 0,g=e.branch?{source:e.branch,target:"main"}:void 0;try{let d=(0,c.resolve)("GetPlanArtifactUseCase");b=(await d.execute(a)).phases.map(({id:a,name:b,description:c})=>({id:a,name:b,description:c}))}catch{}if(!e.worktreePath)return{pr:f,branch:g,phases:b,warning:f?void 0:"No PR or diff data available"};try{let a=(0,c.resolve)("IGitPrService"),d=await a.getPrDiffSummary(e.worktreePath,"main");return{pr:f,branch:g,phases:b,diffSummary:d}}catch{return{pr:f,branch:g,phases:b,warning:"Diff statistics unavailable"}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load merge review data"}}}(0,d.ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"606bd34298f6e8fe4e17d13d6928878fa1730721c3",null),a.s(["approveFeature",()=>e],61402),(0,d.ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"60fe50245767090e629c7a54472e95fb34f54d657a",null),a.s(["rejectFeature",()=>f],76052),(0,d.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"40873ec020e5bb30d3601d034dba5f7aa3e54c8a5f",null),a.s(["getFeatureArtifact",()=>g],13008),(0,d.ensureServerEntryExports)([h]),(0,b.registerServerReference)(h,"406b23bd7a7fd8ebcc417fb052ba0f09c7e5ff2adc",null),a.s(["getResearchArtifact",()=>h],74607),(0,d.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"403aa17fa6b0970c177e705ff9de07dc4b20b8fdd5",null),a.s(["getMergeReviewData",()=>i],6542)},48839,a=>{"use strict";var b=a.i(12513),c=a.i(94691),d=a.i(33841),e=a.i(46646),f=a.i(68670),g=a.i(85321),h=a.i(84095),i=a.i(56799),j=a.i(80496),k=a.i(50845),l=a.i(49560),m=a.i(39353),n=a.i(29207),o=a.i(31075),p=a.i(61402),q=a.i(76052),r=a.i(13008),s=a.i(74607),t=a.i(6542);a.s([],29653),a.i(29653),a.s(["0050b8ce56382cc3aff95692bb5c67f5d7d52059ee",()=>o.fetchGraphData,"00af19e4d20dbaffeed08210fc7540c61f829e28ea",()=>b.pickFolder,"4015ca08aeb8b3e1b4a21c0b01aea726c570eddcb6",()=>n.getFeatureMetadata,"402215691f701f4742d6f1efd251986a71a8946cae",()=>g.getDeploymentStatus,"403aa17fa6b0970c177e705ff9de07dc4b20b8fdd5",()=>t.getMergeReviewData,"405c8f2fdac71c5005feb8998a702b7b4e59fc57d2",()=>e.deployRepository,"406b23bd7a7fd8ebcc417fb052ba0f09c7e5ff2adc",()=>s.getResearchArtifact,"407270803e5e028ed5726bb8906490ea43c6d864f3",()=>k.deleteFeature,"40873ec020e5bb30d3601d034dba5f7aa3e54c8a5f",()=>r.getFeatureArtifact,"4089edf1e0faa4882df249cd5fcceacc37140a4c34",()=>f.stopDeployment,"40991a985b98f5c394d43d4cc616e965ff94c62be5",()=>j.openFolder,"40a84404810dc95df84804b3b9b42ee6a0e0d21015",()=>i.openShell,"40b54235266e6173690048edcdc274d2f1db02c5c8",()=>h.openIde,"40b6fc96d7196fb5d413d65f48452cc6ec8cbac16f",()=>l.addRepository,"40ca6c158a12884e216643cd9b957d42eb97e1abcc",()=>m.deleteRepository,"40ec8adbbe79c8eda37f954882d8b30b55ea6f7ffe",()=>d.deployFeature,"40fe122cb65d44fb34c0d166acbecbc13af063e211",()=>c.getDeploymentLogs,"606bd34298f6e8fe4e17d13d6928878fa1730721c3",()=>p.approveFeature,"60fe50245767090e629c7a54472e95fb34f54d657a",()=>q.rejectFeature],48839)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web_565a14f8._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/approve-feature.ts","../../../../../../../src/presentation/web/app/actions/reject-feature.ts","../../../../../../../src/presentation/web/app/actions/get-feature-artifact.ts","../../../../../../../src/presentation/web/app/actions/get-research-artifact.ts","../../../../../../../src/presentation/web/app/actions/get-merge-review-data.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/feature/%5BfeatureId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { ApproveAgentRunUseCase } from '@shepai/core/application/use-cases/agents/approve-agent-run.use-case';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\nimport type { PrdApprovalPayload } from '@shepai/core/domain/generated/output';\n\nexport async function approveFeature(\n featureId: string,\n payload?: PrdApprovalPayload\n): Promise<{ approved: boolean; error?: string }> {\n if (!featureId.trim()) {\n return { approved: false, error: 'Feature id is required' };\n }\n\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n\n if (!feature) {\n return { approved: false, error: 'Feature not found' };\n }\n\n if (!feature.agentRunId) {\n return { approved: false, error: 'Feature has no agent run' };\n }\n\n const approveUseCase = resolve<ApproveAgentRunUseCase>('ApproveAgentRunUseCase');\n const result = await approveUseCase.execute(feature.agentRunId, payload);\n\n if (!result.approved) {\n return { approved: false, error: result.reason };\n }\n\n return { approved: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to approve feature';\n return { approved: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { RejectAgentRunUseCase } from '@shepai/core/application/use-cases/agents/reject-agent-run.use-case';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\n\nexport async function rejectFeature(\n featureId: string,\n feedback: string\n): Promise<{\n rejected: boolean;\n iteration?: number;\n iterationWarning?: boolean;\n error?: string;\n}> {\n if (!featureId.trim()) {\n return { rejected: false, error: 'Feature id is required' };\n }\n\n if (!feedback.trim()) {\n return { rejected: false, error: 'Feedback is required' };\n }\n\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n\n if (!feature) {\n return { rejected: false, error: 'Feature not found' };\n }\n\n if (!feature.agentRunId) {\n return { rejected: false, error: 'Feature has no agent run' };\n }\n\n const rejectUseCase = resolve<RejectAgentRunUseCase>('RejectAgentRunUseCase');\n const result = await rejectUseCase.execute(feature.agentRunId, feedback);\n\n if (!result.rejected) {\n return { rejected: false, error: result.reason };\n }\n\n return {\n rejected: true,\n iteration: result.iteration,\n iterationWarning: result.iterationWarning,\n };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to reject feature';\n return { rejected: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { GetFeatureArtifactUseCase } from '@shepai/core/application/use-cases/features/get-feature-artifact.use-case';\nimport type { FeatureArtifact } from '@shepai/core/domain/generated/output';\nimport type { PrdQuestionnaireData } from '@shepai/core/domain/generated/output';\nimport type { ProductDecisionsSummaryData } from '@/components/common/product-decisions-summary';\n\ninterface GetFeatureArtifactResult {\n questionnaire?: PrdQuestionnaireData;\n productDecisions?: ProductDecisionsSummaryData;\n artifact?: FeatureArtifact;\n error?: string;\n}\n\n/**\n * Map FeatureArtifact openQuestions into the PrdQuestionnaireData shape\n * expected by the PrdQuestionnaireDrawer component.\n */\nfunction toQuestionnaireData(artifact: FeatureArtifact): PrdQuestionnaireData {\n return {\n question: 'Goal',\n context: artifact.oneLiner,\n questions: artifact.openQuestions.map((oq, idx) => ({\n id: `q-${idx}`,\n question: oq.question,\n type: 'select' as const,\n options: (oq.options ?? []).map((opt, optIdx) => ({\n id: `q-${idx}-opt-${optIdx}`,\n label: opt.option,\n rationale: opt.description,\n ...(opt.selected ? { recommended: true } : {}),\n })),\n })),\n finalAction: {\n id: 'approve-reqs',\n label: 'Approve Requirements',\n description: 'Finalize and lock the requirements for implementation',\n },\n };\n}\n\n/**\n * Map FeatureArtifact openQuestions into a read-only summary for the\n * Product Decisions tab in the tech review drawer.\n */\nfunction toProductDecisionsData(artifact: FeatureArtifact): ProductDecisionsSummaryData {\n return {\n question: 'Goal',\n context: artifact.oneLiner,\n questions: artifact.openQuestions\n .filter((oq) => oq.resolved)\n .map((oq) => {\n const selected = oq.options?.find((o) => o.selected);\n return {\n question: oq.question,\n selectedOption: selected?.option ?? oq.answer ?? 'N/A',\n rationale: oq.selectionRationale ?? selected?.description ?? '',\n wasRecommended: false,\n };\n }),\n };\n}\n\nexport async function getFeatureArtifact(featureId: string): Promise<GetFeatureArtifactResult> {\n if (!featureId.trim()) {\n return { error: 'Feature id is required' };\n }\n\n try {\n const useCase = resolve<GetFeatureArtifactUseCase>('GetFeatureArtifactUseCase');\n const artifact = await useCase.execute(featureId);\n const questionnaire = toQuestionnaireData(artifact);\n const productDecisions = toProductDecisionsData(artifact);\n return { questionnaire, productDecisions, artifact };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load feature artifact';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { GetResearchArtifactUseCase } from '@shepai/core/application/use-cases/features/get-research-artifact.use-case';\nimport type { ResearchArtifact, TechDecision } from '@shepai/core/domain/generated/output';\n\nexport interface TechDecisionsReviewData {\n name: string;\n summary: string;\n decisions: TechDecision[];\n technologies: string[];\n}\n\ninterface GetResearchArtifactResult {\n techDecisions?: TechDecisionsReviewData;\n error?: string;\n}\n\nfunction toTechDecisionsData(artifact: ResearchArtifact): TechDecisionsReviewData {\n return {\n name: artifact.name,\n summary: artifact.summary,\n decisions: artifact.decisions,\n technologies: artifact.technologies,\n };\n}\n\nexport async function getResearchArtifact(featureId: string): Promise<GetResearchArtifactResult> {\n if (!featureId.trim()) {\n return { error: 'Feature id is required' };\n }\n\n try {\n const useCase = resolve<GetResearchArtifactUseCase>('GetResearchArtifactUseCase');\n const artifact = await useCase.execute(featureId);\n const techDecisions = toTechDecisionsData(artifact);\n return { techDecisions };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load research artifact';\n return { 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';\nimport type { IGitPrService } from '@shepai/core/application/ports/output/services/git-pr-service.interface';\nimport type { GetPlanArtifactUseCase } from '@shepai/core/application/use-cases/features/get-plan-artifact.use-case';\nimport type {\n MergeReviewData,\n MergeReviewPhase,\n} from '@/components/common/merge-review/merge-review-config';\n\ntype GetMergeReviewDataResult = MergeReviewData | { error: string };\n\nexport async function getMergeReviewData(featureId: string): Promise<GetMergeReviewDataResult> {\n if (!featureId.trim()) {\n return { error: 'Feature id is required' };\n }\n\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n\n if (!feature) {\n return { error: 'Feature not found' };\n }\n\n const pr = feature.pr\n ? {\n url: feature.pr.url,\n number: feature.pr.number,\n status: feature.pr.status,\n commitHash: feature.pr.commitHash,\n ciStatus: feature.pr.ciStatus,\n }\n : undefined;\n\n const branch = feature.branch ? { source: feature.branch, target: 'main' } : undefined;\n\n // Load plan phases (best-effort)\n let phases: MergeReviewPhase[] | undefined;\n try {\n const planUseCase = resolve<GetPlanArtifactUseCase>('GetPlanArtifactUseCase');\n const plan = await planUseCase.execute(featureId);\n phases = plan.phases.map(({ id, name, description }) => ({ id, name, description }));\n } catch {\n // Plan unavailable — not critical\n }\n\n if (!feature.worktreePath) {\n return { pr, branch, phases, warning: pr ? undefined : 'No PR or diff data available' };\n }\n\n try {\n const gitPrService = resolve<IGitPrService>('IGitPrService');\n const diffSummary = await gitPrService.getPrDiffSummary(feature.worktreePath, 'main');\n return { pr, branch, phases, diffSummary };\n } catch {\n return { pr, branch, phases, warning: 'Diff statistics unavailable' };\n }\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load merge review data';\n return { error: message };\n }\n}\n","export {pickFolder as '005101386c33eed0a9d09d016407557035e8aafa22'} from 'ACTIONS_MODULE0'\nexport {getDeploymentLogs as '40a4ce9322d73f2b091e181ebe60681f82dfadd43c'} from 'ACTIONS_MODULE1'\nexport {deployFeature as '40bbeb71465d6853434ce31d6751fb95e3d487764f'} from 'ACTIONS_MODULE2'\nexport {deployRepository as '40da710191b67bfe20861e8fed5da370eceea977d3'} from 'ACTIONS_MODULE3'\nexport {stopDeployment as '40d68d2f8e56c8f60ea925c11a1b81eec1623e69f2'} from 'ACTIONS_MODULE4'\nexport {getDeploymentStatus as '40a4f6dc7f35746115c0acd5ea7f9b77d82a2a484b'} from 'ACTIONS_MODULE5'\nexport {openIde as '4064f52b4324e2f1eaac40633a3136dc1b94e94aa0'} from 'ACTIONS_MODULE6'\nexport {openShell as '409078876c80cdc5d4f30504dd7202cee2713ab8ff'} from 'ACTIONS_MODULE7'\nexport {openFolder as '40c1954e0785d24f8aa4b9989324834bdca00b5b4c'} from 'ACTIONS_MODULE8'\nexport {deleteFeature as '4068f20b6be5f5925c54041eb39b7ff451dcf12846'} from 'ACTIONS_MODULE9'\nexport {addRepository as '40d7bb17bc532b90cfdbbb277139facbad0b7fdc4d'} from 'ACTIONS_MODULE10'\nexport {deleteRepository as '4054a4f64c100f11ac89f48fd0093575ce11784a51'} from 'ACTIONS_MODULE11'\nexport {getFeatureMetadata as '40526e48c32bc183d1637154f656b8d5f820962f37'} from 'ACTIONS_MODULE12'\nexport {fetchGraphData as '00a2d7da094e900afb48965a6f13437c70bc60d6ba'} from 'ACTIONS_MODULE13'\nexport {approveFeature as '60dbc13ca125acf26363f2a53ab28268b7edbe9b84'} from 'ACTIONS_MODULE14'\nexport {rejectFeature as '6011242a29faf3dc530d9678157b7320fd8d57df0d'} from 'ACTIONS_MODULE15'\nexport {getFeatureArtifact as '408dcbd92c32847e010222c00464b66d574d54c6ce'} from 'ACTIONS_MODULE16'\nexport {getResearchArtifact as '40b0e3f60f8d8c22240eb1fdb01ade17267010278a'} from 'ACTIONS_MODULE17'\nexport {getMergeReviewData as '40908f89b8b9c28515b8cbc064e6352a3c6ccd045f'} from 'ACTIONS_MODULE18'\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/app/actions/approve-feature.ts","../../../../../../../src/presentation/web/app/actions/reject-feature.ts","../../../../../../../src/presentation/web/app/actions/get-feature-artifact.ts","../../../../../../../src/presentation/web/app/actions/get-research-artifact.ts","../../../../../../../src/presentation/web/app/actions/get-merge-review-data.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/feature/%5BfeatureId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { ApproveAgentRunUseCase } from '@shepai/core/application/use-cases/agents/approve-agent-run.use-case';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\nimport type { PrdApprovalPayload } from '@shepai/core/domain/generated/output';\n\nexport async function approveFeature(\n featureId: string,\n payload?: PrdApprovalPayload\n): Promise<{ approved: boolean; error?: string }> {\n if (!featureId.trim()) {\n return { approved: false, error: 'Feature id is required' };\n }\n\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n\n if (!feature) {\n return { approved: false, error: 'Feature not found' };\n }\n\n if (!feature.agentRunId) {\n return { approved: false, error: 'Feature has no agent run' };\n }\n\n const approveUseCase = resolve<ApproveAgentRunUseCase>('ApproveAgentRunUseCase');\n const result = await approveUseCase.execute(feature.agentRunId, payload);\n\n if (!result.approved) {\n return { approved: false, error: result.reason };\n }\n\n return { approved: true };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to approve feature';\n return { approved: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { RejectAgentRunUseCase } from '@shepai/core/application/use-cases/agents/reject-agent-run.use-case';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\n\nexport async function rejectFeature(\n featureId: string,\n feedback: string\n): Promise<{\n rejected: boolean;\n iteration?: number;\n iterationWarning?: boolean;\n error?: string;\n}> {\n if (!featureId.trim()) {\n return { rejected: false, error: 'Feature id is required' };\n }\n\n if (!feedback.trim()) {\n return { rejected: false, error: 'Feedback is required' };\n }\n\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n\n if (!feature) {\n return { rejected: false, error: 'Feature not found' };\n }\n\n if (!feature.agentRunId) {\n return { rejected: false, error: 'Feature has no agent run' };\n }\n\n const rejectUseCase = resolve<RejectAgentRunUseCase>('RejectAgentRunUseCase');\n const result = await rejectUseCase.execute(feature.agentRunId, feedback);\n\n if (!result.rejected) {\n return { rejected: false, error: result.reason };\n }\n\n return {\n rejected: true,\n iteration: result.iteration,\n iterationWarning: result.iterationWarning,\n };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to reject feature';\n return { rejected: false, error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { GetFeatureArtifactUseCase } from '@shepai/core/application/use-cases/features/get-feature-artifact.use-case';\nimport type { FeatureArtifact } from '@shepai/core/domain/generated/output';\nimport type { PrdQuestionnaireData } from '@shepai/core/domain/generated/output';\nimport type { ProductDecisionsSummaryData } from '@/components/common/product-decisions-summary';\n\ninterface GetFeatureArtifactResult {\n questionnaire?: PrdQuestionnaireData;\n productDecisions?: ProductDecisionsSummaryData;\n artifact?: FeatureArtifact;\n error?: string;\n}\n\n/**\n * Map FeatureArtifact openQuestions into the PrdQuestionnaireData shape\n * expected by the PrdQuestionnaireDrawer component.\n */\nfunction toQuestionnaireData(artifact: FeatureArtifact): PrdQuestionnaireData {\n return {\n question: 'Goal',\n context: artifact.oneLiner,\n questions: artifact.openQuestions.map((oq, idx) => ({\n id: `q-${idx}`,\n question: oq.question,\n type: 'select' as const,\n options: (oq.options ?? []).map((opt, optIdx) => ({\n id: `q-${idx}-opt-${optIdx}`,\n label: opt.option,\n rationale: opt.description,\n ...(opt.selected ? { recommended: true } : {}),\n })),\n })),\n finalAction: {\n id: 'approve-reqs',\n label: 'Approve Requirements',\n description: 'Finalize and lock the requirements for implementation',\n },\n };\n}\n\n/**\n * Map FeatureArtifact openQuestions into a read-only summary for the\n * Product Decisions tab in the tech review drawer.\n */\nfunction toProductDecisionsData(artifact: FeatureArtifact): ProductDecisionsSummaryData {\n return {\n question: 'Goal',\n context: artifact.oneLiner,\n questions: artifact.openQuestions\n .filter((oq) => oq.resolved)\n .map((oq) => {\n const selected = oq.options?.find((o) => o.selected);\n return {\n question: oq.question,\n selectedOption: selected?.option ?? oq.answer ?? 'N/A',\n rationale: oq.selectionRationale ?? selected?.description ?? '',\n wasRecommended: false,\n };\n }),\n };\n}\n\nexport async function getFeatureArtifact(featureId: string): Promise<GetFeatureArtifactResult> {\n if (!featureId.trim()) {\n return { error: 'Feature id is required' };\n }\n\n try {\n const useCase = resolve<GetFeatureArtifactUseCase>('GetFeatureArtifactUseCase');\n const artifact = await useCase.execute(featureId);\n const questionnaire = toQuestionnaireData(artifact);\n const productDecisions = toProductDecisionsData(artifact);\n return { questionnaire, productDecisions, artifact };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load feature artifact';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { GetResearchArtifactUseCase } from '@shepai/core/application/use-cases/features/get-research-artifact.use-case';\nimport type { ResearchArtifact, TechDecision } from '@shepai/core/domain/generated/output';\n\nexport interface TechDecisionsReviewData {\n name: string;\n summary: string;\n decisions: TechDecision[];\n technologies: string[];\n}\n\ninterface GetResearchArtifactResult {\n techDecisions?: TechDecisionsReviewData;\n error?: string;\n}\n\nfunction toTechDecisionsData(artifact: ResearchArtifact): TechDecisionsReviewData {\n return {\n name: artifact.name,\n summary: artifact.summary,\n decisions: artifact.decisions,\n technologies: artifact.technologies,\n };\n}\n\nexport async function getResearchArtifact(featureId: string): Promise<GetResearchArtifactResult> {\n if (!featureId.trim()) {\n return { error: 'Feature id is required' };\n }\n\n try {\n const useCase = resolve<GetResearchArtifactUseCase>('GetResearchArtifactUseCase');\n const artifact = await useCase.execute(featureId);\n const techDecisions = toTechDecisionsData(artifact);\n return { techDecisions };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load research artifact';\n return { 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';\nimport type { IGitPrService } from '@shepai/core/application/ports/output/services/git-pr-service.interface';\nimport type { GetPlanArtifactUseCase } from '@shepai/core/application/use-cases/features/get-plan-artifact.use-case';\nimport type {\n MergeReviewData,\n MergeReviewPhase,\n} from '@/components/common/merge-review/merge-review-config';\n\ntype GetMergeReviewDataResult = MergeReviewData | { error: string };\n\nexport async function getMergeReviewData(featureId: string): Promise<GetMergeReviewDataResult> {\n if (!featureId.trim()) {\n return { error: 'Feature id is required' };\n }\n\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n\n if (!feature) {\n return { error: 'Feature not found' };\n }\n\n const pr = feature.pr\n ? {\n url: feature.pr.url,\n number: feature.pr.number,\n status: feature.pr.status,\n commitHash: feature.pr.commitHash,\n ciStatus: feature.pr.ciStatus,\n }\n : undefined;\n\n const branch = feature.branch ? { source: feature.branch, target: 'main' } : undefined;\n\n // Load plan phases (best-effort)\n let phases: MergeReviewPhase[] | undefined;\n try {\n const planUseCase = resolve<GetPlanArtifactUseCase>('GetPlanArtifactUseCase');\n const plan = await planUseCase.execute(featureId);\n phases = plan.phases.map(({ id, name, description }) => ({ id, name, description }));\n } catch {\n // Plan unavailable — not critical\n }\n\n if (!feature.worktreePath) {\n return { pr, branch, phases, warning: pr ? undefined : 'No PR or diff data available' };\n }\n\n try {\n const gitPrService = resolve<IGitPrService>('IGitPrService');\n const diffSummary = await gitPrService.getPrDiffSummary(feature.worktreePath, 'main');\n return { pr, branch, phases, diffSummary };\n } catch {\n return { pr, branch, phases, warning: 'Diff statistics unavailable' };\n }\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load merge review data';\n return { error: message };\n }\n}\n","export {pickFolder as '00af19e4d20dbaffeed08210fc7540c61f829e28ea'} from 'ACTIONS_MODULE0'\nexport {getDeploymentLogs as '40fe122cb65d44fb34c0d166acbecbc13af063e211'} from 'ACTIONS_MODULE1'\nexport {deployFeature as '40ec8adbbe79c8eda37f954882d8b30b55ea6f7ffe'} from 'ACTIONS_MODULE2'\nexport {deployRepository as '405c8f2fdac71c5005feb8998a702b7b4e59fc57d2'} from 'ACTIONS_MODULE3'\nexport {stopDeployment as '4089edf1e0faa4882df249cd5fcceacc37140a4c34'} from 'ACTIONS_MODULE4'\nexport {getDeploymentStatus as '402215691f701f4742d6f1efd251986a71a8946cae'} from 'ACTIONS_MODULE5'\nexport {openIde as '40b54235266e6173690048edcdc274d2f1db02c5c8'} from 'ACTIONS_MODULE6'\nexport {openShell as '40a84404810dc95df84804b3b9b42ee6a0e0d21015'} from 'ACTIONS_MODULE7'\nexport {openFolder as '40991a985b98f5c394d43d4cc616e965ff94c62be5'} from 'ACTIONS_MODULE8'\nexport {deleteFeature as '407270803e5e028ed5726bb8906490ea43c6d864f3'} from 'ACTIONS_MODULE9'\nexport {addRepository as '40b6fc96d7196fb5d413d65f48452cc6ec8cbac16f'} from 'ACTIONS_MODULE10'\nexport {deleteRepository as '40ca6c158a12884e216643cd9b957d42eb97e1abcc'} from 'ACTIONS_MODULE11'\nexport {getFeatureMetadata as '4015ca08aeb8b3e1b4a21c0b01aea726c570eddcb6'} from 'ACTIONS_MODULE12'\nexport {fetchGraphData as '0050b8ce56382cc3aff95692bb5c67f5d7d52059ee'} from 'ACTIONS_MODULE13'\nexport {approveFeature as '606bd34298f6e8fe4e17d13d6928878fa1730721c3'} from 'ACTIONS_MODULE14'\nexport {rejectFeature as '60fe50245767090e629c7a54472e95fb34f54d657a'} from 'ACTIONS_MODULE15'\nexport {getFeatureArtifact as '40873ec020e5bb30d3601d034dba5f7aa3e54c8a5f'} from 'ACTIONS_MODULE16'\nexport {getResearchArtifact as '406b23bd7a7fd8ebcc417fb052ba0f09c7e5ff2adc'} from 'ACTIONS_MODULE17'\nexport {getMergeReviewData as '403aa17fa6b0970c177e705ff9de07dc4b20b8fdd5'} from 'ACTIONS_MODULE18'\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- module.exports=[78391,a=>{"use strict";var b=a.i(12513),c=a.i(94691),d=a.i(33841),e=a.i(46646),f=a.i(68670),g=a.i(85321),h=a.i(84095),i=a.i(56799),j=a.i(80496),k=a.i(50845),l=a.i(49560),m=a.i(39353),n=a.i(29207),o=a.i(31075);a.s([],72127),a.i(72127),a.s(["005101386c33eed0a9d09d016407557035e8aafa22",()=>b.pickFolder,"00a2d7da094e900afb48965a6f13437c70bc60d6ba",()=>o.fetchGraphData,"40526e48c32bc183d1637154f656b8d5f820962f37",()=>n.getFeatureMetadata,"4054a4f64c100f11ac89f48fd0093575ce11784a51",()=>m.deleteRepository,"4064f52b4324e2f1eaac40633a3136dc1b94e94aa0",()=>h.openIde,"4068f20b6be5f5925c54041eb39b7ff451dcf12846",()=>k.deleteFeature,"409078876c80cdc5d4f30504dd7202cee2713ab8ff",()=>i.openShell,"40a4ce9322d73f2b091e181ebe60681f82dfadd43c",()=>c.getDeploymentLogs,"40a4f6dc7f35746115c0acd5ea7f9b77d82a2a484b",()=>g.getDeploymentStatus,"40bbeb71465d6853434ce31d6751fb95e3d487764f",()=>d.deployFeature,"40c1954e0785d24f8aa4b9989324834bdca00b5b4c",()=>j.openFolder,"40d68d2f8e56c8f60ea925c11a1b81eec1623e69f2",()=>f.stopDeployment,"40d7bb17bc532b90cfdbbb277139facbad0b7fdc4d",()=>l.addRepository,"40da710191b67bfe20861e8fed5da370eceea977d3",()=>e.deployRepository],78391)}];
1
+ module.exports=[78391,a=>{"use strict";var b=a.i(12513),c=a.i(94691),d=a.i(33841),e=a.i(46646),f=a.i(68670),g=a.i(85321),h=a.i(84095),i=a.i(56799),j=a.i(80496),k=a.i(50845),l=a.i(49560),m=a.i(39353),n=a.i(29207),o=a.i(31075);a.s([],72127),a.i(72127),a.s(["0050b8ce56382cc3aff95692bb5c67f5d7d52059ee",()=>o.fetchGraphData,"00af19e4d20dbaffeed08210fc7540c61f829e28ea",()=>b.pickFolder,"4015ca08aeb8b3e1b4a21c0b01aea726c570eddcb6",()=>n.getFeatureMetadata,"402215691f701f4742d6f1efd251986a71a8946cae",()=>g.getDeploymentStatus,"405c8f2fdac71c5005feb8998a702b7b4e59fc57d2",()=>e.deployRepository,"407270803e5e028ed5726bb8906490ea43c6d864f3",()=>k.deleteFeature,"4089edf1e0faa4882df249cd5fcceacc37140a4c34",()=>f.stopDeployment,"40991a985b98f5c394d43d4cc616e965ff94c62be5",()=>j.openFolder,"40a84404810dc95df84804b3b9b42ee6a0e0d21015",()=>i.openShell,"40b54235266e6173690048edcdc274d2f1db02c5c8",()=>h.openIde,"40b6fc96d7196fb5d413d65f48452cc6ec8cbac16f",()=>l.addRepository,"40ca6c158a12884e216643cd9b957d42eb97e1abcc",()=>m.deleteRepository,"40ec8adbbe79c8eda37f954882d8b30b55ea6f7ffe",()=>d.deployFeature,"40fe122cb65d44fb34c0d166acbecbc13af063e211",()=>c.getDeploymentLogs],78391)}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web__next-internal_server_app_%28dashboard%29_page_actions_021a05f2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {pickFolder as '005101386c33eed0a9d09d016407557035e8aafa22'} from 'ACTIONS_MODULE0'\nexport {getDeploymentLogs as '40a4ce9322d73f2b091e181ebe60681f82dfadd43c'} from 'ACTIONS_MODULE1'\nexport {deployFeature as '40bbeb71465d6853434ce31d6751fb95e3d487764f'} from 'ACTIONS_MODULE2'\nexport {deployRepository as '40da710191b67bfe20861e8fed5da370eceea977d3'} from 'ACTIONS_MODULE3'\nexport {stopDeployment as '40d68d2f8e56c8f60ea925c11a1b81eec1623e69f2'} from 'ACTIONS_MODULE4'\nexport {getDeploymentStatus as '40a4f6dc7f35746115c0acd5ea7f9b77d82a2a484b'} from 'ACTIONS_MODULE5'\nexport {openIde as '4064f52b4324e2f1eaac40633a3136dc1b94e94aa0'} from 'ACTIONS_MODULE6'\nexport {openShell as '409078876c80cdc5d4f30504dd7202cee2713ab8ff'} from 'ACTIONS_MODULE7'\nexport {openFolder as '40c1954e0785d24f8aa4b9989324834bdca00b5b4c'} from 'ACTIONS_MODULE8'\nexport {deleteFeature as '4068f20b6be5f5925c54041eb39b7ff451dcf12846'} from 'ACTIONS_MODULE9'\nexport {addRepository as '40d7bb17bc532b90cfdbbb277139facbad0b7fdc4d'} from 'ACTIONS_MODULE10'\nexport {deleteRepository as '4054a4f64c100f11ac89f48fd0093575ce11784a51'} from 'ACTIONS_MODULE11'\nexport {getFeatureMetadata as '40526e48c32bc183d1637154f656b8d5f820962f37'} from 'ACTIONS_MODULE12'\nexport {fetchGraphData as '00a2d7da094e900afb48965a6f13437c70bc60d6ba'} from 'ACTIONS_MODULE13'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {pickFolder as '00af19e4d20dbaffeed08210fc7540c61f829e28ea'} from 'ACTIONS_MODULE0'\nexport {getDeploymentLogs as '40fe122cb65d44fb34c0d166acbecbc13af063e211'} from 'ACTIONS_MODULE1'\nexport {deployFeature as '40ec8adbbe79c8eda37f954882d8b30b55ea6f7ffe'} from 'ACTIONS_MODULE2'\nexport {deployRepository as '405c8f2fdac71c5005feb8998a702b7b4e59fc57d2'} from 'ACTIONS_MODULE3'\nexport {stopDeployment as '4089edf1e0faa4882df249cd5fcceacc37140a4c34'} from 'ACTIONS_MODULE4'\nexport {getDeploymentStatus as '402215691f701f4742d6f1efd251986a71a8946cae'} from 'ACTIONS_MODULE5'\nexport {openIde as '40b54235266e6173690048edcdc274d2f1db02c5c8'} from 'ACTIONS_MODULE6'\nexport {openShell as '40a84404810dc95df84804b3b9b42ee6a0e0d21015'} from 'ACTIONS_MODULE7'\nexport {openFolder as '40991a985b98f5c394d43d4cc616e965ff94c62be5'} from 'ACTIONS_MODULE8'\nexport {deleteFeature as '407270803e5e028ed5726bb8906490ea43c6d864f3'} from 'ACTIONS_MODULE9'\nexport {addRepository as '40b6fc96d7196fb5d413d65f48452cc6ec8cbac16f'} from 'ACTIONS_MODULE10'\nexport {deleteRepository as '40ca6c158a12884e216643cd9b957d42eb97e1abcc'} from 'ACTIONS_MODULE11'\nexport {getFeatureMetadata as '4015ca08aeb8b3e1b4a21c0b01aea726c570eddcb6'} from 'ACTIONS_MODULE12'\nexport {fetchGraphData as '0050b8ce56382cc3aff95692bb5c67f5d7d52059ee'} from 'ACTIONS_MODULE13'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -0,0 +1,3 @@
1
+ module.exports=[87596,a=>{"use strict";var b=a.i(12513),c=a.i(94691),d=a.i(33841),e=a.i(46646),f=a.i(68670),g=a.i(85321);a.s([],78455),a.i(78455),a.s(["00af19e4d20dbaffeed08210fc7540c61f829e28ea",()=>b.pickFolder,"402215691f701f4742d6f1efd251986a71a8946cae",()=>g.getDeploymentStatus,"405c8f2fdac71c5005feb8998a702b7b4e59fc57d2",()=>e.deployRepository,"4089edf1e0faa4882df249cd5fcceacc37140a4c34",()=>f.stopDeployment,"40ec8adbbe79c8eda37f954882d8b30b55ea6f7ffe",()=>d.deployFeature,"40fe122cb65d44fb34c0d166acbecbc13af063e211",()=>c.getDeploymentLogs],87596)}];
2
+
3
+ //# sourceMappingURL=src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/skills/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {pickFolder as '00af19e4d20dbaffeed08210fc7540c61f829e28ea'} from 'ACTIONS_MODULE0'\nexport {getDeploymentLogs as '40fe122cb65d44fb34c0d166acbecbc13af063e211'} from 'ACTIONS_MODULE1'\nexport {deployFeature as '40ec8adbbe79c8eda37f954882d8b30b55ea6f7ffe'} from 'ACTIONS_MODULE2'\nexport {deployRepository as '405c8f2fdac71c5005feb8998a702b7b4e59fc57d2'} from 'ACTIONS_MODULE3'\nexport {stopDeployment as '4089edf1e0faa4882df249cd5fcceacc37140a4c34'} from 'ACTIONS_MODULE4'\nexport {getDeploymentStatus as '402215691f701f4742d6f1efd251986a71a8946cae'} from 'ACTIONS_MODULE5'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -0,0 +1,3 @@
1
+ module.exports=[90322,a=>{"use strict";var b=a.i(12513),c=a.i(94691),d=a.i(33841),e=a.i(46646),f=a.i(68670),g=a.i(85321);a.s([],9775),a.i(9775),a.s(["00af19e4d20dbaffeed08210fc7540c61f829e28ea",()=>b.pickFolder,"402215691f701f4742d6f1efd251986a71a8946cae",()=>g.getDeploymentStatus,"405c8f2fdac71c5005feb8998a702b7b4e59fc57d2",()=>e.deployRepository,"4089edf1e0faa4882df249cd5fcceacc37140a4c34",()=>f.stopDeployment,"40ec8adbbe79c8eda37f954882d8b30b55ea6f7ffe",()=>d.deployFeature,"40fe122cb65d44fb34c0d166acbecbc13af063e211",()=>c.getDeploymentLogs],90322)}];
2
+
3
+ //# sourceMappingURL=src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/tools/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {pickFolder as '00af19e4d20dbaffeed08210fc7540c61f829e28ea'} from 'ACTIONS_MODULE0'\nexport {getDeploymentLogs as '40fe122cb65d44fb34c0d166acbecbc13af063e211'} from 'ACTIONS_MODULE1'\nexport {deployFeature as '40ec8adbbe79c8eda37f954882d8b30b55ea6f7ffe'} from 'ACTIONS_MODULE2'\nexport {deployRepository as '405c8f2fdac71c5005feb8998a702b7b4e59fc57d2'} from 'ACTIONS_MODULE3'\nexport {stopDeployment as '4089edf1e0faa4882df249cd5fcceacc37140a4c34'} from 'ACTIONS_MODULE4'\nexport {getDeploymentStatus as '402215691f701f4742d6f1efd251986a71a8946cae'} from 'ACTIONS_MODULE5'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -0,0 +1,3 @@
1
+ module.exports=[39108,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/src/presentation/web/app/global-error.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/app/global-error.tsx <module evaluation>","default")},73449,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(28478).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/src/presentation/web/app/global-error.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/presentation/web/app/global-error.tsx","default")},5983,a=>{"use strict";a.i(39108);var b=a.i(73449);a.n(b)}];
2
+
3
+ //# sourceMappingURL=src_presentation_web_app_global-error_tsx_14c389b5._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/app/global-error.tsx/__nextjs-internal-proxy.mjs"],"sourcesContent":["// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/src/presentation/web/app/global-error.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/presentation/web/app/global-error.tsx\",\n \"default\",\n);\n"],"names":[],"mappings":"oEAEe,CAAA,EAAA,AADf,EAAA,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAI,MAAM,2SAA6S,EAC1U,0EACA,gEAHW,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAI,MAAM,uRAAyR,EACtT,sDACA","ignoreList":[0]}
@@ -1,3 +1,3 @@
1
- module.exports=[66560,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(69845),e=a.i(42261),f=a.i(25700);let g=(0,f.default)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);var h=a.i(20098),i=a.i(85536),j=a.i(18948);a.i(90920),a.i(13126);var k=a.i(10568),l=a.i(71335);function m({...a}){return(0,b.jsx)(l.Dialog.Root,{"data-slot":"sheet",...a})}function n({...a}){return(0,b.jsx)(l.Dialog.Portal,{"data-slot":"sheet-portal",...a})}function o({className:a,...c}){return(0,b.jsx)(l.Dialog.Overlay,{"data-slot":"sheet-overlay",className:(0,i.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",a),...c})}function p({className:a,children:c,side:d="right",showCloseButton:e=!0,...f}){return(0,b.jsxs)(n,{children:[(0,b.jsx)(o,{}),(0,b.jsxs)(l.Dialog.Content,{"data-slot":"sheet-content",className:(0,i.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"===d&&"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"===d&&"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"===d&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===d&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",a),...f,children:[c,e?(0,b.jsxs)(l.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,b.jsx)(k.XIcon,{className:"size-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})]})}function q({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sheet-header",className:(0,i.cn)("flex flex-col gap-1.5 p-4",a),...c})}function r({className:a,...c}){return(0,b.jsx)(l.Dialog.Title,{"data-slot":"sheet-title",className:(0,i.cn)("text-foreground font-semibold",a),...c})}function s({className:a,...c}){return(0,b.jsx)(l.Dialog.Description,{"data-slot":"sheet-description",className:(0,i.cn)("text-muted-foreground text-sm",a),...c})}var t=a.i(82934);let u=c.createContext(null);function v(){let a=c.useContext(u);if(!a)throw Error("useSidebar must be used within a SidebarProvider.");return a}function w({defaultOpen:a=!0,open:d,onOpenChange:e,className:f,style:g,children:h,...j}){let k=function(){let[a,b]=c.useState(void 0);return c.useEffect(()=>{let a=window.matchMedia("(max-width: 767px)"),c=()=>{b(window.innerWidth<768)};return a.addEventListener("change",c),b(window.innerWidth<768),()=>a.removeEventListener("change",c)},[]),!!a}(),[l,m]=c.useState(!1),[n,o]=c.useState(a),p=d??n,q=c.useCallback(a=>{let b="function"==typeof a?a(p):a;e?e(b):o(b),document.cookie=`sidebar_state=${b}; path=/; max-age=604800`},[e,p]),r=c.useCallback(()=>k?m(a=>!a):q(a=>!a),[k,q,m]);c.useEffect(()=>{let a=a=>{"b"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),r())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[r]);let s=p?"expanded":"collapsed",v=c.useMemo(()=>({state:s,open:p,setOpen:q,isMobile:k,openMobile:l,setOpenMobile:m,toggleSidebar:r}),[s,p,q,k,l,m,r]);return(0,b.jsx)(u.Provider,{value:v,children:(0,b.jsx)(t.TooltipProvider,{delayDuration:0,children:(0,b.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...g},className:(0,i.cn)("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",f),...j,children:h})})})}function x({side:a="left",variant:c="sidebar",collapsible:d="offcanvas",className:e,children:f,...g}){let{isMobile:h,state:j,openMobile:k,setOpenMobile:l}=v();return"none"===d?(0,b.jsx)("div",{"data-slot":"sidebar",className:(0,i.cn)("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",e),...g,children:f}):h?(0,b.jsx)(m,{open:k,onOpenChange:l,...g,children:(0,b.jsxs)(p,{"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:a,children:[(0,b.jsxs)(q,{className:"sr-only",children:[(0,b.jsx)(r,{children:"Sidebar"}),(0,b.jsx)(s,{children:"Displays the mobile sidebar."})]}),(0,b.jsx)("div",{className:"flex h-full w-full flex-col",children:f})]})}):(0,b.jsxs)("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":j,"data-collapsible":"collapsed"===j?d:"","data-variant":c,"data-side":a,"data-slot":"sidebar",children:[(0,b.jsx)("div",{"data-slot":"sidebar-gap",className:(0,i.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"===c||"inset"===c?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,b.jsx)("div",{"data-slot":"sidebar-container",className:(0,i.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===a?"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"===c||"inset"===c?"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",e),...g,children:(0,b.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:f})})]})}function y({className:a,...c}){let{toggleSidebar:d}=v();return(0,b.jsx)("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:d,title:"Toggle Sidebar",className:(0,i.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",a),...c})}function z({className:a,...c}){return(0,b.jsx)("main",{"data-slot":"sidebar-inset",className:(0,i.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",a),...c})}function A({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,i.cn)("flex flex-col gap-2 p-2",a),...c})}function B({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,i.cn)("flex flex-col gap-2 p-2",a),...c})}function C({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,i.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",a),...c})}function D({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,i.cn)("relative flex w-full min-w-0 flex-col p-2",a),...c})}function E({className:a,asChild:c=!1,...d}){let e=c?h.Slot.Root:"div";return(0,b.jsx)(e,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,i.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",a),...d})}function F({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,i.cn)("w-full text-sm",a),...c})}function G({className:a,...c}){return(0,b.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,i.cn)("flex w-full min-w-0 flex-col gap-1",a),...c})}function H({className:a,...c}){return(0,b.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,i.cn)("group/menu-item relative",a),...c})}let I=(0,e.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 J({asChild:a=!1,isActive:c=!1,variant:d="default",size:e="default",tooltip:f,className:g,...j}){let k=a?h.Slot.Root:"button",{isMobile:l,state:m}=v(),n=(0,b.jsx)(k,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":e,"data-active":c,className:(0,i.cn)(I({variant:d,size:e}),g),...j});return f?("string"==typeof f&&(f={children:f}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{asChild:!0,children:n}),(0,b.jsx)(t.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==m||l,...f})]})):n}let K=(0,f.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 L=a.i(17300),M=a.i(67424),N=a.i(67837),O=a.i(66873),P=a.i(14272),Q=a.i(7420),R=a.i(6175),S=a.i(79406),T=a.i(48939),U=a.i(61476),V=a.i(59653),W="ScrollArea",[X,Y]=(0,Q.createContextScope)(W),[Z,$]=X(W),_=c.forwardRef((a,d)=>{let{__scopeScrollArea:e,type:f="hover",dir:g,scrollHideDelay:h=600,...i}=a,[j,k]=c.useState(null),[l,m]=c.useState(null),[n,o]=c.useState(null),[p,q]=c.useState(null),[r,s]=c.useState(null),[t,u]=c.useState(0),[v,w]=c.useState(0),[x,y]=c.useState(!1),[z,A]=c.useState(!1),B=(0,R.useComposedRefs)(d,a=>k(a)),C=(0,T.useDirection)(g);return(0,b.jsx)(Z,{scope:e,type:f,dir:C,scrollHideDelay:h,scrollArea:j,viewport:l,onViewportChange:m,content:n,onContentChange:o,scrollbarX:p,onScrollbarXChange:q,scrollbarXEnabled:x,onScrollbarXEnabledChange:y,scrollbarY:r,onScrollbarYChange:s,scrollbarYEnabled:z,onScrollbarYEnabledChange:A,onCornerWidthChange:u,onCornerHeightChange:w,children:(0,b.jsx)(O.Primitive.div,{dir:C,...i,ref:B,style:{position:"relative","--radix-scroll-area-corner-width":t+"px","--radix-scroll-area-corner-height":v+"px",...a.style}})})});_.displayName=W;var aa="ScrollAreaViewport",ab=c.forwardRef((a,d)=>{let{__scopeScrollArea:e,children:f,nonce:g,...h}=a,i=$(aa,e),j=c.useRef(null),k=(0,R.useComposedRefs)(d,j,i.onViewportChange);return(0,b.jsxs)(b.Fragment,{children:[(0,b.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:g}),(0,b.jsx)(O.Primitive.div,{"data-radix-scroll-area-viewport":"",...h,ref:k,style:{overflowX:i.scrollbarXEnabled?"scroll":"hidden",overflowY:i.scrollbarYEnabled?"scroll":"hidden",...a.style},children:(0,b.jsx)("div",{ref:i.onContentChange,style:{minWidth:"100%",display:"table"},children:f})})]})});ab.displayName=aa;var ac="ScrollAreaScrollbar",ad=c.forwardRef((a,d)=>{let{forceMount:e,...f}=a,g=$(ac,a.__scopeScrollArea),{onScrollbarXEnabledChange:h,onScrollbarYEnabledChange:i}=g,j="horizontal"===a.orientation;return c.useEffect(()=>(j?h(!0):i(!0),()=>{j?h(!1):i(!1)}),[j,h,i]),"hover"===g.type?(0,b.jsx)(ae,{...f,ref:d,forceMount:e}):"scroll"===g.type?(0,b.jsx)(af,{...f,ref:d,forceMount:e}):"auto"===g.type?(0,b.jsx)(ag,{...f,ref:d,forceMount:e}):"always"===g.type?(0,b.jsx)(ah,{...f,ref:d}):null});ad.displayName=ac;var ae=c.forwardRef((a,d)=>{let{forceMount:e,...f}=a,g=$(ac,a.__scopeScrollArea),[h,i]=c.useState(!1);return c.useEffect(()=>{let a=g.scrollArea,b=0;if(a){let c=()=>{window.clearTimeout(b),i(!0)},d=()=>{b=window.setTimeout(()=>i(!1),g.scrollHideDelay)};return a.addEventListener("pointerenter",c),a.addEventListener("pointerleave",d),()=>{window.clearTimeout(b),a.removeEventListener("pointerenter",c),a.removeEventListener("pointerleave",d)}}},[g.scrollArea,g.scrollHideDelay]),(0,b.jsx)(P.Presence,{present:e||h,children:(0,b.jsx)(ag,{"data-state":h?"visible":"hidden",...f,ref:d})})}),af=c.forwardRef((a,d)=>{var e;let{forceMount:f,...g}=a,h=$(ac,a.__scopeScrollArea),i="horizontal"===a.orientation,j=az(()=>l("SCROLL_END"),100),[k,l]=(e={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},c.useReducer((a,b)=>e[a][b]??a,"hidden"));return c.useEffect(()=>{if("idle"===k){let a=window.setTimeout(()=>l("HIDE"),h.scrollHideDelay);return()=>window.clearTimeout(a)}},[k,h.scrollHideDelay,l]),c.useEffect(()=>{let a=h.viewport,b=i?"scrollLeft":"scrollTop";if(a){let c=a[b],d=()=>{let d=a[b];c!==d&&(l("SCROLL"),j()),c=d};return a.addEventListener("scroll",d),()=>a.removeEventListener("scroll",d)}},[h.viewport,i,l,j]),(0,b.jsx)(P.Presence,{present:f||"hidden"!==k,children:(0,b.jsx)(ah,{"data-state":"hidden"===k?"hidden":"visible",...g,ref:d,onPointerEnter:(0,V.composeEventHandlers)(a.onPointerEnter,()=>l("POINTER_ENTER")),onPointerLeave:(0,V.composeEventHandlers)(a.onPointerLeave,()=>l("POINTER_LEAVE"))})})}),ag=c.forwardRef((a,d)=>{let e=$(ac,a.__scopeScrollArea),{forceMount:f,...g}=a,[h,i]=c.useState(!1),j="horizontal"===a.orientation,k=az(()=>{if(e.viewport){let a=e.viewport.offsetWidth<e.viewport.scrollWidth,b=e.viewport.offsetHeight<e.viewport.scrollHeight;i(j?a:b)}},10);return aA(e.viewport,k),aA(e.content,k),(0,b.jsx)(P.Presence,{present:f||h,children:(0,b.jsx)(ah,{"data-state":h?"visible":"hidden",...g,ref:d})})}),ah=c.forwardRef((a,d)=>{let{orientation:e="vertical",...f}=a,g=$(ac,a.__scopeScrollArea),h=c.useRef(null),i=c.useRef(0),[j,k]=c.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=au(j.viewport,j.content),m={...f,sizes:j,onSizesChange:k,hasThumb:!!(l>0&&l<1),onThumbChange:a=>h.current=a,onThumbPointerUp:()=>i.current=0,onThumbPointerDown:a=>i.current=a};function n(a,b){return function(a,b,c,d="ltr"){let e=av(c),f=b||e/2,g=c.scrollbar.paddingStart+f,h=c.scrollbar.size-c.scrollbar.paddingEnd-(e-f),i=c.content-c.viewport;return ax([g,h],"ltr"===d?[0,i]:[-1*i,0])(a)}(a,i.current,j,b)}return"horizontal"===e?(0,b.jsx)(ai,{...m,ref:d,onThumbPositionChange:()=>{if(g.viewport&&h.current){let a=aw(g.viewport.scrollLeft,j,g.dir);h.current.style.transform=`translate3d(${a}px, 0, 0)`}},onWheelScroll:a=>{g.viewport&&(g.viewport.scrollLeft=a)},onDragScroll:a=>{g.viewport&&(g.viewport.scrollLeft=n(a,g.dir))}}):"vertical"===e?(0,b.jsx)(aj,{...m,ref:d,onThumbPositionChange:()=>{if(g.viewport&&h.current){let a=aw(g.viewport.scrollTop,j);h.current.style.transform=`translate3d(0, ${a}px, 0)`}},onWheelScroll:a=>{g.viewport&&(g.viewport.scrollTop=a)},onDragScroll:a=>{g.viewport&&(g.viewport.scrollTop=n(a))}}):null}),ai=c.forwardRef((a,d)=>{let{sizes:e,onSizesChange:f,...g}=a,h=$(ac,a.__scopeScrollArea),[i,j]=c.useState(),k=c.useRef(null),l=(0,R.useComposedRefs)(d,k,h.onScrollbarXChange);return c.useEffect(()=>{k.current&&j(getComputedStyle(k.current))},[k]),(0,b.jsx)(am,{"data-orientation":"horizontal",...g,ref:l,sizes:e,style:{bottom:0,left:"rtl"===h.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===h.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":av(e)+"px",...a.style},onThumbPointerDown:b=>a.onThumbPointerDown(b.x),onDragScroll:b=>a.onDragScroll(b.x),onWheelScroll:(b,c)=>{if(h.viewport){var d,e;let f=h.viewport.scrollLeft+b.deltaX;a.onWheelScroll(f),d=f,e=c,d>0&&d<e&&b.preventDefault()}},onResize:()=>{k.current&&h.viewport&&i&&f({content:h.viewport.scrollWidth,viewport:h.viewport.offsetWidth,scrollbar:{size:k.current.clientWidth,paddingStart:at(i.paddingLeft),paddingEnd:at(i.paddingRight)}})}})}),aj=c.forwardRef((a,d)=>{let{sizes:e,onSizesChange:f,...g}=a,h=$(ac,a.__scopeScrollArea),[i,j]=c.useState(),k=c.useRef(null),l=(0,R.useComposedRefs)(d,k,h.onScrollbarYChange);return c.useEffect(()=>{k.current&&j(getComputedStyle(k.current))},[k]),(0,b.jsx)(am,{"data-orientation":"vertical",...g,ref:l,sizes:e,style:{top:0,right:"ltr"===h.dir?0:void 0,left:"rtl"===h.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":av(e)+"px",...a.style},onThumbPointerDown:b=>a.onThumbPointerDown(b.y),onDragScroll:b=>a.onDragScroll(b.y),onWheelScroll:(b,c)=>{if(h.viewport){var d,e;let f=h.viewport.scrollTop+b.deltaY;a.onWheelScroll(f),d=f,e=c,d>0&&d<e&&b.preventDefault()}},onResize:()=>{k.current&&h.viewport&&i&&f({content:h.viewport.scrollHeight,viewport:h.viewport.offsetHeight,scrollbar:{size:k.current.clientHeight,paddingStart:at(i.paddingTop),paddingEnd:at(i.paddingBottom)}})}})}),[ak,al]=X(ac),am=c.forwardRef((a,d)=>{let{__scopeScrollArea:e,sizes:f,hasThumb:g,onThumbChange:h,onThumbPointerUp:i,onThumbPointerDown:j,onThumbPositionChange:k,onDragScroll:l,onWheelScroll:m,onResize:n,...o}=a,p=$(ac,e),[q,r]=c.useState(null),s=(0,R.useComposedRefs)(d,a=>r(a)),t=c.useRef(null),u=c.useRef(""),v=p.viewport,w=f.content-f.viewport,x=(0,S.useCallbackRef)(m),y=(0,S.useCallbackRef)(k),z=az(n,10);function A(a){t.current&&l({x:a.clientX-t.current.left,y:a.clientY-t.current.top})}return c.useEffect(()=>{let a=a=>{let b=a.target;q?.contains(b)&&x(a,w)};return document.addEventListener("wheel",a,{passive:!1}),()=>document.removeEventListener("wheel",a,{passive:!1})},[v,q,w,x]),c.useEffect(y,[f,y]),aA(q,z),aA(p.content,z),(0,b.jsx)(ak,{scope:e,scrollbar:q,hasThumb:g,onThumbChange:(0,S.useCallbackRef)(h),onThumbPointerUp:(0,S.useCallbackRef)(i),onThumbPositionChange:y,onThumbPointerDown:(0,S.useCallbackRef)(j),children:(0,b.jsx)(O.Primitive.div,{...o,ref:s,style:{position:"absolute",...o.style},onPointerDown:(0,V.composeEventHandlers)(a.onPointerDown,a=>{0===a.button&&(a.target.setPointerCapture(a.pointerId),t.current=q.getBoundingClientRect(),u.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",p.viewport&&(p.viewport.style.scrollBehavior="auto"),A(a))}),onPointerMove:(0,V.composeEventHandlers)(a.onPointerMove,A),onPointerUp:(0,V.composeEventHandlers)(a.onPointerUp,a=>{let b=a.target;b.hasPointerCapture(a.pointerId)&&b.releasePointerCapture(a.pointerId),document.body.style.webkitUserSelect=u.current,p.viewport&&(p.viewport.style.scrollBehavior=""),t.current=null})})})}),an="ScrollAreaThumb",ao=c.forwardRef((a,c)=>{let{forceMount:d,...e}=a,f=al(an,a.__scopeScrollArea);return(0,b.jsx)(P.Presence,{present:d||f.hasThumb,children:(0,b.jsx)(ap,{ref:c,...e})})}),ap=c.forwardRef((a,d)=>{let{__scopeScrollArea:e,style:f,...g}=a,h=$(an,e),i=al(an,e),{onThumbPositionChange:j}=i,k=(0,R.useComposedRefs)(d,a=>i.onThumbChange(a)),l=c.useRef(void 0),m=az(()=>{l.current&&(l.current(),l.current=void 0)},100);return c.useEffect(()=>{let a=h.viewport;if(a){let b=()=>{m(),l.current||(l.current=ay(a,j),j())};return j(),a.addEventListener("scroll",b),()=>a.removeEventListener("scroll",b)}},[h.viewport,m,j]),(0,b.jsx)(O.Primitive.div,{"data-state":i.hasThumb?"visible":"hidden",...g,ref:k,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...f},onPointerDownCapture:(0,V.composeEventHandlers)(a.onPointerDownCapture,a=>{let b=a.target.getBoundingClientRect(),c=a.clientX-b.left,d=a.clientY-b.top;i.onThumbPointerDown({x:c,y:d})}),onPointerUp:(0,V.composeEventHandlers)(a.onPointerUp,i.onThumbPointerUp)})});ao.displayName=an;var aq="ScrollAreaCorner",ar=c.forwardRef((a,c)=>{let d=$(aq,a.__scopeScrollArea),e=!!(d.scrollbarX&&d.scrollbarY);return"scroll"!==d.type&&e?(0,b.jsx)(as,{...a,ref:c}):null});ar.displayName=aq;var as=c.forwardRef((a,d)=>{let{__scopeScrollArea:e,...f}=a,g=$(aq,e),[h,i]=c.useState(0),[j,k]=c.useState(0),l=!!(h&&j);return aA(g.scrollbarX,()=>{let a=g.scrollbarX?.offsetHeight||0;g.onCornerHeightChange(a),k(a)}),aA(g.scrollbarY,()=>{let a=g.scrollbarY?.offsetWidth||0;g.onCornerWidthChange(a),i(a)}),l?(0,b.jsx)(O.Primitive.div,{...f,ref:d,style:{width:h,height:j,position:"absolute",right:"ltr"===g.dir?0:void 0,left:"rtl"===g.dir?0:void 0,bottom:0,...a.style}}):null});function at(a){return a?parseInt(a,10):0}function au(a,b){let c=a/b;return isNaN(c)?0:c}function av(a){let b=au(a.viewport,a.content),c=a.scrollbar.paddingStart+a.scrollbar.paddingEnd;return Math.max((a.scrollbar.size-c)*b,18)}function aw(a,b,c="ltr"){let d=av(b),e=b.scrollbar.paddingStart+b.scrollbar.paddingEnd,f=b.scrollbar.size-e,g=b.content-b.viewport,h=function(a,[b,c]){return Math.min(c,Math.max(b,a))}(a,"ltr"===c?[0,g]:[-1*g,0]);return ax([0,g],[0,f-d])(h)}function ax(a,b){return c=>{if(a[0]===a[1]||b[0]===b[1])return b[0];let d=(b[1]-b[0])/(a[1]-a[0]);return b[0]+d*(c-a[0])}}var ay=(a,b=()=>{})=>{let c={left:a.scrollLeft,top:a.scrollTop},d=0;return!function e(){let f={left:a.scrollLeft,top:a.scrollTop},g=c.left!==f.left,h=c.top!==f.top;(g||h)&&b(),c=f,d=window.requestAnimationFrame(e)}(),()=>window.cancelAnimationFrame(d)};function az(a,b){let d=(0,S.useCallbackRef)(a),e=c.useRef(0);return c.useEffect(()=>()=>window.clearTimeout(e.current),[]),c.useCallback(()=>{window.clearTimeout(e.current),e.current=window.setTimeout(d,b)},[d,b])}function aA(a,b){let c=(0,S.useCallbackRef)(b);(0,U.useLayoutEffect)(()=>{let b=0;if(a){let d=new ResizeObserver(()=>{cancelAnimationFrame(b),b=window.requestAnimationFrame(c)});return d.observe(a),()=>{window.cancelAnimationFrame(b),d.unobserve(a)}}},[a,c])}a.s(["Corner",()=>ar,"Root",()=>_,"ScrollArea",()=>_,"ScrollAreaCorner",()=>ar,"ScrollAreaScrollbar",()=>ad,"ScrollAreaThumb",()=>ao,"ScrollAreaViewport",()=>ab,"Scrollbar",()=>ad,"Thumb",()=>ao,"Viewport",()=>ab,"createScrollAreaScope",()=>Y],73942);var aB=a.i(73942),aB=aB;function aC({className:a,children:c,...d}){return(0,b.jsxs)(aB.Root,{"data-slot":"scroll-area",className:(0,i.cn)("relative",a),...d,children:[(0,b.jsx)(aB.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:c}),(0,b.jsx)(aD,{}),(0,b.jsx)(aB.Corner,{})]})}function aD({className:a,orientation:c="vertical",...d}){return(0,b.jsx)(aB.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:c,className:(0,i.cn)("flex touch-none p-px transition-colors select-none","vertical"===c&&"h-full w-2.5 border-l border-l-transparent","horizontal"===c&&"h-2.5 flex-col border-t border-t-transparent",a),...d,children:(0,b.jsx)(aB.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}var aE=a.i(56109),aF=a.i(19884);function aG({icon:a,label:c,href:d,active:e=!1}){let f=(0,aF.useSoundAction)("navigate");return(0,b.jsx)(H,{"data-testid":"sidebar-nav-item",children:(0,b.jsx)(J,{asChild:!0,isActive:e,tooltip:c,children:(0,b.jsxs)(aE.default,{href:d,onClick:()=>f.play(),children:[(0,b.jsx)(a,{}),(0,b.jsx)("span",{children:c})]})})})}function aH({className:a}){let{toggleSidebar:c,open:d}=v(),e=(0,aF.useSoundAction)("expand"),f=(0,aF.useSoundAction)("collapse");return(0,b.jsx)("div",{className:(0,i.cn)("flex",a),children:(0,b.jsx)(j.Button,{"data-testid":"sidebar-collapse-toggle",variant:"ghost",size:"icon",className:"size-7 cursor-pointer group-data-[collapsible=icon]:size-8!",onClick:()=>{d?f.play():e.play(),c()},"aria-label":d?"Collapse sidebar":"Expand sidebar",children:(0,b.jsx)(g,{className:"size-4"})})})}function aI({className:a,size:c=24}){return(0,b.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 194 200",width:c,height:c,className:(0,i.cn)("shrink-0",a),"aria-hidden":"true",children:(0,b.jsx)("g",{transform:"matrix(1, 0, 0, 1, -111, -208)",children:(0,b.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 aJ({startedAt:a}){let[d,e]=(0,c.useState)(()=>Date.now()-a);return(0,c.useEffect)(()=>{let b=setInterval(()=>{(0,c.startTransition)(()=>e(Date.now()-a))},1e3);return()=>clearInterval(b)},[a]),(0,b.jsx)("span",{"data-testid":"elapsed-time",className:"tabular-nums",children:function(a){let b=Math.floor(a/1e3);if(b>=3600){let a=Math.floor(b/3600);return`${a}h`}let c=Math.floor(b/60);return`${String(c).padStart(2,"0")}:${String(b%60).padStart(2,"0")}`}(d)})}var aK=a.i(82697),aL=a.i(88064),aM=a.i(67273);let aN={"action-needed":{icon:aK.CircleAlert,iconClass:"text-amber-500",bgClass:"bg-amber-500/10",label:"Action Needed"},"in-progress":{icon:aL.Loader2,iconClass:"text-blue-500 animate-spin",bgClass:"bg-blue-500/10",label:"In Progress"},done:{icon:aM.CircleCheck,iconClass:"text-emerald-500",bgClass:"bg-emerald-500/10",label:"Done"}},aO=["action-needed","in-progress","done"];function aP({name:a,status:c,startedAt:d,duration:e,onClick:f}){let{icon:g,iconClass:h}=aN[c];return(0,b.jsx)(H,{"data-testid":"feature-list-item",children:(0,b.jsxs)(J,{size:"sm",onClick:f,tooltip:a,className:"cursor-pointer",children:[(0,b.jsx)(g,{className:h}),(0,b.jsx)("span",{className:"flex-1 truncate font-medium",children:a}),"in-progress"===c&&null!=d?(0,b.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:(0,b.jsx)(aJ,{startedAt:d})}):null,"done"===c&&e?(0,b.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:e}):null]})})}function aQ({label:a,count:c,children:d}){return(0,b.jsxs)(D,{"data-testid":"feature-status-group",className:"px-2 py-1",children:[(0,b.jsxs)(E,{className:"text-muted-foreground h-6 px-2 text-[0.65rem] font-semibold tracking-wider uppercase",children:[a,(0,b.jsx)("span",{"aria-label":`${c} 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:c})]}),(0,b.jsx)(F,{children:(0,b.jsx)(G,{className:"gap-0.5",children:d})})]})}function aR({label:a,className:c}){return(0,b.jsx)(D,{"data-testid":"sidebar-section-header",className:(0,i.cn)("px-2 py-1",c),children:(0,b.jsx)("div",{className:"text-sidebar-foreground flex h-7 w-full shrink-0 items-center px-2 text-sm font-medium",children:(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a})})})}var aS=a.i(17227);function aT({features:a,onNewFeature:e,onFeatureClick:f}){let g=(0,d.usePathname)(),{state:h}=v(),{mounted:i,visible:j}=function(a,b){let[d,e]=(0,c.useState)(!a),[f,g]=(0,c.useState)(!a);return(0,c.useEffect)(()=>{if(!a){e(!0);let a=requestAnimationFrame(()=>g(!0));return()=>cancelAnimationFrame(a)}g(!1);let b=window.setTimeout(()=>e(!1),200);return()=>window.clearTimeout(b)},[a,200]),{mounted:d,visible:f}}("collapsed"===h,0),k=aO.map(b=>{let{label:c}=aN[b],d=a.filter(a=>a.status===b);return{key:b,label:c,items:d}});return(0,b.jsxs)(x,{"data-testid":"app-sidebar","data-no-drawer-close":!0,collapsible:"icon",children:[(0,b.jsx)(A,{children:(0,b.jsxs)(G,{children:[(0,b.jsx)(H,{children:(0,b.jsxs)("div",{className:"flex h-8 items-center group-data-[collapsible=icon]:justify-center",children:[i?(0,b.jsxs)("div",{className:["flex min-w-0 flex-1 items-center gap-2 overflow-hidden px-2 transition-opacity duration-200 ease-out",j?"opacity-100":"opacity-0"].join(" "),"aria-hidden":!j,children:[(0,b.jsx)(aI,{className:"shrink-0",size:20}),(0,b.jsx)("span",{className:"truncate text-sm font-semibold tracking-tight",children:"Shep"})]}):null,(0,b.jsx)(aH,{className:"shrink-0 transition-all duration-200"})]})}),(0,b.jsx)(aG,{icon:K,label:"Control Center",href:"/",active:"/"===g}),(0,b.jsx)(aG,{icon:L.Wrench,label:"Tools",href:"/tools",active:"/tools"===g}),aS.featureFlags.skills?(0,b.jsx)(aG,{icon:M.Puzzle,label:"Skills",href:"/skills",active:"/skills"===g}):null]})}),(0,b.jsx)(C,{children:i?(0,b.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",j?"opacity-100":"opacity-0"].join(" "),children:[(0,b.jsx)(aR,{label:"Features"}),(0,b.jsx)(aC,{children:k.map(({key:a,label:c,items:d})=>d.length>0?(0,b.jsx)(aQ,{label:c,count:d.length,children:d.map(a=>(0,b.jsx)(aP,{name:a.name,status:a.status,startedAt:a.startedAt,duration:a.duration,onClick:f?()=>f(a.featureId):void 0},a.featureId))},a):null)})]}):null}),(0,b.jsx)(B,{children:(0,b.jsx)(G,{children:(0,b.jsx)(H,{children:(0,b.jsxs)(J,{onClick:e,tooltip:"New feature",children:[(0,b.jsx)(N.Plus,{}),(0,b.jsx)("span",{children:"New feature"})]})})})}),(0,b.jsx)(y,{})]})}let aU=(0,f.default)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var aV=a.i(1377);function aW({onSelect:a}){let[d,e]=(0,c.useState)(!1);async function f(){if(!d){e(!0);try{let b=await (0,aV.pickFolder)();b&&a?.(b)}finally{e(!1)}}}return(0,b.jsx)(t.TooltipProvider,{children:(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{asChild:!0,children:(0,b.jsx)(j.Button,{variant:"ghost",size:"icon","aria-label":"Add Repository","data-testid":"add-repository-button",onClick:f,disabled:d,children:d?(0,b.jsx)(aL.Loader2,{className:"h-5 w-5 animate-spin"}):(0,b.jsx)(aU,{className:"h-5 w-5"})})}),(0,b.jsx)(t.TooltipContent,{children:"Add Repository"})]})})}let aX=(0,f.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"}]]),aY=(0,f.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"}]]),aZ="shep-theme";function a$(){let{theme:a,resolvedTheme:d,setTheme:e}=function(){let[a,b]=(0,c.useState)("system"),[d,e]=(0,c.useState)("light"),f=(0,c.useCallback)(()=>"light",[]),g=(0,c.useCallback)(a=>"system"===a?f():a,[f]),h=(0,c.useCallback)(a=>{if("u"<typeof document)return;let b=document.documentElement;b.classList.remove("light","dark"),b.classList.add(a),e(a)},[]),i=(0,c.useCallback)(a=>{b(a),"u">typeof localStorage&&localStorage.setItem(aZ,a),h(g(a))},[g,h]);return(0,c.useEffect)(()=>{let a=localStorage.getItem(aZ)??"system";b(a),h(g(a))},[g,h]),(0,c.useEffect)(()=>{},[a,g,h]),{theme:a,resolvedTheme:d,setTheme:i}}(),f=(0,aF.useSoundAction)("toggle-on"),g=(0,aF.useSoundAction)("toggle-off");return(0,b.jsxs)(j.Button,{variant:"ghost",size:"icon",onClick:b=>{let c="system"===a?"dark"===d?"light":"dark":"dark"===a?"light":"dark";("dark"!==("system"===a?d:a)?f.play():g.play(),document.startViewTransition)?(document.documentElement.style.setProperty("--x",`${b.clientX}px`),document.documentElement.style.setProperty("--y",`${b.clientY}px`),document.startViewTransition(()=>{e(c)})):e(c)},"aria-label":`Switch to ${"dark"===d?"light":"dark"} mode`,children:[(0,b.jsx)(aY,{className:"h-5 w-5 scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"}),(0,b.jsx)(aX,{className:"absolute h-5 w-5 scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0"}),(0,b.jsx)("span",{className:"sr-only",children:"Toggle theme"})]})}let a_=(0,f.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"}]]),a0=(0,f.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 a1=a.i(2103);function a2(){let{enabled:a,toggle:c}=(0,a1.useSoundEnabled)();return(0,b.jsxs)(j.Button,{variant:"ghost",size:"icon",onClick:c,"aria-label":a?"Mute sounds":"Unmute sounds",children:[a?(0,b.jsx)(a_,{className:"h-5 w-5"}):(0,b.jsx)(a0,{className:"h-5 w-5"}),(0,b.jsx)("span",{className:"sr-only",children:"Toggle sound"})]})}var a3=a.i(84871),a4=a.i(96213),a5=a.i(1356),a6=a.i(52313),a7=a.i(46847);let a8={[a7.NotificationSeverity.Success]:"success",[a7.NotificationSeverity.Error]:"error",[a7.NotificationSeverity.Warning]:"warning",[a7.NotificationSeverity.Info]:"info"},a9={[a7.NotificationSeverity.Success]:"notification-success",[a7.NotificationSeverity.Error]:"notification-error",[a7.NotificationSeverity.Warning]:"notification-warning",[a7.NotificationSeverity.Info]:"notification-info"};function ba({children:a}){let e=(0,d.useRouter)(),{guardedNavigate:f}=(0,a4.useDrawerCloseGuard)();!function(){let a=(0,d.useRouter)(),{events:b}=(0,a3.useAgentEventsContext)(),e=(0,aF.useSoundAction)("notification-success"),f=(0,aF.useSoundAction)("notification-error"),g=(0,aF.useSoundAction)("notification-warning"),h=(0,aF.useSoundAction)("notification-info"),i=(0,c.useMemo)(()=>({"notification-success":e,"notification-error":f,"notification-warning":g,"notification-info":h}),[e,f,g,h]),j=(0,c.useRef)(0);(0,c.useEffect)(()=>{if(b.length<=j.current)return;let c=b.slice(j.current);for(let d of(j.current=b.length,c)){if(d.severity!==a7.NotificationSeverity.Error&&d.severity!==a7.NotificationSeverity.Warning&&d.severity!==a7.NotificationSeverity.Success)continue;!function(a,b){let c=a8[a.severity]??"info",d=a.eventType===a7.NotificationEventType.WaitingApproval;a6.toast[c](a.featureName,{description:a.message,...d&&b&&{action:{label:"Review",onClick:()=>{b(`/feature/${a.featureId}`)}}}})}(d,b=>a.push(b));let b=a9[d.severity];i[b]?.play()}},[b,i,a])}();let{features:g}=(0,a5.useSidebarFeaturesContext)(),h=(0,c.useCallback)(()=>{f(()=>e.push("/create"))},[e,f]),i=(0,c.useCallback)(a=>{f(()=>e.push(`/feature/${a}`))},[e,f]),j=(0,c.useCallback)(a=>{window.dispatchEvent(new CustomEvent("shep:add-repository",{detail:{path:a}}))},[]);return(0,b.jsxs)(w,{children:[(0,b.jsx)(aT,{features:g,onNewFeature:h,onFeatureClick:i}),(0,b.jsx)(z,{children:(0,b.jsxs)("div",{className:"relative h-full",children:[(0,b.jsxs)("div",{className:"absolute top-3 right-3 z-50 flex gap-1",children:[(0,b.jsx)(aW,{onSelect:j}),(0,b.jsx)(a2,{}),(0,b.jsx)(a$,{})]}),(0,b.jsx)("main",{className:"h-full",children:a})]})})]})}function bb({children:a}){return(0,b.jsx)(a3.AgentEventsProvider,{children:(0,b.jsx)(a4.DrawerCloseGuardProvider,{children:(0,b.jsx)(a5.SidebarFeaturesProvider,{children:(0,b.jsx)(ba,{children:a})})})})}a.s(["AppShell",()=>bb],66560)},58313,a=>{"use strict";var b=a.i(10973),c=a.i(52313);let d=({...a})=>(0,b.jsx)(c.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"}},...a});a.s(["Toaster",()=>d])}];
1
+ module.exports=[3319,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(69845),e=a.i(42261),f=a.i(25700);let g=(0,f.default)("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);var h=a.i(20098),i=a.i(85536),j=a.i(18948);a.i(90920),a.i(13126);var k=a.i(10568),l=a.i(71335);function m({...a}){return(0,b.jsx)(l.Dialog.Root,{"data-slot":"sheet",...a})}function n({...a}){return(0,b.jsx)(l.Dialog.Portal,{"data-slot":"sheet-portal",...a})}function o({className:a,...c}){return(0,b.jsx)(l.Dialog.Overlay,{"data-slot":"sheet-overlay",className:(0,i.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",a),...c})}function p({className:a,children:c,side:d="right",showCloseButton:e=!0,...f}){return(0,b.jsxs)(n,{children:[(0,b.jsx)(o,{}),(0,b.jsxs)(l.Dialog.Content,{"data-slot":"sheet-content",className:(0,i.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"===d&&"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"===d&&"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"===d&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b","bottom"===d&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",a),...f,children:[c,e?(0,b.jsxs)(l.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,b.jsx)(k.XIcon,{className:"size-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close"})]}):null]})]})}function q({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sheet-header",className:(0,i.cn)("flex flex-col gap-1.5 p-4",a),...c})}function r({className:a,...c}){return(0,b.jsx)(l.Dialog.Title,{"data-slot":"sheet-title",className:(0,i.cn)("text-foreground font-semibold",a),...c})}function s({className:a,...c}){return(0,b.jsx)(l.Dialog.Description,{"data-slot":"sheet-description",className:(0,i.cn)("text-muted-foreground text-sm",a),...c})}var t=a.i(82934);let u=c.createContext(null);function v(){let a=c.useContext(u);if(!a)throw Error("useSidebar must be used within a SidebarProvider.");return a}function w({defaultOpen:a=!0,open:d,onOpenChange:e,className:f,style:g,children:h,...j}){let k=function(){let[a,b]=c.useState(void 0);return c.useEffect(()=>{let a=window.matchMedia("(max-width: 767px)"),c=()=>{b(window.innerWidth<768)};return a.addEventListener("change",c),b(window.innerWidth<768),()=>a.removeEventListener("change",c)},[]),!!a}(),[l,m]=c.useState(!1),[n,o]=c.useState(a),p=d??n,q=c.useCallback(a=>{let b="function"==typeof a?a(p):a;e?e(b):o(b),document.cookie=`sidebar_state=${b}; path=/; max-age=604800`},[e,p]),r=c.useCallback(()=>k?m(a=>!a):q(a=>!a),[k,q,m]);c.useEffect(()=>{let a=a=>{"b"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),r())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[r]);let s=p?"expanded":"collapsed",v=c.useMemo(()=>({state:s,open:p,setOpen:q,isMobile:k,openMobile:l,setOpenMobile:m,toggleSidebar:r}),[s,p,q,k,l,m,r]);return(0,b.jsx)(u.Provider,{value:v,children:(0,b.jsx)(t.TooltipProvider,{delayDuration:0,children:(0,b.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...g},className:(0,i.cn)("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",f),...j,children:h})})})}function x({side:a="left",variant:c="sidebar",collapsible:d="offcanvas",className:e,children:f,...g}){let{isMobile:h,state:j,openMobile:k,setOpenMobile:l}=v();return"none"===d?(0,b.jsx)("div",{"data-slot":"sidebar",className:(0,i.cn)("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",e),...g,children:f}):h?(0,b.jsx)(m,{open:k,onOpenChange:l,...g,children:(0,b.jsxs)(p,{"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:a,children:[(0,b.jsxs)(q,{className:"sr-only",children:[(0,b.jsx)(r,{children:"Sidebar"}),(0,b.jsx)(s,{children:"Displays the mobile sidebar."})]}),(0,b.jsx)("div",{className:"flex h-full w-full flex-col",children:f})]})}):(0,b.jsxs)("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":j,"data-collapsible":"collapsed"===j?d:"","data-variant":c,"data-side":a,"data-slot":"sidebar",children:[(0,b.jsx)("div",{"data-slot":"sidebar-gap",className:(0,i.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"===c||"inset"===c?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,b.jsx)("div",{"data-slot":"sidebar-container",className:(0,i.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===a?"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"===c||"inset"===c?"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",e),...g,children:(0,b.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:f})})]})}function y({className:a,...c}){let{toggleSidebar:d}=v();return(0,b.jsx)("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:d,title:"Toggle Sidebar",className:(0,i.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",a),...c})}function z({className:a,...c}){return(0,b.jsx)("main",{"data-slot":"sidebar-inset",className:(0,i.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",a),...c})}function A({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,i.cn)("flex flex-col gap-2 p-2",a),...c})}function B({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,i.cn)("flex flex-col gap-2 p-2",a),...c})}function C({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,i.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",a),...c})}function D({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,i.cn)("relative flex w-full min-w-0 flex-col p-2",a),...c})}function E({className:a,asChild:c=!1,...d}){let e=c?h.Slot.Root:"div";return(0,b.jsx)(e,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:(0,i.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",a),...d})}function F({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,i.cn)("w-full text-sm",a),...c})}function G({className:a,...c}){return(0,b.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,i.cn)("flex w-full min-w-0 flex-col gap-1",a),...c})}function H({className:a,...c}){return(0,b.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,i.cn)("group/menu-item relative",a),...c})}let I=(0,e.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 J({asChild:a=!1,isActive:c=!1,variant:d="default",size:e="default",tooltip:f,className:g,...j}){let k=a?h.Slot.Root:"button",{isMobile:l,state:m}=v(),n=(0,b.jsx)(k,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":e,"data-active":c,className:(0,i.cn)(I({variant:d,size:e}),g),...j});return f?("string"==typeof f&&(f={children:f}),(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{asChild:!0,children:n}),(0,b.jsx)(t.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==m||l,...f})]})):n}let K=(0,f.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 L=a.i(17300),M=a.i(67424),N=a.i(67837),O=a.i(32703),P=a.i(66873),Q=a.i(14272),R=a.i(7420),S=a.i(6175),T=a.i(79406),U=a.i(48939),V=a.i(61476),W=a.i(48972),X=a.i(59653),Y="ScrollArea",[Z,$]=(0,R.createContextScope)(Y),[_,aa]=Z(Y),ab=c.forwardRef((a,d)=>{let{__scopeScrollArea:e,type:f="hover",dir:g,scrollHideDelay:h=600,...i}=a,[j,k]=c.useState(null),[l,m]=c.useState(null),[n,o]=c.useState(null),[p,q]=c.useState(null),[r,s]=c.useState(null),[t,u]=c.useState(0),[v,w]=c.useState(0),[x,y]=c.useState(!1),[z,A]=c.useState(!1),B=(0,S.useComposedRefs)(d,a=>k(a)),C=(0,U.useDirection)(g);return(0,b.jsx)(_,{scope:e,type:f,dir:C,scrollHideDelay:h,scrollArea:j,viewport:l,onViewportChange:m,content:n,onContentChange:o,scrollbarX:p,onScrollbarXChange:q,scrollbarXEnabled:x,onScrollbarXEnabledChange:y,scrollbarY:r,onScrollbarYChange:s,scrollbarYEnabled:z,onScrollbarYEnabledChange:A,onCornerWidthChange:u,onCornerHeightChange:w,children:(0,b.jsx)(P.Primitive.div,{dir:C,...i,ref:B,style:{position:"relative","--radix-scroll-area-corner-width":t+"px","--radix-scroll-area-corner-height":v+"px",...a.style}})})});ab.displayName=Y;var ac="ScrollAreaViewport",ad=c.forwardRef((a,d)=>{let{__scopeScrollArea:e,children:f,nonce:g,...h}=a,i=aa(ac,e),j=c.useRef(null),k=(0,S.useComposedRefs)(d,j,i.onViewportChange);return(0,b.jsxs)(b.Fragment,{children:[(0,b.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:g}),(0,b.jsx)(P.Primitive.div,{"data-radix-scroll-area-viewport":"",...h,ref:k,style:{overflowX:i.scrollbarXEnabled?"scroll":"hidden",overflowY:i.scrollbarYEnabled?"scroll":"hidden",...a.style},children:(0,b.jsx)("div",{ref:i.onContentChange,style:{minWidth:"100%",display:"table"},children:f})})]})});ad.displayName=ac;var ae="ScrollAreaScrollbar",af=c.forwardRef((a,d)=>{let{forceMount:e,...f}=a,g=aa(ae,a.__scopeScrollArea),{onScrollbarXEnabledChange:h,onScrollbarYEnabledChange:i}=g,j="horizontal"===a.orientation;return c.useEffect(()=>(j?h(!0):i(!0),()=>{j?h(!1):i(!1)}),[j,h,i]),"hover"===g.type?(0,b.jsx)(ag,{...f,ref:d,forceMount:e}):"scroll"===g.type?(0,b.jsx)(ah,{...f,ref:d,forceMount:e}):"auto"===g.type?(0,b.jsx)(ai,{...f,ref:d,forceMount:e}):"always"===g.type?(0,b.jsx)(aj,{...f,ref:d}):null});af.displayName=ae;var ag=c.forwardRef((a,d)=>{let{forceMount:e,...f}=a,g=aa(ae,a.__scopeScrollArea),[h,i]=c.useState(!1);return c.useEffect(()=>{let a=g.scrollArea,b=0;if(a){let c=()=>{window.clearTimeout(b),i(!0)},d=()=>{b=window.setTimeout(()=>i(!1),g.scrollHideDelay)};return a.addEventListener("pointerenter",c),a.addEventListener("pointerleave",d),()=>{window.clearTimeout(b),a.removeEventListener("pointerenter",c),a.removeEventListener("pointerleave",d)}}},[g.scrollArea,g.scrollHideDelay]),(0,b.jsx)(Q.Presence,{present:e||h,children:(0,b.jsx)(ai,{"data-state":h?"visible":"hidden",...f,ref:d})})}),ah=c.forwardRef((a,d)=>{var e;let{forceMount:f,...g}=a,h=aa(ae,a.__scopeScrollArea),i="horizontal"===a.orientation,j=aB(()=>l("SCROLL_END"),100),[k,l]=(e={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},c.useReducer((a,b)=>e[a][b]??a,"hidden"));return c.useEffect(()=>{if("idle"===k){let a=window.setTimeout(()=>l("HIDE"),h.scrollHideDelay);return()=>window.clearTimeout(a)}},[k,h.scrollHideDelay,l]),c.useEffect(()=>{let a=h.viewport,b=i?"scrollLeft":"scrollTop";if(a){let c=a[b],d=()=>{let d=a[b];c!==d&&(l("SCROLL"),j()),c=d};return a.addEventListener("scroll",d),()=>a.removeEventListener("scroll",d)}},[h.viewport,i,l,j]),(0,b.jsx)(Q.Presence,{present:f||"hidden"!==k,children:(0,b.jsx)(aj,{"data-state":"hidden"===k?"hidden":"visible",...g,ref:d,onPointerEnter:(0,X.composeEventHandlers)(a.onPointerEnter,()=>l("POINTER_ENTER")),onPointerLeave:(0,X.composeEventHandlers)(a.onPointerLeave,()=>l("POINTER_LEAVE"))})})}),ai=c.forwardRef((a,d)=>{let e=aa(ae,a.__scopeScrollArea),{forceMount:f,...g}=a,[h,i]=c.useState(!1),j="horizontal"===a.orientation,k=aB(()=>{if(e.viewport){let a=e.viewport.offsetWidth<e.viewport.scrollWidth,b=e.viewport.offsetHeight<e.viewport.scrollHeight;i(j?a:b)}},10);return aC(e.viewport,k),aC(e.content,k),(0,b.jsx)(Q.Presence,{present:f||h,children:(0,b.jsx)(aj,{"data-state":h?"visible":"hidden",...g,ref:d})})}),aj=c.forwardRef((a,d)=>{let{orientation:e="vertical",...f}=a,g=aa(ae,a.__scopeScrollArea),h=c.useRef(null),i=c.useRef(0),[j,k]=c.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=aw(j.viewport,j.content),m={...f,sizes:j,onSizesChange:k,hasThumb:!!(l>0&&l<1),onThumbChange:a=>h.current=a,onThumbPointerUp:()=>i.current=0,onThumbPointerDown:a=>i.current=a};function n(a,b){return function(a,b,c,d="ltr"){let e=ax(c),f=b||e/2,g=c.scrollbar.paddingStart+f,h=c.scrollbar.size-c.scrollbar.paddingEnd-(e-f),i=c.content-c.viewport;return az([g,h],"ltr"===d?[0,i]:[-1*i,0])(a)}(a,i.current,j,b)}return"horizontal"===e?(0,b.jsx)(ak,{...m,ref:d,onThumbPositionChange:()=>{if(g.viewport&&h.current){let a=ay(g.viewport.scrollLeft,j,g.dir);h.current.style.transform=`translate3d(${a}px, 0, 0)`}},onWheelScroll:a=>{g.viewport&&(g.viewport.scrollLeft=a)},onDragScroll:a=>{g.viewport&&(g.viewport.scrollLeft=n(a,g.dir))}}):"vertical"===e?(0,b.jsx)(al,{...m,ref:d,onThumbPositionChange:()=>{if(g.viewport&&h.current){let a=ay(g.viewport.scrollTop,j);h.current.style.transform=`translate3d(0, ${a}px, 0)`}},onWheelScroll:a=>{g.viewport&&(g.viewport.scrollTop=a)},onDragScroll:a=>{g.viewport&&(g.viewport.scrollTop=n(a))}}):null}),ak=c.forwardRef((a,d)=>{let{sizes:e,onSizesChange:f,...g}=a,h=aa(ae,a.__scopeScrollArea),[i,j]=c.useState(),k=c.useRef(null),l=(0,S.useComposedRefs)(d,k,h.onScrollbarXChange);return c.useEffect(()=>{k.current&&j(getComputedStyle(k.current))},[k]),(0,b.jsx)(ao,{"data-orientation":"horizontal",...g,ref:l,sizes:e,style:{bottom:0,left:"rtl"===h.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===h.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":ax(e)+"px",...a.style},onThumbPointerDown:b=>a.onThumbPointerDown(b.x),onDragScroll:b=>a.onDragScroll(b.x),onWheelScroll:(b,c)=>{if(h.viewport){var d,e;let f=h.viewport.scrollLeft+b.deltaX;a.onWheelScroll(f),d=f,e=c,d>0&&d<e&&b.preventDefault()}},onResize:()=>{k.current&&h.viewport&&i&&f({content:h.viewport.scrollWidth,viewport:h.viewport.offsetWidth,scrollbar:{size:k.current.clientWidth,paddingStart:av(i.paddingLeft),paddingEnd:av(i.paddingRight)}})}})}),al=c.forwardRef((a,d)=>{let{sizes:e,onSizesChange:f,...g}=a,h=aa(ae,a.__scopeScrollArea),[i,j]=c.useState(),k=c.useRef(null),l=(0,S.useComposedRefs)(d,k,h.onScrollbarYChange);return c.useEffect(()=>{k.current&&j(getComputedStyle(k.current))},[k]),(0,b.jsx)(ao,{"data-orientation":"vertical",...g,ref:l,sizes:e,style:{top:0,right:"ltr"===h.dir?0:void 0,left:"rtl"===h.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":ax(e)+"px",...a.style},onThumbPointerDown:b=>a.onThumbPointerDown(b.y),onDragScroll:b=>a.onDragScroll(b.y),onWheelScroll:(b,c)=>{if(h.viewport){var d,e;let f=h.viewport.scrollTop+b.deltaY;a.onWheelScroll(f),d=f,e=c,d>0&&d<e&&b.preventDefault()}},onResize:()=>{k.current&&h.viewport&&i&&f({content:h.viewport.scrollHeight,viewport:h.viewport.offsetHeight,scrollbar:{size:k.current.clientHeight,paddingStart:av(i.paddingTop),paddingEnd:av(i.paddingBottom)}})}})}),[am,an]=Z(ae),ao=c.forwardRef((a,d)=>{let{__scopeScrollArea:e,sizes:f,hasThumb:g,onThumbChange:h,onThumbPointerUp:i,onThumbPointerDown:j,onThumbPositionChange:k,onDragScroll:l,onWheelScroll:m,onResize:n,...o}=a,p=aa(ae,e),[q,r]=c.useState(null),s=(0,S.useComposedRefs)(d,a=>r(a)),t=c.useRef(null),u=c.useRef(""),v=p.viewport,w=f.content-f.viewport,x=(0,T.useCallbackRef)(m),y=(0,T.useCallbackRef)(k),z=aB(n,10);function A(a){t.current&&l({x:a.clientX-t.current.left,y:a.clientY-t.current.top})}return c.useEffect(()=>{let a=a=>{let b=a.target;q?.contains(b)&&x(a,w)};return document.addEventListener("wheel",a,{passive:!1}),()=>document.removeEventListener("wheel",a,{passive:!1})},[v,q,w,x]),c.useEffect(y,[f,y]),aC(q,z),aC(p.content,z),(0,b.jsx)(am,{scope:e,scrollbar:q,hasThumb:g,onThumbChange:(0,T.useCallbackRef)(h),onThumbPointerUp:(0,T.useCallbackRef)(i),onThumbPositionChange:y,onThumbPointerDown:(0,T.useCallbackRef)(j),children:(0,b.jsx)(P.Primitive.div,{...o,ref:s,style:{position:"absolute",...o.style},onPointerDown:(0,X.composeEventHandlers)(a.onPointerDown,a=>{0===a.button&&(a.target.setPointerCapture(a.pointerId),t.current=q.getBoundingClientRect(),u.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",p.viewport&&(p.viewport.style.scrollBehavior="auto"),A(a))}),onPointerMove:(0,X.composeEventHandlers)(a.onPointerMove,A),onPointerUp:(0,X.composeEventHandlers)(a.onPointerUp,a=>{let b=a.target;b.hasPointerCapture(a.pointerId)&&b.releasePointerCapture(a.pointerId),document.body.style.webkitUserSelect=u.current,p.viewport&&(p.viewport.style.scrollBehavior=""),t.current=null})})})}),ap="ScrollAreaThumb",aq=c.forwardRef((a,c)=>{let{forceMount:d,...e}=a,f=an(ap,a.__scopeScrollArea);return(0,b.jsx)(Q.Presence,{present:d||f.hasThumb,children:(0,b.jsx)(ar,{ref:c,...e})})}),ar=c.forwardRef((a,d)=>{let{__scopeScrollArea:e,style:f,...g}=a,h=aa(ap,e),i=an(ap,e),{onThumbPositionChange:j}=i,k=(0,S.useComposedRefs)(d,a=>i.onThumbChange(a)),l=c.useRef(void 0),m=aB(()=>{l.current&&(l.current(),l.current=void 0)},100);return c.useEffect(()=>{let a=h.viewport;if(a){let b=()=>{m(),l.current||(l.current=aA(a,j),j())};return j(),a.addEventListener("scroll",b),()=>a.removeEventListener("scroll",b)}},[h.viewport,m,j]),(0,b.jsx)(P.Primitive.div,{"data-state":i.hasThumb?"visible":"hidden",...g,ref:k,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...f},onPointerDownCapture:(0,X.composeEventHandlers)(a.onPointerDownCapture,a=>{let b=a.target.getBoundingClientRect(),c=a.clientX-b.left,d=a.clientY-b.top;i.onThumbPointerDown({x:c,y:d})}),onPointerUp:(0,X.composeEventHandlers)(a.onPointerUp,i.onThumbPointerUp)})});aq.displayName=ap;var as="ScrollAreaCorner",at=c.forwardRef((a,c)=>{let d=aa(as,a.__scopeScrollArea),e=!!(d.scrollbarX&&d.scrollbarY);return"scroll"!==d.type&&e?(0,b.jsx)(au,{...a,ref:c}):null});at.displayName=as;var au=c.forwardRef((a,d)=>{let{__scopeScrollArea:e,...f}=a,g=aa(as,e),[h,i]=c.useState(0),[j,k]=c.useState(0),l=!!(h&&j);return aC(g.scrollbarX,()=>{let a=g.scrollbarX?.offsetHeight||0;g.onCornerHeightChange(a),k(a)}),aC(g.scrollbarY,()=>{let a=g.scrollbarY?.offsetWidth||0;g.onCornerWidthChange(a),i(a)}),l?(0,b.jsx)(P.Primitive.div,{...f,ref:d,style:{width:h,height:j,position:"absolute",right:"ltr"===g.dir?0:void 0,left:"rtl"===g.dir?0:void 0,bottom:0,...a.style}}):null});function av(a){return a?parseInt(a,10):0}function aw(a,b){let c=a/b;return isNaN(c)?0:c}function ax(a){let b=aw(a.viewport,a.content),c=a.scrollbar.paddingStart+a.scrollbar.paddingEnd;return Math.max((a.scrollbar.size-c)*b,18)}function ay(a,b,c="ltr"){let d=ax(b),e=b.scrollbar.paddingStart+b.scrollbar.paddingEnd,f=b.scrollbar.size-e,g=b.content-b.viewport,h=(0,W.clamp)(a,"ltr"===c?[0,g]:[-1*g,0]);return az([0,g],[0,f-d])(h)}function az(a,b){return c=>{if(a[0]===a[1]||b[0]===b[1])return b[0];let d=(b[1]-b[0])/(a[1]-a[0]);return b[0]+d*(c-a[0])}}var aA=(a,b=()=>{})=>{let c={left:a.scrollLeft,top:a.scrollTop},d=0;return!function e(){let f={left:a.scrollLeft,top:a.scrollTop},g=c.left!==f.left,h=c.top!==f.top;(g||h)&&b(),c=f,d=window.requestAnimationFrame(e)}(),()=>window.cancelAnimationFrame(d)};function aB(a,b){let d=(0,T.useCallbackRef)(a),e=c.useRef(0);return c.useEffect(()=>()=>window.clearTimeout(e.current),[]),c.useCallback(()=>{window.clearTimeout(e.current),e.current=window.setTimeout(d,b)},[d,b])}function aC(a,b){let c=(0,T.useCallbackRef)(b);(0,V.useLayoutEffect)(()=>{let b=0;if(a){let d=new ResizeObserver(()=>{cancelAnimationFrame(b),b=window.requestAnimationFrame(c)});return d.observe(a),()=>{window.cancelAnimationFrame(b),d.unobserve(a)}}},[a,c])}a.s(["Corner",()=>at,"Root",()=>ab,"ScrollArea",()=>ab,"ScrollAreaCorner",()=>at,"ScrollAreaScrollbar",()=>af,"ScrollAreaThumb",()=>aq,"ScrollAreaViewport",()=>ad,"Scrollbar",()=>af,"Thumb",()=>aq,"Viewport",()=>ad,"createScrollAreaScope",()=>$],73942);var aD=a.i(73942),aD=aD;function aE({className:a,children:c,...d}){return(0,b.jsxs)(aD.Root,{"data-slot":"scroll-area",className:(0,i.cn)("relative",a),...d,children:[(0,b.jsx)(aD.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:c}),(0,b.jsx)(aF,{}),(0,b.jsx)(aD.Corner,{})]})}function aF({className:a,orientation:c="vertical",...d}){return(0,b.jsx)(aD.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:c,className:(0,i.cn)("flex touch-none p-px transition-colors select-none","vertical"===c&&"h-full w-2.5 border-l border-l-transparent","horizontal"===c&&"h-2.5 flex-col border-t border-t-transparent",a),...d,children:(0,b.jsx)(aD.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}var aG=a.i(56109),aH=a.i(19884);function aI({icon:a,label:c,href:d,active:e=!1}){let f=(0,aH.useSoundAction)("navigate");return(0,b.jsx)(H,{"data-testid":"sidebar-nav-item",children:(0,b.jsx)(J,{asChild:!0,isActive:e,tooltip:c,children:(0,b.jsxs)(aG.default,{href:d,onClick:()=>f.play(),children:[(0,b.jsx)(a,{}),(0,b.jsx)("span",{children:c})]})})})}function aJ({className:a}){let{toggleSidebar:c,open:d}=v(),e=(0,aH.useSoundAction)("expand"),f=(0,aH.useSoundAction)("collapse");return(0,b.jsx)("div",{className:(0,i.cn)("flex",a),children:(0,b.jsx)(j.Button,{"data-testid":"sidebar-collapse-toggle",variant:"ghost",size:"icon",className:"size-7 cursor-pointer group-data-[collapsible=icon]:size-8!",onClick:()=>{d?f.play():e.play(),c()},"aria-label":d?"Collapse sidebar":"Expand sidebar",children:(0,b.jsx)(g,{className:"size-4"})})})}function aK({className:a,size:c=24}){return(0,b.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 194 200",width:c,height:c,className:(0,i.cn)("shrink-0",a),"aria-hidden":"true",children:(0,b.jsx)("g",{transform:"matrix(1, 0, 0, 1, -111, -208)",children:(0,b.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 aL({startedAt:a}){let[d,e]=(0,c.useState)(()=>Date.now()-a);return(0,c.useEffect)(()=>{let b=setInterval(()=>{(0,c.startTransition)(()=>e(Date.now()-a))},1e3);return()=>clearInterval(b)},[a]),(0,b.jsx)("span",{"data-testid":"elapsed-time",className:"tabular-nums",children:function(a){let b=Math.floor(a/1e3);if(b>=3600){let a=Math.floor(b/3600);return`${a}h`}let c=Math.floor(b/60);return`${String(c).padStart(2,"0")}:${String(b%60).padStart(2,"0")}`}(d)})}var aM=a.i(82697),aN=a.i(88064),aO=a.i(67273);let aP={"action-needed":{icon:aM.CircleAlert,iconClass:"text-amber-500",bgClass:"bg-amber-500/10",label:"Action Needed"},"in-progress":{icon:aN.Loader2,iconClass:"text-blue-500 animate-spin",bgClass:"bg-blue-500/10",label:"In Progress"},done:{icon:aO.CircleCheck,iconClass:"text-emerald-500",bgClass:"bg-emerald-500/10",label:"Done"}},aQ=["action-needed","in-progress","done"];function aR({name:a,status:c,startedAt:d,duration:e,onClick:f}){let{icon:g,iconClass:h}=aP[c];return(0,b.jsx)(H,{"data-testid":"feature-list-item",children:(0,b.jsxs)(J,{size:"sm",onClick:f,tooltip:a,className:"cursor-pointer",children:[(0,b.jsx)(g,{className:h}),(0,b.jsx)("span",{className:"flex-1 truncate font-medium",children:a}),"in-progress"===c&&null!=d?(0,b.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:(0,b.jsx)(aL,{startedAt:d})}):null,"done"===c&&e?(0,b.jsx)("span",{"data-testid":"feature-list-item-meta",className:"text-muted-foreground ml-auto text-xs tabular-nums",children:e}):null]})})}function aS({label:a,count:c,children:d}){return(0,b.jsxs)(D,{"data-testid":"feature-status-group",className:"px-2 py-1",children:[(0,b.jsxs)(E,{className:"text-muted-foreground h-6 px-2 text-[0.65rem] font-semibold tracking-wider uppercase",children:[a,(0,b.jsx)("span",{"aria-label":`${c} 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:c})]}),(0,b.jsx)(F,{children:(0,b.jsx)(G,{className:"gap-0.5",children:d})})]})}function aT({label:a,className:c}){return(0,b.jsx)(D,{"data-testid":"sidebar-section-header",className:(0,i.cn)("px-2 py-1",c),children:(0,b.jsx)("div",{className:"text-sidebar-foreground flex h-7 w-full shrink-0 items-center px-2 text-sm font-medium",children:(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a})})})}var aU=a.i(17227);function aV({features:a,onNewFeature:e,onFeatureClick:f}){let g=(0,d.usePathname)(),{state:h}=v(),{mounted:i,visible:j}=function(a,b){let[d,e]=(0,c.useState)(!a),[f,g]=(0,c.useState)(!a);return(0,c.useEffect)(()=>{if(!a){e(!0);let a=requestAnimationFrame(()=>g(!0));return()=>cancelAnimationFrame(a)}g(!1);let b=window.setTimeout(()=>e(!1),200);return()=>window.clearTimeout(b)},[a,200]),{mounted:d,visible:f}}("collapsed"===h,0),k=aQ.map(b=>{let{label:c}=aP[b],d=a.filter(a=>a.status===b);return{key:b,label:c,items:d}});return(0,b.jsxs)(x,{"data-testid":"app-sidebar","data-no-drawer-close":!0,collapsible:"icon",children:[(0,b.jsx)(A,{children:(0,b.jsxs)(G,{children:[(0,b.jsx)(H,{children:(0,b.jsxs)("div",{className:"flex h-8 items-center group-data-[collapsible=icon]:justify-center",children:[i?(0,b.jsxs)("div",{className:["flex min-w-0 flex-1 items-center gap-2 overflow-hidden px-2 transition-opacity duration-200 ease-out",j?"opacity-100":"opacity-0"].join(" "),"aria-hidden":!j,children:[(0,b.jsx)(aK,{className:"shrink-0",size:20}),(0,b.jsx)("span",{className:"truncate text-sm font-semibold tracking-tight",children:"Shep"})]}):null,(0,b.jsx)(aJ,{className:"shrink-0 transition-all duration-200"})]})}),(0,b.jsx)(aI,{icon:K,label:"Control Center",href:"/",active:"/"===g}),(0,b.jsx)(aI,{icon:L.Wrench,label:"Tools",href:"/tools",active:"/tools"===g}),aU.featureFlags.skills?(0,b.jsx)(aI,{icon:M.Puzzle,label:"Skills",href:"/skills",active:"/skills"===g}):null,(0,b.jsx)(aI,{icon:O.Settings,label:"Settings",href:"/settings",active:"/settings"===g})]})}),(0,b.jsx)(C,{children:i?(0,b.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",j?"opacity-100":"opacity-0"].join(" "),children:[(0,b.jsx)(aT,{label:"Features"}),(0,b.jsx)(aE,{children:k.map(({key:a,label:c,items:d})=>d.length>0?(0,b.jsx)(aS,{label:c,count:d.length,children:d.map(a=>(0,b.jsx)(aR,{name:a.name,status:a.status,startedAt:a.startedAt,duration:a.duration,onClick:f?()=>f(a.featureId):void 0},a.featureId))},a):null)})]}):null}),(0,b.jsx)(B,{children:(0,b.jsx)(G,{children:(0,b.jsx)(H,{children:(0,b.jsxs)(J,{onClick:e,tooltip:"New feature",children:[(0,b.jsx)(N.Plus,{}),(0,b.jsx)("span",{children:"New feature"})]})})})}),(0,b.jsx)(y,{})]})}let aW=(0,f.default)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var aX=a.i(1377);function aY({onSelect:a}){let[d,e]=(0,c.useState)(!1);async function f(){if(!d){e(!0);try{let b=await (0,aX.pickFolder)();b&&a?.(b)}finally{e(!1)}}}return(0,b.jsx)(t.TooltipProvider,{children:(0,b.jsxs)(t.Tooltip,{children:[(0,b.jsx)(t.TooltipTrigger,{asChild:!0,children:(0,b.jsx)(j.Button,{variant:"ghost",size:"icon","aria-label":"Add Repository","data-testid":"add-repository-button",onClick:f,disabled:d,children:d?(0,b.jsx)(aN.Loader2,{className:"h-5 w-5 animate-spin"}):(0,b.jsx)(aW,{className:"h-5 w-5"})})}),(0,b.jsx)(t.TooltipContent,{children:"Add Repository"})]})})}let aZ=(0,f.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"}]]),a$=(0,f.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"}]]),a_="shep-theme";function a0(){let{theme:a,resolvedTheme:d,setTheme:e}=function(){let[a,b]=(0,c.useState)("system"),[d,e]=(0,c.useState)("light"),f=(0,c.useCallback)(()=>"light",[]),g=(0,c.useCallback)(a=>"system"===a?f():a,[f]),h=(0,c.useCallback)(a=>{if("u"<typeof document)return;let b=document.documentElement;b.classList.remove("light","dark"),b.classList.add(a),e(a)},[]),i=(0,c.useCallback)(a=>{b(a),"u">typeof localStorage&&localStorage.setItem(a_,a),h(g(a))},[g,h]);return(0,c.useEffect)(()=>{let a=localStorage.getItem(a_)??"system";b(a),h(g(a))},[g,h]),(0,c.useEffect)(()=>{},[a,g,h]),{theme:a,resolvedTheme:d,setTheme:i}}(),f=(0,aH.useSoundAction)("toggle-on"),g=(0,aH.useSoundAction)("toggle-off");return(0,b.jsxs)(j.Button,{variant:"ghost",size:"icon",onClick:b=>{let c="system"===a?"dark"===d?"light":"dark":"dark"===a?"light":"dark";("dark"!==("system"===a?d:a)?f.play():g.play(),document.startViewTransition)?(document.documentElement.style.setProperty("--x",`${b.clientX}px`),document.documentElement.style.setProperty("--y",`${b.clientY}px`),document.startViewTransition(()=>{e(c)})):e(c)},"aria-label":`Switch to ${"dark"===d?"light":"dark"} mode`,children:[(0,b.jsx)(a$,{className:"h-5 w-5 scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"}),(0,b.jsx)(aZ,{className:"absolute h-5 w-5 scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0"}),(0,b.jsx)("span",{className:"sr-only",children:"Toggle theme"})]})}let a1=(0,f.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"}]]),a2=(0,f.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 a3=a.i(2103);function a4(){let{enabled:a,toggle:c}=(0,a3.useSoundEnabled)();return(0,b.jsxs)(j.Button,{variant:"ghost",size:"icon",onClick:c,"aria-label":a?"Mute sounds":"Unmute sounds",children:[a?(0,b.jsx)(a1,{className:"h-5 w-5"}):(0,b.jsx)(a2,{className:"h-5 w-5"}),(0,b.jsx)("span",{className:"sr-only",children:"Toggle sound"})]})}var a5=a.i(84871),a6=a.i(96213),a7=a.i(1356),a8=a.i(52313),a9=a.i(46847);let ba={[a9.NotificationSeverity.Success]:"success",[a9.NotificationSeverity.Error]:"error",[a9.NotificationSeverity.Warning]:"warning",[a9.NotificationSeverity.Info]:"info"},bb={[a9.NotificationSeverity.Success]:"notification-success",[a9.NotificationSeverity.Error]:"notification-error",[a9.NotificationSeverity.Warning]:"notification-warning",[a9.NotificationSeverity.Info]:"notification-info"};function bc({children:a}){let e=(0,d.useRouter)(),{guardedNavigate:f}=(0,a6.useDrawerCloseGuard)();!function(){let a=(0,d.useRouter)(),{events:b}=(0,a5.useAgentEventsContext)(),e=(0,aH.useSoundAction)("notification-success"),f=(0,aH.useSoundAction)("notification-error"),g=(0,aH.useSoundAction)("notification-warning"),h=(0,aH.useSoundAction)("notification-info"),i=(0,c.useMemo)(()=>({"notification-success":e,"notification-error":f,"notification-warning":g,"notification-info":h}),[e,f,g,h]),j=(0,c.useRef)(0);(0,c.useEffect)(()=>{if(b.length<=j.current)return;let c=b.slice(j.current);for(let d of(j.current=b.length,c)){if(d.severity!==a9.NotificationSeverity.Error&&d.severity!==a9.NotificationSeverity.Warning&&d.severity!==a9.NotificationSeverity.Success)continue;!function(a,b){let c=ba[a.severity]??"info",d=a.eventType===a9.NotificationEventType.WaitingApproval;a8.toast[c](a.featureName,{description:a.message,...d&&b&&{action:{label:"Review",onClick:()=>{b(`/feature/${a.featureId}`)}}}})}(d,b=>a.push(b));let b=bb[d.severity];i[b]?.play()}},[b,i,a])}();let{features:g}=(0,a7.useSidebarFeaturesContext)(),h=(0,c.useCallback)(()=>{f(()=>e.push("/create"))},[e,f]),i=(0,c.useCallback)(a=>{f(()=>e.push(`/feature/${a}`))},[e,f]),j=(0,c.useCallback)(a=>{window.dispatchEvent(new CustomEvent("shep:add-repository",{detail:{path:a}}))},[]);return(0,b.jsxs)(w,{children:[(0,b.jsx)(aV,{features:g,onNewFeature:h,onFeatureClick:i}),(0,b.jsx)(z,{children:(0,b.jsxs)("div",{className:"relative h-full",children:[(0,b.jsxs)("div",{className:"absolute top-3 right-3 z-50 flex gap-1",children:[(0,b.jsx)(aY,{onSelect:j}),(0,b.jsx)(a4,{}),(0,b.jsx)(a0,{})]}),(0,b.jsx)("main",{className:"h-full",children:a})]})})]})}function bd({children:a}){return(0,b.jsx)(a5.AgentEventsProvider,{children:(0,b.jsx)(a6.DrawerCloseGuardProvider,{children:(0,b.jsx)(a7.SidebarFeaturesProvider,{children:(0,b.jsx)(bc,{children:a})})})})}a.s(["AppShell",()=>bd],3319)},58313,a=>{"use strict";var b=a.i(10973),c=a.i(52313);let d=({...a})=>(0,b.jsx)(c.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"}},...a});a.s(["Toaster",()=>d])}];
2
2
 
3
3
  //# sourceMappingURL=src_presentation_web_components_e599bb8c._.js.map