@shepai/cli 1.169.1 → 1.170.0-pr513.cff27cb

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 (546) hide show
  1. package/apis/json-schema/Feature.yaml +27 -5
  2. package/apis/json-schema/FeatureMode.yaml +8 -0
  3. package/apis/json-schema/SdlcLifecycle.yaml +1 -0
  4. package/apis/json-schema/SkillInjectionConfig.yaml +17 -0
  5. package/apis/json-schema/SkillSource.yaml +21 -0
  6. package/apis/json-schema/SkillSourceType.yaml +7 -0
  7. package/apis/json-schema/WorkflowConfig.yaml +13 -5
  8. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts +2 -2
  9. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts.map +1 -1
  10. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +8 -0
  11. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
  12. package/dist/packages/core/src/application/ports/output/services/index.d.ts +1 -0
  13. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  14. package/dist/packages/core/src/application/ports/output/services/skill-injector.interface.d.ts +39 -0
  15. package/dist/packages/core/src/application/ports/output/services/skill-injector.interface.d.ts.map +1 -0
  16. package/dist/packages/core/src/application/ports/output/services/skill-injector.interface.js +8 -0
  17. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +4 -3
  18. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -1
  19. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +2 -2
  20. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.js +2 -2
  21. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts.map +1 -1
  22. package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +4 -2
  23. package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.js +2 -2
  24. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts +3 -1
  25. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  26. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +40 -10
  27. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +5 -2
  28. package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
  29. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts.map +1 -1
  30. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.js +13 -0
  31. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts +40 -0
  32. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts.map +1 -0
  33. package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.js +125 -0
  34. package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.d.ts.map +1 -1
  35. package/dist/packages/core/src/application/use-cases/features/rebase-feature-on-main.use-case.js +23 -2
  36. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +2 -2
  37. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.d.ts.map +1 -1
  38. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.js +5 -3
  39. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  40. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +57 -2
  41. package/dist/packages/core/src/domain/generated/output.d.ts +72 -4
  42. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  43. package/dist/packages/core/src/domain/generated/output.js +12 -0
  44. package/dist/packages/core/src/domain/lifecycle-gates.d.ts +21 -6
  45. package/dist/packages/core/src/domain/lifecycle-gates.d.ts.map +1 -1
  46. package/dist/packages/core/src/domain/lifecycle-gates.js +25 -6
  47. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  48. package/dist/packages/core/src/infrastructure/di/container.js +7 -0
  49. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +5 -1
  50. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  51. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +16 -4
  52. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +4 -1
  53. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  54. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +34 -2
  55. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts +19 -0
  56. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts.map +1 -0
  57. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.js +46 -0
  58. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts +17 -0
  59. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts.map +1 -0
  60. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.js +37 -0
  61. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts +12 -0
  62. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts.map +1 -0
  63. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.js +17 -0
  64. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-skill-injection-config.d.ts +15 -0
  65. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-skill-injection-config.d.ts.map +1 -0
  66. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-skill-injection-config.js +23 -0
  67. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-injected-skills-to-features.d.ts +11 -0
  68. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-injected-skills-to-features.d.ts.map +1 -0
  69. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-add-injected-skills-to-features.js +19 -0
  70. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  71. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +13 -7
  72. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +3 -3
  73. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.prompt.d.ts +21 -0
  74. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.prompt.d.ts.map +1 -1
  75. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.prompt.js +61 -0
  76. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.d.ts +16 -0
  77. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.d.ts.map +1 -1
  78. package/dist/packages/core/src/infrastructure/services/agents/conflict-resolution/conflict-resolution.service.js +47 -4
  79. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts +362 -0
  80. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts.map +1 -0
  81. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.js +72 -0
  82. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +20 -0
  83. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts.map +1 -1
  84. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +68 -0
  85. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
  86. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +2 -2
  87. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
  88. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +3 -3
  89. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +2 -2
  90. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
  91. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +19 -8
  92. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.d.ts.map +1 -1
  93. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.js +1 -0
  94. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts +18 -0
  95. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts.map +1 -0
  96. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.js +52 -0
  97. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts.map +1 -1
  98. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.js +39 -20
  99. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  100. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +1 -0
  101. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts +24 -0
  102. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts.map +1 -0
  103. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.js +38 -0
  104. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts +31 -0
  105. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts.map +1 -0
  106. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.js +240 -0
  107. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts +21 -0
  108. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts.map +1 -0
  109. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.js +134 -0
  110. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +4 -0
  111. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts.map +1 -1
  112. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.js +17 -0
  113. package/dist/packages/core/src/infrastructure/services/git/git-fork.service.d.ts +5 -0
  114. package/dist/packages/core/src/infrastructure/services/git/git-fork.service.d.ts.map +1 -1
  115. package/dist/packages/core/src/infrastructure/services/git/git-fork.service.js +34 -0
  116. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +1 -0
  117. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  118. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +8 -0
  119. package/dist/packages/core/src/infrastructure/services/skill-injector.service.d.ts +26 -0
  120. package/dist/packages/core/src/infrastructure/services/skill-injector.service.d.ts.map +1 -0
  121. package/dist/packages/core/src/infrastructure/services/skill-injector.service.js +201 -0
  122. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +1 -1
  123. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
  124. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +7 -4
  125. package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts +12 -0
  126. package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts.map +1 -0
  127. package/dist/src/presentation/cli/commands/feat/feedback.command.js +64 -0
  128. package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
  129. package/dist/src/presentation/cli/commands/feat/index.js +5 -1
  130. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  131. package/dist/src/presentation/cli/commands/feat/new.command.js +21 -5
  132. package/dist/src/presentation/cli/commands/feat/promote.command.d.ts +13 -0
  133. package/dist/src/presentation/cli/commands/feat/promote.command.d.ts.map +1 -0
  134. package/dist/src/presentation/cli/commands/feat/promote.command.js +41 -0
  135. package/dist/src/presentation/web/app/actions/add-injected-skill.d.ts +7 -0
  136. package/dist/src/presentation/web/app/actions/add-injected-skill.d.ts.map +1 -0
  137. package/dist/src/presentation/web/app/actions/add-injected-skill.js +34 -0
  138. package/dist/src/presentation/web/app/actions/create-feature.d.ts +5 -2
  139. package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
  140. package/dist/src/presentation/web/app/actions/create-feature.js +5 -3
  141. package/dist/src/presentation/web/app/actions/discard-exploration.d.ts +9 -0
  142. package/dist/src/presentation/web/app/actions/discard-exploration.d.ts.map +1 -0
  143. package/dist/src/presentation/web/app/actions/discard-exploration.js +29 -0
  144. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts +3 -1
  145. package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts.map +1 -1
  146. package/dist/src/presentation/web/app/actions/get-workflow-defaults.js +3 -1
  147. package/dist/src/presentation/web/app/actions/promote-exploration.d.ts +11 -0
  148. package/dist/src/presentation/web/app/actions/promote-exploration.d.ts.map +1 -0
  149. package/dist/src/presentation/web/app/actions/promote-exploration.js +21 -0
  150. package/dist/src/presentation/web/app/actions/remove-injected-skill.d.ts +6 -0
  151. package/dist/src/presentation/web/app/actions/remove-injected-skill.d.ts.map +1 -0
  152. package/dist/src/presentation/web/app/actions/remove-injected-skill.js +35 -0
  153. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts +12 -0
  154. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts.map +1 -0
  155. package/dist/src/presentation/web/app/actions/submit-exploration-feedback.js +40 -0
  156. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  157. package/dist/src/presentation/web/app/api/agent-events/route.js +1 -0
  158. package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
  159. package/dist/src/presentation/web/app/build-feature-node-data.js +6 -2
  160. package/dist/src/presentation/web/app/build-graph-nodes.js +4 -2
  161. package/dist/src/presentation/web/app/skills/page.d.ts.map +1 -1
  162. package/dist/src/presentation/web/app/skills/page.js +6 -1
  163. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts +1 -1
  164. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts.map +1 -1
  165. package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.js +3 -0
  166. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  167. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +65 -1
  168. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +5 -2
  169. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  170. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +20 -12
  171. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
  172. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +3 -1
  173. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts +8 -0
  174. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts.map +1 -0
  175. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.js +33 -0
  176. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts +10 -0
  177. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts.map +1 -0
  178. package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.js +33 -0
  179. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +6 -1
  180. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
  181. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +16 -4
  182. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.d.ts.map +1 -1
  183. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.js +10 -4
  184. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts +2 -0
  185. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.d.ts.map +1 -1
  186. package/dist/src/presentation/web/components/common/feature-drawer-tabs/overview-tab.stories.js +12 -0
  187. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts +11 -0
  188. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts.map +1 -0
  189. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.js +34 -0
  190. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts +16 -0
  191. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts.map +1 -0
  192. package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.js +70 -0
  193. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  194. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +2 -0
  195. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +10 -2
  196. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  197. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +12 -0
  198. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  199. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +7 -2
  200. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  201. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +6 -6
  202. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +3 -3
  203. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.d.ts +10 -0
  204. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.d.ts.map +1 -0
  205. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.js +56 -0
  206. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.stories.d.ts +16 -0
  207. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.stories.d.ts.map +1 -0
  208. package/dist/src/presentation/web/components/features/skills/add-skill-dialog.stories.js +66 -0
  209. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.d.ts +8 -0
  210. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.d.ts.map +1 -0
  211. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.js +42 -0
  212. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.stories.d.ts +16 -0
  213. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.stories.d.ts.map +1 -0
  214. package/dist/src/presentation/web/components/features/skills/auto-injected-skills-section.stories.js +69 -0
  215. package/dist/src/presentation/web/components/features/skills/skills-page-client.d.ts +3 -1
  216. package/dist/src/presentation/web/components/features/skills/skills-page-client.d.ts.map +1 -1
  217. package/dist/src/presentation/web/components/features/skills/skills-page-client.js +5 -3
  218. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.d.ts +1 -0
  219. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.d.ts.map +1 -1
  220. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.js +27 -0
  221. package/dist/src/presentation/web/components/ui/toggle-group.d.ts +10 -0
  222. package/dist/src/presentation/web/components/ui/toggle-group.d.ts.map +1 -0
  223. package/dist/src/presentation/web/components/ui/toggle-group.js +22 -0
  224. package/dist/src/presentation/web/components/ui/toggle.d.ts +10 -0
  225. package/dist/src/presentation/web/components/ui/toggle.d.ts.map +1 -0
  226. package/dist/src/presentation/web/components/ui/toggle.js +26 -0
  227. package/dist/translations/ar/cli.json +26 -0
  228. package/dist/translations/ar/web.json +21 -13
  229. package/dist/translations/de/cli.json +26 -0
  230. package/dist/translations/de/web.json +41 -19
  231. package/dist/translations/en/cli.json +26 -0
  232. package/dist/translations/en/web.json +10 -2
  233. package/dist/translations/es/cli.json +26 -0
  234. package/dist/translations/es/web.json +22 -14
  235. package/dist/translations/fr/cli.json +26 -0
  236. package/dist/translations/fr/web.json +22 -14
  237. package/dist/translations/he/cli.json +26 -0
  238. package/dist/translations/he/web.json +22 -14
  239. package/dist/translations/pt/cli.json +26 -0
  240. package/dist/translations/pt/web.json +22 -14
  241. package/dist/translations/ru/cli.json +26 -0
  242. package/dist/translations/ru/web.json +22 -14
  243. package/dist/tsconfig.build.tsbuildinfo +1 -1
  244. package/package.json +1 -1
  245. package/web/.next/BUILD_ID +1 -1
  246. package/web/.next/build-manifest.json +5 -5
  247. package/web/.next/fallback-build-manifest.json +2 -2
  248. package/web/.next/prerender-manifest.json +3 -3
  249. package/web/.next/required-server-files.js +3 -3
  250. package/web/.next/required-server-files.json +3 -3
  251. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/build-manifest.json +3 -3
  252. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  253. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  254. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  255. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  256. package/web/.next/server/app/(dashboard)/@drawer/chat/page/build-manifest.json +3 -3
  257. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  258. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -1
  259. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  260. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  261. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +3 -3
  262. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
  263. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  264. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  265. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  266. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  267. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +121 -76
  268. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +3 -2
  269. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  270. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  271. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +3 -3
  272. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +121 -76
  273. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +3 -2
  274. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  275. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  276. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
  277. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  278. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
  279. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  280. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  281. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +3 -3
  282. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  283. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  284. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  285. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  286. package/web/.next/server/app/(dashboard)/chat/page/build-manifest.json +3 -3
  287. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  288. package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
  289. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  290. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  291. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +3 -3
  292. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
  293. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  294. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  295. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  296. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +3 -3
  297. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +121 -76
  298. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +3 -2
  299. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  300. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  301. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +3 -3
  302. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +121 -76
  303. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +3 -2
  304. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  305. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  306. package/web/.next/server/app/(dashboard)/page/build-manifest.json +3 -3
  307. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  308. package/web/.next/server/app/(dashboard)/page.js +1 -1
  309. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  310. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  311. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/build-manifest.json +3 -3
  312. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  313. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
  314. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  315. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  316. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +3 -3
  317. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  318. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  319. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  320. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  321. package/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
  322. package/web/.next/server/app/_global-error.html +2 -2
  323. package/web/.next/server/app/_global-error.rsc +1 -1
  324. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  325. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  326. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  327. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  328. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  329. package/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
  330. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  331. package/web/.next/server/app/_not-found/page.js +1 -1
  332. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  333. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  334. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  335. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  336. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  337. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  338. package/web/.next/server/app/features/page/build-manifest.json +3 -3
  339. package/web/.next/server/app/features/page/server-reference-manifest.json +6 -6
  340. package/web/.next/server/app/features/page.js +1 -1
  341. package/web/.next/server/app/features/page.js.nft.json +1 -1
  342. package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
  343. package/web/.next/server/app/settings/page/build-manifest.json +3 -3
  344. package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
  345. package/web/.next/server/app/settings/page.js +3 -3
  346. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  347. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  348. package/web/.next/server/app/skills/page/build-manifest.json +3 -3
  349. package/web/.next/server/app/skills/page/server-reference-manifest.json +52 -22
  350. package/web/.next/server/app/skills/page.js +3 -2
  351. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  352. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  353. package/web/.next/server/app/tools/page/build-manifest.json +3 -3
  354. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  355. package/web/.next/server/app/tools/page.js +1 -1
  356. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  357. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  358. package/web/.next/server/app/version/page/build-manifest.json +3 -3
  359. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  360. package/web/.next/server/app/version/page.js +1 -1
  361. package/web/.next/server/app/version/page.js.nft.json +1 -1
  362. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  363. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  364. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  365. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +1 -1
  366. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  367. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  368. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +1 -1
  369. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
  370. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  371. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  372. package/web/.next/server/chunks/ssr/{_0727935d._.js → 403f9_next_8a33ddee._.js} +2 -2
  373. package/web/.next/server/chunks/ssr/403f9_next_8a33ddee._.js.map +1 -0
  374. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  375. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  376. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +3 -3
  377. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  378. package/web/.next/server/chunks/ssr/[root-of-the-server]__03c66352._.js +4 -0
  379. package/web/.next/server/chunks/ssr/[root-of-the-server]__03c66352._.js.map +1 -0
  380. package/web/.next/server/chunks/ssr/{[root-of-the-server]__e88da4ee._.js → [root-of-the-server]__1cd4327c._.js} +2 -2
  381. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js.map +1 -0
  382. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
  383. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
  384. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  385. package/web/.next/server/chunks/ssr/[root-of-the-server]__403afc23._.js +4 -0
  386. package/web/.next/server/chunks/ssr/[root-of-the-server]__403afc23._.js.map +1 -0
  387. package/web/.next/server/chunks/ssr/[root-of-the-server]__4ed9b909._.js +1 -1
  388. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js +1 -1
  389. package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js.map +1 -1
  390. package/web/.next/server/chunks/ssr/[root-of-the-server]__69dd3217._.js +1 -1
  391. package/web/.next/server/chunks/ssr/[root-of-the-server]__69dd3217._.js.map +1 -1
  392. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +1 -1
  393. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -1
  394. package/web/.next/server/chunks/ssr/{[root-of-the-server]__7ffd3598._.js → [root-of-the-server]__92ffd5ee._.js} +3 -3
  395. package/web/.next/server/chunks/ssr/[root-of-the-server]__92ffd5ee._.js.map +1 -0
  396. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js +2 -2
  397. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js.map +1 -1
  398. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
  399. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
  400. package/web/.next/server/chunks/ssr/[root-of-the-server]__c1262d08._.js +1 -1
  401. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js +1 -1
  402. package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js.map +1 -1
  403. package/web/.next/server/chunks/ssr/[root-of-the-server]__df550e85._.js +3 -0
  404. package/web/.next/server/chunks/ssr/[root-of-the-server]__df550e85._.js.map +1 -0
  405. package/web/.next/server/chunks/ssr/[root-of-the-server]__df5602bf._.js +4 -0
  406. package/web/.next/server/chunks/ssr/[root-of-the-server]__df5602bf._.js.map +1 -0
  407. package/web/.next/server/chunks/ssr/[root-of-the-server]__e9f4767a._.js +4 -0
  408. package/web/.next/server/chunks/ssr/[root-of-the-server]__e9f4767a._.js.map +1 -0
  409. package/web/.next/server/chunks/ssr/_02e01240._.js +1 -1
  410. package/web/.next/server/chunks/ssr/_02e01240._.js.map +1 -1
  411. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  412. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  413. package/web/.next/server/chunks/ssr/{_fe058119._.js → _0fd635d7._.js} +2 -2
  414. package/web/.next/server/chunks/ssr/_0fd635d7._.js.map +1 -0
  415. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  416. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  417. package/web/.next/server/chunks/ssr/_18886033._.js +1 -1
  418. package/web/.next/server/chunks/ssr/_18886033._.js.map +1 -1
  419. package/web/.next/server/chunks/ssr/_22e00a14._.js +1 -1
  420. package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -1
  421. package/web/.next/server/chunks/ssr/_30ddea9d._.js +9 -0
  422. package/web/.next/server/chunks/ssr/_30ddea9d._.js.map +1 -0
  423. package/web/.next/server/chunks/ssr/{_a8b338ec._.js → _34d897da._.js} +2 -2
  424. package/web/.next/server/chunks/ssr/{_a8b338ec._.js.map → _34d897da._.js.map} +1 -1
  425. package/web/.next/server/chunks/ssr/_45496654._.js +3 -0
  426. package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -0
  427. package/web/.next/server/chunks/ssr/_4cbb7f95._.js +1 -1
  428. package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -1
  429. package/web/.next/server/chunks/ssr/_5119a3df._.js +1 -1
  430. package/web/.next/server/chunks/ssr/_5119a3df._.js.map +1 -1
  431. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  432. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  433. package/web/.next/server/chunks/ssr/_6e79a2cc._.js +3 -0
  434. package/web/.next/server/chunks/ssr/_6e79a2cc._.js.map +1 -0
  435. package/web/.next/server/chunks/ssr/_6f35fb9a._.js +3 -0
  436. package/web/.next/server/chunks/ssr/_6f35fb9a._.js.map +1 -0
  437. package/web/.next/server/chunks/ssr/_a5a5901d._.js +1 -1
  438. package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -1
  439. package/web/.next/server/chunks/ssr/_ad09f271._.js +1 -1
  440. package/web/.next/server/chunks/ssr/_ad09f271._.js.map +1 -1
  441. package/web/.next/server/chunks/ssr/_c3f595c6._.js +1 -1
  442. package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -1
  443. package/web/.next/server/chunks/ssr/{_9b964adc._.js → _cac4abe6._.js} +2 -2
  444. package/web/.next/server/chunks/ssr/_cac4abe6._.js.map +1 -0
  445. package/web/.next/server/chunks/ssr/_df737cce._.js +3 -0
  446. package/web/.next/server/chunks/ssr/_df737cce._.js.map +1 -0
  447. package/web/.next/server/chunks/ssr/_ea9e1556._.js +1 -1
  448. package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +1 -1
  449. package/web/.next/server/chunks/ssr/_f1ba9be6._.js +2 -2
  450. package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -1
  451. package/web/.next/server/chunks/ssr/_f33cd07e._.js +2 -2
  452. package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -1
  453. package/web/.next/server/chunks/ssr/_f8b45233._.js +1 -1
  454. package/web/.next/server/chunks/ssr/_f8b45233._.js.map +1 -1
  455. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  456. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  457. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  458. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  459. package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js +3 -0
  460. package/web/.next/server/chunks/ssr/node_modules__pnpm_1300ae39._.js.map +1 -0
  461. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js +3 -0
  462. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js.map +1 -0
  463. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  464. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  465. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  466. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  467. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  468. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  469. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  470. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +3 -0
  471. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -0
  472. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js +1 -1
  473. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js.map +1 -1
  474. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
  475. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
  476. package/web/.next/server/middleware-build-manifest.js +3 -3
  477. package/web/.next/server/pages/500.html +2 -2
  478. package/web/.next/server/server-reference-manifest.js +1 -1
  479. package/web/.next/server/server-reference-manifest.json +349 -211
  480. package/web/.next/static/chunks/0769c695d6b663c7.js +1 -0
  481. package/web/.next/static/chunks/09a25231e5fc1ab8.js +3 -0
  482. package/web/.next/static/chunks/{d6c39780c2f75ecd.js → 0f30a983f3467cd5.js} +1 -1
  483. package/web/.next/static/chunks/185e4f36cb6efb24.js +1 -0
  484. package/web/.next/static/chunks/{d5366257d6b9f855.js → 2a9af061f4fbe7f5.js} +1 -1
  485. package/web/.next/static/chunks/2ceebcc839ee0d4b.js +1 -0
  486. package/web/.next/static/chunks/{04c874f52a7cd435.js → 37f9543560c58ea6.js} +1 -1
  487. package/web/.next/static/chunks/{caf7d7e1b439b29e.js → 4219ddfde68a6d0b.js} +1 -1
  488. package/web/.next/static/chunks/{562c70303d910295.js → 478adf5d5156f002.js} +1 -1
  489. package/web/.next/static/chunks/52681a7f14138e48.js +1 -0
  490. package/web/.next/static/chunks/5743a9c1c63e5261.js +5 -0
  491. package/web/.next/static/chunks/5cf9745e2ef3837c.js +1 -0
  492. package/web/.next/static/chunks/5e20f692bbfcfb94.js +7 -0
  493. package/web/.next/static/chunks/74729cbad964be13.js +1 -0
  494. package/web/.next/static/chunks/{c5d89c12a73e0461.js → 9a78b4c5dcd28196.js} +2 -2
  495. package/web/.next/static/chunks/c80e8e3d0cf5baa6.css +1 -0
  496. package/web/.next/static/chunks/cc5fe8d1d9e1e519.js +5 -0
  497. package/web/.next/static/chunks/d5bf9c963b5346e1.js +1 -0
  498. package/web/.next/static/chunks/d60cee2e7318f425.js +1 -0
  499. package/web/.next/static/chunks/da565c85277c2461.js +1 -0
  500. package/web/.next/static/chunks/e93ae5725b0babeb.js +1 -0
  501. package/web/.next/static/chunks/fb89cf91c10b2e8b.js +1 -0
  502. package/web/.next/static/chunks/{021c9b0effb6d688.js → fc595d95626ac9bb.js} +1 -1
  503. package/web/.next/static/chunks/{turbopack-57bb0674e2cd1d31.js → turbopack-b38a68b1b1c41a87.js} +1 -1
  504. package/web/.next/server/chunks/ssr/[root-of-the-server]__20a36a42._.js +0 -3
  505. package/web/.next/server/chunks/ssr/[root-of-the-server]__20a36a42._.js.map +0 -1
  506. package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js +0 -4
  507. package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js.map +0 -1
  508. package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js +0 -4
  509. package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js.map +0 -1
  510. package/web/.next/server/chunks/ssr/[root-of-the-server]__7ffd3598._.js.map +0 -1
  511. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js +0 -4
  512. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js.map +0 -1
  513. package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js +0 -4
  514. package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js.map +0 -1
  515. package/web/.next/server/chunks/ssr/[root-of-the-server]__e88da4ee._.js.map +0 -1
  516. package/web/.next/server/chunks/ssr/_0727935d._.js.map +0 -1
  517. package/web/.next/server/chunks/ssr/_0dc06d07._.js +0 -3
  518. package/web/.next/server/chunks/ssr/_0dc06d07._.js.map +0 -1
  519. package/web/.next/server/chunks/ssr/_682fc996._.js +0 -9
  520. package/web/.next/server/chunks/ssr/_682fc996._.js.map +0 -1
  521. package/web/.next/server/chunks/ssr/_6892e3b9._.js +0 -3
  522. package/web/.next/server/chunks/ssr/_6892e3b9._.js.map +0 -1
  523. package/web/.next/server/chunks/ssr/_9b964adc._.js.map +0 -1
  524. package/web/.next/server/chunks/ssr/_a1068852._.js +0 -3
  525. package/web/.next/server/chunks/ssr/_a1068852._.js.map +0 -1
  526. package/web/.next/server/chunks/ssr/_fe058119._.js.map +0 -1
  527. package/web/.next/server/chunks/ssr/node_modules__pnpm_12a7ede0._.js +0 -3
  528. package/web/.next/server/chunks/ssr/node_modules__pnpm_12a7ede0._.js.map +0 -1
  529. package/web/.next/static/chunks/20f7cc98a013b11c.js +0 -1
  530. package/web/.next/static/chunks/4cec255f2754e5ec.js +0 -1
  531. package/web/.next/static/chunks/5b7275374d2696b3.css +0 -1
  532. package/web/.next/static/chunks/647140fe96a7c88a.js +0 -1
  533. package/web/.next/static/chunks/6d6f70ff5151b8cb.js +0 -7
  534. package/web/.next/static/chunks/84792d40edc4b027.js +0 -5
  535. package/web/.next/static/chunks/8800875bb3d56192.js +0 -3
  536. package/web/.next/static/chunks/8d581adafe8d1dd0.js +0 -1
  537. package/web/.next/static/chunks/982aef195c118996.js +0 -1
  538. package/web/.next/static/chunks/a052c19c18e9eced.js +0 -1
  539. package/web/.next/static/chunks/a6b5e739d2f89c6b.js +0 -1
  540. package/web/.next/static/chunks/b0e2fb3d4eb42f3d.js +0 -1
  541. package/web/.next/static/chunks/c3ef3b892f7794ec.js +0 -1
  542. package/web/.next/static/chunks/dc134f3f58cdf850.js +0 -5
  543. package/web/.next/static/chunks/ff9e33615f5c856c.js +0 -1
  544. /package/web/.next/static/{lFiCv3l4nIAIpZmj6eehh → G895CgnbZl4YvWN_DaRC-}/_buildManifest.js +0 -0
  545. /package/web/.next/static/{lFiCv3l4nIAIpZmj6eehh → G895CgnbZl4YvWN_DaRC-}/_clientMiddlewareManifest.json +0 -0
  546. /package/web/.next/static/{lFiCv3l4nIAIpZmj6eehh → G895CgnbZl4YvWN_DaRC-}/_ssgManifest.js +0 -0
@@ -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)("404acb35c714e852e5ccc5d806e1bf2c3aee13cf1a",f.callServer,void 0,f.findSourceMapURL,"createFeature");a.i(90370);var h=a.i(24640),i=a.i(45242),j=a.i(14177),k=a.i(10606),l=a.i(3942),m=a.i(46168),n=a.i(42527),o=a.i(88064),p=a.i(73708),q=a.i(62147),r=a.i(28002),s=a.i(85536),t=a.i(19884);a.i(78454);var u=a.i(24255),v=a.i(2824),w=a.i(18948),x=a.i(90920),y=a.i(79620),z=a.i(584),A=a.i(58339),B=a.i(80646),C=a.i(96867),D=a.i(82934),E=a.i(96213);a.i(307);var F=a.i(30931);let G=(0,f.createServerReference)("40a24143f4b03afaa6249a2eeb71c5c8d707747ec8",f.callServer,void 0,f.findSourceMapURL,"getViewerPermission");var H=a.i(61781),I=a.i(13126),J=a.i(1377);a.i(21434);var K=a.i(34379),L=a.i(21333),M=a.i(91331),N=a.i(39116);let O=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"]),P={allowPrd:!1,allowPlan:!1,allowMerge:!1};function Q({open:a,onClose:d,onSubmit:e,repositoryPath:f,isSubmitting:g=!1,workflowDefaults:j,features:k,repositories:n,initialParentId:o,currentAgentType:x,currentModel:B,initialDescription:I,canPushDirectly:J}){let K=(0,t.useSoundAction)("create"),{t:L}=(0,h.useTranslation)("web"),M=f&&(!n||0===n.length||n.some(a=>a.path===f))?f:"",Q=j?.approvalGates??P,T=j?.push??!1,U=j?.openPr??!1,V=j?.ciWatchEnabled!==!1,W=j?.enableEvidence??!1,X=j?.commitEvidence??!1,Y=j?.fast!==!1,[Z,$]=(0,c.useState)(I??"");(0,c.useEffect)(()=>{I&&$(I)},[I]);let[_,aa]=(0,c.useState)([]),[ab,ac]=(0,c.useState)({...Q}),[ad,ae]=(0,c.useState)(T),[af,ag]=(0,c.useState)(U),[ah,ai]=(0,c.useState)(j?.ciWatchEnabled!==!1),[aj,ak]=(0,c.useState)(W),[al,am]=(0,c.useState)(X),[an,ao]=(0,c.useState)(void 0),[ap,aq]=(0,c.useState)(Y),[ar,as]=(0,c.useState)(!1),[at,au]=(0,c.useState)(!1),[av,aw]=(0,c.useState)(!0),[ax,ay]=(0,c.useState)(!0),[az,aA]=(0,c.useState)(void 0),[aB,aC]=(0,c.useState)(void 0),[aD,aE]=(0,c.useState)(M||void 0),[aF,aG]=(0,c.useState)(n??[]),[aH,aI]=(0,c.useState)(!1),[aJ,aK]=(0,c.useState)(null),[aL,aM]=(0,c.useState)(!1),aN=(0,c.useRef)(crypto.randomUUID()),aO=(0,c.useRef)(0),aP=(0,c.useRef)(null);(0,c.useEffect)(()=>{j&&(ac({...j.approvalGates}),ae(j.push),ag(j.openPr),ai(!1!==j.ciWatchEnabled),ak(j.enableEvidence),am(j.commitEvidence),aq(!1!==j.fast))},[j]),(0,c.useEffect)(()=>{aG(n??[])},[n]),(0,c.useEffect)(()=>{a&&o&&ao(o)},[a,o]);let[aQ,aR]=(0,c.useState)(J??!1);(0,c.useEffect)(()=>{aR(J??!1)},[J]);let aS=(0,c.useRef)(aD);(0,c.useEffect)(()=>{aD&&aD!==aS.current&&(aS.current=aD,G(aD).then(a=>aR(a.canPushDirectly)).catch(()=>aR(!1)))},[aD]),(0,c.useEffect)(()=>{aQ&&(au(!1),ae(T),ag(U),aw(!0))},[aQ,T,U]);let aT=(0,c.useCallback)(()=>{$(""),aa([]),ac({...Q}),ae(T),ag(U),ai(V),ak(W),am(X),ao(void 0),aE(M||void 0),aG(n??[]),aq(Y),as(!1),au(!1),aw(!0),ay(!0),aA(void 0),aC(void 0),aK(null),aO.current=0,aI(!1)},[Q,T,U,W,V,X,Y,M,n]),aU=""!==Z.trim()||_.length>0,{attemptClose:aV}=(0,E.useGuardedDrawerClose)({open:a,isDirty:aU,onClose:d,onReset:aT}),aW=(0,c.useCallback)(async a=>{for(let b of(aK(null),a)){if(b.size>0xa00000)return void aK(`"${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&&!O.has(a))return void aK(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();aa(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",aN.current);let d=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!d.ok){let b=await d.json().catch(()=>({error:"Upload failed"}));aa(b=>b.filter(b=>b.id!==a)),aK(b.error??"Upload failed");return}let e=await d.json();aa(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{aa(b=>b.filter(b=>b.id!==a)),aK("Upload failed")}}},[]),aX=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aO.current+=1,1===aO.current&&aI(!0)},[]),aY=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aO.current-=1,0===aO.current&&aI(!1)},[]),aZ=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),a$=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aO.current=0,aI(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&aW(b)},[aW]),a_=(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(),aW(c))},[aW]),a0=(0,c.useCallback)(a=>{if(a.preventDefault(),!Z.trim())return;let b=aD??M;b&&(K.play(),e({description:Z.trim(),attachments:_.filter(a=>!a.loading),repositoryPath:b,approvalGates:{allowPrd:ab.allowPrd??!1,allowPlan:ab.allowPlan??!1,allowMerge:ab.allowMerge??!1},push:!!at||ad||af,openPr:!!at||af,ciWatchEnabled:ah,enableEvidence:aj,commitEvidence:al,fast:ap,forkAndPr:at,commitSpecs:av,rebaseBeforeBranch:ax,...ar?{pending:ar}:{},...az?{agentType:az}:{},...aB?{model:aB}:{},...an?{parentId:an}:{},sessionId:aN.current}),aT())},[Z,_,ab,aD,M,e,ad,af,aj,ah,al,ap,at,av,ax,ar,az,aB,an,K,aT]),a1=(0,c.useCallback)(async()=>{try{let a=await (0,N.pickFiles)();if(!a)return;for(let b of a){let a=crypto.randomUUID();aa(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:aN.current})});if(!c.ok){let b=await c.json().catch(()=>({error:"Upload failed"}));aa(b=>b.filter(b=>b.id!==a)),aK(b.error??"Upload failed");return}let d=await c.json();aa(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{aa(b=>b.filter(b=>b.id!==a)),aK("Upload failed")}}}catch{}},[]),a2=(0,c.useCallback)(a=>{aa(b=>b.filter(b=>b.id!==a))},[]),a3=(0,c.useCallback)((a,b)=>{aa(c=>c.map(c=>c.id===a?{...c,notes:b}:c))},[]),a4=(0,c.useRef)(null),a5=(0,c.useCallback)(a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),a4.current?.requestSubmit())},[]),a6=(0,c.useCallback)(()=>{aM(!0)},[]),a7=(0,c.useCallback)(()=>{setTimeout(()=>{let a=aP.current?.contains(document.activeElement),b=aP.current?.querySelector('[aria-expanded="true"]')!==null;a||b||aM(!1)},0)},[]),a8=k&&k.length>0,a9=!M&&!aD,ba=!M&&void 0!==n,bb=[{id:"allowPrd",label:L("createDrawer.prd"),description:L("createDrawer.prdDescription")},{id:"allowPlan",label:L("createDrawer.plan"),description:L("createDrawer.planDescription")},{id:"allowMerge",label:L("createDrawer.merge"),description:L("createDrawer.mergeDescription")}];return(0,b.jsx)(u.BaseDrawer,{open:a,onClose:aV,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)(v.DrawerTitle,{children:L("createDrawer.title")})]}),g?(0,b.jsx)(v.DrawerDescription,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(A.Badge,{variant:"secondary",children:L("createDrawer.creating")})})}):null]}),footer:(0,b.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,b.jsx)(w.Button,{variant:"outline",onClick:aV,disabled:g,children:L("createDrawer.cancel")}),(0,b.jsx)(w.Button,{type:"submit",form:"create-feature-form",disabled:!Z.trim()||g||a9,children:g?L("createDrawer.creating"):L("createDrawer.createFeature")})]}),children:(0,b.jsx)("div",{className:"overflow-y-auto p-4",children:(0,b.jsx)(D.TooltipProvider,{delayDuration:400,children:(0,b.jsxs)("form",{ref:a4,id:"create-feature-form",onSubmit:a0,onKeyDown:a5,className:"flex flex-col gap-4",children:[ba?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,b.jsx)(z.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:L("createDrawer.repository")}),(0,b.jsx)(S,{repositories:aF,value:aD,onChange:aE,onAddRepository:a=>{aG(b=>[...b,a]),aE(a.path)},disabled:g})]}):M?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,b.jsx)(z.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:L("createDrawer.repository")}),(0,b.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:n?.find(a=>a.path===M)?.name??M.split("/").pop()})]}):null,(0,b.jsxs)("div",{role:"region","aria-label":L("createDrawer.fileDropZone"),"data-drag-over":aH?"true":"false",onDragEnter:aX,onDragLeave:aY,onDragOver:aZ,onDrop:a$,className:(0,s.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",aH&&"border-primary/50 bg-primary/5"),children:[(0,b.jsx)(z.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:L("createDrawer.describeFeature")}),(0,b.jsxs)("div",{ref:aP,onFocus:a6,onBlur:a7,className:(0,s.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",aL&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,b.jsx)(y.Textarea,{id:"feature-description",placeholder:L("createDrawer.featurePlaceholder"),value:Z,onChange:a=>$(a.target.value),onPaste:a_,required:!0,disabled:g,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),_.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:_.map(a=>(0,b.jsx)(F.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>a2(a.id),disabled:g,loading:a.loading,notes:a.notes,onNotesChange:b=>a3(a.id,b)},a.id))}),aJ?(0,b.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:aJ}):null,(0,b.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,b.jsx)(H.AgentModelPicker,{initialAgentType:az??x??"claude-code",initialModel:aB??B??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(a,b)=>{aA(a),aC(b)},disabled:g,className:"w-55"}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(C.Switch,{id:"pending-mode",checked:ar,onCheckedChange:as,disabled:g}),(0,b.jsxs)(z.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(m.Clock,{className:"h-3.5 w-3.5"}),L("createDrawer.pendingMode")]})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.pendingModeDescription")})]}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(C.Switch,{id:"fast-mode",checked:ap,onCheckedChange:aq,disabled:g}),(0,b.jsxs)(z.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(l.Zap,{className:"h-3.5 w-3.5"}),L("createDrawer.fastModeLabel")]})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.fastModeDescription")})]}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:a1,disabled:g,"aria-label":L("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,b.jsx)(i.PaperclipIcon,{className:"h-4 w-4"})})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("chat.attachFiles")})]})]})]})]}),a8&&void 0!==o?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(z.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:L("createDrawer.parentFeature")}),(0,b.jsx)(R,{features:k,value:an,onChange:ao,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)(D.Tooltip,{children:[(0,b.jsx)(D.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:L("createDrawer.approve")})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.approveDescription")})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:bb.map(a=>(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:`approve-${a.id}`,size:"sm",checked:ab[a.id]??!1,onCheckedChange:b=>ac(c=>({...c,[a.id]:b})),disabled:g||ap&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,b.jsx)(z.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:ap&&("allowPrd"===a.id||"allowPlan"===a.id)?L("createDrawer.skippedInFastMode"):a.description})]},a.id))}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:()=>{let a=bb.every(a=>ab[a.id]),b={};for(let c of bb)b[c.id]=!a;ac(b)},disabled:g,className:(0,s.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",bb.every(a=>ab[a.id])&&"text-primary"),children:L("createDrawer.all")})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.toggleAllApprovalGates")})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.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:L("createDrawer.evidence")})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.evidenceDescription")})]}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"enable-evidence",size:"sm",checked:aj,onCheckedChange:a=>{ak(a),a||am(!1)},disabled:g}),(0,b.jsx)(z.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:L("createDrawer.collect")})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.collectDescription")})]}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"commit-evidence",size:"sm",checked:al,onCheckedChange:am,disabled:g||!aj||!af&&!at}),(0,b.jsx)(z.Label,{htmlFor:"commit-evidence",className:(0,s.cn)("cursor-pointer text-xs font-medium",(!aj||!af&&!at)&&"opacity-50"),children:L("createDrawer.addToPr")})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:af||at?aj?L("createDrawer.addToPrDescription"):L("createDrawer.requiresEvidence"):L("createDrawer.requiresPr")})]})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-start gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 pt-0.5 text-xs font-semibold tracking-wider",children:L("createDrawer.git")}),(0,b.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"push",size:"sm",checked:!!at||ad||af,onCheckedChange:a=>{ae(a),!a&&af&&ag(!1)},disabled:g||at}),(0,b.jsx)(z.Label,{htmlFor:"push",className:(0,s.cn)("cursor-pointer text-xs font-medium",at&&"opacity-50"),children:L("createDrawer.push")})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:at?"Enabled — contributing to upstream":L("createDrawer.pushDescription")})]}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"open-pr",size:"sm",checked:!!at||af,onCheckedChange:a=>{ag(a),a||am(!1)},disabled:g||at}),(0,b.jsx)(z.Label,{htmlFor:"open-pr",className:(0,s.cn)("cursor-pointer text-xs font-medium",at&&"opacity-50"),children:L("createDrawer.pr")})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:at?"Enabled — contributing to upstream":L("createDrawer.prDescription")})]}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"ci-watch",size:"sm",checked:ah,onCheckedChange:ai,disabled:g}),(0,b.jsx)(z.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:L("createDrawer.watch")})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.watchDescription")})]}),(0,b.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"rebase-before-branch",size:"sm",checked:ax,onCheckedChange:ay,disabled:g}),(0,b.jsxs)(z.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(r.RefreshCw,{className:"h-3 w-3"}),L("createDrawer.sync")]})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.syncDescription")})]}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"commit-specs",size:"sm",checked:av,onCheckedChange:aw,disabled:g}),(0,b.jsxs)(z.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(q.FileText,{className:"h-3 w-3"}),L("createDrawer.commitSpecs")]})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.commitSpecsDescription")})]}),!aQ&&(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"fork-and-pr",size:"sm",checked:at,onCheckedChange:a=>{au(a),a&&aw(!1)},disabled:g}),(0,b.jsxs)(z.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(p.GitFork,{className:"h-3 w-3"}),L("createDrawer.forkAndPr")]})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.forkAndPrDescription")})]})]})]})]})]})})})})}function R({features:a,value:d,onChange:e,disabled:f}){let{t:g}=(0,h.useTranslation)("web"),[i,l]=(0,c.useState)(!1),[m,n]=(0,c.useState)(""),o=(0,c.useRef)(null),p=a.find(a=>a.id===d),q=m.trim()?a.filter(a=>a.name.toLowerCase().includes(m.toLowerCase())||a.id.toLowerCase().includes(m.toLowerCase())):a,r=(0,c.useCallback)(a=>{e(a),l(!1),n("")},[e]);return(0,c.useEffect)(()=>{i?setTimeout(()=>o.current?.focus(),0):n("")},[i]),(0,b.jsxs)(B.Popover,{open:i,onOpenChange:l,children:[(0,b.jsx)(B.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":i,"aria-label":"Parent Feature",disabled:f,"data-testid":"parent-feature-combobox",className:(0,s.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",!p&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:p?`${p.name} (${p.id.slice(0,8)})`:g("createDrawer.selectParent")}),(0,b.jsx)(j.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(B.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)(x.Input,{ref:o,placeholder:g("createDrawer.searchFeatures"),value:m,onChange:a=>n(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:()=>r(void 0),className:(0,s.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)(k.CheckIcon,{className:(0,s.cn)("h-4 w-4 shrink-0",void 0!==d&&"invisible")}),(0,b.jsx)("span",{className:"text-muted-foreground italic",children:g("createDrawer.noParent")})]}),0===q.length&&m?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:g("createDrawer.noFeaturesFound")}):q.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.id,onClick:()=>r(a.id),className:(0,s.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)(k.CheckIcon,{className:(0,s.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 S({repositories:a,value:d,onChange:e,onAddRepository:f,disabled:g}){let[i,l]=(0,c.useState)(!1),[m,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(!1),[t,u]=(0,c.useState)(null),[v,w]=(0,c.useState)(!1),y=(0,c.useRef)(null),{reactFileManager:z}=(0,L.useFeatureFlags)(),{t:A}=(0,h.useTranslation)("web"),C=a.find(a=>a.path===d),D=m.trim()?a.filter(a=>a.name.toLowerCase().includes(m.toLowerCase())||a.path.toLowerCase().includes(m.toLowerCase())):a,E=(0,c.useCallback)(a=>{e(a),l(!1),p("")},[e]),F=(0,c.useCallback)(async a=>{let b=await (0,M.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),l(!1),p("")}},[f,e]),G=(0,c.useCallback)(async()=>{if(!q){if(z)return void w(!0);r(!0),u(null);try{let a=await (0,J.pickFolder)();if(!a)return void r(!1);await F(a)}catch{w(!0)}finally{r(!1)}}},[q,z,F]),H=(0,c.useCallback)(async a=>{if(w(!1),a){r(!0),u(null);try{await F(a)}catch(a){u(a instanceof Error?a.message:"Failed to add repository")}finally{r(!1)}}},[F]);return(0,c.useEffect)(()=>{i?setTimeout(()=>y.current?.focus(),0):p("")},[i]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(B.Popover,{open:i,onOpenChange:l,children:[(0,b.jsx)(B.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button",role:"combobox","aria-expanded":i,"aria-label":"Repository",disabled:g,"data-testid":"repository-combobox",className:(0,s.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",!C&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:C?C.name:"Select repository..."}),(0,b.jsx)(j.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(B.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)(x.Input,{ref:y,placeholder:A("createDrawer.searchRepositories"),value:m,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===D.length?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):D.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.path,onClick:()=>E(a.path),className:(0,s.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)(k.CheckIcon,{className:(0,s.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)(I.Separator,{}),(0,b.jsxs)("button",{type:"button",onClick:G,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)(o.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,b.jsx)(n.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:"Add new repository..."})]}),t?(0,b.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:t}):null]})})]}),(0,b.jsx)(K.ReactFileManagerDialog,{open:v,onOpenChange:a=>{a||w(!1)},onSelect:H})]})}function T({repositoryPath:a,initialParentId:f,initialDescription:h,features:i,repositories:j,workflowDefaults:k,currentAgentType:l,currentModel:m,canPushDirectly:n}){let o=(0,d.useRouter)(),[p,q]=(0,c.useState)(!1),r=(0,d.usePathname)().startsWith("/create"),s=!p&&r;(0,c.useEffect)(()=>{!r&&p&&q(!1)},[r,p]);let t=(0,c.useCallback)(()=>{o.push("/")},[o]),u=(0,c.useCallback)(a=>{q(!0),o.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"),q(!1)})},[o]);return(0,b.jsx)(Q,{open:s,onClose:t,onSubmit:u,repositoryPath:a,features:i,repositories:j,workflowDefaults:k,initialParentId:f,initialDescription:h,isSubmitting:p,currentAgentType:l,currentModel:m,canPushDirectly:n})}a.s(["CreateDrawerClient",()=>T],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)("40a2b97957d9585c08a96e0fae6a12b1e5bb83a643",f.callServer,void 0,f.findSourceMapURL,"createFeature");a.i(90370);var h=a.i(24640),i=a.i(45242),j=a.i(14177),k=a.i(10606),l=a.i(46168),m=a.i(42527),n=a.i(88064),o=a.i(73708),p=a.i(62147),q=a.i(67424),r=a.i(28002),s=a.i(85536),t=a.i(19884);a.i(78454);var u=a.i(24255),v=a.i(2824),w=a.i(18948),x=a.i(90920),y=a.i(79620),z=a.i(584),A=a.i(58339),B=a.i(80646),C=a.i(96867),D=a.i(82934),E=a.i(96213);a.i(307);var F=a.i(30931);let G=(0,f.createServerReference)("40370a7dd12efe6d81fbd551b123f1c23aac7d784a",f.callServer,void 0,f.findSourceMapURL,"getViewerPermission");var H=a.i(61781),I=a.i(13126),J=a.i(1377);a.i(21434);var K=a.i(34379),L=a.i(21333),M=a.i(46847),N=a.i(74295),O=a.i(69428),P=a.i(3942),Q=a.i(78281),R=a.i(7420),S=a.i(66873),T=a.i(77127),U=a.i(59653),V=a.i(17329),W="Toggle",X=c.forwardRef((a,c)=>{let{pressed:d,defaultPressed:e,onPressedChange:f,...g}=a,[h,i]=(0,V.useControllableState)({prop:d,onChange:f,defaultProp:e??!1,caller:W});return(0,b.jsx)(S.Primitive.button,{type:"button","aria-pressed":h,"data-state":h?"on":"off","data-disabled":a.disabled?"":void 0,...g,ref:c,onClick:(0,U.composeEventHandlers)(a.onClick,()=>{a.disabled||i(!h)})})});X.displayName=W,a.s(["Root",()=>X,"Toggle",()=>X],81398);var Y=a.i(48939),Z="ToggleGroup",[$,_]=(0,R.createContextScope)(Z,[T.createRovingFocusGroupScope]),aa=(0,T.createRovingFocusGroupScope)(),ab=c.default.forwardRef((a,c)=>{let{type:d,...e}=a;if("single"===d)return(0,b.jsx)(ae,{...e,ref:c});if("multiple"===d)return(0,b.jsx)(af,{...e,ref:c});throw Error(`Missing prop \`type\` expected on \`${Z}\``)});ab.displayName=Z;var[ac,ad]=$(Z),ae=c.default.forwardRef((a,d)=>{let{value:e,defaultValue:f,onValueChange:g=()=>{},...h}=a,[i,j]=(0,V.useControllableState)({prop:e,defaultProp:f??"",onChange:g,caller:Z});return(0,b.jsx)(ac,{scope:a.__scopeToggleGroup,type:"single",value:c.default.useMemo(()=>i?[i]:[],[i]),onItemActivate:j,onItemDeactivate:c.default.useCallback(()=>j(""),[j]),children:(0,b.jsx)(ai,{...h,ref:d})})}),af=c.default.forwardRef((a,d)=>{let{value:e,defaultValue:f,onValueChange:g=()=>{},...h}=a,[i,j]=(0,V.useControllableState)({prop:e,defaultProp:f??[],onChange:g,caller:Z}),k=c.default.useCallback(a=>j((b=[])=>[...b,a]),[j]),l=c.default.useCallback(a=>j((b=[])=>b.filter(b=>b!==a)),[j]);return(0,b.jsx)(ac,{scope:a.__scopeToggleGroup,type:"multiple",value:i,onItemActivate:k,onItemDeactivate:l,children:(0,b.jsx)(ai,{...h,ref:d})})});ab.displayName=Z;var[ag,ah]=$(Z),ai=c.default.forwardRef((a,c)=>{let{__scopeToggleGroup:d,disabled:e=!1,rovingFocus:f=!0,orientation:g,dir:h,loop:i=!0,...j}=a,k=aa(d),l=(0,Y.useDirection)(h),m={role:"group",dir:l,...j};return(0,b.jsx)(ag,{scope:d,rovingFocus:f,disabled:e,children:f?(0,b.jsx)(T.Root,{asChild:!0,...k,orientation:g,dir:l,loop:i,children:(0,b.jsx)(S.Primitive.div,{...m,ref:c})}):(0,b.jsx)(S.Primitive.div,{...m,ref:c})})}),aj="ToggleGroupItem",ak=c.default.forwardRef((a,d)=>{let e=ad(aj,a.__scopeToggleGroup),f=ah(aj,a.__scopeToggleGroup),g=aa(a.__scopeToggleGroup),h=e.value.includes(a.value),i=f.disabled||a.disabled,j={...a,pressed:h,disabled:i},k=c.default.useRef(null);return f.rovingFocus?(0,b.jsx)(T.Item,{asChild:!0,...g,focusable:!i,active:h,ref:k,children:(0,b.jsx)(al,{...j,ref:d})}):(0,b.jsx)(al,{...j,ref:d})});ak.displayName=aj;var al=c.default.forwardRef((a,c)=>{let{__scopeToggleGroup:d,value:e,...f}=a,g=ad(aj,d),h={role:"radio","aria-checked":a.pressed,"aria-pressed":void 0},i="single"===g.type?h:void 0;return(0,b.jsx)(X,{...i,...f,ref:c,onPressedChange:a=>{a?g.onItemActivate(e):g.onItemDeactivate(e)}})});a.s(["Item",()=>ak,"Root",()=>ab,"ToggleGroup",()=>ab,"ToggleGroupItem",()=>ak,"createToggleGroupScope",()=>_],75291);var am=a.i(75291),am=am,an=a.i(42261);a.i(81398);let ao=(0,an.cva)("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground"},size:{default:"h-9 min-w-9 px-2",sm:"h-8 min-w-8 px-1.5",lg:"h-10 min-w-10 px-2.5"}},defaultVariants:{variant:"default",size:"default"}}),ap=c.createContext({size:"default",variant:"default",spacing:0});function aq({className:a,variant:c,size:d,spacing:e=0,children:f,...g}){return(0,b.jsx)(am.Root,{"data-slot":"toggle-group","data-variant":c,"data-size":d,"data-spacing":e,style:{"--gap":e},className:(0,s.cn)("group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs",a),...g,children:(0,b.jsx)(ap.Provider,{value:{variant:c,size:d,spacing:e},children:f})})}function ar({className:a,children:d,variant:e,size:f,...g}){let h=c.useContext(ap);return(0,b.jsx)(am.Item,{"data-slot":"toggle-group-item","data-variant":h.variant??e,"data-size":h.size??f,"data-spacing":h.spacing,className:(0,s.cn)(ao({variant:h.variant??e,size:h.size??f}),"w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10","data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l",a),...g,children:d})}let as=[{value:M.FeatureMode.Regular,icon:O.ClipboardList,label:"Regular",description:"Full SDLC — requirements, research, planning, implementation, and review."},{value:M.FeatureMode.Fast,icon:P.Zap,label:"Fast",description:"Direct implementation — skip SDLC phases, go straight to code."},{value:M.FeatureMode.Exploration,icon:Q.FlaskConical,label:"Explore",description:"Iterative prototyping — generate quick prototypes and iterate with feedback."}];function at({value:a,onChange:c,disabled:d}){return(0,b.jsx)(D.TooltipProvider,{delayDuration:300,children:(0,b.jsx)(aq,{type:"single",variant:"outline",size:"sm",value:a,onValueChange:a=>{a&&c(a)},disabled:d,"aria-label":"Feature mode","data-testid":"mode-selector",children:as.map(a=>(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)(ar,{value:a.value,"aria-label":a.label,"data-testid":`mode-option-${a.value.toLowerCase()}`,className:"data-[state=on]:bg-primary data-[state=on]:text-primary-foreground flex items-center gap-1 px-2 text-xs",children:[(0,b.jsx)(a.icon,{className:"h-3.5 w-3.5"}),a.label]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:a.description})]},a.value))})})}var au=a.i(39116);let av=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"]),aw={allowPrd:!1,allowPlan:!1,allowMerge:!1};function ax({open:a,onClose:d,onSubmit:e,repositoryPath:f,isSubmitting:g=!1,workflowDefaults:j,features:k,repositories:m,initialParentId:n,currentAgentType:x,currentModel:B,initialDescription:I,canPushDirectly:J}){let K=(0,t.useSoundAction)("create"),{t:L}=(0,h.useTranslation)("web"),N=f&&(!m||0===m.length||m.some(a=>a.path===f))?f:"",O=j?.approvalGates??aw,P=j?.push??!1,Q=j?.openPr??!1,R=j?.ciWatchEnabled!==!1,S=j?.enableEvidence??!1,T=j?.commitEvidence??!1,U=j?.defaultMode??M.FeatureMode.Fast,[V,W]=(0,c.useState)(I??"");(0,c.useEffect)(()=>{I&&W(I)},[I]);let[X,Y]=(0,c.useState)([]),[Z,$]=(0,c.useState)({...O}),[_,aa]=(0,c.useState)(P),[ab,ac]=(0,c.useState)(Q),[ad,ae]=(0,c.useState)(j?.ciWatchEnabled!==!1),[af,ag]=(0,c.useState)(S),[ah,ai]=(0,c.useState)(T),[aj,ak]=(0,c.useState)(void 0),[al,am]=(0,c.useState)(U),[an,ao]=(0,c.useState)(!1),[ap,aq]=(0,c.useState)(!1),[ar,as]=(0,c.useState)(!0),[ax,aA]=(0,c.useState)(!0),[aB,aC]=(0,c.useState)(j?.injectSkills??!1),[aD,aE]=(0,c.useState)(void 0),[aF,aG]=(0,c.useState)(void 0),[aH,aI]=(0,c.useState)(N||void 0),[aJ,aK]=(0,c.useState)(m??[]),[aL,aM]=(0,c.useState)(!1),[aN,aO]=(0,c.useState)(null),[aP,aQ]=(0,c.useState)(!1),aR=(0,c.useRef)(crypto.randomUUID()),aS=(0,c.useRef)(0),aT=(0,c.useRef)(null);(0,c.useEffect)(()=>{j&&($({...j.approvalGates}),aa(j.push),ac(j.openPr),ae(!1!==j.ciWatchEnabled),ag(j.enableEvidence),ai(j.commitEvidence),am(j.defaultMode??M.FeatureMode.Fast),aC(j.injectSkills??!1))},[j]),(0,c.useEffect)(()=>{aK(m??[])},[m]),(0,c.useEffect)(()=>{a&&n&&ak(n)},[a,n]);let[aU,aV]=(0,c.useState)(J??!1);(0,c.useEffect)(()=>{aV(J??!1)},[J]);let aW=(0,c.useRef)(aH);(0,c.useEffect)(()=>{aH&&aH!==aW.current&&(aW.current=aH,G(aH).then(a=>aV(a.canPushDirectly)).catch(()=>aV(!1)))},[aH]),(0,c.useEffect)(()=>{aU&&(aq(!1),aa(P),ac(Q),as(!0))},[aU,P,Q]);let aX=(0,c.useCallback)(()=>{W(""),Y([]),$({...O}),aa(P),ac(Q),ae(R),ag(S),ai(T),ak(void 0),aI(N||void 0),aK(m??[]),am(U),ao(!1),aq(!1),as(!0),aA(!0),aE(void 0),aG(void 0),aO(null),aS.current=0,aM(!1)},[O,P,Q,S,R,T,U,N,m]),aY=""!==V.trim()||X.length>0,{attemptClose:aZ}=(0,E.useGuardedDrawerClose)({open:a,isDirty:aY,onClose:d,onReset:aX}),a$=(0,c.useCallback)(async a=>{for(let b of(aO(null),a)){if(b.size>0xa00000)return void aO(`"${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&&!av.has(a))return void aO(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();Y(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",aR.current);let d=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!d.ok){let b=await d.json().catch(()=>({error:"Upload failed"}));Y(b=>b.filter(b=>b.id!==a)),aO(b.error??"Upload failed");return}let e=await d.json();Y(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{Y(b=>b.filter(b=>b.id!==a)),aO("Upload failed")}}},[]),a_=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aS.current+=1,1===aS.current&&aM(!0)},[]),a0=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aS.current-=1,0===aS.current&&aM(!1)},[]),a1=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),a2=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aS.current=0,aM(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&a$(b)},[a$]),a3=(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(),a$(c))},[a$]),a4=(0,c.useCallback)(a=>{if(a.preventDefault(),!V.trim())return;let b=aH??N;b&&(K.play(),e({description:V.trim(),attachments:X.filter(a=>!a.loading),repositoryPath:b,approvalGates:{allowPrd:Z.allowPrd??!1,allowPlan:Z.allowPlan??!1,allowMerge:Z.allowMerge??!1},push:!!ap||_||ab,openPr:!!ap||ab,ciWatchEnabled:ad,enableEvidence:af,commitEvidence:ah,mode:al,forkAndPr:ap,commitSpecs:ar,rebaseBeforeBranch:ax,injectSkills:aB,...an?{pending:an}:{},...aD?{agentType:aD}:{},...aF?{model:aF}:{},...aj?{parentId:aj}:{},sessionId:aR.current}),aX())},[V,X,Z,aH,N,e,_,ab,af,ad,ah,al,ap,ar,ax,aB,an,aD,aF,aj,K,aX]),a5=(0,c.useCallback)(async()=>{try{let a=await (0,au.pickFiles)();if(!a)return;for(let b of a){let a=crypto.randomUUID();Y(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:aR.current})});if(!c.ok){let b=await c.json().catch(()=>({error:"Upload failed"}));Y(b=>b.filter(b=>b.id!==a)),aO(b.error??"Upload failed");return}let d=await c.json();Y(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{Y(b=>b.filter(b=>b.id!==a)),aO("Upload failed")}}}catch{}},[]),a6=(0,c.useCallback)(a=>{Y(b=>b.filter(b=>b.id!==a))},[]),a7=(0,c.useCallback)((a,b)=>{Y(c=>c.map(c=>c.id===a?{...c,notes:b}:c))},[]),a8=(0,c.useRef)(null),a9=(0,c.useCallback)(a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),a8.current?.requestSubmit())},[]),ba=(0,c.useCallback)(()=>{aQ(!0)},[]),bb=(0,c.useCallback)(()=>{setTimeout(()=>{let a=aT.current?.contains(document.activeElement),b=aT.current?.querySelector('[aria-expanded="true"]')!==null;a||b||aQ(!1)},0)},[]),bc=k&&k.length>0,bd=!N&&!aH,be=!N&&void 0!==m,bf=[{id:"allowPrd",label:L("createDrawer.prd"),description:L("createDrawer.prdDescription")},{id:"allowPlan",label:L("createDrawer.plan"),description:L("createDrawer.planDescription")},{id:"allowMerge",label:L("createDrawer.merge"),description:L("createDrawer.mergeDescription")}];return(0,b.jsx)(u.BaseDrawer,{open:a,onClose:aZ,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)(v.DrawerTitle,{children:L("createDrawer.title")})]}),g?(0,b.jsx)(v.DrawerDescription,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(A.Badge,{variant:"secondary",children:L("createDrawer.creating")})})}):null]}),footer:(0,b.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,b.jsx)(w.Button,{variant:"outline",onClick:aZ,disabled:g,children:L("createDrawer.cancel")}),(0,b.jsx)(w.Button,{type:"submit",form:"create-feature-form",disabled:!V.trim()||g||bd,children:g?L("createDrawer.creating"):L("createDrawer.createFeature")})]}),children:(0,b.jsx)("div",{className:"overflow-y-auto p-4",children:(0,b.jsx)(D.TooltipProvider,{delayDuration:400,children:(0,b.jsxs)("form",{ref:a8,id:"create-feature-form",onSubmit:a4,onKeyDown:a9,className:"flex flex-col gap-4",children:[be?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,b.jsx)(z.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:L("createDrawer.repository")}),(0,b.jsx)(az,{repositories:aJ,value:aH,onChange:aI,onAddRepository:a=>{aK(b=>[...b,a]),aI(a.path)},disabled:g})]}):N?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,b.jsx)(z.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:L("createDrawer.repository")}),(0,b.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:m?.find(a=>a.path===N)?.name??N.split("/").pop()})]}):null,(0,b.jsxs)("div",{role:"region","aria-label":L("createDrawer.fileDropZone"),"data-drag-over":aL?"true":"false",onDragEnter:a_,onDragLeave:a0,onDragOver:a1,onDrop:a2,className:(0,s.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",aL&&"border-primary/50 bg-primary/5"),children:[(0,b.jsx)(z.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:L("createDrawer.describeFeature")}),(0,b.jsxs)("div",{ref:aT,onFocus:ba,onBlur:bb,className:(0,s.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",aP&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,b.jsx)(y.Textarea,{id:"feature-description",placeholder:L("createDrawer.featurePlaceholder"),value:V,onChange:a=>W(a.target.value),onPaste:a3,required:!0,disabled:g,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),X.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:X.map(a=>(0,b.jsx)(F.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>a6(a.id),disabled:g,loading:a.loading,notes:a.notes,onNotesChange:b=>a7(a.id,b)},a.id))}),aN?(0,b.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:aN}):null,(0,b.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,b.jsx)(H.AgentModelPicker,{initialAgentType:aD??x??"claude-code",initialModel:aF??B??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(a,b)=>{aE(a),aG(b)},disabled:g,className:"w-55"}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(C.Switch,{id:"pending-mode",checked:an,onCheckedChange:ao,disabled:g}),(0,b.jsxs)(z.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"}),L("createDrawer.pendingMode")]})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.pendingModeDescription")})]}),(0,b.jsx)(at,{value:al,onChange:am,disabled:g}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:a5,disabled:g,"aria-label":L("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,b.jsx)(i.PaperclipIcon,{className:"h-4 w-4"})})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("chat.attachFiles")})]})]})]})]}),bc&&void 0!==n?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(z.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:L("createDrawer.parentFeature")}),(0,b.jsx)(ay,{features:k,value:aj,onChange:ak,disabled:g})]}):null,(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[al!==M.FeatureMode.Exploration&&(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.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:L("createDrawer.approve")})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.approveDescription")})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:bf.map(a=>(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:`approve-${a.id}`,size:"sm",checked:Z[a.id]??!1,onCheckedChange:b=>$(c=>({...c,[a.id]:b})),disabled:g||al===M.FeatureMode.Fast&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,b.jsx)(z.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:al===M.FeatureMode.Fast&&("allowPrd"===a.id||"allowPlan"===a.id)?L("createDrawer.skippedInFastMode"):a.description})]},a.id))}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:()=>{let a=bf.every(a=>Z[a.id]),b={};for(let c of bf)b[c.id]=!a;$(b)},disabled:g,className:(0,s.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",bf.every(a=>Z[a.id])&&"text-primary"),children:L("createDrawer.all")})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.toggleAllApprovalGates")})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.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:L("createDrawer.evidence")})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.evidenceDescription")})]}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"enable-evidence",size:"sm",checked:af,onCheckedChange:a=>{ag(a),a||ai(!1)},disabled:g}),(0,b.jsx)(z.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:L("createDrawer.collect")})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.collectDescription")})]}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"commit-evidence",size:"sm",checked:ah,onCheckedChange:ai,disabled:g||!af||!ab&&!ap}),(0,b.jsx)(z.Label,{htmlFor:"commit-evidence",className:(0,s.cn)("cursor-pointer text-xs font-medium",(!af||!ab&&!ap)&&"opacity-50"),children:L("createDrawer.addToPr")})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:ab||ap?af?L("createDrawer.addToPrDescription"):L("createDrawer.requiresEvidence"):L("createDrawer.requiresPr")})]})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.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:L("createDrawer.skills")})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.skillsDescription")})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"inject-skills",size:"sm",checked:aB,onCheckedChange:aC,disabled:g}),(0,b.jsxs)(z.Label,{htmlFor:"inject-skills",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(q.Puzzle,{className:"h-3 w-3"}),L("createDrawer.injectSkills")]})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.injectSkillsDescription")})]})})]}),(0,b.jsxs)("div",{className:"border-input flex items-start gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 pt-0.5 text-xs font-semibold tracking-wider",children:L("createDrawer.git")}),(0,b.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"push",size:"sm",checked:!!ap||_||ab,onCheckedChange:a=>{aa(a),!a&&ab&&ac(!1)},disabled:g||ap}),(0,b.jsx)(z.Label,{htmlFor:"push",className:(0,s.cn)("cursor-pointer text-xs font-medium",ap&&"opacity-50"),children:L("createDrawer.push")})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:ap?"Enabled — contributing to upstream":L("createDrawer.pushDescription")})]}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"open-pr",size:"sm",checked:!!ap||ab,onCheckedChange:a=>{ac(a),a||ai(!1)},disabled:g||ap}),(0,b.jsx)(z.Label,{htmlFor:"open-pr",className:(0,s.cn)("cursor-pointer text-xs font-medium",ap&&"opacity-50"),children:L("createDrawer.pr")})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:ap?"Enabled — contributing to upstream":L("createDrawer.prDescription")})]}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"ci-watch",size:"sm",checked:ad,onCheckedChange:ae,disabled:g}),(0,b.jsx)(z.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:L("createDrawer.watch")})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.watchDescription")})]}),(0,b.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"rebase-before-branch",size:"sm",checked:ax,onCheckedChange:aA,disabled:g}),(0,b.jsxs)(z.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(r.RefreshCw,{className:"h-3 w-3"}),L("createDrawer.sync")]})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.syncDescription")})]}),(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"commit-specs",size:"sm",checked:ar,onCheckedChange:as,disabled:g}),(0,b.jsxs)(z.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(p.FileText,{className:"h-3 w-3"}),L("createDrawer.commitSpecs")]})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.commitSpecsDescription")})]}),!aU&&(0,b.jsxs)(D.Tooltip,{children:[(0,b.jsx)(D.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(C.Switch,{id:"fork-and-pr",size:"sm",checked:ap,onCheckedChange:a=>{aq(a),a&&as(!1)},disabled:g}),(0,b.jsxs)(z.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(o.GitFork,{className:"h-3 w-3"}),L("createDrawer.forkAndPr")]})]})}),(0,b.jsx)(D.TooltipContent,{side:"bottom",children:L("createDrawer.forkAndPrDescription")})]})]})]})]})]})})})})}function ay({features:a,value:d,onChange:e,disabled:f}){let{t:g}=(0,h.useTranslation)("web"),[i,l]=(0,c.useState)(!1),[m,n]=(0,c.useState)(""),o=(0,c.useRef)(null),p=a.find(a=>a.id===d),q=m.trim()?a.filter(a=>a.name.toLowerCase().includes(m.toLowerCase())||a.id.toLowerCase().includes(m.toLowerCase())):a,r=(0,c.useCallback)(a=>{e(a),l(!1),n("")},[e]);return(0,c.useEffect)(()=>{i?setTimeout(()=>o.current?.focus(),0):n("")},[i]),(0,b.jsxs)(B.Popover,{open:i,onOpenChange:l,children:[(0,b.jsx)(B.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":i,"aria-label":"Parent Feature",disabled:f,"data-testid":"parent-feature-combobox",className:(0,s.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",!p&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:p?`${p.name} (${p.id.slice(0,8)})`:g("createDrawer.selectParent")}),(0,b.jsx)(j.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(B.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)(x.Input,{ref:o,placeholder:g("createDrawer.searchFeatures"),value:m,onChange:a=>n(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:()=>r(void 0),className:(0,s.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)(k.CheckIcon,{className:(0,s.cn)("h-4 w-4 shrink-0",void 0!==d&&"invisible")}),(0,b.jsx)("span",{className:"text-muted-foreground italic",children:g("createDrawer.noParent")})]}),0===q.length&&m?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:g("createDrawer.noFeaturesFound")}):q.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.id,onClick:()=>r(a.id),className:(0,s.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)(k.CheckIcon,{className:(0,s.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 az({repositories:a,value:d,onChange:e,onAddRepository:f,disabled:g}){let[i,l]=(0,c.useState)(!1),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(!1),[t,u]=(0,c.useState)(null),[v,w]=(0,c.useState)(!1),y=(0,c.useRef)(null),{reactFileManager:z}=(0,L.useFeatureFlags)(),{t:A}=(0,h.useTranslation)("web"),C=a.find(a=>a.path===d),D=o.trim()?a.filter(a=>a.name.toLowerCase().includes(o.toLowerCase())||a.path.toLowerCase().includes(o.toLowerCase())):a,E=(0,c.useCallback)(a=>{e(a),l(!1),p("")},[e]),F=(0,c.useCallback)(async a=>{let b=await (0,N.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),l(!1),p("")}},[f,e]),G=(0,c.useCallback)(async()=>{if(!q){if(z)return void w(!0);r(!0),u(null);try{let a=await (0,J.pickFolder)();if(!a)return void r(!1);await F(a)}catch{w(!0)}finally{r(!1)}}},[q,z,F]),H=(0,c.useCallback)(async a=>{if(w(!1),a){r(!0),u(null);try{await F(a)}catch(a){u(a instanceof Error?a.message:"Failed to add repository")}finally{r(!1)}}},[F]);return(0,c.useEffect)(()=>{i?setTimeout(()=>y.current?.focus(),0):p("")},[i]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(B.Popover,{open:i,onOpenChange:l,children:[(0,b.jsx)(B.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button",role:"combobox","aria-expanded":i,"aria-label":"Repository",disabled:g,"data-testid":"repository-combobox",className:(0,s.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",!C&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:C?C.name:"Select repository..."}),(0,b.jsx)(j.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(B.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)(x.Input,{ref:y,placeholder:A("createDrawer.searchRepositories"),value:o,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===D.length?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):D.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.path,onClick:()=>E(a.path),className:(0,s.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)(k.CheckIcon,{className:(0,s.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)(I.Separator,{}),(0,b.jsxs)("button",{type:"button",onClick:G,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..."})]}),t?(0,b.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:t}):null]})})]}),(0,b.jsx)(K.ReactFileManagerDialog,{open:v,onOpenChange:a=>{a||w(!1)},onSelect:H})]})}function aA({repositoryPath:a,initialParentId:f,initialDescription:h,features:i,repositories:j,workflowDefaults:k,currentAgentType:l,currentModel:m,canPushDirectly:n}){let o=(0,d.useRouter)(),[p,q]=(0,c.useState)(!1),r=(0,d.usePathname)().startsWith("/create"),s=!p&&r;(0,c.useEffect)(()=>{!r&&p&&q(!1)},[r,p]);let t=(0,c.useCallback)(()=>{o.push("/")},[o]),u=(0,c.useCallback)(a=>{q(!0),o.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"),q(!1)})},[o]);return(0,b.jsx)(ax,{open:s,onClose:t,onSubmit:u,repositoryPath:a,features:i,repositories:j,workflowDefaults:k,initialParentId:f,initialDescription:h,isSubmitting:p,currentAgentType:l,currentModel:m,canPushDirectly:n})}a.s(["CreateDrawerClient",()=>aA],93995)}];
2
2
 
3
3
  //# sourceMappingURL=744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map