@shepai/cli 1.77.2-pr243.f5af359 → 1.78.0-pr247.6d6f409

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 (237) hide show
  1. package/dist/packages/core/src/application/ports/output/agents/structured-agent-caller.interface.d.ts +6 -1
  2. package/dist/packages/core/src/application/ports/output/agents/structured-agent-caller.interface.d.ts.map +1 -1
  3. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
  4. package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +1 -1
  5. package/dist/packages/core/src/application/use-cases/features/create/metadata-generator.d.ts +2 -1
  6. package/dist/packages/core/src/application/use-cases/features/create/metadata-generator.d.ts.map +1 -1
  7. package/dist/packages/core/src/application/use-cases/features/create/metadata-generator.js +2 -1
  8. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  9. package/dist/packages/core/src/infrastructure/di/container.js +2 -1
  10. package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.js +2 -2
  11. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.js +3 -3
  12. package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.d.ts.map +1 -1
  13. package/dist/packages/core/src/infrastructure/services/agents/common/executors/cursor-executor.service.js +18 -4
  14. package/dist/packages/core/src/infrastructure/services/agents/common/executors/gemini-cli-executor.service.js +3 -3
  15. package/dist/packages/core/src/infrastructure/services/agents/common/structured-agent-caller.service.d.ts +3 -1
  16. package/dist/packages/core/src/infrastructure/services/agents/common/structured-agent-caller.service.d.ts.map +1 -1
  17. package/dist/packages/core/src/infrastructure/services/agents/common/structured-agent-caller.service.js +14 -3
  18. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/log-context.d.ts +8 -0
  19. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/log-context.d.ts.map +1 -1
  20. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/log-context.js +13 -0
  21. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts +1 -0
  22. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  23. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +5 -3
  24. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.js +1 -1
  25. package/dist/src/presentation/web/lib/model-metadata.js +2 -2
  26. package/dist/tsconfig.build.tsbuildinfo +1 -1
  27. package/package.json +9 -9
  28. package/web/.next/BUILD_ID +1 -1
  29. package/web/.next/build-manifest.json +2 -2
  30. package/web/.next/fallback-build-manifest.json +2 -2
  31. package/web/.next/prerender-manifest.json +3 -3
  32. package/web/.next/required-server-files.js +1 -1
  33. package/web/.next/required-server-files.json +1 -1
  34. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +18 -18
  35. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  36. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  37. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +19 -19
  38. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  39. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  41. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  42. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  43. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +18 -18
  44. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  45. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  46. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +19 -19
  47. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  48. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
  50. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  51. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  53. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  54. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  55. package/web/.next/server/app/_global-error.html +2 -2
  56. package/web/.next/server/app/_global-error.rsc +1 -1
  57. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  58. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  59. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  60. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  61. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  62. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  63. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  65. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  66. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  67. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  68. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  69. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  70. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  71. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  72. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  73. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  74. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  75. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
  76. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js.map +1 -1
  77. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
  78. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js.map +1 -1
  79. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  80. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  81. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  82. package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +1 -1
  83. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  84. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js.map +1 -1
  85. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
  86. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  87. package/web/.next/server/chunks/ssr/[root-of-the-server]__bff2deea._.js +1 -1
  88. package/web/.next/server/chunks/ssr/[root-of-the-server]__bff2deea._.js.map +1 -1
  89. package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +2 -2
  90. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  91. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  92. package/web/.next/server/chunks/ssr/_0e9d6bf7._.js +1 -1
  93. package/web/.next/server/chunks/ssr/_0e9d6bf7._.js.map +1 -1
  94. package/web/.next/server/chunks/ssr/{_5a4b2905._.js → _59013951._.js} +2 -2
  95. package/web/.next/server/chunks/ssr/{_5a4b2905._.js.map → _59013951._.js.map} +1 -1
  96. package/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
  97. package/web/.next/server/chunks/ssr/_61351ed3._.js.map +1 -1
  98. package/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
  99. package/web/.next/server/chunks/ssr/_8400c8bb._.js.map +1 -1
  100. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  101. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  102. package/web/.next/server/chunks/ssr/_9ac70f88._.js +1 -1
  103. package/web/.next/server/chunks/ssr/_9ac70f88._.js.map +1 -1
  104. package/web/.next/server/chunks/ssr/{_253f4d99._.js → _c0d6304b._.js} +2 -2
  105. package/web/.next/server/chunks/ssr/{_253f4d99._.js.map → _c0d6304b._.js.map} +1 -1
  106. package/web/.next/server/chunks/ssr/{_c6d673f9._.js → _cffcd9d0._.js} +2 -2
  107. package/web/.next/server/chunks/ssr/{_c6d673f9._.js.map → _cffcd9d0._.js.map} +1 -1
  108. package/web/.next/server/chunks/ssr/_ed356507._.js +1 -1
  109. package/web/.next/server/chunks/ssr/_ed356507._.js.map +1 -1
  110. package/web/.next/server/chunks/ssr/_f38b49fe._.js +1 -1
  111. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  112. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  113. package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +1 -1
  114. package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js.map +1 -1
  115. package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +1 -1
  116. package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js.map +1 -1
  117. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
  118. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +1 -1
  119. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  120. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  121. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  122. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  123. package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +2 -2
  124. package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js.map +1 -1
  125. package/web/.next/server/chunks/ssr/src_presentation_web_components_5124369c._.js +1 -1
  126. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  127. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  128. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js +1 -1
  129. package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js +2 -2
  130. package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js.map +1 -1
  131. package/web/.next/server/pages/500.html +2 -2
  132. package/web/.next/server/server-reference-manifest.js +1 -1
  133. package/web/.next/server/server-reference-manifest.json +26 -26
  134. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  135. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
  136. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  137. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
  138. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +18 -18
  139. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  140. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  141. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +19 -19
  142. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  143. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  144. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  145. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  146. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  147. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +18 -18
  148. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  149. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  150. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +19 -19
  151. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  152. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  153. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
  154. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  155. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  156. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
  157. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  158. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  159. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  160. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  161. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  162. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  163. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  164. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  165. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  166. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  167. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  168. package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  169. package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page.js.nft.json +1 -1
  170. package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  171. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  172. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  173. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  174. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  175. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  176. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  177. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  178. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
  179. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
  180. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  181. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  182. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +1 -1
  183. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  184. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
  185. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__bff2deea._.js +1 -1
  186. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +2 -2
  187. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  188. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_0e9d6bf7._.js +1 -1
  189. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_5a4b2905._.js → _59013951._.js} +2 -2
  190. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
  191. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
  192. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  193. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9ac70f88._.js +1 -1
  194. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_253f4d99._.js → _c0d6304b._.js} +2 -2
  195. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_c6d673f9._.js → _cffcd9d0._.js} +2 -2
  196. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_ed356507._.js +1 -1
  197. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_f38b49fe._.js +1 -1
  198. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  199. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +1 -1
  200. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +1 -1
  201. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
  202. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  203. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  204. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +2 -2
  205. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_5124369c._.js +1 -1
  206. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  207. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js +1 -1
  208. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js +2 -2
  209. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  210. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  211. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +26 -26
  212. package/web/.next/standalone/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.tsx +1 -1
  213. package/web/.next/standalone/src/presentation/web/lib/model-metadata.ts +2 -2
  214. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  215. package/web/.next/static/chunks/0bdf5fd5930ffe82.js +1 -0
  216. package/web/.next/static/chunks/{128d484880f21a07.js → 405af1f1720627f7.js} +1 -1
  217. package/web/.next/static/chunks/{218ab9753982575e.js → 4cd5e556884a28ee.js} +1 -1
  218. package/web/.next/static/chunks/52b56677c842e45f.js +3 -0
  219. package/web/.next/static/chunks/{c8863441b5e12825.js → 5c836d389f97b50c.js} +1 -1
  220. package/web/.next/static/chunks/{cadb5fdf3ab7d77b.js → 62b9a3a31ef611cc.js} +1 -1
  221. package/web/.next/static/chunks/{cee3033ff8ebf195.js → 6ab2d0ee934b2ba5.js} +1 -1
  222. package/web/.next/static/chunks/{677390f4102f0944.js → c71da365eaf34944.js} +1 -1
  223. package/web/.next/static/chunks/{6e7043607b91ed6b.js → e171a771e3055038.js} +1 -1
  224. package/web/.next/static/chunks/{53584b9a62aea2dc.js → f5080e57de19b082.js} +1 -1
  225. package/web/.next/static/chunks/{4c6f2fcfd0271c8b.js → f933edb6a2f23692.js} +1 -1
  226. package/web/.next/static/chunks/{360155cd2342f0b8.js → fad44433a42bcc35.js} +1 -1
  227. package/web/.next/trace +1 -1
  228. package/web/.next/trace-build +1 -1
  229. package/web/.next/cache/.previewinfo +0 -1
  230. package/web/.next/cache/.rscinfo +0 -1
  231. package/web/.next/cache/.tsbuildinfo +0 -1
  232. package/web/.next/cache/config.json +0 -7
  233. package/web/.next/static/chunks/3c183f1c109f8447.js +0 -1
  234. package/web/.next/static/chunks/a1ddf1f9b1435434.js +0 -3
  235. /package/web/.next/static/{d6rYTNqlrgOIowi6L1MbM → PATEpvaeVdnZOt0gykklk}/_buildManifest.js +0 -0
  236. /package/web/.next/static/{d6rYTNqlrgOIowi6L1MbM → PATEpvaeVdnZOt0gykklk}/_clientMiddlewareManifest.json +0 -0
  237. /package/web/.next/static/{d6rYTNqlrgOIowi6L1MbM → PATEpvaeVdnZOt0gykklk}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
1
  globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
2
- globalThis.__RSC_MANIFEST["/tools/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":40799,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":40799,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":73006,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":73006,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":67804,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js":{"id":67804,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":50122,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":50122,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":19292,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":19292,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":30088,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":30088,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":66658,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":66658,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/app/global-error.tsx <module evaluation>":{"id":98295,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/app/global-error.tsx":{"id":98295,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx <module evaluation>":{"id":87292,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx":{"id":87292,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx <module evaluation>":{"id":25251,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx":{"id":25251,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx <module evaluation>":{"id":75921,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx":{"id":75921,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/features/tools/tools-page-client.tsx <module evaluation>":{"id":44412,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js","/_next/static/chunks/51454a23ce051ec9.js","/_next/static/chunks/53584b9a62aea2dc.js"],"async":false},"[project]/src/presentation/web/components/features/tools/tools-page-client.tsx":{"id":44412,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js","/_next/static/chunks/51454a23ce051ec9.js","/_next/static/chunks/53584b9a62aea2dc.js"],"async":false}},"ssrModuleMapping":{"40799":{"*":{"id":69218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"73006":{"*":{"id":76926,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"67804":{"*":{"id":78378,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"50122":{"*":{"id":18508,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"19292":{"*":{"id":55259,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"30088":{"*":{"id":33028,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"66658":{"*":{"id":42422,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"98295":{"*":{"id":84831,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"87292":{"*":{"id":66560,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"25251":{"*":{"id":58313,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"75921":{"*":{"id":21333,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"44412":{"*":{"id":92163,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/_14fa79b2._.js","server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js","server/chunks/ssr/_f38b49fe._.js","server/chunks/ssr/_8400c8bb._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"40799":{"*":{"id":48035,"name":"*","chunks":[],"async":false}},"73006":{"*":{"id":22994,"name":"*","chunks":[],"async":false}},"67804":{"*":{"id":21809,"name":"*","chunks":[],"async":false}},"50122":{"*":{"id":70251,"name":"*","chunks":[],"async":false}},"19292":{"*":{"id":39498,"name":"*","chunks":[],"async":false}},"30088":{"*":{"id":2021,"name":"*","chunks":[],"async":false}},"66658":{"*":{"id":47390,"name":"*","chunks":[],"async":false}},"98295":{"*":{"id":73449,"name":"*","chunks":[],"async":false}},"87292":{"*":{"id":34168,"name":"*","chunks":[],"async":false}},"25251":{"*":{"id":11900,"name":"*","chunks":[],"async":false}},"75921":{"*":{"id":59259,"name":"*","chunks":[],"async":false}},"44412":{"*":{"id":50642,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/presentation/web/app/global-error":[],"[project]/src/presentation/web/app/layout":[{"path":"static/chunks/42bd17823c7f41a1.css","inlined":false}],"[project]/src/presentation/web/app/tools/page":[{"path":"static/chunks/42bd17823c7f41a1.css","inlined":false}]},"entryJSFiles":{"[project]/src/presentation/web/app/global-error":["static/chunks/356ebc89a2a97627.js","static/chunks/fe70e73feb07bcfd.js"],"[project]/src/presentation/web/app/layout":["static/chunks/128d484880f21a07.js","static/chunks/a1ddf1f9b1435434.js","static/chunks/8f122c3ac2102300.js","static/chunks/7acc79e599df9890.js","static/chunks/672e3da3ad26005b.js","static/chunks/876edf7bbd901942.js"],"[project]/src/presentation/web/app/tools/page":["static/chunks/128d484880f21a07.js","static/chunks/a1ddf1f9b1435434.js","static/chunks/8f122c3ac2102300.js","static/chunks/7acc79e599df9890.js","static/chunks/672e3da3ad26005b.js","static/chunks/876edf7bbd901942.js","static/chunks/51454a23ce051ec9.js","static/chunks/53584b9a62aea2dc.js"]}}
2
+ globalThis.__RSC_MANIFEST["/tools/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":40799,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":40799,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":73006,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":73006,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":67804,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js":{"id":67804,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":50122,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":50122,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":19292,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":19292,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":30088,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":30088,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":66658,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":66658,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/app/global-error.tsx <module evaluation>":{"id":98295,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/app/global-error.tsx":{"id":98295,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx <module evaluation>":{"id":87292,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx":{"id":87292,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx <module evaluation>":{"id":25251,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx":{"id":25251,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx <module evaluation>":{"id":75921,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx":{"id":75921,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/features/tools/tools-page-client.tsx <module evaluation>":{"id":44412,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js","/_next/static/chunks/51454a23ce051ec9.js","/_next/static/chunks/f5080e57de19b082.js"],"async":false},"[project]/src/presentation/web/components/features/tools/tools-page-client.tsx":{"id":44412,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js","/_next/static/chunks/51454a23ce051ec9.js","/_next/static/chunks/f5080e57de19b082.js"],"async":false}},"ssrModuleMapping":{"40799":{"*":{"id":69218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"73006":{"*":{"id":76926,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"67804":{"*":{"id":78378,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"50122":{"*":{"id":18508,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"19292":{"*":{"id":55259,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"30088":{"*":{"id":33028,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"66658":{"*":{"id":42422,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"98295":{"*":{"id":84831,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"87292":{"*":{"id":66560,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"25251":{"*":{"id":58313,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"75921":{"*":{"id":21333,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"44412":{"*":{"id":92163,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/_14fa79b2._.js","server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js","server/chunks/ssr/_f38b49fe._.js","server/chunks/ssr/_8400c8bb._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"40799":{"*":{"id":48035,"name":"*","chunks":[],"async":false}},"73006":{"*":{"id":22994,"name":"*","chunks":[],"async":false}},"67804":{"*":{"id":21809,"name":"*","chunks":[],"async":false}},"50122":{"*":{"id":70251,"name":"*","chunks":[],"async":false}},"19292":{"*":{"id":39498,"name":"*","chunks":[],"async":false}},"30088":{"*":{"id":2021,"name":"*","chunks":[],"async":false}},"66658":{"*":{"id":47390,"name":"*","chunks":[],"async":false}},"98295":{"*":{"id":73449,"name":"*","chunks":[],"async":false}},"87292":{"*":{"id":34168,"name":"*","chunks":[],"async":false}},"25251":{"*":{"id":11900,"name":"*","chunks":[],"async":false}},"75921":{"*":{"id":59259,"name":"*","chunks":[],"async":false}},"44412":{"*":{"id":50642,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/presentation/web/app/global-error":[],"[project]/src/presentation/web/app/layout":[{"path":"static/chunks/42bd17823c7f41a1.css","inlined":false}],"[project]/src/presentation/web/app/tools/page":[{"path":"static/chunks/42bd17823c7f41a1.css","inlined":false}]},"entryJSFiles":{"[project]/src/presentation/web/app/global-error":["static/chunks/356ebc89a2a97627.js","static/chunks/fe70e73feb07bcfd.js"],"[project]/src/presentation/web/app/layout":["static/chunks/405af1f1720627f7.js","static/chunks/52b56677c842e45f.js","static/chunks/8f122c3ac2102300.js","static/chunks/7acc79e599df9890.js","static/chunks/672e3da3ad26005b.js","static/chunks/876edf7bbd901942.js"],"[project]/src/presentation/web/app/tools/page":["static/chunks/405af1f1720627f7.js","static/chunks/52b56677c842e45f.js","static/chunks/8f122c3ac2102300.js","static/chunks/7acc79e599df9890.js","static/chunks/672e3da3ad26005b.js","static/chunks/876edf7bbd901942.js","static/chunks/51454a23ce051ec9.js","static/chunks/f5080e57de19b082.js"]}}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "node": {
3
- "003ab7ab8b2fe8e9604357d94d2ff1d683128d516c": {
3
+ "00ce7f7741492d4464c2dc37a0807f30869795b12f": {
4
4
  "workers": {
5
5
  "app/version/page": {
6
6
  "moduleId": 86139,
@@ -1,2 +1,2 @@
1
1
  globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
2
- globalThis.__RSC_MANIFEST["/version/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":40799,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":40799,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":73006,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":73006,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":67804,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js":{"id":67804,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":50122,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":50122,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":19292,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":19292,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":30088,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":30088,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":66658,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":66658,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/app/global-error.tsx <module evaluation>":{"id":98295,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/app/global-error.tsx":{"id":98295,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx <module evaluation>":{"id":87292,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx":{"id":87292,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx <module evaluation>":{"id":25251,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx":{"id":25251,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx <module evaluation>":{"id":75921,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx":{"id":75921,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/features/version/version-page-client.tsx <module evaluation>":{"id":1699,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js","/_next/static/chunks/55c131b6fc504375.js"],"async":false},"[project]/src/presentation/web/components/features/version/version-page-client.tsx":{"id":1699,"name":"*","chunks":["/_next/static/chunks/128d484880f21a07.js","/_next/static/chunks/a1ddf1f9b1435434.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js","/_next/static/chunks/55c131b6fc504375.js"],"async":false}},"ssrModuleMapping":{"40799":{"*":{"id":69218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"73006":{"*":{"id":76926,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"67804":{"*":{"id":78378,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"50122":{"*":{"id":18508,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"19292":{"*":{"id":55259,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"30088":{"*":{"id":33028,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"66658":{"*":{"id":42422,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"98295":{"*":{"id":84831,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"87292":{"*":{"id":66560,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"25251":{"*":{"id":58313,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"75921":{"*":{"id":21333,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"1699":{"*":{"id":86259,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/src_presentation_web_components_5124369c._.js","server/chunks/ssr/_f38b49fe._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"40799":{"*":{"id":48035,"name":"*","chunks":[],"async":false}},"73006":{"*":{"id":22994,"name":"*","chunks":[],"async":false}},"67804":{"*":{"id":21809,"name":"*","chunks":[],"async":false}},"50122":{"*":{"id":70251,"name":"*","chunks":[],"async":false}},"19292":{"*":{"id":39498,"name":"*","chunks":[],"async":false}},"30088":{"*":{"id":2021,"name":"*","chunks":[],"async":false}},"66658":{"*":{"id":47390,"name":"*","chunks":[],"async":false}},"98295":{"*":{"id":73449,"name":"*","chunks":[],"async":false}},"87292":{"*":{"id":34168,"name":"*","chunks":[],"async":false}},"25251":{"*":{"id":11900,"name":"*","chunks":[],"async":false}},"75921":{"*":{"id":59259,"name":"*","chunks":[],"async":false}},"1699":{"*":{"id":93933,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/presentation/web/app/global-error":[],"[project]/src/presentation/web/app/layout":[{"path":"static/chunks/42bd17823c7f41a1.css","inlined":false}],"[project]/src/presentation/web/app/version/page":[{"path":"static/chunks/42bd17823c7f41a1.css","inlined":false}]},"entryJSFiles":{"[project]/src/presentation/web/app/global-error":["static/chunks/356ebc89a2a97627.js","static/chunks/fe70e73feb07bcfd.js"],"[project]/src/presentation/web/app/layout":["static/chunks/128d484880f21a07.js","static/chunks/a1ddf1f9b1435434.js","static/chunks/8f122c3ac2102300.js","static/chunks/7acc79e599df9890.js","static/chunks/672e3da3ad26005b.js","static/chunks/876edf7bbd901942.js"],"[project]/src/presentation/web/app/version/page":["static/chunks/128d484880f21a07.js","static/chunks/a1ddf1f9b1435434.js","static/chunks/8f122c3ac2102300.js","static/chunks/7acc79e599df9890.js","static/chunks/672e3da3ad26005b.js","static/chunks/876edf7bbd901942.js","static/chunks/55c131b6fc504375.js"]}}
2
+ globalThis.__RSC_MANIFEST["/version/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":40799,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":40799,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":73006,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":73006,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":67804,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js":{"id":67804,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":50122,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":50122,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":19292,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":19292,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":30088,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":30088,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":66658,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":66658,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/app/global-error.tsx <module evaluation>":{"id":98295,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/app/global-error.tsx":{"id":98295,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx <module evaluation>":{"id":87292,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx":{"id":87292,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx <module evaluation>":{"id":25251,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx":{"id":25251,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx <module evaluation>":{"id":75921,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx":{"id":75921,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js"],"async":false},"[project]/src/presentation/web/components/features/version/version-page-client.tsx <module evaluation>":{"id":1699,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js","/_next/static/chunks/55c131b6fc504375.js"],"async":false},"[project]/src/presentation/web/components/features/version/version-page-client.tsx":{"id":1699,"name":"*","chunks":["/_next/static/chunks/405af1f1720627f7.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/8f122c3ac2102300.js","/_next/static/chunks/7acc79e599df9890.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/876edf7bbd901942.js","/_next/static/chunks/55c131b6fc504375.js"],"async":false}},"ssrModuleMapping":{"40799":{"*":{"id":69218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"73006":{"*":{"id":76926,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"67804":{"*":{"id":78378,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"50122":{"*":{"id":18508,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"19292":{"*":{"id":55259,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"30088":{"*":{"id":33028,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"66658":{"*":{"id":42422,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"98295":{"*":{"id":84831,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__ad2b2a3c._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"87292":{"*":{"id":66560,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"25251":{"*":{"id":58313,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"75921":{"*":{"id":21333,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"1699":{"*":{"id":86259,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__bff2deea._.js","server/chunks/ssr/_0bd0fafb._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_9d11d025._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/src_presentation_web_components_5124369c._.js","server/chunks/ssr/_f38b49fe._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"40799":{"*":{"id":48035,"name":"*","chunks":[],"async":false}},"73006":{"*":{"id":22994,"name":"*","chunks":[],"async":false}},"67804":{"*":{"id":21809,"name":"*","chunks":[],"async":false}},"50122":{"*":{"id":70251,"name":"*","chunks":[],"async":false}},"19292":{"*":{"id":39498,"name":"*","chunks":[],"async":false}},"30088":{"*":{"id":2021,"name":"*","chunks":[],"async":false}},"66658":{"*":{"id":47390,"name":"*","chunks":[],"async":false}},"98295":{"*":{"id":73449,"name":"*","chunks":[],"async":false}},"87292":{"*":{"id":34168,"name":"*","chunks":[],"async":false}},"25251":{"*":{"id":11900,"name":"*","chunks":[],"async":false}},"75921":{"*":{"id":59259,"name":"*","chunks":[],"async":false}},"1699":{"*":{"id":93933,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/presentation/web/app/global-error":[],"[project]/src/presentation/web/app/layout":[{"path":"static/chunks/42bd17823c7f41a1.css","inlined":false}],"[project]/src/presentation/web/app/version/page":[{"path":"static/chunks/42bd17823c7f41a1.css","inlined":false}]},"entryJSFiles":{"[project]/src/presentation/web/app/global-error":["static/chunks/356ebc89a2a97627.js","static/chunks/fe70e73feb07bcfd.js"],"[project]/src/presentation/web/app/layout":["static/chunks/405af1f1720627f7.js","static/chunks/52b56677c842e45f.js","static/chunks/8f122c3ac2102300.js","static/chunks/7acc79e599df9890.js","static/chunks/672e3da3ad26005b.js","static/chunks/876edf7bbd901942.js"],"[project]/src/presentation/web/app/version/page":["static/chunks/405af1f1720627f7.js","static/chunks/52b56677c842e45f.js","static/chunks/8f122c3ac2102300.js","static/chunks/7acc79e599df9890.js","static/chunks/672e3da3ad26005b.js","static/chunks/876edf7bbd901942.js","static/chunks/55c131b6fc504375.js"]}}
@@ -1,3 +1,3 @@
1
- module.exports=[93995,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(69845),e=a.i(52313),f=a.i(25674);let g=(0,f.createServerReference)("406a71aa1cde84a68dcaf43791f23be377b91c449a",f.callServer,void 0,f.findSourceMapURL,"createFeature");var h=a.i(87148),h=h,i=a.i(25700);let j=(0,i.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var k=a.i(42642),k=k;let l=(0,i.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var m=a.i(40617),m=m,n=a.i(26915),n=n;let o=(0,i.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var p=a.i(51969),p=p,q=a.i(85536),r=a.i(19884);a.i(78454);var s=a.i(24255),t=a.i(2824),u=a.i(18948),v=a.i(90920);function w({className:a,...c}){return(0,b.jsx)("textarea",{"data-slot":"textarea",className:(0,q.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...c})}var x=a.i(58860),y=a.i(58339),z=a.i(80646),A=a.i(96867),B=a.i(82934),C=a.i(96213),D=a.i(61781);async function E(){let a=await fetch("/api/dialog/pick-files",{method:"POST"});if(!a.ok)throw Error("Failed to open file dialog");let b=await a.json();return b.cancelled?null:b.files}let F=[{id:"allowPrd",label:"PRD",description:"Auto-approve requirements move to planning."},{id:"allowPlan",label:"Plan",description:"Auto-approve planning move to implementation."},{id:"allowMerge",label:"Merge",description:"Auto-approve merge move to Done."}],G={allowPrd:!1,allowPlan:!1,allowMerge:!1};function H({open:a,onClose:d,onSubmit:e,repositoryPath:f,isSubmitting:g=!1,workflowDefaults:i,features:j,initialParentId:k,currentAgentType:l,currentModel:m}){let n=(0,r.useSoundAction)("create"),o=i?.approvalGates??G,p=i?.push??!1,v=i?.openPr??!1,[z,H]=(0,c.useState)(""),[K,L]=(0,c.useState)([]),[M,N]=(0,c.useState)({...o}),[O,P]=(0,c.useState)(p),[Q,R]=(0,c.useState)(v),[S,T]=(0,c.useState)(void 0),[U,V]=(0,c.useState)(!1),[W,X]=(0,c.useState)(void 0),[Y,Z]=(0,c.useState)(void 0);(0,c.useEffect)(()=>{i&&(N({...i.approvalGates}),P(i.push),R(i.openPr))},[i]),(0,c.useEffect)(()=>{a&&k&&T(k)},[a,k]);let $=(0,c.useCallback)(()=>{H(""),L([]),N({...o}),P(p),R(v),T(void 0),V(!1),X(void 0),Z(void 0)},[o,p,v]),_=""!==z.trim()||K.length>0,{attemptClose:aa}=(0,C.useGuardedDrawerClose)({open:a,isDirty:_,onClose:d,onReset:$}),ab=(0,c.useCallback)(a=>{a.preventDefault(),z.trim()&&(n.play(),e({description:z.trim(),attachments:K,repositoryPath:f,approvalGates:{allowPrd:M.allowPrd??!1,allowPlan:M.allowPlan??!1,allowMerge:M.allowMerge??!1},push:O||Q,openPr:Q,fast:U,...W?{agentType:W}:{},...Y?{model:Y}:{},...S?{parentId:S}:{}}),$())},[z,K,M,f,e,O,Q,U,W,Y,S,n,$]),ac=(0,c.useCallback)(async()=>{try{let a=await E();a&&L(b=>[...b,...a])}catch{}},[]),ad=(0,c.useCallback)(a=>{L(b=>b.filter(b=>b.path!==a))},[]),ae=j&&j.length>0;return(0,b.jsx)(s.BaseDrawer,{open:a,onClose:aa,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)(t.DrawerTitle,{children:"NEW FEATURE"})]}),g?(0,b.jsx)(t.DrawerDescription,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(y.Badge,{variant:"secondary",children:"Creating..."})})}):null]}),footer:(0,b.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,b.jsx)(u.Button,{variant:"outline",onClick:aa,disabled:g,children:"Cancel"}),(0,b.jsx)(u.Button,{type:"submit",form:"create-feature-form",disabled:!z.trim()||g,children:g?"Creating...":"+ Create Feature"})]}),children:(0,b.jsx)("div",{className:"overflow-y-auto p-4",children:(0,b.jsx)(B.TooltipProvider,{delayDuration:400,children:(0,b.jsxs)("form",{id:"create-feature-form",onSubmit:ab,className:"flex flex-col gap-4",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(x.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"DESCRIBE YOUR FEATURE"}),(0,b.jsxs)("div",{className:"border-input focus-within:ring-ring/50 focus-within:border-ring overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow] focus-within:ring-[3px]",children:[(0,b.jsx)(w,{id:"feature-description",placeholder:"e.g. Add GitHub OAuth login with callback handling and token refresh...",value:z,onChange:a=>H(a.target.value),rows:7,required:!0,disabled:g,className:"field-sizing-fixed min-h-42! resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,b.jsx)(D.AgentModelPicker,{initialAgentType:W??l??"claude-code",initialModel:Y??m??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(a,b)=>{X(a),Z(b)},disabled:g}),(0,b.jsxs)(B.Tooltip,{children:[(0,b.jsx)(B.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(A.Switch,{id:"fast-mode",checked:U,onCheckedChange:V,disabled:g}),(0,b.jsx)(x.Label,{htmlFor:"fast-mode",className:"cursor-pointer text-sm font-medium",children:"Fast Mode"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Skip SDLC phases and implement directly from your prompt."})]})]})]})]}),ae&&void 0!==k?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(x.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"PARENT FEATURE"}),(0,b.jsx)(I,{features:j,value:S,onChange:T,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)(B.Tooltip,{children:[(0,b.jsx)(B.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:"APPROVE"})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Auto-approve phase transitions without manual review."})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:F.map(a=>(0,b.jsxs)(B.Tooltip,{children:[(0,b.jsx)(B.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(A.Switch,{id:`approve-${a.id}`,size:"sm",checked:M[a.id]??!1,onCheckedChange:b=>N(c=>({...c,[a.id]:b})),disabled:g||U&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,b.jsx)(x.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:U&&("allowPrd"===a.id||"allowPlan"===a.id)?"Skipped in Fast Mode":a.description})]},a.id))}),(0,b.jsxs)(B.Tooltip,{children:[(0,b.jsx)(B.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:()=>{let a=F.every(a=>M[a.id]),b={};for(let c of F)b[c.id]=!a;N(b)},disabled:g,className:(0,q.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",F.every(a=>M[a.id])&&"text-primary"),children:"All"})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Toggle all approval gates"})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 text-xs font-semibold tracking-wider",children:"GIT"}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(B.Tooltip,{children:[(0,b.jsx)(B.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(A.Switch,{id:"push",size:"sm",checked:O||Q,onCheckedChange:a=>{P(a),!a&&Q&&R(!1)},disabled:g}),(0,b.jsx)(x.Label,{htmlFor:"push",className:"cursor-pointer text-xs font-medium",children:"Push"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Push branch to remote after implementation."})]}),(0,b.jsxs)(B.Tooltip,{children:[(0,b.jsx)(B.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(A.Switch,{id:"open-pr",size:"sm",checked:Q,onCheckedChange:R,disabled:g}),(0,b.jsx)(x.Label,{htmlFor:"open-pr",className:"cursor-pointer text-xs font-medium",children:"PR"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Open a pull request after pushing."})]})]})]})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)(x.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:["ATTACHMENTS",K.length>0&&(0,b.jsxs)("span",{className:"text-muted-foreground/60 ml-1.5",children:["(",K.length,")"]})]}),(0,b.jsxs)(u.Button,{type:"button",variant:"outline",size:"xs",onClick:ac,disabled:g,children:[(0,b.jsx)(h.default,{className:"size-3"}),"Add Files"]})]}),K.length>0&&(0,b.jsx)("div",{className:"flex flex-col gap-2",children:K.map(a=>(0,b.jsx)(J,{file:a,onRemove:()=>ad(a.path),disabled:g},a.path))})]})]})})})})}function I({features:a,value:d,onChange:e,disabled:f}){let[g,h]=(0,c.useState)(!1),[i,j]=(0,c.useState)(""),k=(0,c.useRef)(null),l=a.find(a=>a.id===d),m=i.trim()?a.filter(a=>a.name.toLowerCase().includes(i.toLowerCase())||a.id.toLowerCase().includes(i.toLowerCase())):a,n=(0,c.useCallback)(a=>{e(a),h(!1),j("")},[e]);return(0,c.useEffect)(()=>{g?setTimeout(()=>k.current?.focus(),0):j("")},[g]),(0,b.jsxs)(z.Popover,{open:g,onOpenChange:h,children:[(0,b.jsx)(z.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":g,"aria-label":"Parent Feature",disabled:f,"data-testid":"parent-feature-combobox",className:(0,q.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",!l&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:l?`${l.name} (${l.id.slice(0,8)})`:"Select parent feature..."}),(0,b.jsx)(o,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(z.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)(v.Input,{ref:k,placeholder:"Search features...",value:i,onChange:a=>j(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:()=>n(void 0),className:(0,q.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)(p.default,{className:(0,q.cn)("h-4 w-4 shrink-0",void 0!==d&&"invisible")}),(0,b.jsx)("span",{className:"text-muted-foreground italic",children:"No parent"})]}),0===m.length&&i?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No features found."}):m.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.id,onClick:()=>n(a.id),className:(0,q.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)(p.default,{className:(0,q.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 J({file:a,onRemove:c,disabled:d}){var e,f,g;let h,i=(h=(e=a.name).lastIndexOf("."))>=0?e.slice(h).toLowerCase():"",o=(f=i,K.has(f)?l:".pdf"===f?k.default:L.has(f)?m.default:j),p=".pdf"===(g=i)?"bg-red-50 text-red-600":K.has(g)?"bg-blue-50 text-blue-600":L.has(g)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600";return(0,b.jsxs)("div",{className:"flex items-center gap-3 rounded-md border p-2",children:[(0,b.jsx)("div",{className:(0,q.cn)("flex h-8 w-8 shrink-0 items-center justify-center rounded",p),children:(0,b.jsx)(o,{className:"h-4 w-4"})}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:a.name}),(0,b.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:a.path}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:function(a){if(0===a)return"0 B";let b=Math.floor(Math.log(a)/Math.log(1024));return`${(a/Math.pow(1024,b)).toFixed(+(0!==b))} ${["B","KB","MB","GB"][b]}`}(a.size)})]}),(0,b.jsx)(u.Button,{type:"button",variant:"ghost",size:"icon-xs",onClick:c,disabled:d,"aria-label":`Remove ${a.name}`,children:(0,b.jsx)(n.default,{className:"h-3 w-3"})})]})}let K=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),L=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function M({repositoryPath:a,initialParentId:f,features:h,workflowDefaults:i,currentAgentType:j,currentModel:k}){let l=(0,d.useRouter)(),[m,n]=(0,c.useState)(!1),o=(0,d.usePathname)().startsWith("/create"),p=!m&&o;(0,c.useEffect)(()=>{!o&&m&&n(!1)},[o,m]);let q=(0,c.useCallback)(()=>{l.push("/")},[l]),r=(0,c.useCallback)(a=>{n(!0),l.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"),n(!1)})},[l]);return(0,b.jsx)(H,{open:p,onClose:q,onSubmit:r,repositoryPath:a,features:h,workflowDefaults:i,initialParentId:f,isSubmitting:m,currentAgentType:j,currentModel:k})}a.s(["CreateDrawerClient",()=>M],93995)}];
1
+ module.exports=[93995,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(69845),e=a.i(52313),f=a.i(25674);let g=(0,f.createServerReference)("4025b9ce5e3097c5eec4b8347abd9158f9e80a1eb3",f.callServer,void 0,f.findSourceMapURL,"createFeature");var h=a.i(87148),h=h,i=a.i(25700);let j=(0,i.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var k=a.i(42642),k=k;let l=(0,i.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var m=a.i(40617),m=m,n=a.i(26915),n=n;let o=(0,i.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var p=a.i(51969),p=p,q=a.i(85536),r=a.i(19884);a.i(78454);var s=a.i(24255),t=a.i(2824),u=a.i(18948),v=a.i(90920);function w({className:a,...c}){return(0,b.jsx)("textarea",{"data-slot":"textarea",className:(0,q.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...c})}var x=a.i(58860),y=a.i(58339),z=a.i(80646),A=a.i(96867),B=a.i(82934),C=a.i(96213),D=a.i(61781);async function E(){let a=await fetch("/api/dialog/pick-files",{method:"POST"});if(!a.ok)throw Error("Failed to open file dialog");let b=await a.json();return b.cancelled?null:b.files}let F=[{id:"allowPrd",label:"PRD",description:"Auto-approve requirements move to planning."},{id:"allowPlan",label:"Plan",description:"Auto-approve planning move to implementation."},{id:"allowMerge",label:"Merge",description:"Auto-approve merge move to Done."}],G={allowPrd:!1,allowPlan:!1,allowMerge:!1};function H({open:a,onClose:d,onSubmit:e,repositoryPath:f,isSubmitting:g=!1,workflowDefaults:i,features:j,initialParentId:k,currentAgentType:l,currentModel:m}){let n=(0,r.useSoundAction)("create"),o=i?.approvalGates??G,p=i?.push??!1,v=i?.openPr??!1,[z,H]=(0,c.useState)(""),[K,L]=(0,c.useState)([]),[M,N]=(0,c.useState)({...o}),[O,P]=(0,c.useState)(p),[Q,R]=(0,c.useState)(v),[S,T]=(0,c.useState)(void 0),[U,V]=(0,c.useState)(!1),[W,X]=(0,c.useState)(void 0),[Y,Z]=(0,c.useState)(void 0);(0,c.useEffect)(()=>{i&&(N({...i.approvalGates}),P(i.push),R(i.openPr))},[i]),(0,c.useEffect)(()=>{a&&k&&T(k)},[a,k]);let $=(0,c.useCallback)(()=>{H(""),L([]),N({...o}),P(p),R(v),T(void 0),V(!1),X(void 0),Z(void 0)},[o,p,v]),_=""!==z.trim()||K.length>0,{attemptClose:aa}=(0,C.useGuardedDrawerClose)({open:a,isDirty:_,onClose:d,onReset:$}),ab=(0,c.useCallback)(a=>{a.preventDefault(),z.trim()&&(n.play(),e({description:z.trim(),attachments:K,repositoryPath:f,approvalGates:{allowPrd:M.allowPrd??!1,allowPlan:M.allowPlan??!1,allowMerge:M.allowMerge??!1},push:O||Q,openPr:Q,fast:U,...W?{agentType:W}:{},...Y?{model:Y}:{},...S?{parentId:S}:{}}),$())},[z,K,M,f,e,O,Q,U,W,Y,S,n,$]),ac=(0,c.useCallback)(async()=>{try{let a=await E();a&&L(b=>[...b,...a])}catch{}},[]),ad=(0,c.useCallback)(a=>{L(b=>b.filter(b=>b.path!==a))},[]),ae=j&&j.length>0;return(0,b.jsx)(s.BaseDrawer,{open:a,onClose:aa,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)(t.DrawerTitle,{children:"NEW FEATURE"})]}),g?(0,b.jsx)(t.DrawerDescription,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(y.Badge,{variant:"secondary",children:"Creating..."})})}):null]}),footer:(0,b.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,b.jsx)(u.Button,{variant:"outline",onClick:aa,disabled:g,children:"Cancel"}),(0,b.jsx)(u.Button,{type:"submit",form:"create-feature-form",disabled:!z.trim()||g,children:g?"Creating...":"+ Create Feature"})]}),children:(0,b.jsx)("div",{className:"overflow-y-auto p-4",children:(0,b.jsx)(B.TooltipProvider,{delayDuration:400,children:(0,b.jsxs)("form",{id:"create-feature-form",onSubmit:ab,className:"flex flex-col gap-4",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(x.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"DESCRIBE YOUR FEATURE"}),(0,b.jsxs)("div",{className:"border-input focus-within:ring-ring/50 focus-within:border-ring overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow] focus-within:ring-[3px]",children:[(0,b.jsx)(w,{id:"feature-description",placeholder:"e.g. Add GitHub OAuth login with callback handling and token refresh...",value:z,onChange:a=>H(a.target.value),rows:7,required:!0,disabled:g,className:"field-sizing-fixed min-h-42! resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,b.jsx)(D.AgentModelPicker,{initialAgentType:W??l??"claude-code",initialModel:Y??m??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(a,b)=>{X(a),Z(b)},disabled:g}),(0,b.jsxs)(B.Tooltip,{children:[(0,b.jsx)(B.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"ml-auto flex cursor-pointer items-center gap-2",children:[(0,b.jsx)(A.Switch,{id:"fast-mode",checked:U,onCheckedChange:V,disabled:g}),(0,b.jsx)(x.Label,{htmlFor:"fast-mode",className:"cursor-pointer text-sm font-medium",children:"Fast Mode"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Skip SDLC phases and implement directly from your prompt."})]})]})]})]}),ae&&void 0!==k?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(x.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"PARENT FEATURE"}),(0,b.jsx)(I,{features:j,value:S,onChange:T,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)(B.Tooltip,{children:[(0,b.jsx)(B.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider",children:"APPROVE"})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Auto-approve phase transitions without manual review."})]}),(0,b.jsx)("div",{className:"flex flex-1 items-center gap-4",children:F.map(a=>(0,b.jsxs)(B.Tooltip,{children:[(0,b.jsx)(B.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(A.Switch,{id:`approve-${a.id}`,size:"sm",checked:M[a.id]??!1,onCheckedChange:b=>N(c=>({...c,[a.id]:b})),disabled:g||U&&("allowPrd"===a.id||"allowPlan"===a.id)}),(0,b.jsx)(x.Label,{htmlFor:`approve-${a.id}`,className:"cursor-pointer text-xs font-medium",children:a.label})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:U&&("allowPrd"===a.id||"allowPlan"===a.id)?"Skipped in Fast Mode":a.description})]},a.id))}),(0,b.jsxs)(B.Tooltip,{children:[(0,b.jsx)(B.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:()=>{let a=F.every(a=>M[a.id]),b={};for(let c of F)b[c.id]=!a;N(b)},disabled:g,className:(0,q.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",F.every(a=>M[a.id])&&"text-primary"),children:"All"})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Toggle all approval gates"})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-center gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 text-xs font-semibold tracking-wider",children:"GIT"}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(B.Tooltip,{children:[(0,b.jsx)(B.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(A.Switch,{id:"push",size:"sm",checked:O||Q,onCheckedChange:a=>{P(a),!a&&Q&&R(!1)},disabled:g}),(0,b.jsx)(x.Label,{htmlFor:"push",className:"cursor-pointer text-xs font-medium",children:"Push"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Push branch to remote after implementation."})]}),(0,b.jsxs)(B.Tooltip,{children:[(0,b.jsx)(B.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)("div",{className:"flex cursor-pointer items-center gap-1.5",children:[(0,b.jsx)(A.Switch,{id:"open-pr",size:"sm",checked:Q,onCheckedChange:R,disabled:g}),(0,b.jsx)(x.Label,{htmlFor:"open-pr",className:"cursor-pointer text-xs font-medium",children:"PR"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Open a pull request after pushing."})]})]})]})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)(x.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:["ATTACHMENTS",K.length>0&&(0,b.jsxs)("span",{className:"text-muted-foreground/60 ml-1.5",children:["(",K.length,")"]})]}),(0,b.jsxs)(u.Button,{type:"button",variant:"outline",size:"xs",onClick:ac,disabled:g,children:[(0,b.jsx)(h.default,{className:"size-3"}),"Add Files"]})]}),K.length>0&&(0,b.jsx)("div",{className:"flex flex-col gap-2",children:K.map(a=>(0,b.jsx)(J,{file:a,onRemove:()=>ad(a.path),disabled:g},a.path))})]})]})})})})}function I({features:a,value:d,onChange:e,disabled:f}){let[g,h]=(0,c.useState)(!1),[i,j]=(0,c.useState)(""),k=(0,c.useRef)(null),l=a.find(a=>a.id===d),m=i.trim()?a.filter(a=>a.name.toLowerCase().includes(i.toLowerCase())||a.id.toLowerCase().includes(i.toLowerCase())):a,n=(0,c.useCallback)(a=>{e(a),h(!1),j("")},[e]);return(0,c.useEffect)(()=>{g?setTimeout(()=>k.current?.focus(),0):j("")},[g]),(0,b.jsxs)(z.Popover,{open:g,onOpenChange:h,children:[(0,b.jsx)(z.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":g,"aria-label":"Parent Feature",disabled:f,"data-testid":"parent-feature-combobox",className:(0,q.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",!l&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:l?`${l.name} (${l.id.slice(0,8)})`:"Select parent feature..."}),(0,b.jsx)(o,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(z.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)(v.Input,{ref:k,placeholder:"Search features...",value:i,onChange:a=>j(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:()=>n(void 0),className:(0,q.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)(p.default,{className:(0,q.cn)("h-4 w-4 shrink-0",void 0!==d&&"invisible")}),(0,b.jsx)("span",{className:"text-muted-foreground italic",children:"No parent"})]}),0===m.length&&i?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No features found."}):m.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.id,onClick:()=>n(a.id),className:(0,q.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)(p.default,{className:(0,q.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 J({file:a,onRemove:c,disabled:d}){var e,f,g;let h,i=(h=(e=a.name).lastIndexOf("."))>=0?e.slice(h).toLowerCase():"",o=(f=i,K.has(f)?l:".pdf"===f?k.default:L.has(f)?m.default:j),p=".pdf"===(g=i)?"bg-red-50 text-red-600":K.has(g)?"bg-blue-50 text-blue-600":L.has(g)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600";return(0,b.jsxs)("div",{className:"flex items-center gap-3 rounded-md border p-2",children:[(0,b.jsx)("div",{className:(0,q.cn)("flex h-8 w-8 shrink-0 items-center justify-center rounded",p),children:(0,b.jsx)(o,{className:"h-4 w-4"})}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:a.name}),(0,b.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:a.path}),(0,b.jsx)("span",{className:"text-muted-foreground text-xs",children:function(a){if(0===a)return"0 B";let b=Math.floor(Math.log(a)/Math.log(1024));return`${(a/Math.pow(1024,b)).toFixed(+(0!==b))} ${["B","KB","MB","GB"][b]}`}(a.size)})]}),(0,b.jsx)(u.Button,{type:"button",variant:"ghost",size:"icon-xs",onClick:c,disabled:d,"aria-label":`Remove ${a.name}`,children:(0,b.jsx)(n.default,{className:"h-3 w-3"})})]})}let K=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),L=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function M({repositoryPath:a,initialParentId:f,features:h,workflowDefaults:i,currentAgentType:j,currentModel:k}){let l=(0,d.useRouter)(),[m,n]=(0,c.useState)(!1),o=(0,d.usePathname)().startsWith("/create"),p=!m&&o;(0,c.useEffect)(()=>{!o&&m&&n(!1)},[o,m]);let q=(0,c.useCallback)(()=>{l.push("/")},[l]),r=(0,c.useCallback)(a=>{n(!0),l.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"),n(!1)})},[l]);return(0,b.jsx)(H,{open:p,onClose:q,onSubmit:r,repositoryPath:a,features:h,workflowDefaults:i,initialParentId:f,isSubmitting:m,currentAgentType:j,currentModel:k})}a.s(["CreateDrawerClient",()=>M],93995)}];
2
2
 
3
3
  //# sourceMappingURL=744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/create-drawer-client.tsx","../../../../../../../src/presentation/web/app/actions/data%3A84cad4%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.tsx","../../../../../../../src/presentation/web/components/ui/textarea.tsx","../../../../../../../src/presentation/web/components/common/feature-create-drawer/pick-files.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/chevrons-up-down.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/image.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/file.ts"],"sourcesContent":["'use client';\n\nimport { useState, useCallback, useEffect } from 'react';\nimport { useRouter, usePathname } from 'next/navigation';\nimport { toast } from 'sonner';\nimport { createFeature } from '@/app/actions/create-feature';\nimport { FeatureCreateDrawer } from '@/components/common/feature-create-drawer';\nimport type { FeatureCreatePayload } from '@/components/common/feature-create-drawer';\nimport type { ParentFeatureOption } from '@/components/common/feature-create-drawer/feature-create-drawer';\nimport type { WorkflowDefaults } from '@/app/actions/get-workflow-defaults';\n\nexport interface CreateDrawerClientProps {\n repositoryPath: string;\n initialParentId?: string;\n features: ParentFeatureOption[];\n workflowDefaults?: WorkflowDefaults;\n currentAgentType?: string;\n currentModel?: string;\n}\n\nexport function CreateDrawerClient({\n repositoryPath,\n initialParentId,\n features,\n workflowDefaults,\n currentAgentType,\n currentModel,\n}: CreateDrawerClientProps) {\n const router = useRouter();\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n // Derive open state from the URL. Next.js parallel routes preserve slot\n // content during soft navigation, so this component is NOT unmounted when\n // navigating to `/`. We watch the pathname and let Vaul handle the close\n // animation when the path no longer matches the create route.\n // When submitting, force the drawer closed immediately — router.push('/')\n // is async and the pathname may not update before the next render.\n const pathname = usePathname();\n const isOnCreateRoute = pathname.startsWith('/create');\n const isOpen = !isSubmitting && isOnCreateRoute;\n\n // Reset isSubmitting once the route has actually changed away from /create,\n // so the drawer can reopen on future visits. Without this, isSubmitting\n // would stay true forever since parallel routes preserve component state.\n useEffect(() => {\n if (!isOnCreateRoute && isSubmitting) {\n setIsSubmitting(false);\n }\n }, [isOnCreateRoute, isSubmitting]);\n\n const onClose = useCallback(() => {\n router.push('/');\n }, [router]);\n\n const onSubmit = useCallback(\n (data: FeatureCreatePayload) => {\n setIsSubmitting(true);\n\n // Close the drawer immediately for responsive UI\n router.push('/');\n\n // Server action Phase 1 returns fast with real feature ID (DB record created)\n // Phase 2 (metadata, worktree, agent) runs in background on server\n createFeature(data)\n .then((result) => {\n if (result.error) {\n toast.error(result.error);\n return;\n }\n // Dispatch event with real feature ID so control center adds it to featureMap\n window.dispatchEvent(\n new CustomEvent('shep:feature-created', {\n detail: {\n featureId: result.feature!.id,\n name: result.feature!.name,\n description: result.feature!.description,\n repositoryPath: result.feature!.repositoryPath,\n parentId: data.parentId,\n },\n })\n );\n })\n .catch(() => {\n toast.error('Failed to create feature');\n setIsSubmitting(false);\n });\n },\n [router]\n );\n\n return (\n <FeatureCreateDrawer\n open={isOpen}\n onClose={onClose}\n onSubmit={onSubmit}\n repositoryPath={repositoryPath}\n features={features}\n workflowDefaults={workflowDefaults}\n initialParentId={initialParentId}\n isSubmitting={isSubmitting}\n currentAgentType={currentAgentType}\n currentModel={currentModel}\n />\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"406a71aa1cde84a68dcaf43791f23be377b91c449a\":\"createFeature\"},\"src/presentation/web/app/actions/create-feature.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"406a71aa1cde84a68dcaf43791f23be377b91c449a\",callServer,void 0,findSourceMapURL,\"createFeature\");export{$$RSC_SERVER_ACTION_0 as createFeature};","'use client';\n\nimport { useState, useCallback, useEffect, useRef } from 'react';\nimport type { LucideIcon } from 'lucide-react';\nimport {\n PlusIcon,\n FileIcon,\n FileTextIcon,\n ImageIcon,\n CodeIcon,\n Trash2Icon,\n ChevronsUpDown,\n CheckIcon,\n} from 'lucide-react';\nimport { cn } from '@/lib/utils';\nimport { useSoundAction } from '@/hooks/use-sound-action';\nimport { BaseDrawer } from '@/components/common/base-drawer';\nimport { DrawerTitle, DrawerDescription } from '@/components/ui/drawer';\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Textarea } from '@/components/ui/textarea';\nimport { Label } from '@/components/ui/label';\nimport { Badge } from '@/components/ui/badge';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport { Switch } from '@/components/ui/switch';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { useGuardedDrawerClose } from '@/hooks/drawer-close-guard';\nimport type { FileAttachment } from '@shepai/core/infrastructure/services/file-dialog.service';\nimport type { WorkflowDefaults } from '@/app/actions/get-workflow-defaults';\nimport { AgentModelPicker } from '@/components/features/settings/AgentModelPicker';\nimport { pickFiles } from './pick-files';\n\nexport type { FileAttachment } from '@shepai/core/infrastructure/services/file-dialog.service';\n\n/** Minimal feature descriptor for the parent selector. */\nexport interface ParentFeatureOption {\n id: string;\n name: string;\n}\n\nexport interface FeatureCreatePayload {\n description: string;\n attachments: FileAttachment[];\n repositoryPath: string;\n approvalGates: {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge: boolean;\n };\n push: boolean;\n openPr: boolean;\n parentId?: string;\n /** When true, skip SDLC phases and implement directly from the prompt. */\n fast: boolean;\n /** Optional agent type override for this feature run */\n agentType?: string;\n /** Optional model override for this feature run */\n model?: string;\n}\n\nconst AUTO_APPROVE_OPTIONS = [\n { id: 'allowPrd', label: 'PRD', description: 'Auto-approve requirements move to planning.' },\n { id: 'allowPlan', label: 'Plan', description: 'Auto-approve planning move to implementation.' },\n { id: 'allowMerge', label: 'Merge', description: 'Auto-approve merge move to Done.' },\n];\n\nconst EMPTY_GATES: Record<string, boolean> = {\n allowPrd: false,\n allowPlan: false,\n allowMerge: false,\n};\n\nexport interface FeatureCreateDrawerProps {\n open: boolean;\n onClose: () => void;\n onSubmit: (data: FeatureCreatePayload) => void;\n repositoryPath: string;\n isSubmitting?: boolean;\n workflowDefaults?: WorkflowDefaults;\n /** List of existing features available for selection as a parent. */\n features?: ParentFeatureOption[];\n /** Pre-select a parent feature when the drawer opens (e.g. from (+) button on a feature node). */\n initialParentId?: string;\n /** Current global agent type from settings */\n currentAgentType?: string;\n /** Current global model from settings */\n currentModel?: string;\n}\n\nexport function FeatureCreateDrawer({\n open,\n onClose,\n onSubmit,\n repositoryPath,\n isSubmitting = false,\n workflowDefaults,\n features,\n initialParentId,\n currentAgentType,\n currentModel,\n}: FeatureCreateDrawerProps) {\n const createSound = useSoundAction('create');\n const defaultGates = workflowDefaults?.approvalGates ?? EMPTY_GATES;\n const defaultPush = workflowDefaults?.push ?? false;\n const defaultOpenPr = workflowDefaults?.openPr ?? false;\n\n const [description, setDescription] = useState('');\n const [attachments, setAttachments] = useState<FileAttachment[]>([]);\n const [approvalGates, setApprovalGates] = useState<Record<string, boolean>>({ ...defaultGates });\n const [push, setPush] = useState(defaultPush);\n const [openPr, setOpenPr] = useState(defaultOpenPr);\n const [parentId, setParentId] = useState<string | undefined>(undefined);\n const [fast, setFast] = useState(false);\n const [overrideAgent, setOverrideAgent] = useState<string | undefined>(undefined);\n const [overrideModel, setOverrideModel] = useState<string | undefined>(undefined);\n\n // Sync state when workflowDefaults load asynchronously\n useEffect(() => {\n if (workflowDefaults) {\n setApprovalGates({ ...workflowDefaults.approvalGates });\n setPush(workflowDefaults.push);\n setOpenPr(workflowDefaults.openPr);\n }\n }, [workflowDefaults]);\n\n // Pre-select parent when initialParentId changes (e.g. (+) button on feature node)\n useEffect(() => {\n if (open && initialParentId) {\n setParentId(initialParentId);\n }\n }, [open, initialParentId]);\n\n const resetForm = useCallback(() => {\n setDescription('');\n setAttachments([]);\n setApprovalGates({ ...defaultGates });\n setPush(defaultPush);\n setOpenPr(defaultOpenPr);\n setParentId(undefined);\n setFast(false);\n setOverrideAgent(undefined);\n setOverrideModel(undefined);\n }, [defaultGates, defaultPush, defaultOpenPr]);\n\n // Track whether the form has unsaved data\n const isDirty = description.trim() !== '' || attachments.length > 0;\n\n // Shared close guard — shows confirmation when dirty, prevents navigation\n const { attemptClose } = useGuardedDrawerClose({ open, isDirty, onClose, onReset: resetForm });\n\n const handleSubmit = useCallback(\n (e: React.FormEvent) => {\n e.preventDefault();\n if (!description.trim()) return;\n createSound.play();\n onSubmit({\n description: description.trim(),\n attachments,\n repositoryPath,\n approvalGates: {\n allowPrd: approvalGates.allowPrd ?? false,\n allowPlan: approvalGates.allowPlan ?? false,\n allowMerge: approvalGates.allowMerge ?? false,\n },\n push: push || openPr,\n openPr,\n fast,\n ...(overrideAgent ? { agentType: overrideAgent } : {}),\n ...(overrideModel ? { model: overrideModel } : {}),\n ...(parentId ? { parentId } : {}),\n });\n resetForm();\n },\n [\n description,\n attachments,\n approvalGates,\n repositoryPath,\n onSubmit,\n push,\n openPr,\n fast,\n overrideAgent,\n overrideModel,\n parentId,\n createSound,\n resetForm,\n ]\n );\n\n const handleAddFiles = useCallback(async () => {\n try {\n const files = await pickFiles();\n if (files) {\n setAttachments((prev) => [...prev, ...files]);\n }\n } catch {\n // Native dialog failed — silently ignore (user can retry)\n }\n }, []);\n\n const handleRemoveFile = useCallback((path: string) => {\n setAttachments((prev) => prev.filter((f) => f.path !== path));\n }, []);\n\n const hasFeatures = features && features.length > 0;\n\n return (\n <BaseDrawer\n open={open}\n onClose={attemptClose}\n size=\"md\"\n modal={false}\n dismissOnOutsideClick\n data-testid=\"feature-create-drawer\"\n header={\n <>\n <div className=\"flex items-center gap-2\">\n <div className=\"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500\" />\n <DrawerTitle>NEW FEATURE</DrawerTitle>\n </div>\n {isSubmitting ? (\n <DrawerDescription asChild>\n <div>\n <Badge variant=\"secondary\">Creating...</Badge>\n </div>\n </DrawerDescription>\n ) : null}\n </>\n }\n footer={\n <div className=\"flex flex-row justify-end gap-2\">\n <Button variant=\"outline\" onClick={attemptClose} disabled={isSubmitting}>\n Cancel\n </Button>\n <Button\n type=\"submit\"\n form=\"create-feature-form\"\n disabled={!description.trim() || isSubmitting}\n >\n {isSubmitting ? 'Creating...' : '+ Create Feature'}\n </Button>\n </div>\n }\n >\n {/* Form body */}\n <div className=\"overflow-y-auto p-4\">\n <TooltipProvider delayDuration={400}>\n <form id=\"create-feature-form\" onSubmit={handleSubmit} className=\"flex flex-col gap-4\">\n {/* Description + inline controls */}\n <div className=\"flex flex-col gap-1.5\">\n <Label\n htmlFor=\"feature-description\"\n className=\"text-muted-foreground text-xs font-semibold tracking-wider\"\n >\n DESCRIBE YOUR FEATURE\n </Label>\n <div className=\"border-input focus-within:ring-ring/50 focus-within:border-ring overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow] focus-within:ring-[3px]\">\n <Textarea\n id=\"feature-description\"\n placeholder=\"e.g. Add GitHub OAuth login with callback handling and token refresh...\"\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n rows={7}\n required\n disabled={isSubmitting}\n className=\"field-sizing-fixed min-h-42! resize-none rounded-none border-0 shadow-none focus-visible:ring-0\"\n />\n <div className=\"border-input flex items-center gap-3 border-t px-3 py-1.5\">\n <AgentModelPicker\n initialAgentType={overrideAgent ?? currentAgentType ?? 'claude-code'}\n initialModel={overrideModel ?? currentModel ?? 'claude-sonnet-4-6'}\n mode=\"override\"\n onAgentModelChange={(agent, model) => {\n setOverrideAgent(agent);\n setOverrideModel(model);\n }}\n disabled={isSubmitting}\n />\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"ml-auto flex cursor-pointer items-center gap-2\">\n <Switch\n id=\"fast-mode\"\n checked={fast}\n onCheckedChange={setFast}\n disabled={isSubmitting}\n />\n <Label htmlFor=\"fast-mode\" className=\"cursor-pointer text-sm font-medium\">\n Fast Mode\n </Label>\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n Skip SDLC phases and implement directly from your prompt.\n </TooltipContent>\n </Tooltip>\n </div>\n </div>\n </div>\n\n {/* Parent feature selector (only when opened from a feature node) */}\n {hasFeatures && initialParentId !== undefined ? (\n <div className=\"flex flex-col gap-1.5\">\n <Label\n htmlFor=\"parent-feature\"\n className=\"text-muted-foreground text-xs font-semibold tracking-wider\"\n >\n PARENT FEATURE\n </Label>\n <ParentFeatureCombobox\n features={features}\n value={parentId}\n onChange={setParentId}\n disabled={isSubmitting}\n />\n </div>\n ) : null}\n\n {/* Approve + Git — compact switch groups */}\n <div className=\"flex flex-col gap-2\">\n {/* Approve row */}\n <div className=\"border-input flex items-center gap-4 rounded-md border px-3 py-2.5\">\n <Tooltip>\n <TooltipTrigger asChild>\n <span className=\"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider\">\n APPROVE\n </span>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n Auto-approve phase transitions without manual review.\n </TooltipContent>\n </Tooltip>\n <div className=\"flex flex-1 items-center gap-4\">\n {AUTO_APPROVE_OPTIONS.map((opt) => (\n <Tooltip key={opt.id}>\n <TooltipTrigger asChild>\n <div className=\"flex cursor-pointer items-center gap-1.5\">\n <Switch\n id={`approve-${opt.id}`}\n size=\"sm\"\n checked={approvalGates[opt.id] ?? false}\n onCheckedChange={(v) =>\n setApprovalGates((prev) => ({ ...prev, [opt.id]: v }))\n }\n disabled={\n isSubmitting ||\n (fast && (opt.id === 'allowPrd' || opt.id === 'allowPlan'))\n }\n />\n <Label\n htmlFor={`approve-${opt.id}`}\n className=\"cursor-pointer text-xs font-medium\"\n >\n {opt.label}\n </Label>\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n {fast && (opt.id === 'allowPrd' || opt.id === 'allowPlan')\n ? 'Skipped in Fast Mode'\n : opt.description}\n </TooltipContent>\n </Tooltip>\n ))}\n </div>\n {/* Select all shortcut */}\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n onClick={() => {\n const allOn = AUTO_APPROVE_OPTIONS.every((o) => approvalGates[o.id]);\n const next: Record<string, boolean> = {};\n for (const o of AUTO_APPROVE_OPTIONS) next[o.id] = !allOn;\n setApprovalGates(next);\n }}\n disabled={isSubmitting}\n className={cn(\n 'text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors',\n AUTO_APPROVE_OPTIONS.every((o) => approvalGates[o.id]) && 'text-primary'\n )}\n >\n All\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">Toggle all approval gates</TooltipContent>\n </Tooltip>\n </div>\n\n {/* Git row */}\n <div className=\"border-input flex items-center gap-4 rounded-md border px-3 py-2.5\">\n <span className=\"text-muted-foreground w-16 shrink-0 text-xs font-semibold tracking-wider\">\n GIT\n </span>\n <div className=\"flex flex-1 items-center gap-4\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"flex cursor-pointer items-center gap-1.5\">\n <Switch\n id=\"push\"\n size=\"sm\"\n checked={push || openPr}\n onCheckedChange={(v) => {\n setPush(v);\n if (!v && openPr) setOpenPr(false);\n }}\n disabled={isSubmitting}\n />\n <Label htmlFor=\"push\" className=\"cursor-pointer text-xs font-medium\">\n Push\n </Label>\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n Push branch to remote after implementation.\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"flex cursor-pointer items-center gap-1.5\">\n <Switch\n id=\"open-pr\"\n size=\"sm\"\n checked={openPr}\n onCheckedChange={setOpenPr}\n disabled={isSubmitting}\n />\n <Label htmlFor=\"open-pr\" className=\"cursor-pointer text-xs font-medium\">\n PR\n </Label>\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n Open a pull request after pushing.\n </TooltipContent>\n </Tooltip>\n </div>\n </div>\n </div>\n\n {/* Attachments */}\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-muted-foreground text-xs font-semibold tracking-wider\">\n ATTACHMENTS\n {attachments.length > 0 && (\n <span className=\"text-muted-foreground/60 ml-1.5\">({attachments.length})</span>\n )}\n </Label>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"xs\"\n onClick={handleAddFiles}\n disabled={isSubmitting}\n >\n <PlusIcon className=\"size-3\" />\n Add Files\n </Button>\n </div>\n\n {attachments.length > 0 && (\n <div className=\"flex flex-col gap-2\">\n {attachments.map((file) => (\n <AttachmentCard\n key={file.path}\n file={file}\n onRemove={() => handleRemoveFile(file.path)}\n disabled={isSubmitting}\n />\n ))}\n </div>\n )}\n </div>\n </form>\n </TooltipProvider>\n </div>\n </BaseDrawer>\n );\n}\n\n/* ---------------------------------------------------------------------------\n * ParentFeatureCombobox — searchable dropdown for parent feature selection\n * ------------------------------------------------------------------------- */\n\ninterface ParentFeatureComboboxProps {\n features: ParentFeatureOption[];\n value: string | undefined;\n onChange: (id: string | undefined) => void;\n disabled?: boolean;\n}\n\nfunction ParentFeatureCombobox({\n features,\n value,\n onChange,\n disabled,\n}: ParentFeatureComboboxProps) {\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState('');\n const inputRef = useRef<HTMLInputElement>(null);\n\n const selectedFeature = features.find((f) => f.id === value);\n\n const filtered = query.trim()\n ? features.filter(\n (f) =>\n f.name.toLowerCase().includes(query.toLowerCase()) ||\n f.id.toLowerCase().includes(query.toLowerCase())\n )\n : features;\n\n const handleSelect = useCallback(\n (id: string | undefined) => {\n onChange(id);\n setOpen(false);\n setQuery('');\n },\n [onChange]\n );\n\n useEffect(() => {\n if (open) {\n setTimeout(() => inputRef.current?.focus(), 0);\n } else {\n setQuery('');\n }\n }, [open]);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <button\n id=\"parent-feature\"\n type=\"button\"\n role=\"combobox\"\n aria-expanded={open}\n aria-label=\"Parent Feature\"\n disabled={disabled}\n data-testid=\"parent-feature-combobox\"\n className={cn(\n 'border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n !selectedFeature && 'text-muted-foreground'\n )}\n >\n <span className=\"truncate\">\n {selectedFeature\n ? `${selectedFeature.name} (${selectedFeature.id.slice(0, 8)})`\n : 'Select parent feature...'}\n </span>\n <ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </button>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-80 p-0\"\n align=\"start\"\n data-testid=\"parent-feature-combobox-content\"\n >\n <div className=\"flex flex-col\">\n {/* Search input */}\n <div className=\"border-b p-2\">\n <Input\n ref={inputRef}\n placeholder=\"Search features...\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n className=\"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0\"\n data-testid=\"parent-feature-search\"\n />\n </div>\n\n {/* Options list */}\n <div className=\"max-h-48 overflow-y-auto py-1\" role=\"listbox\" aria-label=\"Features\">\n {/* No parent option */}\n <button\n type=\"button\"\n role=\"option\"\n aria-selected={value === undefined}\n onClick={() => handleSelect(undefined)}\n className={cn(\n 'hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm',\n value === undefined && 'bg-accent/50'\n )}\n data-testid=\"parent-feature-option-none\"\n >\n <CheckIcon className={cn('h-4 w-4 shrink-0', value !== undefined && 'invisible')} />\n <span className=\"text-muted-foreground italic\">No parent</span>\n </button>\n\n {filtered.length === 0 && query ? (\n <p className=\"text-muted-foreground px-3 py-2 text-sm\">No features found.</p>\n ) : (\n filtered.map((f) => (\n <button\n key={f.id}\n type=\"button\"\n role=\"option\"\n aria-selected={value === f.id}\n onClick={() => handleSelect(f.id)}\n className={cn(\n 'hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm',\n value === f.id && 'bg-accent/50'\n )}\n data-testid={`parent-feature-option-${f.id}`}\n >\n <CheckIcon className={cn('h-4 w-4 shrink-0', value !== f.id && 'invisible')} />\n <span className=\"truncate\">\n {f.name}{' '}\n <span className=\"text-muted-foreground font-mono text-xs\">\n ({f.id.slice(0, 8)})\n </span>\n </span>\n </button>\n ))\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n );\n}\n\n/* ---------------------------------------------------------------------------\n * Private sub-components & utilities\n * ------------------------------------------------------------------------- */\n\nfunction AttachmentCard({\n file,\n onRemove,\n disabled,\n}: {\n file: FileAttachment;\n onRemove: () => void;\n disabled?: boolean;\n}) {\n const ext = getExtension(file.name);\n const Icon = getFileIcon(ext);\n const iconColorClass = getFileIconColor(ext);\n\n return (\n <div className=\"flex items-center gap-3 rounded-md border p-2\">\n <div\n className={cn('flex h-8 w-8 shrink-0 items-center justify-center rounded', iconColorClass)}\n >\n <Icon className=\"h-4 w-4\" />\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"truncate text-sm font-medium\">{file.name}</span>\n <span className=\"text-muted-foreground truncate text-xs\">{file.path}</span>\n <span className=\"text-muted-foreground text-xs\">{formatFileSize(file.size)}</span>\n </div>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n onClick={onRemove}\n disabled={disabled}\n aria-label={`Remove ${file.name}`}\n >\n <Trash2Icon className=\"h-3 w-3\" />\n </Button>\n </div>\n );\n}\n\nfunction getExtension(filename: string): string {\n const dot = filename.lastIndexOf('.');\n return dot >= 0 ? filename.slice(dot).toLowerCase() : '';\n}\n\nconst IMAGE_EXTS = new Set(['.png', '.jpg', '.jpeg', '.gif', '.svg', '.webp', '.ico', '.bmp']);\nconst CODE_EXTS = new Set([\n '.ts',\n '.tsx',\n '.js',\n '.jsx',\n '.json',\n '.yaml',\n '.yml',\n '.xml',\n '.html',\n '.css',\n '.md',\n]);\n\nfunction getFileIcon(ext: string): LucideIcon {\n if (IMAGE_EXTS.has(ext)) return ImageIcon;\n if (ext === '.pdf') return FileTextIcon;\n if (CODE_EXTS.has(ext)) return CodeIcon;\n return FileIcon;\n}\n\nfunction getFileIconColor(ext: string): string {\n if (ext === '.pdf') return 'bg-red-50 text-red-600';\n if (IMAGE_EXTS.has(ext)) return 'bg-blue-50 text-blue-600';\n if (CODE_EXTS.has(ext)) return 'bg-emerald-50 text-emerald-600';\n return 'bg-gray-50 text-gray-600';\n}\n\nfunction formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 B';\n const units = ['B', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(1024));\n return `${(bytes / Math.pow(1024, i)).toFixed(i === 0 ? 0 : 1)} ${units[i]}`;\n}\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nfunction Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n 'placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","import type { FileAttachment } from '@shepai/core/infrastructure/services/file-dialog.service';\n\n/**\n * Opens a native OS file picker dialog via API route.\n * Returns the selected files with metadata, or null if the user cancelled.\n */\nexport async function pickFiles(): Promise<FileAttachment[] | null> {\n const res = await fetch('/api/dialog/pick-files', { method: 'POST' });\n\n if (!res.ok) {\n throw new Error('Failed to open file dialog');\n }\n\n const data: { files: FileAttachment[] | null; cancelled: boolean } = await res.json();\n return data.cancelled ? null : data.files;\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm7 15 5 5 5-5', key: '1hf1tw' }],\n ['path', { d: 'm7 9 5-5 5 5', key: 'sgt6xg' }],\n];\n\n/**\n * @component @name ChevronsUpDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAxNSA1IDUgNS01IiAvPgogIDxwYXRoIGQ9Im03IDkgNS01IDUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-up-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronsUpDown = createLucideIcon('chevrons-up-down', __iconNode);\n\nexport default ChevronsUpDown;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2', key: '1m3agn' }],\n ['circle', { cx: '9', cy: '9', r: '2', key: 'af1f0g' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21', key: '1xmnt7' }],\n];\n\n/**\n * @component @name Image\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Image = createLucideIcon('image', __iconNode);\n\nexport default Image;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n key: '1oefj6',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5', key: 'wfsgrz' }],\n];\n\n/**\n * @component @name File\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst File = createLucideIcon('file', __iconNode);\n\nexport default File;\n"],"names":[],"mappings":"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","ignoreList":[5,6,7]}
1
+ {"version":3,"sources":["../../../../../../../src/presentation/web/components/common/control-center-drawer/create-drawer-client.tsx","../../../../../../../src/presentation/web/app/actions/data%3A732378%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.tsx","../../../../../../../src/presentation/web/components/ui/textarea.tsx","../../../../../../../src/presentation/web/components/common/feature-create-drawer/pick-files.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/chevrons-up-down.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/image.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/file.ts"],"sourcesContent":["'use client';\n\nimport { useState, useCallback, useEffect } from 'react';\nimport { useRouter, usePathname } from 'next/navigation';\nimport { toast } from 'sonner';\nimport { createFeature } from '@/app/actions/create-feature';\nimport { FeatureCreateDrawer } from '@/components/common/feature-create-drawer';\nimport type { FeatureCreatePayload } from '@/components/common/feature-create-drawer';\nimport type { ParentFeatureOption } from '@/components/common/feature-create-drawer/feature-create-drawer';\nimport type { WorkflowDefaults } from '@/app/actions/get-workflow-defaults';\n\nexport interface CreateDrawerClientProps {\n repositoryPath: string;\n initialParentId?: string;\n features: ParentFeatureOption[];\n workflowDefaults?: WorkflowDefaults;\n currentAgentType?: string;\n currentModel?: string;\n}\n\nexport function CreateDrawerClient({\n repositoryPath,\n initialParentId,\n features,\n workflowDefaults,\n currentAgentType,\n currentModel,\n}: CreateDrawerClientProps) {\n const router = useRouter();\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n // Derive open state from the URL. Next.js parallel routes preserve slot\n // content during soft navigation, so this component is NOT unmounted when\n // navigating to `/`. We watch the pathname and let Vaul handle the close\n // animation when the path no longer matches the create route.\n // When submitting, force the drawer closed immediately — router.push('/')\n // is async and the pathname may not update before the next render.\n const pathname = usePathname();\n const isOnCreateRoute = pathname.startsWith('/create');\n const isOpen = !isSubmitting && isOnCreateRoute;\n\n // Reset isSubmitting once the route has actually changed away from /create,\n // so the drawer can reopen on future visits. Without this, isSubmitting\n // would stay true forever since parallel routes preserve component state.\n useEffect(() => {\n if (!isOnCreateRoute && isSubmitting) {\n setIsSubmitting(false);\n }\n }, [isOnCreateRoute, isSubmitting]);\n\n const onClose = useCallback(() => {\n router.push('/');\n }, [router]);\n\n const onSubmit = useCallback(\n (data: FeatureCreatePayload) => {\n setIsSubmitting(true);\n\n // Close the drawer immediately for responsive UI\n router.push('/');\n\n // Server action Phase 1 returns fast with real feature ID (DB record created)\n // Phase 2 (metadata, worktree, agent) runs in background on server\n createFeature(data)\n .then((result) => {\n if (result.error) {\n toast.error(result.error);\n return;\n }\n // Dispatch event with real feature ID so control center adds it to featureMap\n window.dispatchEvent(\n new CustomEvent('shep:feature-created', {\n detail: {\n featureId: result.feature!.id,\n name: result.feature!.name,\n description: result.feature!.description,\n repositoryPath: result.feature!.repositoryPath,\n parentId: data.parentId,\n },\n })\n );\n })\n .catch(() => {\n toast.error('Failed to create feature');\n setIsSubmitting(false);\n });\n },\n [router]\n );\n\n return (\n <FeatureCreateDrawer\n open={isOpen}\n onClose={onClose}\n onSubmit={onSubmit}\n repositoryPath={repositoryPath}\n features={features}\n workflowDefaults={workflowDefaults}\n initialParentId={initialParentId}\n isSubmitting={isSubmitting}\n currentAgentType={currentAgentType}\n currentModel={currentModel}\n />\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"4025b9ce5e3097c5eec4b8347abd9158f9e80a1eb3\":\"createFeature\"},\"src/presentation/web/app/actions/create-feature.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"4025b9ce5e3097c5eec4b8347abd9158f9e80a1eb3\",callServer,void 0,findSourceMapURL,\"createFeature\");export{$$RSC_SERVER_ACTION_0 as createFeature};","'use client';\n\nimport { useState, useCallback, useEffect, useRef } from 'react';\nimport type { LucideIcon } from 'lucide-react';\nimport {\n PlusIcon,\n FileIcon,\n FileTextIcon,\n ImageIcon,\n CodeIcon,\n Trash2Icon,\n ChevronsUpDown,\n CheckIcon,\n} from 'lucide-react';\nimport { cn } from '@/lib/utils';\nimport { useSoundAction } from '@/hooks/use-sound-action';\nimport { BaseDrawer } from '@/components/common/base-drawer';\nimport { DrawerTitle, DrawerDescription } from '@/components/ui/drawer';\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport { Textarea } from '@/components/ui/textarea';\nimport { Label } from '@/components/ui/label';\nimport { Badge } from '@/components/ui/badge';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport { Switch } from '@/components/ui/switch';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { useGuardedDrawerClose } from '@/hooks/drawer-close-guard';\nimport type { FileAttachment } from '@shepai/core/infrastructure/services/file-dialog.service';\nimport type { WorkflowDefaults } from '@/app/actions/get-workflow-defaults';\nimport { AgentModelPicker } from '@/components/features/settings/AgentModelPicker';\nimport { pickFiles } from './pick-files';\n\nexport type { FileAttachment } from '@shepai/core/infrastructure/services/file-dialog.service';\n\n/** Minimal feature descriptor for the parent selector. */\nexport interface ParentFeatureOption {\n id: string;\n name: string;\n}\n\nexport interface FeatureCreatePayload {\n description: string;\n attachments: FileAttachment[];\n repositoryPath: string;\n approvalGates: {\n allowPrd: boolean;\n allowPlan: boolean;\n allowMerge: boolean;\n };\n push: boolean;\n openPr: boolean;\n parentId?: string;\n /** When true, skip SDLC phases and implement directly from the prompt. */\n fast: boolean;\n /** Optional agent type override for this feature run */\n agentType?: string;\n /** Optional model override for this feature run */\n model?: string;\n}\n\nconst AUTO_APPROVE_OPTIONS = [\n { id: 'allowPrd', label: 'PRD', description: 'Auto-approve requirements move to planning.' },\n { id: 'allowPlan', label: 'Plan', description: 'Auto-approve planning move to implementation.' },\n { id: 'allowMerge', label: 'Merge', description: 'Auto-approve merge move to Done.' },\n];\n\nconst EMPTY_GATES: Record<string, boolean> = {\n allowPrd: false,\n allowPlan: false,\n allowMerge: false,\n};\n\nexport interface FeatureCreateDrawerProps {\n open: boolean;\n onClose: () => void;\n onSubmit: (data: FeatureCreatePayload) => void;\n repositoryPath: string;\n isSubmitting?: boolean;\n workflowDefaults?: WorkflowDefaults;\n /** List of existing features available for selection as a parent. */\n features?: ParentFeatureOption[];\n /** Pre-select a parent feature when the drawer opens (e.g. from (+) button on a feature node). */\n initialParentId?: string;\n /** Current global agent type from settings */\n currentAgentType?: string;\n /** Current global model from settings */\n currentModel?: string;\n}\n\nexport function FeatureCreateDrawer({\n open,\n onClose,\n onSubmit,\n repositoryPath,\n isSubmitting = false,\n workflowDefaults,\n features,\n initialParentId,\n currentAgentType,\n currentModel,\n}: FeatureCreateDrawerProps) {\n const createSound = useSoundAction('create');\n const defaultGates = workflowDefaults?.approvalGates ?? EMPTY_GATES;\n const defaultPush = workflowDefaults?.push ?? false;\n const defaultOpenPr = workflowDefaults?.openPr ?? false;\n\n const [description, setDescription] = useState('');\n const [attachments, setAttachments] = useState<FileAttachment[]>([]);\n const [approvalGates, setApprovalGates] = useState<Record<string, boolean>>({ ...defaultGates });\n const [push, setPush] = useState(defaultPush);\n const [openPr, setOpenPr] = useState(defaultOpenPr);\n const [parentId, setParentId] = useState<string | undefined>(undefined);\n const [fast, setFast] = useState(false);\n const [overrideAgent, setOverrideAgent] = useState<string | undefined>(undefined);\n const [overrideModel, setOverrideModel] = useState<string | undefined>(undefined);\n\n // Sync state when workflowDefaults load asynchronously\n useEffect(() => {\n if (workflowDefaults) {\n setApprovalGates({ ...workflowDefaults.approvalGates });\n setPush(workflowDefaults.push);\n setOpenPr(workflowDefaults.openPr);\n }\n }, [workflowDefaults]);\n\n // Pre-select parent when initialParentId changes (e.g. (+) button on feature node)\n useEffect(() => {\n if (open && initialParentId) {\n setParentId(initialParentId);\n }\n }, [open, initialParentId]);\n\n const resetForm = useCallback(() => {\n setDescription('');\n setAttachments([]);\n setApprovalGates({ ...defaultGates });\n setPush(defaultPush);\n setOpenPr(defaultOpenPr);\n setParentId(undefined);\n setFast(false);\n setOverrideAgent(undefined);\n setOverrideModel(undefined);\n }, [defaultGates, defaultPush, defaultOpenPr]);\n\n // Track whether the form has unsaved data\n const isDirty = description.trim() !== '' || attachments.length > 0;\n\n // Shared close guard — shows confirmation when dirty, prevents navigation\n const { attemptClose } = useGuardedDrawerClose({ open, isDirty, onClose, onReset: resetForm });\n\n const handleSubmit = useCallback(\n (e: React.FormEvent) => {\n e.preventDefault();\n if (!description.trim()) return;\n createSound.play();\n onSubmit({\n description: description.trim(),\n attachments,\n repositoryPath,\n approvalGates: {\n allowPrd: approvalGates.allowPrd ?? false,\n allowPlan: approvalGates.allowPlan ?? false,\n allowMerge: approvalGates.allowMerge ?? false,\n },\n push: push || openPr,\n openPr,\n fast,\n ...(overrideAgent ? { agentType: overrideAgent } : {}),\n ...(overrideModel ? { model: overrideModel } : {}),\n ...(parentId ? { parentId } : {}),\n });\n resetForm();\n },\n [\n description,\n attachments,\n approvalGates,\n repositoryPath,\n onSubmit,\n push,\n openPr,\n fast,\n overrideAgent,\n overrideModel,\n parentId,\n createSound,\n resetForm,\n ]\n );\n\n const handleAddFiles = useCallback(async () => {\n try {\n const files = await pickFiles();\n if (files) {\n setAttachments((prev) => [...prev, ...files]);\n }\n } catch {\n // Native dialog failed — silently ignore (user can retry)\n }\n }, []);\n\n const handleRemoveFile = useCallback((path: string) => {\n setAttachments((prev) => prev.filter((f) => f.path !== path));\n }, []);\n\n const hasFeatures = features && features.length > 0;\n\n return (\n <BaseDrawer\n open={open}\n onClose={attemptClose}\n size=\"md\"\n modal={false}\n dismissOnOutsideClick\n data-testid=\"feature-create-drawer\"\n header={\n <>\n <div className=\"flex items-center gap-2\">\n <div className=\"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500\" />\n <DrawerTitle>NEW FEATURE</DrawerTitle>\n </div>\n {isSubmitting ? (\n <DrawerDescription asChild>\n <div>\n <Badge variant=\"secondary\">Creating...</Badge>\n </div>\n </DrawerDescription>\n ) : null}\n </>\n }\n footer={\n <div className=\"flex flex-row justify-end gap-2\">\n <Button variant=\"outline\" onClick={attemptClose} disabled={isSubmitting}>\n Cancel\n </Button>\n <Button\n type=\"submit\"\n form=\"create-feature-form\"\n disabled={!description.trim() || isSubmitting}\n >\n {isSubmitting ? 'Creating...' : '+ Create Feature'}\n </Button>\n </div>\n }\n >\n {/* Form body */}\n <div className=\"overflow-y-auto p-4\">\n <TooltipProvider delayDuration={400}>\n <form id=\"create-feature-form\" onSubmit={handleSubmit} className=\"flex flex-col gap-4\">\n {/* Description + inline controls */}\n <div className=\"flex flex-col gap-1.5\">\n <Label\n htmlFor=\"feature-description\"\n className=\"text-muted-foreground text-xs font-semibold tracking-wider\"\n >\n DESCRIBE YOUR FEATURE\n </Label>\n <div className=\"border-input focus-within:ring-ring/50 focus-within:border-ring overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow] focus-within:ring-[3px]\">\n <Textarea\n id=\"feature-description\"\n placeholder=\"e.g. Add GitHub OAuth login with callback handling and token refresh...\"\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n rows={7}\n required\n disabled={isSubmitting}\n className=\"field-sizing-fixed min-h-42! resize-none rounded-none border-0 shadow-none focus-visible:ring-0\"\n />\n <div className=\"border-input flex items-center gap-3 border-t px-3 py-1.5\">\n <AgentModelPicker\n initialAgentType={overrideAgent ?? currentAgentType ?? 'claude-code'}\n initialModel={overrideModel ?? currentModel ?? 'claude-sonnet-4-6'}\n mode=\"override\"\n onAgentModelChange={(agent, model) => {\n setOverrideAgent(agent);\n setOverrideModel(model);\n }}\n disabled={isSubmitting}\n />\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"ml-auto flex cursor-pointer items-center gap-2\">\n <Switch\n id=\"fast-mode\"\n checked={fast}\n onCheckedChange={setFast}\n disabled={isSubmitting}\n />\n <Label htmlFor=\"fast-mode\" className=\"cursor-pointer text-sm font-medium\">\n Fast Mode\n </Label>\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n Skip SDLC phases and implement directly from your prompt.\n </TooltipContent>\n </Tooltip>\n </div>\n </div>\n </div>\n\n {/* Parent feature selector (only when opened from a feature node) */}\n {hasFeatures && initialParentId !== undefined ? (\n <div className=\"flex flex-col gap-1.5\">\n <Label\n htmlFor=\"parent-feature\"\n className=\"text-muted-foreground text-xs font-semibold tracking-wider\"\n >\n PARENT FEATURE\n </Label>\n <ParentFeatureCombobox\n features={features}\n value={parentId}\n onChange={setParentId}\n disabled={isSubmitting}\n />\n </div>\n ) : null}\n\n {/* Approve + Git — compact switch groups */}\n <div className=\"flex flex-col gap-2\">\n {/* Approve row */}\n <div className=\"border-input flex items-center gap-4 rounded-md border px-3 py-2.5\">\n <Tooltip>\n <TooltipTrigger asChild>\n <span className=\"text-muted-foreground w-16 shrink-0 cursor-default text-xs font-semibold tracking-wider\">\n APPROVE\n </span>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n Auto-approve phase transitions without manual review.\n </TooltipContent>\n </Tooltip>\n <div className=\"flex flex-1 items-center gap-4\">\n {AUTO_APPROVE_OPTIONS.map((opt) => (\n <Tooltip key={opt.id}>\n <TooltipTrigger asChild>\n <div className=\"flex cursor-pointer items-center gap-1.5\">\n <Switch\n id={`approve-${opt.id}`}\n size=\"sm\"\n checked={approvalGates[opt.id] ?? false}\n onCheckedChange={(v) =>\n setApprovalGates((prev) => ({ ...prev, [opt.id]: v }))\n }\n disabled={\n isSubmitting ||\n (fast && (opt.id === 'allowPrd' || opt.id === 'allowPlan'))\n }\n />\n <Label\n htmlFor={`approve-${opt.id}`}\n className=\"cursor-pointer text-xs font-medium\"\n >\n {opt.label}\n </Label>\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n {fast && (opt.id === 'allowPrd' || opt.id === 'allowPlan')\n ? 'Skipped in Fast Mode'\n : opt.description}\n </TooltipContent>\n </Tooltip>\n ))}\n </div>\n {/* Select all shortcut */}\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n onClick={() => {\n const allOn = AUTO_APPROVE_OPTIONS.every((o) => approvalGates[o.id]);\n const next: Record<string, boolean> = {};\n for (const o of AUTO_APPROVE_OPTIONS) next[o.id] = !allOn;\n setApprovalGates(next);\n }}\n disabled={isSubmitting}\n className={cn(\n 'text-muted-foreground hover:text-foreground cursor-pointer rounded px-1.5 py-0.5 text-[10px] font-semibold tracking-wider uppercase transition-colors',\n AUTO_APPROVE_OPTIONS.every((o) => approvalGates[o.id]) && 'text-primary'\n )}\n >\n All\n </button>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">Toggle all approval gates</TooltipContent>\n </Tooltip>\n </div>\n\n {/* Git row */}\n <div className=\"border-input flex items-center gap-4 rounded-md border px-3 py-2.5\">\n <span className=\"text-muted-foreground w-16 shrink-0 text-xs font-semibold tracking-wider\">\n GIT\n </span>\n <div className=\"flex flex-1 items-center gap-4\">\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"flex cursor-pointer items-center gap-1.5\">\n <Switch\n id=\"push\"\n size=\"sm\"\n checked={push || openPr}\n onCheckedChange={(v) => {\n setPush(v);\n if (!v && openPr) setOpenPr(false);\n }}\n disabled={isSubmitting}\n />\n <Label htmlFor=\"push\" className=\"cursor-pointer text-xs font-medium\">\n Push\n </Label>\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n Push branch to remote after implementation.\n </TooltipContent>\n </Tooltip>\n <Tooltip>\n <TooltipTrigger asChild>\n <div className=\"flex cursor-pointer items-center gap-1.5\">\n <Switch\n id=\"open-pr\"\n size=\"sm\"\n checked={openPr}\n onCheckedChange={setOpenPr}\n disabled={isSubmitting}\n />\n <Label htmlFor=\"open-pr\" className=\"cursor-pointer text-xs font-medium\">\n PR\n </Label>\n </div>\n </TooltipTrigger>\n <TooltipContent side=\"bottom\">\n Open a pull request after pushing.\n </TooltipContent>\n </Tooltip>\n </div>\n </div>\n </div>\n\n {/* Attachments */}\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-muted-foreground text-xs font-semibold tracking-wider\">\n ATTACHMENTS\n {attachments.length > 0 && (\n <span className=\"text-muted-foreground/60 ml-1.5\">({attachments.length})</span>\n )}\n </Label>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"xs\"\n onClick={handleAddFiles}\n disabled={isSubmitting}\n >\n <PlusIcon className=\"size-3\" />\n Add Files\n </Button>\n </div>\n\n {attachments.length > 0 && (\n <div className=\"flex flex-col gap-2\">\n {attachments.map((file) => (\n <AttachmentCard\n key={file.path}\n file={file}\n onRemove={() => handleRemoveFile(file.path)}\n disabled={isSubmitting}\n />\n ))}\n </div>\n )}\n </div>\n </form>\n </TooltipProvider>\n </div>\n </BaseDrawer>\n );\n}\n\n/* ---------------------------------------------------------------------------\n * ParentFeatureCombobox — searchable dropdown for parent feature selection\n * ------------------------------------------------------------------------- */\n\ninterface ParentFeatureComboboxProps {\n features: ParentFeatureOption[];\n value: string | undefined;\n onChange: (id: string | undefined) => void;\n disabled?: boolean;\n}\n\nfunction ParentFeatureCombobox({\n features,\n value,\n onChange,\n disabled,\n}: ParentFeatureComboboxProps) {\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState('');\n const inputRef = useRef<HTMLInputElement>(null);\n\n const selectedFeature = features.find((f) => f.id === value);\n\n const filtered = query.trim()\n ? features.filter(\n (f) =>\n f.name.toLowerCase().includes(query.toLowerCase()) ||\n f.id.toLowerCase().includes(query.toLowerCase())\n )\n : features;\n\n const handleSelect = useCallback(\n (id: string | undefined) => {\n onChange(id);\n setOpen(false);\n setQuery('');\n },\n [onChange]\n );\n\n useEffect(() => {\n if (open) {\n setTimeout(() => inputRef.current?.focus(), 0);\n } else {\n setQuery('');\n }\n }, [open]);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <button\n id=\"parent-feature\"\n type=\"button\"\n role=\"combobox\"\n aria-expanded={open}\n aria-label=\"Parent Feature\"\n disabled={disabled}\n data-testid=\"parent-feature-combobox\"\n className={cn(\n 'border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50',\n !selectedFeature && 'text-muted-foreground'\n )}\n >\n <span className=\"truncate\">\n {selectedFeature\n ? `${selectedFeature.name} (${selectedFeature.id.slice(0, 8)})`\n : 'Select parent feature...'}\n </span>\n <ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </button>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-80 p-0\"\n align=\"start\"\n data-testid=\"parent-feature-combobox-content\"\n >\n <div className=\"flex flex-col\">\n {/* Search input */}\n <div className=\"border-b p-2\">\n <Input\n ref={inputRef}\n placeholder=\"Search features...\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n className=\"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0\"\n data-testid=\"parent-feature-search\"\n />\n </div>\n\n {/* Options list */}\n <div className=\"max-h-48 overflow-y-auto py-1\" role=\"listbox\" aria-label=\"Features\">\n {/* No parent option */}\n <button\n type=\"button\"\n role=\"option\"\n aria-selected={value === undefined}\n onClick={() => handleSelect(undefined)}\n className={cn(\n 'hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm',\n value === undefined && 'bg-accent/50'\n )}\n data-testid=\"parent-feature-option-none\"\n >\n <CheckIcon className={cn('h-4 w-4 shrink-0', value !== undefined && 'invisible')} />\n <span className=\"text-muted-foreground italic\">No parent</span>\n </button>\n\n {filtered.length === 0 && query ? (\n <p className=\"text-muted-foreground px-3 py-2 text-sm\">No features found.</p>\n ) : (\n filtered.map((f) => (\n <button\n key={f.id}\n type=\"button\"\n role=\"option\"\n aria-selected={value === f.id}\n onClick={() => handleSelect(f.id)}\n className={cn(\n 'hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm',\n value === f.id && 'bg-accent/50'\n )}\n data-testid={`parent-feature-option-${f.id}`}\n >\n <CheckIcon className={cn('h-4 w-4 shrink-0', value !== f.id && 'invisible')} />\n <span className=\"truncate\">\n {f.name}{' '}\n <span className=\"text-muted-foreground font-mono text-xs\">\n ({f.id.slice(0, 8)})\n </span>\n </span>\n </button>\n ))\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n );\n}\n\n/* ---------------------------------------------------------------------------\n * Private sub-components & utilities\n * ------------------------------------------------------------------------- */\n\nfunction AttachmentCard({\n file,\n onRemove,\n disabled,\n}: {\n file: FileAttachment;\n onRemove: () => void;\n disabled?: boolean;\n}) {\n const ext = getExtension(file.name);\n const Icon = getFileIcon(ext);\n const iconColorClass = getFileIconColor(ext);\n\n return (\n <div className=\"flex items-center gap-3 rounded-md border p-2\">\n <div\n className={cn('flex h-8 w-8 shrink-0 items-center justify-center rounded', iconColorClass)}\n >\n <Icon className=\"h-4 w-4\" />\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"truncate text-sm font-medium\">{file.name}</span>\n <span className=\"text-muted-foreground truncate text-xs\">{file.path}</span>\n <span className=\"text-muted-foreground text-xs\">{formatFileSize(file.size)}</span>\n </div>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n onClick={onRemove}\n disabled={disabled}\n aria-label={`Remove ${file.name}`}\n >\n <Trash2Icon className=\"h-3 w-3\" />\n </Button>\n </div>\n );\n}\n\nfunction getExtension(filename: string): string {\n const dot = filename.lastIndexOf('.');\n return dot >= 0 ? filename.slice(dot).toLowerCase() : '';\n}\n\nconst IMAGE_EXTS = new Set(['.png', '.jpg', '.jpeg', '.gif', '.svg', '.webp', '.ico', '.bmp']);\nconst CODE_EXTS = new Set([\n '.ts',\n '.tsx',\n '.js',\n '.jsx',\n '.json',\n '.yaml',\n '.yml',\n '.xml',\n '.html',\n '.css',\n '.md',\n]);\n\nfunction getFileIcon(ext: string): LucideIcon {\n if (IMAGE_EXTS.has(ext)) return ImageIcon;\n if (ext === '.pdf') return FileTextIcon;\n if (CODE_EXTS.has(ext)) return CodeIcon;\n return FileIcon;\n}\n\nfunction getFileIconColor(ext: string): string {\n if (ext === '.pdf') return 'bg-red-50 text-red-600';\n if (IMAGE_EXTS.has(ext)) return 'bg-blue-50 text-blue-600';\n if (CODE_EXTS.has(ext)) return 'bg-emerald-50 text-emerald-600';\n return 'bg-gray-50 text-gray-600';\n}\n\nfunction formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 B';\n const units = ['B', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(1024));\n return `${(bytes / Math.pow(1024, i)).toFixed(i === 0 ? 0 : 1)} ${units[i]}`;\n}\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nfunction Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n 'placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","import type { FileAttachment } from '@shepai/core/infrastructure/services/file-dialog.service';\n\n/**\n * Opens a native OS file picker dialog via API route.\n * Returns the selected files with metadata, or null if the user cancelled.\n */\nexport async function pickFiles(): Promise<FileAttachment[] | null> {\n const res = await fetch('/api/dialog/pick-files', { method: 'POST' });\n\n if (!res.ok) {\n throw new Error('Failed to open file dialog');\n }\n\n const data: { files: FileAttachment[] | null; cancelled: boolean } = await res.json();\n return data.cancelled ? null : data.files;\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm7 15 5 5 5-5', key: '1hf1tw' }],\n ['path', { d: 'm7 9 5-5 5 5', key: 'sgt6xg' }],\n];\n\n/**\n * @component @name ChevronsUpDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAxNSA1IDUgNS01IiAvPgogIDxwYXRoIGQ9Im03IDkgNS01IDUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-up-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronsUpDown = createLucideIcon('chevrons-up-down', __iconNode);\n\nexport default ChevronsUpDown;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2', key: '1m3agn' }],\n ['circle', { cx: '9', cy: '9', r: '2', key: 'af1f0g' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21', key: '1xmnt7' }],\n];\n\n/**\n * @component @name Image\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Image = createLucideIcon('image', __iconNode);\n\nexport default Image;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n key: '1oefj6',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5', key: 'wfsgrz' }],\n];\n\n/**\n * @component @name File\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/file\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst File = createLucideIcon('file', __iconNode);\n\nexport default File;\n"],"names":[],"mappings":"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","ignoreList":[5,6,7]}