@shepai/cli 1.136.0-pr439.2a7af41 → 1.136.0-pr441.5eaafd1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/apis/json-schema/FeatureFlags.yaml +5 -0
  2. package/apis/json-schema/NotificationEventConfig.yaml +15 -0
  3. package/apis/json-schema/NotificationEventType.yaml +3 -0
  4. package/apis/json-schema/Repository.yaml +0 -3
  5. package/apis/json-schema/ScheduledWorkflow.yaml +46 -0
  6. package/apis/json-schema/WorkflowExecution.yaml +38 -0
  7. package/apis/json-schema/WorkflowExecutionStatus.yaml +10 -0
  8. package/apis/json-schema/WorkflowTriggerType.yaml +7 -0
  9. package/dist/packages/core/src/application/index.d.ts +1 -1
  10. package/dist/packages/core/src/application/index.d.ts.map +1 -1
  11. package/dist/packages/core/src/application/ports/output/index.d.ts +1 -1
  12. package/dist/packages/core/src/application/ports/output/index.d.ts.map +1 -1
  13. package/dist/packages/core/src/application/ports/output/repositories/index.d.ts +2 -0
  14. package/dist/packages/core/src/application/ports/output/repositories/index.d.ts.map +1 -1
  15. package/dist/packages/core/src/application/ports/output/repositories/repository-repository.interface.d.ts +1 -1
  16. package/dist/packages/core/src/application/ports/output/repositories/repository-repository.interface.d.ts.map +1 -1
  17. package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.d.ts +66 -0
  18. package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.d.ts.map +1 -0
  19. package/dist/packages/core/src/application/ports/output/repositories/workflow-execution-repository.interface.js +11 -0
  20. package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.d.ts +81 -0
  21. package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.d.ts.map +1 -0
  22. package/dist/packages/core/src/application/ports/output/repositories/workflow-repository.interface.js +11 -0
  23. package/dist/packages/core/src/application/ports/output/services/clock.interface.d.ts +28 -0
  24. package/dist/packages/core/src/application/ports/output/services/clock.interface.d.ts.map +1 -0
  25. package/dist/packages/core/src/application/ports/output/services/clock.interface.js +13 -0
  26. package/dist/packages/core/src/application/ports/output/services/index.d.ts +2 -1
  27. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  28. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +5 -21
  29. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -1
  30. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +1 -1
  31. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  32. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +2 -8
  33. package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.d.ts +28 -0
  34. package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.d.ts.map +1 -0
  35. package/dist/packages/core/src/application/use-cases/workflows/create-workflow.use-case.js +72 -0
  36. package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.d.ts +27 -0
  37. package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.d.ts.map +1 -0
  38. package/dist/packages/core/src/application/use-cases/workflows/cron-helpers.js +43 -0
  39. package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.d.ts +18 -0
  40. package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.d.ts.map +1 -0
  41. package/dist/packages/core/src/application/use-cases/workflows/delete-workflow.use-case.js +64 -0
  42. package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.d.ts +16 -0
  43. package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.d.ts.map +1 -0
  44. package/dist/packages/core/src/application/use-cases/workflows/get-workflow-history.use-case.js +46 -0
  45. package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.d.ts +13 -0
  46. package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.d.ts.map +1 -0
  47. package/dist/packages/core/src/application/use-cases/workflows/get-workflow.use-case.js +42 -0
  48. package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.d.ts +13 -0
  49. package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.d.ts.map +1 -0
  50. package/dist/packages/core/src/application/use-cases/workflows/list-workflows.use-case.js +33 -0
  51. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts +19 -0
  52. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.d.ts.map +1 -0
  53. package/dist/packages/core/src/application/use-cases/workflows/run-workflow.use-case.js +62 -0
  54. package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.d.ts +22 -0
  55. package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.d.ts.map +1 -0
  56. package/dist/packages/core/src/application/use-cases/workflows/schedule-workflow.use-case.js +73 -0
  57. package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.d.ts +9 -0
  58. package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.d.ts.map +1 -0
  59. package/dist/packages/core/src/application/use-cases/workflows/templates/branch-rebase.template.js +27 -0
  60. package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.d.ts +11 -0
  61. package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.d.ts.map +1 -0
  62. package/dist/packages/core/src/application/use-cases/workflows/templates/issue-triage.template.js +27 -0
  63. package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.d.ts +16 -0
  64. package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.d.ts.map +1 -0
  65. package/dist/packages/core/src/application/use-cases/workflows/toggle-workflow.use-case.js +60 -0
  66. package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.d.ts +25 -0
  67. package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.d.ts.map +1 -0
  68. package/dist/packages/core/src/application/use-cases/workflows/update-workflow.use-case.js +83 -0
  69. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  70. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +4 -0
  71. package/dist/packages/core/src/domain/generated/output.d.ts +112 -3
  72. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  73. package/dist/packages/core/src/domain/generated/output.js +16 -0
  74. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  75. package/dist/packages/core/src/infrastructure/di/container.js +66 -0
  76. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.d.ts +0 -1
  77. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.d.ts.map +1 -1
  78. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.js +0 -2
  79. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +4 -0
  80. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  81. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +8 -0
  82. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.d.ts +46 -0
  83. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.d.ts.map +1 -0
  84. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow-execution.mapper.js +57 -0
  85. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.d.ts +51 -0
  86. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.d.ts.map +1 -0
  87. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/workflow.mapper.js +71 -0
  88. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.d.ts +12 -0
  89. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.d.ts.map +1 -0
  90. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-workflow-notification-events.js +22 -0
  91. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.d.ts +14 -0
  92. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.d.ts.map +1 -0
  93. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/045-create-scheduled-workflows.js +65 -0
  94. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.d.ts +11 -0
  95. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.d.ts.map +1 -0
  96. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/046-add-feature-flag-scheduled-workflows.js +17 -0
  97. package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.d.ts +1 -1
  98. package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.d.ts.map +1 -1
  99. package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.js +2 -6
  100. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.d.ts +24 -0
  101. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.d.ts.map +1 -0
  102. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow-execution.repository.js +92 -0
  103. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.d.ts +26 -0
  104. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.d.ts.map +1 -0
  105. package/dist/packages/core/src/infrastructure/repositories/sqlite-workflow.repository.js +117 -0
  106. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/evidence-prompts.d.ts +2 -4
  107. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/evidence-prompts.d.ts.map +1 -1
  108. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/evidence-prompts.js +8 -15
  109. package/dist/packages/core/src/infrastructure/services/clock.d.ts +11 -0
  110. package/dist/packages/core/src/infrastructure/services/clock.d.ts.map +1 -0
  111. package/dist/packages/core/src/infrastructure/services/clock.js +22 -0
  112. package/dist/packages/core/src/infrastructure/services/git/worktree.service.d.ts.map +1 -1
  113. package/dist/packages/core/src/infrastructure/services/git/worktree.service.js +4 -2
  114. package/dist/packages/core/src/infrastructure/services/ide-launchers/compute-worktree-path.d.ts.map +1 -1
  115. package/dist/packages/core/src/infrastructure/services/ide-launchers/compute-worktree-path.js +4 -2
  116. package/dist/packages/core/src/infrastructure/services/notifications/notification.service.d.ts.map +1 -1
  117. package/dist/packages/core/src/infrastructure/services/notifications/notification.service.js +3 -0
  118. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +3 -17
  119. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
  120. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +13 -49
  121. package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.d.ts +69 -0
  122. package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.d.ts.map +1 -0
  123. package/dist/packages/core/src/infrastructure/services/workflow-scheduler/workflow-scheduler.service.js +270 -0
  124. package/dist/src/presentation/cli/commands/_serve.command.d.ts.map +1 -1
  125. package/dist/src/presentation/cli/commands/_serve.command.js +14 -0
  126. package/dist/src/presentation/cli/commands/workflow/create.command.d.ts +13 -0
  127. package/dist/src/presentation/cli/commands/workflow/create.command.d.ts.map +1 -0
  128. package/dist/src/presentation/cli/commands/workflow/create.command.js +83 -0
  129. package/dist/src/presentation/cli/commands/workflow/delete.command.d.ts +13 -0
  130. package/dist/src/presentation/cli/commands/workflow/delete.command.d.ts.map +1 -0
  131. package/dist/src/presentation/cli/commands/workflow/delete.command.js +50 -0
  132. package/dist/src/presentation/cli/commands/workflow/disable.command.d.ts +11 -0
  133. package/dist/src/presentation/cli/commands/workflow/disable.command.d.ts.map +1 -0
  134. package/dist/src/presentation/cli/commands/workflow/disable.command.js +32 -0
  135. package/dist/src/presentation/cli/commands/workflow/enable.command.d.ts +11 -0
  136. package/dist/src/presentation/cli/commands/workflow/enable.command.d.ts.map +1 -0
  137. package/dist/src/presentation/cli/commands/workflow/enable.command.js +35 -0
  138. package/dist/src/presentation/cli/commands/workflow/format-helpers.d.ts +35 -0
  139. package/dist/src/presentation/cli/commands/workflow/format-helpers.d.ts.map +1 -0
  140. package/dist/src/presentation/cli/commands/workflow/format-helpers.js +89 -0
  141. package/dist/src/presentation/cli/commands/workflow/history.command.d.ts +12 -0
  142. package/dist/src/presentation/cli/commands/workflow/history.command.d.ts.map +1 -0
  143. package/dist/src/presentation/cli/commands/workflow/history.command.js +46 -0
  144. package/dist/src/presentation/cli/commands/workflow/index.d.ts +26 -0
  145. package/dist/src/presentation/cli/commands/workflow/index.d.ts.map +1 -0
  146. package/dist/src/presentation/cli/commands/workflow/index.js +48 -0
  147. package/dist/src/presentation/cli/commands/workflow/list.command.d.ts +11 -0
  148. package/dist/src/presentation/cli/commands/workflow/list.command.d.ts.map +1 -0
  149. package/dist/src/presentation/cli/commands/workflow/list.command.js +52 -0
  150. package/dist/src/presentation/cli/commands/workflow/run.command.d.ts +11 -0
  151. package/dist/src/presentation/cli/commands/workflow/run.command.d.ts.map +1 -0
  152. package/dist/src/presentation/cli/commands/workflow/run.command.js +37 -0
  153. package/dist/src/presentation/cli/commands/workflow/schedule.command.d.ts +13 -0
  154. package/dist/src/presentation/cli/commands/workflow/schedule.command.d.ts.map +1 -0
  155. package/dist/src/presentation/cli/commands/workflow/schedule.command.js +76 -0
  156. package/dist/src/presentation/cli/commands/workflow/show.command.d.ts +11 -0
  157. package/dist/src/presentation/cli/commands/workflow/show.command.d.ts.map +1 -0
  158. package/dist/src/presentation/cli/commands/workflow/show.command.js +93 -0
  159. package/dist/src/presentation/cli/commands/workflow/update.command.d.ts +13 -0
  160. package/dist/src/presentation/cli/commands/workflow/update.command.d.ts.map +1 -0
  161. package/dist/src/presentation/cli/commands/workflow/update.command.js +67 -0
  162. package/dist/src/presentation/cli/index.js +2 -0
  163. package/dist/src/presentation/web/app/actions/get-workflow-history.d.ts +7 -0
  164. package/dist/src/presentation/web/app/actions/get-workflow-history.d.ts.map +1 -0
  165. package/dist/src/presentation/web/app/actions/get-workflow-history.js +17 -0
  166. package/dist/src/presentation/web/app/actions/list-workflows.d.ts +7 -0
  167. package/dist/src/presentation/web/app/actions/list-workflows.d.ts.map +1 -0
  168. package/dist/src/presentation/web/app/actions/list-workflows.js +17 -0
  169. package/dist/src/presentation/web/app/actions/toggle-workflow.d.ts +8 -0
  170. package/dist/src/presentation/web/app/actions/toggle-workflow.d.ts.map +1 -0
  171. package/dist/src/presentation/web/app/actions/toggle-workflow.js +19 -0
  172. package/dist/src/presentation/web/app/actions/trigger-workflow.d.ts +8 -0
  173. package/dist/src/presentation/web/app/actions/trigger-workflow.d.ts.map +1 -0
  174. package/dist/src/presentation/web/app/actions/trigger-workflow.js +19 -0
  175. package/dist/src/presentation/web/app/workflows/page.d.ts +4 -0
  176. package/dist/src/presentation/web/app/workflows/page.d.ts.map +1 -0
  177. package/dist/src/presentation/web/app/workflows/page.js +18 -0
  178. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  179. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +4 -0
  180. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
  181. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +3 -0
  182. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
  183. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +3 -0
  184. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts.map +1 -1
  185. package/dist/src/presentation/web/components/features/settings/notification-settings-section.js +6 -1
  186. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts.map +1 -1
  187. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.js +6 -0
  188. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  189. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +19 -2
  190. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  191. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +1 -0
  192. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.d.ts +7 -0
  193. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.d.ts.map +1 -0
  194. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.js +84 -0
  195. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.d.ts +11 -0
  196. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.d.ts.map +1 -0
  197. package/dist/src/presentation/web/components/features/workflows/workflow-execution-history.stories.js +104 -0
  198. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.d.ts +8 -0
  199. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.d.ts.map +1 -0
  200. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.js +68 -0
  201. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.d.ts +11 -0
  202. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.d.ts.map +1 -0
  203. package/dist/src/presentation/web/components/features/workflows/workflow-list-item.stories.js +89 -0
  204. package/dist/src/presentation/web/components/features/workflows/workflow-list.d.ts +8 -0
  205. package/dist/src/presentation/web/components/features/workflows/workflow-list.d.ts.map +1 -0
  206. package/dist/src/presentation/web/components/features/workflows/workflow-list.js +10 -0
  207. package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.d.ts +11 -0
  208. package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.d.ts.map +1 -0
  209. package/dist/src/presentation/web/components/features/workflows/workflow-list.stories.js +90 -0
  210. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.d.ts +6 -0
  211. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.d.ts.map +1 -0
  212. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.js +14 -0
  213. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.d.ts +10 -0
  214. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.d.ts.map +1 -0
  215. package/dist/src/presentation/web/components/features/workflows/workflows-page-client.stories.js +70 -0
  216. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  217. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  218. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.d.ts.map +1 -1
  219. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.stories.js +1 -0
  220. package/dist/src/presentation/web/hooks/feature-flags-context.d.ts.map +1 -1
  221. package/dist/src/presentation/web/hooks/feature-flags-context.js +1 -0
  222. package/dist/src/presentation/web/lib/feature-flags.d.ts +2 -0
  223. package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -1
  224. package/dist/src/presentation/web/lib/feature-flags.js +5 -0
  225. package/dist/tsconfig.build.tsbuildinfo +1 -1
  226. package/package.json +2 -1
  227. package/web/.next/BUILD_ID +1 -1
  228. package/web/.next/app-path-routes-manifest.json +2 -1
  229. package/web/.next/build-manifest.json +2 -2
  230. package/web/.next/fallback-build-manifest.json +2 -2
  231. package/web/.next/prerender-manifest.json +3 -3
  232. package/web/.next/required-server-files.js +1 -1
  233. package/web/.next/required-server-files.json +1 -1
  234. package/web/.next/routes-manifest.json +6 -0
  235. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +25 -25
  236. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  237. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  238. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  239. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +25 -25
  240. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  241. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  242. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  243. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +31 -31
  244. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
  245. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  246. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  247. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +31 -31
  248. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
  249. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  250. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  251. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +23 -23
  252. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  253. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  254. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  255. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +25 -25
  256. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  257. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  258. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  259. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +31 -31
  260. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
  261. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  262. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  263. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +31 -31
  264. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
  265. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  266. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  267. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +23 -23
  268. package/web/.next/server/app/(dashboard)/page.js +1 -1
  269. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  270. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  271. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +23 -23
  272. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  273. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  274. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  275. package/web/.next/server/app/_global-error.html +2 -2
  276. package/web/.next/server/app/_global-error.rsc +1 -1
  277. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  278. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  279. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  280. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  281. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  282. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +3 -3
  283. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  284. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  285. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  286. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  287. package/web/.next/server/app/api/feature-logs/route.js +1 -1
  288. package/web/.next/server/app/api/feature-logs/route.js.nft.json +1 -1
  289. package/web/.next/server/app/api/graph-data/route.js +1 -1
  290. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  291. package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  292. package/web/.next/server/app/settings/page.js +2 -2
  293. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  294. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  295. package/web/.next/server/app/skills/page/server-reference-manifest.json +8 -8
  296. package/web/.next/server/app/skills/page.js +1 -1
  297. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  298. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  299. package/web/.next/server/app/tools/page/server-reference-manifest.json +8 -8
  300. package/web/.next/server/app/tools/page.js +1 -1
  301. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  302. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  303. package/web/.next/server/app/version/page/server-reference-manifest.json +3 -3
  304. package/web/.next/server/app/version/page.js.nft.json +1 -1
  305. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  306. package/web/.next/server/app/workflows/page/app-paths-manifest.json +3 -0
  307. package/web/.next/server/app/workflows/page/build-manifest.json +18 -0
  308. package/web/.next/server/app/workflows/page/next-font-manifest.json +6 -0
  309. package/web/.next/server/app/workflows/page/react-loadable-manifest.json +8 -0
  310. package/web/.next/server/app/workflows/page/server-reference-manifest.json +110 -0
  311. package/web/.next/server/app/workflows/page.js +18 -0
  312. package/web/.next/server/app/workflows/page.js.map +5 -0
  313. package/web/.next/server/app/workflows/page.js.nft.json +1 -0
  314. package/web/.next/server/app/workflows/page_client-reference-manifest.js +2 -0
  315. package/web/.next/server/app-paths-manifest.json +2 -1
  316. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  317. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  318. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  319. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js +1 -1
  320. package/web/.next/server/chunks/[root-of-the-server]__c6e32a23._.js.map +1 -1
  321. package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js → [root-of-the-server]__c7d52490._.js} +2 -2
  322. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  323. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  324. package/web/.next/server/chunks/ssr/{_02ec1aea._.js → 403f9_next_53742624._.js} +2 -2
  325. package/web/.next/server/chunks/ssr/403f9_next_53742624._.js.map +1 -0
  326. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_b49d9c97.js +1 -1
  327. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_b49d9c97.js.map +1 -1
  328. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  329. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  330. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_0c7787d0._.js +3 -0
  331. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_0c7787d0._.js.map +1 -0
  332. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_28632197.js +1 -1
  333. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_28632197.js.map +1 -1
  334. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_10695d37.js +1 -1
  335. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_10695d37.js.map +1 -1
  336. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a5f9c6e5._.js → [root-of-the-server]__07f12984._.js} +3 -3
  337. package/web/.next/server/chunks/ssr/[root-of-the-server]__07f12984._.js.map +1 -0
  338. package/web/.next/server/chunks/ssr/[root-of-the-server]__082758f6._.js +3 -0
  339. package/web/.next/server/chunks/ssr/[root-of-the-server]__082758f6._.js.map +1 -0
  340. package/web/.next/server/chunks/ssr/[root-of-the-server]__32cd6108._.js +3 -0
  341. package/web/.next/server/chunks/ssr/[root-of-the-server]__32cd6108._.js.map +1 -0
  342. package/web/.next/server/chunks/ssr/[root-of-the-server]__33ac1a70._.js +3 -0
  343. package/web/.next/server/chunks/ssr/[root-of-the-server]__33ac1a70._.js.map +1 -0
  344. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  345. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
  346. package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
  347. package/web/.next/server/chunks/ssr/[root-of-the-server]__44358910._.js +4 -0
  348. package/web/.next/server/chunks/ssr/[root-of-the-server]__44358910._.js.map +1 -0
  349. package/web/.next/server/chunks/ssr/{[root-of-the-server]__f4e193d3._.js → [root-of-the-server]__47ded061._.js} +2 -2
  350. package/web/.next/server/chunks/ssr/{[root-of-the-server]__f4e193d3._.js.map → [root-of-the-server]__47ded061._.js.map} +1 -1
  351. package/web/.next/server/chunks/ssr/{[root-of-the-server]__3ef34e4c._.js → [root-of-the-server]__57e0ee34._.js} +3 -3
  352. package/web/.next/server/chunks/ssr/[root-of-the-server]__57e0ee34._.js.map +1 -0
  353. package/web/.next/server/chunks/ssr/{[root-of-the-server]__d68f61dd._.js → [root-of-the-server]__68ce373c._.js} +2 -2
  354. package/web/.next/server/chunks/ssr/{[root-of-the-server]__d68f61dd._.js.map → [root-of-the-server]__68ce373c._.js.map} +1 -1
  355. package/web/.next/server/chunks/ssr/[root-of-the-server]__6e93b49c._.js +3 -0
  356. package/web/.next/server/chunks/ssr/{[root-of-the-server]__b3dbadca._.js.map → [root-of-the-server]__6e93b49c._.js.map} +1 -1
  357. package/web/.next/server/chunks/ssr/{[root-of-the-server]__b1670307._.js → [root-of-the-server]__718766da._.js} +2 -2
  358. package/web/.next/server/chunks/ssr/{[root-of-the-server]__b1670307._.js.map → [root-of-the-server]__718766da._.js.map} +1 -1
  359. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
  360. package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
  361. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  362. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  363. package/web/.next/server/chunks/ssr/{[root-of-the-server]__785e8499._.js → [root-of-the-server]__fdd058b2._.js} +2 -2
  364. package/web/.next/server/chunks/ssr/{[root-of-the-server]__785e8499._.js.map → [root-of-the-server]__fdd058b2._.js.map} +1 -1
  365. package/web/.next/server/chunks/ssr/_20a4a0d5._.js +3 -0
  366. package/web/.next/server/chunks/ssr/_20a4a0d5._.js.map +1 -0
  367. package/web/.next/server/chunks/ssr/_25555eb5._.js +3 -0
  368. package/web/.next/server/chunks/ssr/_25555eb5._.js.map +1 -0
  369. package/web/.next/server/chunks/ssr/{_b5fc318a._.js → _277acdde._.js} +2 -2
  370. package/web/.next/server/chunks/ssr/_277acdde._.js.map +1 -0
  371. package/web/.next/server/chunks/ssr/_4711e8cf._.js +3 -0
  372. package/web/.next/server/chunks/ssr/_4711e8cf._.js.map +1 -0
  373. package/web/.next/server/chunks/ssr/{_a9f57758._.js → _6701ee41._.js} +2 -2
  374. package/web/.next/server/chunks/ssr/{_a9f57758._.js.map → _6701ee41._.js.map} +1 -1
  375. package/web/.next/server/chunks/ssr/_89a36303._.js +3 -0
  376. package/web/.next/server/chunks/ssr/_89a36303._.js.map +1 -0
  377. package/web/.next/server/chunks/ssr/{_32961561._.js → _8e8cd7e1._.js} +2 -2
  378. package/web/.next/server/chunks/ssr/{_32961561._.js.map → _8e8cd7e1._.js.map} +1 -1
  379. package/web/.next/server/chunks/ssr/_9869d3da._.js +3 -0
  380. package/web/.next/server/chunks/ssr/_9869d3da._.js.map +1 -0
  381. package/web/.next/server/chunks/ssr/{_0020fddd._.js → _a3721140._.js} +2 -2
  382. package/web/.next/server/chunks/ssr/_a3721140._.js.map +1 -0
  383. package/web/.next/server/chunks/ssr/_a37f5f18._.js +1 -1
  384. package/web/.next/server/chunks/ssr/_a37f5f18._.js.map +1 -1
  385. package/web/.next/server/chunks/ssr/_cc1243e6._.js +3 -0
  386. package/web/.next/server/chunks/ssr/_cc1243e6._.js.map +1 -0
  387. package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
  388. package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
  389. package/web/.next/server/chunks/ssr/_e3411387._.js +9 -0
  390. package/web/.next/server/chunks/ssr/_e3411387._.js.map +1 -0
  391. package/web/.next/server/chunks/ssr/_e69a26ba._.js +1 -1
  392. package/web/.next/server/chunks/ssr/_f64ffec0._.js +4 -0
  393. package/web/.next/server/chunks/ssr/_f64ffec0._.js.map +1 -0
  394. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  395. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  396. package/web/.next/server/chunks/ssr/{_1b7dae9a._.js → f7870_sonner_dist_index_mjs_dbf63824._.js} +2 -2
  397. package/web/.next/server/chunks/ssr/f7870_sonner_dist_index_mjs_dbf63824._.js.map +1 -0
  398. package/web/.next/server/chunks/ssr/node_modules__pnpm_28388798._.js +3 -0
  399. package/web/.next/server/chunks/ssr/node_modules__pnpm_28388798._.js.map +1 -0
  400. package/web/.next/server/chunks/ssr/node_modules__pnpm_ae1705ef._.js +3 -0
  401. package/web/.next/server/chunks/ssr/node_modules__pnpm_ae1705ef._.js.map +1 -0
  402. package/web/.next/server/chunks/ssr/src_presentation_web_53666118._.js +2 -2
  403. package/web/.next/server/chunks/ssr/src_presentation_web_53666118._.js.map +1 -1
  404. package/web/.next/server/chunks/ssr/src_presentation_web_53fa3010._.js +3 -0
  405. package/web/.next/server/chunks/ssr/{src_presentation_web_06ffd221._.js.map → src_presentation_web_53fa3010._.js.map} +1 -1
  406. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_d95e128d.js +1 -1
  407. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_d95e128d.js.map +1 -1
  408. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
  409. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
  410. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
  411. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
  412. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  413. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  414. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  415. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  416. package/web/.next/server/chunks/ssr/src_presentation_web_e4df6dd7._.js +2 -2
  417. package/web/.next/server/chunks/ssr/src_presentation_web_e4df6dd7._.js.map +1 -1
  418. package/web/.next/server/pages/500.html +2 -2
  419. package/web/.next/server/server-reference-manifest.js +1 -1
  420. package/web/.next/server/server-reference-manifest.json +123 -42
  421. package/web/.next/static/chunks/{d0be9b22c3b9bce8.js → 196650f8cd7fb06a.js} +1 -1
  422. package/web/.next/static/chunks/{92cd6f523639a6fa.css → 2002f5eec5ffec42.css} +1 -1
  423. package/web/.next/static/chunks/2c1ff62df9b34313.js +1 -0
  424. package/web/.next/static/chunks/3005583e819fc4fc.js +1 -0
  425. package/web/.next/static/chunks/333c7873f6b17ef1.js +1 -0
  426. package/web/.next/static/chunks/3b3f8c4f6c36a7ba.js +1 -0
  427. package/web/.next/static/chunks/{672e3da3ad26005b.js → 42c9564e375717ed.js} +1 -1
  428. package/web/.next/static/chunks/43e0eea352eb5106.js +5 -0
  429. package/web/.next/static/chunks/5420560352333486.js +1 -0
  430. package/web/.next/static/chunks/62fa33876b0964a4.js +1 -0
  431. package/web/.next/static/chunks/6db2addb5e13e372.js +1 -0
  432. package/web/.next/static/chunks/886d0385ca1d4484.js +1 -0
  433. package/web/.next/static/chunks/8e52a649c3f6bdf4.js +1 -0
  434. package/web/.next/static/chunks/a02fc9467a585a1f.js +2 -0
  435. package/web/.next/static/chunks/{796bb98fb3f35b71.js → bee578019062e7f9.js} +1 -1
  436. package/web/.next/static/chunks/cdb51cfd682387d2.js +1 -0
  437. package/web/.next/static/chunks/ed35b4293a81c861.js +9 -0
  438. package/web/.next/static/chunks/ed7fbcdf0b48e735.js +1 -0
  439. package/web/.next/static/chunks/f75142a1b75f1c32.js +1 -0
  440. package/web/.next/static/chunks/fabcd29d488281fa.js +1 -0
  441. package/web/.next/static/chunks/fd925f996c3fa318.js +1 -0
  442. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-spec-storage-mode.d.ts +0 -12
  443. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-spec-storage-mode.d.ts.map +0 -1
  444. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/044-add-spec-storage-mode.js +0 -19
  445. package/dist/packages/core/src/infrastructure/services/filesystem/repo-hash.d.ts +0 -17
  446. package/dist/packages/core/src/infrastructure/services/filesystem/repo-hash.d.ts.map +0 -1
  447. package/dist/packages/core/src/infrastructure/services/filesystem/repo-hash.js +0 -21
  448. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js +0 -3
  449. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_8b618f7d._.js.map +0 -1
  450. package/web/.next/server/chunks/ssr/[root-of-the-server]__3ef34e4c._.js.map +0 -1
  451. package/web/.next/server/chunks/ssr/[root-of-the-server]__6ec59045._.js +0 -3
  452. package/web/.next/server/chunks/ssr/[root-of-the-server]__6ec59045._.js.map +0 -1
  453. package/web/.next/server/chunks/ssr/[root-of-the-server]__a5f9c6e5._.js.map +0 -1
  454. package/web/.next/server/chunks/ssr/[root-of-the-server]__b3dbadca._.js +0 -3
  455. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js +0 -3
  456. package/web/.next/server/chunks/ssr/[root-of-the-server]__d48c5b11._.js.map +0 -1
  457. package/web/.next/server/chunks/ssr/_0020fddd._.js.map +0 -1
  458. package/web/.next/server/chunks/ssr/_01046927._.js +0 -9
  459. package/web/.next/server/chunks/ssr/_01046927._.js.map +0 -1
  460. package/web/.next/server/chunks/ssr/_02ec1aea._.js.map +0 -1
  461. package/web/.next/server/chunks/ssr/_1b7dae9a._.js.map +0 -1
  462. package/web/.next/server/chunks/ssr/_503680be._.js +0 -3
  463. package/web/.next/server/chunks/ssr/_503680be._.js.map +0 -1
  464. package/web/.next/server/chunks/ssr/_67104d9e._.js +0 -3
  465. package/web/.next/server/chunks/ssr/_67104d9e._.js.map +0 -1
  466. package/web/.next/server/chunks/ssr/_7dca1882._.js +0 -3
  467. package/web/.next/server/chunks/ssr/_7dca1882._.js.map +0 -1
  468. package/web/.next/server/chunks/ssr/_b5fc318a._.js.map +0 -1
  469. package/web/.next/server/chunks/ssr/_d4b20e29._.js +0 -3
  470. package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +0 -1
  471. package/web/.next/server/chunks/ssr/_f39a1adb._.js +0 -3
  472. package/web/.next/server/chunks/ssr/_f39a1adb._.js.map +0 -1
  473. package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js +0 -3
  474. package/web/.next/server/chunks/ssr/node_modules__pnpm_55c7a131._.js.map +0 -1
  475. package/web/.next/server/chunks/ssr/src_presentation_web_06ffd221._.js +0 -3
  476. package/web/.next/static/chunks/0b7fe2ac4f078f54.js +0 -13
  477. package/web/.next/static/chunks/2bbb31a39a80d011.js +0 -1
  478. package/web/.next/static/chunks/5466ac7c8d7c6b2b.js +0 -1
  479. package/web/.next/static/chunks/601d93593f5f664f.js +0 -1
  480. package/web/.next/static/chunks/688971d5bad5dc7c.js +0 -1
  481. package/web/.next/static/chunks/6daf875725c43e2c.js +0 -2
  482. package/web/.next/static/chunks/991f2fcba923f3ed.js +0 -1
  483. package/web/.next/static/chunks/af4d1051b6fa73d5.js +0 -1
  484. package/web/.next/static/chunks/b70dd4985a814b27.js +0 -1
  485. package/web/.next/static/chunks/c317cd6a6f76361d.js +0 -1
  486. package/web/.next/static/chunks/d0dff217a94d4ee1.js +0 -1
  487. package/web/.next/static/chunks/db862617e62ba1f9.js +0 -1
  488. package/web/.next/static/chunks/e15904973d49ff89.js +0 -1
  489. package/web/.next/static/chunks/e6cff1dacc561fa0.js +0 -1
  490. package/web/.next/static/chunks/e8d49a8e1274cb49.js +0 -1
  491. /package/web/.next/server/chunks/{[root-of-the-server]__2b1074db._.js.map → [root-of-the-server]__c7d52490._.js.map} +0 -0
  492. /package/web/.next/static/{xpAWvEAtoYdP3klvh5Yyo → w0YQoUPySQy1O9cN91KEk}/_buildManifest.js +0 -0
  493. /package/web/.next/static/{xpAWvEAtoYdP3klvh5Yyo → w0YQoUPySQy1O9cN91KEk}/_clientMiddlewareManifest.json +0 -0
  494. /package/web/.next/static/{xpAWvEAtoYdP3klvh5Yyo → w0YQoUPySQy1O9cN91KEk}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[9851,a=>{"use strict";var b=a.i(12513),c=a.i(73101),d=a.i(65324),e=a.i(33841),f=a.i(46646),g=a.i(68670),h=a.i(85321),i=a.i(84095),j=a.i(56799),k=a.i(80496),l=a.i(94691),m=a.i(41872),n=a.i(9959),o=a.i(79124),p=a.i(23504),q=a.i(27900),r=a.i(50845),s=a.i(26604),t=a.i(54723),u=a.i(18942),v=a.i(49560),w=a.i(39353),x=a.i(29207),y=a.i(92658),z=a.i(96380),A=a.i(12581);async function B(a){let{branchName:b,repositoryPath:c}=a;if(!b?.trim())return{error:"Branch name is required"};if(!c?.trim())return{error:"Repository path is required"};try{let a=(0,z.resolve)("AdoptBranchUseCase");return{feature:(await a.execute({branchName:b,repositoryPath:c})).feature}}catch(a){return{error:a instanceof Error?a.message:"Failed to adopt branch"}}}async function C(a){if(!a?.trim())return[];try{let b=(0,z.resolve)("IWorktreeService");return await b.listBranches(a)}catch{return[]}}(0,A.ensureServerEntryExports)([B]),(0,y.registerServerReference)(B,"40453ced7c4754a4659c6f196df8a77e952e4d4b9d",null),(0,A.ensureServerEntryExports)([C]),(0,y.registerServerReference)(C,"40f77ee25948c673063e2815a4314d75eb5bf1e83a",null),a.s([],3734),a.i(3734),a.s(["0008bd20bbf5b403395fb0df3b21d20269fdcfda6d",()=>p.getAllAgentModels,"0068139e2848c0e3ae0b850b7603feaeaa20852a68",()=>o.checkToolStatus,"00cde7de5f5a56309fa9aeeea359c792dabfdb31c6",()=>n.checkAgentAuth,"00e3cfca338acb6e85001241c2c18c4327bb3ae9cf",()=>b.pickFolder,"00e9faf6e990cfa3120b531d131f323558150a85f8",()=>m.isAgentSetupComplete,"40061555b87d8f5d95259cdf899f4737d1ee69ba4e",()=>u.stopFeature,"40142fdf630035e35d26f690bdddb26cb852c276ee",()=>i.openIde,"402da9a0c2e2152e620390901b17bdc6edca86755f",()=>h.getDeploymentStatus,"4040bfa69ada2a3a9a8b52ca4ea231fc25def1262c",()=>g.stopDeployment,"40453ced7c4754a4659c6f196df8a77e952e4d4b9d",()=>B,"405079d68868bed01505e6a5730cb771c1a1c9a83f",()=>t.startFeature,"405ca304df898e87772db1d6d8d3c3fc989a285293",()=>j.openShell,"408462fd27dd1bf0f3f3de02d5a3bb6610c42ab851",()=>d.importGitHubRepository,"4084e2cd98012a59222bdc8ab26b7a7ac97c9fdc8c",()=>f.deployRepository,"408861903dd392a22ab7819ace3d8d04db7cc0d8b0",()=>e.deployFeature,"4094abea295ef0249555656f3a5f2f70be436d72a2",()=>w.deleteRepository,"40a2e17bf82d742ff15faaa9575ea39c19ac47b044",()=>l.getDeploymentLogs,"40a9545f271f06997052b3dc6d4e8282f0f4f27ee5",()=>s.resumeFeature,"40b7b0ca30b0ff4accb34984b45e39124993aab854",()=>k.openFolder,"40d42e95e0e1b5cfd6a83cd5bab1dcb8f658974067",()=>x.getFeatureMetadata,"40d6e0fca1a10697d2b0f8e8d2249afb415e40e543",()=>v.addRepository,"40e93beaf86f092bf8f2832f8aa682d70ac141224f",()=>c.listGitHubRepositories,"40f77ee25948c673063e2815a4314d75eb5bf1e83a",()=>C,"601fabc2e16a6a6469f17b8c0f06e3b4578aa0e68b",()=>q.updateAgentAndModel,"78a1a9b066db965439728dcf68573eb82acd8550f1",()=>r.deleteFeature],9851)}];
1
+ module.exports=[9851,a=>{"use strict";var b=a.i(12513),c=a.i(73101),d=a.i(65324),e=a.i(33841),f=a.i(46646),g=a.i(68670),h=a.i(85321),i=a.i(84095),j=a.i(56799),k=a.i(80496),l=a.i(94691),m=a.i(41872),n=a.i(9959),o=a.i(79124),p=a.i(23504),q=a.i(27900),r=a.i(50845),s=a.i(26604),t=a.i(54723),u=a.i(18942),v=a.i(49560),w=a.i(39353),x=a.i(29207),y=a.i(92658),z=a.i(96380),A=a.i(12581);async function B(a){let{branchName:b,repositoryPath:c}=a;if(!b?.trim())return{error:"Branch name is required"};if(!c?.trim())return{error:"Repository path is required"};try{let a=(0,z.resolve)("AdoptBranchUseCase");return{feature:(await a.execute({branchName:b,repositoryPath:c})).feature}}catch(a){return{error:a instanceof Error?a.message:"Failed to adopt branch"}}}async function C(a){if(!a?.trim())return[];try{let b=(0,z.resolve)("IWorktreeService");return await b.listBranches(a)}catch{return[]}}(0,A.ensureServerEntryExports)([B]),(0,y.registerServerReference)(B,"40a9ccfc4cff8a9eb9dc2b6eec480db62ae7f65c46",null),(0,A.ensureServerEntryExports)([C]),(0,y.registerServerReference)(C,"404319e932d86dc7b81f74ddc4cfb4dced0b1785ce",null),a.s([],3734),a.i(3734),a.s(["002f2967ce709cc8ff459cbb809e6d552988a8bc4b",()=>p.getAllAgentModels,"009456d5dac90b42ef94e861d2125f0692d29c16b7",()=>m.isAgentSetupComplete,"00991ec9718419b0022164ae2119b7c7228ce24e68",()=>o.checkToolStatus,"00a42e81a9907caa27c6ece5bda8c48c9aad04ec52",()=>n.checkAgentAuth,"00b821152142796cad3408fc408de0e19b84949746",()=>b.pickFolder,"40053e9bbbd3725c2903741b60fae1010af4b5f11c",()=>k.openFolder,"40160c6c9a1bd868caca5cef6abda0221c4aea5cdb",()=>c.listGitHubRepositories,"4040e4de3a3984db8700274cfdebb172c08c889461",()=>f.deployRepository,"404319e932d86dc7b81f74ddc4cfb4dced0b1785ce",()=>C,"404500b5760aa6052f9889fd5af104fd135f06edcd",()=>u.stopFeature,"40558b37ddc6e76865c7e7840b3475bfed70960447",()=>e.deployFeature,"407bd677e666cb40bd612162f10bea1c64e7303c55",()=>i.openIde,"408e61b5cfadb669a039239c24b2b7cbf578ecb5c0",()=>s.resumeFeature,"40a9412c7b8f23137fd9b5f2c82992e8749d2cc393",()=>g.stopDeployment,"40a9ccfc4cff8a9eb9dc2b6eec480db62ae7f65c46",()=>B,"40c0fe4ee72c50bf03e6b0b9fb27e99160adfb7741",()=>w.deleteRepository,"40c134bd3a7c1024121425052d646d50707aae6376",()=>x.getFeatureMetadata,"40c92898ee0c1eee68a222613bec4390fd0ef5853e",()=>v.addRepository,"40cba523381ce5dbce6b05f3e3748c2dcef5a39cc1",()=>d.importGitHubRepository,"40cc4c8c517092798123730a9a3cba588135eeb42f",()=>j.openShell,"40cd53da47c92ba22412185e60a846eafa1fb90d32",()=>h.getDeploymentStatus,"40e183acc9dafc190750e7e62751e6370a0c4e7fdd",()=>t.startFeature,"40eeded644d369a46e499f22c1ca72c6e8896f407c",()=>l.getDeploymentLogs,"604a84e5dbb07de5892db23a7739d5a8cbd8b18ffa",()=>q.updateAgentAndModel,"78544adedbbd90d31e3d395f03accd8877d015d9da",()=>r.deleteFeature],9851)}];
2
2
 
3
3
  //# sourceMappingURL=744ca_web__next-internal_server_app_%28dashboard%29_%40drawer_adopt_page_actions_b49d9c97.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/adopt/page/actions.js%20%28server%20actions%20loader%29","../../../../../../../src/presentation/web/app/actions/adopt-branch.ts","../../../../../../../src/presentation/web/app/actions/list-branches.ts"],"sourcesContent":["export {pickFolder as '00e3cfca338acb6e85001241c2c18c4327bb3ae9cf'} from 'ACTIONS_MODULE0'\nexport {listGitHubRepositories as '40e93beaf86f092bf8f2832f8aa682d70ac141224f'} from 'ACTIONS_MODULE1'\nexport {importGitHubRepository as '408462fd27dd1bf0f3f3de02d5a3bb6610c42ab851'} from 'ACTIONS_MODULE2'\nexport {deployFeature as '408861903dd392a22ab7819ace3d8d04db7cc0d8b0'} from 'ACTIONS_MODULE3'\nexport {deployRepository as '4084e2cd98012a59222bdc8ab26b7a7ac97c9fdc8c'} from 'ACTIONS_MODULE4'\nexport {stopDeployment as '4040bfa69ada2a3a9a8b52ca4ea231fc25def1262c'} from 'ACTIONS_MODULE5'\nexport {getDeploymentStatus as '402da9a0c2e2152e620390901b17bdc6edca86755f'} from 'ACTIONS_MODULE6'\nexport {openIde as '40142fdf630035e35d26f690bdddb26cb852c276ee'} from 'ACTIONS_MODULE7'\nexport {openShell as '405ca304df898e87772db1d6d8d3c3fc989a285293'} from 'ACTIONS_MODULE8'\nexport {openFolder as '40b7b0ca30b0ff4accb34984b45e39124993aab854'} from 'ACTIONS_MODULE9'\nexport {getDeploymentLogs as '40a2e17bf82d742ff15faaa9575ea39c19ac47b044'} from 'ACTIONS_MODULE10'\nexport {isAgentSetupComplete as '00e9faf6e990cfa3120b531d131f323558150a85f8'} from 'ACTIONS_MODULE11'\nexport {checkAgentAuth as '00cde7de5f5a56309fa9aeeea359c792dabfdb31c6'} from 'ACTIONS_MODULE12'\nexport {checkToolStatus as '0068139e2848c0e3ae0b850b7603feaeaa20852a68'} from 'ACTIONS_MODULE13'\nexport {getAllAgentModels as '0008bd20bbf5b403395fb0df3b21d20269fdcfda6d'} from 'ACTIONS_MODULE14'\nexport {updateAgentAndModel as '601fabc2e16a6a6469f17b8c0f06e3b4578aa0e68b'} from 'ACTIONS_MODULE15'\nexport {deleteFeature as '78a1a9b066db965439728dcf68573eb82acd8550f1'} from 'ACTIONS_MODULE16'\nexport {resumeFeature as '40a9545f271f06997052b3dc6d4e8282f0f4f27ee5'} from 'ACTIONS_MODULE17'\nexport {startFeature as '405079d68868bed01505e6a5730cb771c1a1c9a83f'} from 'ACTIONS_MODULE18'\nexport {stopFeature as '40061555b87d8f5d95259cdf899f4737d1ee69ba4e'} from 'ACTIONS_MODULE19'\nexport {addRepository as '40d6e0fca1a10697d2b0f8e8d2249afb415e40e543'} from 'ACTIONS_MODULE20'\nexport {deleteRepository as '4094abea295ef0249555656f3a5f2f70be436d72a2'} from 'ACTIONS_MODULE21'\nexport {getFeatureMetadata as '40d42e95e0e1b5cfd6a83cd5bab1dcb8f658974067'} from 'ACTIONS_MODULE22'\nexport {adoptBranch as '40453ced7c4754a4659c6f196df8a77e952e4d4b9d'} from 'ACTIONS_MODULE23'\nexport {listBranches as '40f77ee25948c673063e2815a4314d75eb5bf1e83a'} from 'ACTIONS_MODULE24'\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { AdoptBranchUseCase } from '@shepai/core/application/use-cases/features/adopt-branch.use-case';\nimport type { Feature } from '@shepai/core/domain/generated/output';\n\ninterface AdoptBranchInput {\n branchName: string;\n repositoryPath: string;\n}\n\nexport async function adoptBranch(\n input: AdoptBranchInput\n): Promise<{ feature?: Feature; error?: string }> {\n const { branchName, repositoryPath } = input;\n\n if (!branchName?.trim()) {\n return { error: 'Branch name is required' };\n }\n if (!repositoryPath?.trim()) {\n return { error: 'Repository path is required' };\n }\n\n try {\n const useCase = resolve<AdoptBranchUseCase>('AdoptBranchUseCase');\n const result = await useCase.execute({ branchName, repositoryPath });\n return { feature: result.feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to adopt branch';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IWorktreeService } from '@shepai/core/application/ports/output/services/worktree-service.interface';\n\n/**\n * Server action that returns all branch names (local + remote) for a repository.\n * Used by the adopt branch drawer to populate the branch combobox.\n */\nexport async function listBranches(repositoryPath: string): Promise<string[]> {\n if (!repositoryPath?.trim()) {\n return [];\n }\n\n try {\n const worktreeService = resolve<IWorktreeService>('IWorktreeService');\n return await worktreeService.listBranches(repositoryPath);\n } catch {\n return [];\n }\n}\n"],"names":[],"mappings":"sCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,oBCpBA,EAAA,EAAA,CAAA,CAAA,oBASO,eAAe,EACpB,CAAuB,EAEvB,GAAM,YAAE,CAAU,gBAAE,CAAc,CAAE,CAAG,EAEvC,GAAI,CAAC,GAAY,OACf,CADuB,KAChB,CAAE,MAAO,yBAA0B,EAE5C,GAAI,CAAC,GAAgB,OACnB,CAD2B,KACpB,CAAE,MAAO,6BAA8B,EAGhD,GAAI,CACF,IAAM,EAAU,CAAA,EAAA,EAAA,OAAA,AAAO,EAAqB,sBAE5C,MAAO,CAAE,QAAS,CADH,MAAM,EAAQ,OAAO,CAAC,YAAE,iBAAY,CAAe,EAAA,EACzC,OAAO,AAAC,CACnC,CAAE,MAAO,EAAgB,CAEvB,MAAO,CAAE,MADO,CACA,YADiB,MAAQ,EAAM,OAAO,CAAG,wBACjC,CAC1B,CACF,CCtBO,eAAe,EAAa,CAAsB,EACvD,GAAI,CAAC,GAAgB,OACnB,CAD2B,KACpB,EAAE,CAGX,GAAI,CACF,IAAM,EAAkB,CAAA,EAAA,EAAA,OAAA,AAAO,EAAmB,oBAClD,OAAO,MAAM,EAAgB,YAAY,CAAC,EAC5C,CAAE,KAAM,CACN,MAAO,EAAE,AACX,CACF,iCDTsB,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,sCCFA,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA"}
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/.next-internal/server/app/%28dashboard%29/%40drawer/adopt/page/actions.js%20%28server%20actions%20loader%29","../../../../../../../src/presentation/web/app/actions/adopt-branch.ts","../../../../../../../src/presentation/web/app/actions/list-branches.ts"],"sourcesContent":["export {pickFolder as '00b821152142796cad3408fc408de0e19b84949746'} from 'ACTIONS_MODULE0'\nexport {listGitHubRepositories as '40160c6c9a1bd868caca5cef6abda0221c4aea5cdb'} from 'ACTIONS_MODULE1'\nexport {importGitHubRepository as '40cba523381ce5dbce6b05f3e3748c2dcef5a39cc1'} from 'ACTIONS_MODULE2'\nexport {deployFeature as '40558b37ddc6e76865c7e7840b3475bfed70960447'} from 'ACTIONS_MODULE3'\nexport {deployRepository as '4040e4de3a3984db8700274cfdebb172c08c889461'} from 'ACTIONS_MODULE4'\nexport {stopDeployment as '40a9412c7b8f23137fd9b5f2c82992e8749d2cc393'} from 'ACTIONS_MODULE5'\nexport {getDeploymentStatus as '40cd53da47c92ba22412185e60a846eafa1fb90d32'} from 'ACTIONS_MODULE6'\nexport {openIde as '407bd677e666cb40bd612162f10bea1c64e7303c55'} from 'ACTIONS_MODULE7'\nexport {openShell as '40cc4c8c517092798123730a9a3cba588135eeb42f'} from 'ACTIONS_MODULE8'\nexport {openFolder as '40053e9bbbd3725c2903741b60fae1010af4b5f11c'} from 'ACTIONS_MODULE9'\nexport {getDeploymentLogs as '40eeded644d369a46e499f22c1ca72c6e8896f407c'} from 'ACTIONS_MODULE10'\nexport {isAgentSetupComplete as '009456d5dac90b42ef94e861d2125f0692d29c16b7'} from 'ACTIONS_MODULE11'\nexport {checkAgentAuth as '00a42e81a9907caa27c6ece5bda8c48c9aad04ec52'} from 'ACTIONS_MODULE12'\nexport {checkToolStatus as '00991ec9718419b0022164ae2119b7c7228ce24e68'} from 'ACTIONS_MODULE13'\nexport {getAllAgentModels as '002f2967ce709cc8ff459cbb809e6d552988a8bc4b'} from 'ACTIONS_MODULE14'\nexport {updateAgentAndModel as '604a84e5dbb07de5892db23a7739d5a8cbd8b18ffa'} from 'ACTIONS_MODULE15'\nexport {deleteFeature as '78544adedbbd90d31e3d395f03accd8877d015d9da'} from 'ACTIONS_MODULE16'\nexport {resumeFeature as '408e61b5cfadb669a039239c24b2b7cbf578ecb5c0'} from 'ACTIONS_MODULE17'\nexport {startFeature as '40e183acc9dafc190750e7e62751e6370a0c4e7fdd'} from 'ACTIONS_MODULE18'\nexport {stopFeature as '404500b5760aa6052f9889fd5af104fd135f06edcd'} from 'ACTIONS_MODULE19'\nexport {addRepository as '40c92898ee0c1eee68a222613bec4390fd0ef5853e'} from 'ACTIONS_MODULE20'\nexport {deleteRepository as '40c0fe4ee72c50bf03e6b0b9fb27e99160adfb7741'} from 'ACTIONS_MODULE21'\nexport {getFeatureMetadata as '40c134bd3a7c1024121425052d646d50707aae6376'} from 'ACTIONS_MODULE22'\nexport {adoptBranch as '40a9ccfc4cff8a9eb9dc2b6eec480db62ae7f65c46'} from 'ACTIONS_MODULE23'\nexport {listBranches as '404319e932d86dc7b81f74ddc4cfb4dced0b1785ce'} from 'ACTIONS_MODULE24'\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { AdoptBranchUseCase } from '@shepai/core/application/use-cases/features/adopt-branch.use-case';\nimport type { Feature } from '@shepai/core/domain/generated/output';\n\ninterface AdoptBranchInput {\n branchName: string;\n repositoryPath: string;\n}\n\nexport async function adoptBranch(\n input: AdoptBranchInput\n): Promise<{ feature?: Feature; error?: string }> {\n const { branchName, repositoryPath } = input;\n\n if (!branchName?.trim()) {\n return { error: 'Branch name is required' };\n }\n if (!repositoryPath?.trim()) {\n return { error: 'Repository path is required' };\n }\n\n try {\n const useCase = resolve<AdoptBranchUseCase>('AdoptBranchUseCase');\n const result = await useCase.execute({ branchName, repositoryPath });\n return { feature: result.feature };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to adopt branch';\n return { error: message };\n }\n}\n","'use server';\n\nimport { resolve } from '@/lib/server-container';\nimport type { IWorktreeService } from '@shepai/core/application/ports/output/services/worktree-service.interface';\n\n/**\n * Server action that returns all branch names (local + remote) for a repository.\n * Used by the adopt branch drawer to populate the branch combobox.\n */\nexport async function listBranches(repositoryPath: string): Promise<string[]> {\n if (!repositoryPath?.trim()) {\n return [];\n }\n\n try {\n const worktreeService = resolve<IWorktreeService>('IWorktreeService');\n return await worktreeService.listBranches(repositoryPath);\n } catch {\n return [];\n }\n}\n"],"names":[],"mappings":"sCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,oBCpBA,EAAA,EAAA,CAAA,CAAA,oBASO,eAAe,EACpB,CAAuB,EAEvB,GAAM,YAAE,CAAU,gBAAE,CAAc,CAAE,CAAG,EAEvC,GAAI,CAAC,GAAY,OACf,CADuB,KAChB,CAAE,MAAO,yBAA0B,EAE5C,GAAI,CAAC,GAAgB,OACnB,CAD2B,KACpB,CAAE,MAAO,6BAA8B,EAGhD,GAAI,CACF,IAAM,EAAU,CAAA,EAAA,EAAA,OAAA,AAAO,EAAqB,sBAE5C,MAAO,CAAE,QAAS,CADH,MAAM,EAAQ,OAAO,CAAC,YAAE,iBAAY,CAAe,EAAA,EACzC,OAAO,AAAC,CACnC,CAAE,MAAO,EAAgB,CAEvB,MAAO,CAAE,MADO,CACA,YADiB,MAAQ,EAAM,OAAO,CAAG,wBACjC,CAC1B,CACF,CCtBO,eAAe,EAAa,CAAsB,EACvD,GAAI,CAAC,GAAgB,OACnB,CAD2B,KACpB,EAAE,CAGX,GAAI,CACF,IAAM,EAAkB,CAAA,EAAA,EAAA,OAAA,AAAO,EAAmB,oBAClD,OAAO,MAAM,EAAgB,YAAY,CAAC,EAC5C,CAAE,KAAM,CACN,MAAO,EAAE,AACX,CACF,iCDTsB,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA,sCCFA,IAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,6CAAA"}
@@ -1,3 +1,3 @@
1
- module.exports=[93995,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(69845),e=a.i(52313),f=a.i(25674);let g=(0,f.createServerReference)("405edc9d5377ca04fbb38565acd49ab42020d1ff89",f.callServer,void 0,f.findSourceMapURL,"createFeature");var h=a.i(45242),i=a.i(14177),j=a.i(10606),k=a.i(3942),l=a.i(46168),m=a.i(42527),n=a.i(88064),o=a.i(85536),p=a.i(19884);a.i(78454);var q=a.i(24255),r=a.i(2824),s=a.i(18948),t=a.i(90920),u=a.i(79620),v=a.i(584),w=a.i(58339),x=a.i(80646),y=a.i(96867),z=a.i(82934),A=a.i(96213);a.i(307);var B=a.i(30931),C=a.i(61781),D=a.i(13126),E=a.i(1377);a.i(21434);var F=a.i(34379),G=a.i(21333),H=a.i(93433),I=a.i(39116);let J=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),K=[{id:"allowPrd",label:"PRD",description:"Auto-approve requirements move to planning."},{id:"allowPlan",label:"Plan",description:"Auto-approve planning move to implementation."},{id:"allowMerge",label:"Merge",description:"Auto-approve merge move to Done."}],L={allowPrd:!1,allowPlan:!1,allowMerge:!1};function M({open:a,onClose:d,onSubmit:e,repositoryPath:f,isSubmitting:g=!1,workflowDefaults:i,features:j,repositories:m,initialParentId:n,currentAgentType:t,currentModel:x,initialDescription:D}){let E=(0,p.useSoundAction)("create"),F=f&&(!m||0===m.length||m.some(a=>a.path===f))?f:"",G=i?.approvalGates??L,H=i?.push??!1,M=i?.openPr??!1,P=i?.ciWatchEnabled!==!1,Q=i?.enableEvidence??!1,R=i?.commitEvidence??!1,[S,T]=(0,c.useState)(D??"");(0,c.useEffect)(()=>{D&&T(D)},[D]);let[U,V]=(0,c.useState)([]),[W,X]=(0,c.useState)({...G}),[Y,Z]=(0,c.useState)(H),[$,_]=(0,c.useState)(M),[aa,ab]=(0,c.useState)(i?.ciWatchEnabled!==!1),[ac,ad]=(0,c.useState)(Q),[ae,af]=(0,c.useState)(R),[ag,ah]=(0,c.useState)(void 0),[ai,aj]=(0,c.useState)(!1),[ak,al]=(0,c.useState)(!1),[am,an]=(0,c.useState)(void 0),[ao,ap]=(0,c.useState)(void 0),[aq,ar]=(0,c.useState)(F||void 0),[as,at]=(0,c.useState)(m??[]),[au,av]=(0,c.useState)(!1),[aw,ax]=(0,c.useState)(null),[ay,az]=(0,c.useState)(!1),aA=(0,c.useRef)(crypto.randomUUID()),aB=(0,c.useRef)(0),aC=(0,c.useRef)(null);(0,c.useEffect)(()=>{i&&(X({...i.approvalGates}),Z(i.push),_(i.openPr),ab(!1!==i.ciWatchEnabled),ad(i.enableEvidence),af(i.commitEvidence))},[i]),(0,c.useEffect)(()=>{at(m??[])},[m]),(0,c.useEffect)(()=>{a&&n&&ah(n)},[a,n]);let aD=(0,c.useCallback)(()=>{T(""),V([]),X({...G}),Z(H),_(M),ab(P),ad(Q),af(R),ah(void 0),ar(F||void 0),at(m??[]),aj(!1),al(!1),an(void 0),ap(void 0),ax(null),aB.current=0,av(!1)},[G,H,M,Q,P,R,F,m]),aE=""!==S.trim()||U.length>0,{attemptClose:aF}=(0,A.useGuardedDrawerClose)({open:a,isDirty:aE,onClose:d,onReset:aD}),aG=(0,c.useCallback)(async a=>{for(let b of(ax(null),a)){if(b.size>0xa00000)return void ax(`"${b.name}" exceeds 10 MB limit`);let a=function(a){let b=a.lastIndexOf(".");return b>=0?a.slice(b).toLowerCase():""}(b.name);if(a&&!J.has(a))return void ax(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();V(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:b.type||"application/octet-stream",path:"",loading:!0}]);try{let c=new FormData;c.append("file",b),c.append("sessionId",aA.current);let d=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!d.ok){let b=await d.json().catch(()=>({error:"Upload failed"}));V(b=>b.filter(b=>b.id!==a)),ax(b.error??"Upload failed");return}let e=await d.json();V(b=>b.some(b=>b.id!==a&&b.path===e.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...e,id:a,loading:!1}:b))}catch{V(b=>b.filter(b=>b.id!==a)),ax("Upload failed")}}},[]),aH=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aB.current+=1,1===aB.current&&av(!0)},[]),aI=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aB.current-=1,0===aB.current&&av(!1)},[]),aJ=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),aK=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aB.current=0,av(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&aG(b)},[aG]),aL=(0,c.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a of Array.from(b))if("file"===a.kind){let b=a.getAsFile();b&&c.push(b)}c.length>0&&(a.preventDefault(),aG(c))},[aG]),aM=(0,c.useCallback)(a=>{if(a.preventDefault(),!S.trim())return;let b=aq??F;b&&(E.play(),e({description:S.trim(),attachments:U.filter(a=>!a.loading),repositoryPath:b,approvalGates:{allowPrd:W.allowPrd??!1,allowPlan:W.allowPlan??!1,allowMerge:W.allowMerge??!1},push:Y||$,openPr:$,ciWatchEnabled:aa,enableEvidence:ac,commitEvidence:ae,fast:ai,...ak?{pending:ak}:{},...am?{agentType:am}:{},...ao?{model:ao}:{},...ag?{parentId:ag}:{},sessionId:aA.current}),aD())},[S,U,W,aq,F,e,Y,$,ac,aa,ae,ai,ak,am,ao,ag,E,aD]),aN=(0,c.useCallback)(async()=>{try{let a=await (0,I.pickFiles)();if(!a)return;for(let b of a){let a=crypto.randomUUID();V(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let c=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:b.path,sessionId:aA.current})});if(!c.ok){let b=await c.json().catch(()=>({error:"Upload failed"}));V(b=>b.filter(b=>b.id!==a)),ax(b.error??"Upload failed");return}let d=await c.json();V(b=>b.some(b=>b.id!==a&&b.path===d.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...d,id:a,loading:!1}:b))}catch{V(b=>b.filter(b=>b.id!==a)),ax("Upload failed")}}}catch{}},[]),aO=(0,c.useCallback)(a=>{V(b=>b.filter(b=>b.id!==a))},[]),aP=(0,c.useRef)(null),aQ=(0,c.useCallback)(a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),aP.current?.requestSubmit())},[]),aR=(0,c.useCallback)(()=>{az(!0)},[]),aS=(0,c.useCallback)(()=>{setTimeout(()=>{let a=aC.current?.contains(document.activeElement),b=aC.current?.querySelector('[aria-expanded="true"]')!==null;a||b||az(!1)},0)},[]),aT=j&&j.length>0,aU=!F&&!aq,aV=!F&&void 0!==m;return(0,b.jsx)(q.BaseDrawer,{open:a,onClose:aF,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,b.jsx)(r.DrawerTitle,{children:"NEW FEATURE"})]}),g?(0,b.jsx)(r.DrawerDescription,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(w.Badge,{variant:"secondary",children:"Creating..."})})}):null]}),footer:(0,b.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,b.jsx)(s.Button,{variant:"outline",onClick:aF,disabled:g,children:"Cancel"}),(0,b.jsx)(s.Button,{type:"submit",form:"create-feature-form",disabled:!S.trim()||g||aU,children:g?"Creating...":"+ Create Feature"})]}),children:(0,b.jsx)("div",{className:"overflow-y-auto p-4",children:(0,b.jsx)(z.TooltipProvider,{delayDuration:400,children:(0,b.jsxs)("form",{ref:aP,id:"create-feature-form",onSubmit:aM,onKeyDown:aQ,className:"flex flex-col gap-4",children:[aV?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,b.jsx)(v.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"REPOSITORY"}),(0,b.jsx)(O,{repositories:as,value:aq,onChange:ar,onAddRepository:a=>{at(b=>[...b,a]),ar(a.path)},disabled:g})]}):F?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,b.jsx)(v.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"REPOSITORY"}),(0,b.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:m?.find(a=>a.path===F)?.name??F.split("/").pop()})]}):null,(0,b.jsxs)("div",{role:"region","aria-label":"File drop zone","data-drag-over":au?"true":"false",onDragEnter:aH,onDragLeave:aI,onDragOver:aJ,onDrop:aK,className:(0,o.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",au&&"border-primary/50 bg-primary/5"),children:[(0,b.jsx)(v.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"DESCRIBE YOUR FEATURE"}),(0,b.jsxs)("div",{ref:aC,onFocus:aR,onBlur:aS,className:(0,o.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",ay&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,b.jsx)(u.Textarea,{id:"feature-description",placeholder:"e.g. Add GitHub OAuth login with callback handling and token refresh...",value:S,onChange:a=>T(a.target.value),onPaste:aL,required:!0,disabled:g,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),U.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:U.map(a=>(0,b.jsx)(B.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>aO(a.id),disabled:g,loading:a.loading},a.id))}),aw?(0,b.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:aw}):null,(0,b.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,b.jsx)(C.AgentModelPicker,{initialAgentType:am??t??"claude-code",initialModel:ao??x??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(a,b)=>{an(a),ap(b)},disabled:g,className:"w-55"}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(y.Switch,{id:"pending-mode",checked:ak,onCheckedChange:al,disabled:g}),(0,b.jsxs)(v.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(l.Clock,{className:"h-3.5 w-3.5"}),"Pending"]})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Create without starting — start manually later."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(y.Switch,{id:"fast-mode",checked:ai,onCheckedChange:aj,disabled:g}),(0,b.jsxs)(v.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(k.Zap,{className:"h-3.5 w-3.5"}),"Fast Mode"]})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Skip SDLC phases and implement directly from your prompt."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:aN,disabled:g,"aria-label":"Attach files",className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,b.jsx)(h.PaperclipIcon,{className:"h-4 w-4"})})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Attach files"})]})]})]})]}),aT&&void 0!==n?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(v.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"PARENT FEATURE"}),(0,b.jsx)(N,{features:j,value:ag,onChange:ah,disabled:g})]}):null,(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:"APPROVE"})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Auto-approve phase transitions without manual review."})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:K.map(a=>(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:`approve-${a.id}`,size:"sm",checked:W[a.id]??!1,onCheckedChange:b=>X(c=>({...c,[a.id]:b})),disabled:g||ai&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,b.jsx)(v.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:ai&&("allowPrd"===a.id||"allowPlan"===a.id)?"Skipped in Fast Mode":a.description})]},a.id))}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:()=>{let a=K.every(a=>W[a.id]),b={};for(let c of K)b[c.id]=!a;X(b)},disabled:g,className:(0,o.cn)("text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors",K.every(a=>W[a.id])&&"text-primary"),children:"All"})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Toggle all approval gates"})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:"EVIDENCE"})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Collect and attach evidence after implementation."})]}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"enable-evidence",size:"sm",checked:ac,onCheckedChange:a=>{ad(a),a||af(!1)},disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:"Collect"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Capture screenshots and artifacts after implementation."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"commit-evidence",size:"sm",checked:ae,onCheckedChange:af,disabled:g||!ac||!$}),(0,b.jsx)(v.Label,{htmlFor:"commit-evidence",className:(0,o.cn)("cursor-pointer text-xs font-medium",(!ac||!$)&&"opacity-50"),children:"Add to PR"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:$?ac?"Include evidence in the pull request body.":"Requires evidence collection to be enabled":"Requires PR to be enabled"})]})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 text-xs font-semibold tracking-wider",children:"GIT"}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"push",size:"sm",checked:Y||$,onCheckedChange:a=>{Z(a),!a&&$&&_(!1)},disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"push",className:"cursor-pointer text-xs font-medium",children:"Push"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Push branch to remote after implementation."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"open-pr",size:"sm",checked:$,onCheckedChange:a=>{_(a),a||af(!1)},disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"open-pr",className:"cursor-pointer text-xs font-medium",children:"PR"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Open a pull request after pushing."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"ci-watch",size:"sm",checked:aa,onCheckedChange:ab,disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:"Watch"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Watch CI and auto-fix after push."})]})]})]})]})]})})})})}function N({features:a,value:d,onChange:e,disabled:f}){let[g,h]=(0,c.useState)(!1),[k,l]=(0,c.useState)(""),m=(0,c.useRef)(null),n=a.find(a=>a.id===d),p=k.trim()?a.filter(a=>a.name.toLowerCase().includes(k.toLowerCase())||a.id.toLowerCase().includes(k.toLowerCase())):a,q=(0,c.useCallback)(a=>{e(a),h(!1),l("")},[e]);return(0,c.useEffect)(()=>{g?setTimeout(()=>m.current?.focus(),0):l("")},[g]),(0,b.jsxs)(x.Popover,{open:g,onOpenChange:h,children:[(0,b.jsx)(x.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":g,"aria-label":"Parent Feature",disabled:f,"data-testid":"parent-feature-combobox",className:(0,o.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!n&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:n?`${n.name} (${n.id.slice(0,8)})`:"Select parent feature..."}),(0,b.jsx)(i.ChevronsUpDown,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(x.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"border-b p-2",children:(0,b.jsx)(t.Input,{ref:m,placeholder:"Search features...",value:k,onChange:a=>l(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,b.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===d,onClick:()=>q(void 0),className:(0,o.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===d&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,b.jsx)(j.CheckIcon,{className:(0,o.cn)("h-4 w-4 shrink-0",void 0!==d&&"invisible")}),(0,b.jsx)("span",{className:"text-muted-foreground italic",children:"No parent"})]}),0===p.length&&k?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No features found."}):p.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.id,onClick:()=>q(a.id),className:(0,o.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",d===a.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${a.id}`,children:[(0,b.jsx)(j.CheckIcon,{className:(0,o.cn)("h-4 w-4 shrink-0",d!==a.id&&"invisible")}),(0,b.jsxs)("span",{className:"truncate",children:[a.name," ",(0,b.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",a.id.slice(0,8),")"]})]})]},a.id))]})]})})]})}function O({repositories:a,value:d,onChange:e,onAddRepository:f,disabled:g}){let[h,k]=(0,c.useState)(!1),[l,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(!1),[s,u]=(0,c.useState)(null),[v,w]=(0,c.useState)(!1),y=(0,c.useRef)(null),{reactFileManager:z}=(0,G.useFeatureFlags)(),A=a.find(a=>a.path===d),B=l.trim()?a.filter(a=>a.name.toLowerCase().includes(l.toLowerCase())||a.path.toLowerCase().includes(l.toLowerCase())):a,C=(0,c.useCallback)(a=>{e(a),k(!1),p("")},[e]),I=(0,c.useCallback)(async a=>{let b=await (0,H.addRepository)({path:a});if(b.error){u(b.error),r(!1);return}if(b.repository){let a={id:b.repository.id,name:b.repository.name,path:b.repository.path};f?.(a),e(a.path),k(!1),p("")}},[f,e]),J=(0,c.useCallback)(async()=>{if(!q){if(z)return void w(!0);r(!0),u(null);try{let a=await (0,E.pickFolder)();if(!a)return void r(!1);await I(a)}catch{w(!0)}finally{r(!1)}}},[q,z,I]),K=(0,c.useCallback)(async a=>{if(w(!1),a){r(!0),u(null);try{await I(a)}catch(a){u(a instanceof Error?a.message:"Failed to add repository")}finally{r(!1)}}},[I]);return(0,c.useEffect)(()=>{h?setTimeout(()=>y.current?.focus(),0):p("")},[h]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(x.Popover,{open:h,onOpenChange:k,children:[(0,b.jsx)(x.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button",role:"combobox","aria-expanded":h,"aria-label":"Repository",disabled:g,"data-testid":"repository-combobox",className:(0,o.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!A&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:A?A.name:"Select repository..."}),(0,b.jsx)(i.ChevronsUpDown,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(x.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"border-b p-2",children:(0,b.jsx)(t.Input,{ref:y,placeholder:"Search repositories...",value:l,onChange:a=>p(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,b.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===B.length?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):B.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.path,onClick:()=>C(a.path),className:(0,o.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",d===a.path&&"bg-accent/50"),"data-testid":`repository-option-${a.id}`,children:[(0,b.jsx)(j.CheckIcon,{className:(0,o.cn)("h-4 w-4 shrink-0",d!==a.path&&"invisible")}),(0,b.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,b.jsx)("span",{className:"truncate",children:a.name}),(0,b.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:a.path})]})]},a.id))}),(0,b.jsx)(D.Separator,{}),(0,b.jsxs)("button",{type:"button",onClick:J,disabled:q,className:"hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm","data-testid":"add-repository-item",children:[q?(0,b.jsx)(n.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,b.jsx)(m.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:"Add new repository..."})]}),s?(0,b.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:s}):null]})})]}),(0,b.jsx)(F.ReactFileManagerDialog,{open:v,onOpenChange:a=>{a||w(!1)},onSelect:K})]})}function P({repositoryPath:a,initialParentId:f,initialDescription:h,features:i,repositories:j,workflowDefaults:k,currentAgentType:l,currentModel:m}){let n=(0,d.useRouter)(),[o,p]=(0,c.useState)(!1),q=(0,d.usePathname)().startsWith("/create"),r=!o&&q;(0,c.useEffect)(()=>{!q&&o&&p(!1)},[q,o]);let s=(0,c.useCallback)(()=>{n.push("/")},[n]),t=(0,c.useCallback)(a=>{p(!0),n.push("/"),g(a).then(b=>{b.error?e.toast.error(b.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:b.feature.id,name:b.feature.name,description:b.feature.description,repositoryPath:b.feature.repositoryPath,parentId:a.parentId}}))}).catch(()=>{e.toast.error("Failed to create feature"),p(!1)})},[n]);return(0,b.jsx)(M,{open:r,onClose:s,onSubmit:t,repositoryPath:a,features:i,repositories:j,workflowDefaults:k,initialParentId:f,initialDescription:h,isSubmitting:o,currentAgentType:l,currentModel:m})}a.s(["CreateDrawerClient",()=>P],93995)}];
1
+ module.exports=[93995,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(69845),e=a.i(52313),f=a.i(25674);let g=(0,f.createServerReference)("40013a60ca2425bdcc7622c048fba02d2176008db3",f.callServer,void 0,f.findSourceMapURL,"createFeature");var h=a.i(45242),i=a.i(14177),j=a.i(10606),k=a.i(3942),l=a.i(46168),m=a.i(42527),n=a.i(88064),o=a.i(85536),p=a.i(19884);a.i(78454);var q=a.i(24255),r=a.i(2824),s=a.i(18948),t=a.i(90920),u=a.i(79620),v=a.i(584),w=a.i(58339),x=a.i(80646),y=a.i(96867),z=a.i(82934),A=a.i(96213);a.i(307);var B=a.i(30931),C=a.i(61781),D=a.i(13126),E=a.i(1377);a.i(21434);var F=a.i(34379),G=a.i(21333),H=a.i(36778),I=a.i(39116);let J=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),K=[{id:"allowPrd",label:"PRD",description:"Auto-approve requirements move to planning."},{id:"allowPlan",label:"Plan",description:"Auto-approve planning move to implementation."},{id:"allowMerge",label:"Merge",description:"Auto-approve merge move to Done."}],L={allowPrd:!1,allowPlan:!1,allowMerge:!1};function M({open:a,onClose:d,onSubmit:e,repositoryPath:f,isSubmitting:g=!1,workflowDefaults:i,features:j,repositories:m,initialParentId:n,currentAgentType:t,currentModel:x,initialDescription:D}){let E=(0,p.useSoundAction)("create"),F=f&&(!m||0===m.length||m.some(a=>a.path===f))?f:"",G=i?.approvalGates??L,H=i?.push??!1,M=i?.openPr??!1,P=i?.ciWatchEnabled!==!1,Q=i?.enableEvidence??!1,R=i?.commitEvidence??!1,[S,T]=(0,c.useState)(D??"");(0,c.useEffect)(()=>{D&&T(D)},[D]);let[U,V]=(0,c.useState)([]),[W,X]=(0,c.useState)({...G}),[Y,Z]=(0,c.useState)(H),[$,_]=(0,c.useState)(M),[aa,ab]=(0,c.useState)(i?.ciWatchEnabled!==!1),[ac,ad]=(0,c.useState)(Q),[ae,af]=(0,c.useState)(R),[ag,ah]=(0,c.useState)(void 0),[ai,aj]=(0,c.useState)(!1),[ak,al]=(0,c.useState)(!1),[am,an]=(0,c.useState)(void 0),[ao,ap]=(0,c.useState)(void 0),[aq,ar]=(0,c.useState)(F||void 0),[as,at]=(0,c.useState)(m??[]),[au,av]=(0,c.useState)(!1),[aw,ax]=(0,c.useState)(null),[ay,az]=(0,c.useState)(!1),aA=(0,c.useRef)(crypto.randomUUID()),aB=(0,c.useRef)(0),aC=(0,c.useRef)(null);(0,c.useEffect)(()=>{i&&(X({...i.approvalGates}),Z(i.push),_(i.openPr),ab(!1!==i.ciWatchEnabled),ad(i.enableEvidence),af(i.commitEvidence))},[i]),(0,c.useEffect)(()=>{at(m??[])},[m]),(0,c.useEffect)(()=>{a&&n&&ah(n)},[a,n]);let aD=(0,c.useCallback)(()=>{T(""),V([]),X({...G}),Z(H),_(M),ab(P),ad(Q),af(R),ah(void 0),ar(F||void 0),at(m??[]),aj(!1),al(!1),an(void 0),ap(void 0),ax(null),aB.current=0,av(!1)},[G,H,M,Q,P,R,F,m]),aE=""!==S.trim()||U.length>0,{attemptClose:aF}=(0,A.useGuardedDrawerClose)({open:a,isDirty:aE,onClose:d,onReset:aD}),aG=(0,c.useCallback)(async a=>{for(let b of(ax(null),a)){if(b.size>0xa00000)return void ax(`"${b.name}" exceeds 10 MB limit`);let a=function(a){let b=a.lastIndexOf(".");return b>=0?a.slice(b).toLowerCase():""}(b.name);if(a&&!J.has(a))return void ax(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();V(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:b.type||"application/octet-stream",path:"",loading:!0}]);try{let c=new FormData;c.append("file",b),c.append("sessionId",aA.current);let d=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!d.ok){let b=await d.json().catch(()=>({error:"Upload failed"}));V(b=>b.filter(b=>b.id!==a)),ax(b.error??"Upload failed");return}let e=await d.json();V(b=>b.some(b=>b.id!==a&&b.path===e.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...e,id:a,loading:!1}:b))}catch{V(b=>b.filter(b=>b.id!==a)),ax("Upload failed")}}},[]),aH=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aB.current+=1,1===aB.current&&av(!0)},[]),aI=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aB.current-=1,0===aB.current&&av(!1)},[]),aJ=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),aK=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aB.current=0,av(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&aG(b)},[aG]),aL=(0,c.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a of Array.from(b))if("file"===a.kind){let b=a.getAsFile();b&&c.push(b)}c.length>0&&(a.preventDefault(),aG(c))},[aG]),aM=(0,c.useCallback)(a=>{if(a.preventDefault(),!S.trim())return;let b=aq??F;b&&(E.play(),e({description:S.trim(),attachments:U.filter(a=>!a.loading),repositoryPath:b,approvalGates:{allowPrd:W.allowPrd??!1,allowPlan:W.allowPlan??!1,allowMerge:W.allowMerge??!1},push:Y||$,openPr:$,ciWatchEnabled:aa,enableEvidence:ac,commitEvidence:ae,fast:ai,...ak?{pending:ak}:{},...am?{agentType:am}:{},...ao?{model:ao}:{},...ag?{parentId:ag}:{},sessionId:aA.current}),aD())},[S,U,W,aq,F,e,Y,$,ac,aa,ae,ai,ak,am,ao,ag,E,aD]),aN=(0,c.useCallback)(async()=>{try{let a=await (0,I.pickFiles)();if(!a)return;for(let b of a){let a=crypto.randomUUID();V(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let c=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:b.path,sessionId:aA.current})});if(!c.ok){let b=await c.json().catch(()=>({error:"Upload failed"}));V(b=>b.filter(b=>b.id!==a)),ax(b.error??"Upload failed");return}let d=await c.json();V(b=>b.some(b=>b.id!==a&&b.path===d.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...d,id:a,loading:!1}:b))}catch{V(b=>b.filter(b=>b.id!==a)),ax("Upload failed")}}}catch{}},[]),aO=(0,c.useCallback)(a=>{V(b=>b.filter(b=>b.id!==a))},[]),aP=(0,c.useRef)(null),aQ=(0,c.useCallback)(a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),aP.current?.requestSubmit())},[]),aR=(0,c.useCallback)(()=>{az(!0)},[]),aS=(0,c.useCallback)(()=>{setTimeout(()=>{let a=aC.current?.contains(document.activeElement),b=aC.current?.querySelector('[aria-expanded="true"]')!==null;a||b||az(!1)},0)},[]),aT=j&&j.length>0,aU=!F&&!aq,aV=!F&&void 0!==m;return(0,b.jsx)(q.BaseDrawer,{open:a,onClose:aF,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,b.jsx)(r.DrawerTitle,{children:"NEW FEATURE"})]}),g?(0,b.jsx)(r.DrawerDescription,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(w.Badge,{variant:"secondary",children:"Creating..."})})}):null]}),footer:(0,b.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,b.jsx)(s.Button,{variant:"outline",onClick:aF,disabled:g,children:"Cancel"}),(0,b.jsx)(s.Button,{type:"submit",form:"create-feature-form",disabled:!S.trim()||g||aU,children:g?"Creating...":"+ Create Feature"})]}),children:(0,b.jsx)("div",{className:"overflow-y-auto p-4",children:(0,b.jsx)(z.TooltipProvider,{delayDuration:400,children:(0,b.jsxs)("form",{ref:aP,id:"create-feature-form",onSubmit:aM,onKeyDown:aQ,className:"flex flex-col gap-4",children:[aV?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,b.jsx)(v.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"REPOSITORY"}),(0,b.jsx)(O,{repositories:as,value:aq,onChange:ar,onAddRepository:a=>{at(b=>[...b,a]),ar(a.path)},disabled:g})]}):F?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,b.jsx)(v.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"REPOSITORY"}),(0,b.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:m?.find(a=>a.path===F)?.name??F.split("/").pop()})]}):null,(0,b.jsxs)("div",{role:"region","aria-label":"File drop zone","data-drag-over":au?"true":"false",onDragEnter:aH,onDragLeave:aI,onDragOver:aJ,onDrop:aK,className:(0,o.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",au&&"border-primary/50 bg-primary/5"),children:[(0,b.jsx)(v.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"DESCRIBE YOUR FEATURE"}),(0,b.jsxs)("div",{ref:aC,onFocus:aR,onBlur:aS,className:(0,o.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",ay&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,b.jsx)(u.Textarea,{id:"feature-description",placeholder:"e.g. Add GitHub OAuth login with callback handling and token refresh...",value:S,onChange:a=>T(a.target.value),onPaste:aL,required:!0,disabled:g,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),U.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:U.map(a=>(0,b.jsx)(B.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>aO(a.id),disabled:g,loading:a.loading},a.id))}),aw?(0,b.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:aw}):null,(0,b.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,b.jsx)(C.AgentModelPicker,{initialAgentType:am??t??"claude-code",initialModel:ao??x??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(a,b)=>{an(a),ap(b)},disabled:g,className:"w-55"}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(y.Switch,{id:"pending-mode",checked:ak,onCheckedChange:al,disabled:g}),(0,b.jsxs)(v.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(l.Clock,{className:"h-3.5 w-3.5"}),"Pending"]})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Create without starting — start manually later."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(y.Switch,{id:"fast-mode",checked:ai,onCheckedChange:aj,disabled:g}),(0,b.jsxs)(v.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(k.Zap,{className:"h-3.5 w-3.5"}),"Fast Mode"]})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Skip SDLC phases and implement directly from your prompt."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:aN,disabled:g,"aria-label":"Attach files",className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,b.jsx)(h.PaperclipIcon,{className:"h-4 w-4"})})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Attach files"})]})]})]})]}),aT&&void 0!==n?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(v.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"PARENT FEATURE"}),(0,b.jsx)(N,{features:j,value:ag,onChange:ah,disabled:g})]}):null,(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:"APPROVE"})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Auto-approve phase transitions without manual review."})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:K.map(a=>(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:`approve-${a.id}`,size:"sm",checked:W[a.id]??!1,onCheckedChange:b=>X(c=>({...c,[a.id]:b})),disabled:g||ai&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,b.jsx)(v.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:ai&&("allowPrd"===a.id||"allowPlan"===a.id)?"Skipped in Fast Mode":a.description})]},a.id))}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:()=>{let a=K.every(a=>W[a.id]),b={};for(let c of K)b[c.id]=!a;X(b)},disabled:g,className:(0,o.cn)("text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors",K.every(a=>W[a.id])&&"text-primary"),children:"All"})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Toggle all approval gates"})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:"EVIDENCE"})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Collect and attach evidence after implementation."})]}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"enable-evidence",size:"sm",checked:ac,onCheckedChange:a=>{ad(a),a||af(!1)},disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:"Collect"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Capture screenshots and artifacts after implementation."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"commit-evidence",size:"sm",checked:ae,onCheckedChange:af,disabled:g||!ac||!$}),(0,b.jsx)(v.Label,{htmlFor:"commit-evidence",className:(0,o.cn)("cursor-pointer text-xs font-medium",(!ac||!$)&&"opacity-50"),children:"Add to PR"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:$?ac?"Include evidence in the pull request body.":"Requires evidence collection to be enabled":"Requires PR to be enabled"})]})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 text-xs font-semibold tracking-wider",children:"GIT"}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"push",size:"sm",checked:Y||$,onCheckedChange:a=>{Z(a),!a&&$&&_(!1)},disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"push",className:"cursor-pointer text-xs font-medium",children:"Push"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Push branch to remote after implementation."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"open-pr",size:"sm",checked:$,onCheckedChange:a=>{_(a),a||af(!1)},disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"open-pr",className:"cursor-pointer text-xs font-medium",children:"PR"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Open a pull request after pushing."})]}),(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(y.Switch,{id:"ci-watch",size:"sm",checked:aa,onCheckedChange:ab,disabled:g}),(0,b.jsx)(v.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:"Watch"})]})}),(0,b.jsx)(z.TooltipContent,{side:"bottom",children:"Watch CI and auto-fix after push."})]})]})]})]})]})})})})}function N({features:a,value:d,onChange:e,disabled:f}){let[g,h]=(0,c.useState)(!1),[k,l]=(0,c.useState)(""),m=(0,c.useRef)(null),n=a.find(a=>a.id===d),p=k.trim()?a.filter(a=>a.name.toLowerCase().includes(k.toLowerCase())||a.id.toLowerCase().includes(k.toLowerCase())):a,q=(0,c.useCallback)(a=>{e(a),h(!1),l("")},[e]);return(0,c.useEffect)(()=>{g?setTimeout(()=>m.current?.focus(),0):l("")},[g]),(0,b.jsxs)(x.Popover,{open:g,onOpenChange:h,children:[(0,b.jsx)(x.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":g,"aria-label":"Parent Feature",disabled:f,"data-testid":"parent-feature-combobox",className:(0,o.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!n&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:n?`${n.name} (${n.id.slice(0,8)})`:"Select parent feature..."}),(0,b.jsx)(i.ChevronsUpDown,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(x.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"border-b p-2",children:(0,b.jsx)(t.Input,{ref:m,placeholder:"Search features...",value:k,onChange:a=>l(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,b.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===d,onClick:()=>q(void 0),className:(0,o.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===d&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,b.jsx)(j.CheckIcon,{className:(0,o.cn)("h-4 w-4 shrink-0",void 0!==d&&"invisible")}),(0,b.jsx)("span",{className:"text-muted-foreground italic",children:"No parent"})]}),0===p.length&&k?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No features found."}):p.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.id,onClick:()=>q(a.id),className:(0,o.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",d===a.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${a.id}`,children:[(0,b.jsx)(j.CheckIcon,{className:(0,o.cn)("h-4 w-4 shrink-0",d!==a.id&&"invisible")}),(0,b.jsxs)("span",{className:"truncate",children:[a.name," ",(0,b.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",a.id.slice(0,8),")"]})]})]},a.id))]})]})})]})}function O({repositories:a,value:d,onChange:e,onAddRepository:f,disabled:g}){let[h,k]=(0,c.useState)(!1),[l,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(!1),[s,u]=(0,c.useState)(null),[v,w]=(0,c.useState)(!1),y=(0,c.useRef)(null),{reactFileManager:z}=(0,G.useFeatureFlags)(),A=a.find(a=>a.path===d),B=l.trim()?a.filter(a=>a.name.toLowerCase().includes(l.toLowerCase())||a.path.toLowerCase().includes(l.toLowerCase())):a,C=(0,c.useCallback)(a=>{e(a),k(!1),p("")},[e]),I=(0,c.useCallback)(async a=>{let b=await (0,H.addRepository)({path:a});if(b.error){u(b.error),r(!1);return}if(b.repository){let a={id:b.repository.id,name:b.repository.name,path:b.repository.path};f?.(a),e(a.path),k(!1),p("")}},[f,e]),J=(0,c.useCallback)(async()=>{if(!q){if(z)return void w(!0);r(!0),u(null);try{let a=await (0,E.pickFolder)();if(!a)return void r(!1);await I(a)}catch{w(!0)}finally{r(!1)}}},[q,z,I]),K=(0,c.useCallback)(async a=>{if(w(!1),a){r(!0),u(null);try{await I(a)}catch(a){u(a instanceof Error?a.message:"Failed to add repository")}finally{r(!1)}}},[I]);return(0,c.useEffect)(()=>{h?setTimeout(()=>y.current?.focus(),0):p("")},[h]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(x.Popover,{open:h,onOpenChange:k,children:[(0,b.jsx)(x.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button",role:"combobox","aria-expanded":h,"aria-label":"Repository",disabled:g,"data-testid":"repository-combobox",className:(0,o.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!A&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:A?A.name:"Select repository..."}),(0,b.jsx)(i.ChevronsUpDown,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(x.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"border-b p-2",children:(0,b.jsx)(t.Input,{ref:y,placeholder:"Search repositories...",value:l,onChange:a=>p(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,b.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===B.length?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):B.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.path,onClick:()=>C(a.path),className:(0,o.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",d===a.path&&"bg-accent/50"),"data-testid":`repository-option-${a.id}`,children:[(0,b.jsx)(j.CheckIcon,{className:(0,o.cn)("h-4 w-4 shrink-0",d!==a.path&&"invisible")}),(0,b.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,b.jsx)("span",{className:"truncate",children:a.name}),(0,b.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:a.path})]})]},a.id))}),(0,b.jsx)(D.Separator,{}),(0,b.jsxs)("button",{type:"button",onClick:J,disabled:q,className:"hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm","data-testid":"add-repository-item",children:[q?(0,b.jsx)(n.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,b.jsx)(m.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:"Add new repository..."})]}),s?(0,b.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:s}):null]})})]}),(0,b.jsx)(F.ReactFileManagerDialog,{open:v,onOpenChange:a=>{a||w(!1)},onSelect:K})]})}function P({repositoryPath:a,initialParentId:f,initialDescription:h,features:i,repositories:j,workflowDefaults:k,currentAgentType:l,currentModel:m}){let n=(0,d.useRouter)(),[o,p]=(0,c.useState)(!1),q=(0,d.usePathname)().startsWith("/create"),r=!o&&q;(0,c.useEffect)(()=>{!q&&o&&p(!1)},[q,o]);let s=(0,c.useCallback)(()=>{n.push("/")},[n]),t=(0,c.useCallback)(a=>{p(!0),n.push("/"),g(a).then(b=>{b.error?e.toast.error(b.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:b.feature.id,name:b.feature.name,description:b.feature.description,repositoryPath:b.feature.repositoryPath,parentId:a.parentId}}))}).catch(()=>{e.toast.error("Failed to create feature"),p(!1)})},[n]);return(0,b.jsx)(M,{open:r,onClose:s,onSubmit:t,repositoryPath:a,features:i,repositories:j,workflowDefaults:k,initialParentId:f,initialDescription:h,isSubmitting:o,currentAgentType:l,currentModel:m})}a.s(["CreateDrawerClient",()=>P],93995)}];
2
2
 
3
3
  //# sourceMappingURL=744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map