@shepai/cli 1.152.0 → 1.153.0-pr477.9c7fcd0

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 (266) hide show
  1. package/dist/packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.d.ts +5 -0
  2. package/dist/packages/core/src/application/ports/output/repositories/interactive-session-repository.interface.d.ts.map +1 -1
  3. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +37 -0
  4. package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
  5. package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts +5 -0
  6. package/dist/packages/core/src/application/ports/output/services/interactive-session-service.interface.d.ts.map +1 -1
  7. package/dist/packages/core/src/application/use-cases/repositories/get-repository-commits.use-case.d.ts +18 -0
  8. package/dist/packages/core/src/application/use-cases/repositories/get-repository-commits.use-case.d.ts.map +1 -0
  9. package/dist/packages/core/src/application/use-cases/repositories/get-repository-commits.use-case.js +40 -0
  10. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  11. package/dist/packages/core/src/infrastructure/di/container.js +5 -0
  12. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.d.ts +1 -0
  13. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.d.ts.map +1 -1
  14. package/dist/packages/core/src/infrastructure/repositories/sqlite-interactive-session.repository.js +15 -0
  15. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.d.ts.map +1 -1
  16. package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-interactive-executor.service.js +8 -0
  17. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +3 -1
  18. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  19. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +40 -0
  20. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts +1 -0
  21. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.d.ts.map +1 -1
  22. package/dist/packages/core/src/infrastructure/services/interactive/interactive-session.service.js +51 -5
  23. package/dist/src/presentation/web/app/actions/get-repository-commits.d.ts +13 -0
  24. package/dist/src/presentation/web/app/actions/get-repository-commits.d.ts.map +1 -0
  25. package/dist/src/presentation/web/app/actions/get-repository-commits.js +16 -0
  26. package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/route.d.ts +4 -5
  27. package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/route.d.ts.map +1 -1
  28. package/dist/src/presentation/web/app/api/interactive/chat/turn-statuses/route.js +5 -13
  29. package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.d.ts +14 -0
  30. package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.d.ts.map +1 -0
  31. package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.js +120 -0
  32. package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.stories.d.ts +12 -0
  33. package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.stories.d.ts.map +1 -0
  34. package/dist/src/presentation/web/components/common/commit-history-tree/commit-history-tree.stories.js +140 -0
  35. package/dist/src/presentation/web/components/common/commit-history-tree/use-commit-history.d.ts +16 -0
  36. package/dist/src/presentation/web/components/common/commit-history-tree/use-commit-history.d.ts.map +1 -0
  37. package/dist/src/presentation/web/components/common/commit-history-tree/use-commit-history.js +33 -0
  38. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts +1 -1
  39. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.d.ts.map +1 -1
  40. package/dist/src/presentation/web/components/common/control-center-drawer/repository-drawer-client.js +11 -1
  41. package/dist/src/presentation/web/components/common/floating-action-button/floating-action-button.d.ts +8 -2
  42. package/dist/src/presentation/web/components/common/floating-action-button/floating-action-button.d.ts.map +1 -1
  43. package/dist/src/presentation/web/components/common/floating-action-button/floating-action-button.js +10 -7
  44. package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
  45. package/dist/src/presentation/web/components/common/repository-node/repository-node.js +2 -3
  46. package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -1
  47. package/dist/src/presentation/web/components/features/chat/ChatSheet.js +43 -30
  48. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  49. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +66 -3
  50. package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.d.ts +1 -6
  51. package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.d.ts.map +1 -1
  52. package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.js +5 -6
  53. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +1 -1
  54. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.d.ts.map +1 -1
  55. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +9 -5
  56. package/dist/src/presentation/web/hooks/turn-statuses-provider.d.ts +4 -8
  57. package/dist/src/presentation/web/hooks/turn-statuses-provider.d.ts.map +1 -1
  58. package/dist/src/presentation/web/hooks/turn-statuses-provider.js +4 -4
  59. package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts +4 -5
  60. package/dist/src/presentation/web/hooks/use-turn-statuses.d.ts.map +1 -1
  61. package/dist/src/presentation/web/hooks/use-turn-statuses.js +7 -12
  62. package/dist/tsconfig.build.tsbuildinfo +1 -1
  63. package/package.json +1 -1
  64. package/web/.next/BUILD_ID +1 -1
  65. package/web/.next/build-manifest.json +2 -2
  66. package/web/.next/fallback-build-manifest.json +2 -2
  67. package/web/.next/prerender-manifest.json +3 -3
  68. package/web/.next/required-server-files.js +3 -3
  69. package/web/.next/required-server-files.json +3 -3
  70. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +28 -28
  71. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  72. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  73. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +26 -26
  74. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  75. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  76. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +29 -29
  77. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  78. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  79. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
  80. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  81. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  82. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +36 -36
  83. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  84. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  85. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +67 -52
  86. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
  87. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  88. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  89. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +67 -52
  90. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  91. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  92. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  93. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +26 -26
  94. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  95. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  96. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +29 -29
  97. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  98. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  99. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +36 -36
  100. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  101. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  102. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +36 -36
  103. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  104. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  105. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +26 -26
  106. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  107. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  108. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +67 -52
  109. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
  110. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  111. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  112. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +67 -52
  113. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  114. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  115. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  116. package/web/.next/server/app/_global-error.html +2 -2
  117. package/web/.next/server/app/_global-error.rsc +1 -1
  118. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  119. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  120. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  121. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  122. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  123. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +5 -5
  124. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  125. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  126. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  127. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  128. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  129. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  130. package/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
  131. package/web/.next/server/app/api/sessions-batch/route.js.nft.json +1 -1
  132. package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  133. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  134. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  135. package/web/.next/server/app/skills/page/server-reference-manifest.json +10 -10
  136. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  137. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  138. package/web/.next/server/app/tools/page/server-reference-manifest.json +10 -10
  139. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  140. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  141. package/web/.next/server/app/version/page/server-reference-manifest.json +5 -5
  142. package/web/.next/server/app/version/page.js.nft.json +1 -1
  143. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  144. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  145. package/web/.next/server/chunks/[root-of-the-server]__ab4951b1._.js +1 -1
  146. package/web/.next/server/chunks/[root-of-the-server]__ab4951b1._.js.map +1 -1
  147. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  148. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
  150. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  151. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_refresh-cw_2796b1f0.js +3 -0
  152. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_refresh-cw_2796b1f0.js.map +1 -0
  153. package/web/.next/server/chunks/ssr/[root-of-the-server]__17ed7ed1._.js +1 -1
  154. package/web/.next/server/chunks/ssr/[root-of-the-server]__17ed7ed1._.js.map +1 -1
  155. package/web/.next/server/chunks/ssr/[root-of-the-server]__28d0d265._.js +2 -2
  156. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  157. package/web/.next/server/chunks/ssr/[root-of-the-server]__42bf1807._.js +1 -1
  158. package/web/.next/server/chunks/ssr/[root-of-the-server]__42bf1807._.js.map +1 -1
  159. package/web/.next/server/chunks/ssr/[root-of-the-server]__56b70465._.js +1 -1
  160. package/web/.next/server/chunks/ssr/[root-of-the-server]__56b70465._.js.map +1 -1
  161. package/web/.next/server/chunks/ssr/[root-of-the-server]__88f7e8e6._.js +1 -1
  162. package/web/.next/server/chunks/ssr/[root-of-the-server]__88f7e8e6._.js.map +1 -1
  163. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b0aac03._.js +1 -1
  164. package/web/.next/server/chunks/ssr/[root-of-the-server]__c30f1f82._.js +1 -1
  165. package/web/.next/server/chunks/ssr/[root-of-the-server]__c30f1f82._.js.map +1 -1
  166. package/web/.next/server/chunks/ssr/[root-of-the-server]__ce859680._.js +3 -0
  167. package/web/.next/server/chunks/ssr/[root-of-the-server]__ce859680._.js.map +1 -0
  168. package/web/.next/server/chunks/ssr/[root-of-the-server]__f80bfc75._.js +1 -1
  169. package/web/.next/server/chunks/ssr/[root-of-the-server]__f80bfc75._.js.map +1 -1
  170. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  171. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  172. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  173. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  174. package/web/.next/server/chunks/ssr/{_5fce01a7._.js → _29ca8860._.js} +2 -2
  175. package/web/.next/server/chunks/ssr/{_5fce01a7._.js.map → _29ca8860._.js.map} +1 -1
  176. package/web/.next/server/chunks/ssr/_3a0b989f._.js +2 -2
  177. package/web/.next/server/chunks/ssr/_3a0b989f._.js.map +1 -1
  178. package/web/.next/server/chunks/ssr/{_d8bedf13._.js → _48066275._.js} +2 -2
  179. package/web/.next/server/chunks/ssr/_48066275._.js.map +1 -0
  180. package/web/.next/server/chunks/ssr/{_d86175ae._.js → _4b41246e._.js} +2 -2
  181. package/web/.next/server/chunks/ssr/_4b41246e._.js.map +1 -0
  182. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  183. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  184. package/web/.next/server/chunks/ssr/{_8219712a._.js → _5eb64260._.js} +2 -2
  185. package/web/.next/server/chunks/ssr/_5eb64260._.js.map +1 -0
  186. package/web/.next/server/chunks/ssr/{_5f69c13f._.js → _6438bf2d._.js} +2 -2
  187. package/web/.next/server/chunks/ssr/_6438bf2d._.js.map +1 -0
  188. package/web/.next/server/chunks/ssr/_7c5b97c6._.js +1 -1
  189. package/web/.next/server/chunks/ssr/_7c5b97c6._.js.map +1 -1
  190. package/web/.next/server/chunks/ssr/_82c57f10._.js +1 -1
  191. package/web/.next/server/chunks/ssr/_82c57f10._.js.map +1 -1
  192. package/web/.next/server/chunks/ssr/{_cb5a021e._.js → _87761ee1._.js} +2 -2
  193. package/web/.next/server/chunks/ssr/_87761ee1._.js.map +1 -0
  194. package/web/.next/server/chunks/ssr/_9495d50b._.js +1 -1
  195. package/web/.next/server/chunks/ssr/_9495d50b._.js.map +1 -1
  196. package/web/.next/server/chunks/ssr/_a0e3f7e4._.js +1 -1
  197. package/web/.next/server/chunks/ssr/_a0e3f7e4._.js.map +1 -1
  198. package/web/.next/server/chunks/ssr/{_cf1c5b73._.js → _a3aa1eb6._.js} +2 -2
  199. package/web/.next/server/chunks/ssr/_a3aa1eb6._.js.map +1 -0
  200. package/web/.next/server/chunks/ssr/_ac4a3873._.js +1 -1
  201. package/web/.next/server/chunks/ssr/_ac4a3873._.js.map +1 -1
  202. package/web/.next/server/chunks/ssr/_c93c0cc6._.js +3 -0
  203. package/web/.next/server/chunks/ssr/_c93c0cc6._.js.map +1 -0
  204. package/web/.next/server/chunks/ssr/_ca0aa7f0._.js +1 -1
  205. package/web/.next/server/chunks/ssr/_ca0aa7f0._.js.map +1 -1
  206. package/web/.next/server/chunks/ssr/{_e9a73a63._.js → _e55a0378._.js} +2 -2
  207. package/web/.next/server/chunks/ssr/_e55a0378._.js.map +1 -0
  208. package/web/.next/server/chunks/ssr/_fa7efce3._.js +2 -2
  209. package/web/.next/server/chunks/ssr/_fa7efce3._.js.map +1 -1
  210. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  211. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  212. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +3 -0
  213. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -0
  214. package/web/.next/server/chunks/ssr/src_presentation_web_324a47da._.js +3 -0
  215. package/web/.next/server/chunks/ssr/src_presentation_web_324a47da._.js.map +1 -0
  216. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_cdc632e3.js +1 -1
  217. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_cdc632e3.js.map +1 -1
  218. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_39ca0924.js +1 -1
  219. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_39ca0924.js.map +1 -1
  220. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  221. package/web/.next/server/chunks/ssr/src_presentation_web_components_357e3eb0._.js +1 -1
  222. package/web/.next/server/chunks/ssr/src_presentation_web_components_357e3eb0._.js.map +1 -1
  223. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  224. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  225. package/web/.next/server/pages/500.html +2 -2
  226. package/web/.next/server/server-reference-manifest.js +1 -1
  227. package/web/.next/server/server-reference-manifest.json +185 -149
  228. package/web/.next/static/chunks/0b347558818d2628.js +1 -0
  229. package/web/.next/static/chunks/{cd54b758f58061d0.js → 1406c2860e7fac9c.js} +1 -1
  230. package/web/.next/static/chunks/36208713ad011740.js +1 -0
  231. package/web/.next/static/chunks/3f21588c6956d5b4.css +1 -0
  232. package/web/.next/static/chunks/471bebfd8d0f0acd.js +1 -0
  233. package/web/.next/static/chunks/{277a7f64d4ec189d.js → 5a585a2f6bcff4a9.js} +1 -1
  234. package/web/.next/static/chunks/{1b4429259bbf3064.js → 65ece264fa8f6fe1.js} +2 -2
  235. package/web/.next/static/chunks/{f9a80d3854a8d453.js → 929ed61442b5e9f7.js} +1 -1
  236. package/web/.next/static/chunks/{80c4c8b3a5c8e0b6.js → a4ffe2d157f11ad3.js} +1 -1
  237. package/web/.next/static/chunks/{bdd340ad42a34b41.js → aaf8507271e6f018.js} +1 -1
  238. package/web/.next/static/chunks/b27aae090cd67337.js +7 -0
  239. package/web/.next/static/chunks/{ef1c9f43aafff65f.js → b2c3da92e5d7864b.js} +2 -2
  240. package/web/.next/static/chunks/bb831852c32a9e59.js +1 -0
  241. package/web/.next/static/chunks/{a2257ffb1349f838.js → d13a4b544b737cbc.js} +1 -1
  242. package/web/.next/static/chunks/eef9a6b627e39d41.js +1 -0
  243. package/web/.next/static/chunks/{f33efe6a12242a8a.js → fa08611a63bb5369.js} +1 -1
  244. package/web/.next/server/chunks/ssr/[root-of-the-server]__563f2f7a._.js +0 -3
  245. package/web/.next/server/chunks/ssr/[root-of-the-server]__563f2f7a._.js.map +0 -1
  246. package/web/.next/server/chunks/ssr/_5f69c13f._.js.map +0 -1
  247. package/web/.next/server/chunks/ssr/_8219712a._.js.map +0 -1
  248. package/web/.next/server/chunks/ssr/_cb5a021e._.js.map +0 -1
  249. package/web/.next/server/chunks/ssr/_cf1c5b73._.js.map +0 -1
  250. package/web/.next/server/chunks/ssr/_cfbd1d7e._.js +0 -3
  251. package/web/.next/server/chunks/ssr/_cfbd1d7e._.js.map +0 -1
  252. package/web/.next/server/chunks/ssr/_d86175ae._.js.map +0 -1
  253. package/web/.next/server/chunks/ssr/_d8bedf13._.js.map +0 -1
  254. package/web/.next/server/chunks/ssr/_e9a73a63._.js.map +0 -1
  255. package/web/.next/server/chunks/ssr/_f78b4b9d._.js +0 -3
  256. package/web/.next/server/chunks/ssr/_f78b4b9d._.js.map +0 -1
  257. package/web/.next/static/chunks/22c459f1877b1e4f.js +0 -1
  258. package/web/.next/static/chunks/4908997348bd55f8.js +0 -1
  259. package/web/.next/static/chunks/6bf775818e4ad42e.js +0 -1
  260. package/web/.next/static/chunks/76858a51f2fbe99a.js +0 -7
  261. package/web/.next/static/chunks/8ba1c07ef18b15a9.js +0 -1
  262. package/web/.next/static/chunks/a919a9df4ab12a5c.css +0 -1
  263. package/web/.next/static/chunks/ee20803fb301d59e.js +0 -1
  264. /package/web/.next/static/{lPbWG8a1RwBDDcvRngp58 → -_iF1islqFSzVifHA2Zlt}/_buildManifest.js +0 -0
  265. /package/web/.next/static/{lPbWG8a1RwBDDcvRngp58 → -_iF1islqFSzVifHA2Zlt}/_clientMiddlewareManifest.json +0 -0
  266. /package/web/.next/static/{lPbWG8a1RwBDDcvRngp58 → -_iF1islqFSzVifHA2Zlt}/_ssgManifest.js +0 -0
@@ -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/83fc7ea32e18c9a5.js","/_next/static/chunks/76858a51f2fbe99a.js","/_next/static/chunks/1b4429259bbf3064.js","/_next/static/chunks/8ba1c07ef18b15a9.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/ee20803fb301d59e.js","/_next/static/chunks/4b2c4a5c35ebb70d.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx":{"id":87292,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/76858a51f2fbe99a.js","/_next/static/chunks/1b4429259bbf3064.js","/_next/static/chunks/8ba1c07ef18b15a9.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/ee20803fb301d59e.js","/_next/static/chunks/4b2c4a5c35ebb70d.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx <module evaluation>":{"id":25251,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/76858a51f2fbe99a.js","/_next/static/chunks/1b4429259bbf3064.js","/_next/static/chunks/8ba1c07ef18b15a9.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/ee20803fb301d59e.js","/_next/static/chunks/4b2c4a5c35ebb70d.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx":{"id":25251,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/76858a51f2fbe99a.js","/_next/static/chunks/1b4429259bbf3064.js","/_next/static/chunks/8ba1c07ef18b15a9.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/ee20803fb301d59e.js","/_next/static/chunks/4b2c4a5c35ebb70d.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx <module evaluation>":{"id":75921,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/76858a51f2fbe99a.js","/_next/static/chunks/1b4429259bbf3064.js","/_next/static/chunks/8ba1c07ef18b15a9.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/ee20803fb301d59e.js","/_next/static/chunks/4b2c4a5c35ebb70d.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx":{"id":75921,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/76858a51f2fbe99a.js","/_next/static/chunks/1b4429259bbf3064.js","/_next/static/chunks/8ba1c07ef18b15a9.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/ee20803fb301d59e.js","/_next/static/chunks/4b2c4a5c35ebb70d.js"],"async":false},"[project]/src/presentation/web/components/providers/query-provider.tsx <module evaluation>":{"id":4858,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/76858a51f2fbe99a.js","/_next/static/chunks/1b4429259bbf3064.js","/_next/static/chunks/8ba1c07ef18b15a9.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/ee20803fb301d59e.js","/_next/static/chunks/4b2c4a5c35ebb70d.js"],"async":false},"[project]/src/presentation/web/components/providers/query-provider.tsx":{"id":4858,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/76858a51f2fbe99a.js","/_next/static/chunks/1b4429259bbf3064.js","/_next/static/chunks/8ba1c07ef18b15a9.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/ee20803fb301d59e.js","/_next/static/chunks/4b2c4a5c35ebb70d.js"],"async":false},"[project]/src/presentation/web/components/features/version/version-page-client.tsx <module evaluation>":{"id":1699,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/76858a51f2fbe99a.js","/_next/static/chunks/1b4429259bbf3064.js","/_next/static/chunks/8ba1c07ef18b15a9.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/ee20803fb301d59e.js","/_next/static/chunks/4b2c4a5c35ebb70d.js","/_next/static/chunks/3e1e0f9bde3530d2.js"],"async":false},"[project]/src/presentation/web/components/features/version/version-page-client.tsx":{"id":1699,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/76858a51f2fbe99a.js","/_next/static/chunks/1b4429259bbf3064.js","/_next/static/chunks/8ba1c07ef18b15a9.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/ee20803fb301d59e.js","/_next/static/chunks/4b2c4a5c35ebb70d.js","/_next/static/chunks/3e1e0f9bde3530d2.js"],"async":false}},"ssrModuleMapping":{"40799":{"*":{"id":69218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"73006":{"*":{"id":76926,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"67804":{"*":{"id":78378,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"50122":{"*":{"id":18508,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"19292":{"*":{"id":55259,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"30088":{"*":{"id":33028,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"66658":{"*":{"id":42422,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"98295":{"*":{"id":84831,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"87292":{"*":{"id":66560,"name":"*","chunks":["server/chunks/ssr/node_modules__pnpm_8ec2c790._.js","server/chunks/ssr/_5fce01a7._.js","server/chunks/ssr/_e9a73a63._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/_8b57edb8._.js","server/chunks/ssr/_ac4a3873._.js","server/chunks/ssr/[root-of-the-server]__563f2f7a._.js","server/chunks/ssr/src_presentation_web_components_357e3eb0._.js","server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/_1b7dae9a._.js","server/chunks/ssr/_d4b20e29._.js"],"async":false}},"25251":{"*":{"id":58313,"name":"*","chunks":["server/chunks/ssr/node_modules__pnpm_8ec2c790._.js","server/chunks/ssr/_5fce01a7._.js","server/chunks/ssr/_e9a73a63._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/_8b57edb8._.js","server/chunks/ssr/_ac4a3873._.js","server/chunks/ssr/[root-of-the-server]__563f2f7a._.js","server/chunks/ssr/src_presentation_web_components_357e3eb0._.js","server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/_1b7dae9a._.js","server/chunks/ssr/_d4b20e29._.js"],"async":false}},"75921":{"*":{"id":21333,"name":"*","chunks":["server/chunks/ssr/node_modules__pnpm_8ec2c790._.js","server/chunks/ssr/_5fce01a7._.js","server/chunks/ssr/_e9a73a63._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/_8b57edb8._.js","server/chunks/ssr/_ac4a3873._.js","server/chunks/ssr/[root-of-the-server]__563f2f7a._.js","server/chunks/ssr/src_presentation_web_components_357e3eb0._.js","server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/_1b7dae9a._.js","server/chunks/ssr/_d4b20e29._.js"],"async":false}},"4858":{"*":{"id":41835,"name":"*","chunks":["server/chunks/ssr/node_modules__pnpm_8ec2c790._.js","server/chunks/ssr/_5fce01a7._.js","server/chunks/ssr/_e9a73a63._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/_8b57edb8._.js","server/chunks/ssr/_ac4a3873._.js","server/chunks/ssr/[root-of-the-server]__563f2f7a._.js","server/chunks/ssr/src_presentation_web_components_357e3eb0._.js","server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/_1b7dae9a._.js","server/chunks/ssr/_d4b20e29._.js"],"async":false}},"1699":{"*":{"id":86259,"name":"*","chunks":["server/chunks/ssr/node_modules__pnpm_8ec2c790._.js","server/chunks/ssr/_5fce01a7._.js","server/chunks/ssr/_e9a73a63._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/_8b57edb8._.js","server/chunks/ssr/_ac4a3873._.js","server/chunks/ssr/[root-of-the-server]__563f2f7a._.js","server/chunks/ssr/src_presentation_web_components_357e3eb0._.js","server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/_1b7dae9a._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/src_presentation_web_components_a5e6c910._.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}},"4858":{"*":{"id":19488,"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/61c4d617e4b83d4b.css","inlined":false},{"path":"static/chunks/8180973e9cd6a99e.css","inlined":false},{"path":"static/chunks/a919a9df4ab12a5c.css","inlined":false}],"[project]/src/presentation/web/app/version/page":[{"path":"static/chunks/61c4d617e4b83d4b.css","inlined":false},{"path":"static/chunks/8180973e9cd6a99e.css","inlined":false},{"path":"static/chunks/a919a9df4ab12a5c.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/83fc7ea32e18c9a5.js","static/chunks/76858a51f2fbe99a.js","static/chunks/1b4429259bbf3064.js","static/chunks/8ba1c07ef18b15a9.js","static/chunks/b4cde06eff374c59.js","static/chunks/672e3da3ad26005b.js","static/chunks/5ae60a052ab5f437.js","static/chunks/ee20803fb301d59e.js","static/chunks/4b2c4a5c35ebb70d.js"],"[project]/src/presentation/web/app/version/page":["static/chunks/83fc7ea32e18c9a5.js","static/chunks/76858a51f2fbe99a.js","static/chunks/1b4429259bbf3064.js","static/chunks/8ba1c07ef18b15a9.js","static/chunks/b4cde06eff374c59.js","static/chunks/672e3da3ad26005b.js","static/chunks/5ae60a052ab5f437.js","static/chunks/ee20803fb301d59e.js","static/chunks/4b2c4a5c35ebb70d.js","static/chunks/3e1e0f9bde3530d2.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/83fc7ea32e18c9a5.js","/_next/static/chunks/471bebfd8d0f0acd.js","/_next/static/chunks/65ece264fa8f6fe1.js","/_next/static/chunks/b27aae090cd67337.js","/_next/static/chunks/4b2c4a5c35ebb70d.js","/_next/static/chunks/0b347558818d2628.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx":{"id":87292,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/471bebfd8d0f0acd.js","/_next/static/chunks/65ece264fa8f6fe1.js","/_next/static/chunks/b27aae090cd67337.js","/_next/static/chunks/4b2c4a5c35ebb70d.js","/_next/static/chunks/0b347558818d2628.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx <module evaluation>":{"id":25251,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/471bebfd8d0f0acd.js","/_next/static/chunks/65ece264fa8f6fe1.js","/_next/static/chunks/b27aae090cd67337.js","/_next/static/chunks/4b2c4a5c35ebb70d.js","/_next/static/chunks/0b347558818d2628.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx":{"id":25251,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/471bebfd8d0f0acd.js","/_next/static/chunks/65ece264fa8f6fe1.js","/_next/static/chunks/b27aae090cd67337.js","/_next/static/chunks/4b2c4a5c35ebb70d.js","/_next/static/chunks/0b347558818d2628.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx <module evaluation>":{"id":75921,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/471bebfd8d0f0acd.js","/_next/static/chunks/65ece264fa8f6fe1.js","/_next/static/chunks/b27aae090cd67337.js","/_next/static/chunks/4b2c4a5c35ebb70d.js","/_next/static/chunks/0b347558818d2628.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx":{"id":75921,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/471bebfd8d0f0acd.js","/_next/static/chunks/65ece264fa8f6fe1.js","/_next/static/chunks/b27aae090cd67337.js","/_next/static/chunks/4b2c4a5c35ebb70d.js","/_next/static/chunks/0b347558818d2628.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js"],"async":false},"[project]/src/presentation/web/components/providers/query-provider.tsx <module evaluation>":{"id":4858,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/471bebfd8d0f0acd.js","/_next/static/chunks/65ece264fa8f6fe1.js","/_next/static/chunks/b27aae090cd67337.js","/_next/static/chunks/4b2c4a5c35ebb70d.js","/_next/static/chunks/0b347558818d2628.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js"],"async":false},"[project]/src/presentation/web/components/providers/query-provider.tsx":{"id":4858,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/471bebfd8d0f0acd.js","/_next/static/chunks/65ece264fa8f6fe1.js","/_next/static/chunks/b27aae090cd67337.js","/_next/static/chunks/4b2c4a5c35ebb70d.js","/_next/static/chunks/0b347558818d2628.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js"],"async":false},"[project]/src/presentation/web/components/features/version/version-page-client.tsx <module evaluation>":{"id":1699,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/471bebfd8d0f0acd.js","/_next/static/chunks/65ece264fa8f6fe1.js","/_next/static/chunks/b27aae090cd67337.js","/_next/static/chunks/4b2c4a5c35ebb70d.js","/_next/static/chunks/0b347558818d2628.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/3e1e0f9bde3530d2.js"],"async":false},"[project]/src/presentation/web/components/features/version/version-page-client.tsx":{"id":1699,"name":"*","chunks":["/_next/static/chunks/83fc7ea32e18c9a5.js","/_next/static/chunks/471bebfd8d0f0acd.js","/_next/static/chunks/65ece264fa8f6fe1.js","/_next/static/chunks/b27aae090cd67337.js","/_next/static/chunks/4b2c4a5c35ebb70d.js","/_next/static/chunks/0b347558818d2628.js","/_next/static/chunks/5ae60a052ab5f437.js","/_next/static/chunks/b4cde06eff374c59.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/3e1e0f9bde3530d2.js"],"async":false}},"ssrModuleMapping":{"40799":{"*":{"id":69218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"73006":{"*":{"id":76926,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"67804":{"*":{"id":78378,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"50122":{"*":{"id":18508,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"19292":{"*":{"id":55259,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"30088":{"*":{"id":33028,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"66658":{"*":{"id":42422,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"98295":{"*":{"id":84831,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"87292":{"*":{"id":66560,"name":"*","chunks":["server/chunks/ssr/node_modules__pnpm_8ec2c790._.js","server/chunks/ssr/_29ca8860._.js","server/chunks/ssr/_e55a0378._.js","server/chunks/ssr/_8b57edb8._.js","server/chunks/ssr/_1b7dae9a._.js","server/chunks/ssr/_ac4a3873._.js","server/chunks/ssr/src_presentation_web_324a47da._.js","server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js","server/chunks/ssr/src_presentation_web_components_357e3eb0._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/[root-of-the-server]__ce859680._.js"],"async":false}},"25251":{"*":{"id":58313,"name":"*","chunks":["server/chunks/ssr/node_modules__pnpm_8ec2c790._.js","server/chunks/ssr/_29ca8860._.js","server/chunks/ssr/_e55a0378._.js","server/chunks/ssr/_8b57edb8._.js","server/chunks/ssr/_1b7dae9a._.js","server/chunks/ssr/_ac4a3873._.js","server/chunks/ssr/src_presentation_web_324a47da._.js","server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js","server/chunks/ssr/src_presentation_web_components_357e3eb0._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/[root-of-the-server]__ce859680._.js"],"async":false}},"75921":{"*":{"id":21333,"name":"*","chunks":["server/chunks/ssr/node_modules__pnpm_8ec2c790._.js","server/chunks/ssr/_29ca8860._.js","server/chunks/ssr/_e55a0378._.js","server/chunks/ssr/_8b57edb8._.js","server/chunks/ssr/_1b7dae9a._.js","server/chunks/ssr/_ac4a3873._.js","server/chunks/ssr/src_presentation_web_324a47da._.js","server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js","server/chunks/ssr/src_presentation_web_components_357e3eb0._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/[root-of-the-server]__ce859680._.js"],"async":false}},"4858":{"*":{"id":41835,"name":"*","chunks":["server/chunks/ssr/node_modules__pnpm_8ec2c790._.js","server/chunks/ssr/_29ca8860._.js","server/chunks/ssr/_e55a0378._.js","server/chunks/ssr/_8b57edb8._.js","server/chunks/ssr/_1b7dae9a._.js","server/chunks/ssr/_ac4a3873._.js","server/chunks/ssr/src_presentation_web_324a47da._.js","server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js","server/chunks/ssr/src_presentation_web_components_357e3eb0._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/[root-of-the-server]__ce859680._.js"],"async":false}},"1699":{"*":{"id":86259,"name":"*","chunks":["server/chunks/ssr/node_modules__pnpm_8ec2c790._.js","server/chunks/ssr/_29ca8860._.js","server/chunks/ssr/_e55a0378._.js","server/chunks/ssr/_8b57edb8._.js","server/chunks/ssr/_1b7dae9a._.js","server/chunks/ssr/_ac4a3873._.js","server/chunks/ssr/src_presentation_web_324a47da._.js","server/chunks/ssr/node_modules__pnpm_ef15a0bd._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/_d4b20e29._.js","server/chunks/ssr/[root-of-the-server]__e91ffd5e._.js","server/chunks/ssr/src_presentation_web_components_357e3eb0._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/[root-of-the-server]__ce859680._.js","server/chunks/ssr/src_presentation_web_components_a5e6c910._.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}},"4858":{"*":{"id":19488,"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/61c4d617e4b83d4b.css","inlined":false},{"path":"static/chunks/8180973e9cd6a99e.css","inlined":false},{"path":"static/chunks/3f21588c6956d5b4.css","inlined":false}],"[project]/src/presentation/web/app/version/page":[{"path":"static/chunks/61c4d617e4b83d4b.css","inlined":false},{"path":"static/chunks/8180973e9cd6a99e.css","inlined":false},{"path":"static/chunks/3f21588c6956d5b4.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/83fc7ea32e18c9a5.js","static/chunks/471bebfd8d0f0acd.js","static/chunks/65ece264fa8f6fe1.js","static/chunks/b27aae090cd67337.js","static/chunks/4b2c4a5c35ebb70d.js","static/chunks/0b347558818d2628.js","static/chunks/5ae60a052ab5f437.js","static/chunks/b4cde06eff374c59.js","static/chunks/672e3da3ad26005b.js"],"[project]/src/presentation/web/app/version/page":["static/chunks/83fc7ea32e18c9a5.js","static/chunks/471bebfd8d0f0acd.js","static/chunks/65ece264fa8f6fe1.js","static/chunks/b27aae090cd67337.js","static/chunks/4b2c4a5c35ebb70d.js","static/chunks/0b347558818d2628.js","static/chunks/5ae60a052ab5f437.js","static/chunks/b4cde06eff374c59.js","static/chunks/672e3da3ad26005b.js","static/chunks/3e1e0f9bde3530d2.js"]}}
@@ -1,3 +1,3 @@
1
- module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},40060,e=>{"use strict";function t(e){let t=globalThis.__shepContainer;if(!t)throw Error("DI container not available. Ensure the CLI bootstrap or dev-server has initialized it.");return t.resolve(e)}e.s(["resolve",()=>t])},16753,e=>{"use strict";var t=e.i(22925),r=e.i(62995),a=e.i(14112),n=e.i(31716),i=e.i(16340),o=e.i(40522),s=e.i(21994),l=e.i(5802),d=e.i(17171),u=e.i(177),c=e.i(43685),p=e.i(84832),h=e.i(92435),v=e.i(41260),x=e.i(80556),m=e.i(93695);e.i(97230);var R=e.i(35162),f=e.i(27980),g=e.i(40060);function w(){try{let{version:e,name:t,description:r}=(0,g.resolve)("IVersionService").getVersion();return f.NextResponse.json({version:e,packageName:t,description:r,branch:"main",commitHash:"113a47ac26f4cdbe4a173e2e1308d6328b5f2b6a",instancePath:"/home/runner/work/cli/cli/src/presentation/web",isDev:!1})}catch{return f.NextResponse.json({version:"1.151.2",packageName:"@shepai/cli",description:"Autonomous AI Native SDLC Platform - Automate the development cycle from idea to deploy",branch:"main",commitHash:"113a47ac26f4cdbe4a173e2e1308d6328b5f2b6a",instancePath:"/home/runner/work/cli/cli/src/presentation/web",isDev:!1})}}e.s(["GET",()=>w,"dynamic",0,"force-dynamic"],35003);var E=e.i(35003);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/version/route",pathname:"/api/version",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/presentation/web/app/api/version/route.ts",nextConfigOutput:"",userland:E}),{workAsyncStorage:y,workUnitAsyncStorage:C,serverHooks:A}=b;function N(){return(0,a.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:C})}async function P(e,t,a){b.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/version/route";f=f.replace(/\/index$/,"")||"/";let g=await b.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:y,parsedUrl:C,isDraftMode:A,prerenderManifest:N,routerServerContext:P,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,resolvedPathname:_,clientReferenceManifest:O,serverActionsManifest:S}=g,q=(0,s.normalizeAppPath)(f),j=!!(N.dynamicRoutes[q]||N.routes[_]),H=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,C,!1):t.end("This page could not be found"),null);if(j&&!A){let e=!!N.routes[_],t=N.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await H();throw new m.NoFallbackError}}let I=null;!j||b.isDev||A||(I="/index"===(I=_)?"/":I);let D=!0===b.isDev||!j,U=j&&!D;S&&O&&(0,o.setManifestsSingleton)({page:f,clientReferenceManifest:O,serverActionsManifest:S});let M=e.method||"GET",$=(0,i.getTracer)(),F=$.getActiveScopeSpan(),K={params:E,prerenderManifest:N,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>b.onRequestError(e,t,a,n,P)},sharedContext:{buildId:w}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),V=d.NextRequestAdapter.fromNodeNextRequest(L,(0,d.signalFromNodeResponse)(t));try{let o=async e=>b.handle(V,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${f}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var i,l;let d=async({previousCacheEntry:r})=>{try{if(!s&&T&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!j)return await (0,p.sendResponse)(L,B,i,K.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,P),t}},u=await b.handleResponse({req:e,nextConfig:y,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:s});if(!j)return null;if((null==u||null==(i=u.value)?void 0:i.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",T?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return s&&j||m.delete(x.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,v.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(L,B,new Response(u.value.body,{headers:m,status:u.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${f}`,kind:i.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof m.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,P),j)throw t;return await (0,p.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>P,"patchFetch",()=>N,"routeModule",()=>b,"serverHooks",()=>A,"workAsyncStorage",()=>y,"workUnitAsyncStorage",()=>C],16753)}];
1
+ module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},40060,e=>{"use strict";function t(e){let t=globalThis.__shepContainer;if(!t)throw Error("DI container not available. Ensure the CLI bootstrap or dev-server has initialized it.");return t.resolve(e)}e.s(["resolve",()=>t])},16753,e=>{"use strict";var t=e.i(22925),r=e.i(62995),a=e.i(14112),n=e.i(31716),o=e.i(16340),i=e.i(40522),s=e.i(21994),l=e.i(5802),d=e.i(17171),c=e.i(177),u=e.i(43685),p=e.i(84832),h=e.i(92435),v=e.i(41260),x=e.i(80556),R=e.i(93695);e.i(97230);var f=e.i(35162),m=e.i(27980),g=e.i(40060);function w(){try{let{version:e,name:t,description:r}=(0,g.resolve)("IVersionService").getVersion();return m.NextResponse.json({version:e,packageName:t,description:r,branch:"HEAD",commitHash:"9c7fcd07f12414a4d7cfafc5e1d3e36c29898a52",instancePath:"/home/runner/work/cli/cli/src/presentation/web",isDev:!1})}catch{return m.NextResponse.json({version:"1.153.0",packageName:"@shepai/cli",description:"Autonomous AI Native SDLC Platform - Automate the development cycle from idea to deploy",branch:"HEAD",commitHash:"9c7fcd07f12414a4d7cfafc5e1d3e36c29898a52",instancePath:"/home/runner/work/cli/cli/src/presentation/web",isDev:!1})}}e.s(["GET",()=>w,"dynamic",0,"force-dynamic"],35003);var E=e.i(35003);let y=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/version/route",pathname:"/api/version",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/presentation/web/app/api/version/route.ts",nextConfigOutput:"",userland:E}),{workAsyncStorage:C,workUnitAsyncStorage:b,serverHooks:A}=y;function N(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:b})}async function P(e,t,a){y.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/version/route";m=m.replace(/\/index$/,"")||"/";let g=await y.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:C,parsedUrl:b,isDraftMode:A,prerenderManifest:N,routerServerContext:P,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,resolvedPathname:_,clientReferenceManifest:H,serverActionsManifest:O}=g,S=(0,s.normalizeAppPath)(m),q=!!(N.dynamicRoutes[S]||N.routes[_]),j=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,b,!1):t.end("This page could not be found"),null);if(q&&!A){let e=!!N.routes[_],t=N.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await j();throw new R.NoFallbackError}}let D=null;!q||y.isDev||A||(D="/index"===(D=_)?"/":D);let I=!0===y.isDev||!q,U=q&&!I;O&&H&&(0,i.setManifestsSingleton)({page:m,clientReferenceManifest:H,serverActionsManifest:O});let M=e.method||"GET",$=(0,o.getTracer)(),F=$.getActiveScopeSpan(),K={params:E,prerenderManifest:N,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:I,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>y.onRequestError(e,t,a,n,P)},sharedContext:{buildId:w}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),V=d.NextRequestAdapter.fromNodeNextRequest(L,(0,d.signalFromNodeResponse)(t));try{let i=async e=>y.handle(V,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${m}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!s&&T&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=K.renderOpts.collectedTags;if(!q)return await (0,p.sendResponse)(L,B,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);d&&(t[x.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await y.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,P),t}},c=await y.handleResponse({req:e,nextConfig:C,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:k,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:s});if(!q)return null;if((null==c||null==(o=c.value)?void 0:o.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",T?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let R=(0,h.fromNodeOutgoingHttpHeaders)(c.value.headers);return s&&q||R.delete(x.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||R.get("Cache-Control")||R.set("Cache-Control",(0,v.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(L,B,new Response(c.value.body,{headers:R,status:c.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${M} ${m}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof R.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:T})},!1,P),q)throw t;return await (0,p.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>P,"patchFetch",()=>N,"routeModule",()=>y,"serverHooks",()=>A,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>b],16753)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__a402b567._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},40060,e=>{"use strict";function t(e){let t=globalThis.__shepContainer;if(!t)throw Error("DI container not available. Ensure the CLI bootstrap or dev-server has initialized it.");return t.resolve(e)}e.s(["resolve",()=>t])},88654,e=>{"use strict";var t=e.i(22925),r=e.i(62995),a=e.i(14112),n=e.i(31716),s=e.i(16340),i=e.i(40522),o=e.i(21994),l=e.i(5802),u=e.i(17171),d=e.i(177),p=e.i(43685),c=e.i(84832),h=e.i(92435),x=e.i(41260),v=e.i(80556),R=e.i(93695);e.i(97230);var f=e.i(35162),g=e.i(27980),m=e.i(40060);async function E(e){try{let t=e.nextUrl.searchParams.get("featureIds");if(!t)return g.NextResponse.json({});let r=t.split(",").filter(Boolean);if(0===r.length)return g.NextResponse.json({});let a=(0,m.resolve)("IInteractiveSessionService"),n=await a.getTurnStatuses(r),s={};for(let[e,t]of n)s[e]=t;return g.NextResponse.json(s)}catch(e){return console.error("[GET /api/interactive/chat/turn-statuses]",e),g.NextResponse.json({error:e instanceof Error?e.message:"Internal server error"},{status:500})}}e.s(["GET",()=>E,"dynamic",0,"force-dynamic"],14281);var w=e.i(14281);let y=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/interactive/chat/turn-statuses/route",pathname:"/api/interactive/chat/turn-statuses",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/presentation/web/app/api/interactive/chat/turn-statuses/route.ts",nextConfigOutput:"",userland:w}),{workAsyncStorage:C,workUnitAsyncStorage:b,serverHooks:A}=y;function T(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:b})}async function N(e,t,a){y.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/interactive/chat/turn-statuses/route";g=g.replace(/\/index$/,"")||"/";let m=await y.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!m)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:E,params:w,nextConfig:C,parsedUrl:b,isDraftMode:A,prerenderManifest:T,routerServerContext:N,isOnDemandRevalidate:P,revalidateOnlyGenerated:S,resolvedPathname:_,clientReferenceManifest:j,serverActionsManifest:k}=m,I=(0,o.normalizeAppPath)(g),O=!!(T.dynamicRoutes[I]||T.routes[_]),q=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,b,!1):t.end("This page could not be found"),null);if(O&&!A){let e=!!T.routes[_],t=T.dynamicRoutes[I];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await q();throw new R.NoFallbackError}}let H=null;!O||y.isDev||A||(H="/index"===(H=_)?"/":H);let U=!0===y.isDev||!O,D=O&&!U;k&&j&&(0,i.setManifestsSingleton)({page:g,clientReferenceManifest:j,serverActionsManifest:k});let M=e.method||"GET",$=(0,s.getTracer)(),F=$.getActiveScopeSpan(),K={params:w,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>y.onRequestError(e,t,a,n,N)},sharedContext:{buildId:E}},B=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(B,(0,u.signalFromNodeResponse)(t));try{let i=async e=>y.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${g}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let u=async({previousCacheEntry:r})=>{try{if(!o&&P&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let u=K.renderOpts.collectedTags;if(!O)return await (0,c.sendResponse)(B,L,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);u&&(t[v.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await y.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,N),t}},d=await y.handleResponse({req:e,nextConfig:C,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:S,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:o});if(!O)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",P?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let R=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&O||R.delete(v.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||R.get("Cache-Control")||R.set("Cache-Control",(0,x.getCacheControlHeader)(d.cacheControl)),await (0,c.sendResponse)(B,L,new Response(d.value.body,{headers:R,status:d.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${g}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof R.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,N),O)throw t;return await (0,c.sendResponse)(B,L,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>T,"routeModule",()=>y,"serverHooks",()=>A,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>b],88654)}];
1
+ module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},40060,e=>{"use strict";function t(e){let t=globalThis.__shepContainer;if(!t)throw Error("DI container not available. Ensure the CLI bootstrap or dev-server has initialized it.");return t.resolve(e)}e.s(["resolve",()=>t])},88654,e=>{"use strict";var t=e.i(22925),r=e.i(62995),a=e.i(14112),n=e.i(31716),s=e.i(16340),i=e.i(40522),o=e.i(21994),l=e.i(5802),u=e.i(17171),d=e.i(177),c=e.i(43685),p=e.i(84832),h=e.i(92435),v=e.i(41260),x=e.i(80556),R=e.i(93695);e.i(97230);var f=e.i(35162),g=e.i(27980),E=e.i(40060);async function m(){try{let e=(0,E.resolve)("IInteractiveSessionService"),t=await e.getAllActiveTurnStatuses(),r={};for(let[e,a]of t)r[e]=a;return g.NextResponse.json(r)}catch(e){return console.error("[GET /api/interactive/chat/turn-statuses]",e),g.NextResponse.json({error:e instanceof Error?e.message:"Internal server error"},{status:500})}}e.s(["GET",()=>m,"dynamic",0,"force-dynamic"],14281);var w=e.i(14281);let y=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/interactive/chat/turn-statuses/route",pathname:"/api/interactive/chat/turn-statuses",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/presentation/web/app/api/interactive/chat/turn-statuses/route.ts",nextConfigOutput:"",userland:w}),{workAsyncStorage:C,workUnitAsyncStorage:b,serverHooks:A}=y;function T(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:b})}async function N(e,t,a){y.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/interactive/chat/turn-statuses/route";g=g.replace(/\/index$/,"")||"/";let E=await y.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!E)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:m,params:w,nextConfig:C,parsedUrl:b,isDraftMode:A,prerenderManifest:T,routerServerContext:N,isOnDemandRevalidate:P,revalidateOnlyGenerated:S,resolvedPathname:_,clientReferenceManifest:k,serverActionsManifest:O}=E,q=(0,o.normalizeAppPath)(g),I=!!(T.dynamicRoutes[q]||T.routes[_]),j=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,b,!1):t.end("This page could not be found"),null);if(I&&!A){let e=!!T.routes[_],t=T.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await j();throw new R.NoFallbackError}}let H=null;!I||y.isDev||A||(H="/index"===(H=_)?"/":H);let U=!0===y.isDev||!I,D=I&&!U;O&&k&&(0,i.setManifestsSingleton)({page:g,clientReferenceManifest:k,serverActionsManifest:O});let M=e.method||"GET",$=(0,s.getTracer)(),F=$.getActiveScopeSpan(),K={params:w,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>y.onRequestError(e,t,a,n,N)},sharedContext:{buildId:m}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=u.NextRequestAdapter.fromNodeNextRequest(L,(0,u.signalFromNodeResponse)(t));try{let i=async e=>y.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${M} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${M} ${g}`)}),o=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var s,l;let u=async({previousCacheEntry:r})=>{try{if(!o&&P&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=K.renderOpts.fetchMetrics;let l=K.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let u=K.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(L,B,s,K.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);u&&(t[x.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:f.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await y.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,N),t}},d=await y.handleResponse({req:e,nextConfig:C,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:S,responseGenerator:u,waitUntil:a.waitUntil,isMinimalMode:o});if(!I)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",P?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let R=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return o&&I||R.delete(x.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||R.get("Cache-Control")||R.set("Cache-Control",(0,v.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(L,B,new Response(d.value.body,{headers:R,status:d.value.status||200})),null};F?await l(F):await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${M} ${g}`,kind:s.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof R.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:P})},!1,N),I)throw t;return await (0,p.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>T,"routeModule",()=>y,"serverHooks",()=>A,"workAsyncStorage",()=>C,"workUnitAsyncStorage",()=>b],88654)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__ab4951b1._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/presentation/web/lib/server-container.ts","../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/dist/esm/build/templates/app-route.js","../../../../../../src/presentation/web/app/api/interactive/chat/turn-statuses/route.ts"],"sourcesContent":["/**\n * Server Container Accessor\n *\n * Provides a `resolve()` helper for server components and API routes to\n * obtain DI-managed instances. The tsyringe container is placed on globalThis\n * by the CLI bootstrap (`shep ui`) or the dev-server (`pnpm dev:web`).\n */\n\nimport type { DependencyContainer, InjectionToken } from 'tsyringe';\n\nconst CONTAINER_KEY = '__shepContainer';\n\n/**\n * Resolve a dependency from the DI container.\n *\n * Usage in server components / API routes:\n * ```ts\n * import { resolve } from '@/lib/server-container';\n * import { ListFeaturesUseCase } from '@shepai/core/application/use-cases/features/list-features.use-case';\n *\n * const features = await resolve(ListFeaturesUseCase).execute();\n * ```\n */\nexport function resolve<T>(token: InjectionToken<T>): T {\n const container = (globalThis as Record<string, unknown>)[CONTAINER_KEY] as\n | DependencyContainer\n | undefined;\n\n if (!container) {\n throw new Error(\n 'DI container not available. Ensure the CLI bootstrap or dev-server has initialized it.'\n );\n }\n\n return container.resolve(token);\n}\n","import { AppRouteRouteModule } from \"next/dist/esm/server/route-modules/app-route/module.compiled\";\nimport { RouteKind } from \"next/dist/esm/server/route-kind\";\nimport { patchFetch as _patchFetch } from \"next/dist/esm/server/lib/patch-fetch\";\nimport { addRequestMeta, getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { setManifestsSingleton } from \"next/dist/esm/server/app-render/manifests-singleton\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { NextRequestAdapter, signalFromNodeResponse } from \"next/dist/esm/server/web/spec-extension/adapters/next-request\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { sendResponse } from \"next/dist/esm/server/send-response\";\nimport { fromNodeOutgoingHttpHeaders, toNodeOutgoingHttpHeaders } from \"next/dist/esm/server/web/utils\";\nimport { getCacheControlHeader } from \"next/dist/esm/server/lib/cache-control\";\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from \"next/dist/esm/lib/constants\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\nimport { CachedRouteKind } from \"next/dist/esm/server/response-cache\";\nimport * as userland from \"INNER_APP_ROUTE\";\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/api/interactive/chat/turn-statuses/route\",\n pathname: \"/api/interactive/chat/turn-statuses\",\n filename: \"route\",\n bundlePath: \"\"\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: \"[project]/src/presentation/web/app/api/interactive/chat/turn-statuses/route.ts\",\n nextConfigOutput,\n userland\n});\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\nexport { routeModule, workAsyncStorage, workUnitAsyncStorage, serverHooks, patchFetch, };\nexport async function handler(req, res, ctx) {\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());\n }\n let srcPage = \"/api/interactive/chat/turn-statuses/route\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/';\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = process.env.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]);\n const render404 = async ()=>{\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return null;\n };\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]);\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404();\n }\n throw new NoFallbackError();\n }\n }\n }\n let cacheKey = null;\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname;\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n const supportsDynamicResponse = // If we're in development, we always support dynamic HTML\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr;\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse;\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest\n });\n }\n const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const context = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts)\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext)\n },\n sharedContext: {\n buildId\n }\n };\n const nodeNextReq = new NodeNextRequest(req);\n const nodeNextRes = new NodeNextResponse(res);\n const nextReq = NextRequestAdapter.fromNodeNextRequest(nodeNextReq, signalFromNodeResponse(res));\n try {\n const invokeRouteModule = async (span)=>{\n return routeModule.handle(nextReq, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${srcPage}`);\n }\n });\n };\n const isMinimalMode = Boolean(process.env.MINIMAL_MODE || getRequestMeta(req, 'minimalMode'));\n const handleResponse = async (currentSpan)=>{\n var _cacheEntry_value;\n const responseGenerator = async ({ previousCacheEntry })=>{\n try {\n if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n const response = await invokeRouteModule(currentSpan);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil;\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil);\n pendingWaitUntil = undefined;\n }\n }\n const cacheTags = context.renderOpts.collectedTags;\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob();\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers);\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type;\n }\n const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= INFINITE_CACHE ? false : context.renderOpts.collectedRevalidate;\n const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= INFINITE_CACHE ? undefined : context.renderOpts.collectedExpire;\n // Create the cache entry for the response.\n const cacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers\n },\n cacheControl: {\n revalidate,\n expire\n }\n };\n return cacheEntry;\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, context.renderOpts.pendingWaitUntil);\n return null;\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n throw err;\n }\n };\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode\n });\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null;\n }\n if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_ROUTE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E701\",\n enumerable: false,\n configurable: true\n });\n }\n if (!isMinimalMode) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers);\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER);\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) {\n headers.set('Cache-Control', getCacheControlHeader(cacheEntry.cacheControl));\n }\n await sendResponse(nodeNextReq, nodeNextRes, // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200\n }));\n return null;\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n // If this is during static generation, throw the error again.\n if (isIsr) throw err;\n // Otherwise, send a 500 response.\n await sendResponse(nodeNextReq, nodeNextRes, new Response(null, {\n status: 500\n }));\n return null;\n }\n}\n\n//# sourceMappingURL=app-route.js.map\n","/**\n * Bulk turn-status API.\n *\n * GET /api/interactive/chat/turn-statuses?featureIds=id1,id2,...\n *\n * Returns a map of featureId → turnStatus ('idle' | 'processing' | 'unread')\n * for all requested features. Used by UI dot indicators on chat buttons.\n */\n\nimport type { NextRequest } from 'next/server';\nimport { NextResponse } from 'next/server';\nimport { resolve } from '@/lib/server-container';\nimport type { IInteractiveSessionService } from '@shepai/core/application/ports/output/services/interactive-session-service.interface';\n\nexport const dynamic = 'force-dynamic';\n\nexport async function GET(request: NextRequest): Promise<NextResponse> {\n try {\n const featureIdsParam = request.nextUrl.searchParams.get('featureIds');\n if (!featureIdsParam) {\n return NextResponse.json({});\n }\n\n const featureIds = featureIdsParam.split(',').filter(Boolean);\n if (featureIds.length === 0) {\n return NextResponse.json({});\n }\n\n const service = resolve<IInteractiveSessionService>('IInteractiveSessionService');\n const statuses = await service.getTurnStatuses(featureIds);\n\n // Convert Map to plain object for JSON serialization\n const result: Record<string, string> = {};\n for (const [id, status] of statuses) {\n result[id] = status;\n }\n\n return NextResponse.json(result);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('[GET /api/interactive/chat/turn-statuses]', error);\n return NextResponse.json(\n { error: error instanceof Error ? error.message : 'Internal server error' },\n { status: 500 }\n );\n }\n}\n"],"names":[],"mappings":"m/BAuBO,SAAS,EAAW,CAAwB,EACjD,IAAM,EAAa,UAAsC,CAAC,AAdtC,eAcoD,CAIxE,GAAI,CAAC,EACH,MAAM,AAAI,GADI,GAEZ,0FAIJ,OAAO,EAAU,OAAO,CAAC,EAC3B,gDCnCA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,KACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,CAAA,CAAA,OAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OCNA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAKO,eAAe,EAAI,CAAoB,EAC5C,GAAI,CACF,IAAM,EAAkB,EAAQ,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,cACzD,GAAI,CAAC,EACH,OAAO,EAAA,MADa,MACD,CAAC,IAAI,CAAC,CAAC,GAG5B,IAAM,EAAa,EAAgB,KAAK,CAAC,KAAK,MAAM,CAAC,SACrD,GAA0B,GAAG,CAAzB,EAAW,MAAM,CACnB,OAAO,EAAA,YAAY,CAAC,IAAI,CAAC,CAAC,GAG5B,IAAM,EAAU,CAAA,EAAA,EAAA,OAAA,AAAO,EAA6B,8BAC9C,EAAW,MAAM,EAAQ,eAAe,CAAC,GAGzC,EAAiC,CAAC,EACxC,IAAK,GAAM,CAAC,EAAI,EAAO,GAAI,EACzB,CAAM,CAAC,EAAG,CAAG,EADsB,AAIrC,OAAO,EAAA,YAAY,CAAC,IAAI,CAAC,EAC3B,CAAE,MAAO,EAAO,CAGd,OADA,QAAQ,KAAK,CAAC,4CAA6C,GACpD,EAAA,YAAY,CAAC,IAAI,CACtB,CAAE,MAAO,aAAiB,MAAQ,EAAM,OAAO,CAAG,uBAAwB,EAC1E,CAAE,OAAQ,GAAI,EAElB,CACF,8BAhCuB,wBDGvB,IAAA,EAAA,EAAA,CAAA,CAAA,OAIA,IAAM,EAAc,IAAI,EAAA,mBAAmB,CAAC,CACxC,WAAY,CACR,KAAM,EAAA,SAAS,CAAC,SAAS,CACzB,KAAM,4CACN,SAAU,sCACV,SAAU,QACV,WAAY,EAChB,EACA,QAAS,CAAA,OACT,IADiD,eACc,CAA3C,EACpB,iBAAkB,iFAClB,iBAZqB,GAarB,SAAA,CACJ,GAIM,kBAAE,CAAgB,sBAAE,CAAoB,aAAE,CAAW,CAAE,CAAG,EAChE,SAAS,IACL,MAAO,CAAA,EAAA,EAAA,UAAW,AAAX,EAAY,kBACf,uBACA,CACJ,EACJ,CAEO,eAAe,EAAQ,CAAG,CAAE,CAAG,CAAE,CAAG,EACnC,EAAY,KAAK,EAAE,AACnB,CAAA,EAAA,EAAA,cAAc,AAAd,EAAe,EAAK,+BAAgC,QAAQ,MAAM,CAAC,MAAM,IAE7E,IAAI,EAAU,4CAKV,EAAU,EAAQ,OAAO,CAAC,WAAY,KAAO,IAMjD,IAAM,EAAgB,MAAM,EAAY,OAAO,CAAC,EAAK,EAAK,SACtD,EACA,mBAHE,CAAA,CAIN,GACA,GAAI,CAAC,EAID,OAHA,EAAI,IADY,MACF,CAAG,IACjB,EAAI,GAAG,CAAC,eACR,AAAiB,OAAO,CAApB,IAAyB,KAAhB,EAAoB,EAAI,SAAS,CAAC,IAAI,CAAC,EAAK,QAAQ,OAAO,IACjE,KAEX,GAAM,SAAE,CAAO,QAAE,CAAM,YAAE,CAAU,WAAE,CAAS,aAAE,CAAW,mBAAE,CAAiB,qBAAE,CAAmB,CAAE,sBAAoB,yBAAE,CAAuB,kBAAE,CAAgB,yBAAE,CAAuB,uBAAE,CAAqB,CAAE,CAAG,EACnN,EAAoB,CAAA,EAAA,EAAA,gBAAA,AAAgB,EAAC,GACvC,EAAQ,GAAQ,EAAkB,aAAa,CAAC,EAAkB,EAAI,EAAkB,MAAM,CAAC,EAAA,AAAiB,EAC9G,EAAY,WAEa,MAAvB,EAA8B,KAAK,EAAI,EAAoB,SAAA,AAAS,EAAE,AACtE,MAAM,EAAoB,SAAS,CAAC,EAAK,EAAK,GAAW,GAEzD,EAAI,GAAG,CAAC,gCAEL,MAEX,GAAI,GAAS,CAAC,EAAa,CACvB,IAAM,GAAgB,CAAQ,EAAkB,MAAM,CAAC,EAAiB,CAClE,EAAgB,EAAkB,aAAa,CAAC,EAAkB,CACxE,GAAI,IAC+B,IAA3B,EAAc,KADH,GACW,EAAc,CAAC,EAAe,CACpD,GAAI,EAAW,YAAY,CAAC,WAAW,CACnC,CADqC,MAC9B,MAAM,GAEjB,OAAM,IAAI,EAAA,eAAe,AAC7B,CAER,CACA,IAAI,EAAW,MACX,GAAU,EAAY,IAAb,CAAkB,EAAK,EAAD,EAG/B,EAAW,AAAa,OAHqB,KAC7C,EAAW,CAAA,EAEwB,IAAM,CAAA,EAE7C,IAAM,EACN,AAAsB,OAAV,CAAkB,IAAb,EAEjB,CAAC,EAKK,EAAqB,GAAS,CAAC,EAIjC,GAAyB,GACzB,CAAA,EAAA,EAAA,iBADkD,IAClD,AAAqB,EAAC,CAClB,KAAM,YAbqF,cAc3F,wBACA,CACJ,GAEJ,IAAM,EAAS,EAAI,MAAM,EAAI,MACvB,EAAS,CAAA,EAAA,EAAA,SAAA,AAAS,IAClB,EAAa,EAAO,kBAAkB,GACtC,EAAU,QACZ,oBACA,EACA,WAAY,CACR,aAAc,CACV,gBAAgB,CAAQ,EAAW,YAAY,CAAC,cACpD,AADkE,EAElE,iBAAiB,CAAQ,EAAW,eAAe,CACnD,0BACA,iBAAkB,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAK,oBACtC,kBAAmB,EAAW,SAAS,CACvC,UAAW,EAAI,SAAS,CACxB,QAAS,AAAC,IACN,EAAI,EAAE,CAAC,QAAS,EACpB,EACA,sBAAkB,EAClB,8BAA+B,CAAC,EAAO,EAAU,EAAc,IAAa,EAAY,cAAc,CAAC,EAAK,EAAO,EAAc,EAAY,EACjJ,EACA,cAAe,SACX,CACJ,CACJ,EACM,EAAc,IAAI,EAAA,eAAe,CAAC,GAClC,EAAc,IAAI,EAAA,gBAAgB,CAAC,GACnC,EAAU,EAAA,kBAAkB,CAAC,mBAAmB,CAAC,EAAa,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAC3F,GAAI,CACA,IAAM,EAAoB,MAAO,GACtB,EAAY,MAAM,CAAC,EAAS,GAAS,OAAO,CAAC,KAChD,GAAI,CAAC,EAAM,OACX,EAAK,aAAa,CAAC,CACf,mBAAoB,EAAI,UAAU,CAClC,WAAY,EAChB,GACA,IAAM,EAAqB,EAAO,qBAAqB,GAEvD,GAAI,CAAC,EACD,OAEJ,GAAI,EAAmB,GAAG,CAAC,EAHF,kBAGwB,EAAA,cAAc,CAAC,aAAa,CAAE,YAC3E,QAAQ,IAAI,CAAC,CAAC,2BAA2B,EAAE,EAAmB,GAAG,CAAC,kBAAkB,qEAAqE,CAAC,EAG9J,IAAM,EAAQ,EAAmB,GAAG,CAAC,cACrC,GAAI,EAAO,CACP,IAAM,EAAO,CAAA,EAAG,EAAO,CAAC,EAAE,EAAA,CAAO,CACjC,EAAK,aAAa,CAAC,CACf,aAAc,EACd,aAAc,EACd,iBAAkB,CACtB,GACA,EAAK,UAAU,CAAC,EACpB,MACI,CADG,CACE,UAAU,CAAC,CAAA,EAAG,EAAO,CAAC,EAAE,EAAA,CAAS,CAE9C,GAEE,GAAgB,CAAoC,CAAA,EAAA,EAAA,EAA5B,YAA4B,AAAc,EAAC,EAAK,eACxE,EAAiB,MAAO,QACtB,EA4FI,EA3FR,IAAM,EAAoB,MAAO,oBAAE,CAAkB,CAAE,IACnD,GAAI,CACA,GAAI,CAAC,GAAiB,GAAwB,GAA2B,CAAC,EAKtE,OAJA,EAAI,SADsF,CAC5E,CAAG,IAEjB,EAAI,SAAS,CAAC,iBAAkB,eAChC,EAAI,GAAG,CAAC,gCACD,KAEX,IAAM,EAAW,MAAM,EAAkB,GACzC,EAAI,YAAY,CAAG,EAAQ,UAAU,CAAC,YAAY,CAClD,IAAI,EAAmB,EAAQ,UAAU,CAAC,gBAAgB,CAGtD,GACI,EAAI,SAAS,EAAE,CACf,CAFc,CAEV,SAAS,CAAC,GACd,OAAmB,GAG3B,IAAM,EAAY,EAAQ,UAAU,CAAC,aAAa,CAGlD,IAAI,EA6BA,OADA,MAAM,CAAA,EAAA,EAAA,YAAA,AAAY,EAAC,EAAa,EAAa,EAAU,EAAQ,UAAU,CAAC,gBAAgB,EACnF,IA7BA,EACP,IAAM,EAAO,MAAM,EAAS,IAAI,GAE1B,EAAU,CAAA,EAAA,EAAA,yBAAA,AAAyB,EAAC,EAAS,OAAO,EACtD,IACA,CAAO,CAAC,EAAA,GADG,mBACmB,CAAC,CAAG,CAAA,EAElC,CAAC,CAAO,CAAC,eAAe,EAAI,EAAK,IAAI,EAAE,CACvC,CAAO,CAAC,eAAe,CAAG,EAAK,IAAI,AAAJ,EAEnC,IAAM,EAAa,AAAkD,SAA3C,EAAQ,UAAU,CAAC,mBAAmB,IAAoB,EAAQ,UAAU,CAAC,mBAAmB,EAAI,EAAA,cAAA,AAAc,GAAG,AAAQ,EAAQ,UAAU,CAAC,mBAAmB,CACvL,EAAS,KAA8C,IAAvC,EAAQ,UAAU,CAAC,eAAe,EAAoB,EAAQ,UAAU,CAAC,eAAe,EAAI,EAAA,cAAc,MAAG,EAAY,EAAQ,UAAU,CAAC,eAAe,CAcjL,MAZmB,CACf,AAWG,MAXI,CACH,KAAM,EAAA,eAAe,CAAC,SAAS,CAC/B,OAAQ,EAAS,MAAM,CACvB,KAAM,OAAO,IAAI,CAAC,MAAM,EAAK,WAAW,YACxC,CACJ,EACA,aAAc,CACV,oBACA,CACJ,CACJ,CAEJ,CAKJ,CAAE,KALS,CAKF,EAAK,CAeV,KAZI,CAAsB,QAAO,KAAK,EAAI,EAAmB,OAAA,AAAO,EAAE,CAElE,MAAM,EAAY,cAAc,CAAC,EAAK,EAAK,CACvC,WAAY,aACZ,UAAW,EACX,UAAW,QACX,iBAAkB,CAAA,EAAA,EAAA,mBAAA,AAAmB,EAAC,oBAClC,uBACA,CACJ,EACJ,GAAG,AATgB,EASJ,GAEb,CACV,CACJ,EACM,EAAa,MAAM,EAAY,cAAc,CAAC,CAChD,iBACA,WACA,EACA,UAAW,EAAA,SAAS,CAAC,SAAS,CAC9B,YAAY,oBACZ,EACA,kBAAmB,wBACnB,0BACA,oBACA,EACA,UAAW,EAAI,SAAS,eACxB,CACJ,GAEA,GAAI,CAAC,EACD,KADQ,EACD,KAEX,GAAI,CAAe,MAAd,CAAqB,EAAS,AAA0C,GAA9C,IAAK,EAAoB,EAAW,KAAA,AAAK,EAAY,KAAK,EAAI,EAAkB,IAAI,IAAM,EAAA,eAAe,CAAC,SAAS,CAE9I,CAFgJ,KAE1I,OAAO,cAAc,CAAC,AAAI,MAAM,CAAC,kDAAkD,EAAgB,MAAd,CAAqB,EAAS,AAA2C,GAA/C,IAAK,EAAqB,EAAW,KAAA,AAAK,EAAY,KAAK,EAAI,EAAmB,IAAI,CAAA,CAAE,EAAG,oBAAqB,CACjO,MAAO,OACP,WAAY,GACZ,cAAc,CAClB,EAEA,CAAC,GACD,EAAI,SAAS,CADG,AACF,iBAAkB,EAAuB,cAAgB,EAAW,MAAM,CAAG,OAAS,EAAW,OAAO,CAAG,QAAU,OAGnI,GACA,EAAI,QADS,CACA,CAAC,gBAAiB,2DAEnC,IAAM,EAAU,CAAA,EAAA,EAAA,2BAAA,AAA2B,EAAC,EAAW,KAAK,CAAC,OAAO,EAcpE,OAbI,AAAE,CAAD,EAAkB,GACnB,EADwB,AAChB,GADmB,GACb,CAAC,EAAA,sBAAsB,GAIrC,EAAW,YAAY,EAAK,EAAD,AAAK,SAAS,CAAC,kBAAqB,EAAD,AAAS,GAAG,CAAC,kBAAkB,AAC7F,EAAQ,GAAG,CAAC,gBAAiB,CAAA,EAAA,EAAA,qBAAA,AAAqB,EAAC,EAAW,YAAY,GAE9E,MAAM,CAAA,EAAA,EAAA,YAAA,AAAY,EAAC,EAAa,EAChC,IAAI,SAAS,EAAW,KAAK,CAAC,IAAI,CAAE,SAChC,EACA,OAAQ,EAAW,KAAK,CAAC,MAAM,EAAI,GACvC,IACO,IACX,EAGI,EACA,MAAM,EAAe,EADT,CAGZ,MAAM,EAAO,qBAAqB,CAAC,EAAI,OAAO,CAAE,IAAI,EAAO,KAAK,CAAC,EAAA,cAAc,CAAC,aAAa,CAAE,CACvF,SAAU,CAAA,EAAG,EAAO,CAAC,EAAE,EAAA,CAAS,CAChC,KAAM,EAAA,QAAQ,CAAC,MAAM,CACrB,WAAY,CACR,cAAe,EACf,cAAe,EAAI,GAAG,AAC1B,CACJ,EAAG,GAEf,CAAE,MAAO,EAAK,CAeV,GAdM,aAAe,EAAA,eAAe,EAEhC,CAFmC,KAE7B,EAAY,cAAc,CAAC,EAAK,EAAK,CACvC,WAAY,aACZ,UAAW,EACX,UAAW,QACX,iBAAkB,CAAA,EAAA,EAAA,mBAAA,AAAmB,EAAC,oBAClC,uBACA,CACJ,EACJ,GAAG,AATgB,EASJ,GAIf,EAAO,MAAM,EAKjB,OAHA,MAAM,CAAA,EAAA,EAAA,YAAA,AAAY,EAAC,EAAa,EAAa,IAAI,SAAS,KAAM,CAC5D,OAAQ,GACZ,IACO,IACX,CACJ,EAEA,qCAAqC","ignoreList":[1]}
1
+ {"version":3,"sources":["../../../../../../src/presentation/web/lib/server-container.ts","../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/dist/esm/build/templates/app-route.js","../../../../../../src/presentation/web/app/api/interactive/chat/turn-statuses/route.ts"],"sourcesContent":["/**\n * Server Container Accessor\n *\n * Provides a `resolve()` helper for server components and API routes to\n * obtain DI-managed instances. The tsyringe container is placed on globalThis\n * by the CLI bootstrap (`shep ui`) or the dev-server (`pnpm dev:web`).\n */\n\nimport type { DependencyContainer, InjectionToken } from 'tsyringe';\n\nconst CONTAINER_KEY = '__shepContainer';\n\n/**\n * Resolve a dependency from the DI container.\n *\n * Usage in server components / API routes:\n * ```ts\n * import { resolve } from '@/lib/server-container';\n * import { ListFeaturesUseCase } from '@shepai/core/application/use-cases/features/list-features.use-case';\n *\n * const features = await resolve(ListFeaturesUseCase).execute();\n * ```\n */\nexport function resolve<T>(token: InjectionToken<T>): T {\n const container = (globalThis as Record<string, unknown>)[CONTAINER_KEY] as\n | DependencyContainer\n | undefined;\n\n if (!container) {\n throw new Error(\n 'DI container not available. Ensure the CLI bootstrap or dev-server has initialized it.'\n );\n }\n\n return container.resolve(token);\n}\n","import { AppRouteRouteModule } from \"next/dist/esm/server/route-modules/app-route/module.compiled\";\nimport { RouteKind } from \"next/dist/esm/server/route-kind\";\nimport { patchFetch as _patchFetch } from \"next/dist/esm/server/lib/patch-fetch\";\nimport { addRequestMeta, getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { setManifestsSingleton } from \"next/dist/esm/server/app-render/manifests-singleton\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { NextRequestAdapter, signalFromNodeResponse } from \"next/dist/esm/server/web/spec-extension/adapters/next-request\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { sendResponse } from \"next/dist/esm/server/send-response\";\nimport { fromNodeOutgoingHttpHeaders, toNodeOutgoingHttpHeaders } from \"next/dist/esm/server/web/utils\";\nimport { getCacheControlHeader } from \"next/dist/esm/server/lib/cache-control\";\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from \"next/dist/esm/lib/constants\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\nimport { CachedRouteKind } from \"next/dist/esm/server/response-cache\";\nimport * as userland from \"INNER_APP_ROUTE\";\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/api/interactive/chat/turn-statuses/route\",\n pathname: \"/api/interactive/chat/turn-statuses\",\n filename: \"route\",\n bundlePath: \"\"\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: \"[project]/src/presentation/web/app/api/interactive/chat/turn-statuses/route.ts\",\n nextConfigOutput,\n userland\n});\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\nexport { routeModule, workAsyncStorage, workUnitAsyncStorage, serverHooks, patchFetch, };\nexport async function handler(req, res, ctx) {\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());\n }\n let srcPage = \"/api/interactive/chat/turn-statuses/route\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/';\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = process.env.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]);\n const render404 = async ()=>{\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false);\n } else {\n res.end('This page could not be found');\n }\n return null;\n };\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]);\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404();\n }\n throw new NoFallbackError();\n }\n }\n }\n let cacheKey = null;\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname;\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey;\n }\n const supportsDynamicResponse = // If we're in development, we always support dynamic HTML\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr;\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse;\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest\n });\n }\n const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const context = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts)\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext)\n },\n sharedContext: {\n buildId\n }\n };\n const nodeNextReq = new NodeNextRequest(req);\n const nodeNextRes = new NodeNextResponse(res);\n const nextReq = NextRequestAdapter.fromNodeNextRequest(nodeNextReq, signalFromNodeResponse(res));\n try {\n const invokeRouteModule = async (span)=>{\n return routeModule.handle(nextReq, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${srcPage}`);\n }\n });\n };\n const isMinimalMode = Boolean(process.env.MINIMAL_MODE || getRequestMeta(req, 'minimalMode'));\n const handleResponse = async (currentSpan)=>{\n var _cacheEntry_value;\n const responseGenerator = async ({ previousCacheEntry })=>{\n try {\n if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\n res.statusCode = 404;\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED');\n res.end('This page could not be found');\n return null;\n }\n const response = await invokeRouteModule(currentSpan);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil;\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil);\n pendingWaitUntil = undefined;\n }\n }\n const cacheTags = context.renderOpts.collectedTags;\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob();\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers);\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type;\n }\n const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= INFINITE_CACHE ? false : context.renderOpts.collectedRevalidate;\n const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= INFINITE_CACHE ? undefined : context.renderOpts.collectedExpire;\n // Create the cache entry for the response.\n const cacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers\n },\n cacheControl: {\n revalidate,\n expire\n }\n };\n return cacheEntry;\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, context.renderOpts.pendingWaitUntil);\n return null;\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n throw err;\n }\n };\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode\n });\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null;\n }\n if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_ROUTE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E701\",\n enumerable: false,\n configurable: true\n });\n }\n if (!isMinimalMode) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers);\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER);\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) {\n headers.set('Cache-Control', getCacheControlHeader(cacheEntry.cacheControl));\n }\n await sendResponse(nodeNextReq, nodeNextRes, // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200\n }));\n return null;\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n // If this is during static generation, throw the error again.\n if (isIsr) throw err;\n // Otherwise, send a 500 response.\n await sendResponse(nodeNextReq, nodeNextRes, new Response(null, {\n status: 500\n }));\n return null;\n }\n}\n\n//# sourceMappingURL=app-route.js.map\n","/**\n * Bulk turn-status API.\n *\n * GET /api/interactive/chat/turn-statuses\n *\n * Returns ALL non-idle turn statuses as { featureId: turnStatus }.\n * No parameters needed — the backend knows which sessions are active.\n */\n\nimport { NextResponse } from 'next/server';\nimport { resolve } from '@/lib/server-container';\nimport type { IInteractiveSessionService } from '@shepai/core/application/ports/output/services/interactive-session-service.interface';\n\nexport const dynamic = 'force-dynamic';\n\nexport async function GET(): Promise<NextResponse> {\n try {\n const service = resolve<IInteractiveSessionService>('IInteractiveSessionService');\n const statuses = await service.getAllActiveTurnStatuses();\n\n // Convert Map to plain object for JSON serialization\n const result: Record<string, string> = {};\n for (const [id, status] of statuses) {\n result[id] = status;\n }\n\n return NextResponse.json(result);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('[GET /api/interactive/chat/turn-statuses]', error);\n return NextResponse.json(\n { error: error instanceof Error ? error.message : 'Internal server error' },\n { status: 500 }\n );\n }\n}\n"],"names":[],"mappings":"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","ignoreList":[1]}
@@ -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)("401cc1825533afe4cb636cb83240e9c7b192e55386",f.callServer,void 0,f.findSourceMapURL,"createFeature");var h=a.i(45242),i=a.i(14177),j=a.i(10606),k=a.i(3942),l=a.i(46168),m=a.i(42527),n=a.i(88064);let o=(0,a.i(25700).default)("git-fork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]]);var p=a.i(62147),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),w=a.i(79620),x=a.i(584),y=a.i(58339),z=a.i(80646),A=a.i(96867),B=a.i(82934),C=a.i(96213);a.i(307);var D=a.i(30931);let E=(0,f.createServerReference)("40eaad8568689d977dfdbb2986b0a7d050d21d09b4",f.callServer,void 0,f.findSourceMapURL,"getViewerPermission");var F=a.i(61781),G=a.i(13126),H=a.i(1377);a.i(21434);var I=a.i(34379),J=a.i(21333),K=a.i(35640),L=a.i(39116);let M=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),N=[{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."}],O={allowPrd:!1,allowPlan:!1,allowMerge:!1};function P({open:a,onClose:d,onSubmit:e,repositoryPath:f,isSubmitting:g=!1,workflowDefaults:i,features:j,repositories:m,initialParentId:n,currentAgentType:v,currentModel:z,initialDescription:G,canPushDirectly:H}){let I=(0,r.useSoundAction)("create"),J=f&&(!m||0===m.length||m.some(a=>a.path===f))?f:"",K=i?.approvalGates??O,P=i?.push??!1,S=i?.openPr??!1,T=i?.ciWatchEnabled!==!1,U=i?.enableEvidence??!1,V=i?.commitEvidence??!1,[W,X]=(0,c.useState)(G??"");(0,c.useEffect)(()=>{G&&X(G)},[G]);let[Y,Z]=(0,c.useState)([]),[$,_]=(0,c.useState)({...K}),[aa,ab]=(0,c.useState)(P),[ac,ad]=(0,c.useState)(S),[ae,af]=(0,c.useState)(i?.ciWatchEnabled!==!1),[ag,ah]=(0,c.useState)(U),[ai,aj]=(0,c.useState)(V),[ak,al]=(0,c.useState)(void 0),[am,an]=(0,c.useState)(!1),[ao,ap]=(0,c.useState)(!1),[aq,ar]=(0,c.useState)(!1),[as,at]=(0,c.useState)(!0),[au,av]=(0,c.useState)(void 0),[aw,ax]=(0,c.useState)(void 0),[ay,az]=(0,c.useState)(J||void 0),[aA,aB]=(0,c.useState)(m??[]),[aC,aD]=(0,c.useState)(!1),[aE,aF]=(0,c.useState)(null),[aG,aH]=(0,c.useState)(!1),aI=(0,c.useRef)(crypto.randomUUID()),aJ=(0,c.useRef)(0),aK=(0,c.useRef)(null);(0,c.useEffect)(()=>{i&&(_({...i.approvalGates}),ab(i.push),ad(i.openPr),af(!1!==i.ciWatchEnabled),ah(i.enableEvidence),aj(i.commitEvidence))},[i]),(0,c.useEffect)(()=>{aB(m??[])},[m]),(0,c.useEffect)(()=>{a&&n&&al(n)},[a,n]);let[aL,aM]=(0,c.useState)(H??!1);(0,c.useEffect)(()=>{aM(H??!1)},[H]);let aN=(0,c.useRef)(ay);(0,c.useEffect)(()=>{ay&&ay!==aN.current&&(aN.current=ay,E(ay).then(a=>aM(a.canPushDirectly)).catch(()=>aM(!1)))},[ay]),(0,c.useEffect)(()=>{aL&&(ar(!1),ab(P),ad(S),at(!0))},[aL,P,S]);let aO=(0,c.useCallback)(()=>{X(""),Z([]),_({...K}),ab(P),ad(S),af(T),ah(U),aj(V),al(void 0),az(J||void 0),aB(m??[]),an(!1),ap(!1),ar(!1),at(!0),av(void 0),ax(void 0),aF(null),aJ.current=0,aD(!1)},[K,P,S,U,T,V,J,m]),aP=""!==W.trim()||Y.length>0,{attemptClose:aQ}=(0,C.useGuardedDrawerClose)({open:a,isDirty:aP,onClose:d,onReset:aO}),aR=(0,c.useCallback)(async a=>{for(let b of(aF(null),a)){if(b.size>0xa00000)return void aF(`"${b.name}" exceeds 10 MB limit`);let a=function(a){let b=a.lastIndexOf(".");return b>=0?a.slice(b).toLowerCase():""}(b.name);if(a&&!M.has(a))return void aF(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();Z(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:b.type||"application/octet-stream",path:"",loading:!0}]);try{let c=new FormData;c.append("file",b),c.append("sessionId",aI.current);let d=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!d.ok){let b=await d.json().catch(()=>({error:"Upload failed"}));Z(b=>b.filter(b=>b.id!==a)),aF(b.error??"Upload failed");return}let e=await d.json();Z(b=>b.some(b=>b.id!==a&&b.path===e.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...e,id:a,loading:!1}:b))}catch{Z(b=>b.filter(b=>b.id!==a)),aF("Upload failed")}}},[]),aS=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aJ.current+=1,1===aJ.current&&aD(!0)},[]),aT=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aJ.current-=1,0===aJ.current&&aD(!1)},[]),aU=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),aV=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aJ.current=0,aD(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&aR(b)},[aR]),aW=(0,c.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a of Array.from(b))if("file"===a.kind){let b=a.getAsFile();b&&c.push(b)}c.length>0&&(a.preventDefault(),aR(c))},[aR]),aX=(0,c.useCallback)(a=>{if(a.preventDefault(),!W.trim())return;let b=ay??J;b&&(I.play(),e({description:W.trim(),attachments:Y.filter(a=>!a.loading),repositoryPath:b,approvalGates:{allowPrd:$.allowPrd??!1,allowPlan:$.allowPlan??!1,allowMerge:$.allowMerge??!1},push:!!aq||aa||ac,openPr:!!aq||ac,ciWatchEnabled:ae,enableEvidence:ag,commitEvidence:ai,fast:am,forkAndPr:aq,commitSpecs:as,...ao?{pending:ao}:{},...au?{agentType:au}:{},...aw?{model:aw}:{},...ak?{parentId:ak}:{},sessionId:aI.current}),aO())},[W,Y,$,ay,J,e,aa,ac,ag,ae,ai,am,aq,as,ao,au,aw,ak,I,aO]),aY=(0,c.useCallback)(async()=>{try{let a=await (0,L.pickFiles)();if(!a)return;for(let b of a){let a=crypto.randomUUID();Z(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let c=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:b.path,sessionId:aI.current})});if(!c.ok){let b=await c.json().catch(()=>({error:"Upload failed"}));Z(b=>b.filter(b=>b.id!==a)),aF(b.error??"Upload failed");return}let d=await c.json();Z(b=>b.some(b=>b.id!==a&&b.path===d.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...d,id:a,loading:!1}:b))}catch{Z(b=>b.filter(b=>b.id!==a)),aF("Upload failed")}}}catch{}},[]),aZ=(0,c.useCallback)(a=>{Z(b=>b.filter(b=>b.id!==a))},[]),a$=(0,c.useCallback)((a,b)=>{Z(c=>c.map(c=>c.id===a?{...c,notes:b}:c))},[]),a_=(0,c.useRef)(null),a0=(0,c.useCallback)(a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),a_.current?.requestSubmit())},[]),a1=(0,c.useCallback)(()=>{aH(!0)},[]),a2=(0,c.useCallback)(()=>{setTimeout(()=>{let a=aK.current?.contains(document.activeElement),b=aK.current?.querySelector('[aria-expanded="true"]')!==null;a||b||aH(!1)},0)},[]),a3=j&&j.length>0,a4=!J&&!ay,a5=!J&&void 0!==m;return(0,b.jsx)(s.BaseDrawer,{open:a,onClose:aQ,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:aQ,disabled:g,children:"Cancel"}),(0,b.jsx)(u.Button,{type:"submit",form:"create-feature-form",disabled:!W.trim()||g||a4,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",{ref:a_,id:"create-feature-form",onSubmit:aX,onKeyDown:a0,className:"flex flex-col gap-4",children:[a5?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,b.jsx)(x.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"REPOSITORY"}),(0,b.jsx)(R,{repositories:aA,value:ay,onChange:az,onAddRepository:a=>{aB(b=>[...b,a]),az(a.path)},disabled:g})]}):J?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,b.jsx)(x.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"REPOSITORY"}),(0,b.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:m?.find(a=>a.path===J)?.name??J.split("/").pop()})]}):null,(0,b.jsxs)("div",{role:"region","aria-label":"File drop zone","data-drag-over":aC?"true":"false",onDragEnter:aS,onDragLeave:aT,onDragOver:aU,onDrop:aV,className:(0,q.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",aC&&"border-primary/50 bg-primary/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",{ref:aK,onFocus:a1,onBlur:a2,className:(0,q.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",aG&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,b.jsx)(w.Textarea,{id:"feature-description",placeholder:"e.g. Add GitHub OAuth login with callback handling and token refresh...",value:W,onChange:a=>X(a.target.value),onPaste:aW,required:!0,disabled:g,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),Y.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:Y.map(a=>(0,b.jsx)(D.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>aZ(a.id),disabled:g,loading:a.loading,notes:a.notes,onNotesChange:b=>a$(a.id,b)},a.id))}),aE?(0,b.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:aE}):null,(0,b.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,b.jsx)(F.AgentModelPicker,{initialAgentType:au??v??"claude-code",initialModel:aw??z??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(a,b)=>{av(a),ax(b)},disabled:g,className:"w-55"}),(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:"pending-mode",checked:ao,onCheckedChange:ap,disabled:g}),(0,b.jsxs)(x.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(l.Clock,{className:"h-3.5 w-3.5"}),"Pending"]})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Create without starting — start manually later."})]}),(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-2",children:[(0,b.jsx)(A.Switch,{id:"fast-mode",checked:am,onCheckedChange:an,disabled:g}),(0,b.jsxs)(x.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(k.Zap,{className:"h-3.5 w-3.5"}),"Fast Mode"]})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Skip SDLC phases and implement directly from your prompt."})]}),(0,b.jsxs)(B.Tooltip,{children:[(0,b.jsx)(B.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:aY,disabled:g,"aria-label":"Attach files",className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,b.jsx)(h.PaperclipIcon,{className:"h-4 w-4"})})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Attach files"})]})]})]})]}),a3&&void 0!==n?(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)(Q,{features:j,value:ak,onChange:al,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:N.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:$[a.id]??!1,onCheckedChange:b=>_(c=>({...c,[a.id]:b})),disabled:g||am&&("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:am&&("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=N.every(a=>$[a.id]),b={};for(let c of N)b[c.id]=!a;_(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",N.every(a=>$[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.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:"EVIDENCE"})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Collect and attach evidence after implementation."})]}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(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:"enable-evidence",size:"sm",checked:ag,onCheckedChange:a=>{ah(a),a||aj(!1)},disabled:g}),(0,b.jsx)(x.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:"Collect"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Capture screenshots and artifacts 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:"commit-evidence",size:"sm",checked:ai,onCheckedChange:aj,disabled:g||!ag||!ac&&!aq}),(0,b.jsx)(x.Label,{htmlFor:"commit-evidence",className:(0,q.cn)("cursor-pointer text-xs font-medium",(!ag||!ac&&!aq)&&"opacity-50"),children:"Add to PR"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:ac||aq?ag?"Include evidence in the pull request body.":"Requires evidence collection to be enabled":"Requires PR to be enabled"})]})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-start gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 pt-0.5 text-xs font-semibold tracking-wider",children:"GIT"}),(0,b.jsxs)("div",{className:"flex flex-1 flex-wrap 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:!!aq||aa||ac,onCheckedChange:a=>{ab(a),!a&&ac&&ad(!1)},disabled:g||aq}),(0,b.jsx)(x.Label,{htmlFor:"push",className:(0,q.cn)("cursor-pointer text-xs font-medium",aq&&"opacity-50"),children:"Push"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:aq?"Enabled — contributing to upstream":"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:!!aq||ac,onCheckedChange:a=>{ad(a),a||aj(!1)},disabled:g||aq}),(0,b.jsx)(x.Label,{htmlFor:"open-pr",className:(0,q.cn)("cursor-pointer text-xs font-medium",aq&&"opacity-50"),children:"PR"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:aq?"Enabled — contributing to upstream":"Open a pull request after pushing."})]}),(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:"ci-watch",size:"sm",checked:ae,onCheckedChange:af,disabled:g}),(0,b.jsx)(x.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:"Watch"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Watch CI and auto-fix after push."})]}),(0,b.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(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:"commit-specs",size:"sm",checked:as,onCheckedChange:at,disabled:g}),(0,b.jsxs)(x.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(p.FileText,{className:"h-3 w-3"}),"Commit Specs"]})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Commit specs to repository."})]}),!aL&&(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:"fork-and-pr",size:"sm",checked:aq,onCheckedChange:a=>{ar(a),a&&at(!1)},disabled:g}),(0,b.jsxs)(x.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(o,{className:"h-3 w-3"}),"Fork & PR"]})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Contribute via fork (PR to upstream)."})]})]})]})]})]})})})})}function Q({features:a,value:d,onChange:e,disabled:f}){let[g,h]=(0,c.useState)(!1),[k,l]=(0,c.useState)(""),m=(0,c.useRef)(null),n=a.find(a=>a.id===d),o=k.trim()?a.filter(a=>a.name.toLowerCase().includes(k.toLowerCase())||a.id.toLowerCase().includes(k.toLowerCase())):a,p=(0,c.useCallback)(a=>{e(a),h(!1),l("")},[e]);return(0,c.useEffect)(()=>{g?setTimeout(()=>m.current?.focus(),0):l("")},[g]),(0,b.jsxs)(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",!n&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:n?`${n.name} (${n.id.slice(0,8)})`:"Select parent feature..."}),(0,b.jsx)(i.ChevronsUpDown,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(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:m,placeholder:"Search features...",value:k,onChange:a=>l(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,b.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===d,onClick:()=>p(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)(j.CheckIcon,{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===o.length&&k?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No features found."}):o.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.id,onClick:()=>p(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)(j.CheckIcon,{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 R({repositories:a,value:d,onChange:e,onAddRepository:f,disabled:g}){let[h,k]=(0,c.useState)(!1),[l,o]=(0,c.useState)(""),[p,r]=(0,c.useState)(!1),[s,t]=(0,c.useState)(null),[u,w]=(0,c.useState)(!1),x=(0,c.useRef)(null),{reactFileManager:y}=(0,J.useFeatureFlags)(),A=a.find(a=>a.path===d),B=l.trim()?a.filter(a=>a.name.toLowerCase().includes(l.toLowerCase())||a.path.toLowerCase().includes(l.toLowerCase())):a,C=(0,c.useCallback)(a=>{e(a),k(!1),o("")},[e]),D=(0,c.useCallback)(async a=>{let b=await (0,K.addRepository)({path:a});if(b.error){t(b.error),r(!1);return}if(b.repository){let a={id:b.repository.id,name:b.repository.name,path:b.repository.path};f?.(a),e(a.path),k(!1),o("")}},[f,e]),E=(0,c.useCallback)(async()=>{if(!p){if(y)return void w(!0);r(!0),t(null);try{let a=await (0,H.pickFolder)();if(!a)return void r(!1);await D(a)}catch{w(!0)}finally{r(!1)}}},[p,y,D]),F=(0,c.useCallback)(async a=>{if(w(!1),a){r(!0),t(null);try{await D(a)}catch(a){t(a instanceof Error?a.message:"Failed to add repository")}finally{r(!1)}}},[D]);return(0,c.useEffect)(()=>{h?setTimeout(()=>x.current?.focus(),0):o("")},[h]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(z.Popover,{open:h,onOpenChange:k,children:[(0,b.jsx)(z.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button",role:"combobox","aria-expanded":h,"aria-label":"Repository",disabled:g,"data-testid":"repository-combobox",className:(0,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",!A&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:A?A.name:"Select repository..."}),(0,b.jsx)(i.ChevronsUpDown,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(z.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"border-b p-2",children:(0,b.jsx)(v.Input,{ref:x,placeholder:"Search repositories...",value:l,onChange:a=>o(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,b.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===B.length?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):B.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.path,onClick:()=>C(a.path),className:(0,q.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",d===a.path&&"bg-accent/50"),"data-testid":`repository-option-${a.id}`,children:[(0,b.jsx)(j.CheckIcon,{className:(0,q.cn)("h-4 w-4 shrink-0",d!==a.path&&"invisible")}),(0,b.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,b.jsx)("span",{className:"truncate",children:a.name}),(0,b.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:a.path})]})]},a.id))}),(0,b.jsx)(G.Separator,{}),(0,b.jsxs)("button",{type:"button",onClick:E,disabled:p,className:"hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm","data-testid":"add-repository-item",children:[p?(0,b.jsx)(n.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,b.jsx)(m.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:"Add new repository..."})]}),s?(0,b.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:s}):null]})})]}),(0,b.jsx)(I.ReactFileManagerDialog,{open:u,onOpenChange:a=>{a||w(!1)},onSelect:F})]})}function S({repositoryPath:a,initialParentId:f,initialDescription:h,features:i,repositories:j,workflowDefaults:k,currentAgentType:l,currentModel:m,canPushDirectly:n}){let o=(0,d.useRouter)(),[p,q]=(0,c.useState)(!1),r=(0,d.usePathname)().startsWith("/create"),s=!p&&r;(0,c.useEffect)(()=>{!r&&p&&q(!1)},[r,p]);let t=(0,c.useCallback)(()=>{o.push("/")},[o]),u=(0,c.useCallback)(a=>{q(!0),o.push("/"),g(a).then(b=>{b.error?e.toast.error(b.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:b.feature.id,name:b.feature.name,description:b.feature.description,repositoryPath:b.feature.repositoryPath,parentId:a.parentId}}))}).catch(()=>{e.toast.error("Failed to create feature"),q(!1)})},[o]);return(0,b.jsx)(P,{open:s,onClose:t,onSubmit:u,repositoryPath:a,features:i,repositories:j,workflowDefaults:k,initialParentId:f,initialDescription:h,isSubmitting:p,currentAgentType:l,currentModel:m,canPushDirectly:n})}a.s(["CreateDrawerClient",()=>S],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)("40857c5f42d03a38930a2f5b521bca14f4c5fabfd7",f.callServer,void 0,f.findSourceMapURL,"createFeature");var h=a.i(45242),i=a.i(14177),j=a.i(10606),k=a.i(3942),l=a.i(46168),m=a.i(42527),n=a.i(88064);let o=(0,a.i(25700).default)("git-fork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]]);var p=a.i(62147),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),w=a.i(79620),x=a.i(584),y=a.i(58339),z=a.i(80646),A=a.i(96867),B=a.i(82934),C=a.i(96213);a.i(307);var D=a.i(30931);let E=(0,f.createServerReference)("40d0a1fb08f973eaefd6c1afb807216b9fb3295921",f.callServer,void 0,f.findSourceMapURL,"getViewerPermission");var F=a.i(61781),G=a.i(13126),H=a.i(1377);a.i(21434);var I=a.i(34379),J=a.i(21333),K=a.i(71932),L=a.i(39116);let M=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".bmp",".ico",".pdf",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".txt",".md",".csv",".json",".yaml",".yml",".xml",".ts",".tsx",".js",".jsx",".py",".rb",".go",".rs",".java",".c",".cpp",".h",".hpp",".cs",".swift",".kt",".html",".css",".scss",".less",".sh",".bash",".zsh",".fish",".toml",".ini",".cfg",".conf",".env",".zip",".tar",".gz",".log"]),N=[{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."}],O={allowPrd:!1,allowPlan:!1,allowMerge:!1};function P({open:a,onClose:d,onSubmit:e,repositoryPath:f,isSubmitting:g=!1,workflowDefaults:i,features:j,repositories:m,initialParentId:n,currentAgentType:v,currentModel:z,initialDescription:G,canPushDirectly:H}){let I=(0,r.useSoundAction)("create"),J=f&&(!m||0===m.length||m.some(a=>a.path===f))?f:"",K=i?.approvalGates??O,P=i?.push??!1,S=i?.openPr??!1,T=i?.ciWatchEnabled!==!1,U=i?.enableEvidence??!1,V=i?.commitEvidence??!1,[W,X]=(0,c.useState)(G??"");(0,c.useEffect)(()=>{G&&X(G)},[G]);let[Y,Z]=(0,c.useState)([]),[$,_]=(0,c.useState)({...K}),[aa,ab]=(0,c.useState)(P),[ac,ad]=(0,c.useState)(S),[ae,af]=(0,c.useState)(i?.ciWatchEnabled!==!1),[ag,ah]=(0,c.useState)(U),[ai,aj]=(0,c.useState)(V),[ak,al]=(0,c.useState)(void 0),[am,an]=(0,c.useState)(!1),[ao,ap]=(0,c.useState)(!1),[aq,ar]=(0,c.useState)(!1),[as,at]=(0,c.useState)(!0),[au,av]=(0,c.useState)(void 0),[aw,ax]=(0,c.useState)(void 0),[ay,az]=(0,c.useState)(J||void 0),[aA,aB]=(0,c.useState)(m??[]),[aC,aD]=(0,c.useState)(!1),[aE,aF]=(0,c.useState)(null),[aG,aH]=(0,c.useState)(!1),aI=(0,c.useRef)(crypto.randomUUID()),aJ=(0,c.useRef)(0),aK=(0,c.useRef)(null);(0,c.useEffect)(()=>{i&&(_({...i.approvalGates}),ab(i.push),ad(i.openPr),af(!1!==i.ciWatchEnabled),ah(i.enableEvidence),aj(i.commitEvidence))},[i]),(0,c.useEffect)(()=>{aB(m??[])},[m]),(0,c.useEffect)(()=>{a&&n&&al(n)},[a,n]);let[aL,aM]=(0,c.useState)(H??!1);(0,c.useEffect)(()=>{aM(H??!1)},[H]);let aN=(0,c.useRef)(ay);(0,c.useEffect)(()=>{ay&&ay!==aN.current&&(aN.current=ay,E(ay).then(a=>aM(a.canPushDirectly)).catch(()=>aM(!1)))},[ay]),(0,c.useEffect)(()=>{aL&&(ar(!1),ab(P),ad(S),at(!0))},[aL,P,S]);let aO=(0,c.useCallback)(()=>{X(""),Z([]),_({...K}),ab(P),ad(S),af(T),ah(U),aj(V),al(void 0),az(J||void 0),aB(m??[]),an(!1),ap(!1),ar(!1),at(!0),av(void 0),ax(void 0),aF(null),aJ.current=0,aD(!1)},[K,P,S,U,T,V,J,m]),aP=""!==W.trim()||Y.length>0,{attemptClose:aQ}=(0,C.useGuardedDrawerClose)({open:a,isDirty:aP,onClose:d,onReset:aO}),aR=(0,c.useCallback)(async a=>{for(let b of(aF(null),a)){if(b.size>0xa00000)return void aF(`"${b.name}" exceeds 10 MB limit`);let a=function(a){let b=a.lastIndexOf(".");return b>=0?a.slice(b).toLowerCase():""}(b.name);if(a&&!M.has(a))return void aF(`File type "${a}" is not allowed`)}for(let b of a){let a=crypto.randomUUID();Z(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:b.type||"application/octet-stream",path:"",loading:!0}]);try{let c=new FormData;c.append("file",b),c.append("sessionId",aI.current);let d=await fetch("/api/attachments/upload",{method:"POST",body:c});if(!d.ok){let b=await d.json().catch(()=>({error:"Upload failed"}));Z(b=>b.filter(b=>b.id!==a)),aF(b.error??"Upload failed");return}let e=await d.json();Z(b=>b.some(b=>b.id!==a&&b.path===e.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...e,id:a,loading:!1}:b))}catch{Z(b=>b.filter(b=>b.id!==a)),aF("Upload failed")}}},[]),aS=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aJ.current+=1,1===aJ.current&&aD(!0)},[]),aT=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aJ.current-=1,0===aJ.current&&aD(!1)},[]),aU=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),aV=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),aJ.current=0,aD(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&aR(b)},[aR]),aW=(0,c.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a of Array.from(b))if("file"===a.kind){let b=a.getAsFile();b&&c.push(b)}c.length>0&&(a.preventDefault(),aR(c))},[aR]),aX=(0,c.useCallback)(a=>{if(a.preventDefault(),!W.trim())return;let b=ay??J;b&&(I.play(),e({description:W.trim(),attachments:Y.filter(a=>!a.loading),repositoryPath:b,approvalGates:{allowPrd:$.allowPrd??!1,allowPlan:$.allowPlan??!1,allowMerge:$.allowMerge??!1},push:!!aq||aa||ac,openPr:!!aq||ac,ciWatchEnabled:ae,enableEvidence:ag,commitEvidence:ai,fast:am,forkAndPr:aq,commitSpecs:as,...ao?{pending:ao}:{},...au?{agentType:au}:{},...aw?{model:aw}:{},...ak?{parentId:ak}:{},sessionId:aI.current}),aO())},[W,Y,$,ay,J,e,aa,ac,ag,ae,ai,am,aq,as,ao,au,aw,ak,I,aO]),aY=(0,c.useCallback)(async()=>{try{let a=await (0,L.pickFiles)();if(!a)return;for(let b of a){let a=crypto.randomUUID();Z(c=>[...c,{id:a,name:b.name,size:b.size,mimeType:"application/octet-stream",path:"",loading:!0}]);try{let c=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:b.path,sessionId:aI.current})});if(!c.ok){let b=await c.json().catch(()=>({error:"Upload failed"}));Z(b=>b.filter(b=>b.id!==a)),aF(b.error??"Upload failed");return}let d=await c.json();Z(b=>b.some(b=>b.id!==a&&b.path===d.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...d,id:a,loading:!1}:b))}catch{Z(b=>b.filter(b=>b.id!==a)),aF("Upload failed")}}}catch{}},[]),aZ=(0,c.useCallback)(a=>{Z(b=>b.filter(b=>b.id!==a))},[]),a$=(0,c.useCallback)((a,b)=>{Z(c=>c.map(c=>c.id===a?{...c,notes:b}:c))},[]),a_=(0,c.useRef)(null),a0=(0,c.useCallback)(a=>{(a.ctrlKey||a.metaKey)&&"Enter"===a.key&&(a.preventDefault(),a_.current?.requestSubmit())},[]),a1=(0,c.useCallback)(()=>{aH(!0)},[]),a2=(0,c.useCallback)(()=>{setTimeout(()=>{let a=aK.current?.contains(document.activeElement),b=aK.current?.querySelector('[aria-expanded="true"]')!==null;a||b||aH(!1)},0)},[]),a3=j&&j.length>0,a4=!J&&!ay,a5=!J&&void 0!==m;return(0,b.jsx)(s.BaseDrawer,{open:a,onClose:aQ,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:aQ,disabled:g,children:"Cancel"}),(0,b.jsx)(u.Button,{type:"submit",form:"create-feature-form",disabled:!W.trim()||g||a4,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",{ref:a_,id:"create-feature-form",onSubmit:aX,onKeyDown:a0,className:"flex flex-col gap-4",children:[a5?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-selector-section",children:[(0,b.jsx)(x.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"REPOSITORY"}),(0,b.jsx)(R,{repositories:aA,value:ay,onChange:az,onAddRepository:a=>{aB(b=>[...b,a]),az(a.path)},disabled:g})]}):J?(0,b.jsxs)("div",{className:"flex flex-col gap-1.5","data-testid":"repo-readonly-section",children:[(0,b.jsx)(x.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"REPOSITORY"}),(0,b.jsx)("p",{className:"text-sm","data-testid":"repo-readonly-label",children:m?.find(a=>a.path===J)?.name??J.split("/").pop()})]}):null,(0,b.jsxs)("div",{role:"region","aria-label":"File drop zone","data-drag-over":aC?"true":"false",onDragEnter:aS,onDragLeave:aT,onDragOver:aU,onDrop:aV,className:(0,q.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",aC&&"border-primary/50 bg-primary/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",{ref:aK,onFocus:a1,onBlur:a2,className:(0,q.cn)("border-input flex h-56 flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",aG&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,b.jsx)(w.Textarea,{id:"feature-description",placeholder:"e.g. Add GitHub OAuth login with callback handling and token refresh...",value:W,onChange:a=>X(a.target.value),onPaste:aW,required:!0,disabled:g,className:"min-h-0 flex-1 resize-none rounded-none border-0 shadow-none focus-visible:ring-0"}),Y.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:Y.map(a=>(0,b.jsx)(D.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>aZ(a.id),disabled:g,loading:a.loading,notes:a.notes,onNotesChange:b=>a$(a.id,b)},a.id))}),aE?(0,b.jsx)("p",{className:"text-destructive px-3 pb-2 text-xs",children:aE}):null,(0,b.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[(0,b.jsx)(F.AgentModelPicker,{initialAgentType:au??v??"claude-code",initialModel:aw??z??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(a,b)=>{av(a),ax(b)},disabled:g,className:"w-55"}),(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:"pending-mode",checked:ao,onCheckedChange:ap,disabled:g}),(0,b.jsxs)(x.Label,{htmlFor:"pending-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(l.Clock,{className:"h-3.5 w-3.5"}),"Pending"]})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Create without starting — start manually later."})]}),(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-2",children:[(0,b.jsx)(A.Switch,{id:"fast-mode",checked:am,onCheckedChange:an,disabled:g}),(0,b.jsxs)(x.Label,{htmlFor:"fast-mode",className:"flex cursor-pointer items-center gap-1 text-sm font-medium",children:[(0,b.jsx)(k.Zap,{className:"h-3.5 w-3.5"}),"Fast Mode"]})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Skip SDLC phases and implement directly from your prompt."})]}),(0,b.jsxs)(B.Tooltip,{children:[(0,b.jsx)(B.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:aY,disabled:g,"aria-label":"Attach files",className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,b.jsx)(h.PaperclipIcon,{className:"h-4 w-4"})})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Attach files"})]})]})]})]}),a3&&void 0!==n?(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)(Q,{features:j,value:ak,onChange:al,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:N.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:$[a.id]??!1,onCheckedChange:b=>_(c=>({...c,[a.id]:b})),disabled:g||am&&("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:am&&("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=N.every(a=>$[a.id]),b={};for(let c of N)b[c.id]=!a;_(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",N.every(a=>$[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.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:"EVIDENCE"})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Collect and attach evidence after implementation."})]}),(0,b.jsxs)("div",{className:"flex flex-1 items-center gap-4",children:[(0,b.jsxs)(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:"enable-evidence",size:"sm",checked:ag,onCheckedChange:a=>{ah(a),a||aj(!1)},disabled:g}),(0,b.jsx)(x.Label,{htmlFor:"enable-evidence",className:"cursor-pointer text-xs font-medium",children:"Collect"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Capture screenshots and artifacts 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:"commit-evidence",size:"sm",checked:ai,onCheckedChange:aj,disabled:g||!ag||!ac&&!aq}),(0,b.jsx)(x.Label,{htmlFor:"commit-evidence",className:(0,q.cn)("cursor-pointer text-xs font-medium",(!ag||!ac&&!aq)&&"opacity-50"),children:"Add to PR"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:ac||aq?ag?"Include evidence in the pull request body.":"Requires evidence collection to be enabled":"Requires PR to be enabled"})]})]})]}),(0,b.jsxs)("div",{className:"border-input flex items-start gap-4 rounded-md border px-3 py-2.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground w-16 shrink-0 pt-0.5 text-xs font-semibold tracking-wider",children:"GIT"}),(0,b.jsxs)("div",{className:"flex flex-1 flex-wrap 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:!!aq||aa||ac,onCheckedChange:a=>{ab(a),!a&&ac&&ad(!1)},disabled:g||aq}),(0,b.jsx)(x.Label,{htmlFor:"push",className:(0,q.cn)("cursor-pointer text-xs font-medium",aq&&"opacity-50"),children:"Push"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:aq?"Enabled — contributing to upstream":"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:!!aq||ac,onCheckedChange:a=>{ad(a),a||aj(!1)},disabled:g||aq}),(0,b.jsx)(x.Label,{htmlFor:"open-pr",className:(0,q.cn)("cursor-pointer text-xs font-medium",aq&&"opacity-50"),children:"PR"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:aq?"Enabled — contributing to upstream":"Open a pull request after pushing."})]}),(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:"ci-watch",size:"sm",checked:ae,onCheckedChange:af,disabled:g}),(0,b.jsx)(x.Label,{htmlFor:"ci-watch",className:"cursor-pointer text-xs font-medium",children:"Watch"})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Watch CI and auto-fix after push."})]}),(0,b.jsx)("div",{className:"bg-border h-4 w-px shrink-0"}),(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:"commit-specs",size:"sm",checked:as,onCheckedChange:at,disabled:g}),(0,b.jsxs)(x.Label,{htmlFor:"commit-specs",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(p.FileText,{className:"h-3 w-3"}),"Commit Specs"]})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Commit specs to repository."})]}),!aL&&(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:"fork-and-pr",size:"sm",checked:aq,onCheckedChange:a=>{ar(a),a&&at(!1)},disabled:g}),(0,b.jsxs)(x.Label,{htmlFor:"fork-and-pr",className:"flex cursor-pointer items-center gap-1 text-xs font-medium",children:[(0,b.jsx)(o,{className:"h-3 w-3"}),"Fork & PR"]})]})}),(0,b.jsx)(B.TooltipContent,{side:"bottom",children:"Contribute via fork (PR to upstream)."})]})]})]})]})]})})})})}function Q({features:a,value:d,onChange:e,disabled:f}){let[g,h]=(0,c.useState)(!1),[k,l]=(0,c.useState)(""),m=(0,c.useRef)(null),n=a.find(a=>a.id===d),o=k.trim()?a.filter(a=>a.name.toLowerCase().includes(k.toLowerCase())||a.id.toLowerCase().includes(k.toLowerCase())):a,p=(0,c.useCallback)(a=>{e(a),h(!1),l("")},[e]);return(0,c.useEffect)(()=>{g?setTimeout(()=>m.current?.focus(),0):l("")},[g]),(0,b.jsxs)(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",!n&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:n?`${n.name} (${n.id.slice(0,8)})`:"Select parent feature..."}),(0,b.jsx)(i.ChevronsUpDown,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(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:m,placeholder:"Search features...",value:k,onChange:a=>l(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,b.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===d,onClick:()=>p(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)(j.CheckIcon,{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===o.length&&k?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No features found."}):o.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.id,onClick:()=>p(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)(j.CheckIcon,{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 R({repositories:a,value:d,onChange:e,onAddRepository:f,disabled:g}){let[h,k]=(0,c.useState)(!1),[l,o]=(0,c.useState)(""),[p,r]=(0,c.useState)(!1),[s,t]=(0,c.useState)(null),[u,w]=(0,c.useState)(!1),x=(0,c.useRef)(null),{reactFileManager:y}=(0,J.useFeatureFlags)(),A=a.find(a=>a.path===d),B=l.trim()?a.filter(a=>a.name.toLowerCase().includes(l.toLowerCase())||a.path.toLowerCase().includes(l.toLowerCase())):a,C=(0,c.useCallback)(a=>{e(a),k(!1),o("")},[e]),D=(0,c.useCallback)(async a=>{let b=await (0,K.addRepository)({path:a});if(b.error){t(b.error),r(!1);return}if(b.repository){let a={id:b.repository.id,name:b.repository.name,path:b.repository.path};f?.(a),e(a.path),k(!1),o("")}},[f,e]),E=(0,c.useCallback)(async()=>{if(!p){if(y)return void w(!0);r(!0),t(null);try{let a=await (0,H.pickFolder)();if(!a)return void r(!1);await D(a)}catch{w(!0)}finally{r(!1)}}},[p,y,D]),F=(0,c.useCallback)(async a=>{if(w(!1),a){r(!0),t(null);try{await D(a)}catch(a){t(a instanceof Error?a.message:"Failed to add repository")}finally{r(!1)}}},[D]);return(0,c.useEffect)(()=>{h?setTimeout(()=>x.current?.focus(),0):o("")},[h]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(z.Popover,{open:h,onOpenChange:k,children:[(0,b.jsx)(z.PopoverTrigger,{asChild:!0,children:(0,b.jsxs)("button",{type:"button",role:"combobox","aria-expanded":h,"aria-label":"Repository",disabled:g,"data-testid":"repository-combobox",className:(0,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",!A&&"text-muted-foreground"),children:[(0,b.jsx)("span",{className:"truncate",children:A?A.name:"Select repository..."}),(0,b.jsx)(i.ChevronsUpDown,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,b.jsx)(z.PopoverContent,{className:"w-80 p-0",align:"start","data-testid":"repository-combobox-content",children:(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("div",{className:"border-b p-2",children:(0,b.jsx)(v.Input,{ref:x,placeholder:"Search repositories...",value:l,onChange:a=>o(a.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"repository-search"})}),(0,b.jsx)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Repositories",children:0===B.length?(0,b.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm","data-testid":"repository-empty",children:"No repositories found."}):B.map(a=>(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d===a.path,onClick:()=>C(a.path),className:(0,q.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",d===a.path&&"bg-accent/50"),"data-testid":`repository-option-${a.id}`,children:[(0,b.jsx)(j.CheckIcon,{className:(0,q.cn)("h-4 w-4 shrink-0",d!==a.path&&"invisible")}),(0,b.jsxs)("span",{className:"flex flex-col items-start truncate",children:[(0,b.jsx)("span",{className:"truncate",children:a.name}),(0,b.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:a.path})]})]},a.id))}),(0,b.jsx)(G.Separator,{}),(0,b.jsxs)("button",{type:"button",onClick:E,disabled:p,className:"hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm","data-testid":"add-repository-item",children:[p?(0,b.jsx)(n.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,b.jsx)(m.FolderPlus,{className:"h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:"Add new repository..."})]}),s?(0,b.jsx)("p",{className:"px-3 pb-2 text-xs text-red-500","data-testid":"add-repository-error",children:s}):null]})})]}),(0,b.jsx)(I.ReactFileManagerDialog,{open:u,onOpenChange:a=>{a||w(!1)},onSelect:F})]})}function S({repositoryPath:a,initialParentId:f,initialDescription:h,features:i,repositories:j,workflowDefaults:k,currentAgentType:l,currentModel:m,canPushDirectly:n}){let o=(0,d.useRouter)(),[p,q]=(0,c.useState)(!1),r=(0,d.usePathname)().startsWith("/create"),s=!p&&r;(0,c.useEffect)(()=>{!r&&p&&q(!1)},[r,p]);let t=(0,c.useCallback)(()=>{o.push("/")},[o]),u=(0,c.useCallback)(a=>{q(!0),o.push("/"),g(a).then(b=>{b.error?e.toast.error(b.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:b.feature.id,name:b.feature.name,description:b.feature.description,repositoryPath:b.feature.repositoryPath,parentId:a.parentId}}))}).catch(()=>{e.toast.error("Failed to create feature"),q(!1)})},[o]);return(0,b.jsx)(P,{open:s,onClose:t,onSubmit:u,repositoryPath:a,features:i,repositories:j,workflowDefaults:k,initialParentId:f,initialDescription:h,isSubmitting:p,currentAgentType:l,currentModel:m,canPushDirectly:n})}a.s(["CreateDrawerClient",()=>S],93995)}];
2
2
 
3
3
  //# sourceMappingURL=744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map