@shepai/cli 1.116.3-pr375.ea5b2a2 → 1.117.0-pr367.ca5b6ac

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 (477) hide show
  1. package/apis/json-schema/AnalyzeRepoTimeouts.yaml +10 -0
  2. package/apis/json-schema/SdlcLifecycle.yaml +1 -0
  3. package/apis/json-schema/StageTimeouts.yaml +35 -0
  4. package/apis/json-schema/WorkflowConfig.yaml +6 -0
  5. package/dist/packages/core/src/application/ports/output/services/index.d.ts +2 -0
  6. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  7. package/dist/packages/core/src/application/ports/output/services/tunnel-service.interface.d.ts +41 -0
  8. package/dist/packages/core/src/application/ports/output/services/tunnel-service.interface.d.ts.map +1 -0
  9. package/dist/packages/core/src/application/ports/output/services/tunnel-service.interface.js +14 -0
  10. package/dist/packages/core/src/application/ports/output/services/webhook-service.interface.d.ts +65 -0
  11. package/dist/packages/core/src/application/ports/output/services/webhook-service.interface.d.ts.map +1 -0
  12. package/dist/packages/core/src/application/ports/output/services/webhook-service.interface.js +10 -0
  13. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  14. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +17 -8
  15. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +2 -0
  16. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
  17. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.d.ts +1 -3
  18. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.d.ts.map +1 -1
  19. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +2 -4
  20. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.d.ts +25 -0
  21. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.d.ts.map +1 -0
  22. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.js +116 -0
  23. package/dist/packages/core/src/domain/generated/output.d.ts +47 -0
  24. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  25. package/dist/packages/core/src/domain/generated/output.js +1 -0
  26. package/dist/packages/core/src/domain/lifecycle-gates.d.ts +3 -0
  27. package/dist/packages/core/src/domain/lifecycle-gates.d.ts.map +1 -1
  28. package/dist/packages/core/src/domain/lifecycle-gates.js +3 -0
  29. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  30. package/dist/packages/core/src/infrastructure/di/container.js +19 -0
  31. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +7 -0
  32. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  33. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +44 -0
  34. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/035-add-stage-timeout-ms.d.ts +22 -0
  35. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/035-add-stage-timeout-ms.d.ts.map +1 -0
  36. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/035-add-stage-timeout-ms.js +53 -0
  37. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -1
  38. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +15 -6
  39. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
  40. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +15 -0
  41. package/dist/packages/core/src/infrastructure/services/agents/analyze-repo/analyze-repository-graph.d.ts.map +1 -1
  42. package/dist/packages/core/src/infrastructure/services/agents/analyze-repo/analyze-repository-graph.js +15 -0
  43. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts +11 -1
  44. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  45. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +42 -3
  46. package/dist/packages/core/src/infrastructure/services/tunnel/cloudflare-tunnel.service.d.ts +55 -0
  47. package/dist/packages/core/src/infrastructure/services/tunnel/cloudflare-tunnel.service.d.ts.map +1 -0
  48. package/dist/packages/core/src/infrastructure/services/tunnel/cloudflare-tunnel.service.js +203 -0
  49. package/dist/packages/core/src/infrastructure/services/webhook/github-webhook.service.d.ts +75 -0
  50. package/dist/packages/core/src/infrastructure/services/webhook/github-webhook.service.d.ts.map +1 -0
  51. package/dist/packages/core/src/infrastructure/services/webhook/github-webhook.service.js +372 -0
  52. package/dist/packages/core/src/infrastructure/services/webhook/webhook-manager.service.d.ts +82 -0
  53. package/dist/packages/core/src/infrastructure/services/webhook/webhook-manager.service.d.ts.map +1 -0
  54. package/dist/packages/core/src/infrastructure/services/webhook/webhook-manager.service.js +206 -0
  55. package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
  56. package/dist/src/presentation/cli/commands/feat/index.js +2 -0
  57. package/dist/src/presentation/cli/commands/feat/ls.command.d.ts.map +1 -1
  58. package/dist/src/presentation/cli/commands/feat/ls.command.js +3 -0
  59. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  60. package/dist/src/presentation/cli/commands/feat/new.command.js +9 -1
  61. package/dist/src/presentation/cli/commands/feat/start.command.d.ts +12 -0
  62. package/dist/src/presentation/cli/commands/feat/start.command.d.ts.map +1 -0
  63. package/dist/src/presentation/cli/commands/feat/start.command.js +43 -0
  64. package/dist/src/presentation/cli/commands/ui.command.d.ts.map +1 -1
  65. package/dist/src/presentation/cli/commands/ui.command.js +15 -0
  66. package/dist/src/presentation/web/app/actions/approve-feature.d.ts.map +1 -1
  67. package/dist/src/presentation/web/app/actions/approve-feature.js +0 -9
  68. package/dist/src/presentation/web/app/actions/create-feature.d.ts +2 -0
  69. package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
  70. package/dist/src/presentation/web/app/actions/create-feature.js +3 -1
  71. package/dist/src/presentation/web/app/actions/load-webhook-status.d.ts +3 -0
  72. package/dist/src/presentation/web/app/actions/load-webhook-status.d.ts.map +1 -0
  73. package/dist/src/presentation/web/app/actions/load-webhook-status.js +19 -0
  74. package/dist/src/presentation/web/app/actions/reject-feature.d.ts.map +1 -1
  75. package/dist/src/presentation/web/app/actions/reject-feature.js +0 -9
  76. package/dist/src/presentation/web/app/actions/start-feature.d.ts +5 -0
  77. package/dist/src/presentation/web/app/actions/start-feature.d.ts.map +1 -0
  78. package/dist/src/presentation/web/app/actions/start-feature.js +16 -0
  79. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  80. package/dist/src/presentation/web/app/api/agent-events/route.js +1 -0
  81. package/dist/src/presentation/web/app/api/webhooks/deliveries/route.d.ts +9 -0
  82. package/dist/src/presentation/web/app/api/webhooks/deliveries/route.d.ts.map +1 -0
  83. package/dist/src/presentation/web/app/api/webhooks/deliveries/route.js +27 -0
  84. package/dist/src/presentation/web/app/api/webhooks/github/route.d.ts +17 -0
  85. package/dist/src/presentation/web/app/api/webhooks/github/route.d.ts.map +1 -0
  86. package/dist/src/presentation/web/app/api/webhooks/github/route.js +70 -0
  87. package/dist/src/presentation/web/app/api/webhooks/status/route.d.ts +9 -0
  88. package/dist/src/presentation/web/app/api/webhooks/status/route.d.ts.map +1 -0
  89. package/dist/src/presentation/web/app/api/webhooks/status/route.js +26 -0
  90. package/dist/src/presentation/web/app/webhooks/page.d.ts +4 -0
  91. package/dist/src/presentation/web/app/webhooks/page.d.ts.map +1 -0
  92. package/dist/src/presentation/web/app/webhooks/page.js +9 -0
  93. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +1 -1
  94. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.stories.js +1 -1
  95. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  96. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +20 -1
  97. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +2 -0
  98. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  99. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +6 -2
  100. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  101. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +6 -0
  102. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +3 -2
  103. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  104. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +13 -1
  105. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  106. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +12 -3
  107. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts +2 -0
  108. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
  109. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +36 -2
  110. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  111. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +3 -1
  112. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +1 -0
  113. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  114. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +23 -0
  115. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  116. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +75 -2
  117. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts +1 -0
  118. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  119. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +23 -0
  120. package/dist/src/presentation/web/components/features/settings/timeout-slider.d.ts +11 -0
  121. package/dist/src/presentation/web/components/features/settings/timeout-slider.d.ts.map +1 -0
  122. package/dist/src/presentation/web/components/features/settings/timeout-slider.js +63 -0
  123. package/dist/src/presentation/web/components/features/settings/timeout-slider.stories.d.ts +10 -0
  124. package/dist/src/presentation/web/components/features/settings/timeout-slider.stories.d.ts.map +1 -0
  125. package/dist/src/presentation/web/components/features/settings/timeout-slider.stories.js +24 -0
  126. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts.map +1 -1
  127. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.js +97 -2
  128. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts.map +1 -1
  129. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +22 -0
  130. package/dist/src/presentation/web/components/features/webhooks/types.d.ts +32 -0
  131. package/dist/src/presentation/web/components/features/webhooks/types.d.ts.map +1 -0
  132. package/dist/src/presentation/web/components/features/webhooks/types.js +1 -0
  133. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.d.ts +6 -0
  134. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.d.ts.map +1 -0
  135. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.js +38 -0
  136. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.stories.d.ts +9 -0
  137. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.stories.d.ts.map +1 -0
  138. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.stories.js +69 -0
  139. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.d.ts +7 -0
  140. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.d.ts.map +1 -0
  141. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.js +11 -0
  142. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.stories.d.ts +9 -0
  143. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.stories.d.ts.map +1 -0
  144. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.stories.js +31 -0
  145. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.d.ts +6 -0
  146. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.d.ts.map +1 -0
  147. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.js +21 -0
  148. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.stories.d.ts +9 -0
  149. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.stories.d.ts.map +1 -0
  150. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.stories.js +56 -0
  151. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.d.ts +6 -0
  152. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.d.ts.map +1 -0
  153. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.js +39 -0
  154. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.stories.d.ts +8 -0
  155. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.stories.d.ts.map +1 -0
  156. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.stories.js +59 -0
  157. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  158. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  159. package/dist/src/presentation/web/components/ui/slider.d.ts +5 -0
  160. package/dist/src/presentation/web/components/ui/slider.d.ts.map +1 -0
  161. package/dist/src/presentation/web/components/ui/slider.js +10 -0
  162. package/dist/src/presentation/web/components/ui/slider.stories.d.ts +7 -0
  163. package/dist/src/presentation/web/components/ui/slider.stories.d.ts.map +1 -0
  164. package/dist/src/presentation/web/components/ui/slider.stories.js +15 -0
  165. package/dist/src/presentation/web/dev-server.js +20 -0
  166. package/dist/src/presentation/web/hooks/sidebar-features-context.d.ts.map +1 -1
  167. package/dist/src/presentation/web/hooks/sidebar-features-context.js +1 -0
  168. package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
  169. package/dist/src/presentation/web/hooks/use-graph-state.js +1 -0
  170. package/dist/src/presentation/web/lib/derive-graph.d.ts +2 -0
  171. package/dist/src/presentation/web/lib/derive-graph.d.ts.map +1 -1
  172. package/dist/src/presentation/web/lib/derive-graph.js +5 -0
  173. package/dist/tsconfig.build.tsbuildinfo +1 -1
  174. package/package.json +3 -1
  175. package/web/.next/BUILD_ID +1 -1
  176. package/web/.next/app-path-routes-manifest.json +5 -1
  177. package/web/.next/build-manifest.json +6 -6
  178. package/web/.next/fallback-build-manifest.json +2 -2
  179. package/web/.next/prerender-manifest.json +3 -3
  180. package/web/.next/required-server-files.js +2 -2
  181. package/web/.next/required-server-files.json +2 -2
  182. package/web/.next/routes-manifest.json +24 -0
  183. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +4 -4
  184. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +55 -40
  185. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  186. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  187. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  188. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +4 -4
  189. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +67 -52
  190. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -1
  191. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  192. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  193. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +4 -4
  194. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +67 -52
  195. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
  196. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  197. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  198. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +4 -4
  199. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +51 -36
  200. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  201. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  202. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  203. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +4 -4
  204. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +55 -40
  205. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  206. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  207. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  208. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +4 -4
  209. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +67 -52
  210. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -1
  211. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  212. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  213. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +4 -4
  214. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +67 -52
  215. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
  216. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  217. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  218. package/web/.next/server/app/(dashboard)/page/build-manifest.json +4 -4
  219. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +51 -36
  220. package/web/.next/server/app/(dashboard)/page.js +1 -1
  221. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  222. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  223. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +4 -4
  224. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +51 -36
  225. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  226. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  227. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  228. package/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  229. package/web/.next/server/app/_global-error.html +2 -2
  230. package/web/.next/server/app/_global-error.rsc +1 -1
  231. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  232. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  233. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  234. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  235. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  236. package/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  237. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  238. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  239. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  240. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  241. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  242. package/web/.next/server/app/api/webhooks/deliveries/route/app-paths-manifest.json +3 -0
  243. package/web/.next/server/app/api/webhooks/deliveries/route/build-manifest.json +11 -0
  244. package/web/.next/server/app/api/webhooks/deliveries/route/server-reference-manifest.json +4 -0
  245. package/web/.next/server/app/api/webhooks/deliveries/route.js +6 -0
  246. package/web/.next/server/app/api/webhooks/deliveries/route.js.map +5 -0
  247. package/web/.next/server/app/api/webhooks/deliveries/route.js.nft.json +1 -0
  248. package/web/.next/server/app/api/webhooks/deliveries/route_client-reference-manifest.js +2 -0
  249. package/web/.next/server/app/api/webhooks/github/route/app-paths-manifest.json +3 -0
  250. package/web/.next/server/app/api/webhooks/github/route/build-manifest.json +11 -0
  251. package/web/.next/server/app/api/webhooks/github/route/server-reference-manifest.json +4 -0
  252. package/web/.next/server/app/api/webhooks/github/route.js +6 -0
  253. package/web/.next/server/app/api/webhooks/github/route.js.map +5 -0
  254. package/web/.next/server/app/api/webhooks/github/route.js.nft.json +1 -0
  255. package/web/.next/server/app/api/webhooks/github/route_client-reference-manifest.js +2 -0
  256. package/web/.next/server/app/api/webhooks/status/route/app-paths-manifest.json +3 -0
  257. package/web/.next/server/app/api/webhooks/status/route/build-manifest.json +11 -0
  258. package/web/.next/server/app/api/webhooks/status/route/server-reference-manifest.json +4 -0
  259. package/web/.next/server/app/api/webhooks/status/route.js +6 -0
  260. package/web/.next/server/app/api/webhooks/status/route.js.map +5 -0
  261. package/web/.next/server/app/api/webhooks/status/route.js.nft.json +1 -0
  262. package/web/.next/server/app/api/webhooks/status/route_client-reference-manifest.js +2 -0
  263. package/web/.next/server/app/settings/page/build-manifest.json +4 -4
  264. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  265. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  266. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  267. package/web/.next/server/app/skills/page/build-manifest.json +4 -4
  268. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  269. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  270. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  271. package/web/.next/server/app/tools/page/build-manifest.json +4 -4
  272. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  273. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  274. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  275. package/web/.next/server/app/version/page/build-manifest.json +4 -4
  276. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  277. package/web/.next/server/app/version/page.js.nft.json +1 -1
  278. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  279. package/web/.next/server/app/webhooks/page/app-paths-manifest.json +3 -0
  280. package/web/.next/server/app/webhooks/page/build-manifest.json +18 -0
  281. package/web/.next/server/app/webhooks/page/next-font-manifest.json +6 -0
  282. package/web/.next/server/app/webhooks/page/react-loadable-manifest.json +1 -0
  283. package/web/.next/server/app/webhooks/page/server-reference-manifest.json +35 -0
  284. package/web/.next/server/app/webhooks/page.js +16 -0
  285. package/web/.next/server/app/webhooks/page.js.map +5 -0
  286. package/web/.next/server/app/webhooks/page.js.nft.json +1 -0
  287. package/web/.next/server/app/webhooks/page_client-reference-manifest.js +2 -0
  288. package/web/.next/server/app-paths-manifest.json +5 -1
  289. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  290. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  291. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +2 -2
  292. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  293. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_deliveries_route_actions_d9e34c8d.js +3 -0
  294. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_deliveries_route_actions_d9e34c8d.js.map +1 -0
  295. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_github_route_actions_1b0d0c38.js +3 -0
  296. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_github_route_actions_1b0d0c38.js.map +1 -0
  297. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_status_route_actions_1a0d86a1.js +3 -0
  298. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_status_route_actions_1a0d86a1.js.map +1 -0
  299. package/web/.next/server/chunks/[root-of-the-server]__15e5d45c._.js +3 -0
  300. package/web/.next/server/chunks/[root-of-the-server]__15e5d45c._.js.map +1 -0
  301. package/web/.next/server/chunks/[root-of-the-server]__23be381e._.js +3 -0
  302. package/web/.next/server/chunks/[root-of-the-server]__23be381e._.js.map +1 -0
  303. package/web/.next/server/chunks/[root-of-the-server]__7d5492a0._.js +1 -1
  304. package/web/.next/server/chunks/[root-of-the-server]__7d5492a0._.js.map +1 -1
  305. package/web/.next/server/chunks/[root-of-the-server]__9fc760c0._.js +3 -0
  306. package/web/.next/server/chunks/[root-of-the-server]__9fc760c0._.js.map +1 -0
  307. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  308. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  309. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  310. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  311. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  312. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_activity_22f9667f.js +3 -0
  313. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_activity_22f9667f.js.map +1 -0
  314. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_ed372306.js +3 -0
  315. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_ed372306.js.map +1 -0
  316. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_32e26434.js +3 -0
  317. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_32e26434.js.map +1 -0
  318. package/web/.next/server/chunks/ssr/[root-of-the-server]__07a39ff2._.js +1 -1
  319. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  320. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  321. package/web/.next/server/chunks/ssr/[root-of-the-server]__172d9576._.js +3 -0
  322. package/web/.next/server/chunks/ssr/[root-of-the-server]__172d9576._.js.map +1 -0
  323. package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js +2 -2
  324. package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js.map +1 -1
  325. package/web/.next/server/chunks/ssr/[root-of-the-server]__2a5592d5._.js +3 -0
  326. package/web/.next/server/chunks/ssr/[root-of-the-server]__2a5592d5._.js.map +1 -0
  327. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d847b7b._.js +3 -0
  328. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d847b7b._.js.map +1 -0
  329. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  330. package/web/.next/server/chunks/ssr/[root-of-the-server]__87a7ae30._.js +3 -0
  331. package/web/.next/server/chunks/ssr/[root-of-the-server]__87a7ae30._.js.map +1 -0
  332. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js +2 -2
  333. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js.map +1 -1
  334. package/web/.next/server/chunks/ssr/[root-of-the-server]__920dccd5._.js +4 -0
  335. package/web/.next/server/chunks/ssr/[root-of-the-server]__920dccd5._.js.map +1 -0
  336. package/web/.next/server/chunks/ssr/[root-of-the-server]__a42f5a88._.js +3 -0
  337. package/web/.next/server/chunks/ssr/[root-of-the-server]__a42f5a88._.js.map +1 -0
  338. package/web/.next/server/chunks/ssr/[root-of-the-server]__a93289b0._.js +3 -0
  339. package/web/.next/server/chunks/ssr/[root-of-the-server]__a93289b0._.js.map +1 -0
  340. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  341. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  342. package/web/.next/server/chunks/ssr/[root-of-the-server]__ac0304e7._.js +3 -0
  343. package/web/.next/server/chunks/ssr/[root-of-the-server]__ac0304e7._.js.map +1 -0
  344. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  345. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  346. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  347. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  348. package/web/.next/server/chunks/ssr/_250a63ae._.js +1 -1
  349. package/web/.next/server/chunks/ssr/_250a63ae._.js.map +1 -1
  350. package/web/.next/server/chunks/ssr/_26b2c311._.js +3 -0
  351. package/web/.next/server/chunks/ssr/_26b2c311._.js.map +1 -0
  352. package/web/.next/server/chunks/ssr/{_f2f36bf9._.js → _719ef347._.js} +2 -2
  353. package/web/.next/server/chunks/ssr/_719ef347._.js.map +1 -0
  354. package/web/.next/server/chunks/ssr/_809c53f6._.js +9 -0
  355. package/web/.next/server/chunks/ssr/_809c53f6._.js.map +1 -0
  356. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  357. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  358. package/web/.next/server/chunks/ssr/_98047ffd._.js +3 -0
  359. package/web/.next/server/chunks/ssr/_98047ffd._.js.map +1 -0
  360. package/web/.next/server/chunks/ssr/_9eea4c51._.js +3 -0
  361. package/web/.next/server/chunks/ssr/_9eea4c51._.js.map +1 -0
  362. package/web/.next/server/chunks/ssr/_a4899a76._.js +3 -0
  363. package/web/.next/server/chunks/ssr/_a4899a76._.js.map +1 -0
  364. package/web/.next/server/chunks/ssr/_b715515b._.js +3 -0
  365. package/web/.next/server/chunks/ssr/{_86617fb9._.js.map → _b715515b._.js.map} +1 -1
  366. package/web/.next/server/chunks/ssr/_b7eb93fc._.js +4 -0
  367. package/web/.next/server/chunks/ssr/_b7eb93fc._.js.map +1 -0
  368. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  369. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  370. package/web/.next/server/chunks/ssr/_e0a01382._.js +3 -0
  371. package/web/.next/server/chunks/ssr/_e0a01382._.js.map +1 -0
  372. package/web/.next/server/chunks/ssr/_f8b36e2c._.js +3 -0
  373. package/web/.next/server/chunks/ssr/_f8b36e2c._.js.map +1 -0
  374. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  375. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  376. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_webhooks_webhooks-page-client_tsx_b2662ea3._.js +3 -0
  377. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_webhooks_webhooks-page-client_tsx_b2662ea3._.js.map +1 -0
  378. package/web/.next/server/chunks/ssr/{_1bb131c4._.js → node_modules__pnpm_747b43ac._.js} +2 -2
  379. package/web/.next/server/chunks/ssr/node_modules__pnpm_747b43ac._.js.map +1 -0
  380. package/web/.next/server/chunks/ssr/src_presentation_web_0835b28e._.js +5 -0
  381. package/web/.next/server/chunks/ssr/src_presentation_web_0835b28e._.js.map +1 -0
  382. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_e99d78dd.js +3 -0
  383. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_e99d78dd.js.map +1 -0
  384. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  385. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  386. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  387. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  388. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  389. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js.map +1 -1
  390. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  391. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js.map +1 -1
  392. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  393. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  394. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  395. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  396. package/web/.next/server/chunks/ssr/src_presentation_web_e8034a29._.js +5 -0
  397. package/web/.next/server/chunks/ssr/src_presentation_web_e8034a29._.js.map +1 -0
  398. package/web/.next/server/middleware-build-manifest.js +4 -4
  399. package/web/.next/server/pages/500.html +2 -2
  400. package/web/.next/server/server-reference-manifest.js +1 -1
  401. package/web/.next/server/server-reference-manifest.json +323 -230
  402. package/web/.next/static/chunks/06b948216df083c1.js +1 -0
  403. package/web/.next/static/chunks/{763f6ecc4593dc10.js → 2ac228556e3d1db4.js} +1 -1
  404. package/web/.next/static/chunks/31f35710932542ef.js +1 -0
  405. package/web/.next/static/chunks/40b6bcf1a2de4a0f.js +1 -0
  406. package/web/.next/static/chunks/4714eb891fa4fd81.js +1 -0
  407. package/web/.next/static/chunks/57094e1cbd326d6c.css +1 -0
  408. package/web/.next/static/chunks/{5225e7b93df59de9.js → 5856c588eb7f21fd.js} +1 -1
  409. package/web/.next/static/chunks/5f6161ceb4263319.js +1 -0
  410. package/web/.next/static/chunks/81f470d21748eafd.js +2 -0
  411. package/web/.next/static/chunks/829305a6e02eff1f.js +1 -0
  412. package/web/.next/static/chunks/97aaeeee72be634b.js +1 -0
  413. package/web/.next/static/chunks/{672e3da3ad26005b.js → 98e3a7cf58fc912a.js} +1 -1
  414. package/web/.next/static/chunks/9a7361e2365b2d8e.js +1 -0
  415. package/web/.next/static/chunks/9af45e885bd4ccef.js +1 -0
  416. package/web/.next/static/chunks/{f32b896b3ceae18d.js → ab8b8f80cbc8366f.js} +2 -2
  417. package/web/.next/static/chunks/c3c3f2c9eb309920.js +1 -0
  418. package/web/.next/static/chunks/c7e793951b20a67f.js +1 -0
  419. package/web/.next/static/chunks/cb2824954c3975b0.js +1 -0
  420. package/web/.next/static/chunks/{053b644519f721f1.js → d3db43fcdbbd9b68.js} +1 -1
  421. package/web/.next/static/chunks/e9621b096a69e4e8.js +11 -0
  422. package/web/.next/static/chunks/fb99c57e6d28a274.js +1 -0
  423. package/web/.next/static/chunks/{turbopack-426d9bc2450816ba.js → turbopack-b1685b5f87ad1d60.js} +1 -1
  424. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_a1104008.js +0 -3
  425. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_a1104008.js.map +0 -1
  426. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_92642200.js +0 -3
  427. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_92642200.js.map +0 -1
  428. package/web/.next/server/chunks/ssr/[root-of-the-server]__039967e3._.js +0 -3
  429. package/web/.next/server/chunks/ssr/[root-of-the-server]__039967e3._.js.map +0 -1
  430. package/web/.next/server/chunks/ssr/[root-of-the-server]__2773312c._.js +0 -3
  431. package/web/.next/server/chunks/ssr/[root-of-the-server]__2773312c._.js.map +0 -1
  432. package/web/.next/server/chunks/ssr/[root-of-the-server]__6367aea0._.js +0 -3
  433. package/web/.next/server/chunks/ssr/[root-of-the-server]__6367aea0._.js.map +0 -1
  434. package/web/.next/server/chunks/ssr/[root-of-the-server]__b1e68e34._.js +0 -3
  435. package/web/.next/server/chunks/ssr/[root-of-the-server]__b1e68e34._.js.map +0 -1
  436. package/web/.next/server/chunks/ssr/[root-of-the-server]__cbd8062c._.js +0 -3
  437. package/web/.next/server/chunks/ssr/[root-of-the-server]__cbd8062c._.js.map +0 -1
  438. package/web/.next/server/chunks/ssr/[root-of-the-server]__e70c5627._.js +0 -3
  439. package/web/.next/server/chunks/ssr/[root-of-the-server]__e70c5627._.js.map +0 -1
  440. package/web/.next/server/chunks/ssr/_1bb131c4._.js.map +0 -1
  441. package/web/.next/server/chunks/ssr/_273d4632._.js +0 -3
  442. package/web/.next/server/chunks/ssr/_273d4632._.js.map +0 -1
  443. package/web/.next/server/chunks/ssr/_6d26a08f._.js +0 -3
  444. package/web/.next/server/chunks/ssr/_6d26a08f._.js.map +0 -1
  445. package/web/.next/server/chunks/ssr/_86617fb9._.js +0 -3
  446. package/web/.next/server/chunks/ssr/_a68d7e1c._.js +0 -9
  447. package/web/.next/server/chunks/ssr/_a68d7e1c._.js.map +0 -1
  448. package/web/.next/server/chunks/ssr/_b5d0b00e._.js +0 -3
  449. package/web/.next/server/chunks/ssr/_b5d0b00e._.js.map +0 -1
  450. package/web/.next/server/chunks/ssr/_b5fc318a._.js +0 -3
  451. package/web/.next/server/chunks/ssr/_b5fc318a._.js.map +0 -1
  452. package/web/.next/server/chunks/ssr/_f2f36bf9._.js.map +0 -1
  453. package/web/.next/server/chunks/ssr/_f5316e67._.js +0 -3
  454. package/web/.next/server/chunks/ssr/_f5316e67._.js.map +0 -1
  455. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_888633e1.js +0 -3
  456. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_888633e1.js.map +0 -1
  457. package/web/.next/server/chunks/ssr/src_presentation_web_ce7cbc3c._.js +0 -5
  458. package/web/.next/server/chunks/ssr/src_presentation_web_ce7cbc3c._.js.map +0 -1
  459. package/web/.next/server/chunks/ssr/src_presentation_web_e2604413._.js +0 -5
  460. package/web/.next/server/chunks/ssr/src_presentation_web_e2604413._.js.map +0 -1
  461. package/web/.next/static/chunks/121a2e602cb9df92.js +0 -11
  462. package/web/.next/static/chunks/303a1217006489b9.js +0 -1
  463. package/web/.next/static/chunks/3a806cf059241bc9.js +0 -1
  464. package/web/.next/static/chunks/57b45edf86522369.css +0 -1
  465. package/web/.next/static/chunks/619af41a8d3232e5.js +0 -1
  466. package/web/.next/static/chunks/6770c61692fe5605.js +0 -1
  467. package/web/.next/static/chunks/84a181ff3270fd9f.js +0 -1
  468. package/web/.next/static/chunks/8c3ff8561102a386.js +0 -1
  469. package/web/.next/static/chunks/a1b3371ef3ffd58b.js +0 -2
  470. package/web/.next/static/chunks/b1f3c0e8e9872ef8.js +0 -1
  471. package/web/.next/static/chunks/bec349a77c5c5796.js +0 -1
  472. package/web/.next/static/chunks/e85bcc69a4ceb89e.js +0 -1
  473. package/web/.next/static/chunks/ed3a602003bcb31b.js +0 -1
  474. package/web/.next/static/chunks/fcde0cbb2976b933.js +0 -1
  475. /package/web/.next/static/{Ci7i00ReHDH8Xv9NQW3By → T6bpRqj4p37ell4NNYIUl}/_buildManifest.js +0 -0
  476. /package/web/.next/static/{Ci7i00ReHDH8Xv9NQW3By → T6bpRqj4p37ell4NNYIUl}/_clientMiddlewareManifest.json +0 -0
  477. /package/web/.next/static/{Ci7i00ReHDH8Xv9NQW3By → T6bpRqj4p37ell4NNYIUl}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,93752,e=>{"use strict";let t=(0,e.i(3645).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);e.s(["default",()=>t])},41957,11345,e=>{"use strict";var t=e.i(20314),r=e.i(79054),o=e.i(87620),n=r.forwardRef((e,r)=>(0,t.jsx)(o.Primitive.label,{...e,ref:r,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));n.displayName="Label",e.s(["Label",()=>n,"Root",()=>n],27572);var a=e.i(27572),a=a,l=e.i(94237),s=e.i(31777);let i=(0,l.cva)("text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=r.forwardRef(({className:e,...r},o)=>(0,t.jsx)(a.Root,{ref:o,className:(0,s.cn)(i(),e),...r}));d.displayName=a.Root.displayName,e.s(["Label",()=>d],41957);let c=(0,e.i(3645).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",()=>c],11345)},23405,e=>{"use strict";var t=e.i(79054);function r(e){let r=t.useRef({value:e,previous:e});return t.useMemo(()=>(r.current.value!==e&&(r.current.previous=r.current.value,r.current.value=e),r.current.previous),[e])}e.s(["usePrevious",()=>r])},76016,e=>{"use strict";let t=(0,e.i(3645).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",()=>t],76016)},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},23925,1012,e=>{"use strict";let t=(0,e.i(3645).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["default",()=>t],1012),e.s(["Check",()=>t],23925)},10714,e=>{"use strict";let t=(0,e.i(3645).default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);e.s(["default",()=>t])},87342,e=>{"use strict";var t=e.i(79054),r=e.i(22528),o=e.i(5978),n=e.i(86874),a=e.i(20314);function l(e){let l=e+"CollectionProvider",[s,i]=(0,r.createContextScope)(l),[d,c]=s(l,{collectionRef:{current:null},itemMap:new Map}),u=e=>{let{scope:r,children:o}=e,n=t.default.useRef(null),l=t.default.useRef(new Map).current;return(0,a.jsx)(d,{scope:r,itemMap:l,collectionRef:n,children:o})};u.displayName=l;let p=e+"CollectionSlot",f=(0,n.createSlot)(p),h=t.default.forwardRef((e,t)=>{let{scope:r,children:n}=e,l=c(p,r),s=(0,o.useComposedRefs)(t,l.collectionRef);return(0,a.jsx)(f,{ref:s,children:n})});h.displayName=p;let m=e+"CollectionItemSlot",v="data-radix-collection-item",x=(0,n.createSlot)(m),g=t.default.forwardRef((e,r)=>{let{scope:n,children:l,...s}=e,i=t.default.useRef(null),d=(0,o.useComposedRefs)(r,i),u=c(m,n);return t.default.useEffect(()=>(u.itemMap.set(i,{ref:i,...s}),()=>void u.itemMap.delete(i))),(0,a.jsx)(x,{...{[v]:""},ref:d,children:l})});return g.displayName=m,[{Provider:u,Slot:h,ItemSlot:g},function(r){let o=c(e+"CollectionConsumer",r);return t.default.useCallback(()=>{let e=o.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${v}]`));return Array.from(o.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[o.collectionRef,o.itemMap])},i]}var s=new WeakMap;function i(e,t){var r,o;let n,a,l;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let s=(r=e,o=t,n=r.length,(l=(a=d(o))>=0?a:n+a)<0||l>=n?-1:l);return -1===s?void 0:e[s]}function d(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],s.set(this,!0)}set(e,t){return s.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,r){let o,n=this.has(t),a=this.#e.length,l=d(e),s=l>=0?l:a+l,i=s<0||s>=a?-1:s;if(i===this.size||n&&i===this.size-1||-1===i)return this.set(t,r),this;let c=this.size+ +!n;l<0&&s++;let u=[...this.#e],p=!1;for(let e=s;e<c;e++)if(s===e){let a=u[e];u[e]===t&&(a=u[e+1]),n&&this.delete(t),o=this.get(a),this.set(t,r)}else{p||u[e-1]!==t||(p=!0);let r=u[p?e:e-1],n=o;o=this.get(r),this.delete(r),this.set(r,n)}return this}with(t,r,o){let n=new e(this);return n.insert(t,r,o),n}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,r){let o=this.#e.indexOf(e);return -1===o?this:this.insert(o,t,r)}after(e){let t=this.#e.indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,r){let o=this.#e.indexOf(e);return -1===o?this:this.insert(o+1,t,r)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=i(this.#e,e);if(void 0!==t)return this.get(t)}entryAt(e){let t=i(this.#e,e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return i(this.#e,e)}from(e,t){let r=this.indexOf(e);if(-1===r)return;let o=r+t;return o<0&&(o=0),o>=this.size&&(o=this.size-1),this.at(o)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let o=r+t;return o<0&&(o=0),o>=this.size&&(o=this.size-1),this.keyAt(o)}find(e,t){let r=0;for(let o of this){if(Reflect.apply(e,t,[o,r,this]))return o;r++}}findIndex(e,t){let r=0;for(let o of this){if(Reflect.apply(e,t,[o,r,this]))return r;r++}return -1}filter(t,r){let o=[],n=0;for(let e of this)Reflect.apply(t,r,[e,n,this])&&o.push(e),n++;return new e(o)}map(t,r){let o=[],n=0;for(let e of this)o.push([e[0],Reflect.apply(t,r,[e,n,this])]),n++;return new e(o)}reduce(...e){let[t,r]=e,o=0,n=r??this.at(0);for(let r of this)n=0===o&&1===e.length?r:Reflect.apply(t,this,[n,r,o,this]),o++;return n}reduceRight(...e){let[t,r]=e,o=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let n=this.at(r);o=r===this.size-1&&1===e.length?n:Reflect.apply(t,this,[o,n,r,this])}return o}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),o=this.get(r);t.set(r,o)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let o=new e,n=this.size-1;if(void 0===t)return o;t<0&&(t+=this.size),void 0!==r&&r>0&&(n=r-1);for(let e=t;e<=n;e++){let t=this.keyAt(e),r=this.get(t);o.set(t,r)}return o}every(e,t){let r=0;for(let o of this){if(!Reflect.apply(e,t,[o,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let o of this){if(Reflect.apply(e,t,[o,r,this]))return!0;r++}return!1}}),e.s(["createCollection",()=>l])},49228,e=>{"use strict";let t=(0,e.i(3645).default)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);e.s(["GitBranch",()=>t],49228)},99105,e=>{"use strict";let t=(0,e.i(3645).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>t],99105)},87889,e=>{"use strict";let t=(0,e.i(3645).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",()=>t],87889)},44229,e=>{"use strict";var t=e.i(93752);e.s(["Code",()=>t.default])},83902,e=>{"use strict";let t=(0,e.i(3645).default)("rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);e.s(["Rocket",()=>t],83902)},93964,94016,e=>{"use strict";var t=e.i(21023);let r=(0,t.createServerReference)("00ff4f3dfeb3b389f1bb8173e83858120c39b83075",t.callServer,void 0,t.findSourceMapURL,"getAllAgentModels");e.s(["getAllAgentModels",()=>r],93964);let o=(0,t.createServerReference)("60576332d0e35f127bc5ea5855668e1c271129ed48",t.callServer,void 0,t.findSourceMapURL,"updateAgentAndModel");e.s(["updateAgentAndModel",()=>o],94016)},26370,e=>{"use strict";let t=(0,e.i(3645).default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);e.s(["Bot",()=>t],26370)},51911,e=>{"use strict";var t=e.i(20314),r=e.i(79054),o=e.i(91967),n=e.i(5978),a=e.i(22528),l=e.i(36589),s=e.i(23405),i=e.i(77624),d=e.i(87620),c="Switch",[u,p]=(0,a.createContextScope)(c),[f,h]=u(c),m=r.forwardRef((e,a)=>{let{__scopeSwitch:s,name:i,checked:u,defaultChecked:p,required:h,disabled:m,value:v="on",onCheckedChange:x,form:w,...b}=e,[S,C]=r.useState(null),k=(0,n.useComposedRefs)(a,e=>C(e)),j=r.useRef(!1),R=!S||w||!!S.closest("form"),[P,N]=(0,l.useControllableState)({prop:u,defaultProp:p??!1,onChange:x,caller:c});return(0,t.jsxs)(f,{scope:s,checked:P,disabled:m,children:[(0,t.jsx)(d.Primitive.button,{type:"button",role:"switch","aria-checked":P,"aria-required":h,"data-state":y(P),"data-disabled":m?"":void 0,disabled:m,value:v,...b,ref:k,onClick:(0,o.composeEventHandlers)(e.onClick,e=>{N(e=>!e),R&&(j.current=e.isPropagationStopped(),j.current||e.stopPropagation())})}),R&&(0,t.jsx)(g,{control:S,bubbles:!j.current,name:i,value:v,checked:P,required:h,disabled:m,form:w,style:{transform:"translateX(-100%)"}})]})});m.displayName=c;var v="SwitchThumb",x=r.forwardRef((e,r)=>{let{__scopeSwitch:o,...n}=e,a=h(v,o);return(0,t.jsx)(d.Primitive.span,{"data-state":y(a.checked),"data-disabled":a.disabled?"":void 0,...n,ref:r})});x.displayName=v;var g=r.forwardRef(({__scopeSwitch:e,control:o,checked:a,bubbles:l=!0,...d},c)=>{let u=r.useRef(null),p=(0,n.useComposedRefs)(u,c),f=(0,s.usePrevious)(a),h=(0,i.useSize)(o);return r.useEffect(()=>{let e=u.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(f!==a&&t){let r=new Event("click",{bubbles:l});t.call(e,a),e.dispatchEvent(r)}},[f,a,l]),(0,t.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:a,...d,tabIndex:-1,ref:p,style:{...d.style,...h,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function y(e){return e?"checked":"unchecked"}g.displayName="SwitchBubbleInput",e.s(["Root",()=>m,"Switch",()=>m,"SwitchThumb",()=>x,"Thumb",()=>x,"createSwitchScope",()=>p],95291);var w=e.i(95291),w=w,b=e.i(31777);function S({className:e,size:r="default",...o}){return(0,t.jsx)(w.Root,{"data-slot":"switch","data-size":r,className:(0,b.cn)("peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6",e),...o,children:(0,t.jsx)(w.Thumb,{"data-slot":"switch-thumb",className:(0,b.cn)("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}e.s(["Switch",()=>S],51911)},90382,e=>{"use strict";var t=e.i(20314),r=e.i(79054),o=e.i(91967),n=e.i(5978),a=e.i(22528),l=e.i(53532),s=e.i(41687),i=e.i(56720),d=e.i(13123),c=e.i(52740),u=e.i(39979),p=e.i(85995),f=e.i(87620),h=e.i(86874),m=e.i(36589),v=e.i(73772),x=e.i(13044),g="Popover",[y,w]=(0,a.createContextScope)(g,[c.createPopperScope]),b=(0,c.createPopperScope)(),[S,C]=y(g),k=e=>{let{__scopePopover:o,children:n,open:a,defaultOpen:l,onOpenChange:s,modal:i=!1}=e,u=b(o),p=r.useRef(null),[f,h]=r.useState(!1),[v,x]=(0,m.useControllableState)({prop:a,defaultProp:l??!1,onChange:s,caller:g});return(0,t.jsx)(c.Root,{...u,children:(0,t.jsx)(S,{scope:o,contentId:(0,d.useId)(),triggerRef:p,open:v,onOpenChange:x,onOpenToggle:r.useCallback(()=>x(e=>!e),[x]),hasCustomAnchor:f,onCustomAnchorAdd:r.useCallback(()=>h(!0),[]),onCustomAnchorRemove:r.useCallback(()=>h(!1),[]),modal:i,children:n})})};k.displayName=g;var j="PopoverAnchor",R=r.forwardRef((e,o)=>{let{__scopePopover:n,...a}=e,l=C(j,n),s=b(n),{onCustomAnchorAdd:i,onCustomAnchorRemove:d}=l;return r.useEffect(()=>(i(),()=>d()),[i,d]),(0,t.jsx)(c.Anchor,{...s,...a,ref:o})});R.displayName=j;var P="PopoverTrigger",N=r.forwardRef((e,r)=>{let{__scopePopover:a,...l}=e,s=C(P,a),i=b(a),d=(0,n.useComposedRefs)(r,s.triggerRef),u=(0,t.jsx)(f.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":s.open,"aria-controls":s.contentId,"data-state":V(s.open),...l,ref:d,onClick:(0,o.composeEventHandlers)(e.onClick,s.onOpenToggle)});return s.hasCustomAnchor?u:(0,t.jsx)(c.Anchor,{asChild:!0,...i,children:u})});N.displayName=P;var E="PopoverPortal",[T,A]=y(E,{forceMount:void 0}),I=e=>{let{__scopePopover:r,forceMount:o,children:n,container:a}=e,l=C(E,r);return(0,t.jsx)(T,{scope:r,forceMount:o,children:(0,t.jsx)(p.Presence,{present:o||l.open,children:(0,t.jsx)(u.Portal,{asChild:!0,container:a,children:n})})})};I.displayName=E;var M="PopoverContent",D=r.forwardRef((e,r)=>{let o=A(M,e.__scopePopover),{forceMount:n=o.forceMount,...a}=e,l=C(M,e.__scopePopover);return(0,t.jsx)(p.Presence,{present:n||l.open,children:l.modal?(0,t.jsx)(H,{...a,ref:r}):(0,t.jsx)(O,{...a,ref:r})})});D.displayName=M;var L=(0,h.createSlot)("PopoverContent.RemoveScroll"),H=r.forwardRef((e,a)=>{let l=C(M,e.__scopePopover),s=r.useRef(null),i=(0,n.useComposedRefs)(a,s),d=r.useRef(!1);return r.useEffect(()=>{let e=s.current;if(e)return(0,v.hideOthers)(e)},[]),(0,t.jsx)(x.RemoveScroll,{as:L,allowPinchZoom:!0,children:(0,t.jsx)(z,{...e,ref:i,trapFocus:l.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,o.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),d.current||l.triggerRef.current?.focus()}),onPointerDownOutside:(0,o.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;d.current=2===t.button||r},{checkForDefaultPrevented:!1}),onFocusOutside:(0,o.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),O=r.forwardRef((e,o)=>{let n=C(M,e.__scopePopover),a=r.useRef(!1),l=r.useRef(!1);return(0,t.jsx)(z,{...e,ref:o,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(a.current||n.triggerRef.current?.focus(),t.preventDefault()),a.current=!1,l.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(a.current=!0,"pointerdown"===t.detail.originalEvent.type&&(l.current=!0));let r=t.target;n.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&l.current&&t.preventDefault()}})}),z=r.forwardRef((e,r)=>{let{__scopePopover:o,trapFocus:n,onOpenAutoFocus:a,onCloseAutoFocus:d,disableOutsidePointerEvents:u,onEscapeKeyDown:p,onPointerDownOutside:f,onFocusOutside:h,onInteractOutside:m,...v}=e,x=C(M,o),g=b(o);return(0,s.useFocusGuards)(),(0,t.jsx)(i.FocusScope,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:a,onUnmountAutoFocus:d,children:(0,t.jsx)(l.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:u,onInteractOutside:m,onEscapeKeyDown:p,onPointerDownOutside:f,onFocusOutside:h,onDismiss:()=>x.onOpenChange(!1),children:(0,t.jsx)(c.Content,{"data-state":V(x.open),role:"dialog",id:x.contentId,...g,...v,ref:r,style:{...v.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),F="PopoverClose",B=r.forwardRef((e,r)=>{let{__scopePopover:n,...a}=e,l=C(F,n);return(0,t.jsx)(f.Primitive.button,{type:"button",...a,ref:r,onClick:(0,o.composeEventHandlers)(e.onClick,()=>l.onOpenChange(!1))})});B.displayName=F;var _=r.forwardRef((e,r)=>{let{__scopePopover:o,...n}=e,a=b(o);return(0,t.jsx)(c.Arrow,{...a,...n,ref:r})});function V(e){return e?"open":"closed"}_.displayName="PopoverArrow",e.s(["Anchor",()=>R,"Arrow",()=>_,"Close",()=>B,"Content",()=>D,"Popover",()=>k,"PopoverAnchor",()=>R,"PopoverArrow",()=>_,"PopoverClose",()=>B,"PopoverContent",()=>D,"PopoverPortal",()=>I,"PopoverTrigger",()=>N,"Portal",()=>I,"Root",()=>k,"Trigger",()=>N,"createPopoverScope",()=>w],89920);var U=e.i(89920),U=U,q=e.i(31777);let K=U.Root,W=U.Trigger;U.Anchor;let G=r.forwardRef(({className:e,align:r="center",sideOffset:o=4,...n},a)=>(0,t.jsx)(U.Portal,{children:(0,t.jsx)(U.Content,{ref:a,align:r,sideOffset:o,className:(0,q.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none",e),...n})}));G.displayName=U.Content.displayName,e.s(["Popover",()=>K,"PopoverContent",()=>G,"PopoverTrigger",()=>W],90382)},41413,e=>{"use strict";var t=e.i(20314),r=e.i(79054),o=e.i(23925),n=e.i(11345),a=e.i(76016),l=e.i(93964),s=e.i(94016),i=e.i(86782),d=e.i(29847),c=e.i(35364),u=e.i(90382),p=e.i(31777);function f({initialAgentType:e,initialModel:f,onAgentModelChange:h,disabled:m,className:v,mode:x}){let[g,y]=r.useState(!1),[w,b]=r.useState([]),[S,C]=r.useState(!0),[k,j]=r.useState(e),[R,P]=r.useState(f),[N,E]=r.useState(null),[T,A]=r.useState(0),[I,M]=r.useState(null);r.useEffect(()=>{(0,l.getAllAgentModels)().then(b).finally(()=>C(!1))},[]),r.useEffect(()=>{if(!g){let e=setTimeout(()=>{A(0),M(null)},150);return()=>clearTimeout(e)}},[g]);let D=async(e,t)=>{if(y(!1),e!==k||t!==R){if("override"===x){j(e),P(t),h?.(e,t);return}j(e),P(t),h?.(e,t),E(null);try{let r=await (0,s.updateAgentAndModel)(e,t||null);r.ok||(j(k),P(R),h?.(k,R),E(r.error??"Failed to save"))}catch{j(k),P(R),h?.(k,R),E("Failed to save")}}},L=(0,i.getAgentTypeIcon)(k),H=w.find(e=>e.agentType===k)?.label??k,O=R?(0,d.getModelMeta)(R).displayName||R:null,z=I?w.find(e=>e.agentType===I):null;return(0,t.jsxs)("div",{className:(0,p.cn)("flex flex-col gap-1",v),children:[(0,t.jsxs)(u.Popover,{open:g,onOpenChange:y,children:[(0,t.jsx)(u.PopoverTrigger,{asChild:!0,children:(0,t.jsx)(c.Button,{variant:"outline",role:"combobox","aria-expanded":g,disabled:(m??!1)||S,className:"w-auto cursor-pointer justify-start font-normal hover:border-violet-300 hover:bg-violet-50/50 dark:hover:border-violet-700 dark:hover:bg-violet-950/30",children:(0,t.jsxs)("span",{className:"flex items-center gap-2 truncate",children:[(0,t.jsx)(L,{className:"h-4 w-4 shrink-0"}),S?"Loading…":(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:H}),O?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-muted-foreground/50 text-xs",children:"·"}),(0,t.jsx)("span",{className:"text-xs font-medium",children:O})]}):null]})]})})}),(0,t.jsx)(u.PopoverContent,{className:"w-(--radix-popover-trigger-width) overflow-hidden p-0",align:"start",children:(0,t.jsxs)("div",{className:"flex transition-transform duration-200 ease-in-out",style:{transform:`translateX(${1===T?"-50%":"0%"})`,width:"200%"},children:[(0,t.jsxs)("div",{className:"w-1/2 shrink-0",children:[(0,t.jsx)("div",{className:"text-muted-foreground border-b px-3 py-2 text-xs font-medium",children:"Select agent"}),w.map(e=>{let r=(0,i.getAgentTypeIcon)(e.agentType),n=k===e.agentType,l=e.models.length>0;return(0,t.jsxs)("button",{type:"button",className:(0,p.cn)("flex w-full cursor-pointer items-center gap-2.5 px-3 py-2 text-xs transition-colors","hover:bg-accent hover:text-accent-foreground",n&&"bg-accent/50"),onClick:()=>{l?(M(e.agentType),requestAnimationFrame(()=>{requestAnimationFrame(()=>A(1))})):D(e.agentType,"")},children:[(0,t.jsx)(r,{className:"h-4 w-4 shrink-0"}),(0,t.jsx)("span",{className:"flex-1 text-left",children:e.label}),n&&!l?(0,t.jsx)(o.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null,l?(0,t.jsx)(a.ChevronRight,{className:"text-muted-foreground h-3.5 w-3.5 shrink-0"}):null]},e.agentType)})]}),(0,t.jsx)("div",{className:"w-1/2 shrink-0",children:z?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{type:"button",className:"text-muted-foreground hover:text-foreground flex w-full cursor-pointer items-center gap-1.5 border-b px-3 py-2 text-xs font-medium transition-colors",onClick:()=>{A(0),setTimeout(()=>M(null),220)},children:[(0,t.jsx)(n.ChevronLeft,{className:"h-3.5 w-3.5"}),z.label]}),z.models.map(e=>{let r=k===z.agentType&&R===e.id;return(0,t.jsxs)("button",{type:"button",className:(0,p.cn)("flex w-full cursor-pointer items-center gap-3 px-3 py-2 text-left transition-colors","hover:bg-accent hover:text-accent-foreground",r&&"bg-accent/50"),onClick:()=>D(z.agentType,e.id),children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)("span",{className:"text-xs font-medium",children:e.displayName}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:e.description})]}),r?(0,t.jsx)(o.Check,{className:"text-primary h-3.5 w-3.5 shrink-0"}):null]},e.id)})]}):null})]})})]}),!!N&&(0,t.jsx)("p",{className:"text-destructive text-sm",children:N})]})}e.s(["AgentModelPicker",()=>f])},74294,47373,e=>{"use strict";var t=e.i(3645);let r=(0,t.default)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);e.s(["Activity",()=>r],74294);var o=e.i(20314),n=e.i(79054),a=e.i(26036),l=e.i(27069),s=e.i(91967),i=e.i(87342),d=e.i(5978),c=e.i(22528),u=e.i(66033),p=e.i(53532),f=e.i(41687),h=e.i(56720),m=e.i(13123),v=e.i(52740),x=e.i(39979),g=e.i(87620),y=e.i(86874),w=e.i(29297),b=e.i(36589),S=e.i(5192),C=e.i(23405),k=e.i(1693),j=e.i(73772),R=e.i(13044),P=[" ","Enter","ArrowUp","ArrowDown"],N=[" ","Enter"],E="Select",[T,A,I]=(0,i.createCollection)(E),[M,D]=(0,c.createContextScope)(E,[I,v.createPopperScope]),L=(0,v.createPopperScope)(),[H,O]=M(E),[z,F]=M(E),B=e=>{let{__scopeSelect:t,children:r,open:a,defaultOpen:l,onOpenChange:s,value:i,defaultValue:d,onValueChange:c,dir:p,name:f,autoComplete:h,disabled:x,required:g,form:y}=e,w=L(t),[S,C]=n.useState(null),[k,j]=n.useState(null),[R,P]=n.useState(!1),N=(0,u.useDirection)(p),[A,I]=(0,b.useControllableState)({prop:a,defaultProp:l??!1,onChange:s,caller:E}),[M,D]=(0,b.useControllableState)({prop:i,defaultProp:d,onChange:c,caller:E}),O=n.useRef(null),F=!S||y||!!S.closest("form"),[B,_]=n.useState(new Set),V=Array.from(B).map(e=>e.props.value).join(";");return(0,o.jsx)(v.Root,{...w,children:(0,o.jsxs)(H,{required:g,scope:t,trigger:S,onTriggerChange:C,valueNode:k,onValueNodeChange:j,valueNodeHasChildren:R,onValueNodeHasChildrenChange:P,contentId:(0,m.useId)(),value:M,onValueChange:D,open:A,onOpenChange:I,dir:N,triggerPointerDownPosRef:O,disabled:x,children:[(0,o.jsx)(T.Provider,{scope:t,children:(0,o.jsx)(z,{scope:e.__scopeSelect,onNativeOptionAdd:n.useCallback(e=>{_(t=>new Set(t).add(e))},[]),onNativeOptionRemove:n.useCallback(e=>{_(t=>{let r=new Set(t);return r.delete(e),r})},[]),children:r})}),F?(0,o.jsxs)(eP,{"aria-hidden":!0,required:g,tabIndex:-1,name:f,autoComplete:h,value:M,onChange:e=>D(e.target.value),disabled:x,form:y,children:[void 0===M?(0,o.jsx)("option",{value:""}):null,Array.from(B)]},V):null]})})};B.displayName=E;var _="SelectTrigger",V=n.forwardRef((e,t)=>{let{__scopeSelect:r,disabled:a=!1,...l}=e,i=L(r),c=O(_,r),u=c.disabled||a,p=(0,d.useComposedRefs)(t,c.onTriggerChange),f=A(r),h=n.useRef("touch"),[m,x,y]=eE(e=>{let t=f().filter(e=>!e.disabled),r=t.find(e=>e.value===c.value),o=eT(t,e,r);void 0!==o&&c.onValueChange(o.value)}),w=e=>{u||(c.onOpenChange(!0),y()),e&&(c.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,o.jsx)(v.Anchor,{asChild:!0,...i,children:(0,o.jsx)(g.Primitive.button,{type:"button",role:"combobox","aria-controls":c.contentId,"aria-expanded":c.open,"aria-required":c.required,"aria-autocomplete":"none",dir:c.dir,"data-state":c.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":eN(c.value)?"":void 0,...l,ref:p,onClick:(0,s.composeEventHandlers)(l.onClick,e=>{e.currentTarget.focus(),"mouse"!==h.current&&w(e)}),onPointerDown:(0,s.composeEventHandlers)(l.onPointerDown,e=>{h.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(w(e),e.preventDefault())}),onKeyDown:(0,s.composeEventHandlers)(l.onKeyDown,e=>{let t=""!==m.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||x(e.key),(!t||" "!==e.key)&&P.includes(e.key)&&(w(),e.preventDefault())})})})});V.displayName=_;var U="SelectValue",q=n.forwardRef((e,t)=>{let{__scopeSelect:r,className:n,style:a,children:l,placeholder:s="",...i}=e,c=O(U,r),{onValueNodeHasChildrenChange:u}=c,p=void 0!==l,f=(0,d.useComposedRefs)(t,c.onValueNodeChange);return(0,S.useLayoutEffect)(()=>{u(p)},[u,p]),(0,o.jsx)(g.Primitive.span,{...i,ref:f,style:{pointerEvents:"none"},children:eN(c.value)?(0,o.jsx)(o.Fragment,{children:s}):l})});q.displayName=U;var K=n.forwardRef((e,t)=>{let{__scopeSelect:r,children:n,...a}=e;return(0,o.jsx)(g.Primitive.span,{"aria-hidden":!0,...a,ref:t,children:n||"▼"})});K.displayName="SelectIcon";var W=e=>(0,o.jsx)(x.Portal,{asChild:!0,...e});W.displayName="SelectPortal";var G="SelectContent",X=n.forwardRef((e,t)=>{let r=O(G,e.__scopeSelect),[l,s]=n.useState();return((0,S.useLayoutEffect)(()=>{s(new DocumentFragment)},[]),r.open)?(0,o.jsx)(J,{...e,ref:t}):l?a.createPortal((0,o.jsx)(Y,{scope:e.__scopeSelect,children:(0,o.jsx)(T.Slot,{scope:e.__scopeSelect,children:(0,o.jsx)("div",{children:e.children})})}),l):null});X.displayName=G;var[Y,Z]=M(G),$=(0,y.createSlot)("SelectContent.RemoveScroll"),J=n.forwardRef((e,t)=>{let{__scopeSelect:r,position:a="item-aligned",onCloseAutoFocus:l,onEscapeKeyDown:i,onPointerDownOutside:c,side:u,sideOffset:m,align:v,alignOffset:x,arrowPadding:g,collisionBoundary:y,collisionPadding:w,sticky:b,hideWhenDetached:S,avoidCollisions:C,...k}=e,P=O(G,r),[N,E]=n.useState(null),[T,I]=n.useState(null),M=(0,d.useComposedRefs)(t,e=>E(e)),[D,L]=n.useState(null),[H,z]=n.useState(null),F=A(r),[B,_]=n.useState(!1),V=n.useRef(!1);n.useEffect(()=>{if(N)return(0,j.hideOthers)(N)},[N]),(0,f.useFocusGuards)();let U=n.useCallback(e=>{let[t,...r]=F().map(e=>e.ref.current),[o]=r.slice(-1),n=document.activeElement;for(let r of e)if(r===n||(r?.scrollIntoView({block:"nearest"}),r===t&&T&&(T.scrollTop=0),r===o&&T&&(T.scrollTop=T.scrollHeight),r?.focus(),document.activeElement!==n))return},[F,T]),q=n.useCallback(()=>U([D,N]),[U,D,N]);n.useEffect(()=>{B&&q()},[B,q]);let{onOpenChange:K,triggerPointerDownPosRef:W}=P;n.useEffect(()=>{if(N){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(W.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(W.current?.y??0))}},r=r=>{e.x<=10&&e.y<=10?r.preventDefault():N.contains(r.target)||K(!1),document.removeEventListener("pointermove",t),W.current=null};return null!==W.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",r,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",r,{capture:!0})}}},[N,K,W]),n.useEffect(()=>{let e=()=>K(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[K]);let[X,Z]=eE(e=>{let t=F().filter(e=>!e.disabled),r=t.find(e=>e.ref.current===document.activeElement),o=eT(t,e,r);o&&setTimeout(()=>o.ref.current.focus())}),J=n.useCallback((e,t,r)=>{let o=!V.current&&!r;(void 0!==P.value&&P.value===t||o)&&(L(e),o&&(V.current=!0))},[P.value]),et=n.useCallback(()=>N?.focus(),[N]),er=n.useCallback((e,t,r)=>{let o=!V.current&&!r;(void 0!==P.value&&P.value===t||o)&&z(e)},[P.value]),eo="popper"===a?ee:Q,en=eo===ee?{side:u,sideOffset:m,align:v,alignOffset:x,arrowPadding:g,collisionBoundary:y,collisionPadding:w,sticky:b,hideWhenDetached:S,avoidCollisions:C}:{};return(0,o.jsx)(Y,{scope:r,content:N,viewport:T,onViewportChange:I,itemRefCallback:J,selectedItem:D,onItemLeave:et,itemTextRefCallback:er,focusSelectedItem:q,selectedItemText:H,position:a,isPositioned:B,searchRef:X,children:(0,o.jsx)(R.RemoveScroll,{as:$,allowPinchZoom:!0,children:(0,o.jsx)(h.FocusScope,{asChild:!0,trapped:P.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,s.composeEventHandlers)(l,e=>{P.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,o.jsx)(p.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:i,onPointerDownOutside:c,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>P.onOpenChange(!1),children:(0,o.jsx)(eo,{role:"listbox",id:P.contentId,"data-state":P.open?"open":"closed",dir:P.dir,onContextMenu:e=>e.preventDefault(),...k,...en,onPlaced:()=>_(!0),ref:M,style:{display:"flex",flexDirection:"column",outline:"none",...k.style},onKeyDown:(0,s.composeEventHandlers)(k.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||Z(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=F().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let r=e.target,o=t.indexOf(r);t=t.slice(o+1)}setTimeout(()=>U(t)),e.preventDefault()}})})})})})})});J.displayName="SelectContentImpl";var Q=n.forwardRef((e,t)=>{let{__scopeSelect:r,onPlaced:a,...s}=e,i=O(G,r),c=Z(G,r),[u,p]=n.useState(null),[f,h]=n.useState(null),m=(0,d.useComposedRefs)(t,e=>h(e)),v=A(r),x=n.useRef(!1),y=n.useRef(!0),{viewport:w,selectedItem:b,selectedItemText:C,focusSelectedItem:k}=c,j=n.useCallback(()=>{if(i.trigger&&i.valueNode&&u&&f&&w&&b&&C){let e=i.trigger.getBoundingClientRect(),t=f.getBoundingClientRect(),r=i.valueNode.getBoundingClientRect(),o=C.getBoundingClientRect();if("rtl"!==i.dir){let n=o.left-t.left,a=r.left-n,s=e.left-a,i=e.width+s,d=Math.max(i,t.width),c=window.innerWidth-10,p=(0,l.clamp)(a,[10,Math.max(10,c-d)]);u.style.minWidth=i+"px",u.style.left=p+"px"}else{let n=t.right-o.right,a=window.innerWidth-r.right-n,s=window.innerWidth-e.right-a,i=e.width+s,d=Math.max(i,t.width),c=window.innerWidth-10,p=(0,l.clamp)(a,[10,Math.max(10,c-d)]);u.style.minWidth=i+"px",u.style.right=p+"px"}let n=v(),s=window.innerHeight-20,d=w.scrollHeight,c=window.getComputedStyle(f),p=parseInt(c.borderTopWidth,10),h=parseInt(c.paddingTop,10),m=parseInt(c.borderBottomWidth,10),g=p+h+d+parseInt(c.paddingBottom,10)+m,y=Math.min(5*b.offsetHeight,g),S=window.getComputedStyle(w),k=parseInt(S.paddingTop,10),j=parseInt(S.paddingBottom,10),R=e.top+e.height/2-10,P=b.offsetHeight/2,N=p+h+(b.offsetTop+P);if(N<=R){let e=n.length>0&&b===n[n.length-1].ref.current;u.style.bottom="0px";let t=Math.max(s-R,P+(e?j:0)+(f.clientHeight-w.offsetTop-w.offsetHeight)+m);u.style.height=N+t+"px"}else{let e=n.length>0&&b===n[0].ref.current;u.style.top="0px";let t=Math.max(R,p+w.offsetTop+(e?k:0)+P);u.style.height=t+(g-N)+"px",w.scrollTop=N-R+w.offsetTop}u.style.margin="10px 0",u.style.minHeight=y+"px",u.style.maxHeight=s+"px",a?.(),requestAnimationFrame(()=>x.current=!0)}},[v,i.trigger,i.valueNode,u,f,w,b,C,i.dir,a]);(0,S.useLayoutEffect)(()=>j(),[j]);let[R,P]=n.useState();(0,S.useLayoutEffect)(()=>{f&&P(window.getComputedStyle(f).zIndex)},[f]);let N=n.useCallback(e=>{e&&!0===y.current&&(j(),k?.(),y.current=!1)},[j,k]);return(0,o.jsx)(et,{scope:r,contentWrapper:u,shouldExpandOnScrollRef:x,onScrollButtonChange:N,children:(0,o.jsx)("div",{ref:p,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:R},children:(0,o.jsx)(g.Primitive.div,{...s,ref:m,style:{boxSizing:"border-box",maxHeight:"100%",...s.style}})})})});Q.displayName="SelectItemAlignedPosition";var ee=n.forwardRef((e,t)=>{let{__scopeSelect:r,align:n="start",collisionPadding:a=10,...l}=e,s=L(r);return(0,o.jsx)(v.Content,{...s,...l,ref:t,align:n,collisionPadding:a,style:{boxSizing:"border-box",...l.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});ee.displayName="SelectPopperPosition";var[et,er]=M(G,{}),eo="SelectViewport",en=n.forwardRef((e,t)=>{let{__scopeSelect:r,nonce:a,...l}=e,i=Z(eo,r),c=er(eo,r),u=(0,d.useComposedRefs)(t,i.onViewportChange),p=n.useRef(0);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),(0,o.jsx)(T.Slot,{scope:r,children:(0,o.jsx)(g.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...l,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...l.style},onScroll:(0,s.composeEventHandlers)(l.onScroll,e=>{let t=e.currentTarget,{contentWrapper:r,shouldExpandOnScrollRef:o}=c;if(o?.current&&r){let e=Math.abs(p.current-t.scrollTop);if(e>0){let o=window.innerHeight-20,n=Math.max(parseFloat(r.style.minHeight),parseFloat(r.style.height));if(n<o){let a=n+e,l=Math.min(o,a),s=a-l;r.style.height=l+"px","0px"===r.style.bottom&&(t.scrollTop=s>0?s:0,r.style.justifyContent="flex-end")}}}p.current=t.scrollTop})})})]})});en.displayName=eo;var ea="SelectGroup",[el,es]=M(ea),ei=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,a=(0,m.useId)();return(0,o.jsx)(el,{scope:r,id:a,children:(0,o.jsx)(g.Primitive.div,{role:"group","aria-labelledby":a,...n,ref:t})})});ei.displayName=ea;var ed="SelectLabel",ec=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,a=es(ed,r);return(0,o.jsx)(g.Primitive.div,{id:a.id,...n,ref:t})});ec.displayName=ed;var eu="SelectItem",[ep,ef]=M(eu),eh=n.forwardRef((e,t)=>{let{__scopeSelect:r,value:a,disabled:l=!1,textValue:i,...c}=e,u=O(eu,r),p=Z(eu,r),f=u.value===a,[h,v]=n.useState(i??""),[x,y]=n.useState(!1),w=(0,d.useComposedRefs)(t,e=>p.itemRefCallback?.(e,a,l)),b=(0,m.useId)(),S=n.useRef("touch"),C=()=>{l||(u.onValueChange(a),u.onOpenChange(!1))};if(""===a)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,o.jsx)(ep,{scope:r,value:a,disabled:l,textId:b,isSelected:f,onItemTextChange:n.useCallback(e=>{v(t=>t||(e?.textContent??"").trim())},[]),children:(0,o.jsx)(T.ItemSlot,{scope:r,value:a,disabled:l,textValue:h,children:(0,o.jsx)(g.Primitive.div,{role:"option","aria-labelledby":b,"data-highlighted":x?"":void 0,"aria-selected":f&&x,"data-state":f?"checked":"unchecked","aria-disabled":l||void 0,"data-disabled":l?"":void 0,tabIndex:l?void 0:-1,...c,ref:w,onFocus:(0,s.composeEventHandlers)(c.onFocus,()=>y(!0)),onBlur:(0,s.composeEventHandlers)(c.onBlur,()=>y(!1)),onClick:(0,s.composeEventHandlers)(c.onClick,()=>{"mouse"!==S.current&&C()}),onPointerUp:(0,s.composeEventHandlers)(c.onPointerUp,()=>{"mouse"===S.current&&C()}),onPointerDown:(0,s.composeEventHandlers)(c.onPointerDown,e=>{S.current=e.pointerType}),onPointerMove:(0,s.composeEventHandlers)(c.onPointerMove,e=>{S.current=e.pointerType,l?p.onItemLeave?.():"mouse"===S.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,s.composeEventHandlers)(c.onPointerLeave,e=>{e.currentTarget===document.activeElement&&p.onItemLeave?.()}),onKeyDown:(0,s.composeEventHandlers)(c.onKeyDown,e=>{(p.searchRef?.current===""||" "!==e.key)&&(N.includes(e.key)&&C()," "===e.key&&e.preventDefault())})})})})});eh.displayName=eu;var em="SelectItemText",ev=n.forwardRef((e,t)=>{let{__scopeSelect:r,className:l,style:s,...i}=e,c=O(em,r),u=Z(em,r),p=ef(em,r),f=F(em,r),[h,m]=n.useState(null),v=(0,d.useComposedRefs)(t,e=>m(e),p.onItemTextChange,e=>u.itemTextRefCallback?.(e,p.value,p.disabled)),x=h?.textContent,y=n.useMemo(()=>(0,o.jsx)("option",{value:p.value,disabled:p.disabled,children:x},p.value),[p.disabled,p.value,x]),{onNativeOptionAdd:w,onNativeOptionRemove:b}=f;return(0,S.useLayoutEffect)(()=>(w(y),()=>b(y)),[w,b,y]),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(g.Primitive.span,{id:p.textId,...i,ref:v}),p.isSelected&&c.valueNode&&!c.valueNodeHasChildren?a.createPortal(i.children,c.valueNode):null]})});ev.displayName=em;var ex="SelectItemIndicator",eg=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e;return ef(ex,r).isSelected?(0,o.jsx)(g.Primitive.span,{"aria-hidden":!0,...n,ref:t}):null});eg.displayName=ex;var ey="SelectScrollUpButton",ew=n.forwardRef((e,t)=>{let r=Z(ey,e.__scopeSelect),a=er(ey,e.__scopeSelect),[l,s]=n.useState(!1),i=(0,d.useComposedRefs)(t,a.onScrollButtonChange);return(0,S.useLayoutEffect)(()=>{if(r.viewport&&r.isPositioned){let e=function(){s(t.scrollTop>0)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),l?(0,o.jsx)(eC,{...e,ref:i,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null});ew.displayName=ey;var eb="SelectScrollDownButton",eS=n.forwardRef((e,t)=>{let r=Z(eb,e.__scopeSelect),a=er(eb,e.__scopeSelect),[l,s]=n.useState(!1),i=(0,d.useComposedRefs)(t,a.onScrollButtonChange);return(0,S.useLayoutEffect)(()=>{if(r.viewport&&r.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;s(Math.ceil(t.scrollTop)<e)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),l?(0,o.jsx)(eC,{...e,ref:i,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null});eS.displayName=eb;var eC=n.forwardRef((e,t)=>{let{__scopeSelect:r,onAutoScroll:a,...l}=e,i=Z("SelectScrollButton",r),d=n.useRef(null),c=A(r),u=n.useCallback(()=>{null!==d.current&&(window.clearInterval(d.current),d.current=null)},[]);return n.useEffect(()=>()=>u(),[u]),(0,S.useLayoutEffect)(()=>{let e=c().find(e=>e.ref.current===document.activeElement);e?.ref.current?.scrollIntoView({block:"nearest"})},[c]),(0,o.jsx)(g.Primitive.div,{"aria-hidden":!0,...l,ref:t,style:{flexShrink:0,...l.style},onPointerDown:(0,s.composeEventHandlers)(l.onPointerDown,()=>{null===d.current&&(d.current=window.setInterval(a,50))}),onPointerMove:(0,s.composeEventHandlers)(l.onPointerMove,()=>{i.onItemLeave?.(),null===d.current&&(d.current=window.setInterval(a,50))}),onPointerLeave:(0,s.composeEventHandlers)(l.onPointerLeave,()=>{u()})})}),ek=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e;return(0,o.jsx)(g.Primitive.div,{"aria-hidden":!0,...n,ref:t})});ek.displayName="SelectSeparator";var ej="SelectArrow",eR=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,a=L(r),l=O(ej,r),s=Z(ej,r);return l.open&&"popper"===s.position?(0,o.jsx)(v.Arrow,{...a,...n,ref:t}):null});eR.displayName=ej;var eP=n.forwardRef(({__scopeSelect:e,value:t,...r},a)=>{let l=n.useRef(null),s=(0,d.useComposedRefs)(a,l),i=(0,C.usePrevious)(t);return n.useEffect(()=>{let e=l.current;if(!e)return;let r=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(i!==t&&r){let o=new Event("change",{bubbles:!0});r.call(e,t),e.dispatchEvent(o)}},[i,t]),(0,o.jsx)(g.Primitive.select,{...r,style:{...k.VISUALLY_HIDDEN_STYLES,...r.style},ref:s,defaultValue:t})});function eN(e){return""===e||void 0===e}function eE(e){let t=(0,w.useCallbackRef)(e),r=n.useRef(""),o=n.useRef(0),a=n.useCallback(e=>{let n=r.current+e;t(n),function e(t){r.current=t,window.clearTimeout(o.current),""!==t&&(o.current=window.setTimeout(()=>e(""),1e3))}(n)},[t]),l=n.useCallback(()=>{r.current="",window.clearTimeout(o.current)},[]);return n.useEffect(()=>()=>window.clearTimeout(o.current),[]),[r,a,l]}function eT(e,t,r){var o,n;let a=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,l=r?e.indexOf(r):-1,s=(o=e,n=Math.max(l,0),o.map((e,t)=>o[(n+t)%o.length]));1===a.length&&(s=s.filter(e=>e!==r));let i=s.find(e=>e.textValue.toLowerCase().startsWith(a.toLowerCase()));return i!==r?i:void 0}eP.displayName="SelectBubbleInput",e.s(["Arrow",()=>eR,"Content",()=>X,"Group",()=>ei,"Icon",()=>K,"Item",()=>eh,"ItemIndicator",()=>eg,"ItemText",()=>ev,"Label",()=>ec,"Portal",()=>W,"Root",()=>B,"ScrollDownButton",()=>eS,"ScrollUpButton",()=>ew,"Select",()=>B,"SelectArrow",()=>eR,"SelectContent",()=>X,"SelectGroup",()=>ei,"SelectIcon",()=>K,"SelectItem",()=>eh,"SelectItemIndicator",()=>eg,"SelectItemText",()=>ev,"SelectLabel",()=>ec,"SelectPortal",()=>W,"SelectScrollDownButton",()=>eS,"SelectScrollUpButton",()=>ew,"SelectSeparator",()=>ek,"SelectTrigger",()=>V,"SelectValue",()=>q,"SelectViewport",()=>en,"Separator",()=>ek,"Trigger",()=>V,"Value",()=>q,"Viewport",()=>en,"createSelectScope",()=>D],83830);var eA=e.i(83830),eA=eA,eI=e.i(23925),eM=e.i(99105);let eD=(0,t.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);var eL=e.i(31777);let eH=eA.Root;eA.Group;let eO=eA.Value,ez=n.forwardRef(({className:e,children:t,...r},n)=>(0,o.jsxs)(eA.Trigger,{ref:n,className:(0,eL.cn)("border-input ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...r,children:[t,(0,o.jsx)(eA.Icon,{asChild:!0,children:(0,o.jsx)(eM.ChevronDown,{className:"h-4 w-4 opacity-50"})})]}));ez.displayName=eA.Trigger.displayName;let eF=n.forwardRef(({className:e,...t},r)=>(0,o.jsx)(eA.ScrollUpButton,{ref:r,className:(0,eL.cn)("flex cursor-default items-center justify-center py-1",e),...t,children:(0,o.jsx)(eD,{className:"h-4 w-4"})}));eF.displayName=eA.ScrollUpButton.displayName;let eB=n.forwardRef(({className:e,...t},r)=>(0,o.jsx)(eA.ScrollDownButton,{ref:r,className:(0,eL.cn)("flex cursor-default items-center justify-center py-1",e),...t,children:(0,o.jsx)(eM.ChevronDown,{className:"h-4 w-4"})}));eB.displayName=eA.ScrollDownButton.displayName;let e_=n.forwardRef(({className:e,children:t,position:r="popper",...n},a)=>(0,o.jsx)(eA.Portal,{children:(0,o.jsxs)(eA.Content,{ref:a,className:(0,eL.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md","popper"===r&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:r,...n,children:[(0,o.jsx)(eF,{}),(0,o.jsx)(eA.Viewport,{className:(0,eL.cn)("p-1","popper"===r&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),(0,o.jsx)(eB,{})]})}));e_.displayName=eA.Content.displayName,n.forwardRef(({className:e,...t},r)=>(0,o.jsx)(eA.Label,{ref:r,className:(0,eL.cn)("px-2 py-1.5 text-sm font-semibold",e),...t})).displayName=eA.Label.displayName;let eV=n.forwardRef(({className:e,children:t,...r},n)=>(0,o.jsxs)(eA.Item,{ref:n,className:(0,eL.cn)("focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...r,children:[(0,o.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,o.jsx)(eA.ItemIndicator,{children:(0,o.jsx)(eI.Check,{className:"h-4 w-4"})})}),(0,o.jsx)(eA.ItemText,{children:t})]}));eV.displayName=eA.Item.displayName,n.forwardRef(({className:e,...t},r)=>(0,o.jsx)(eA.Separator,{ref:r,className:(0,eL.cn)("bg-muted -mx-1 my-1 h-px",e),...t})).displayName=eA.Separator.displayName,e.s(["Select",()=>eH,"SelectContent",()=>e_,"SelectItem",()=>eV,"SelectTrigger",()=>ez,"SelectValue",()=>eO],47373)}]);
@@ -1,4 +1,4 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/ed3a602003bcb31b.js","static/chunks/84a181ff3270fd9f.js","static/chunks/cfe4dc9904fcfddb.js","static/chunks/4b6cc9f65260f2bd.js","static/chunks/d4d8f0a137bd2eb4.js"],runtimeModuleIds:[80535]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=(self.TURBOPACK_CHUNK_SUFFIX??document?.currentScript?.getAttribute?.("src")?.replace(/^(.*(?=\?)|^.*$)/,""))||"",n=new WeakMap;function o(e,t){this.m=e,this.e=t}let l=o.prototype,i=Object.prototype.hasOwnProperty,s="u">typeof Symbol&&Symbol.toStringTag;function u(e,t,r){i.call(e,t)||Object.defineProperty(e,t,r)}function c(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function f(e,t){u(e,"__esModule",{value:!0}),s&&u(e,s,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)u(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?u(e,n,{get:o,set:t[r++],enumerable:!0}):u(e,n,{get:o,enumerable:!0})}Object.seal(e)}l.s=function(e,t){let r,n;null!=t?n=(r=c(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,f(n,e)},l.j=function(e,t){var r,o;let l,s,u;null!=t?s=(l=c(this.c,t)).exports:(l=this.m,s=this.e);let a=(r=l,o=s,(u=n.get(r))||(n.set(r,u=[]),r.exports=r.namespaceObject=new Proxy(o,{get(e,t){if(i.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of u){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of u)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),u);"object"==typeof e&&null!==e&&a.push(e)},l.v=function(e,t){(null!=t?c(this.c,t):this.m).exports=e},l.n=function(e,t){let r;(r=null!=t?c(this.c,t):this.m).exports=r.namespaceObject=e};let p=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,h=[null,p({}),p([]),p(p)];function d(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!h.includes(t);t=p(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),f(t,n),t}function m(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=d(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function b(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function y(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}l.i=m,l.A=function(e){return this.r(e)(m.bind(this))},l.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},l.r=function(e){return B(e,this.m).exports},l.f=function(e){function t(t){if(t=b(t),i.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=b(t),i.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let O=Symbol("turbopack queues"),g=Symbol("turbopack exports"),w=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}l.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=y(),u=Object.assign(s,{[g]:r.exports,[O]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),c={get:()=>u,set(e){e!==u&&(u[g]=e)}};Object.defineProperty(r,"exports",c),Object.defineProperty(r,"namespaceObject",c),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(O in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[g]:{},[O]:e=>e(t)};return e.then(e=>{r[g]=e,C(t)},e=>{r[w]=e,C(t)}),r}}return{[g]:e,[O]:()=>{}}}),r=()=>t.map(e=>{if(e[w])throw e[w];return e[g]}),{promise:l,resolve:i}=y(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[O](u)),s.queueCount?l:r()},function(e){e?i(u[w]=e):l(u[g]),C(n)}),n&&-1===n.status&&(n.status=0)};let U=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}U.prototype=URL.prototype,l.U=U,l.z=function(e){throw Error("dynamic usage of require is not supported")},l.g=globalThis;let R=o.prototype;var k,_=((k=_||{})[k.Runtime=0]="Runtime",k[k.Parent=1]="Parent",k[k.Update=2]="Update",k);let v=new Map;l.M=v;let $=new Map,P=new Map;async function S(e,t,r){let n;if("string"==typeof r)return E(e,t,K(r));let o=r.included||[],l=o.map(e=>!!v.has(e)||$.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>P.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)P.has(e)||r.add(e);for(let n of r){let r=E(e,t,K(n));P.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=E(e,t,K(r.path)),i))P.has(o)||P.set(o,n)}for(let e of o)$.has(e)||$.set(e,n);await n}R.l=function(e){return S(1,this.m.id,e)};let T=Promise.resolve(void 0),A=new WeakMap;function E(t,r,n){let o=e.loadChunkCached(t,n),l=A.get(o);if(void 0===l){let e=A.set.bind(A,o,T);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),A.set(o,l)}return l}function K(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}R.L=function(e){return E(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/40b6bcf1a2de4a0f.js","static/chunks/c7e793951b20a67f.js","static/chunks/4b6cc9f65260f2bd.js","static/chunks/cfe4dc9904fcfddb.js","static/chunks/d4d8f0a137bd2eb4.js"],runtimeModuleIds:[80535]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=(self.TURBOPACK_CHUNK_SUFFIX??document?.currentScript?.getAttribute?.("src")?.replace(/^(.*(?=\?)|^.*$)/,""))||"",n=new WeakMap;function o(e,t){this.m=e,this.e=t}let l=o.prototype,i=Object.prototype.hasOwnProperty,s="u">typeof Symbol&&Symbol.toStringTag;function u(e,t,r){i.call(e,t)||Object.defineProperty(e,t,r)}function c(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function f(e,t){u(e,"__esModule",{value:!0}),s&&u(e,s,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)u(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?u(e,n,{get:o,set:t[r++],enumerable:!0}):u(e,n,{get:o,enumerable:!0})}Object.seal(e)}l.s=function(e,t){let r,n;null!=t?n=(r=c(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,f(n,e)},l.j=function(e,t){var r,o;let l,s,u;null!=t?s=(l=c(this.c,t)).exports:(l=this.m,s=this.e);let a=(r=l,o=s,(u=n.get(r))||(n.set(r,u=[]),r.exports=r.namespaceObject=new Proxy(o,{get(e,t){if(i.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of u){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of u)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),u);"object"==typeof e&&null!==e&&a.push(e)},l.v=function(e,t){(null!=t?c(this.c,t):this.m).exports=e},l.n=function(e,t){let r;(r=null!=t?c(this.c,t):this.m).exports=r.namespaceObject=e};let p=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,h=[null,p({}),p([]),p(p)];function d(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!h.includes(t);t=p(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),f(t,n),t}function m(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=d(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function b(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function y(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}l.i=m,l.A=function(e){return this.r(e)(m.bind(this))},l.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},l.r=function(e){return B(e,this.m).exports},l.f=function(e){function t(t){if(t=b(t),i.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=b(t),i.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let O=Symbol("turbopack queues"),g=Symbol("turbopack exports"),w=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}l.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=y(),u=Object.assign(s,{[g]:r.exports,[O]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),c={get:()=>u,set(e){e!==u&&(u[g]=e)}};Object.defineProperty(r,"exports",c),Object.defineProperty(r,"namespaceObject",c),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(O in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[g]:{},[O]:e=>e(t)};return e.then(e=>{r[g]=e,C(t)},e=>{r[w]=e,C(t)}),r}}return{[g]:e,[O]:()=>{}}}),r=()=>t.map(e=>{if(e[w])throw e[w];return e[g]}),{promise:l,resolve:i}=y(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[O](u)),s.queueCount?l:r()},function(e){e?i(u[w]=e):l(u[g]),C(n)}),n&&-1===n.status&&(n.status=0)};let U=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}U.prototype=URL.prototype,l.U=U,l.z=function(e){throw Error("dynamic usage of require is not supported")},l.g=globalThis;let R=o.prototype;var k,_=((k=_||{})[k.Runtime=0]="Runtime",k[k.Parent=1]="Parent",k[k.Update=2]="Update",k);let v=new Map;l.M=v;let $=new Map,P=new Map;async function S(e,t,r){let n;if("string"==typeof r)return E(e,t,K(r));let o=r.included||[],l=o.map(e=>!!v.has(e)||$.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>P.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)P.has(e)||r.add(e);for(let n of r){let r=E(e,t,K(n));P.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=E(e,t,K(r.path)),i))P.has(o)||P.set(o,n)}for(let e of o)$.has(e)||$.set(e,n);await n}R.l=function(e){return S(1,this.m.id,e)};let T=Promise.resolve(void 0),A=new WeakMap;function E(t,r,n){let o=e.loadChunkCached(t,n),l=A.get(o);if(void 0===l){let e=A.set.bind(A,o,T);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),A.set(o,l)}return l}function K(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}R.L=function(e){return E(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
2
2
  self.TURBOPACK_CHUNK_SUFFIX = ${JSON.stringify(r)};
3
3
  self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(K),null,2)};
4
4
  importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let x=/\.js(?:\?[^#]*)?(?:#.*)?$/,N=/\.css(?:\?[^#]*)?(?:#.*)?$/;function M(e){return N.test(e)}l.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},l.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let L={};l.c=L;let B=(e,t)=>{let r=L[e];if(r){if(r.error)throw r.error;return r}return q(e,_.Parent,t.id)};function q(e,t,r){let n=v.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let l=a(e),i=l.exports;L[e]=l;let s=new o(l,i);try{n(s,l,i)}catch(e){throw l.error=e,e}return l.namespaceObject&&l.exports!==l.namespaceObject&&d(l.exports,l.namespaceObject),l}function I(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("u">typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o<e.length;){let t=e[o],n=o+1;for(;n<e.length&&"function"!=typeof e[n];)n++;if(n===e.length)throw Error("malformed chunk format, expected a factory function");if(!r.has(t)){let l=e[n];for(Object.defineProperty(l,"name",{value:"module evaluation"});o<n;o++)t=e[o],r.set(t,l)}o=n+1}}(r,0,v)),e.registerChunk(o,n)}let W=new Map;function H(e){let t=W.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},W.set(e,t)}return t}e={async registerChunk(e,t){if(H(K(e)).resolve(),null!=t){for(let e of t.otherChunks)H(K("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(t=>S(0,e,t))),t.runtimeModuleIds.length>0)for(let r of t.runtimeModuleIds)!function(e,t){let r=L[t];if(r){if(r.error)throw r.error;return}q(t,_.Runtime,e)}(e,r)}},loadChunkCached:(e,t)=>(function(e,t){let r=H(t);if(r.loadingStarted)return r.promise;if(e===_.Runtime)return r.loadingStarted=!0,M(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(M(t));else if(x.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(TURBOPACK_WORKER_LOCATION+t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(M(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(x.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(K(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(K(r));return await WebAssembly.compileStreaming(o)}};let F=globalThis.TURBOPACK;globalThis.TURBOPACK={push:I},F.forEach(I)})();
@@ -1,3 +0,0 @@
1
- module.exports=[62144,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(41872),l=a.i(9959),m=a.i(23504),n=a.i(27900),o=a.i(50845),p=a.i(26604),q=a.i(49560),r=a.i(39353),s=a.i(29207);a.s([],31700),a.i(31700),a.s(["0021fc447e8239b08d23070a94615c95fec08e1d07",()=>b.pickFolder,"0065a5fd1a9a83442636d2d17b947244d55764c22e",()=>m.getAllAgentModels,"00b4876b078f3db56f37606da063e57e76b30b0450",()=>l.checkAgentAuth,"00eed2fff77d86485b6ec603aec4bf3f24cd3296d8",()=>k.isAgentSetupComplete,"400c501665c705abb76e27fd0100390d2b7c1fcf21",()=>i.openShell,"40153238aae7efec7f817741ab96cee2d842cb26fc",()=>d.deployFeature,"403cac67fbeb46e97d931c72b2041d616b20c59eb5",()=>r.deleteRepository,"404015156620bc08990d2e3be39a4eccc845f9613d",()=>h.openIde,"404ad77a7e38bcd0ffa7217f2dfc77f7d57466e77f",()=>e.deployRepository,"406a541bb59fb1ff09fc8497412ca49d56666e985a",()=>s.getFeatureMetadata,"4086ec109541714731e6bed28313d7f9b0ac787688",()=>j.openFolder,"40b1fe0ef85172b5e33fc7629389bc4645bfcb7a91",()=>q.addRepository,"40b4158adc09529ae5f7b89b4c3362c220f2dc192a",()=>g.getDeploymentStatus,"40d06524b7c193477469e44abc84431d5e997c7be7",()=>c.getDeploymentLogs,"40d831444b8fb605a36675c9f921c044b671a1e3fb",()=>f.stopDeployment,"40f435f16e6507b29a9cda57fc4fdfaa8a76a2f1c3",()=>p.resumeFeature,"60552e964ab2ba3d1e9e91ff76520d0ad37444b9cf",()=>n.updateAgentAndModel,"70a85e01dfd1bdf135f5f50ea93b6e66942719b1ba",()=>o.deleteFeature],62144)}];
2
-
3
- //# sourceMappingURL=8ba4b_server_app_%28dashboard%29_%40drawer_repository_%5BrepositoryId%5D_page_actions_a1104008.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/repository/%5BrepositoryId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {pickFolder as '0021fc447e8239b08d23070a94615c95fec08e1d07'} from 'ACTIONS_MODULE0'\nexport {getDeploymentLogs as '40d06524b7c193477469e44abc84431d5e997c7be7'} from 'ACTIONS_MODULE1'\nexport {deployFeature as '40153238aae7efec7f817741ab96cee2d842cb26fc'} from 'ACTIONS_MODULE2'\nexport {deployRepository as '404ad77a7e38bcd0ffa7217f2dfc77f7d57466e77f'} from 'ACTIONS_MODULE3'\nexport {stopDeployment as '40d831444b8fb605a36675c9f921c044b671a1e3fb'} from 'ACTIONS_MODULE4'\nexport {getDeploymentStatus as '40b4158adc09529ae5f7b89b4c3362c220f2dc192a'} from 'ACTIONS_MODULE5'\nexport {openIde as '404015156620bc08990d2e3be39a4eccc845f9613d'} from 'ACTIONS_MODULE6'\nexport {openShell as '400c501665c705abb76e27fd0100390d2b7c1fcf21'} from 'ACTIONS_MODULE7'\nexport {openFolder as '4086ec109541714731e6bed28313d7f9b0ac787688'} from 'ACTIONS_MODULE8'\nexport {isAgentSetupComplete as '00eed2fff77d86485b6ec603aec4bf3f24cd3296d8'} from 'ACTIONS_MODULE9'\nexport {checkAgentAuth as '00b4876b078f3db56f37606da063e57e76b30b0450'} from 'ACTIONS_MODULE10'\nexport {getAllAgentModels as '0065a5fd1a9a83442636d2d17b947244d55764c22e'} from 'ACTIONS_MODULE11'\nexport {updateAgentAndModel as '60552e964ab2ba3d1e9e91ff76520d0ad37444b9cf'} from 'ACTIONS_MODULE12'\nexport {deleteFeature as '70a85e01dfd1bdf135f5f50ea93b6e66942719b1ba'} from 'ACTIONS_MODULE13'\nexport {resumeFeature as '40f435f16e6507b29a9cda57fc4fdfaa8a76a2f1c3'} from 'ACTIONS_MODULE14'\nexport {addRepository as '40b1fe0ef85172b5e33fc7629389bc4645bfcb7a91'} from 'ACTIONS_MODULE15'\nexport {deleteRepository as '403cac67fbeb46e97d931c72b2041d616b20c59eb5'} from 'ACTIONS_MODULE16'\nexport {getFeatureMetadata as '406a541bb59fb1ff09fc8497412ca49d56666e985a'} from 'ACTIONS_MODULE17'\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,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +0,0 @@
1
- module.exports=[62354,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(41872),l=a.i(9959),m=a.i(23504),n=a.i(27900),o=a.i(50845),p=a.i(26604),q=a.i(49560),r=a.i(39353),s=a.i(29207);a.s([],95582),a.i(95582),a.s(["0021fc447e8239b08d23070a94615c95fec08e1d07",()=>b.pickFolder,"0065a5fd1a9a83442636d2d17b947244d55764c22e",()=>m.getAllAgentModels,"00b4876b078f3db56f37606da063e57e76b30b0450",()=>l.checkAgentAuth,"00eed2fff77d86485b6ec603aec4bf3f24cd3296d8",()=>k.isAgentSetupComplete,"400c501665c705abb76e27fd0100390d2b7c1fcf21",()=>i.openShell,"40153238aae7efec7f817741ab96cee2d842cb26fc",()=>d.deployFeature,"403cac67fbeb46e97d931c72b2041d616b20c59eb5",()=>r.deleteRepository,"404015156620bc08990d2e3be39a4eccc845f9613d",()=>h.openIde,"404ad77a7e38bcd0ffa7217f2dfc77f7d57466e77f",()=>e.deployRepository,"406a541bb59fb1ff09fc8497412ca49d56666e985a",()=>s.getFeatureMetadata,"4086ec109541714731e6bed28313d7f9b0ac787688",()=>j.openFolder,"40b1fe0ef85172b5e33fc7629389bc4645bfcb7a91",()=>q.addRepository,"40b4158adc09529ae5f7b89b4c3362c220f2dc192a",()=>g.getDeploymentStatus,"40d06524b7c193477469e44abc84431d5e997c7be7",()=>c.getDeploymentLogs,"40d831444b8fb605a36675c9f921c044b671a1e3fb",()=>f.stopDeployment,"40f435f16e6507b29a9cda57fc4fdfaa8a76a2f1c3",()=>p.resumeFeature,"60552e964ab2ba3d1e9e91ff76520d0ad37444b9cf",()=>n.updateAgentAndModel,"70a85e01dfd1bdf135f5f50ea93b6e66942719b1ba",()=>o.deleteFeature],62354)}];
2
-
3
- //# sourceMappingURL=8ba4b_server_app_%28dashboard%29_repository_%5BrepositoryId%5D_page_actions_92642200.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/repository/%5BrepositoryId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {pickFolder as '0021fc447e8239b08d23070a94615c95fec08e1d07'} from 'ACTIONS_MODULE0'\nexport {getDeploymentLogs as '40d06524b7c193477469e44abc84431d5e997c7be7'} from 'ACTIONS_MODULE1'\nexport {deployFeature as '40153238aae7efec7f817741ab96cee2d842cb26fc'} from 'ACTIONS_MODULE2'\nexport {deployRepository as '404ad77a7e38bcd0ffa7217f2dfc77f7d57466e77f'} from 'ACTIONS_MODULE3'\nexport {stopDeployment as '40d831444b8fb605a36675c9f921c044b671a1e3fb'} from 'ACTIONS_MODULE4'\nexport {getDeploymentStatus as '40b4158adc09529ae5f7b89b4c3362c220f2dc192a'} from 'ACTIONS_MODULE5'\nexport {openIde as '404015156620bc08990d2e3be39a4eccc845f9613d'} from 'ACTIONS_MODULE6'\nexport {openShell as '400c501665c705abb76e27fd0100390d2b7c1fcf21'} from 'ACTIONS_MODULE7'\nexport {openFolder as '4086ec109541714731e6bed28313d7f9b0ac787688'} from 'ACTIONS_MODULE8'\nexport {isAgentSetupComplete as '00eed2fff77d86485b6ec603aec4bf3f24cd3296d8'} from 'ACTIONS_MODULE9'\nexport {checkAgentAuth as '00b4876b078f3db56f37606da063e57e76b30b0450'} from 'ACTIONS_MODULE10'\nexport {getAllAgentModels as '0065a5fd1a9a83442636d2d17b947244d55764c22e'} from 'ACTIONS_MODULE11'\nexport {updateAgentAndModel as '60552e964ab2ba3d1e9e91ff76520d0ad37444b9cf'} from 'ACTIONS_MODULE12'\nexport {deleteFeature as '70a85e01dfd1bdf135f5f50ea93b6e66942719b1ba'} from 'ACTIONS_MODULE13'\nexport {resumeFeature as '40f435f16e6507b29a9cda57fc4fdfaa8a76a2f1c3'} from 'ACTIONS_MODULE14'\nexport {addRepository as '40b1fe0ef85172b5e33fc7629389bc4645bfcb7a91'} from 'ACTIONS_MODULE15'\nexport {deleteRepository as '403cac67fbeb46e97d931c72b2041d616b20c59eb5'} from 'ACTIONS_MODULE16'\nexport {getFeatureMetadata as '406a541bb59fb1ff09fc8497412ca49d56666e985a'} from 'ACTIONS_MODULE17'\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,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +0,0 @@
1
- module.exports=[31747,a=>{"use strict";var b=a.i(81719),c=a.i(14703),d=a.i(79372);function e(a,e,f){let g=(e?.status===b.AgentRunStatus.running||e?.status===b.AgentRunStatus.pending)&&e?.pid?(0,d.isProcessAlive)(e.pid):void 0;return{name:a.name,description:a.description??a.slug,featureId:a.id,lifecycle:(0,c.deriveLifecycle)(a,e),repositoryPath:a.repositoryPath,branch:a.branch,specPath:a.specPath,state:(0,c.deriveNodeState)(a,e,void 0!==g?{isPidAlive:g}:void 0),progress:(0,c.deriveProgress)(a),summary:a.description,userQuery:a.userQuery,createdAt:a.createdAt instanceof Date?a.createdAt.getTime():a.createdAt,...a.fast&&{fastMode:!0},approvalGates:a.approvalGates,push:a.push,openPr:a.openPr,...f?.enableEvidence!=null&&{enableEvidence:f.enableEvidence},...f?.commitEvidence!=null&&{commitEvidence:f.commitEvidence},...f?.repositoryName&&{repositoryName:f.repositoryName},...f?.baseBranch&&{baseBranch:f.baseBranch},...f?.oneLiner&&{oneLiner:f.oneLiner},...f?.remoteUrl&&{remoteUrl:f.remoteUrl},...e?.agentType&&{agentType:e.agentType},...e?.modelId&&{modelId:e.modelId},...e?.error&&{errorMessage:e.error},...null!=a.plan&&{hasPlan:!0},...a.pr&&{pr:{url:a.pr.url,number:a.pr.number,status:a.pr.status,ciStatus:a.pr.ciStatus,commitHash:a.pr.commitHash,mergeable:a.pr.mergeable}}}}a.s(["buildFeatureNodeData",()=>e])},61402,76052,13008,74607,6542,740,12104,54433,a=>{"use strict";var b=a.i(92658),c=a.i(96380),d=a.i(81719),e=a.i(12581);let f=new Set([d.AgentRunStatus.failed,d.AgentRunStatus.interrupted]);async function g(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 g=(0,c.resolve)("IAgentRunRepository"),h=await g.findById(e.agentRunId);if(h&&f.has(h.status)){let b=(0,c.resolve)("ResumeFeatureUseCase");return await b.execute(a,{promptPrefix:"User approved. Please continue."}),{approved:!0}}let i=(0,c.resolve)("ApproveAgentRunUseCase"),j=await i.execute(e.agentRunId,b);if(!j.approved)return{approved:!1,error:j.reason};return{approved:!0}}catch(a){return{approved:!1,error:a instanceof Error?a.message:"Failed to approve feature"}}}(0,e.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"6076047d356aae3d42ca06147ea680ea0f9e026caa",null),a.s(["approveFeature",()=>g],61402);let h=new Set([d.AgentRunStatus.failed,d.AgentRunStatus.interrupted]);async function i(a,b,d){if(!a.trim())return{rejected:!1,error:"Feature id is required"};if(!b.trim())return{rejected:!1,error:"Feedback is required"};try{let e=(0,c.resolve)("IFeatureRepository"),f=await e.findById(a);if(!f)return{rejected:!1,error:"Feature not found"};if(!f.agentRunId)return{rejected:!1,error:"Feature has no agent run"};let g=(0,c.resolve)("IAgentRunRepository"),i=await g.findById(f.agentRunId);if(i&&h.has(i.status)){let d=(0,c.resolve)("ResumeFeatureUseCase");return await d.execute(a,{promptPrefix:b}),{rejected:!0,iteration:1}}let j=(0,c.resolve)("RejectAgentRunUseCase"),k=await j.execute(f.agentRunId,b,d);if(!k.rejected)return{rejected:!1,error:k.reason};return{rejected:!0,iteration:k.iteration,iterationWarning:k.iterationWarning}}catch(a){return{rejected:!1,error:a instanceof Error?a.message:"Failed to reject feature"}}}async function j(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 k(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"}}}(0,e.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"7059096416e5d4ad8872a15fad3401d2645ca232b9",null),a.s(["rejectFeature",()=>i],76052),(0,e.ensureServerEntryExports)([j]),(0,b.registerServerReference)(j,"40ff786a837d82b9e86e1848afa05715c226bdc2c1",null),a.s(["getFeatureArtifact",()=>j],13008),(0,e.ensureServerEntryExports)([k]),(0,b.registerServerReference)(k,"40e4a33f340a3f3085c15cd1a272963f24c7007395",null),a.s(["getResearchArtifact",()=>k],74607);var l=a.i(2157),m=a.i(50227),n=a.i(29918);async function o(a){if(!a.trim())return{error:"Feature id is required"};try{let b,d,e=(0,c.resolve)("IFeatureRepository"),f=await e.findById(a);if(!f)return{error:"Feature not found"};let g=f.pr?{url:f.pr.url,number:f.pr.number,status:f.pr.status,commitHash:f.pr.commitHash,ciStatus:f.pr.ciStatus,mergeable:f.pr.mergeable}:void 0,h=f.branch?{source:f.branch,target:"main"}:void 0,i=f.worktreePath??(f.repositoryPath&&f.branch?(0,n.computeWorktreePath)(f.repositoryPath,f.branch):null);if(i)try{let c=(0,m.dirname)((0,m.dirname)(i)),e=(0,m.join)(c,"evidence",a),f=(0,m.join)(e,"manifest.json");(0,l.existsSync)(f)&&(b=JSON.parse((0,l.readFileSync)(f,"utf-8")),d=i)}catch{}if(!i)return{pr:g,branch:h,evidence:b,evidenceBasePath:d,warning:g?void 0:"No PR or diff data available"};try{let a=(0,c.resolve)("IGitPrService"),[e,f]=await Promise.all([a.getPrDiffSummary(i,"main"),a.getFileDiffs(i,"main").catch(()=>void 0)]);return{pr:g,branch:h,diffSummary:e,fileDiffs:f,evidence:b,evidenceBasePath:d}}catch{return{pr:g,branch:h,evidence:b,evidenceBasePath:d,warning:"Diff statistics unavailable"}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load merge review data"}}}async function p(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IPhaseTimingRepository"),d=(await b.findByFeatureId(a)).map(a=>({agentRunId:a.agentRunId,phase:a.phase,startedAt:a.startedAt,completedAt:a.completedAt,durationMs:null!=a.durationMs?Number(a.durationMs):void 0,waitingApprovalAt:a.waitingApprovalAt,approvalWaitMs:null!=a.approvalWaitMs?Number(a.approvalWaitMs):void 0})),e=await q(a);return{timings:d,rejectionFeedback:e}}catch(a){return{error:a instanceof Error?a.message:"Failed to load phase timings"}}}async function q(b){try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(b);if(!e?.specPath)return[];let{readFileSync:f}=await a.A(6714),{join:g}=await a.A(11105),h=(await a.A(29718)).default,i=f(g(e.specPath,"spec.yaml"),"utf-8"),j=h.load(i);if(!Array.isArray(j?.rejectionFeedback))return[];return j.rejectionFeedback.map(a=>({iteration:Number(a.iteration??1),message:String(a.message??""),phase:a.phase?String(a.phase):void 0,timestamp:a.timestamp?String(a.timestamp):void 0,attachments:Array.isArray(a.attachments)?a.attachments.map(String):void 0}))}catch{return[]}}async function r(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IFeatureRepository"),d=await b.findById(a);if(!d)return{error:"Feature not found"};if(!d.plan)return{plan:void 0};return{plan:{state:d.plan.state,overview:d.plan.overview,tasks:d.plan.tasks.map(a=>({title:a.title??"",description:a.description??"",state:a.state,actionItems:(a.actionItems??[]).map(a=>({name:a.name,description:a.description,acceptanceCriteria:(a.acceptanceCriteria??[]).map(a=>({description:a.description,verified:a.verified}))}))}))}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature plan"}}}(0,e.ensureServerEntryExports)([o]),(0,b.registerServerReference)(o,"40fc07bf0a52d9b960173a14a86357ce3f96ed8495",null),a.s(["getMergeReviewData",()=>o],6542),(0,e.ensureServerEntryExports)([p]),(0,b.registerServerReference)(p,"40b6635762d07dd7c419169d764a3992e16c227c04",null),a.s(["getFeaturePhaseTimings",()=>p],740),(0,e.ensureServerEntryExports)([r]),(0,b.registerServerReference)(r,"403bc90c54ddd6784b93f9645a66787df22e996c31",null),a.s(["getFeaturePlan",()=>r],12104);var s=a.i(31747),t=a.i(33244);async function u(a){try{let b=(0,c.resolve)("IFeatureRepository"),d=(0,c.resolve)("IAgentRunRepository"),e=(0,c.resolve)("IRepositoryRepository"),f=(0,c.resolve)("IGitPrService"),g=(0,c.resolve)("GetFeatureArtifactUseCase"),h=await b.findById(a);if(!h)return null;let i=h.agentRunId?await d.findById(h.agentRunId):null,[j,k,l,m]=await Promise.all([e.findByPath(h.repositoryPath).catch(()=>null),f.getDefaultBranch(h.repositoryPath).catch(()=>"main"),g.execute(a).catch(()=>null),f.getRemoteUrl(h.repositoryPath).catch(()=>null)]),{workflow:n}=(0,t.getSettings)();return(0,s.buildFeatureNodeData)(h,i,{repositoryName:j?.name,baseBranch:k,oneLiner:l?.oneLiner,remoteUrl:m??void 0,enableEvidence:n.enableEvidence,commitEvidence:n.commitEvidence})}catch{return null}}(0,e.ensureServerEntryExports)([u]),(0,b.registerServerReference)(u,"4039344881c2f66a87ab585bb801a8503a0041eec6",null),a.s(["getFeatureDrawerData",()=>u],54433)},79810,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(41872),l=a.i(9959),m=a.i(23504),n=a.i(27900),o=a.i(50845),p=a.i(26604),q=a.i(49560),r=a.i(39353),s=a.i(29207),t=a.i(61402),u=a.i(76052),v=a.i(13008),w=a.i(74607),x=a.i(6542),y=a.i(740),z=a.i(12104),A=a.i(54433);a.s([],64361),a.i(64361),a.s(["0021fc447e8239b08d23070a94615c95fec08e1d07",()=>b.pickFolder,"0065a5fd1a9a83442636d2d17b947244d55764c22e",()=>m.getAllAgentModels,"00b4876b078f3db56f37606da063e57e76b30b0450",()=>l.checkAgentAuth,"00eed2fff77d86485b6ec603aec4bf3f24cd3296d8",()=>k.isAgentSetupComplete,"400c501665c705abb76e27fd0100390d2b7c1fcf21",()=>i.openShell,"40153238aae7efec7f817741ab96cee2d842cb26fc",()=>d.deployFeature,"4039344881c2f66a87ab585bb801a8503a0041eec6",()=>A.getFeatureDrawerData,"403bc90c54ddd6784b93f9645a66787df22e996c31",()=>z.getFeaturePlan,"403cac67fbeb46e97d931c72b2041d616b20c59eb5",()=>r.deleteRepository,"404015156620bc08990d2e3be39a4eccc845f9613d",()=>h.openIde,"404ad77a7e38bcd0ffa7217f2dfc77f7d57466e77f",()=>e.deployRepository,"406a541bb59fb1ff09fc8497412ca49d56666e985a",()=>s.getFeatureMetadata,"4086ec109541714731e6bed28313d7f9b0ac787688",()=>j.openFolder,"40b1fe0ef85172b5e33fc7629389bc4645bfcb7a91",()=>q.addRepository,"40b4158adc09529ae5f7b89b4c3362c220f2dc192a",()=>g.getDeploymentStatus,"40b6635762d07dd7c419169d764a3992e16c227c04",()=>y.getFeaturePhaseTimings,"40d06524b7c193477469e44abc84431d5e997c7be7",()=>c.getDeploymentLogs,"40d831444b8fb605a36675c9f921c044b671a1e3fb",()=>f.stopDeployment,"40e4a33f340a3f3085c15cd1a272963f24c7007395",()=>w.getResearchArtifact,"40f435f16e6507b29a9cda57fc4fdfaa8a76a2f1c3",()=>p.resumeFeature,"40fc07bf0a52d9b960173a14a86357ce3f96ed8495",()=>x.getMergeReviewData,"40ff786a837d82b9e86e1848afa05715c226bdc2c1",()=>v.getFeatureArtifact,"60552e964ab2ba3d1e9e91ff76520d0ad37444b9cf",()=>n.updateAgentAndModel,"6076047d356aae3d42ca06147ea680ea0f9e026caa",()=>t.approveFeature,"7059096416e5d4ad8872a15fad3401d2645ca232b9",()=>u.rejectFeature,"70a85e01dfd1bdf135f5f50ea93b6e66942719b1ba",()=>o.deleteFeature],79810)},6714,a=>{a.v(a=>Promise.resolve().then(()=>a(2157)))},11105,a=>{a.v(a=>Promise.resolve().then(()=>a(50227)))},29718,a=>{a.v(b=>Promise.all(["server/chunks/ssr/90b01_js-yaml_dist_js-yaml_mjs_c897fb57._.js"].map(b=>a.l(b))).then(()=>b(32996)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__039967e3._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/build-feature-node-data.ts","../../../../../../../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/app/actions/get-feature-phase-timings.ts","../../../../../../../src/presentation/web/app/actions/get-feature-plan.ts","../../../../../../../src/presentation/web/app/actions/get-feature-drawer-data.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/feature/%5BfeatureId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["import type { Feature, AgentRun } from '@shepai/core/domain/generated/output';\nimport { AgentRunStatus } from '@shepai/core/domain/generated/output';\nimport {\n deriveNodeState,\n deriveProgress,\n deriveLifecycle,\n} from '@/components/common/feature-node/derive-feature-state';\nimport { isProcessAlive } from '@shepai/core/infrastructure/services/process/is-process-alive';\nimport type { FeatureNodeData } from '@/components/common/feature-node';\n\nexport interface BuildFeatureNodeDataOptions {\n baseBranch?: string;\n repositoryName?: string;\n /** AI-generated one-liner from FeatureArtifact */\n oneLiner?: string;\n /** Remote URL for the repository (HTTPS) */\n remoteUrl?: string;\n /** Whether evidence collection is enabled (global workflow setting) */\n enableEvidence?: boolean;\n /** Whether evidence is committed to the PR body (global workflow setting) */\n commitEvidence?: boolean;\n}\n\n/**\n * Builds a FeatureNodeData object from a Feature entity and optional AgentRun.\n * This is the single-feature version of the logic in `buildGraphNodes`.\n */\nexport function buildFeatureNodeData(\n feature: Feature,\n run: AgentRun | null,\n options?: BuildFeatureNodeDataOptions\n): FeatureNodeData {\n // Detect crashed agents: DB says running/pending but PID is dead\n const isActive = run?.status === AgentRunStatus.running || run?.status === AgentRunStatus.pending;\n const pidAlive = isActive && run?.pid ? isProcessAlive(run.pid) : undefined;\n\n return {\n name: feature.name,\n description: feature.description ?? feature.slug,\n featureId: feature.id,\n lifecycle: deriveLifecycle(feature, run),\n repositoryPath: feature.repositoryPath,\n branch: feature.branch,\n specPath: feature.specPath,\n state: deriveNodeState(\n feature,\n run,\n pidAlive !== undefined ? { isPidAlive: pidAlive } : undefined\n ),\n progress: deriveProgress(feature),\n summary: feature.description,\n userQuery: feature.userQuery,\n createdAt: feature.createdAt instanceof Date ? feature.createdAt.getTime() : feature.createdAt,\n ...(feature.fast && { fastMode: true }),\n approvalGates: feature.approvalGates,\n push: feature.push,\n openPr: feature.openPr,\n ...(options?.enableEvidence != null && { enableEvidence: options.enableEvidence }),\n ...(options?.commitEvidence != null && { commitEvidence: options.commitEvidence }),\n ...(options?.repositoryName && { repositoryName: options.repositoryName }),\n ...(options?.baseBranch && { baseBranch: options.baseBranch }),\n ...(options?.oneLiner && { oneLiner: options.oneLiner }),\n ...(options?.remoteUrl && { remoteUrl: options.remoteUrl }),\n ...(run?.agentType && { agentType: run.agentType as FeatureNodeData['agentType'] }),\n ...(run?.modelId && { modelId: run.modelId }),\n ...(run?.error && { errorMessage: run.error }),\n ...(feature.plan != null && { hasPlan: true }),\n ...(feature.pr && {\n pr: {\n url: feature.pr.url,\n number: feature.pr.number,\n status: feature.pr.status,\n ciStatus: feature.pr.ciStatus,\n commitHash: feature.pr.commitHash,\n mergeable: feature.pr.mergeable,\n },\n }),\n };\n}\n","'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 { ResumeFeatureUseCase } from '@shepai/core/application/use-cases/features/resume-feature.use-case';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\nimport type { IAgentRunRepository } from '@shepai/core/application/ports/output/agents/agent-run-repository.interface';\nimport type { PrdApprovalPayload } from '@shepai/core/domain/generated/output';\nimport { AgentRunStatus } from '@shepai/core/domain/generated/output';\n\nconst ERROR_STATUSES = new Set<string>([AgentRunStatus.failed, AgentRunStatus.interrupted]);\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 runRepo = resolve<IAgentRunRepository>('IAgentRunRepository');\n const run = await runRepo.findById(feature.agentRunId);\n\n if (run && ERROR_STATUSES.has(run.status)) {\n const resumeUseCase = resolve<ResumeFeatureUseCase>('ResumeFeatureUseCase');\n await resumeUseCase.execute(featureId, { promptPrefix: 'User approved. Please continue.' });\n return { approved: true };\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 { ResumeFeatureUseCase } from '@shepai/core/application/use-cases/features/resume-feature.use-case';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\nimport type { IAgentRunRepository } from '@shepai/core/application/ports/output/agents/agent-run-repository.interface';\nimport { AgentRunStatus } from '@shepai/core/domain/generated/output';\n\nconst ERROR_STATUSES = new Set<string>([AgentRunStatus.failed, AgentRunStatus.interrupted]);\n\nexport async function rejectFeature(\n featureId: string,\n feedback: string,\n attachments?: 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 runRepo = resolve<IAgentRunRepository>('IAgentRunRepository');\n const run = await runRepo.findById(feature.agentRunId);\n\n if (run && ERROR_STATUSES.has(run.status)) {\n const resumeUseCase = resolve<ResumeFeatureUseCase>('ResumeFeatureUseCase');\n await resumeUseCase.execute(featureId, { promptPrefix: feedback });\n return { rejected: true, iteration: 1 };\n }\n\n const rejectUseCase = resolve<RejectAgentRunUseCase>('RejectAgentRunUseCase');\n const result = await rejectUseCase.execute(feature.agentRunId, feedback, attachments);\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 { readFileSync, existsSync } from 'node:fs';\nimport { join, dirname } from 'node:path';\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 {\n MergeReviewData,\n MergeReviewEvidence,\n} from '@/components/common/merge-review/merge-review-config';\nimport { computeWorktreePath } from '@shepai/core/infrastructure/services/ide-launchers/compute-worktree-path';\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 mergeable: feature.pr.mergeable,\n }\n : undefined;\n\n const branch = feature.branch ? { source: feature.branch, target: 'main' } : undefined;\n\n const worktreePath =\n feature.worktreePath ??\n (feature.repositoryPath && feature.branch\n ? computeWorktreePath(feature.repositoryPath, feature.branch)\n : null);\n\n // Load evidence manifest (best-effort)\n let evidence: MergeReviewEvidence[] | undefined;\n let evidenceBasePath: string | undefined;\n if (worktreePath) {\n try {\n // Worktree path: ~/.shep/repos/<hash>/wt/<slug>\n // Evidence manifest: ~/.shep/repos/<hash>/evidence/<featureId>/manifest.json\n const repoHashDir = dirname(dirname(worktreePath));\n const evidenceDir = join(repoHashDir, 'evidence', featureId);\n const manifestPath = join(evidenceDir, 'manifest.json');\n if (existsSync(manifestPath)) {\n evidence = JSON.parse(readFileSync(manifestPath, 'utf-8'));\n evidenceBasePath = worktreePath;\n }\n } catch {\n // Evidence unavailable — not critical\n }\n }\n\n if (!worktreePath) {\n return {\n pr,\n branch,\n evidence,\n evidenceBasePath,\n warning: pr ? undefined : 'No PR or diff data available',\n };\n }\n\n try {\n const gitPrService = resolve<IGitPrService>('IGitPrService');\n const [diffSummary, fileDiffs] = await Promise.all([\n gitPrService.getPrDiffSummary(worktreePath, 'main'),\n gitPrService.getFileDiffs(worktreePath, 'main').catch(() => undefined),\n ]);\n return { pr, branch, diffSummary, fileDiffs, evidence, evidenceBasePath };\n } catch {\n return {\n pr,\n branch,\n evidence,\n evidenceBasePath,\n warning: 'Diff statistics unavailable',\n };\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","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IPhaseTimingRepository } from '@shepai/core/application/ports/output/agents/phase-timing-repository.interface';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\n\nexport interface PhaseTimingData {\n agentRunId: string;\n phase: string;\n startedAt: string;\n completedAt?: string;\n durationMs?: number;\n waitingApprovalAt?: string;\n approvalWaitMs?: number;\n}\n\nexport interface RejectionFeedbackData {\n iteration: number;\n message: string;\n phase?: string;\n timestamp?: string;\n attachments?: string[];\n}\n\ntype GetPhaseTimingsResult =\n | { timings: PhaseTimingData[]; rejectionFeedback: RejectionFeedbackData[] }\n | { error: string };\n\nexport async function getFeaturePhaseTimings(featureId: string): Promise<GetPhaseTimingsResult> {\n if (!featureId.trim()) {\n return { error: 'Feature id is required' };\n }\n\n try {\n const repo = resolve<IPhaseTimingRepository>('IPhaseTimingRepository');\n const phaseTimings = await repo.findByFeatureId(featureId);\n\n const timings: PhaseTimingData[] = phaseTimings.map((t) => ({\n agentRunId: t.agentRunId,\n phase: t.phase,\n startedAt: t.startedAt,\n completedAt: t.completedAt,\n durationMs: t.durationMs != null ? Number(t.durationMs) : undefined,\n waitingApprovalAt: t.waitingApprovalAt,\n approvalWaitMs: t.approvalWaitMs != null ? Number(t.approvalWaitMs) : undefined,\n }));\n\n // Read rejection feedback from spec.yaml\n const rejectionFeedback = await readRejectionFeedback(featureId);\n\n return { timings, rejectionFeedback };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load phase timings';\n return { error: message };\n }\n}\n\nasync function readRejectionFeedback(featureId: string): Promise<RejectionFeedbackData[]> {\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n if (!feature?.specPath) return [];\n\n const { readFileSync } = await import('node:fs');\n const { join } = await import('node:path');\n const yaml = (await import('js-yaml')).default;\n\n const specContent = readFileSync(join(feature.specPath, 'spec.yaml'), 'utf-8');\n const spec = yaml.load(specContent) as Record<string, unknown>;\n\n if (!Array.isArray(spec?.rejectionFeedback)) return [];\n\n return (spec.rejectionFeedback as Record<string, unknown>[]).map((entry) => ({\n iteration: Number(entry.iteration ?? 1),\n message: String(entry.message ?? ''),\n phase: entry.phase ? String(entry.phase) : undefined,\n timestamp: entry.timestamp ? String(entry.timestamp) : undefined,\n attachments: Array.isArray(entry.attachments)\n ? (entry.attachments as unknown[]).map(String)\n : undefined,\n }));\n } catch {\n return [];\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\n\nexport interface AcceptanceCriterionData {\n description: string;\n verified: boolean;\n}\n\nexport interface ActionItemData {\n name: string;\n description: string;\n acceptanceCriteria: AcceptanceCriterionData[];\n}\n\nexport interface PlanTaskData {\n title: string;\n description: string;\n state: string;\n actionItems: ActionItemData[];\n}\n\nexport interface PlanData {\n state: string;\n overview: string;\n tasks: PlanTaskData[];\n}\n\ntype GetPlanResult = { plan: PlanData | undefined } | { error: string };\n\nexport async function getFeaturePlan(featureId: string): Promise<GetPlanResult> {\n if (!featureId.trim()) {\n return { error: 'Feature id is required' };\n }\n\n try {\n const repo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await repo.findById(featureId);\n\n if (!feature) {\n return { error: 'Feature not found' };\n }\n\n if (!feature.plan) {\n return { plan: undefined };\n }\n\n const plan: PlanData = {\n state: feature.plan.state,\n overview: feature.plan.overview,\n tasks: feature.plan.tasks.map((t) => ({\n title: t.title ?? '',\n description: t.description ?? '',\n state: t.state,\n actionItems: (t.actionItems ?? []).map((ai) => ({\n name: ai.name,\n description: ai.description,\n acceptanceCriteria: (ai.acceptanceCriteria ?? []).map((ac) => ({\n description: ac.description,\n verified: ac.verified,\n })),\n })),\n })),\n };\n\n return { plan };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load feature plan';\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 { IAgentRunRepository } from '@shepai/core/application/ports/output/agents/agent-run-repository.interface';\nimport type { IRepositoryRepository } from '@shepai/core/application/ports/output/repositories/repository-repository.interface';\nimport type { IGitPrService } from '@shepai/core/application/ports/output/services/git-pr-service.interface';\nimport type { GetFeatureArtifactUseCase } from '@shepai/core/application/use-cases/features/get-feature-artifact.use-case';\nimport { buildFeatureNodeData } from '@/app/build-feature-node-data';\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\nimport type { FeatureNodeData } from '@/components/common/feature-node';\n\n/**\n * Fetches full FeatureNodeData for a given feature ID.\n * Used by the drawer for targeted data syncing without triggering\n * a full router.refresh() / server component re-render.\n *\n * CI status and mergeable status are read from the DB (already updated\n * by PrSyncWatcherService) instead of making duplicate GitHub API calls.\n */\nexport async function getFeatureDrawerData(featureId: string): Promise<FeatureNodeData | null> {\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const agentRunRepo = resolve<IAgentRunRepository>('IAgentRunRepository');\n const repoRepo = resolve<IRepositoryRepository>('IRepositoryRepository');\n const gitPrService = resolve<IGitPrService>('IGitPrService');\n const getArtifact = resolve<GetFeatureArtifactUseCase>('GetFeatureArtifactUseCase');\n\n const feature = await featureRepo.findById(featureId);\n if (!feature) return null;\n\n const run = feature.agentRunId ? await agentRunRepo.findById(feature.agentRunId) : null;\n\n // CI status and mergeable status are read from the feature record (updated by\n // PrSyncWatcherService every 30s) — no duplicate GitHub API calls needed.\n // Only getDefaultBranch and getRemoteUrl are kept as they are local git operations.\n const [repo, baseBranch, artifact, remoteUrl] = await Promise.all([\n repoRepo.findByPath(feature.repositoryPath).catch(() => null),\n gitPrService.getDefaultBranch(feature.repositoryPath).catch(() => 'main'),\n getArtifact.execute(featureId).catch(() => null),\n gitPrService.getRemoteUrl(feature.repositoryPath).catch(() => null),\n ]);\n\n const { workflow } = getSettings();\n\n return buildFeatureNodeData(feature, run, {\n repositoryName: repo?.name,\n baseBranch,\n oneLiner: artifact?.oneLiner,\n remoteUrl: remoteUrl ?? undefined,\n enableEvidence: workflow.enableEvidence,\n commitEvidence: workflow.commitEvidence,\n });\n } catch {\n return null;\n }\n}\n","export {pickFolder as '0021fc447e8239b08d23070a94615c95fec08e1d07'} from 'ACTIONS_MODULE0'\nexport {getDeploymentLogs as '40d06524b7c193477469e44abc84431d5e997c7be7'} from 'ACTIONS_MODULE1'\nexport {deployFeature as '40153238aae7efec7f817741ab96cee2d842cb26fc'} from 'ACTIONS_MODULE2'\nexport {deployRepository as '404ad77a7e38bcd0ffa7217f2dfc77f7d57466e77f'} from 'ACTIONS_MODULE3'\nexport {stopDeployment as '40d831444b8fb605a36675c9f921c044b671a1e3fb'} from 'ACTIONS_MODULE4'\nexport {getDeploymentStatus as '40b4158adc09529ae5f7b89b4c3362c220f2dc192a'} from 'ACTIONS_MODULE5'\nexport {openIde as '404015156620bc08990d2e3be39a4eccc845f9613d'} from 'ACTIONS_MODULE6'\nexport {openShell as '400c501665c705abb76e27fd0100390d2b7c1fcf21'} from 'ACTIONS_MODULE7'\nexport {openFolder as '4086ec109541714731e6bed28313d7f9b0ac787688'} from 'ACTIONS_MODULE8'\nexport {isAgentSetupComplete as '00eed2fff77d86485b6ec603aec4bf3f24cd3296d8'} from 'ACTIONS_MODULE9'\nexport {checkAgentAuth as '00b4876b078f3db56f37606da063e57e76b30b0450'} from 'ACTIONS_MODULE10'\nexport {getAllAgentModels as '0065a5fd1a9a83442636d2d17b947244d55764c22e'} from 'ACTIONS_MODULE11'\nexport {updateAgentAndModel as '60552e964ab2ba3d1e9e91ff76520d0ad37444b9cf'} from 'ACTIONS_MODULE12'\nexport {deleteFeature as '70a85e01dfd1bdf135f5f50ea93b6e66942719b1ba'} from 'ACTIONS_MODULE13'\nexport {resumeFeature as '40f435f16e6507b29a9cda57fc4fdfaa8a76a2f1c3'} from 'ACTIONS_MODULE14'\nexport {addRepository as '40b1fe0ef85172b5e33fc7629389bc4645bfcb7a91'} from 'ACTIONS_MODULE15'\nexport {deleteRepository as '403cac67fbeb46e97d931c72b2041d616b20c59eb5'} from 'ACTIONS_MODULE16'\nexport {getFeatureMetadata as '406a541bb59fb1ff09fc8497412ca49d56666e985a'} from 'ACTIONS_MODULE17'\nexport {approveFeature as '6076047d356aae3d42ca06147ea680ea0f9e026caa'} from 'ACTIONS_MODULE18'\nexport {rejectFeature as '7059096416e5d4ad8872a15fad3401d2645ca232b9'} from 'ACTIONS_MODULE19'\nexport {getFeatureArtifact as '40ff786a837d82b9e86e1848afa05715c226bdc2c1'} from 'ACTIONS_MODULE20'\nexport {getResearchArtifact as '40e4a33f340a3f3085c15cd1a272963f24c7007395'} from 'ACTIONS_MODULE21'\nexport {getMergeReviewData as '40fc07bf0a52d9b960173a14a86357ce3f96ed8495'} from 'ACTIONS_MODULE22'\nexport {getFeaturePhaseTimings as '40b6635762d07dd7c419169d764a3992e16c227c04'} from 'ACTIONS_MODULE23'\nexport {getFeaturePlan as '403bc90c54ddd6784b93f9645a66787df22e996c31'} from 'ACTIONS_MODULE24'\nexport {getFeatureDrawerData as '4039344881c2f66a87ab585bb801a8503a0041eec6'} from 'ACTIONS_MODULE25'\n"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- module.exports=[31747,a=>{"use strict";var b=a.i(81719),c=a.i(14703),d=a.i(79372);function e(a,e,f){let g=(e?.status===b.AgentRunStatus.running||e?.status===b.AgentRunStatus.pending)&&e?.pid?(0,d.isProcessAlive)(e.pid):void 0;return{name:a.name,description:a.description??a.slug,featureId:a.id,lifecycle:(0,c.deriveLifecycle)(a,e),repositoryPath:a.repositoryPath,branch:a.branch,specPath:a.specPath,state:(0,c.deriveNodeState)(a,e,void 0!==g?{isPidAlive:g}:void 0),progress:(0,c.deriveProgress)(a),summary:a.description,userQuery:a.userQuery,createdAt:a.createdAt instanceof Date?a.createdAt.getTime():a.createdAt,...a.fast&&{fastMode:!0},approvalGates:a.approvalGates,push:a.push,openPr:a.openPr,...f?.enableEvidence!=null&&{enableEvidence:f.enableEvidence},...f?.commitEvidence!=null&&{commitEvidence:f.commitEvidence},...f?.repositoryName&&{repositoryName:f.repositoryName},...f?.baseBranch&&{baseBranch:f.baseBranch},...f?.oneLiner&&{oneLiner:f.oneLiner},...f?.remoteUrl&&{remoteUrl:f.remoteUrl},...e?.agentType&&{agentType:e.agentType},...e?.modelId&&{modelId:e.modelId},...e?.error&&{errorMessage:e.error},...null!=a.plan&&{hasPlan:!0},...a.pr&&{pr:{url:a.pr.url,number:a.pr.number,status:a.pr.status,ciStatus:a.pr.ciStatus,commitHash:a.pr.commitHash,mergeable:a.pr.mergeable}}}}a.s(["buildFeatureNodeData",()=>e])},61402,76052,13008,74607,6542,740,12104,54433,a=>{"use strict";var b=a.i(92658),c=a.i(96380),d=a.i(81719),e=a.i(12581);let f=new Set([d.AgentRunStatus.failed,d.AgentRunStatus.interrupted]);async function g(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 g=(0,c.resolve)("IAgentRunRepository"),h=await g.findById(e.agentRunId);if(h&&f.has(h.status)){let b=(0,c.resolve)("ResumeFeatureUseCase");return await b.execute(a,{promptPrefix:"User approved. Please continue."}),{approved:!0}}let i=(0,c.resolve)("ApproveAgentRunUseCase"),j=await i.execute(e.agentRunId,b);if(!j.approved)return{approved:!1,error:j.reason};return{approved:!0}}catch(a){return{approved:!1,error:a instanceof Error?a.message:"Failed to approve feature"}}}(0,e.ensureServerEntryExports)([g]),(0,b.registerServerReference)(g,"6076047d356aae3d42ca06147ea680ea0f9e026caa",null),a.s(["approveFeature",()=>g],61402);let h=new Set([d.AgentRunStatus.failed,d.AgentRunStatus.interrupted]);async function i(a,b,d){if(!a.trim())return{rejected:!1,error:"Feature id is required"};if(!b.trim())return{rejected:!1,error:"Feedback is required"};try{let e=(0,c.resolve)("IFeatureRepository"),f=await e.findById(a);if(!f)return{rejected:!1,error:"Feature not found"};if(!f.agentRunId)return{rejected:!1,error:"Feature has no agent run"};let g=(0,c.resolve)("IAgentRunRepository"),i=await g.findById(f.agentRunId);if(i&&h.has(i.status)){let d=(0,c.resolve)("ResumeFeatureUseCase");return await d.execute(a,{promptPrefix:b}),{rejected:!0,iteration:1}}let j=(0,c.resolve)("RejectAgentRunUseCase"),k=await j.execute(f.agentRunId,b,d);if(!k.rejected)return{rejected:!1,error:k.reason};return{rejected:!0,iteration:k.iteration,iterationWarning:k.iterationWarning}}catch(a){return{rejected:!1,error:a instanceof Error?a.message:"Failed to reject feature"}}}async function j(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 k(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"}}}(0,e.ensureServerEntryExports)([i]),(0,b.registerServerReference)(i,"7059096416e5d4ad8872a15fad3401d2645ca232b9",null),a.s(["rejectFeature",()=>i],76052),(0,e.ensureServerEntryExports)([j]),(0,b.registerServerReference)(j,"40ff786a837d82b9e86e1848afa05715c226bdc2c1",null),a.s(["getFeatureArtifact",()=>j],13008),(0,e.ensureServerEntryExports)([k]),(0,b.registerServerReference)(k,"40e4a33f340a3f3085c15cd1a272963f24c7007395",null),a.s(["getResearchArtifact",()=>k],74607);var l=a.i(2157),m=a.i(50227),n=a.i(29918);async function o(a){if(!a.trim())return{error:"Feature id is required"};try{let b,d,e=(0,c.resolve)("IFeatureRepository"),f=await e.findById(a);if(!f)return{error:"Feature not found"};let g=f.pr?{url:f.pr.url,number:f.pr.number,status:f.pr.status,commitHash:f.pr.commitHash,ciStatus:f.pr.ciStatus,mergeable:f.pr.mergeable}:void 0,h=f.branch?{source:f.branch,target:"main"}:void 0,i=f.worktreePath??(f.repositoryPath&&f.branch?(0,n.computeWorktreePath)(f.repositoryPath,f.branch):null);if(i)try{let c=(0,m.dirname)((0,m.dirname)(i)),e=(0,m.join)(c,"evidence",a),f=(0,m.join)(e,"manifest.json");(0,l.existsSync)(f)&&(b=JSON.parse((0,l.readFileSync)(f,"utf-8")),d=i)}catch{}if(!i)return{pr:g,branch:h,evidence:b,evidenceBasePath:d,warning:g?void 0:"No PR or diff data available"};try{let a=(0,c.resolve)("IGitPrService"),[e,f]=await Promise.all([a.getPrDiffSummary(i,"main"),a.getFileDiffs(i,"main").catch(()=>void 0)]);return{pr:g,branch:h,diffSummary:e,fileDiffs:f,evidence:b,evidenceBasePath:d}}catch{return{pr:g,branch:h,evidence:b,evidenceBasePath:d,warning:"Diff statistics unavailable"}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load merge review data"}}}async function p(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IPhaseTimingRepository"),d=(await b.findByFeatureId(a)).map(a=>({agentRunId:a.agentRunId,phase:a.phase,startedAt:a.startedAt,completedAt:a.completedAt,durationMs:null!=a.durationMs?Number(a.durationMs):void 0,waitingApprovalAt:a.waitingApprovalAt,approvalWaitMs:null!=a.approvalWaitMs?Number(a.approvalWaitMs):void 0})),e=await q(a);return{timings:d,rejectionFeedback:e}}catch(a){return{error:a instanceof Error?a.message:"Failed to load phase timings"}}}async function q(b){try{let d=(0,c.resolve)("IFeatureRepository"),e=await d.findById(b);if(!e?.specPath)return[];let{readFileSync:f}=await a.A(6714),{join:g}=await a.A(11105),h=(await a.A(29718)).default,i=f(g(e.specPath,"spec.yaml"),"utf-8"),j=h.load(i);if(!Array.isArray(j?.rejectionFeedback))return[];return j.rejectionFeedback.map(a=>({iteration:Number(a.iteration??1),message:String(a.message??""),phase:a.phase?String(a.phase):void 0,timestamp:a.timestamp?String(a.timestamp):void 0,attachments:Array.isArray(a.attachments)?a.attachments.map(String):void 0}))}catch{return[]}}async function r(a){if(!a.trim())return{error:"Feature id is required"};try{let b=(0,c.resolve)("IFeatureRepository"),d=await b.findById(a);if(!d)return{error:"Feature not found"};if(!d.plan)return{plan:void 0};return{plan:{state:d.plan.state,overview:d.plan.overview,tasks:d.plan.tasks.map(a=>({title:a.title??"",description:a.description??"",state:a.state,actionItems:(a.actionItems??[]).map(a=>({name:a.name,description:a.description,acceptanceCriteria:(a.acceptanceCriteria??[]).map(a=>({description:a.description,verified:a.verified}))}))}))}}}catch(a){return{error:a instanceof Error?a.message:"Failed to load feature plan"}}}(0,e.ensureServerEntryExports)([o]),(0,b.registerServerReference)(o,"40fc07bf0a52d9b960173a14a86357ce3f96ed8495",null),a.s(["getMergeReviewData",()=>o],6542),(0,e.ensureServerEntryExports)([p]),(0,b.registerServerReference)(p,"40b6635762d07dd7c419169d764a3992e16c227c04",null),a.s(["getFeaturePhaseTimings",()=>p],740),(0,e.ensureServerEntryExports)([r]),(0,b.registerServerReference)(r,"403bc90c54ddd6784b93f9645a66787df22e996c31",null),a.s(["getFeaturePlan",()=>r],12104);var s=a.i(31747),t=a.i(33244);async function u(a){try{let b=(0,c.resolve)("IFeatureRepository"),d=(0,c.resolve)("IAgentRunRepository"),e=(0,c.resolve)("IRepositoryRepository"),f=(0,c.resolve)("IGitPrService"),g=(0,c.resolve)("GetFeatureArtifactUseCase"),h=await b.findById(a);if(!h)return null;let i=h.agentRunId?await d.findById(h.agentRunId):null,[j,k,l,m]=await Promise.all([e.findByPath(h.repositoryPath).catch(()=>null),f.getDefaultBranch(h.repositoryPath).catch(()=>"main"),g.execute(a).catch(()=>null),f.getRemoteUrl(h.repositoryPath).catch(()=>null)]),{workflow:n}=(0,t.getSettings)();return(0,s.buildFeatureNodeData)(h,i,{repositoryName:j?.name,baseBranch:k,oneLiner:l?.oneLiner,remoteUrl:m??void 0,enableEvidence:n.enableEvidence,commitEvidence:n.commitEvidence})}catch{return null}}(0,e.ensureServerEntryExports)([u]),(0,b.registerServerReference)(u,"4039344881c2f66a87ab585bb801a8503a0041eec6",null),a.s(["getFeatureDrawerData",()=>u],54433)},56238,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(41872),l=a.i(9959),m=a.i(23504),n=a.i(27900),o=a.i(50845),p=a.i(26604),q=a.i(49560),r=a.i(39353),s=a.i(29207),t=a.i(61402),u=a.i(76052),v=a.i(13008),w=a.i(74607),x=a.i(6542),y=a.i(740),z=a.i(12104),A=a.i(54433);a.s([],88284),a.i(88284),a.s(["0021fc447e8239b08d23070a94615c95fec08e1d07",()=>b.pickFolder,"0065a5fd1a9a83442636d2d17b947244d55764c22e",()=>m.getAllAgentModels,"00b4876b078f3db56f37606da063e57e76b30b0450",()=>l.checkAgentAuth,"00eed2fff77d86485b6ec603aec4bf3f24cd3296d8",()=>k.isAgentSetupComplete,"400c501665c705abb76e27fd0100390d2b7c1fcf21",()=>i.openShell,"40153238aae7efec7f817741ab96cee2d842cb26fc",()=>d.deployFeature,"4039344881c2f66a87ab585bb801a8503a0041eec6",()=>A.getFeatureDrawerData,"403bc90c54ddd6784b93f9645a66787df22e996c31",()=>z.getFeaturePlan,"403cac67fbeb46e97d931c72b2041d616b20c59eb5",()=>r.deleteRepository,"404015156620bc08990d2e3be39a4eccc845f9613d",()=>h.openIde,"404ad77a7e38bcd0ffa7217f2dfc77f7d57466e77f",()=>e.deployRepository,"406a541bb59fb1ff09fc8497412ca49d56666e985a",()=>s.getFeatureMetadata,"4086ec109541714731e6bed28313d7f9b0ac787688",()=>j.openFolder,"40b1fe0ef85172b5e33fc7629389bc4645bfcb7a91",()=>q.addRepository,"40b4158adc09529ae5f7b89b4c3362c220f2dc192a",()=>g.getDeploymentStatus,"40b6635762d07dd7c419169d764a3992e16c227c04",()=>y.getFeaturePhaseTimings,"40d06524b7c193477469e44abc84431d5e997c7be7",()=>c.getDeploymentLogs,"40d831444b8fb605a36675c9f921c044b671a1e3fb",()=>f.stopDeployment,"40e4a33f340a3f3085c15cd1a272963f24c7007395",()=>w.getResearchArtifact,"40f435f16e6507b29a9cda57fc4fdfaa8a76a2f1c3",()=>p.resumeFeature,"40fc07bf0a52d9b960173a14a86357ce3f96ed8495",()=>x.getMergeReviewData,"40ff786a837d82b9e86e1848afa05715c226bdc2c1",()=>v.getFeatureArtifact,"60552e964ab2ba3d1e9e91ff76520d0ad37444b9cf",()=>n.updateAgentAndModel,"6076047d356aae3d42ca06147ea680ea0f9e026caa",()=>t.approveFeature,"7059096416e5d4ad8872a15fad3401d2645ca232b9",()=>u.rejectFeature,"70a85e01dfd1bdf135f5f50ea93b6e66942719b1ba",()=>o.deleteFeature],56238)},6714,a=>{a.v(a=>Promise.resolve().then(()=>a(2157)))},11105,a=>{a.v(a=>Promise.resolve().then(()=>a(50227)))},29718,a=>{a.v(b=>Promise.all(["server/chunks/ssr/90b01_js-yaml_dist_js-yaml_mjs_c897fb57._.js"].map(b=>a.l(b))).then(()=>b(32996)))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__2773312c._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/app/build-feature-node-data.ts","../../../../../../../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/app/actions/get-feature-phase-timings.ts","../../../../../../../src/presentation/web/app/actions/get-feature-plan.ts","../../../../../../../src/presentation/web/app/actions/get-feature-drawer-data.ts","../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/feature/%5BfeatureId%5D/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["import type { Feature, AgentRun } from '@shepai/core/domain/generated/output';\nimport { AgentRunStatus } from '@shepai/core/domain/generated/output';\nimport {\n deriveNodeState,\n deriveProgress,\n deriveLifecycle,\n} from '@/components/common/feature-node/derive-feature-state';\nimport { isProcessAlive } from '@shepai/core/infrastructure/services/process/is-process-alive';\nimport type { FeatureNodeData } from '@/components/common/feature-node';\n\nexport interface BuildFeatureNodeDataOptions {\n baseBranch?: string;\n repositoryName?: string;\n /** AI-generated one-liner from FeatureArtifact */\n oneLiner?: string;\n /** Remote URL for the repository (HTTPS) */\n remoteUrl?: string;\n /** Whether evidence collection is enabled (global workflow setting) */\n enableEvidence?: boolean;\n /** Whether evidence is committed to the PR body (global workflow setting) */\n commitEvidence?: boolean;\n}\n\n/**\n * Builds a FeatureNodeData object from a Feature entity and optional AgentRun.\n * This is the single-feature version of the logic in `buildGraphNodes`.\n */\nexport function buildFeatureNodeData(\n feature: Feature,\n run: AgentRun | null,\n options?: BuildFeatureNodeDataOptions\n): FeatureNodeData {\n // Detect crashed agents: DB says running/pending but PID is dead\n const isActive = run?.status === AgentRunStatus.running || run?.status === AgentRunStatus.pending;\n const pidAlive = isActive && run?.pid ? isProcessAlive(run.pid) : undefined;\n\n return {\n name: feature.name,\n description: feature.description ?? feature.slug,\n featureId: feature.id,\n lifecycle: deriveLifecycle(feature, run),\n repositoryPath: feature.repositoryPath,\n branch: feature.branch,\n specPath: feature.specPath,\n state: deriveNodeState(\n feature,\n run,\n pidAlive !== undefined ? { isPidAlive: pidAlive } : undefined\n ),\n progress: deriveProgress(feature),\n summary: feature.description,\n userQuery: feature.userQuery,\n createdAt: feature.createdAt instanceof Date ? feature.createdAt.getTime() : feature.createdAt,\n ...(feature.fast && { fastMode: true }),\n approvalGates: feature.approvalGates,\n push: feature.push,\n openPr: feature.openPr,\n ...(options?.enableEvidence != null && { enableEvidence: options.enableEvidence }),\n ...(options?.commitEvidence != null && { commitEvidence: options.commitEvidence }),\n ...(options?.repositoryName && { repositoryName: options.repositoryName }),\n ...(options?.baseBranch && { baseBranch: options.baseBranch }),\n ...(options?.oneLiner && { oneLiner: options.oneLiner }),\n ...(options?.remoteUrl && { remoteUrl: options.remoteUrl }),\n ...(run?.agentType && { agentType: run.agentType as FeatureNodeData['agentType'] }),\n ...(run?.modelId && { modelId: run.modelId }),\n ...(run?.error && { errorMessage: run.error }),\n ...(feature.plan != null && { hasPlan: true }),\n ...(feature.pr && {\n pr: {\n url: feature.pr.url,\n number: feature.pr.number,\n status: feature.pr.status,\n ciStatus: feature.pr.ciStatus,\n commitHash: feature.pr.commitHash,\n mergeable: feature.pr.mergeable,\n },\n }),\n };\n}\n","'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 { ResumeFeatureUseCase } from '@shepai/core/application/use-cases/features/resume-feature.use-case';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\nimport type { IAgentRunRepository } from '@shepai/core/application/ports/output/agents/agent-run-repository.interface';\nimport type { PrdApprovalPayload } from '@shepai/core/domain/generated/output';\nimport { AgentRunStatus } from '@shepai/core/domain/generated/output';\n\nconst ERROR_STATUSES = new Set<string>([AgentRunStatus.failed, AgentRunStatus.interrupted]);\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 runRepo = resolve<IAgentRunRepository>('IAgentRunRepository');\n const run = await runRepo.findById(feature.agentRunId);\n\n if (run && ERROR_STATUSES.has(run.status)) {\n const resumeUseCase = resolve<ResumeFeatureUseCase>('ResumeFeatureUseCase');\n await resumeUseCase.execute(featureId, { promptPrefix: 'User approved. Please continue.' });\n return { approved: true };\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 { ResumeFeatureUseCase } from '@shepai/core/application/use-cases/features/resume-feature.use-case';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\nimport type { IAgentRunRepository } from '@shepai/core/application/ports/output/agents/agent-run-repository.interface';\nimport { AgentRunStatus } from '@shepai/core/domain/generated/output';\n\nconst ERROR_STATUSES = new Set<string>([AgentRunStatus.failed, AgentRunStatus.interrupted]);\n\nexport async function rejectFeature(\n featureId: string,\n feedback: string,\n attachments?: 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 runRepo = resolve<IAgentRunRepository>('IAgentRunRepository');\n const run = await runRepo.findById(feature.agentRunId);\n\n if (run && ERROR_STATUSES.has(run.status)) {\n const resumeUseCase = resolve<ResumeFeatureUseCase>('ResumeFeatureUseCase');\n await resumeUseCase.execute(featureId, { promptPrefix: feedback });\n return { rejected: true, iteration: 1 };\n }\n\n const rejectUseCase = resolve<RejectAgentRunUseCase>('RejectAgentRunUseCase');\n const result = await rejectUseCase.execute(feature.agentRunId, feedback, attachments);\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 { readFileSync, existsSync } from 'node:fs';\nimport { join, dirname } from 'node:path';\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 {\n MergeReviewData,\n MergeReviewEvidence,\n} from '@/components/common/merge-review/merge-review-config';\nimport { computeWorktreePath } from '@shepai/core/infrastructure/services/ide-launchers/compute-worktree-path';\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 mergeable: feature.pr.mergeable,\n }\n : undefined;\n\n const branch = feature.branch ? { source: feature.branch, target: 'main' } : undefined;\n\n const worktreePath =\n feature.worktreePath ??\n (feature.repositoryPath && feature.branch\n ? computeWorktreePath(feature.repositoryPath, feature.branch)\n : null);\n\n // Load evidence manifest (best-effort)\n let evidence: MergeReviewEvidence[] | undefined;\n let evidenceBasePath: string | undefined;\n if (worktreePath) {\n try {\n // Worktree path: ~/.shep/repos/<hash>/wt/<slug>\n // Evidence manifest: ~/.shep/repos/<hash>/evidence/<featureId>/manifest.json\n const repoHashDir = dirname(dirname(worktreePath));\n const evidenceDir = join(repoHashDir, 'evidence', featureId);\n const manifestPath = join(evidenceDir, 'manifest.json');\n if (existsSync(manifestPath)) {\n evidence = JSON.parse(readFileSync(manifestPath, 'utf-8'));\n evidenceBasePath = worktreePath;\n }\n } catch {\n // Evidence unavailable — not critical\n }\n }\n\n if (!worktreePath) {\n return {\n pr,\n branch,\n evidence,\n evidenceBasePath,\n warning: pr ? undefined : 'No PR or diff data available',\n };\n }\n\n try {\n const gitPrService = resolve<IGitPrService>('IGitPrService');\n const [diffSummary, fileDiffs] = await Promise.all([\n gitPrService.getPrDiffSummary(worktreePath, 'main'),\n gitPrService.getFileDiffs(worktreePath, 'main').catch(() => undefined),\n ]);\n return { pr, branch, diffSummary, fileDiffs, evidence, evidenceBasePath };\n } catch {\n return {\n pr,\n branch,\n evidence,\n evidenceBasePath,\n warning: 'Diff statistics unavailable',\n };\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","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IPhaseTimingRepository } from '@shepai/core/application/ports/output/agents/phase-timing-repository.interface';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\n\nexport interface PhaseTimingData {\n agentRunId: string;\n phase: string;\n startedAt: string;\n completedAt?: string;\n durationMs?: number;\n waitingApprovalAt?: string;\n approvalWaitMs?: number;\n}\n\nexport interface RejectionFeedbackData {\n iteration: number;\n message: string;\n phase?: string;\n timestamp?: string;\n attachments?: string[];\n}\n\ntype GetPhaseTimingsResult =\n | { timings: PhaseTimingData[]; rejectionFeedback: RejectionFeedbackData[] }\n | { error: string };\n\nexport async function getFeaturePhaseTimings(featureId: string): Promise<GetPhaseTimingsResult> {\n if (!featureId.trim()) {\n return { error: 'Feature id is required' };\n }\n\n try {\n const repo = resolve<IPhaseTimingRepository>('IPhaseTimingRepository');\n const phaseTimings = await repo.findByFeatureId(featureId);\n\n const timings: PhaseTimingData[] = phaseTimings.map((t) => ({\n agentRunId: t.agentRunId,\n phase: t.phase,\n startedAt: t.startedAt,\n completedAt: t.completedAt,\n durationMs: t.durationMs != null ? Number(t.durationMs) : undefined,\n waitingApprovalAt: t.waitingApprovalAt,\n approvalWaitMs: t.approvalWaitMs != null ? Number(t.approvalWaitMs) : undefined,\n }));\n\n // Read rejection feedback from spec.yaml\n const rejectionFeedback = await readRejectionFeedback(featureId);\n\n return { timings, rejectionFeedback };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load phase timings';\n return { error: message };\n }\n}\n\nasync function readRejectionFeedback(featureId: string): Promise<RejectionFeedbackData[]> {\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await featureRepo.findById(featureId);\n if (!feature?.specPath) return [];\n\n const { readFileSync } = await import('node:fs');\n const { join } = await import('node:path');\n const yaml = (await import('js-yaml')).default;\n\n const specContent = readFileSync(join(feature.specPath, 'spec.yaml'), 'utf-8');\n const spec = yaml.load(specContent) as Record<string, unknown>;\n\n if (!Array.isArray(spec?.rejectionFeedback)) return [];\n\n return (spec.rejectionFeedback as Record<string, unknown>[]).map((entry) => ({\n iteration: Number(entry.iteration ?? 1),\n message: String(entry.message ?? ''),\n phase: entry.phase ? String(entry.phase) : undefined,\n timestamp: entry.timestamp ? String(entry.timestamp) : undefined,\n attachments: Array.isArray(entry.attachments)\n ? (entry.attachments as unknown[]).map(String)\n : undefined,\n }));\n } catch {\n return [];\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IFeatureRepository } from '@shepai/core/application/ports/output/repositories/feature-repository.interface';\n\nexport interface AcceptanceCriterionData {\n description: string;\n verified: boolean;\n}\n\nexport interface ActionItemData {\n name: string;\n description: string;\n acceptanceCriteria: AcceptanceCriterionData[];\n}\n\nexport interface PlanTaskData {\n title: string;\n description: string;\n state: string;\n actionItems: ActionItemData[];\n}\n\nexport interface PlanData {\n state: string;\n overview: string;\n tasks: PlanTaskData[];\n}\n\ntype GetPlanResult = { plan: PlanData | undefined } | { error: string };\n\nexport async function getFeaturePlan(featureId: string): Promise<GetPlanResult> {\n if (!featureId.trim()) {\n return { error: 'Feature id is required' };\n }\n\n try {\n const repo = resolve<IFeatureRepository>('IFeatureRepository');\n const feature = await repo.findById(featureId);\n\n if (!feature) {\n return { error: 'Feature not found' };\n }\n\n if (!feature.plan) {\n return { plan: undefined };\n }\n\n const plan: PlanData = {\n state: feature.plan.state,\n overview: feature.plan.overview,\n tasks: feature.plan.tasks.map((t) => ({\n title: t.title ?? '',\n description: t.description ?? '',\n state: t.state,\n actionItems: (t.actionItems ?? []).map((ai) => ({\n name: ai.name,\n description: ai.description,\n acceptanceCriteria: (ai.acceptanceCriteria ?? []).map((ac) => ({\n description: ac.description,\n verified: ac.verified,\n })),\n })),\n })),\n };\n\n return { plan };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to load feature plan';\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 { IAgentRunRepository } from '@shepai/core/application/ports/output/agents/agent-run-repository.interface';\nimport type { IRepositoryRepository } from '@shepai/core/application/ports/output/repositories/repository-repository.interface';\nimport type { IGitPrService } from '@shepai/core/application/ports/output/services/git-pr-service.interface';\nimport type { GetFeatureArtifactUseCase } from '@shepai/core/application/use-cases/features/get-feature-artifact.use-case';\nimport { buildFeatureNodeData } from '@/app/build-feature-node-data';\nimport { getSettings } from '@shepai/core/infrastructure/services/settings.service';\nimport type { FeatureNodeData } from '@/components/common/feature-node';\n\n/**\n * Fetches full FeatureNodeData for a given feature ID.\n * Used by the drawer for targeted data syncing without triggering\n * a full router.refresh() / server component re-render.\n *\n * CI status and mergeable status are read from the DB (already updated\n * by PrSyncWatcherService) instead of making duplicate GitHub API calls.\n */\nexport async function getFeatureDrawerData(featureId: string): Promise<FeatureNodeData | null> {\n try {\n const featureRepo = resolve<IFeatureRepository>('IFeatureRepository');\n const agentRunRepo = resolve<IAgentRunRepository>('IAgentRunRepository');\n const repoRepo = resolve<IRepositoryRepository>('IRepositoryRepository');\n const gitPrService = resolve<IGitPrService>('IGitPrService');\n const getArtifact = resolve<GetFeatureArtifactUseCase>('GetFeatureArtifactUseCase');\n\n const feature = await featureRepo.findById(featureId);\n if (!feature) return null;\n\n const run = feature.agentRunId ? await agentRunRepo.findById(feature.agentRunId) : null;\n\n // CI status and mergeable status are read from the feature record (updated by\n // PrSyncWatcherService every 30s) — no duplicate GitHub API calls needed.\n // Only getDefaultBranch and getRemoteUrl are kept as they are local git operations.\n const [repo, baseBranch, artifact, remoteUrl] = await Promise.all([\n repoRepo.findByPath(feature.repositoryPath).catch(() => null),\n gitPrService.getDefaultBranch(feature.repositoryPath).catch(() => 'main'),\n getArtifact.execute(featureId).catch(() => null),\n gitPrService.getRemoteUrl(feature.repositoryPath).catch(() => null),\n ]);\n\n const { workflow } = getSettings();\n\n return buildFeatureNodeData(feature, run, {\n repositoryName: repo?.name,\n baseBranch,\n oneLiner: artifact?.oneLiner,\n remoteUrl: remoteUrl ?? undefined,\n enableEvidence: workflow.enableEvidence,\n commitEvidence: workflow.commitEvidence,\n });\n } catch {\n return null;\n }\n}\n","export {pickFolder as '0021fc447e8239b08d23070a94615c95fec08e1d07'} from 'ACTIONS_MODULE0'\nexport {getDeploymentLogs as '40d06524b7c193477469e44abc84431d5e997c7be7'} from 'ACTIONS_MODULE1'\nexport {deployFeature as '40153238aae7efec7f817741ab96cee2d842cb26fc'} from 'ACTIONS_MODULE2'\nexport {deployRepository as '404ad77a7e38bcd0ffa7217f2dfc77f7d57466e77f'} from 'ACTIONS_MODULE3'\nexport {stopDeployment as '40d831444b8fb605a36675c9f921c044b671a1e3fb'} from 'ACTIONS_MODULE4'\nexport {getDeploymentStatus as '40b4158adc09529ae5f7b89b4c3362c220f2dc192a'} from 'ACTIONS_MODULE5'\nexport {openIde as '404015156620bc08990d2e3be39a4eccc845f9613d'} from 'ACTIONS_MODULE6'\nexport {openShell as '400c501665c705abb76e27fd0100390d2b7c1fcf21'} from 'ACTIONS_MODULE7'\nexport {openFolder as '4086ec109541714731e6bed28313d7f9b0ac787688'} from 'ACTIONS_MODULE8'\nexport {isAgentSetupComplete as '00eed2fff77d86485b6ec603aec4bf3f24cd3296d8'} from 'ACTIONS_MODULE9'\nexport {checkAgentAuth as '00b4876b078f3db56f37606da063e57e76b30b0450'} from 'ACTIONS_MODULE10'\nexport {getAllAgentModels as '0065a5fd1a9a83442636d2d17b947244d55764c22e'} from 'ACTIONS_MODULE11'\nexport {updateAgentAndModel as '60552e964ab2ba3d1e9e91ff76520d0ad37444b9cf'} from 'ACTIONS_MODULE12'\nexport {deleteFeature as '70a85e01dfd1bdf135f5f50ea93b6e66942719b1ba'} from 'ACTIONS_MODULE13'\nexport {resumeFeature as '40f435f16e6507b29a9cda57fc4fdfaa8a76a2f1c3'} from 'ACTIONS_MODULE14'\nexport {addRepository as '40b1fe0ef85172b5e33fc7629389bc4645bfcb7a91'} from 'ACTIONS_MODULE15'\nexport {deleteRepository as '403cac67fbeb46e97d931c72b2041d616b20c59eb5'} from 'ACTIONS_MODULE16'\nexport {getFeatureMetadata as '406a541bb59fb1ff09fc8497412ca49d56666e985a'} from 'ACTIONS_MODULE17'\nexport {approveFeature as '6076047d356aae3d42ca06147ea680ea0f9e026caa'} from 'ACTIONS_MODULE18'\nexport {rejectFeature as '7059096416e5d4ad8872a15fad3401d2645ca232b9'} from 'ACTIONS_MODULE19'\nexport {getFeatureArtifact as '40ff786a837d82b9e86e1848afa05715c226bdc2c1'} from 'ACTIONS_MODULE20'\nexport {getResearchArtifact as '40e4a33f340a3f3085c15cd1a272963f24c7007395'} from 'ACTIONS_MODULE21'\nexport {getMergeReviewData as '40fc07bf0a52d9b960173a14a86357ce3f96ed8495'} from 'ACTIONS_MODULE22'\nexport {getFeaturePhaseTimings as '40b6635762d07dd7c419169d764a3992e16c227c04'} from 'ACTIONS_MODULE23'\nexport {getFeaturePlan as '403bc90c54ddd6784b93f9645a66787df22e996c31'} from 'ACTIONS_MODULE24'\nexport {getFeatureDrawerData as '4039344881c2f66a87ab585bb801a8503a0041eec6'} from 'ACTIONS_MODULE25'\n"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- module.exports=[15108,(a,b,c)=>{"use strict";b.exports=a.r(55721).vendored.contexts.HooksClientContext},71915,(a,b,c)=>{"use strict";b.exports=a.r(55721).vendored.contexts.ServerInsertedHtml},18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},55721,(a,b,c)=>{"use strict";b.exports=a.r(18622)},10973,(a,b,c)=>{"use strict";b.exports=a.r(55721).vendored["react-ssr"].ReactJsxRuntime},96960,(a,b,c)=>{"use strict";b.exports=a.r(55721).vendored["react-ssr"].React},55690,(a,b,c)=>{"use strict";b.exports=a.r(55721).vendored["react-ssr"].ReactDOM},21032,(a,b,c)=>{"use strict";b.exports=a.r(55721).vendored["react-ssr"].ReactServerDOMTurbopackClient},62485,(a,b,c)=>{"use strict";b.exports=a.r(55721).vendored.contexts.AppRouterContext},48939,a=>{"use strict";var b=a.i(96960);a.i(10973);var c=b.createContext(void 0);function d(a){let d=b.useContext(c);return a||d||"ltr"}a.s(["useDirection",()=>d])},90920,a=>{"use strict";var b=a.i(10973),c=a.i(85536);function d({className:a,type:d,...e}){return(0,b.jsx)("input",{type:d,"data-slot":"input",className:(0,c.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...e})}a.s(["Input",()=>d])},67837,a=>{"use strict";let b=(0,a.i(25700).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",()=>b],67837)},17300,a=>{"use strict";let b=(0,a.i(25700).default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]);a.s(["Wrench",()=>b],17300)},2811,a=>{"use strict";let b=(0,a.i(25700).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["default",()=>b])},58428,a=>{"use strict";let b=(0,a.i(25700).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["default",()=>b])},56926,a=>{"use strict";var b=a.i(58428);a.s(["CircleX",()=>b.default])},67273,93866,a=>{"use strict";var b=a.i(2811);a.s(["CircleCheck",()=>b.default],67273);let c=(0,a.i(25700).default)("ban",[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Ban",()=>c],93866)},84871,a=>{"use strict";var b=a.i(10973),c=a.i(96960);let d=(0,a.i(87139).createLogger)("[SSE]"),e=(0,c.createContext)(null);function f({children:a,runId:f}){let{events:g,lastEvent:h,connectionStatus:i}=function(a){let[b,e]=(0,c.useState)([]),[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)("disconnected"),j=a?.runId;(0,c.useRef)(null);let k=(0,c.useCallback)(a=>{let b=a.data;if(b&&"object"==typeof b)if("notification"===b.type){let a=b.data;d.debug("event received:",a.eventType,a),e(b=>{let c=[...b,a];return c.length>500?c.slice(-250):c}),g(a)}else"status"===b.type&&i(b.status)},[]);return(0,c.useEffect)(()=>{},[j,k]),{events:b,lastEvent:f,connectionStatus:h}}({runId:f}),j=(0,c.useMemo)(()=>({events:g,lastEvent:h,connectionStatus:i}),[g,h,i]);return(0,b.jsx)(e.Provider,{value:j,children:a})}function g(){let a=(0,c.useContext)(e);if(!a)throw Error("useAgentEventsContext must be used within an <AgentEventsProvider>");return a}a.s(["AgentEventsProvider",()=>f,"useAgentEventsContext",()=>g],84871)},48972,a=>{"use strict";function b(a,[b,c]){return Math.min(c,Math.max(b,a))}a.s(["clamp",()=>b])},67424,a=>{"use strict";let b=(0,a.i(25700).default)("puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]);a.s(["Puzzle",()=>b],67424)},1377,a=>{"use strict";var b=a.i(25674);let c=(0,b.createServerReference)("0021fc447e8239b08d23070a94615c95fec08e1d07",b.callServer,void 0,b.findSourceMapURL,"pickFolder");async function d(){let a=await c();if(a.error)throw Error(a.error);return a.path}a.s(["pickFolder",()=>d],1377)},42527,a=>{"use strict";let b=(0,a.i(25700).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"}]]);a.s(["FolderPlus",()=>b],42527)},1356,a=>{"use strict";var b=a.i(10973),c=a.i(96960);let d={"action-required":"action-needed",running:"in-progress",done:"done",blocked:"blocked",error:"error",creating:null,deleting:null};function e(a){return d[a]}let f=(0,c.createContext)(null);function g({children:a}){let[d,e]=(0,c.useState)([]),g=(0,c.useMemo)(()=>({features:d,setFeatures:e}),[d]);return(0,b.jsx)(f.Provider,{value:g,children:a})}function h(){let a=(0,c.useContext)(f);if(!a)throw Error("useSidebarFeaturesContext must be used within a <SidebarFeaturesProvider>");return a}a.s(["SidebarFeaturesProvider",()=>g,"mapNodeStateToSidebarStatus",()=>e,"useSidebarFeaturesContext",()=>h])}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__6367aea0._.js.map