@shepai/cli 1.175.0 → 1.175.1-pr527.ea242b8

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 (416) hide show
  1. package/apis/json-schema/ActionDispositionEntry.yaml +14 -0
  2. package/apis/json-schema/DependencyFinding.yaml +28 -0
  3. package/apis/json-schema/DependencyRiskType.yaml +11 -0
  4. package/apis/json-schema/DependencyRules.yaml +38 -0
  5. package/apis/json-schema/EffectivePolicySnapshot.yaml +24 -0
  6. package/apis/json-schema/FeatureFlags.yaml +5 -0
  7. package/apis/json-schema/ReleaseIntegrityCheck.yaml +22 -0
  8. package/apis/json-schema/ReleaseIntegrityCheckType.yaml +9 -0
  9. package/apis/json-schema/ReleaseIntegrityResult.yaml +16 -0
  10. package/apis/json-schema/ReleaseRules.yaml +21 -0
  11. package/apis/json-schema/SecurityActionCategory.yaml +10 -0
  12. package/apis/json-schema/SecurityActionDisposition.yaml +8 -0
  13. package/apis/json-schema/SecurityConfig.yaml +17 -0
  14. package/apis/json-schema/SecurityEvent.yaml +36 -0
  15. package/apis/json-schema/SecurityMode.yaml +8 -0
  16. package/apis/json-schema/SecurityPolicy.yaml +24 -0
  17. package/apis/json-schema/SecuritySeverity.yaml +9 -0
  18. package/apis/json-schema/Settings.yaml +3 -0
  19. package/dist/packages/core/src/application/ports/output/agents/agent-executor.interface.d.ts +15 -1
  20. package/dist/packages/core/src/application/ports/output/agents/agent-executor.interface.d.ts.map +1 -1
  21. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts +3 -1
  22. package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts.map +1 -1
  23. package/dist/packages/core/src/application/ports/output/repositories/security-event.repository.interface.d.ts +76 -0
  24. package/dist/packages/core/src/application/ports/output/repositories/security-event.repository.interface.d.ts.map +1 -0
  25. package/dist/packages/core/src/application/ports/output/repositories/security-event.repository.interface.js +11 -0
  26. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts +38 -0
  27. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts.map +1 -1
  28. package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.js +9 -0
  29. package/dist/packages/core/src/application/ports/output/services/security-policy-service.interface.d.ts +77 -0
  30. package/dist/packages/core/src/application/ports/output/services/security-policy-service.interface.d.ts.map +1 -0
  31. package/dist/packages/core/src/application/ports/output/services/security-policy-service.interface.js +13 -0
  32. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +11 -0
  33. package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -1
  34. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.d.ts.map +1 -1
  35. package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +2 -0
  36. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.d.ts.map +1 -1
  37. package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.js +2 -0
  38. package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.d.ts.map +1 -1
  39. package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.js +2 -0
  40. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  41. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +1 -0
  42. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.d.ts.map +1 -1
  43. package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +2 -0
  44. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.d.ts.map +1 -1
  45. package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.js +2 -0
  46. package/dist/packages/core/src/application/use-cases/security/enforce-security.use-case.d.ts +71 -0
  47. package/dist/packages/core/src/application/use-cases/security/enforce-security.use-case.d.ts.map +1 -0
  48. package/dist/packages/core/src/application/use-cases/security/enforce-security.use-case.js +215 -0
  49. package/dist/packages/core/src/application/use-cases/security/evaluate-security-policy.use-case.d.ts +24 -0
  50. package/dist/packages/core/src/application/use-cases/security/evaluate-security-policy.use-case.d.ts.map +1 -0
  51. package/dist/packages/core/src/application/use-cases/security/evaluate-security-policy.use-case.js +56 -0
  52. package/dist/packages/core/src/application/use-cases/security/get-security-state.use-case.d.ts +36 -0
  53. package/dist/packages/core/src/application/use-cases/security/get-security-state.use-case.d.ts.map +1 -0
  54. package/dist/packages/core/src/application/use-cases/security/get-security-state.use-case.js +76 -0
  55. package/dist/packages/core/src/application/use-cases/security/record-security-event.use-case.d.ts +14 -0
  56. package/dist/packages/core/src/application/use-cases/security/record-security-event.use-case.d.ts.map +1 -0
  57. package/dist/packages/core/src/application/use-cases/security/record-security-event.use-case.js +46 -0
  58. package/dist/packages/core/src/domain/errors/security-violation.error.d.ts +15 -0
  59. package/dist/packages/core/src/domain/errors/security-violation.error.d.ts.map +1 -0
  60. package/dist/packages/core/src/domain/errors/security-violation.error.js +20 -0
  61. package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
  62. package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +6 -1
  63. package/dist/packages/core/src/domain/generated/output.d.ts +263 -0
  64. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  65. package/dist/packages/core/src/domain/generated/output.js +43 -0
  66. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  67. package/dist/packages/core/src/infrastructure/di/container.js +57 -0
  68. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/security-event.mapper.d.ts +44 -0
  69. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/security-event.mapper.d.ts.map +1 -0
  70. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/security-event.mapper.js +55 -0
  71. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +4 -0
  72. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
  73. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +17 -0
  74. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-security-settings-columns.d.ts +18 -0
  75. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-security-settings-columns.d.ts.map +1 -0
  76. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-security-settings-columns.js +31 -0
  77. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-create-security-events-table.d.ts +29 -0
  78. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-create-security-events-table.d.ts.map +1 -0
  79. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-create-security-events-table.js +53 -0
  80. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-feature-flag-supply-chain-security.d.ts +16 -0
  81. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-feature-flag-supply-chain-security.d.ts.map +1 -0
  82. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-feature-flag-supply-chain-security.js +22 -0
  83. package/dist/packages/core/src/infrastructure/repositories/sqlite-security-event.repository.d.ts +24 -0
  84. package/dist/packages/core/src/infrastructure/repositories/sqlite-security-event.repository.d.ts.map +1 -0
  85. package/dist/packages/core/src/infrastructure/repositories/sqlite-security-event.repository.js +96 -0
  86. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
  87. package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +15 -3
  88. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts +2 -0
  89. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts.map +1 -1
  90. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.js +12 -0
  91. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts.map +1 -1
  92. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.js +44 -4
  93. package/dist/packages/core/src/infrastructure/services/agents/common/executors/security-constraint-validator.d.ts +22 -0
  94. package/dist/packages/core/src/infrastructure/services/agents/common/executors/security-constraint-validator.d.ts.map +1 -0
  95. package/dist/packages/core/src/infrastructure/services/agents/common/executors/security-constraint-validator.js +30 -0
  96. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +10 -0
  97. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts.map +1 -1
  98. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +35 -1
  99. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
  100. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +3 -1
  101. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
  102. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +7 -1
  103. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +3 -1
  104. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
  105. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +32 -1
  106. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  107. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +25 -0
  108. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/security-pre-check.d.ts +59 -0
  109. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/security-pre-check.d.ts.map +1 -0
  110. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/security-pre-check.js +89 -0
  111. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +4 -1
  112. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts.map +1 -1
  113. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.js +10 -0
  114. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts +10 -1
  115. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts.map +1 -1
  116. package/dist/packages/core/src/infrastructure/services/external/github-repository.service.js +101 -1
  117. package/dist/packages/core/src/infrastructure/services/security/dependency-risk-evaluator.d.ts +53 -0
  118. package/dist/packages/core/src/infrastructure/services/security/dependency-risk-evaluator.d.ts.map +1 -0
  119. package/dist/packages/core/src/infrastructure/services/security/dependency-risk-evaluator.js +241 -0
  120. package/dist/packages/core/src/infrastructure/services/security/release-integrity-evaluator.d.ts +44 -0
  121. package/dist/packages/core/src/infrastructure/services/security/release-integrity-evaluator.d.ts.map +1 -0
  122. package/dist/packages/core/src/infrastructure/services/security/release-integrity-evaluator.js +194 -0
  123. package/dist/packages/core/src/infrastructure/services/security/security-policy-file-reader.d.ts +28 -0
  124. package/dist/packages/core/src/infrastructure/services/security/security-policy-file-reader.d.ts.map +1 -0
  125. package/dist/packages/core/src/infrastructure/services/security/security-policy-file-reader.js +50 -0
  126. package/dist/packages/core/src/infrastructure/services/security/security-policy-validator.d.ts +26 -0
  127. package/dist/packages/core/src/infrastructure/services/security/security-policy-validator.d.ts.map +1 -0
  128. package/dist/packages/core/src/infrastructure/services/security/security-policy-validator.js +147 -0
  129. package/dist/packages/core/src/infrastructure/services/security/security-policy.service.d.ts +44 -0
  130. package/dist/packages/core/src/infrastructure/services/security/security-policy.service.d.ts.map +1 -0
  131. package/dist/packages/core/src/infrastructure/services/security/security-policy.service.js +174 -0
  132. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +1 -0
  133. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
  134. package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +61 -0
  135. package/dist/src/presentation/cli/commands/security.command.d.ts +16 -0
  136. package/dist/src/presentation/cli/commands/security.command.d.ts.map +1 -0
  137. package/dist/src/presentation/cli/commands/security.command.js +133 -0
  138. package/dist/src/presentation/cli/index.js +2 -0
  139. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
  140. package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +5 -1
  141. package/dist/src/presentation/web/app/actions/security.d.ts +28 -0
  142. package/dist/src/presentation/web/app/actions/security.d.ts.map +1 -0
  143. package/dist/src/presentation/web/app/actions/security.js +59 -0
  144. package/dist/src/presentation/web/app/build-graph-nodes.d.ts +3 -1
  145. package/dist/src/presentation/web/app/build-graph-nodes.d.ts.map +1 -1
  146. package/dist/src/presentation/web/app/build-graph-nodes.js +2 -0
  147. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +3 -1
  148. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  149. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  150. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +2 -1
  151. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.d.ts +3 -1
  152. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.d.ts.map +1 -1
  153. package/dist/src/presentation/web/components/common/repository-node/repository-drawer.js +3 -2
  154. package/dist/src/presentation/web/components/common/repository-node/security-panel.d.ts +6 -0
  155. package/dist/src/presentation/web/components/common/repository-node/security-panel.d.ts.map +1 -0
  156. package/dist/src/presentation/web/components/common/repository-node/security-panel.js +29 -0
  157. package/dist/src/presentation/web/components/common/repository-node/security-panel.stories.d.ts +10 -0
  158. package/dist/src/presentation/web/components/common/repository-node/security-panel.stories.d.ts.map +1 -0
  159. package/dist/src/presentation/web/components/common/repository-node/security-panel.stories.js +53 -0
  160. package/dist/src/presentation/web/components/common/security-badge.d.ts +7 -0
  161. package/dist/src/presentation/web/components/common/security-badge.d.ts.map +1 -0
  162. package/dist/src/presentation/web/components/common/security-badge.js +30 -0
  163. package/dist/src/presentation/web/components/common/security-badge.stories.d.ts +12 -0
  164. package/dist/src/presentation/web/components/common/security-badge.stories.d.ts.map +1 -0
  165. package/dist/src/presentation/web/components/common/security-badge.stories.js +20 -0
  166. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
  167. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +3 -0
  168. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
  169. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +3 -0
  170. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  171. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +26 -7
  172. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  173. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +1 -0
  174. package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.d.ts +6 -0
  175. package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.d.ts.map +1 -0
  176. package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.js +60 -0
  177. package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.stories.d.ts +14 -0
  178. package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.stories.d.ts.map +1 -0
  179. package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.stories.js +116 -0
  180. package/dist/translations/ar/cli.json +21 -0
  181. package/dist/translations/ar/web.json +43 -1
  182. package/dist/translations/de/cli.json +21 -0
  183. package/dist/translations/de/web.json +43 -1
  184. package/dist/translations/en/cli.json +21 -0
  185. package/dist/translations/en/web.json +43 -1
  186. package/dist/translations/es/cli.json +21 -0
  187. package/dist/translations/es/web.json +43 -1
  188. package/dist/translations/fr/cli.json +21 -0
  189. package/dist/translations/fr/web.json +43 -1
  190. package/dist/translations/he/cli.json +21 -0
  191. package/dist/translations/he/web.json +43 -1
  192. package/dist/translations/pt/cli.json +22 -1
  193. package/dist/translations/pt/web.json +43 -1
  194. package/dist/translations/ru/cli.json +21 -0
  195. package/dist/translations/ru/web.json +43 -1
  196. package/dist/tsconfig.build.tsbuildinfo +1 -1
  197. package/package.json +1 -1
  198. package/web/.next/BUILD_ID +1 -1
  199. package/web/.next/build-manifest.json +2 -2
  200. package/web/.next/fallback-build-manifest.json +2 -2
  201. package/web/.next/prerender-manifest.json +3 -3
  202. package/web/.next/required-server-files.js +3 -3
  203. package/web/.next/required-server-files.json +3 -3
  204. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  205. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  206. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  207. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  208. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  209. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  210. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
  211. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  212. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  213. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +38 -38
  214. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  215. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  216. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +38 -38
  217. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  218. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  219. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  220. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  221. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  222. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  223. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  224. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  225. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  226. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  227. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  228. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
  229. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  230. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  231. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +38 -38
  232. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  233. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  234. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +38 -38
  235. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  236. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  237. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  238. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  239. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  240. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  241. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  242. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  243. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  244. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  245. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  246. package/web/.next/server/app/_global-error.html +2 -2
  247. package/web/.next/server/app/_global-error.rsc +1 -1
  248. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  249. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  250. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  251. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  252. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  253. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  254. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  255. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  256. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  257. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  258. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  259. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  260. package/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
  261. package/web/.next/server/app/api/sessions-batch/route.js.nft.json +1 -1
  262. package/web/.next/server/app/features/page/server-reference-manifest.json +6 -6
  263. package/web/.next/server/app/features/page.js.nft.json +1 -1
  264. package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
  265. package/web/.next/server/app/settings/page/server-reference-manifest.json +33 -18
  266. package/web/.next/server/app/settings/page.js +1 -1
  267. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  268. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  269. package/web/.next/server/app/skills/page/server-reference-manifest.json +13 -13
  270. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  271. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  272. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  273. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  274. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  275. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  276. package/web/.next/server/app/version/page.js.nft.json +1 -1
  277. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  278. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
  279. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
  280. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  281. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +1 -1
  282. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
  283. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  284. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  285. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js +1 -1
  286. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js.map +1 -1
  287. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js +1 -1
  288. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js.map +1 -1
  289. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js +1 -1
  290. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js.map +1 -1
  291. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  292. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  293. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
  294. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  295. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
  296. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
  297. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  298. package/web/.next/server/chunks/ssr/[root-of-the-server]__51ec77a8._.js +1 -1
  299. package/web/.next/server/chunks/ssr/[root-of-the-server]__51ec77a8._.js.map +1 -1
  300. package/web/.next/server/chunks/ssr/[root-of-the-server]__540c615f._.js +2 -2
  301. package/web/.next/server/chunks/ssr/[root-of-the-server]__540c615f._.js.map +1 -1
  302. package/web/.next/server/chunks/ssr/[root-of-the-server]__66047a1b._.js +1 -1
  303. package/web/.next/server/chunks/ssr/[root-of-the-server]__66047a1b._.js.map +1 -1
  304. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +1 -1
  305. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -1
  306. package/web/.next/server/chunks/ssr/[root-of-the-server]__a2d6c0ac._.js +4 -0
  307. package/web/.next/server/chunks/ssr/[root-of-the-server]__a2d6c0ac._.js.map +1 -0
  308. package/web/.next/server/chunks/ssr/[root-of-the-server]__a932cd3a._.js +1 -1
  309. package/web/.next/server/chunks/ssr/[root-of-the-server]__a932cd3a._.js.map +1 -1
  310. package/web/.next/server/chunks/ssr/[root-of-the-server]__aa72e794._.js +1 -1
  311. package/web/.next/server/chunks/ssr/[root-of-the-server]__aa72e794._.js.map +1 -1
  312. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
  313. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
  314. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  315. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  316. package/web/.next/server/chunks/ssr/_08eaf4b1._.js +3 -0
  317. package/web/.next/server/chunks/ssr/_08eaf4b1._.js.map +1 -0
  318. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  319. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  320. package/web/.next/server/chunks/ssr/_295fffde._.js +1 -1
  321. package/web/.next/server/chunks/ssr/_295fffde._.js.map +1 -1
  322. package/web/.next/server/chunks/ssr/_45496654._.js +1 -1
  323. package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
  324. package/web/.next/server/chunks/ssr/_4cbb7f95._.js +1 -1
  325. package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -1
  326. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  327. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  328. package/web/.next/server/chunks/ssr/_6abfa39e._.js +1 -1
  329. package/web/.next/server/chunks/ssr/_783debcb._.js +9 -0
  330. package/web/.next/server/chunks/ssr/_783debcb._.js.map +1 -0
  331. package/web/.next/server/chunks/ssr/{_af6b8b94._.js → _e7f76333._.js} +2 -2
  332. package/web/.next/server/chunks/ssr/{_af6b8b94._.js.map → _e7f76333._.js.map} +1 -1
  333. package/web/.next/server/chunks/ssr/_f8c55130._.js +1 -1
  334. package/web/.next/server/chunks/ssr/_f8c55130._.js.map +1 -1
  335. package/web/.next/server/chunks/ssr/{_e0dd6fcf._.js → _fc1578d7._.js} +2 -2
  336. package/web/.next/server/chunks/ssr/_fc1578d7._.js.map +1 -0
  337. package/web/.next/server/chunks/ssr/_ff04802c._.js +3 -0
  338. package/web/.next/server/chunks/ssr/_ff04802c._.js.map +1 -0
  339. package/web/.next/server/chunks/ssr/_ff87ffa6._.js +3 -0
  340. package/web/.next/server/chunks/ssr/_ff87ffa6._.js.map +1 -0
  341. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  342. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  343. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  344. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  345. package/web/.next/server/chunks/ssr/src_presentation_web_17d39233._.js +1 -1
  346. package/web/.next/server/chunks/ssr/src_presentation_web_17d39233._.js.map +1 -1
  347. package/web/.next/server/chunks/ssr/src_presentation_web_54b02639._.js +2 -2
  348. package/web/.next/server/chunks/ssr/src_presentation_web_54b02639._.js.map +1 -1
  349. package/web/.next/server/chunks/ssr/src_presentation_web_7b7b9e3b._.js +2 -2
  350. package/web/.next/server/chunks/ssr/src_presentation_web_7b7b9e3b._.js.map +1 -1
  351. package/web/.next/server/chunks/ssr/src_presentation_web_807cba76._.js +1 -1
  352. package/web/.next/server/chunks/ssr/src_presentation_web_807cba76._.js.map +1 -1
  353. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js +1 -1
  354. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js.map +1 -1
  355. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js +1 -1
  356. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js.map +1 -1
  357. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js +1 -1
  358. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js.map +1 -1
  359. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  360. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
  361. package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
  362. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  363. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  364. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  365. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  366. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
  367. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
  368. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js +1 -1
  369. package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js.map +1 -1
  370. package/web/.next/server/chunks/ssr/src_presentation_web_e1cd1869._.js +1 -1
  371. package/web/.next/server/chunks/ssr/src_presentation_web_e1cd1869._.js.map +1 -1
  372. package/web/.next/server/chunks/ssr/src_presentation_web_e3a30e30._.js +1 -1
  373. package/web/.next/server/chunks/ssr/src_presentation_web_e3a30e30._.js.map +1 -1
  374. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
  375. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
  376. package/web/.next/server/pages/500.html +2 -2
  377. package/web/.next/server/server-reference-manifest.js +1 -1
  378. package/web/.next/server/server-reference-manifest.json +74 -59
  379. package/web/.next/static/chunks/{238fdbed09dc61b6.js → 1eeabda286169861.js} +2 -2
  380. package/web/.next/static/chunks/20ec94c610d07a10.css +1 -0
  381. package/web/.next/static/chunks/{940c842293a6ee9b.js → 2dcae7bd1f3e2b51.js} +1 -1
  382. package/web/.next/static/chunks/3aba9d2242420cb5.js +1 -0
  383. package/web/.next/static/chunks/6003ad985fb78e62.js +1 -0
  384. package/web/.next/static/chunks/{0b07ee72b0c639ef.js → 69aa6a996dccb7dc.js} +2 -2
  385. package/web/.next/static/chunks/{873e837cd1179cdd.js → 6e5aeb5da5bb2ab6.js} +1 -1
  386. package/web/.next/static/chunks/{2ad924f5ba5ec0a6.js → 7c8e1ab108e3ceea.js} +1 -1
  387. package/web/.next/static/chunks/{bc41a393614b1192.js → 825ddcb7c361b2fe.js} +1 -1
  388. package/web/.next/static/chunks/{a22ee308ae1509ca.js → 89a6182ae40ac10b.js} +1 -1
  389. package/web/.next/static/chunks/{d26542df5ecc8717.js → a6d516b7e128f889.js} +1 -1
  390. package/web/.next/static/chunks/ae81796726a9bba3.js +1 -0
  391. package/web/.next/static/chunks/{b49ab0b290e9342d.js → b46545caae3b4930.js} +1 -1
  392. package/web/.next/static/chunks/{b7b5d65a5dd2fff1.js → c43f00ac45c5381d.js} +1 -1
  393. package/web/.next/static/chunks/{39054eabee156e55.js → c741f40bcb2abe54.js} +3 -3
  394. package/web/.next/static/chunks/{1b336d1266a0aa3d.js → dfc05704351fc940.js} +1 -1
  395. package/web/.next/static/chunks/eb72ac7aa8986962.js +1 -0
  396. package/web/.next/static/chunks/eef5d47669e61a54.js +3 -0
  397. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js +0 -4
  398. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js.map +0 -1
  399. package/web/.next/server/chunks/ssr/_2b021b35._.js +0 -3
  400. package/web/.next/server/chunks/ssr/_2b021b35._.js.map +0 -1
  401. package/web/.next/server/chunks/ssr/_43ba79e7._.js +0 -3
  402. package/web/.next/server/chunks/ssr/_43ba79e7._.js.map +0 -1
  403. package/web/.next/server/chunks/ssr/_7cb0396e._.js +0 -3
  404. package/web/.next/server/chunks/ssr/_7cb0396e._.js.map +0 -1
  405. package/web/.next/server/chunks/ssr/_e0dd6fcf._.js.map +0 -1
  406. package/web/.next/server/chunks/ssr/_e680c57c._.js +0 -9
  407. package/web/.next/server/chunks/ssr/_e680c57c._.js.map +0 -1
  408. package/web/.next/static/chunks/28f6b1cab38ab025.js +0 -3
  409. package/web/.next/static/chunks/8b0a9cb5109fe899.js +0 -1
  410. package/web/.next/static/chunks/a20f2d6f76f469b7.css +0 -1
  411. package/web/.next/static/chunks/b2aa69e4b0b032d9.js +0 -1
  412. package/web/.next/static/chunks/b65e555419a0c664.js +0 -1
  413. package/web/.next/static/chunks/ba0e0fa2d1a650bb.js +0 -1
  414. /package/web/.next/static/{9rcv3ICw0kZNuv3TVdO8E → 4jtpgWCvk_Q6-K-puXRhW}/_buildManifest.js +0 -0
  415. /package/web/.next/static/{9rcv3ICw0kZNuv3TVdO8E → 4jtpgWCvk_Q6-K-puXRhW}/_clientMiddlewareManifest.json +0 -0
  416. /package/web/.next/static/{9rcv3ICw0kZNuv3TVdO8E → 4jtpgWCvk_Q6-K-puXRhW}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[93995,a=>{"use strict";var b=a.i(12656),c=a.i(96960),d=a.i(69845),e=a.i(52313),f=a.i(25674);let g=(0,f.createServerReference)("409c9a676af1e534a987fba77581fe2924ac4a9b3b",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(67424),s=a.i(28002),t=a.i(85536),u=a.i(19884);a.i(78454);var v=a.i(24255),w=a.i(2824),x=a.i(18948),y=a.i(90920),z=a.i(79620),A=a.i(584),B=a.i(58339),C=a.i(80646),D=a.i(96867),E=a.i(82934),F=a.i(96213);a.i(307);var G=a.i(30931);let H=(0,f.createServerReference)("40018f2ee219dc1156e7fefcc5349d29536eb54c9a",f.callServer,void 0,f.findSourceMapURL,"getViewerPermission");var I=a.i(61781),J=a.i(13126),K=a.i(1377);a.i(21434);var L=a.i(34379),M=a.i(21333),N=a.i(14750),O=a.i(39116);let P=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"]),Q={allowPrd:!1,allowPlan:!1,allowMerge:!1};function R({open:a,onClose:d,onSubmit:e,repositoryPath:f,isSubmitting:g=!1,workflowDefaults:j,features:k,repositories:n,initialParentId:o,currentAgentType:y,currentModel:C,initialDescription:J,canPushDirectly:K}){let L=(0,u.useSoundAction)("create"),{t:M}=(0,h.useTranslation)("web"),N=f&&(!n||0===n.length||n.some(a=>a.path===f))?f:"",R=j?.approvalGates??Q,U=j?.push??!1,V=j?.openPr??!1,W=j?.ciWatchEnabled!==!1,X=j?.enableEvidence??!1,Y=j?.commitEvidence??!1,Z=j?.fast!==!1,[$,_]=(0,c.useState)(J??"");(0,c.useEffect)(()=>{J&&_(J)},[J]);let[aa,ab]=(0,c.useState)([]),[ac,ad]=(0,c.useState)({...R}),[ae,af]=(0,c.useState)(U),[ag,ah]=(0,c.useState)(V),[ai,aj]=(0,c.useState)(j?.ciWatchEnabled!==!1),[ak,al]=(0,c.useState)(X),[am,an]=(0,c.useState)(Y),[ao,ap]=(0,c.useState)(void 0),[aq,ar]=(0,c.useState)(Z),[as,at]=(0,c.useState)(!1),[au,av]=(0,c.useState)(!1),[aw,ax]=(0,c.useState)(!0),[ay,az]=(0,c.useState)(!0),[aA,aB]=(0,c.useState)(j?.injectSkills??!1),[aC,aD]=(0,c.useState)(void 0),[aE,aF]=(0,c.useState)(void 0),[aG,aH]=(0,c.useState)(N||void 0),[aI,aJ]=(0,c.useState)(n??[]),[aK,aL]=(0,c.useState)(!1),[aM,aN]=(0,c.useState)(null),[aO,aP]=(0,c.useState)(!1),aQ=(0,c.useRef)(crypto.randomUUID()),aR=(0,c.useRef)(0),aS=(0,c.useRef)(null);(0,c.useEffect)(()=>{j&&(ad({...j.approvalGates}),af(j.push),ah(j.openPr),aj(!1!==j.ciWatchEnabled),al(j.enableEvidence),an(j.commitEvidence),ar(!1!==j.fast),aB(j.injectSkills??!1))},[j]),(0,c.useEffect)(()=>{aJ(n??[])},[n]),(0,c.useEffect)(()=>{a&&o&&ap(o)},[a,o]);let[aT,aU]=(0,c.useState)(K??!1);(0,c.useEffect)(()=>{aU(K??!1)},[K]);let aV=(0,c.useRef)(aG);(0,c.useEffect)(()=>{aG&&aG!==aV.current&&(aV.current=aG,H(aG).then(a=>aU(a.canPushDirectly)).catch(()=>aU(!1)))},[aG]),(0,c.useEffect)(()=>{aT&&(av(!1),af(U),ah(V),ax(!0))},[aT,U,V]);let aW=(0,c.useCallback)(()=>{_(""),ab([]),ad({...R}),af(U),ah(V),aj(W),al(X),an(Y),ap(void 0),aH(N||void 0),aJ(n??[]),ar(Z),at(!1),av(!1),ax(!0),az(!0),aD(void 0),aF(void 0),aN(null),aR.current=0,aL(!1)},[R,U,V,X,W,Y,Z,N,n]),aX=""!==$.trim()||aa.length>0,{attemptClose:aY}=(0,F.useGuardedDrawerClose)({open:a,isDirty:aX,onClose:d,onReset:aW}),aZ=(0,c.useCallback)(async a=>{for(let b of(aN(null),a)){if(b.size>0xa00000)return void aN(`"${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&&!P.has(a))return void aN(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();ab(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",aQ.current);let d=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!d.ok){let b=await d.json().catch(()=>({error:"Upload failed"}));ab(b=>b.filter(b=>b.id!==a)),aN(b.error??"Upload failed");return}let e=await d.json();ab(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{ab(b=>b.filter(b=>b.id!==a)),aN("Upload failed")}}},[]),a$=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aR.current+=1,1===aR.current&&aL(!0)},[]),a_=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aR.current-=1,0===aR.current&&aL(!1)},[]),a0=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),a1=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aR.current=0,aL(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&aZ(b)},[aZ]),a2=(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(),aZ(c))},[aZ]),a3=(0,c.useCallback)(a=>{if(a.preventDefault(),!$.trim())return;let b=aG??N;b&&(L.play(),e({description:$.trim(),attachments:aa.filter(a=>!a.loading),repositoryPath:b,approvalGates:{allowPrd:ac.allowPrd??!1,allowPlan:ac.allowPlan??!1,allowMerge:ac.allowMerge??!1},push:!!au||ae||ag,openPr:!!au||ag,ciWatchEnabled:ai,enableEvidence:ak,commitEvidence:am,fast:aq,forkAndPr:au,commitSpecs:aw,rebaseBeforeBranch:ay,injectSkills:aA,...as?{pending:as}:{},...aC?{agentType:aC}:{},...aE?{model:aE}:{},...ao?{parentId:ao}:{},sessionId:aQ.current}),aW())},[$,aa,ac,aG,N,e,ae,ag,ak,ai,am,aq,au,aw,ay,aA,as,aC,aE,ao,L,aW]),a4=(0,c.useCallback)(async()=>{try{let a=await (0,O.pickFiles)();if(!a)return;for(let b of a){let a=crypto.randomUUID();ab(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:aQ.current})});if(!c.ok){let b=await c.json().catch(()=>({error:"Upload failed"}));ab(b=>b.filter(b=>b.id!==a)),aN(b.error??"Upload failed");return}let d=await c.json();ab(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{ab(b=>b.filter(b=>b.id!==a)),aN("Upload failed")}}}catch{}},[]),a5=(0,c.useCallback)(a=>{ab(b=>b.filter(b=>b.id!==a))},[]),a6=(0,c.useCallback)((a,b)=>{ab(c=>c.map(c=>c.id===a?{...c,notes:b}:c))},[]),a7=(0,c.useRef)(null),a8=(0,c.useCallback)(a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),a7.current?.requestSubmit())},[]),a9=(0,c.useCallback)(()=>{aP(!0)},[]),ba=(0,c.useCallback)(()=>{setTimeout(()=>{let a=aS.current?.contains(document.activeElement),b=aS.current?.querySelector('[aria-expanded="true"]')!==null;a||b||aP(!1)},0)},[]),bb=k&&k.length>0,bc=!N&&!aG,bd=!N&&void 0!==n,be=[{id:"allowPrd",label:M("createDrawer.prd"),description:M("createDrawer.prdDescription")},{id:"allowPlan",label:M("createDrawer.plan"),description:M("createDrawer.planDescription")},{id:"allowMerge",label:M("createDrawer.merge"),description:M("createDrawer.mergeDescription")}];return(0,b.jsx)(v.BaseDrawer,{open:a,onClose:aY,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)(w.DrawerTitle,{children:M("createDrawer.title")})]}),g?(0,b.jsx)(w.DrawerDescription,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(B.Badge,{variant:"secondary",children:M("createDrawer.creating")})})}):null]}),footer:(0,b.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,b.jsx)(x.Button,{variant:"outline",onClick:aY,disabled:g,children:M("createDrawer.cancel")}),(0,b.jsx)(x.Button,{type:"submit",form:"create-feature-form",disabled:!$.trim()||g||bc,children:g?M("createDrawer.creating"):M("createDrawer.createFeature")})]}),children:(0,b.jsx)("div",{className:"overflow-y-auto p-4",children:(0,b.jsx)(E.TooltipProvider,{delayDuration:400,children:(0,b.jsxs)("form",{ref:a7,id:"create-feature-form",onSubmit:a3,onKeyDown:a8,className:"flex flex-col gap-4",children:[bd?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,b.jsx)(A.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:M("createDrawer.repository")}),(0,b.jsx)(T,{repositories:aI,value:aG,onChange:aH,onAddRepository:a=>{aJ(b=>[...b,a]),aH(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)(A.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:M("createDrawer.repository")}),(0,b.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:n?.find(a=>a.path===N)?.name??N.split("/").pop()})]}):null,(0,b.jsxs)("div",{role:"region","aria-label":M("createDrawer.fileDropZone"),"data-drag-over":aK?"true":"false",onDragEnter:a$,onDragLeave:a_,onDragOver:a0,onDrop:a1,className:(0,t.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",aK&&"border-primary/50 bg-primary/5"),children:[(0,b.jsx)(A.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:M("createDrawer.describeFeature")}),(0,b.jsxs)("div",{ref:aS,onFocus:a9,onBlur:ba,className:(0,t.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",aO&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,b.jsx)(z.Textarea,{id:"feature-description",placeholder:M("createDrawer.featurePlaceholder"),value:$,onChange:a=>_(a.target.value),onPaste:a2,required:!0,disabled:g,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),aa.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:aa.map(a=>(0,b.jsx)(G.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>a5(a.id),disabled:g,loading:a.loading,notes:a.notes,onNotesChange:b=>a6(a.id,b)},a.id))}),aM?(0,b.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:aM}):null,(0,b.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,b.jsx)(I.AgentModelPicker,{initialAgentType:aC??y??"claude-code",initialModel:aE??C??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(a,b)=>{aD(a),aF(b)},disabled:g,className:"w-55"}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(D.Switch,{id:"pending-mode",checked:as,onCheckedChange:at,disabled:g}),(0,b.jsxs)(A.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"}),M("createDrawer.pendingMode")]})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.pendingModeDescription")})]}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(D.Switch,{id:"fast-mode",checked:aq,onCheckedChange:ar,disabled:g}),(0,b.jsxs)(A.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"}),M("createDrawer.fastModeLabel")]})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.fastModeDescription")})]}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:a4,disabled:g,"aria-label":M("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)(E.TooltipContent,{side:"bottom",children:M("chat.attachFiles")})]})]})]})]}),bb&&void 0!==o?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(A.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:M("createDrawer.parentFeature")}),(0,b.jsx)(S,{features:k,value:ao,onChange:ap,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)(E.Tooltip,{children:[(0,b.jsx)(E.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:M("createDrawer.approve")})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.approveDescription")})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:be.map(a=>(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:`approve-${a.id}`,size:"sm",checked:ac[a.id]??!1,onCheckedChange:b=>ad(c=>({...c,[a.id]:b})),disabled:g||aq&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,b.jsx)(A.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:aq&&("allowPrd"===a.id||"allowPlan"===a.id)?M("createDrawer.skippedInFastMode"):a.description})]},a.id))}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:()=>{let a=be.every(a=>ac[a.id]),b={};for(let c of be)b[c.id]=!a;ad(b)},disabled:g,className:(0,t.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",be.every(a=>ac[a.id])&&"text-primary"),children:M("createDrawer.all")})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("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)(E.Tooltip,{children:[(0,b.jsx)(E.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:M("createDrawer.evidence")})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.evidenceDescription")})]}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"enable-evidence",size:"sm",checked:ak,onCheckedChange:a=>{al(a),a||an(!1)},disabled:g}),(0,b.jsx)(A.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:M("createDrawer.collect")})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.collectDescription")})]}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"commit-evidence",size:"sm",checked:am,onCheckedChange:an,disabled:g||!ak||!ag&&!au}),(0,b.jsx)(A.Label,{htmlFor:"commit-evidence",className:(0,t.cn)("cursor-pointer text-xs font-medium",(!ak||!ag&&!au)&&"opacity-50"),children:M("createDrawer.addToPr")})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:ag||au?ak?M("createDrawer.addToPrDescription"):M("createDrawer.requiresEvidence"):M("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)(E.Tooltip,{children:[(0,b.jsx)(E.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:M("createDrawer.skills")})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.skillsDescription")})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"inject-skills",size:"sm",checked:aA,onCheckedChange:aB,disabled:g}),(0,b.jsxs)(A.Label,{htmlFor:"inject-skills",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(r.Puzzle,{className:"h-3 w-3"}),M("createDrawer.injectSkills")]})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("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:M("createDrawer.git")}),(0,b.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"push",size:"sm",checked:!!au||ae||ag,onCheckedChange:a=>{af(a),!a&&ag&&ah(!1)},disabled:g||au}),(0,b.jsx)(A.Label,{htmlFor:"push",className:(0,t.cn)("cursor-pointer text-xs font-medium",au&&"opacity-50"),children:M("createDrawer.push")})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:au?"Enabled — contributing to upstream":M("createDrawer.pushDescription")})]}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"open-pr",size:"sm",checked:!!au||ag,onCheckedChange:a=>{ah(a),a||an(!1)},disabled:g||au}),(0,b.jsx)(A.Label,{htmlFor:"open-pr",className:(0,t.cn)("cursor-pointer text-xs font-medium",au&&"opacity-50"),children:M("createDrawer.pr")})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:au?"Enabled — contributing to upstream":M("createDrawer.prDescription")})]}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"ci-watch",size:"sm",checked:ai,onCheckedChange:aj,disabled:g}),(0,b.jsx)(A.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:M("createDrawer.watch")})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.watchDescription")})]}),(0,b.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"rebase-before-branch",size:"sm",checked:ay,onCheckedChange:az,disabled:g}),(0,b.jsxs)(A.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(s.RefreshCw,{className:"h-3 w-3"}),M("createDrawer.sync")]})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.syncDescription")})]}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"commit-specs",size:"sm",checked:aw,onCheckedChange:ax,disabled:g}),(0,b.jsxs)(A.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"}),M("createDrawer.commitSpecs")]})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.commitSpecsDescription")})]}),!aT&&(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"fork-and-pr",size:"sm",checked:au,onCheckedChange:a=>{av(a),a&&ax(!1)},disabled:g}),(0,b.jsxs)(A.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"}),M("createDrawer.forkAndPr")]})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.forkAndPrDescription")})]})]})]})]})]})})})})}function S({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)(C.Popover,{open:i,onOpenChange:l,children:[(0,b.jsx)(C.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,t.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)(C.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)(y.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,t.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,t.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,t.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,t.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 T({repositories:a,value:d,onChange:e,onAddRepository:f,disabled:g}){let[i,l]=(0,c.useState)(!1),[m,q]=(0,c.useState)(""),[r,s]=(0,c.useState)(!1),[u,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(!1),z=(0,c.useRef)(null),{reactFileManager:A}=(0,M.useFeatureFlags)(),{t:D}=(0,h.useTranslation)("web"),E=a.find(a=>a.path===d),F=m.trim()?a.filter(a=>a.name.toLowerCase().includes(m.toLowerCase())||a.path.toLowerCase().includes(m.toLowerCase())):a,G=(0,c.useCallback)(a=>{e(a),l(!1),q("")},[e]),H=(0,c.useCallback)(async a=>{let b=await (0,N.addRepository)({path:a});if(b.error){v(b.error),s(!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),q("")}},[f,e]),I=(0,c.useCallback)(async()=>{if(!r){if(A)return void x(!0);s(!0),v(null);try{let a=await (0,K.pickFolder)();if(!a)return void s(!1);await H(a)}catch{x(!0)}finally{s(!1)}}},[r,A,H]),O=(0,c.useCallback)(async a=>{if(x(!1),a){s(!0),v(null);try{await H(a)}catch(a){v(a instanceof Error?a.message:"Failed to add repository")}finally{s(!1)}}},[H]);return(0,c.useEffect)(()=>{i?setTimeout(()=>z.current?.focus(),0):q("")},[i]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(C.Popover,{open:i,onOpenChange:l,children:[(0,b.jsx)(C.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,t.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",!E&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:E?E.name:"Select repository..."}),(0,b.jsx)(j.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(C.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)(y.Input,{ref:z,placeholder:D("createDrawer.searchRepositories"),value:m,onChange:a=>q(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===F.length?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):F.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.path,onClick:()=>G(a.path),className:(0,t.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,t.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.jsxs)("span",{className:"flex items-center gap-1.5 truncate",children:[a.name,a.isFork?(0,b.jsxs)(B.Badge,{variant:"outline",className:"h-4 shrink-0 px-1 text-[10px]",children:[(0,b.jsx)(p.GitFork,{className:"mr-0.5 h-2.5 w-2.5"}),"Fork"]}):null]}),(0,b.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:a.path})]})]},a.id))}),(0,b.jsx)(J.Separator,{}),(0,b.jsxs)("button",{type:"button",onClick:I,disabled:r,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:[r?(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..."})]}),u?(0,b.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:u}):null]})})]}),(0,b.jsx)(L.ReactFileManagerDialog,{open:w,onOpenChange:a=>{a||x(!1)},onSelect:O})]})}function U({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)(R,{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",()=>U],93995)}];
1
+ module.exports=[93995,a=>{"use strict";var b=a.i(12656),c=a.i(96960),d=a.i(69845),e=a.i(52313),f=a.i(25674);let g=(0,f.createServerReference)("4022dca7af87f43de64aecff0288c6224464aa6625",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(67424),s=a.i(28002),t=a.i(85536),u=a.i(19884);a.i(78454);var v=a.i(24255),w=a.i(2824),x=a.i(18948),y=a.i(90920),z=a.i(79620),A=a.i(584),B=a.i(58339),C=a.i(80646),D=a.i(96867),E=a.i(82934),F=a.i(96213);a.i(307);var G=a.i(30931);let H=(0,f.createServerReference)("40febb73c14231aaf88141b23507820462a752e37e",f.callServer,void 0,f.findSourceMapURL,"getViewerPermission");var I=a.i(61781),J=a.i(13126),K=a.i(1377);a.i(21434);var L=a.i(34379),M=a.i(21333),N=a.i(86814),O=a.i(39116);let P=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"]),Q={allowPrd:!1,allowPlan:!1,allowMerge:!1};function R({open:a,onClose:d,onSubmit:e,repositoryPath:f,isSubmitting:g=!1,workflowDefaults:j,features:k,repositories:n,initialParentId:o,currentAgentType:y,currentModel:C,initialDescription:J,canPushDirectly:K}){let L=(0,u.useSoundAction)("create"),{t:M}=(0,h.useTranslation)("web"),N=f&&(!n||0===n.length||n.some(a=>a.path===f))?f:"",R=j?.approvalGates??Q,U=j?.push??!1,V=j?.openPr??!1,W=j?.ciWatchEnabled!==!1,X=j?.enableEvidence??!1,Y=j?.commitEvidence??!1,Z=j?.fast!==!1,[$,_]=(0,c.useState)(J??"");(0,c.useEffect)(()=>{J&&_(J)},[J]);let[aa,ab]=(0,c.useState)([]),[ac,ad]=(0,c.useState)({...R}),[ae,af]=(0,c.useState)(U),[ag,ah]=(0,c.useState)(V),[ai,aj]=(0,c.useState)(j?.ciWatchEnabled!==!1),[ak,al]=(0,c.useState)(X),[am,an]=(0,c.useState)(Y),[ao,ap]=(0,c.useState)(void 0),[aq,ar]=(0,c.useState)(Z),[as,at]=(0,c.useState)(!1),[au,av]=(0,c.useState)(!1),[aw,ax]=(0,c.useState)(!0),[ay,az]=(0,c.useState)(!0),[aA,aB]=(0,c.useState)(j?.injectSkills??!1),[aC,aD]=(0,c.useState)(void 0),[aE,aF]=(0,c.useState)(void 0),[aG,aH]=(0,c.useState)(N||void 0),[aI,aJ]=(0,c.useState)(n??[]),[aK,aL]=(0,c.useState)(!1),[aM,aN]=(0,c.useState)(null),[aO,aP]=(0,c.useState)(!1),aQ=(0,c.useRef)(crypto.randomUUID()),aR=(0,c.useRef)(0),aS=(0,c.useRef)(null);(0,c.useEffect)(()=>{j&&(ad({...j.approvalGates}),af(j.push),ah(j.openPr),aj(!1!==j.ciWatchEnabled),al(j.enableEvidence),an(j.commitEvidence),ar(!1!==j.fast),aB(j.injectSkills??!1))},[j]),(0,c.useEffect)(()=>{aJ(n??[])},[n]),(0,c.useEffect)(()=>{a&&o&&ap(o)},[a,o]);let[aT,aU]=(0,c.useState)(K??!1);(0,c.useEffect)(()=>{aU(K??!1)},[K]);let aV=(0,c.useRef)(aG);(0,c.useEffect)(()=>{aG&&aG!==aV.current&&(aV.current=aG,H(aG).then(a=>aU(a.canPushDirectly)).catch(()=>aU(!1)))},[aG]),(0,c.useEffect)(()=>{aT&&(av(!1),af(U),ah(V),ax(!0))},[aT,U,V]);let aW=(0,c.useCallback)(()=>{_(""),ab([]),ad({...R}),af(U),ah(V),aj(W),al(X),an(Y),ap(void 0),aH(N||void 0),aJ(n??[]),ar(Z),at(!1),av(!1),ax(!0),az(!0),aD(void 0),aF(void 0),aN(null),aR.current=0,aL(!1)},[R,U,V,X,W,Y,Z,N,n]),aX=""!==$.trim()||aa.length>0,{attemptClose:aY}=(0,F.useGuardedDrawerClose)({open:a,isDirty:aX,onClose:d,onReset:aW}),aZ=(0,c.useCallback)(async a=>{for(let b of(aN(null),a)){if(b.size>0xa00000)return void aN(`"${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&&!P.has(a))return void aN(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();ab(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",aQ.current);let d=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!d.ok){let b=await d.json().catch(()=>({error:"Upload failed"}));ab(b=>b.filter(b=>b.id!==a)),aN(b.error??"Upload failed");return}let e=await d.json();ab(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{ab(b=>b.filter(b=>b.id!==a)),aN("Upload failed")}}},[]),a$=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aR.current+=1,1===aR.current&&aL(!0)},[]),a_=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aR.current-=1,0===aR.current&&aL(!1)},[]),a0=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),a1=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aR.current=0,aL(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&aZ(b)},[aZ]),a2=(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(),aZ(c))},[aZ]),a3=(0,c.useCallback)(a=>{if(a.preventDefault(),!$.trim())return;let b=aG??N;b&&(L.play(),e({description:$.trim(),attachments:aa.filter(a=>!a.loading),repositoryPath:b,approvalGates:{allowPrd:ac.allowPrd??!1,allowPlan:ac.allowPlan??!1,allowMerge:ac.allowMerge??!1},push:!!au||ae||ag,openPr:!!au||ag,ciWatchEnabled:ai,enableEvidence:ak,commitEvidence:am,fast:aq,forkAndPr:au,commitSpecs:aw,rebaseBeforeBranch:ay,injectSkills:aA,...as?{pending:as}:{},...aC?{agentType:aC}:{},...aE?{model:aE}:{},...ao?{parentId:ao}:{},sessionId:aQ.current}),aW())},[$,aa,ac,aG,N,e,ae,ag,ak,ai,am,aq,au,aw,ay,aA,as,aC,aE,ao,L,aW]),a4=(0,c.useCallback)(async()=>{try{let a=await (0,O.pickFiles)();if(!a)return;for(let b of a){let a=crypto.randomUUID();ab(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:aQ.current})});if(!c.ok){let b=await c.json().catch(()=>({error:"Upload failed"}));ab(b=>b.filter(b=>b.id!==a)),aN(b.error??"Upload failed");return}let d=await c.json();ab(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{ab(b=>b.filter(b=>b.id!==a)),aN("Upload failed")}}}catch{}},[]),a5=(0,c.useCallback)(a=>{ab(b=>b.filter(b=>b.id!==a))},[]),a6=(0,c.useCallback)((a,b)=>{ab(c=>c.map(c=>c.id===a?{...c,notes:b}:c))},[]),a7=(0,c.useRef)(null),a8=(0,c.useCallback)(a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),a7.current?.requestSubmit())},[]),a9=(0,c.useCallback)(()=>{aP(!0)},[]),ba=(0,c.useCallback)(()=>{setTimeout(()=>{let a=aS.current?.contains(document.activeElement),b=aS.current?.querySelector('[aria-expanded="true"]')!==null;a||b||aP(!1)},0)},[]),bb=k&&k.length>0,bc=!N&&!aG,bd=!N&&void 0!==n,be=[{id:"allowPrd",label:M("createDrawer.prd"),description:M("createDrawer.prdDescription")},{id:"allowPlan",label:M("createDrawer.plan"),description:M("createDrawer.planDescription")},{id:"allowMerge",label:M("createDrawer.merge"),description:M("createDrawer.mergeDescription")}];return(0,b.jsx)(v.BaseDrawer,{open:a,onClose:aY,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)(w.DrawerTitle,{children:M("createDrawer.title")})]}),g?(0,b.jsx)(w.DrawerDescription,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(B.Badge,{variant:"secondary",children:M("createDrawer.creating")})})}):null]}),footer:(0,b.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,b.jsx)(x.Button,{variant:"outline",onClick:aY,disabled:g,children:M("createDrawer.cancel")}),(0,b.jsx)(x.Button,{type:"submit",form:"create-feature-form",disabled:!$.trim()||g||bc,children:g?M("createDrawer.creating"):M("createDrawer.createFeature")})]}),children:(0,b.jsx)("div",{className:"overflow-y-auto p-4",children:(0,b.jsx)(E.TooltipProvider,{delayDuration:400,children:(0,b.jsxs)("form",{ref:a7,id:"create-feature-form",onSubmit:a3,onKeyDown:a8,className:"flex flex-col gap-4",children:[bd?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,b.jsx)(A.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:M("createDrawer.repository")}),(0,b.jsx)(T,{repositories:aI,value:aG,onChange:aH,onAddRepository:a=>{aJ(b=>[...b,a]),aH(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)(A.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:M("createDrawer.repository")}),(0,b.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:n?.find(a=>a.path===N)?.name??N.split("/").pop()})]}):null,(0,b.jsxs)("div",{role:"region","aria-label":M("createDrawer.fileDropZone"),"data-drag-over":aK?"true":"false",onDragEnter:a$,onDragLeave:a_,onDragOver:a0,onDrop:a1,className:(0,t.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",aK&&"border-primary/50 bg-primary/5"),children:[(0,b.jsx)(A.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:M("createDrawer.describeFeature")}),(0,b.jsxs)("div",{ref:aS,onFocus:a9,onBlur:ba,className:(0,t.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",aO&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,b.jsx)(z.Textarea,{id:"feature-description",placeholder:M("createDrawer.featurePlaceholder"),value:$,onChange:a=>_(a.target.value),onPaste:a2,required:!0,disabled:g,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),aa.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:aa.map(a=>(0,b.jsx)(G.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>a5(a.id),disabled:g,loading:a.loading,notes:a.notes,onNotesChange:b=>a6(a.id,b)},a.id))}),aM?(0,b.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:aM}):null,(0,b.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,b.jsx)(I.AgentModelPicker,{initialAgentType:aC??y??"claude-code",initialModel:aE??C??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(a,b)=>{aD(a),aF(b)},disabled:g,className:"w-55"}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(D.Switch,{id:"pending-mode",checked:as,onCheckedChange:at,disabled:g}),(0,b.jsxs)(A.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"}),M("createDrawer.pendingMode")]})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.pendingModeDescription")})]}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(D.Switch,{id:"fast-mode",checked:aq,onCheckedChange:ar,disabled:g}),(0,b.jsxs)(A.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"}),M("createDrawer.fastModeLabel")]})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.fastModeDescription")})]}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:a4,disabled:g,"aria-label":M("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)(E.TooltipContent,{side:"bottom",children:M("chat.attachFiles")})]})]})]})]}),bb&&void 0!==o?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(A.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:M("createDrawer.parentFeature")}),(0,b.jsx)(S,{features:k,value:ao,onChange:ap,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)(E.Tooltip,{children:[(0,b.jsx)(E.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:M("createDrawer.approve")})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.approveDescription")})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:be.map(a=>(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:`approve-${a.id}`,size:"sm",checked:ac[a.id]??!1,onCheckedChange:b=>ad(c=>({...c,[a.id]:b})),disabled:g||aq&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,b.jsx)(A.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:aq&&("allowPrd"===a.id||"allowPlan"===a.id)?M("createDrawer.skippedInFastMode"):a.description})]},a.id))}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:()=>{let a=be.every(a=>ac[a.id]),b={};for(let c of be)b[c.id]=!a;ad(b)},disabled:g,className:(0,t.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",be.every(a=>ac[a.id])&&"text-primary"),children:M("createDrawer.all")})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("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)(E.Tooltip,{children:[(0,b.jsx)(E.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:M("createDrawer.evidence")})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.evidenceDescription")})]}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"enable-evidence",size:"sm",checked:ak,onCheckedChange:a=>{al(a),a||an(!1)},disabled:g}),(0,b.jsx)(A.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:M("createDrawer.collect")})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.collectDescription")})]}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"commit-evidence",size:"sm",checked:am,onCheckedChange:an,disabled:g||!ak||!ag&&!au}),(0,b.jsx)(A.Label,{htmlFor:"commit-evidence",className:(0,t.cn)("cursor-pointer text-xs font-medium",(!ak||!ag&&!au)&&"opacity-50"),children:M("createDrawer.addToPr")})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:ag||au?ak?M("createDrawer.addToPrDescription"):M("createDrawer.requiresEvidence"):M("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)(E.Tooltip,{children:[(0,b.jsx)(E.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:M("createDrawer.skills")})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.skillsDescription")})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"inject-skills",size:"sm",checked:aA,onCheckedChange:aB,disabled:g}),(0,b.jsxs)(A.Label,{htmlFor:"inject-skills",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(r.Puzzle,{className:"h-3 w-3"}),M("createDrawer.injectSkills")]})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("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:M("createDrawer.git")}),(0,b.jsxs)("div",{className:"flex flex-1 flex-wrap items-center gap-4",children:[(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"push",size:"sm",checked:!!au||ae||ag,onCheckedChange:a=>{af(a),!a&&ag&&ah(!1)},disabled:g||au}),(0,b.jsx)(A.Label,{htmlFor:"push",className:(0,t.cn)("cursor-pointer text-xs font-medium",au&&"opacity-50"),children:M("createDrawer.push")})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:au?"Enabled — contributing to upstream":M("createDrawer.pushDescription")})]}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"open-pr",size:"sm",checked:!!au||ag,onCheckedChange:a=>{ah(a),a||an(!1)},disabled:g||au}),(0,b.jsx)(A.Label,{htmlFor:"open-pr",className:(0,t.cn)("cursor-pointer text-xs font-medium",au&&"opacity-50"),children:M("createDrawer.pr")})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:au?"Enabled — contributing to upstream":M("createDrawer.prDescription")})]}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"ci-watch",size:"sm",checked:ai,onCheckedChange:aj,disabled:g}),(0,b.jsx)(A.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:M("createDrawer.watch")})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.watchDescription")})]}),(0,b.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"rebase-before-branch",size:"sm",checked:ay,onCheckedChange:az,disabled:g}),(0,b.jsxs)(A.Label,{htmlFor:"rebase-before-branch",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(s.RefreshCw,{className:"h-3 w-3"}),M("createDrawer.sync")]})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.syncDescription")})]}),(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"commit-specs",size:"sm",checked:aw,onCheckedChange:ax,disabled:g}),(0,b.jsxs)(A.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"}),M("createDrawer.commitSpecs")]})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.commitSpecsDescription")})]}),!aT&&(0,b.jsxs)(E.Tooltip,{children:[(0,b.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(D.Switch,{id:"fork-and-pr",size:"sm",checked:au,onCheckedChange:a=>{av(a),a&&ax(!1)},disabled:g}),(0,b.jsxs)(A.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"}),M("createDrawer.forkAndPr")]})]})}),(0,b.jsx)(E.TooltipContent,{side:"bottom",children:M("createDrawer.forkAndPrDescription")})]})]})]})]})]})})})})}function S({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)(C.Popover,{open:i,onOpenChange:l,children:[(0,b.jsx)(C.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,t.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)(C.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)(y.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,t.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,t.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,t.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,t.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 T({repositories:a,value:d,onChange:e,onAddRepository:f,disabled:g}){let[i,l]=(0,c.useState)(!1),[m,q]=(0,c.useState)(""),[r,s]=(0,c.useState)(!1),[u,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(!1),z=(0,c.useRef)(null),{reactFileManager:A}=(0,M.useFeatureFlags)(),{t:D}=(0,h.useTranslation)("web"),E=a.find(a=>a.path===d),F=m.trim()?a.filter(a=>a.name.toLowerCase().includes(m.toLowerCase())||a.path.toLowerCase().includes(m.toLowerCase())):a,G=(0,c.useCallback)(a=>{e(a),l(!1),q("")},[e]),H=(0,c.useCallback)(async a=>{let b=await (0,N.addRepository)({path:a});if(b.error){v(b.error),s(!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),q("")}},[f,e]),I=(0,c.useCallback)(async()=>{if(!r){if(A)return void x(!0);s(!0),v(null);try{let a=await (0,K.pickFolder)();if(!a)return void s(!1);await H(a)}catch{x(!0)}finally{s(!1)}}},[r,A,H]),O=(0,c.useCallback)(async a=>{if(x(!1),a){s(!0),v(null);try{await H(a)}catch(a){v(a instanceof Error?a.message:"Failed to add repository")}finally{s(!1)}}},[H]);return(0,c.useEffect)(()=>{i?setTimeout(()=>z.current?.focus(),0):q("")},[i]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(C.Popover,{open:i,onOpenChange:l,children:[(0,b.jsx)(C.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,t.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",!E&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:E?E.name:"Select repository..."}),(0,b.jsx)(j.ChevronsUpDown,{className:"ms-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(C.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)(y.Input,{ref:z,placeholder:D("createDrawer.searchRepositories"),value:m,onChange:a=>q(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===F.length?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):F.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.path,onClick:()=>G(a.path),className:(0,t.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,t.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.jsxs)("span",{className:"flex items-center gap-1.5 truncate",children:[a.name,a.isFork?(0,b.jsxs)(B.Badge,{variant:"outline",className:"h-4 shrink-0 px-1 text-[10px]",children:[(0,b.jsx)(p.GitFork,{className:"mr-0.5 h-2.5 w-2.5"}),"Fork"]}):null]}),(0,b.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:a.path})]})]},a.id))}),(0,b.jsx)(J.Separator,{}),(0,b.jsxs)("button",{type:"button",onClick:I,disabled:r,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:[r?(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..."})]}),u?(0,b.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:u}):null]})})]}),(0,b.jsx)(L.ReactFileManagerDialog,{open:w,onOpenChange:a=>{a||x(!1)},onSelect:O})]})}function U({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)(R,{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",()=>U],93995)}];
2
2
 
3
3
  //# sourceMappingURL=744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map