@shepai/cli 1.72.5 → 1.72.6-pr187.fb842c5

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 (223) hide show
  1. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts.map +1 -1
  2. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.js +35 -18
  3. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  4. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +6 -1
  5. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/implement.prompt.d.ts.map +1 -1
  6. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/implement.prompt.js +6 -4
  7. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.d.ts.map +1 -1
  8. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.js +10 -5
  9. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.d.ts.map +1 -1
  10. package/dist/packages/core/src/infrastructure/services/tool-installer/tool-metadata.js +5 -0
  11. package/dist/src/presentation/web/app/api/tools/[id]/install/route.d.ts.map +1 -1
  12. package/dist/src/presentation/web/app/api/tools/[id]/install/route.js +9 -4
  13. package/dist/tsconfig.build.tsbuildinfo +1 -1
  14. package/package.json +1 -1
  15. package/web/.next/BUILD_ID +1 -1
  16. package/web/.next/build-manifest.json +2 -2
  17. package/web/.next/cache/.previewinfo +1 -1
  18. package/web/.next/cache/.rscinfo +1 -1
  19. package/web/.next/cache/.tsbuildinfo +1 -1
  20. package/web/.next/cache/config.json +3 -3
  21. package/web/.next/fallback-build-manifest.json +2 -2
  22. package/web/.next/prerender-manifest.json +3 -3
  23. package/web/.next/required-server-files.js +1 -1
  24. package/web/.next/required-server-files.json +1 -1
  25. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +14 -14
  26. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  27. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  28. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  29. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +17 -17
  30. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
  31. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  32. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  33. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +12 -12
  34. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  35. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  36. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  37. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +14 -14
  38. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  39. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  40. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  41. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +17 -17
  42. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
  43. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  44. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  45. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +12 -12
  46. package/web/.next/server/app/(dashboard)/page.js +1 -1
  47. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  48. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +12 -12
  50. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  51. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  52. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  53. package/web/.next/server/app/_global-error.html +2 -2
  54. package/web/.next/server/app/_global-error.rsc +1 -1
  55. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  56. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  57. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  58. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  59. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  60. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  61. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  62. package/web/.next/server/app/api/tools/[id]/install/route.js +1 -1
  63. package/web/.next/server/app/api/tools/[id]/install/route.js.nft.json +1 -1
  64. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  65. package/web/.next/server/app/skills/page.js +1 -1
  66. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  67. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  68. package/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  69. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  70. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  71. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  72. package/web/.next/server/chunks/[root-of-the-server]__0866d2b5._.js +3 -0
  73. package/web/.next/server/chunks/[root-of-the-server]__0866d2b5._.js.map +1 -0
  74. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  75. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  76. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js +1 -1
  77. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js.map +1 -1
  78. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js +1 -1
  79. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js.map +1 -1
  80. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  81. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js.map +1 -1
  82. package/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  83. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__07385073._.js → server/chunks/ssr/[root-of-the-server]__45dbf93d._.js} +3 -3
  84. package/web/.next/server/chunks/ssr/{[root-of-the-server]__07385073._.js.map → [root-of-the-server]__45dbf93d._.js.map} +1 -1
  85. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  86. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  87. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  88. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  89. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +3 -0
  90. package/web/.next/server/chunks/ssr/{[root-of-the-server]__6bb00d90._.js.map → [root-of-the-server]__aad040c0._.js.map} +1 -1
  91. package/web/.next/server/chunks/ssr/[root-of-the-server]__aef6b3cd._.js +3 -0
  92. package/web/.next/server/chunks/ssr/{[root-of-the-server]__8c1a3d66._.js.map → [root-of-the-server]__aef6b3cd._.js.map} +1 -1
  93. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8fcb9132._.js → server/chunks/ssr/[root-of-the-server]__f182fa1e._.js} +3 -3
  94. package/web/.next/server/chunks/ssr/_00e6c698._.js +1 -1
  95. package/web/.next/server/chunks/ssr/_00e6c698._.js.map +1 -1
  96. package/web/.next/server/chunks/ssr/_37259405._.js +1 -1
  97. package/web/.next/server/chunks/ssr/_37259405._.js.map +1 -1
  98. package/web/.next/server/chunks/ssr/{_8fcb97eb._.js → _7a259f2c._.js} +2 -2
  99. package/web/.next/server/chunks/ssr/{_8fcb97eb._.js.map → _7a259f2c._.js.map} +1 -1
  100. package/web/.next/server/chunks/ssr/_85d0351b._.js +1 -1
  101. package/web/.next/server/chunks/ssr/_85d0351b._.js.map +1 -1
  102. package/web/.next/server/chunks/ssr/_fc3a6895._.js +1 -1
  103. package/web/.next/server/chunks/ssr/_fc3a6895._.js.map +1 -1
  104. package/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js +2 -2
  105. package/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js.map +1 -1
  106. package/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js +1 -1
  107. package/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js.map +1 -1
  108. package/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js +1 -1
  109. package/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js.map +1 -1
  110. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js +1 -1
  111. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js.map +1 -1
  112. package/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js +2 -2
  113. package/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js.map +1 -1
  114. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  115. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  116. package/web/.next/server/pages/500.html +2 -2
  117. package/web/.next/server/server-reference-manifest.js +1 -1
  118. package/web/.next/server/server-reference-manifest.json +20 -20
  119. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  120. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
  121. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  122. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
  123. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +14 -14
  124. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  125. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  126. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  127. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +17 -17
  128. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
  129. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  130. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  131. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +12 -12
  132. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  133. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  134. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  135. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +14 -14
  136. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js +1 -1
  137. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  138. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  139. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +17 -17
  140. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
  141. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  142. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  143. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +12 -12
  144. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js +1 -1
  145. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  146. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  147. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +12 -12
  148. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  149. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  150. package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  151. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  152. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  153. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  154. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  155. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  156. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  157. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  158. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  159. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  160. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/route.js +1 -1
  161. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/route.js.nft.json +1 -1
  162. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  163. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js +1 -1
  164. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js.nft.json +1 -1
  165. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  166. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  167. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  168. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  169. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  170. package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__0866d2b5._.js +3 -0
  171. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  172. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_2b7834f6.js +1 -1
  173. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_6923c575.js +1 -1
  174. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  175. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  176. package/web/.next/{server/chunks/ssr/[root-of-the-server]__07385073._.js → standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__45dbf93d._.js} +3 -3
  177. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  178. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  179. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +3 -0
  180. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__aef6b3cd._.js +3 -0
  181. package/web/.next/{server/chunks/ssr/[root-of-the-server]__8fcb9132._.js → standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__f182fa1e._.js} +3 -3
  182. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_00e6c698._.js +1 -1
  183. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_37259405._.js +1 -1
  184. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_8fcb97eb._.js → _7a259f2c._.js} +2 -2
  185. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_85d0351b._.js +1 -1
  186. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_fc3a6895._.js +1 -1
  187. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_1a32dbcb._.js +2 -2
  188. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_398553b0._.js +1 -1
  189. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_5c87e8e4._.js +1 -1
  190. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_f4952172.js +1 -1
  191. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_c1bc6240._.js +2 -2
  192. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  193. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  194. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  195. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +20 -20
  196. package/web/.next/standalone/src/presentation/web/app/api/tools/[id]/install/route.ts +14 -6
  197. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  198. package/web/.next/static/chunks/{9261e2adb145d388.js → 49dc58443f686e6f.js} +1 -1
  199. package/web/.next/static/chunks/570802c159d4f3c0.js +1 -0
  200. package/web/.next/static/chunks/{5a962b5baf7c4d1d.js → 577fb9c5d5c1c99f.js} +1 -1
  201. package/web/.next/static/chunks/{ebfd2ed5b143b5b6.js → 69a1d86331a90aee.js} +1 -1
  202. package/web/.next/static/chunks/{d2e6361bdd7a02a5.js → 81fe6a4ff82e2424.js} +1 -1
  203. package/web/.next/static/chunks/{0f3e1ea42efba7e8.js → c132a0a46d27747c.js} +1 -1
  204. package/web/.next/static/chunks/{92ebb1cad6f24333.js → c59059bb396f7d27.js} +1 -1
  205. package/web/.next/static/chunks/{515d5b157a7620b9.js → e44849eb58a3335f.js} +1 -1
  206. package/web/.next/static/chunks/{87db91411a520cea.js → fcdedd892adde5ec.js} +1 -1
  207. package/web/.next/trace +1 -1
  208. package/web/.next/trace-build +1 -1
  209. package/web/.next/server/chunks/[root-of-the-server]__b1f03347._.js +0 -3
  210. package/web/.next/server/chunks/[root-of-the-server]__b1f03347._.js.map +0 -1
  211. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +0 -3
  212. package/web/.next/server/chunks/ssr/[root-of-the-server]__6db85a66._.js +0 -4
  213. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c1a3d66._.js +0 -3
  214. package/web/.next/server/chunks/ssr/[root-of-the-server]__8fcb9132._.js.map +0 -1
  215. package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__b1f03347._.js +0 -3
  216. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +0 -3
  217. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6db85a66._.js +0 -4
  218. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__8c1a3d66._.js +0 -3
  219. package/web/.next/static/chunks/952c8aa7247dcb3f.js +0 -1
  220. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__6db85a66._.js.map → [root-of-the-server]__f182fa1e._.js.map} +0 -0
  221. /package/web/.next/static/{KbyvoLS1Q62iF5F25ZKYW → 8XK3vr1tAio-lA1vztJt6}/_buildManifest.js +0 -0
  222. /package/web/.next/static/{KbyvoLS1Q62iF5F25ZKYW → 8XK3vr1tAio-lA1vztJt6}/_clientMiddlewareManifest.json +0 -0
  223. /package/web/.next/static/{KbyvoLS1Q62iF5F25ZKYW → 8XK3vr1tAio-lA1vztJt6}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,81846,e=>{"use strict";var t=e.i(20314),a=e.i(94237),s=e.i(31777);let l=(0,a.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function r({className:e,variant:a,...r}){return(0,t.jsx)("div",{className:(0,s.cn)(l({variant:a}),e),...r})}e.s(["Badge",()=>r])},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},2287,60253,e=>{"use strict";var t=e.i(20314),a=e.i(79054),s=e.i(90033),l=e.i(90537);e.s(["X",()=>l.default],60253);var l=l,r=e.i(31777);let i=s.Dialog.Root;s.Dialog.Trigger;let n=s.Dialog.Portal;s.Dialog.Close;let o=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)(s.Dialog.Overlay,{ref:l,className:(0,r.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",e),...a}));o.displayName=s.Dialog.Overlay.displayName;let d=a.forwardRef(({className:e,children:a,...i},d)=>(0,t.jsxs)(n,{children:[(0,t.jsx)(o,{}),(0,t.jsxs)(s.Dialog.Content,{ref:d,className:(0,r.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",e),...i,children:[a,(0,t.jsxs)(s.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[(0,t.jsx)(l.default,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));d.displayName=s.Dialog.Content.displayName;let c=({className:e,...a})=>(0,t.jsx)("div",{className:(0,r.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...a});c.displayName="DialogHeader";let u=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)(s.Dialog.Title,{ref:l,className:(0,r.cn)("text-lg leading-none font-semibold tracking-tight",e),...a}));u.displayName=s.Dialog.Title.displayName;let m=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)(s.Dialog.Description,{ref:l,className:(0,r.cn)("text-muted-foreground text-sm",e),...a}));m.displayName=s.Dialog.Description.displayName,e.s(["Dialog",()=>i,"DialogContent",()=>d,"DialogDescription",()=>m,"DialogHeader",()=>c,"DialogTitle",()=>u],2287)},19933,e=>{"use strict";let t=(0,e.i(3645).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",()=>t],19933)},54793,7729,e=>{"use strict";var t=e.i(20314),a=e.i(31777);function s({icon:e,title:s,description:l,action:r,className:i,...n}){return(0,t.jsxs)("div",{className:(0,a.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",i),...n,children:[e?(0,t.jsx)("div",{className:"text-muted-foreground",children:e}):null,(0,t.jsx)("h3",{className:"text-lg font-semibold",children:s}),l?(0,t.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:l}):null,r?(0,t.jsx)("div",{className:"mt-2",children:r}):null]})}e.s(["EmptyState",()=>s],7729),e.s([],54793)},956,e=>{"use strict";var t=e.i(20314),a=e.i(79054),s=e.i(31777);let l=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)("div",{ref:l,className:(0,s.cn)("bg-card text-card-foreground rounded-xl border shadow",e),...a}));l.displayName="Card";let r=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)("div",{ref:l,className:(0,s.cn)("flex flex-col space-y-1.5 p-6",e),...a}));r.displayName="CardHeader";let i=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)("div",{ref:l,className:(0,s.cn)("leading-none font-semibold tracking-tight",e),...a}));i.displayName="CardTitle";let n=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)("div",{ref:l,className:(0,s.cn)("text-muted-foreground text-sm",e),...a}));n.displayName="CardDescription";let o=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)("div",{ref:l,className:(0,s.cn)("p-6 pt-0",e),...a}));o.displayName="CardContent",a.forwardRef(({className:e,...a},l)=>(0,t.jsx)("div",{ref:l,className:(0,s.cn)("flex items-center p-6 pt-0",e),...a})).displayName="CardFooter",e.s(["Card",()=>l,"CardContent",()=>o,"CardDescription",()=>n,"CardHeader",()=>r,"CardTitle",()=>i])},38752,e=>{"use strict";var t=e.i(20314);e.i(1650);var a=e.i(11495),s=e.i(45811),l=e.i(81846),r=e.i(25235),i=e.i(19933);function n({skill:e,onClose:n}){return(0,t.jsx)(a.BaseDrawer,{open:null!==e,onClose:n,size:"sm",modal:!0,"data-testid":"skill-detail-drawer",header:e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.DrawerTitle,{children:e.displayName}),(0,t.jsx)(s.DrawerDescription,{children:e.name})]}):void 0,children:e?(0,t.jsxs)("div",{className:"px-4 pb-4",children:[(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:e.description}),(0,t.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-1.5",children:[(0,t.jsx)(l.Badge,{variant:"project"===e.source?"secondary":"outline",children:"project"===e.source?"Project":"Global"}),(0,t.jsx)(l.Badge,{variant:"outline",children:e.category}),e.context?(0,t.jsx)(l.Badge,{variant:"outline",children:e.context}):null]}),e.allowedTools?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.Separator,{className:"my-4"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-semibold",children:"Allowed Tools"}),(0,t.jsx)("p",{className:"text-muted-foreground mt-1 text-sm",children:e.allowedTools})]})]}):null,e.resources.length>0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.Separator,{className:"my-4"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-semibold",children:"Resources"}),(0,t.jsx)("ul",{className:"mt-2 space-y-1.5",children:e.resources.map(e=>(0,t.jsxs)("li",{className:"text-muted-foreground flex items-center gap-2 text-sm",children:[(0,t.jsx)(i.FolderOpen,{className:"size-3.5 shrink-0"}),(0,t.jsxs)("span",{children:[e.name,"/ — ",e.fileCount," ",1===e.fileCount?"file":"files"]})]},e.name))})]})]}):null,e.body?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.Separator,{className:"my-4"}),(0,t.jsx)("pre",{className:"text-muted-foreground text-sm leading-relaxed whitespace-pre-wrap",children:e.body})]}):null]}):null})}e.s(["SkillDetailDrawer",()=>n])},76177,e=>{"use strict";var t=e.i(20314),a=e.i(79054);let s=(0,e.i(3645).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);var l=e.i(12103),r=e.i(98127),i=e.i(35364),n=e.i(31777);function o({title:e,description:a,children:s,className:l}){return(0,t.jsxs)("header",{className:(0,n.cn)("flex items-center justify-between gap-4",l),children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:e}),a?(0,t.jsx)("p",{className:"text-muted-foreground",children:a}):null]}),s?(0,t.jsx)("div",{"data-slot":"actions",children:s}):null]})}e.i(54793);var d=e.i(7729),c=e.i(956),u=e.i(81846),m=e.i(19933);function x({skill:e,onSelect:a}){return(0,t.jsxs)(c.Card,{className:"hover:border-primary/50 cursor-pointer transition-colors",role:"button",tabIndex:0,onClick:()=>a(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),a(e))},"data-testid":`skill-card-${e.name}`,children:[(0,t.jsxs)(c.CardHeader,{className:"pb-3",children:[(0,t.jsx)(c.CardTitle,{className:"text-base",children:e.displayName}),(0,t.jsx)("p",{className:"text-muted-foreground font-mono text-xs",children:e.name})]}),(0,t.jsxs)(c.CardContent,{className:"space-y-3",children:[(0,t.jsx)("p",{className:"text-muted-foreground line-clamp-2 text-sm",children:e.description}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,t.jsx)(u.Badge,{variant:"project"===e.source?"secondary":"outline",children:"project"===e.source?"Project":"Global"}),e.context?(0,t.jsx)(u.Badge,{variant:"outline",children:e.context}):null,e.allowedTools?(0,t.jsx)(u.Badge,{variant:"outline",children:"Tools"}):null,e.resources.length>0?(0,t.jsxs)("span",{className:"text-muted-foreground inline-flex items-center gap-1 text-xs",children:[(0,t.jsx)(m.FolderOpen,{className:"size-3"}),e.resources.length," ",1===e.resources.length?"resource":"resources"]}):null]})]})]})}let f=["Workflow","Code Generation","Analysis","Reference"];function p({skills:e,onSkillSelect:a}){let s=function(e){let t=new Map;for(let a of e){let e=t.get(a.category)??[];e.push(a),t.set(a.category,e)}return t}(e);return(0,t.jsx)("div",{className:"space-y-8",children:f.map(e=>{let l=s.get(e);return l&&0!==l.length?(0,t.jsxs)("section",{children:[(0,t.jsxs)("h2",{className:"mb-4 text-lg font-semibold",children:[e," ",(0,t.jsxs)("span",{className:"text-muted-foreground text-sm font-normal",children:["(",l.length,")"]})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:l.map(e=>(0,t.jsx)(x,{skill:e,onSelect:a},e.name))})]},e):null})})}let g=[{label:"All",value:null},{label:"Workflow",value:"Workflow"},{label:"Code Generation",value:"Code Generation"},{label:"Analysis",value:"Analysis"},{label:"Reference",value:"Reference"}];function h({activeCategory:e,onCategoryChange:a,counts:s}){return(0,t.jsx)("div",{className:"flex flex-wrap gap-2",role:"group","aria-label":"Filter by category",children:g.map(({label:l,value:r})=>(0,t.jsxs)(i.Button,{variant:e===r?"default":"outline",size:"sm",onClick:()=>a(r),children:[l,s&&r?(0,t.jsxs)("span",{className:"ml-1 text-xs opacity-70",children:["(",s[r],")"]}):null]},l))})}var j=e.i(38752);function y({skills:e}){let[n,c]=(0,a.useState)(""),[u,m]=(0,a.useState)(null),[x,f]=(0,a.useState)(null),g=(0,a.useMemo)(()=>(function(e){let t={Workflow:0,"Code Generation":0,Analysis:0,Reference:0};for(let a of e)t[a.category]++;return t})(e),[e]),y=(0,a.useMemo)(()=>{let t=n.toLowerCase();return e.filter(e=>{if(u&&e.category!==u)return!1;if(t){let a=e.name.toLowerCase().includes(t),s=e.description.toLowerCase().includes(t);if(!a&&!s)return!1}return!0})},[e,n,u]);return 0===e.length?(0,t.jsxs)("div",{className:"flex flex-col gap-6 p-6",children:[(0,t.jsx)(o,{title:"Skills",description:"Claude Code skills installed in this project"}),(0,t.jsx)(d.EmptyState,{icon:(0,t.jsx)(l.Puzzle,{className:"size-10"}),title:"No skills found",description:"No Claude Code skills are installed. Add skills to .claude/skills/ to get started."})]}):(0,t.jsxs)("div",{className:"flex flex-col gap-6 p-6",children:[(0,t.jsx)(o,{title:"Skills",description:"Claude Code skills installed in this project"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(s,{className:"text-muted-foreground absolute top-1/2 left-3 size-4 -translate-y-1/2"}),(0,t.jsx)(r.Input,{placeholder:"Search skills...",value:n,onChange:e=>c(e.target.value),className:"pl-9"})]}),(0,t.jsx)(h,{activeCategory:u,onCategoryChange:m,counts:g}),y.length>0?(0,t.jsx)(p,{skills:y,onSkillSelect:f}):(0,t.jsx)(d.EmptyState,{icon:(0,t.jsx)(s,{className:"size-10"}),title:"No matching skills",description:"No skills match your current search and filter criteria.",action:(0,t.jsx)(i.Button,{variant:"outline",onClick:()=>{c(""),m(null)},children:"Clear filters"})}),(0,t.jsx)(j.SkillDetailDrawer,{skill:x,onClose:()=>f(null)})]})}e.s(["SkillsPageClient",()=>y],76177)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,81846,e=>{"use strict";var t=e.i(20314),a=e.i(94237),s=e.i(31777);let l=(0,a.cva)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function r({className:e,variant:a,...r}){return(0,t.jsx)("div",{className:(0,s.cn)(l({variant:a}),e),...r})}e.s(["Badge",()=>r])},30702,e=>{"use strict";let t=(0,e.i(3645).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],30702)},38573,e=>{"use strict";let t=(0,e.i(3645).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],38573)},2287,60253,e=>{"use strict";var t=e.i(20314),a=e.i(79054),s=e.i(90033),l=e.i(90537);e.s(["X",()=>l.default],60253);var l=l,r=e.i(31777);let i=s.Dialog.Root;s.Dialog.Trigger;let n=s.Dialog.Portal;s.Dialog.Close;let o=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)(s.Dialog.Overlay,{ref:l,className:(0,r.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",e),...a}));o.displayName=s.Dialog.Overlay.displayName;let d=a.forwardRef(({className:e,children:a,...i},d)=>(0,t.jsxs)(n,{children:[(0,t.jsx)(o,{}),(0,t.jsxs)(s.Dialog.Content,{ref:d,className:(0,r.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",e),...i,children:[a,(0,t.jsxs)(s.Dialog.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",children:[(0,t.jsx)(l.default,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));d.displayName=s.Dialog.Content.displayName;let c=({className:e,...a})=>(0,t.jsx)("div",{className:(0,r.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...a});c.displayName="DialogHeader";let u=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)(s.Dialog.Title,{ref:l,className:(0,r.cn)("text-lg leading-none font-semibold tracking-tight",e),...a}));u.displayName=s.Dialog.Title.displayName;let m=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)(s.Dialog.Description,{ref:l,className:(0,r.cn)("text-muted-foreground text-sm",e),...a}));m.displayName=s.Dialog.Description.displayName,e.s(["Dialog",()=>i,"DialogContent",()=>d,"DialogDescription",()=>m,"DialogHeader",()=>c,"DialogTitle",()=>u],2287)},19933,e=>{"use strict";let t=(0,e.i(3645).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",()=>t],19933)},54793,7729,e=>{"use strict";var t=e.i(20314),a=e.i(31777);function s({icon:e,title:s,description:l,action:r,className:i,...n}){return(0,t.jsxs)("div",{className:(0,a.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",i),...n,children:[e?(0,t.jsx)("div",{className:"text-muted-foreground",children:e}):null,(0,t.jsx)("h3",{className:"text-lg font-semibold",children:s}),l?(0,t.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:l}):null,r?(0,t.jsx)("div",{className:"mt-2",children:r}):null]})}e.s(["EmptyState",()=>s],7729),e.s([],54793)},956,e=>{"use strict";var t=e.i(20314),a=e.i(79054),s=e.i(31777);let l=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)("div",{ref:l,className:(0,s.cn)("bg-card text-card-foreground rounded-xl border shadow",e),...a}));l.displayName="Card";let r=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)("div",{ref:l,className:(0,s.cn)("flex flex-col space-y-1.5 p-6",e),...a}));r.displayName="CardHeader";let i=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)("div",{ref:l,className:(0,s.cn)("leading-none font-semibold tracking-tight",e),...a}));i.displayName="CardTitle";let n=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)("div",{ref:l,className:(0,s.cn)("text-muted-foreground text-sm",e),...a}));n.displayName="CardDescription";let o=a.forwardRef(({className:e,...a},l)=>(0,t.jsx)("div",{ref:l,className:(0,s.cn)("p-6 pt-0",e),...a}));o.displayName="CardContent",a.forwardRef(({className:e,...a},l)=>(0,t.jsx)("div",{ref:l,className:(0,s.cn)("flex items-center p-6 pt-0",e),...a})).displayName="CardFooter",e.s(["Card",()=>l,"CardContent",()=>o,"CardDescription",()=>n,"CardHeader",()=>r,"CardTitle",()=>i])},38752,e=>{"use strict";var t=e.i(20314);e.i(1650);var a=e.i(11495),s=e.i(45811),l=e.i(81846),r=e.i(25235),i=e.i(19933);function n({skill:e,onClose:n}){return(0,t.jsx)(a.BaseDrawer,{open:null!==e,onClose:n,size:"sm",modal:!0,"data-testid":"skill-detail-drawer",header:e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.DrawerTitle,{children:e.displayName}),(0,t.jsx)(s.DrawerDescription,{children:e.name})]}):void 0,children:e?(0,t.jsxs)("div",{className:"px-4 pb-4",children:[(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:e.description}),(0,t.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-1.5",children:[(0,t.jsx)(l.Badge,{variant:"project"===e.source?"secondary":"outline",children:"project"===e.source?"Project":"Global"}),(0,t.jsx)(l.Badge,{variant:"outline",children:e.category}),e.context?(0,t.jsx)(l.Badge,{variant:"outline",children:e.context}):null]}),e.allowedTools?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.Separator,{className:"my-4"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-semibold",children:"Allowed Tools"}),(0,t.jsx)("p",{className:"text-muted-foreground mt-1 text-sm",children:e.allowedTools})]})]}):null,e.resources.length>0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.Separator,{className:"my-4"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-sm font-semibold",children:"Resources"}),(0,t.jsx)("ul",{className:"mt-2 space-y-1.5",children:e.resources.map(e=>(0,t.jsxs)("li",{className:"text-muted-foreground flex items-center gap-2 text-sm",children:[(0,t.jsx)(i.FolderOpen,{className:"size-3.5 shrink-0"}),(0,t.jsxs)("span",{children:[e.name,"/ — ",e.fileCount," ",1===e.fileCount?"file":"files"]})]},e.name))})]})]}):null,e.body?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.Separator,{className:"my-4"}),(0,t.jsx)("pre",{className:"text-muted-foreground text-sm leading-relaxed whitespace-pre-wrap",children:e.body})]}):null]}):null})}e.s(["SkillDetailDrawer",()=>n])},16919,e=>{"use strict";var t=e.i(20314),a=e.i(79054);let s=(0,e.i(3645).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);var l=e.i(12103),r=e.i(98127),i=e.i(35364),n=e.i(31777);function o({title:e,description:a,children:s,className:l}){return(0,t.jsxs)("header",{className:(0,n.cn)("flex items-center justify-between gap-4",l),children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:e}),a?(0,t.jsx)("p",{className:"text-muted-foreground",children:a}):null]}),s?(0,t.jsx)("div",{"data-slot":"actions",children:s}):null]})}e.i(54793);var d=e.i(7729),c=e.i(956),u=e.i(81846),m=e.i(19933);function x({skill:e,onSelect:a}){return(0,t.jsxs)(c.Card,{className:"hover:border-primary/50 cursor-pointer transition-colors",role:"button",tabIndex:0,onClick:()=>a(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),a(e))},"data-testid":`skill-card-${e.name}`,children:[(0,t.jsxs)(c.CardHeader,{className:"pb-3",children:[(0,t.jsx)(c.CardTitle,{className:"text-base",children:e.displayName}),(0,t.jsx)("p",{className:"text-muted-foreground font-mono text-xs",children:e.name})]}),(0,t.jsxs)(c.CardContent,{className:"space-y-3",children:[(0,t.jsx)("p",{className:"text-muted-foreground line-clamp-2 text-sm",children:e.description}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,t.jsx)(u.Badge,{variant:"project"===e.source?"secondary":"outline",children:"project"===e.source?"Project":"Global"}),e.context?(0,t.jsx)(u.Badge,{variant:"outline",children:e.context}):null,e.allowedTools?(0,t.jsx)(u.Badge,{variant:"outline",children:"Tools"}):null,e.resources.length>0?(0,t.jsxs)("span",{className:"text-muted-foreground inline-flex items-center gap-1 text-xs",children:[(0,t.jsx)(m.FolderOpen,{className:"size-3"}),e.resources.length," ",1===e.resources.length?"resource":"resources"]}):null]})]})]})}let f=["Workflow","Code Generation","Analysis","Reference"];function p({skills:e,onSkillSelect:a}){let s=function(e){let t=new Map;for(let a of e){let e=t.get(a.category)??[];e.push(a),t.set(a.category,e)}return t}(e);return(0,t.jsx)("div",{className:"space-y-8",children:f.map(e=>{let l=s.get(e);return l&&0!==l.length?(0,t.jsxs)("section",{children:[(0,t.jsxs)("h2",{className:"mb-4 text-lg font-semibold",children:[e," ",(0,t.jsxs)("span",{className:"text-muted-foreground text-sm font-normal",children:["(",l.length,")"]})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:l.map(e=>(0,t.jsx)(x,{skill:e,onSelect:a},e.name))})]},e):null})})}let g=[{label:"All",value:null},{label:"Workflow",value:"Workflow"},{label:"Code Generation",value:"Code Generation"},{label:"Analysis",value:"Analysis"},{label:"Reference",value:"Reference"}];function h({activeCategory:e,onCategoryChange:a,counts:s}){return(0,t.jsx)("div",{className:"flex flex-wrap gap-2",role:"group","aria-label":"Filter by category",children:g.map(({label:l,value:r})=>(0,t.jsxs)(i.Button,{variant:e===r?"default":"outline",size:"sm",onClick:()=>a(r),children:[l,s&&r?(0,t.jsxs)("span",{className:"ml-1 text-xs opacity-70",children:["(",s[r],")"]}):null]},l))})}var j=e.i(38752);function y({skills:e}){let[n,c]=(0,a.useState)(""),[u,m]=(0,a.useState)(null),[x,f]=(0,a.useState)(null),g=(0,a.useMemo)(()=>(function(e){let t={Workflow:0,"Code Generation":0,Analysis:0,Reference:0};for(let a of e)t[a.category]++;return t})(e),[e]),y=(0,a.useMemo)(()=>{let t=n.toLowerCase();return e.filter(e=>{if(u&&e.category!==u)return!1;if(t){let a=e.name.toLowerCase().includes(t),s=e.description.toLowerCase().includes(t);if(!a&&!s)return!1}return!0})},[e,n,u]);return 0===e.length?(0,t.jsxs)("div",{className:"flex flex-col gap-6 p-6",children:[(0,t.jsx)(o,{title:"Skills",description:"Claude Code skills installed in this project"}),(0,t.jsx)(d.EmptyState,{icon:(0,t.jsx)(l.Puzzle,{className:"size-10"}),title:"No skills found",description:"No Claude Code skills are installed. Add skills to .claude/skills/ to get started."})]}):(0,t.jsxs)("div",{className:"flex flex-col gap-6 p-6",children:[(0,t.jsx)(o,{title:"Skills",description:"Claude Code skills installed in this project"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(s,{className:"text-muted-foreground absolute top-1/2 left-3 size-4 -translate-y-1/2"}),(0,t.jsx)(r.Input,{placeholder:"Search skills...",value:n,onChange:e=>c(e.target.value),className:"pl-9"})]}),(0,t.jsx)(h,{activeCategory:u,onCategoryChange:m,counts:g}),y.length>0?(0,t.jsx)(p,{skills:y,onSkillSelect:f}):(0,t.jsx)(d.EmptyState,{icon:(0,t.jsx)(s,{className:"size-10"}),title:"No matching skills",description:"No skills match your current search and filter criteria.",action:(0,t.jsx)(i.Button,{variant:"outline",onClick:()=>{c(""),m(null)},children:"Clear filters"})}),(0,t.jsx)(j.SkillDetailDrawer,{skill:x,onClose:()=>f(null)})]})}e.s(["SkillsPageClient",()=>y],16919)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,15203,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(31406),o=e.i(60112),n=e.i(21023);let s=(0,n.createServerReference)("40616cf9981e7b88a3c70b3ae2eef1bca5b2e0758a",n.callServer,void 0,n.findSourceMapURL,"createFeature");var i=e.i(91891),i=i,l=e.i(3645);let d=(0,l.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var c=e.i(16298),c=c;let u=(0,l.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]),p=(0,l.default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);var f=e.i(69512),f=f;let m=(0,l.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var h=e.i(1012),h=h,x=e.i(31777),v=e.i(8361);e.i(1650);var g=e.i(11495),b=e.i(45811),j=e.i(35364),w=e.i(98127);function C({className:e,...r}){return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,x.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...r})}var y=e.i(87620),k=r.forwardRef((e,r)=>(0,t.jsx)(y.Primitive.label,{...e,ref:r,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));k.displayName="Label",e.s(["Label",()=>k,"Root",()=>k],27572);var N=e.i(27572),N=N;let P=(0,e.i(94237).cva)("text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),R=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)(N.Root,{ref:a,className:(0,x.cn)(P(),e),...r}));R.displayName=N.Root.displayName;var h=h;let E=(0,l.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);var S=e.i(5978),A=e.i(22528),F=e.i(91967),D=e.i(36589),O=e.i(77624),T=e.i(85995),M="Checkbox",[I,_]=(0,A.createContextScope)(M),[L,B]=I(M);function z(e){let{__scopeCheckbox:a,checked:o,children:n,defaultChecked:s,disabled:i,form:l,name:d,onCheckedChange:c,required:u,value:p="on",internal_do_not_use_render:f}=e,[m,h]=(0,D.useControllableState)({prop:o,defaultProp:s??!1,onChange:c,caller:M}),[x,v]=r.useState(null),[g,b]=r.useState(null),j=r.useRef(!1),w=!x||!!l||!!x.closest("form"),C={checked:m,disabled:i,setChecked:h,control:x,setControl:v,name:d,form:l,value:p,hasConsumerStoppedPropagationRef:j,required:u,defaultChecked:!W(s)&&s,isFormControl:w,bubbleInput:g,setBubbleInput:b};return(0,t.jsx)(L,{scope:a,...C,children:"function"==typeof f?f(C):n})}var H="CheckboxTrigger",G=r.forwardRef(({__scopeCheckbox:e,onKeyDown:a,onClick:o,...n},s)=>{let{control:i,value:l,disabled:d,checked:c,required:u,setControl:p,setChecked:f,hasConsumerStoppedPropagationRef:m,isFormControl:h,bubbleInput:x}=B(H,e),v=(0,S.useComposedRefs)(s,p),g=r.useRef(c);return r.useEffect(()=>{let e=i?.form;if(e){let t=()=>f(g.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[i,f]),(0,t.jsx)(y.Primitive.button,{type:"button",role:"checkbox","aria-checked":W(c)?"mixed":c,"aria-required":u,"data-state":X(c),"data-disabled":d?"":void 0,disabled:d,value:l,...n,ref:v,onKeyDown:(0,F.composeEventHandlers)(a,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,F.composeEventHandlers)(o,e=>{f(e=>!!W(e)||!e),x&&h&&(m.current=e.isPropagationStopped(),m.current||e.stopPropagation())})})});G.displayName=H;var $=r.forwardRef((e,r)=>{let{__scopeCheckbox:a,name:o,checked:n,defaultChecked:s,required:i,disabled:l,value:d,onCheckedChange:c,form:u,...p}=e;return(0,t.jsx)(z,{__scopeCheckbox:a,checked:n,defaultChecked:s,disabled:l,required:i,onCheckedChange:c,name:o,form:u,value:d,internal_do_not_use_render:({isFormControl:e})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(G,{...p,ref:r,__scopeCheckbox:a}),e&&(0,t.jsx)(V,{__scopeCheckbox:a})]})})});$.displayName=M;var U="CheckboxIndicator",K=r.forwardRef((e,r)=>{let{__scopeCheckbox:a,forceMount:o,...n}=e,s=B(U,a);return(0,t.jsx)(T.Presence,{present:o||W(s.checked)||!0===s.checked,children:(0,t.jsx)(y.Primitive.span,{"data-state":X(s.checked),"data-disabled":s.disabled?"":void 0,...n,ref:r,style:{pointerEvents:"none",...e.style}})})});K.displayName=U;var q="CheckboxBubbleInput",V=r.forwardRef(({__scopeCheckbox:e,...a},o)=>{let n,{control:s,hasConsumerStoppedPropagationRef:i,checked:l,defaultChecked:d,required:c,disabled:u,name:p,value:f,form:m,bubbleInput:h,setBubbleInput:x}=B(q,e),v=(0,S.useComposedRefs)(o,x),g=(n=r.useRef({value:l,previous:l}),r.useMemo(()=>(n.current.value!==l&&(n.current.previous=n.current.value,n.current.value=l),n.current.previous),[l])),b=(0,O.useSize)(s);r.useEffect(()=>{if(!h)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!i.current;if(g!==l&&e){let r=new Event("click",{bubbles:t});h.indeterminate=W(l),e.call(h,!W(l)&&l),h.dispatchEvent(r)}},[h,g,l,i]);let j=r.useRef(!W(l)&&l);return(0,t.jsx)(y.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:d??j.current,required:c,disabled:u,name:p,value:f,form:m,...a,tabIndex:-1,ref:v,style:{...a.style,...b,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function W(e){return"indeterminate"===e}function X(e){return W(e)?"indeterminate":e?"checked":"unchecked"}V.displayName=q,e.s(["Checkbox",()=>$,"CheckboxIndicator",()=>K,"Indicator",()=>K,"Root",()=>$,"createCheckboxScope",()=>_,"unstable_BubbleInput",()=>V,"unstable_CheckboxBubbleInput",()=>V,"unstable_CheckboxProvider",()=>z,"unstable_CheckboxTrigger",()=>G,"unstable_Provider",()=>z,"unstable_Trigger",()=>G],57696);var Y=e.i(57696),Y=Y;function Z({className:e,...r}){return(0,t.jsx)(Y.Root,{"data-slot":"checkbox",className:(0,x.cn)("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground data-[state=indeterminate]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 cursor-pointer rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...r,children:(0,t.jsx)(Y.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none",children:"indeterminate"===r.checked?(0,t.jsx)(E,{className:"size-3.5"}):(0,t.jsx)(h.default,{className:"size-3.5"})})})}function J({id:e,label:r,description:a,checked:o,onCheckedChange:n,disabled:s}){return(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)(Z,{id:e,className:"mt-0.75",checked:o,onCheckedChange:e=>n(!0===e),disabled:s}),(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)(R,{htmlFor:e,className:"cursor-pointer text-sm font-medium",children:r}),a?(0,t.jsx)(R,{htmlFor:e,className:"text-muted-foreground cursor-pointer text-xs font-normal",children:a}):null]})]})}function Q({label:e,description:r,parentAriaLabel:a,options:o,value:n,onValueChange:s,disabled:i}){let l=o.filter(e=>n[e.id]).length,d=l===o.length,c=l>0&&!d,u=`${e.toLowerCase().replace(/\s+/g,"-")}-group`;return(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)(Z,{id:u,className:"mt-0.75",checked:c?"indeterminate":d,onCheckedChange:()=>{let e=l<o.length,t={};for(let r of o)t[r.id]=e;s(t)},disabled:i,"aria-label":a??`${e} select all`}),(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)(R,{htmlFor:u,className:"cursor-pointer text-sm font-medium",children:e}),r?(0,t.jsx)(R,{htmlFor:u,className:"text-muted-foreground cursor-pointer text-xs font-normal",children:r}):null]})]}),(0,t.jsx)("div",{className:"flex flex-col gap-3 pl-6",children:o.map(e=>(0,t.jsx)(J,{id:e.id,label:e.label,description:e.description,checked:n[e.id]??!1,onCheckedChange:t=>{var r;return r=e.id,void s({...n,[r]:t})},disabled:i},e.id))})]})}var ee=e.i(81846),et=e.i(53532),er=e.i(41687),ea=e.i(56720),eo=e.i(13123),en=e.i(52740),es=e.i(39979),ei=e.i(86874),el=e.i(73772),ed=e.i(13044),ec="Popover",[eu,ep]=(0,A.createContextScope)(ec,[en.createPopperScope]),ef=(0,en.createPopperScope)(),[em,eh]=eu(ec),ex=e=>{let{__scopePopover:a,children:o,open:n,defaultOpen:s,onOpenChange:i,modal:l=!1}=e,d=ef(a),c=r.useRef(null),[u,p]=r.useState(!1),[f,m]=(0,D.useControllableState)({prop:n,defaultProp:s??!1,onChange:i,caller:ec});return(0,t.jsx)(en.Root,{...d,children:(0,t.jsx)(em,{scope:a,contentId:(0,eo.useId)(),triggerRef:c,open:f,onOpenChange:m,onOpenToggle:r.useCallback(()=>m(e=>!e),[m]),hasCustomAnchor:u,onCustomAnchorAdd:r.useCallback(()=>p(!0),[]),onCustomAnchorRemove:r.useCallback(()=>p(!1),[]),modal:l,children:o})})};ex.displayName=ec;var ev="PopoverAnchor",eg=r.forwardRef((e,a)=>{let{__scopePopover:o,...n}=e,s=eh(ev,o),i=ef(o),{onCustomAnchorAdd:l,onCustomAnchorRemove:d}=s;return r.useEffect(()=>(l(),()=>d()),[l,d]),(0,t.jsx)(en.Anchor,{...i,...n,ref:a})});eg.displayName=ev;var eb="PopoverTrigger",ej=r.forwardRef((e,r)=>{let{__scopePopover:a,...o}=e,n=eh(eb,a),s=ef(a),i=(0,S.useComposedRefs)(r,n.triggerRef),l=(0,t.jsx)(y.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":eT(n.open),...o,ref:i,onClick:(0,F.composeEventHandlers)(e.onClick,n.onOpenToggle)});return n.hasCustomAnchor?l:(0,t.jsx)(en.Anchor,{asChild:!0,...s,children:l})});ej.displayName=eb;var ew="PopoverPortal",[eC,ey]=eu(ew,{forceMount:void 0}),ek=e=>{let{__scopePopover:r,forceMount:a,children:o,container:n}=e,s=eh(ew,r);return(0,t.jsx)(eC,{scope:r,forceMount:a,children:(0,t.jsx)(T.Presence,{present:a||s.open,children:(0,t.jsx)(es.Portal,{asChild:!0,container:n,children:o})})})};ek.displayName=ew;var eN="PopoverContent",eP=r.forwardRef((e,r)=>{let a=ey(eN,e.__scopePopover),{forceMount:o=a.forceMount,...n}=e,s=eh(eN,e.__scopePopover);return(0,t.jsx)(T.Presence,{present:o||s.open,children:s.modal?(0,t.jsx)(eE,{...n,ref:r}):(0,t.jsx)(eS,{...n,ref:r})})});eP.displayName=eN;var eR=(0,ei.createSlot)("PopoverContent.RemoveScroll"),eE=r.forwardRef((e,a)=>{let o=eh(eN,e.__scopePopover),n=r.useRef(null),s=(0,S.useComposedRefs)(a,n),i=r.useRef(!1);return r.useEffect(()=>{let e=n.current;if(e)return(0,el.hideOthers)(e)},[]),(0,t.jsx)(ed.RemoveScroll,{as:eR,allowPinchZoom:!0,children:(0,t.jsx)(eA,{...e,ref:s,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,F.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),i.current||o.triggerRef.current?.focus()}),onPointerDownOutside:(0,F.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;i.current=2===t.button||r},{checkForDefaultPrevented:!1}),onFocusOutside:(0,F.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),eS=r.forwardRef((e,a)=>{let o=eh(eN,e.__scopePopover),n=r.useRef(!1),s=r.useRef(!1);return(0,t.jsx)(eA,{...e,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(n.current||o.triggerRef.current?.focus(),t.preventDefault()),n.current=!1,s.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(n.current=!0,"pointerdown"===t.detail.originalEvent.type&&(s.current=!0));let r=t.target;o.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&s.current&&t.preventDefault()}})}),eA=r.forwardRef((e,r)=>{let{__scopePopover:a,trapFocus:o,onOpenAutoFocus:n,onCloseAutoFocus:s,disableOutsidePointerEvents:i,onEscapeKeyDown:l,onPointerDownOutside:d,onFocusOutside:c,onInteractOutside:u,...p}=e,f=eh(eN,a),m=ef(a);return(0,er.useFocusGuards)(),(0,t.jsx)(ea.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:n,onUnmountAutoFocus:s,children:(0,t.jsx)(et.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:u,onEscapeKeyDown:l,onPointerDownOutside:d,onFocusOutside:c,onDismiss:()=>f.onOpenChange(!1),children:(0,t.jsx)(en.Content,{"data-state":eT(f.open),role:"dialog",id:f.contentId,...m,...p,ref:r,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),eF="PopoverClose",eD=r.forwardRef((e,r)=>{let{__scopePopover:a,...o}=e,n=eh(eF,a);return(0,t.jsx)(y.Primitive.button,{type:"button",...o,ref:r,onClick:(0,F.composeEventHandlers)(e.onClick,()=>n.onOpenChange(!1))})});eD.displayName=eF;var eO=r.forwardRef((e,r)=>{let{__scopePopover:a,...o}=e,n=ef(a);return(0,t.jsx)(en.Arrow,{...n,...o,ref:r})});function eT(e){return e?"open":"closed"}eO.displayName="PopoverArrow",e.s(["Anchor",()=>eg,"Arrow",()=>eO,"Close",()=>eD,"Content",()=>eP,"Popover",()=>ex,"PopoverAnchor",()=>eg,"PopoverArrow",()=>eO,"PopoverClose",()=>eD,"PopoverContent",()=>eP,"PopoverPortal",()=>ek,"PopoverTrigger",()=>ej,"Portal",()=>ek,"Root",()=>ex,"Trigger",()=>ej,"createPopoverScope",()=>ep],89920);var eM=e.i(89920),eM=eM;let eI=eM.Root,e_=eM.Trigger;eM.Anchor;let eL=r.forwardRef(({className:e,align:r="center",sideOffset:a=4,...o},n)=>(0,t.jsx)(eM.Portal,{children:(0,t.jsx)(eM.Content,{ref:n,align:r,sideOffset:a,className:(0,x.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none",e),...o})}));eL.displayName=eM.Content.displayName;var eB=e.i(30153);async function ez(){let e=await fetch("/api/dialog/pick-files",{method:"POST"});if(!e.ok)throw Error("Failed to open file dialog");let t=await e.json();return t.cancelled?null:t.files}let eH=[{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."}],eG={allowPrd:!1,allowPlan:!1,allowMerge:!1};function e$({open:e,onClose:a,onSubmit:o,repositoryPath:n,isSubmitting:s=!1,workflowDefaults:l,features:d,initialParentId:c}){let u=(0,v.useSoundAction)("create"),p=l?.approvalGates??eG,f=l?.push??!1,m=l?.openPr??!1,[h,x]=(0,r.useState)(""),[y,k]=(0,r.useState)(""),[N,P]=(0,r.useState)([]),[E,S]=(0,r.useState)({...p}),[A,F]=(0,r.useState)(f),[D,O]=(0,r.useState)(m),[T,M]=(0,r.useState)(void 0);(0,r.useEffect)(()=>{l&&(S({...l.approvalGates}),F(l.push),O(l.openPr))},[l]),(0,r.useEffect)(()=>{e&&c&&M(c)},[e,c]);let I=(0,r.useCallback)(()=>{x(""),k(""),P([]),S({...p}),F(f),O(m),M(void 0)},[p,f,m]),_=""!==h.trim()||""!==y.trim()||N.length>0,{attemptClose:L}=(0,eB.useGuardedDrawerClose)({open:e,isDirty:_,onClose:a,onReset:I}),B=(0,r.useCallback)(e=>{if(e.preventDefault(),!h.trim())return;u.play();let t=y.trim()||void 0;o({name:h.trim(),description:t,attachments:N,repositoryPath:n,approvalGates:{allowPrd:E.allowPrd??!1,allowPlan:E.allowPlan??!1,allowMerge:E.allowMerge??!1},push:A||D,openPr:D,...T?{parentId:T}:{}}),I()},[h,y,N,E,n,o,A,D,T,u,I]),z=(0,r.useCallback)(async()=>{try{let e=await ez();e&&P(t=>[...t,...e])}catch{}},[]),H=(0,r.useCallback)(e=>{P(t=>t.filter(t=>t.path!==e))},[]),G=d&&d.length>0;return(0,t.jsx)(g.BaseDrawer,{open:e,onClose:L,size:"md",modal:!1,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(b.DrawerTitle,{children:"NEW FEATURE"})]}),(0,t.jsx)(b.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(ee.Badge,{variant:"secondary",children:"Creating..."})})})]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(j.Button,{variant:"outline",onClick:L,disabled:s,children:"Cancel"}),(0,t.jsx)(j.Button,{type:"submit",form:"create-feature-form",disabled:!h.trim()||s,children:s?"Creating...":"+ Create Feature"})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsxs)("form",{id:"create-feature-form",onSubmit:B,className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(R,{htmlFor:"feature-name",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"FEATURE NAME"}),(0,t.jsx)(w.Input,{id:"feature-name",placeholder:"e.g. GitHub OAuth Login",value:h,onChange:e=>x(e.target.value),required:!0,disabled:s})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(R,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"DESCRIPTION"}),(0,t.jsx)(C,{id:"feature-description",placeholder:"Describe what this feature does...",value:y,onChange:e=>k(e.target.value),rows:4,disabled:s})]}),G?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(R,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"PARENT FEATURE"}),(0,t.jsx)(eU,{features:d,value:T,onChange:M,disabled:s})]}):null,(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(R,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"APPROVE"}),(0,t.jsx)(Q,{label:"Autonomous Mode",description:"YOLO!",parentAriaLabel:"Auto approve all",options:eH,value:E,onValueChange:S,disabled:s})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(R,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"GIT"}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)(J,{id:"push",label:"Push",description:"Push branch to remote after implementation.",checked:A||D,onCheckedChange:F,disabled:D||s}),(0,t.jsx)(J,{id:"open-pr",label:"Create PR",description:"Open a pull request after pushing.",checked:D,onCheckedChange:O,disabled:s})]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)(R,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:["ATTACHMENTS",N.length>0&&(0,t.jsxs)("span",{className:"text-muted-foreground/60 ml-1.5",children:["(",N.length,")"]})]}),(0,t.jsxs)(j.Button,{type:"button",variant:"outline",size:"xs",onClick:z,disabled:s,children:[(0,t.jsx)(i.default,{className:"size-3"}),"Add Files"]})]}),N.length>0&&(0,t.jsx)("div",{className:"flex flex-col gap-2",children:N.map(e=>(0,t.jsx)(eK,{file:e,onRemove:()=>H(e.path),disabled:s},e.path))})]})]})})})}function eU({features:e,value:a,onChange:o,disabled:n}){let[s,i]=(0,r.useState)(!1),[l,d]=(0,r.useState)(""),c=(0,r.useRef)(null),u=e.find(e=>e.id===a),p=l.trim()?e.filter(e=>e.name.toLowerCase().includes(l.toLowerCase())||e.id.toLowerCase().includes(l.toLowerCase())):e,f=(0,r.useCallback)(e=>{o(e),i(!1),d("")},[o]);return(0,r.useEffect)(()=>{s?setTimeout(()=>c.current?.focus(),0):d("")},[s]),(0,t.jsxs)(eI,{open:s,onOpenChange:i,children:[(0,t.jsx)(e_,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":s,"aria-label":"Parent Feature",disabled:n,"data-testid":"parent-feature-combobox",className:(0,x.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",!u&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:u?`${u.name} (${u.id.slice(0,8)})`:"Select parent feature..."}),(0,t.jsx)(m,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(eL,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(w.Input,{ref:c,placeholder:"Search features...",value:l,onChange:e=>d(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>f(void 0),className:(0,x.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(h.default,{className:(0,x.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:"No parent"})]}),0===p.length&&l?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No features found."}):p.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>f(e.id),className:(0,x.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(h.default,{className:(0,x.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}function eK({file:e,onRemove:r,disabled:a}){var o,n,s;let i,l=(i=(o=e.name).lastIndexOf("."))>=0?o.slice(i).toLowerCase():"",m=(n=l,eq.has(n)?u:".pdf"===n?c.default:eV.has(n)?p:d),h=".pdf"===(s=l)?"bg-red-50 text-red-600":eq.has(s)?"bg-blue-50 text-blue-600":eV.has(s)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600";return(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-md border p-2",children:[(0,t.jsx)("div",{className:(0,x.cn)("flex h-8 w-8 shrink-0 items-center justify-center rounded",h),children:(0,t.jsx)(m,{className:"h-4 w-4"})}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:function(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024));return`${(e/Math.pow(1024,t)).toFixed(+(0!==t))} ${["B","KB","MB","GB"][t]}`}(e.size)})]}),(0,t.jsx)(j.Button,{type:"button",variant:"ghost",size:"icon-xs",onClick:r,disabled:a,"aria-label":`Remove ${e.name}`,children:(0,t.jsx)(f.default,{className:"h-3 w-3"})})]})}let eq=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),eV=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function eW({repositoryPath:e,initialParentId:n,features:i,workflowDefaults:l}){let d=(0,a.useRouter)(),c=(0,v.useSoundAction)("create"),[u,p]=(0,r.useState)(!1),f=(0,a.usePathname)().startsWith("/create"),m=(0,r.useCallback)(()=>{d.push("/")},[d]),h=(0,r.useCallback)(e=>{p(!0),window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{name:e.name,description:e.description,repositoryPath:e.repositoryPath}})),d.push("/"),s(e).then(e=>{if(e.error){o.toast.error(e.error),window.dispatchEvent(new CustomEvent("shep:feature-create-failed"));return}c.play(),d.refresh()}).catch(()=>{o.toast.error("Failed to create feature"),window.dispatchEvent(new CustomEvent("shep:feature-create-failed"))}).finally(()=>{p(!1)})},[d,c]);return(0,t.jsx)(e$,{open:f,onClose:m,onSubmit:h,repositoryPath:e,features:i,workflowDefaults:l,initialParentId:n,isSubmitting:u})}e.s(["CreateDrawerClient",()=>eW],15203)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,15203,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(31406),o=e.i(60112),n=e.i(21023);let s=(0,n.createServerReference)("40a51fff5d1c2c954e205c35f7343bdeefebbe05cf",n.callServer,void 0,n.findSourceMapURL,"createFeature");var i=e.i(91891),i=i,l=e.i(3645);let d=(0,l.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var c=e.i(16298),c=c;let u=(0,l.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]),p=(0,l.default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);var f=e.i(69512),f=f;let m=(0,l.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var h=e.i(1012),h=h,x=e.i(31777),v=e.i(8361);e.i(1650);var g=e.i(11495),b=e.i(45811),j=e.i(35364),w=e.i(98127);function C({className:e,...r}){return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,x.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...r})}var y=e.i(87620),k=r.forwardRef((e,r)=>(0,t.jsx)(y.Primitive.label,{...e,ref:r,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));k.displayName="Label",e.s(["Label",()=>k,"Root",()=>k],27572);var N=e.i(27572),N=N;let P=(0,e.i(94237).cva)("text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),R=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)(N.Root,{ref:a,className:(0,x.cn)(P(),e),...r}));R.displayName=N.Root.displayName;var h=h;let E=(0,l.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);var S=e.i(5978),A=e.i(22528),F=e.i(91967),D=e.i(36589),O=e.i(77624),T=e.i(85995),M="Checkbox",[I,_]=(0,A.createContextScope)(M),[L,B]=I(M);function z(e){let{__scopeCheckbox:a,checked:o,children:n,defaultChecked:s,disabled:i,form:l,name:d,onCheckedChange:c,required:u,value:p="on",internal_do_not_use_render:f}=e,[m,h]=(0,D.useControllableState)({prop:o,defaultProp:s??!1,onChange:c,caller:M}),[x,v]=r.useState(null),[g,b]=r.useState(null),j=r.useRef(!1),w=!x||!!l||!!x.closest("form"),C={checked:m,disabled:i,setChecked:h,control:x,setControl:v,name:d,form:l,value:p,hasConsumerStoppedPropagationRef:j,required:u,defaultChecked:!W(s)&&s,isFormControl:w,bubbleInput:g,setBubbleInput:b};return(0,t.jsx)(L,{scope:a,...C,children:"function"==typeof f?f(C):n})}var H="CheckboxTrigger",G=r.forwardRef(({__scopeCheckbox:e,onKeyDown:a,onClick:o,...n},s)=>{let{control:i,value:l,disabled:d,checked:c,required:u,setControl:p,setChecked:f,hasConsumerStoppedPropagationRef:m,isFormControl:h,bubbleInput:x}=B(H,e),v=(0,S.useComposedRefs)(s,p),g=r.useRef(c);return r.useEffect(()=>{let e=i?.form;if(e){let t=()=>f(g.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[i,f]),(0,t.jsx)(y.Primitive.button,{type:"button",role:"checkbox","aria-checked":W(c)?"mixed":c,"aria-required":u,"data-state":X(c),"data-disabled":d?"":void 0,disabled:d,value:l,...n,ref:v,onKeyDown:(0,F.composeEventHandlers)(a,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,F.composeEventHandlers)(o,e=>{f(e=>!!W(e)||!e),x&&h&&(m.current=e.isPropagationStopped(),m.current||e.stopPropagation())})})});G.displayName=H;var $=r.forwardRef((e,r)=>{let{__scopeCheckbox:a,name:o,checked:n,defaultChecked:s,required:i,disabled:l,value:d,onCheckedChange:c,form:u,...p}=e;return(0,t.jsx)(z,{__scopeCheckbox:a,checked:n,defaultChecked:s,disabled:l,required:i,onCheckedChange:c,name:o,form:u,value:d,internal_do_not_use_render:({isFormControl:e})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(G,{...p,ref:r,__scopeCheckbox:a}),e&&(0,t.jsx)(V,{__scopeCheckbox:a})]})})});$.displayName=M;var U="CheckboxIndicator",K=r.forwardRef((e,r)=>{let{__scopeCheckbox:a,forceMount:o,...n}=e,s=B(U,a);return(0,t.jsx)(T.Presence,{present:o||W(s.checked)||!0===s.checked,children:(0,t.jsx)(y.Primitive.span,{"data-state":X(s.checked),"data-disabled":s.disabled?"":void 0,...n,ref:r,style:{pointerEvents:"none",...e.style}})})});K.displayName=U;var q="CheckboxBubbleInput",V=r.forwardRef(({__scopeCheckbox:e,...a},o)=>{let n,{control:s,hasConsumerStoppedPropagationRef:i,checked:l,defaultChecked:d,required:c,disabled:u,name:p,value:f,form:m,bubbleInput:h,setBubbleInput:x}=B(q,e),v=(0,S.useComposedRefs)(o,x),g=(n=r.useRef({value:l,previous:l}),r.useMemo(()=>(n.current.value!==l&&(n.current.previous=n.current.value,n.current.value=l),n.current.previous),[l])),b=(0,O.useSize)(s);r.useEffect(()=>{if(!h)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!i.current;if(g!==l&&e){let r=new Event("click",{bubbles:t});h.indeterminate=W(l),e.call(h,!W(l)&&l),h.dispatchEvent(r)}},[h,g,l,i]);let j=r.useRef(!W(l)&&l);return(0,t.jsx)(y.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:d??j.current,required:c,disabled:u,name:p,value:f,form:m,...a,tabIndex:-1,ref:v,style:{...a.style,...b,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function W(e){return"indeterminate"===e}function X(e){return W(e)?"indeterminate":e?"checked":"unchecked"}V.displayName=q,e.s(["Checkbox",()=>$,"CheckboxIndicator",()=>K,"Indicator",()=>K,"Root",()=>$,"createCheckboxScope",()=>_,"unstable_BubbleInput",()=>V,"unstable_CheckboxBubbleInput",()=>V,"unstable_CheckboxProvider",()=>z,"unstable_CheckboxTrigger",()=>G,"unstable_Provider",()=>z,"unstable_Trigger",()=>G],57696);var Y=e.i(57696),Y=Y;function Z({className:e,...r}){return(0,t.jsx)(Y.Root,{"data-slot":"checkbox",className:(0,x.cn)("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground data-[state=indeterminate]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 cursor-pointer rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...r,children:(0,t.jsx)(Y.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none",children:"indeterminate"===r.checked?(0,t.jsx)(E,{className:"size-3.5"}):(0,t.jsx)(h.default,{className:"size-3.5"})})})}function J({id:e,label:r,description:a,checked:o,onCheckedChange:n,disabled:s}){return(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)(Z,{id:e,className:"mt-0.75",checked:o,onCheckedChange:e=>n(!0===e),disabled:s}),(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)(R,{htmlFor:e,className:"cursor-pointer text-sm font-medium",children:r}),a?(0,t.jsx)(R,{htmlFor:e,className:"text-muted-foreground cursor-pointer text-xs font-normal",children:a}):null]})]})}function Q({label:e,description:r,parentAriaLabel:a,options:o,value:n,onValueChange:s,disabled:i}){let l=o.filter(e=>n[e.id]).length,d=l===o.length,c=l>0&&!d,u=`${e.toLowerCase().replace(/\s+/g,"-")}-group`;return(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)(Z,{id:u,className:"mt-0.75",checked:c?"indeterminate":d,onCheckedChange:()=>{let e=l<o.length,t={};for(let r of o)t[r.id]=e;s(t)},disabled:i,"aria-label":a??`${e} select all`}),(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)(R,{htmlFor:u,className:"cursor-pointer text-sm font-medium",children:e}),r?(0,t.jsx)(R,{htmlFor:u,className:"text-muted-foreground cursor-pointer text-xs font-normal",children:r}):null]})]}),(0,t.jsx)("div",{className:"flex flex-col gap-3 pl-6",children:o.map(e=>(0,t.jsx)(J,{id:e.id,label:e.label,description:e.description,checked:n[e.id]??!1,onCheckedChange:t=>{var r;return r=e.id,void s({...n,[r]:t})},disabled:i},e.id))})]})}var ee=e.i(81846),et=e.i(53532),er=e.i(41687),ea=e.i(56720),eo=e.i(13123),en=e.i(52740),es=e.i(39979),ei=e.i(86874),el=e.i(73772),ed=e.i(13044),ec="Popover",[eu,ep]=(0,A.createContextScope)(ec,[en.createPopperScope]),ef=(0,en.createPopperScope)(),[em,eh]=eu(ec),ex=e=>{let{__scopePopover:a,children:o,open:n,defaultOpen:s,onOpenChange:i,modal:l=!1}=e,d=ef(a),c=r.useRef(null),[u,p]=r.useState(!1),[f,m]=(0,D.useControllableState)({prop:n,defaultProp:s??!1,onChange:i,caller:ec});return(0,t.jsx)(en.Root,{...d,children:(0,t.jsx)(em,{scope:a,contentId:(0,eo.useId)(),triggerRef:c,open:f,onOpenChange:m,onOpenToggle:r.useCallback(()=>m(e=>!e),[m]),hasCustomAnchor:u,onCustomAnchorAdd:r.useCallback(()=>p(!0),[]),onCustomAnchorRemove:r.useCallback(()=>p(!1),[]),modal:l,children:o})})};ex.displayName=ec;var ev="PopoverAnchor",eg=r.forwardRef((e,a)=>{let{__scopePopover:o,...n}=e,s=eh(ev,o),i=ef(o),{onCustomAnchorAdd:l,onCustomAnchorRemove:d}=s;return r.useEffect(()=>(l(),()=>d()),[l,d]),(0,t.jsx)(en.Anchor,{...i,...n,ref:a})});eg.displayName=ev;var eb="PopoverTrigger",ej=r.forwardRef((e,r)=>{let{__scopePopover:a,...o}=e,n=eh(eb,a),s=ef(a),i=(0,S.useComposedRefs)(r,n.triggerRef),l=(0,t.jsx)(y.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":eT(n.open),...o,ref:i,onClick:(0,F.composeEventHandlers)(e.onClick,n.onOpenToggle)});return n.hasCustomAnchor?l:(0,t.jsx)(en.Anchor,{asChild:!0,...s,children:l})});ej.displayName=eb;var ew="PopoverPortal",[eC,ey]=eu(ew,{forceMount:void 0}),ek=e=>{let{__scopePopover:r,forceMount:a,children:o,container:n}=e,s=eh(ew,r);return(0,t.jsx)(eC,{scope:r,forceMount:a,children:(0,t.jsx)(T.Presence,{present:a||s.open,children:(0,t.jsx)(es.Portal,{asChild:!0,container:n,children:o})})})};ek.displayName=ew;var eN="PopoverContent",eP=r.forwardRef((e,r)=>{let a=ey(eN,e.__scopePopover),{forceMount:o=a.forceMount,...n}=e,s=eh(eN,e.__scopePopover);return(0,t.jsx)(T.Presence,{present:o||s.open,children:s.modal?(0,t.jsx)(eE,{...n,ref:r}):(0,t.jsx)(eS,{...n,ref:r})})});eP.displayName=eN;var eR=(0,ei.createSlot)("PopoverContent.RemoveScroll"),eE=r.forwardRef((e,a)=>{let o=eh(eN,e.__scopePopover),n=r.useRef(null),s=(0,S.useComposedRefs)(a,n),i=r.useRef(!1);return r.useEffect(()=>{let e=n.current;if(e)return(0,el.hideOthers)(e)},[]),(0,t.jsx)(ed.RemoveScroll,{as:eR,allowPinchZoom:!0,children:(0,t.jsx)(eA,{...e,ref:s,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,F.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),i.current||o.triggerRef.current?.focus()}),onPointerDownOutside:(0,F.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;i.current=2===t.button||r},{checkForDefaultPrevented:!1}),onFocusOutside:(0,F.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),eS=r.forwardRef((e,a)=>{let o=eh(eN,e.__scopePopover),n=r.useRef(!1),s=r.useRef(!1);return(0,t.jsx)(eA,{...e,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(n.current||o.triggerRef.current?.focus(),t.preventDefault()),n.current=!1,s.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(n.current=!0,"pointerdown"===t.detail.originalEvent.type&&(s.current=!0));let r=t.target;o.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&s.current&&t.preventDefault()}})}),eA=r.forwardRef((e,r)=>{let{__scopePopover:a,trapFocus:o,onOpenAutoFocus:n,onCloseAutoFocus:s,disableOutsidePointerEvents:i,onEscapeKeyDown:l,onPointerDownOutside:d,onFocusOutside:c,onInteractOutside:u,...p}=e,f=eh(eN,a),m=ef(a);return(0,er.useFocusGuards)(),(0,t.jsx)(ea.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:n,onUnmountAutoFocus:s,children:(0,t.jsx)(et.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:u,onEscapeKeyDown:l,onPointerDownOutside:d,onFocusOutside:c,onDismiss:()=>f.onOpenChange(!1),children:(0,t.jsx)(en.Content,{"data-state":eT(f.open),role:"dialog",id:f.contentId,...m,...p,ref:r,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),eF="PopoverClose",eD=r.forwardRef((e,r)=>{let{__scopePopover:a,...o}=e,n=eh(eF,a);return(0,t.jsx)(y.Primitive.button,{type:"button",...o,ref:r,onClick:(0,F.composeEventHandlers)(e.onClick,()=>n.onOpenChange(!1))})});eD.displayName=eF;var eO=r.forwardRef((e,r)=>{let{__scopePopover:a,...o}=e,n=ef(a);return(0,t.jsx)(en.Arrow,{...n,...o,ref:r})});function eT(e){return e?"open":"closed"}eO.displayName="PopoverArrow",e.s(["Anchor",()=>eg,"Arrow",()=>eO,"Close",()=>eD,"Content",()=>eP,"Popover",()=>ex,"PopoverAnchor",()=>eg,"PopoverArrow",()=>eO,"PopoverClose",()=>eD,"PopoverContent",()=>eP,"PopoverPortal",()=>ek,"PopoverTrigger",()=>ej,"Portal",()=>ek,"Root",()=>ex,"Trigger",()=>ej,"createPopoverScope",()=>ep],89920);var eM=e.i(89920),eM=eM;let eI=eM.Root,e_=eM.Trigger;eM.Anchor;let eL=r.forwardRef(({className:e,align:r="center",sideOffset:a=4,...o},n)=>(0,t.jsx)(eM.Portal,{children:(0,t.jsx)(eM.Content,{ref:n,align:r,sideOffset:a,className:(0,x.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none",e),...o})}));eL.displayName=eM.Content.displayName;var eB=e.i(30153);async function ez(){let e=await fetch("/api/dialog/pick-files",{method:"POST"});if(!e.ok)throw Error("Failed to open file dialog");let t=await e.json();return t.cancelled?null:t.files}let eH=[{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."}],eG={allowPrd:!1,allowPlan:!1,allowMerge:!1};function e$({open:e,onClose:a,onSubmit:o,repositoryPath:n,isSubmitting:s=!1,workflowDefaults:l,features:d,initialParentId:c}){let u=(0,v.useSoundAction)("create"),p=l?.approvalGates??eG,f=l?.push??!1,m=l?.openPr??!1,[h,x]=(0,r.useState)(""),[y,k]=(0,r.useState)(""),[N,P]=(0,r.useState)([]),[E,S]=(0,r.useState)({...p}),[A,F]=(0,r.useState)(f),[D,O]=(0,r.useState)(m),[T,M]=(0,r.useState)(void 0);(0,r.useEffect)(()=>{l&&(S({...l.approvalGates}),F(l.push),O(l.openPr))},[l]),(0,r.useEffect)(()=>{e&&c&&M(c)},[e,c]);let I=(0,r.useCallback)(()=>{x(""),k(""),P([]),S({...p}),F(f),O(m),M(void 0)},[p,f,m]),_=""!==h.trim()||""!==y.trim()||N.length>0,{attemptClose:L}=(0,eB.useGuardedDrawerClose)({open:e,isDirty:_,onClose:a,onReset:I}),B=(0,r.useCallback)(e=>{if(e.preventDefault(),!h.trim())return;u.play();let t=y.trim()||void 0;o({name:h.trim(),description:t,attachments:N,repositoryPath:n,approvalGates:{allowPrd:E.allowPrd??!1,allowPlan:E.allowPlan??!1,allowMerge:E.allowMerge??!1},push:A||D,openPr:D,...T?{parentId:T}:{}}),I()},[h,y,N,E,n,o,A,D,T,u,I]),z=(0,r.useCallback)(async()=>{try{let e=await ez();e&&P(t=>[...t,...e])}catch{}},[]),H=(0,r.useCallback)(e=>{P(t=>t.filter(t=>t.path!==e))},[]),G=d&&d.length>0;return(0,t.jsx)(g.BaseDrawer,{open:e,onClose:L,size:"md",modal:!1,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(b.DrawerTitle,{children:"NEW FEATURE"})]}),(0,t.jsx)(b.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(ee.Badge,{variant:"secondary",children:"Creating..."})})})]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(j.Button,{variant:"outline",onClick:L,disabled:s,children:"Cancel"}),(0,t.jsx)(j.Button,{type:"submit",form:"create-feature-form",disabled:!h.trim()||s,children:s?"Creating...":"+ Create Feature"})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsxs)("form",{id:"create-feature-form",onSubmit:B,className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(R,{htmlFor:"feature-name",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"FEATURE NAME"}),(0,t.jsx)(w.Input,{id:"feature-name",placeholder:"e.g. GitHub OAuth Login",value:h,onChange:e=>x(e.target.value),required:!0,disabled:s})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(R,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"DESCRIPTION"}),(0,t.jsx)(C,{id:"feature-description",placeholder:"Describe what this feature does...",value:y,onChange:e=>k(e.target.value),rows:4,disabled:s})]}),G?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(R,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"PARENT FEATURE"}),(0,t.jsx)(eU,{features:d,value:T,onChange:M,disabled:s})]}):null,(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(R,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"APPROVE"}),(0,t.jsx)(Q,{label:"Autonomous Mode",description:"YOLO!",parentAriaLabel:"Auto approve all",options:eH,value:E,onValueChange:S,disabled:s})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(R,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"GIT"}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)(J,{id:"push",label:"Push",description:"Push branch to remote after implementation.",checked:A||D,onCheckedChange:F,disabled:D||s}),(0,t.jsx)(J,{id:"open-pr",label:"Create PR",description:"Open a pull request after pushing.",checked:D,onCheckedChange:O,disabled:s})]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)(R,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:["ATTACHMENTS",N.length>0&&(0,t.jsxs)("span",{className:"text-muted-foreground/60 ml-1.5",children:["(",N.length,")"]})]}),(0,t.jsxs)(j.Button,{type:"button",variant:"outline",size:"xs",onClick:z,disabled:s,children:[(0,t.jsx)(i.default,{className:"size-3"}),"Add Files"]})]}),N.length>0&&(0,t.jsx)("div",{className:"flex flex-col gap-2",children:N.map(e=>(0,t.jsx)(eK,{file:e,onRemove:()=>H(e.path),disabled:s},e.path))})]})]})})})}function eU({features:e,value:a,onChange:o,disabled:n}){let[s,i]=(0,r.useState)(!1),[l,d]=(0,r.useState)(""),c=(0,r.useRef)(null),u=e.find(e=>e.id===a),p=l.trim()?e.filter(e=>e.name.toLowerCase().includes(l.toLowerCase())||e.id.toLowerCase().includes(l.toLowerCase())):e,f=(0,r.useCallback)(e=>{o(e),i(!1),d("")},[o]);return(0,r.useEffect)(()=>{s?setTimeout(()=>c.current?.focus(),0):d("")},[s]),(0,t.jsxs)(eI,{open:s,onOpenChange:i,children:[(0,t.jsx)(e_,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":s,"aria-label":"Parent Feature",disabled:n,"data-testid":"parent-feature-combobox",className:(0,x.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",!u&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:u?`${u.name} (${u.id.slice(0,8)})`:"Select parent feature..."}),(0,t.jsx)(m,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(eL,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(w.Input,{ref:c,placeholder:"Search features...",value:l,onChange:e=>d(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>f(void 0),className:(0,x.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(h.default,{className:(0,x.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:"No parent"})]}),0===p.length&&l?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No features found."}):p.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>f(e.id),className:(0,x.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(h.default,{className:(0,x.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}function eK({file:e,onRemove:r,disabled:a}){var o,n,s;let i,l=(i=(o=e.name).lastIndexOf("."))>=0?o.slice(i).toLowerCase():"",m=(n=l,eq.has(n)?u:".pdf"===n?c.default:eV.has(n)?p:d),h=".pdf"===(s=l)?"bg-red-50 text-red-600":eq.has(s)?"bg-blue-50 text-blue-600":eV.has(s)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600";return(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-md border p-2",children:[(0,t.jsx)("div",{className:(0,x.cn)("flex h-8 w-8 shrink-0 items-center justify-center rounded",h),children:(0,t.jsx)(m,{className:"h-4 w-4"})}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:function(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024));return`${(e/Math.pow(1024,t)).toFixed(+(0!==t))} ${["B","KB","MB","GB"][t]}`}(e.size)})]}),(0,t.jsx)(j.Button,{type:"button",variant:"ghost",size:"icon-xs",onClick:r,disabled:a,"aria-label":`Remove ${e.name}`,children:(0,t.jsx)(f.default,{className:"h-3 w-3"})})]})}let eq=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),eV=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function eW({repositoryPath:e,initialParentId:n,features:i,workflowDefaults:l}){let d=(0,a.useRouter)(),c=(0,v.useSoundAction)("create"),[u,p]=(0,r.useState)(!1),f=(0,a.usePathname)().startsWith("/create"),m=(0,r.useCallback)(()=>{d.push("/")},[d]),h=(0,r.useCallback)(e=>{p(!0),window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{name:e.name,description:e.description,repositoryPath:e.repositoryPath}})),d.push("/"),s(e).then(e=>{if(e.error){o.toast.error(e.error),window.dispatchEvent(new CustomEvent("shep:feature-create-failed"));return}c.play(),d.refresh()}).catch(()=>{o.toast.error("Failed to create feature"),window.dispatchEvent(new CustomEvent("shep:feature-create-failed"))}).finally(()=>{p(!1)})},[d,c]);return(0,t.jsx)(e$,{open:f,onClose:m,onSubmit:h,repositoryPath:e,features:i,workflowDefaults:l,initialParentId:n,isSubmitting:u})}e.s(["CreateDrawerClient",()=>eW],15203)}]);
package/web/.next/trace CHANGED
@@ -1 +1 @@
1
- [{"name":"generate-buildid","duration":198,"timestamp":194018400,"id":4,"parentId":1,"tags":{},"startTime":1772633667892,"traceId":"9e332b737c75cfbc"},{"name":"load-custom-routes","duration":298,"timestamp":194018700,"id":5,"parentId":1,"tags":{},"startTime":1772633667892,"traceId":"9e332b737c75cfbc"},{"name":"create-dist-dir","duration":233,"timestamp":194019042,"id":6,"parentId":1,"tags":{},"startTime":1772633667892,"traceId":"9e332b737c75cfbc"},{"name":"clean","duration":203,"timestamp":194019689,"id":7,"parentId":1,"tags":{},"startTime":1772633667893,"traceId":"9e332b737c75cfbc"},{"name":"create-pages-mapping","duration":206,"timestamp":194073644,"id":8,"parentId":1,"tags":{},"startTime":1772633667947,"traceId":"9e332b737c75cfbc"},{"name":"collect-app-files","duration":2635,"timestamp":194073888,"id":9,"parentId":1,"tags":{},"startTime":1772633667947,"traceId":"9e332b737c75cfbc"},{"name":"create-app-mapping","duration":1065,"timestamp":194076553,"id":10,"parentId":1,"tags":{},"startTime":1772633667950,"traceId":"9e332b737c75cfbc"},{"name":"create-app-layouts","duration":143,"timestamp":194077643,"id":11,"parentId":1,"tags":{},"startTime":1772633667951,"traceId":"9e332b737c75cfbc"},{"name":"collect-default-files","duration":1719,"timestamp":194080877,"id":13,"parentId":1,"tags":{},"startTime":1772633667954,"traceId":"9e332b737c75cfbc"},{"name":"create-default-mapping","duration":134,"timestamp":194082611,"id":14,"parentId":1,"tags":{},"startTime":1772633667956,"traceId":"9e332b737c75cfbc"},{"name":"generate-route-types","duration":25528,"timestamp":194079752,"id":12,"parentId":1,"tags":{},"startTime":1772633667953,"traceId":"9e332b737c75cfbc"},{"name":"public-dir-conflict-check","duration":108,"timestamp":194105327,"id":15,"parentId":1,"tags":{},"startTime":1772633667979,"traceId":"9e332b737c75cfbc"},{"name":"generate-routes-manifest","duration":2313,"timestamp":194105496,"id":16,"parentId":1,"tags":{},"startTime":1772633667979,"traceId":"9e332b737c75cfbc"},{"name":"run-turbopack","duration":9375599,"timestamp":194111144,"id":18,"parentId":1,"tags":{},"startTime":1772633667984,"traceId":"9e332b737c75cfbc"},{"name":"run-typescript","duration":7760887,"timestamp":203511425,"id":20,"parentId":1,"tags":{},"startTime":1772633677385,"traceId":"9e332b737c75cfbc"},{"name":"generate-required-server-files","duration":1995,"timestamp":211272903,"id":22,"parentId":1,"tags":{},"startTime":1772633685146,"traceId":"9e332b737c75cfbc"},{"name":"check-static-error-page","duration":5752,"timestamp":211357489,"id":24,"parentId":23,"tags":{},"startTime":1772633685231,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":244434,"timestamp":211367090,"id":42,"parentId":26,"tags":{},"startTime":1772633685240,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":250324,"timestamp":211361314,"id":26,"parentId":23,"tags":{"page":"/_global-error"},"startTime":1772633685235,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":317877,"timestamp":211366790,"id":41,"parentId":25,"tags":{},"startTime":1772633685240,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":324830,"timestamp":211359892,"id":25,"parentId":23,"tags":{"page":"/_not-found"},"startTime":1772633685233,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":352845,"timestamp":211369435,"id":44,"parentId":35,"tags":{},"startTime":1772633685243,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":359896,"timestamp":211362436,"id":35,"parentId":23,"tags":{"page":"/api/tools/[id]/install"},"startTime":1772633685236,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":353334,"timestamp":211369205,"id":43,"parentId":34,"tags":{},"startTime":1772633685243,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":360260,"timestamp":211362301,"id":34,"parentId":23,"tags":{"page":"/api/dialog/pick-files"},"startTime":1772633685236,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":358697,"timestamp":211369569,"id":46,"parentId":37,"tags":{},"startTime":1772633685243,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":365701,"timestamp":211362620,"id":37,"parentId":23,"tags":{"page":"/api/tools"},"startTime":1772633685236,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":350829,"timestamp":211380868,"id":48,"parentId":31,"tags":{},"startTime":1772633685254,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":369754,"timestamp":211361970,"id":31,"parentId":23,"tags":{"page":"/api/agent-events/health"},"startTime":1772633685235,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":362348,"timestamp":211369498,"id":45,"parentId":36,"tags":{},"startTime":1772633685243,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":369340,"timestamp":211362526,"id":36,"parentId":23,"tags":{"page":"/api/tools/[id]/launch"},"startTime":1772633685236,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":353827,"timestamp":211380340,"id":47,"parentId":32,"tags":{},"startTime":1772633685254,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":372114,"timestamp":211362075,"id":32,"parentId":23,"tags":{"page":"/api/agent-events"},"startTime":1772633685235,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":354541,"timestamp":211381536,"id":49,"parentId":33,"tags":{},"startTime":1772633685255,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":373915,"timestamp":211362194,"id":33,"parentId":23,"tags":{"page":"/api/deployment-logs"},"startTime":1772633685236,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":358645,"timestamp":211388920,"id":50,"parentId":38,"tags":{},"startTime":1772633685262,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":384641,"timestamp":211362951,"id":38,"parentId":23,"tags":{"page":"/skills"},"startTime":1772633685236,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":368716,"timestamp":211390420,"id":53,"parentId":27,"tags":{},"startTime":1772633685264,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":397631,"timestamp":211361531,"id":27,"parentId":23,"tags":{"page":"/create"},"startTime":1772633685235,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":373956,"timestamp":211388970,"id":51,"parentId":40,"tags":{},"startTime":1772633685262,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":399795,"timestamp":211363153,"id":40,"parentId":23,"tags":{"page":"/version"},"startTime":1772633685236,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":375827,"timestamp":211389155,"id":52,"parentId":39,"tags":{},"startTime":1772633685262,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":401942,"timestamp":211363079,"id":39,"parentId":23,"tags":{"page":"/tools"},"startTime":1772633685236,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":374549,"timestamp":211390543,"id":54,"parentId":28,"tags":{},"startTime":1772633685264,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":403480,"timestamp":211361630,"id":28,"parentId":23,"tags":{"page":"/feature/[featureId]"},"startTime":1772633685235,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":390556,"timestamp":211390774,"id":56,"parentId":30,"tags":{},"startTime":1772633685264,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":419492,"timestamp":211361868,"id":30,"parentId":23,"tags":{"page":"/"},"startTime":1772633685235,"traceId":"9e332b737c75cfbc"},{"name":"is-page-static","duration":392134,"timestamp":211390651,"id":55,"parentId":29,"tags":{},"startTime":1772633685264,"traceId":"9e332b737c75cfbc"},{"name":"check-page","duration":421081,"timestamp":211361722,"id":29,"parentId":23,"tags":{"page":"/repository/[repositoryId]"},"startTime":1772633685235,"traceId":"9e332b737c75cfbc"},{"name":"static-check","duration":426228,"timestamp":211356604,"id":23,"parentId":1,"tags":{},"startTime":1772633685230,"traceId":"9e332b737c75cfbc"},{"name":"write-routes-manifest","duration":1492,"timestamp":211783359,"id":58,"parentId":1,"tags":{},"startTime":1772633685657,"traceId":"9e332b737c75cfbc"},{"name":"load-dotenv","duration":48,"timestamp":211791993,"id":61,"parentId":60,"tags":{},"startTime":1772633685665,"traceId":"9e332b737c75cfbc"},{"name":"run-export-path-map","duration":308,"timestamp":211793981,"id":62,"parentId":60,"tags":{},"startTime":1772633685667,"traceId":"9e332b737c75cfbc"},{"name":"next-export","duration":73384,"timestamp":211791127,"id":60,"parentId":1,"tags":{},"startTime":1772633685664,"traceId":"9e332b737c75cfbc"},{"name":"move-exported-app-global-error-","duration":440,"timestamp":211865539,"id":63,"parentId":59,"tags":{},"startTime":1772633685739,"traceId":"9e332b737c75cfbc"},{"name":"static-generation","duration":80348,"timestamp":211787359,"id":59,"parentId":1,"tags":{},"startTime":1772633685661,"traceId":"9e332b737c75cfbc"},{"name":"write-routes-manifest","duration":270,"timestamp":211867842,"id":64,"parentId":1,"tags":{},"startTime":1772633685741,"traceId":"9e332b737c75cfbc"},{"name":"write-standalone-directory","duration":286131,"timestamp":211877847,"id":66,"parentId":1,"tags":{},"startTime":1772633685751,"traceId":"9e332b737c75cfbc"},{"name":"output-standalone","duration":286263,"timestamp":211877733,"id":65,"parentId":1,"tags":{},"startTime":1772633685751,"traceId":"9e332b737c75cfbc"},{"name":"print-tree-view","duration":2254,"timestamp":212164117,"id":67,"parentId":1,"tags":{},"startTime":1772633686037,"traceId":"9e332b737c75cfbc"},{"name":"telemetry-flush","duration":64,"timestamp":212166382,"id":68,"parentId":1,"tags":{},"startTime":1772633686040,"traceId":"9e332b737c75cfbc"},{"name":"next-build","duration":18363263,"timestamp":193803194,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1772633667677,"traceId":"9e332b737c75cfbc"}]
1
+ [{"name":"generate-buildid","duration":192,"timestamp":83613407,"id":4,"parentId":1,"tags":{},"startTime":1772644306954,"traceId":"5a98c9ac0444f8cd"},{"name":"load-custom-routes","duration":318,"timestamp":83613700,"id":5,"parentId":1,"tags":{},"startTime":1772644306954,"traceId":"5a98c9ac0444f8cd"},{"name":"create-dist-dir","duration":209,"timestamp":83614046,"id":6,"parentId":1,"tags":{},"startTime":1772644306954,"traceId":"5a98c9ac0444f8cd"},{"name":"clean","duration":193,"timestamp":83614642,"id":7,"parentId":1,"tags":{},"startTime":1772644306955,"traceId":"5a98c9ac0444f8cd"},{"name":"create-pages-mapping","duration":239,"timestamp":83763609,"id":8,"parentId":1,"tags":{},"startTime":1772644307104,"traceId":"5a98c9ac0444f8cd"},{"name":"collect-app-files","duration":2363,"timestamp":83763884,"id":9,"parentId":1,"tags":{},"startTime":1772644307104,"traceId":"5a98c9ac0444f8cd"},{"name":"create-app-mapping","duration":1032,"timestamp":83766271,"id":10,"parentId":1,"tags":{},"startTime":1772644307106,"traceId":"5a98c9ac0444f8cd"},{"name":"create-app-layouts","duration":136,"timestamp":83767327,"id":11,"parentId":1,"tags":{},"startTime":1772644307108,"traceId":"5a98c9ac0444f8cd"},{"name":"collect-default-files","duration":718,"timestamp":83769751,"id":13,"parentId":1,"tags":{},"startTime":1772644307110,"traceId":"5a98c9ac0444f8cd"},{"name":"create-default-mapping","duration":121,"timestamp":83770485,"id":14,"parentId":1,"tags":{},"startTime":1772644307111,"traceId":"5a98c9ac0444f8cd"},{"name":"generate-route-types","duration":13734,"timestamp":83769198,"id":12,"parentId":1,"tags":{},"startTime":1772644307109,"traceId":"5a98c9ac0444f8cd"},{"name":"public-dir-conflict-check","duration":106,"timestamp":83782964,"id":15,"parentId":1,"tags":{},"startTime":1772644307123,"traceId":"5a98c9ac0444f8cd"},{"name":"generate-routes-manifest","duration":2354,"timestamp":83783126,"id":16,"parentId":1,"tags":{},"startTime":1772644307123,"traceId":"5a98c9ac0444f8cd"},{"name":"run-turbopack","duration":8740723,"timestamp":83788794,"id":18,"parentId":1,"tags":{},"startTime":1772644307129,"traceId":"5a98c9ac0444f8cd"},{"name":"run-typescript","duration":8152694,"timestamp":92542930,"id":20,"parentId":1,"tags":{},"startTime":1772644315883,"traceId":"5a98c9ac0444f8cd"},{"name":"generate-required-server-files","duration":1337,"timestamp":100695999,"id":22,"parentId":1,"tags":{},"startTime":1772644324036,"traceId":"5a98c9ac0444f8cd"},{"name":"check-static-error-page","duration":6933,"timestamp":100761798,"id":24,"parentId":23,"tags":{},"startTime":1772644324102,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":276068,"timestamp":100772455,"id":42,"parentId":26,"tags":{},"startTime":1772644324113,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":283135,"timestamp":100765480,"id":26,"parentId":23,"tags":{"page":"/_global-error"},"startTime":1772644324106,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":298699,"timestamp":100772251,"id":41,"parentId":25,"tags":{},"startTime":1772644324112,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":307863,"timestamp":100763132,"id":25,"parentId":23,"tags":{"page":"/_not-found"},"startTime":1772644324103,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":324434,"timestamp":100775925,"id":43,"parentId":34,"tags":{},"startTime":1772644324116,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":334001,"timestamp":100766401,"id":34,"parentId":23,"tags":{"page":"/api/dialog/pick-files"},"startTime":1772644324107,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":330800,"timestamp":100779811,"id":46,"parentId":35,"tags":{},"startTime":1772644324120,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":344165,"timestamp":100766485,"id":35,"parentId":23,"tags":{"page":"/api/tools/[id]/install"},"startTime":1772644324107,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":330771,"timestamp":100784743,"id":47,"parentId":31,"tags":{},"startTime":1772644324125,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":349434,"timestamp":100766113,"id":31,"parentId":23,"tags":{"page":"/api/agent-events/health"},"startTime":1772644324106,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":330943,"timestamp":100787527,"id":48,"parentId":32,"tags":{},"startTime":1772644324128,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":352267,"timestamp":100766224,"id":32,"parentId":23,"tags":{"page":"/api/agent-events"},"startTime":1772644324106,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":342889,"timestamp":100779259,"id":45,"parentId":37,"tags":{},"startTime":1772644324119,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":354035,"timestamp":100768136,"id":37,"parentId":23,"tags":{"page":"/api/tools"},"startTime":1772644324108,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":333315,"timestamp":100789088,"id":49,"parentId":33,"tags":{},"startTime":1772644324129,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":356121,"timestamp":100766302,"id":33,"parentId":23,"tags":{"page":"/api/deployment-logs"},"startTime":1772644324107,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":351527,"timestamp":100779190,"id":44,"parentId":36,"tags":{},"startTime":1772644324119,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":362691,"timestamp":100768063,"id":36,"parentId":23,"tags":{"page":"/api/tools/[id]/launch"},"startTime":1772644324108,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":349296,"timestamp":100792419,"id":50,"parentId":38,"tags":{},"startTime":1772644324133,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":373279,"timestamp":100768455,"id":38,"parentId":23,"tags":{"page":"/skills"},"startTime":1772644324109,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":357511,"timestamp":100795326,"id":53,"parentId":27,"tags":{},"startTime":1772644324136,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":387183,"timestamp":100765670,"id":27,"parentId":23,"tags":{"page":"/create"},"startTime":1772644324106,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":361212,"timestamp":100792468,"id":51,"parentId":40,"tags":{},"startTime":1772644324133,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":385041,"timestamp":100768657,"id":40,"parentId":23,"tags":{"page":"/version"},"startTime":1772644324109,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":364101,"timestamp":100795438,"id":54,"parentId":28,"tags":{},"startTime":1772644324136,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":393755,"timestamp":100765800,"id":28,"parentId":23,"tags":{"page":"/feature/[featureId]"},"startTime":1772644324106,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":367603,"timestamp":100795642,"id":56,"parentId":30,"tags":{},"startTime":1772644324136,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":397323,"timestamp":100765935,"id":30,"parentId":23,"tags":{"page":"/"},"startTime":1772644324106,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":371594,"timestamp":100792601,"id":52,"parentId":39,"tags":{},"startTime":1772644324133,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":395680,"timestamp":100768528,"id":39,"parentId":23,"tags":{"page":"/tools"},"startTime":1772644324109,"traceId":"5a98c9ac0444f8cd"},{"name":"is-page-static","duration":374285,"timestamp":100795541,"id":55,"parentId":29,"tags":{},"startTime":1772644324136,"traceId":"5a98c9ac0444f8cd"},{"name":"check-page","duration":403970,"timestamp":100765871,"id":29,"parentId":23,"tags":{"page":"/repository/[repositoryId]"},"startTime":1772644324106,"traceId":"5a98c9ac0444f8cd"},{"name":"static-check","duration":408940,"timestamp":100760930,"id":23,"parentId":1,"tags":{},"startTime":1772644324101,"traceId":"5a98c9ac0444f8cd"},{"name":"write-routes-manifest","duration":220,"timestamp":101170353,"id":58,"parentId":1,"tags":{},"startTime":1772644324511,"traceId":"5a98c9ac0444f8cd"},{"name":"load-dotenv","duration":31,"timestamp":101177491,"id":61,"parentId":60,"tags":{},"startTime":1772644324518,"traceId":"5a98c9ac0444f8cd"},{"name":"run-export-path-map","duration":286,"timestamp":101180323,"id":62,"parentId":60,"tags":{},"startTime":1772644324521,"traceId":"5a98c9ac0444f8cd"},{"name":"next-export","duration":73115,"timestamp":101176600,"id":60,"parentId":1,"tags":{},"startTime":1772644324517,"traceId":"5a98c9ac0444f8cd"},{"name":"move-exported-app-global-error-","duration":381,"timestamp":101250679,"id":63,"parentId":59,"tags":{},"startTime":1772644324591,"traceId":"5a98c9ac0444f8cd"},{"name":"static-generation","duration":79280,"timestamp":101172944,"id":59,"parentId":1,"tags":{},"startTime":1772644324513,"traceId":"5a98c9ac0444f8cd"},{"name":"write-routes-manifest","duration":223,"timestamp":101252408,"id":64,"parentId":1,"tags":{},"startTime":1772644324593,"traceId":"5a98c9ac0444f8cd"},{"name":"write-standalone-directory","duration":327297,"timestamp":101258809,"id":66,"parentId":1,"tags":{},"startTime":1772644324599,"traceId":"5a98c9ac0444f8cd"},{"name":"output-standalone","duration":327495,"timestamp":101258624,"id":65,"parentId":1,"tags":{},"startTime":1772644324599,"traceId":"5a98c9ac0444f8cd"},{"name":"print-tree-view","duration":2134,"timestamp":101586238,"id":67,"parentId":1,"tags":{},"startTime":1772644324926,"traceId":"5a98c9ac0444f8cd"},{"name":"telemetry-flush","duration":63,"timestamp":101588382,"id":68,"parentId":1,"tags":{},"startTime":1772644324929,"traceId":"5a98c9ac0444f8cd"},{"name":"next-build","duration":18288984,"timestamp":83299473,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1772644306640,"traceId":"5a98c9ac0444f8cd"}]
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":9375599,"timestamp":194111144,"id":18,"parentId":1,"tags":{},"startTime":1772633667984,"traceId":"9e332b737c75cfbc"},{"name":"run-typescript","duration":7760887,"timestamp":203511425,"id":20,"parentId":1,"tags":{},"startTime":1772633677385,"traceId":"9e332b737c75cfbc"},{"name":"static-check","duration":426228,"timestamp":211356604,"id":23,"parentId":1,"tags":{},"startTime":1772633685230,"traceId":"9e332b737c75cfbc"},{"name":"static-generation","duration":80348,"timestamp":211787359,"id":59,"parentId":1,"tags":{},"startTime":1772633685661,"traceId":"9e332b737c75cfbc"},{"name":"output-standalone","duration":286263,"timestamp":211877733,"id":65,"parentId":1,"tags":{},"startTime":1772633685751,"traceId":"9e332b737c75cfbc"},{"name":"telemetry-flush","duration":64,"timestamp":212166382,"id":68,"parentId":1,"tags":{},"startTime":1772633686040,"traceId":"9e332b737c75cfbc"},{"name":"next-build","duration":18363263,"timestamp":193803194,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1772633667677,"traceId":"9e332b737c75cfbc"}]
1
+ [{"name":"run-turbopack","duration":8740723,"timestamp":83788794,"id":18,"parentId":1,"tags":{},"startTime":1772644307129,"traceId":"5a98c9ac0444f8cd"},{"name":"run-typescript","duration":8152694,"timestamp":92542930,"id":20,"parentId":1,"tags":{},"startTime":1772644315883,"traceId":"5a98c9ac0444f8cd"},{"name":"static-check","duration":408940,"timestamp":100760930,"id":23,"parentId":1,"tags":{},"startTime":1772644324101,"traceId":"5a98c9ac0444f8cd"},{"name":"static-generation","duration":79280,"timestamp":101172944,"id":59,"parentId":1,"tags":{},"startTime":1772644324513,"traceId":"5a98c9ac0444f8cd"},{"name":"output-standalone","duration":327495,"timestamp":101258624,"id":65,"parentId":1,"tags":{},"startTime":1772644324599,"traceId":"5a98c9ac0444f8cd"},{"name":"telemetry-flush","duration":63,"timestamp":101588382,"id":68,"parentId":1,"tags":{},"startTime":1772644324929,"traceId":"5a98c9ac0444f8cd"},{"name":"next-build","duration":18288984,"timestamp":83299473,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1772644306640,"traceId":"5a98c9ac0444f8cd"}]
@@ -1,3 +0,0 @@
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"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},2157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},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])},57764,(e,t,r)=>{t.exports=e.x("node:url",()=>require("node:url"))},9550,e=>{"use strict";var t=e.i(22925),r=e.i(62995),a=e.i(14112),n=e.i(31716),o=e.i(16340),s=e.i(40522),i=e.i(21994),l=e.i(5802),d=e.i(17171),u=e.i(177),p=e.i(43685),c=e.i(84832),h=e.i(92435),x=e.i(41260),f=e.i(80556),v=e.i(93695);e.i(97230);var R=e.i(35162),m=e.i(27980),g=e.i(40060),w=e.i(2157),E=e.i(50227),y=e.i(57764);let C={get url(){return`file://${e.P("packages/core/src/infrastructure/services/tool-installer/tool-metadata.ts")}`}},b=["name","summary","description","tags","binary","packageManager","commands","timeout","documentationUrl","verifyCommand"],A=function(){let e,t=(0,E.join)((0,y.fileURLToPath)(C.url),"..","tools"),r={};try{e=(0,w.readdirSync)(t).filter(e=>e.endsWith(".json"))}catch{return r}for(let a of e){let e=(0,E.basename)(a,".json");try{let n=(0,w.readFileSync)((0,E.join)(t,a),"utf-8"),o=JSON.parse(n);if(b.filter(e=>!(e in o)).length>0)continue;r[e]=o}catch{}}return r}();async function T(e,{params:t}){let{id:r}=await t;if(!A[r])return m.NextResponse.json({error:"Tool not found"},{status:404});try{let e=(0,g.resolve)("InstallToolUseCase"),t=await e.execute(r);return m.NextResponse.json({status:t})}catch(t){let e=t instanceof Error?t.message:"Failed to install tool";return m.NextResponse.json({error:e},{status:500})}}e.s(["POST",()=>T],55315);var N=e.i(55315);let P=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tools/[id]/install/route",pathname:"/api/tools/[id]/install",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/presentation/web/app/api/tools/[id]/install/route.ts",nextConfigOutput:"standalone",userland:N}),{workAsyncStorage:j,workUnitAsyncStorage:k,serverHooks:q}=P;function O(){return(0,a.patchFetch)({workAsyncStorage:j,workUnitAsyncStorage:k})}async function S(e,t,a){P.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/tools/[id]/install/route";m=m.replace(/\/index$/,"")||"/";let g=await P.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:y,parsedUrl:C,isDraftMode:b,prerenderManifest:A,routerServerContext:T,isOnDemandRevalidate:N,revalidateOnlyGenerated:j,resolvedPathname:k,clientReferenceManifest:q,serverActionsManifest:O}=g,S=(0,i.normalizeAppPath)(m),_=!!(A.dynamicRoutes[S]||A.routes[k]),U=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,C,!1):t.end("This page could not be found"),null);if(_&&!b){let e=!!A.routes[k],t=A.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await U();throw new v.NoFallbackError}}let I=null;!_||P.isDev||b||(I="/index"===(I=k)?"/":I);let H=!0===P.isDev||!_,D=_&&!H;O&&q&&(0,s.setManifestsSingleton)({page:m,clientReferenceManifest:q,serverActionsManifest:O});let M=e.method||"GET",F=(0,o.getTracer)(),$=F.getActiveScopeSpan(),K={params:E,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:H,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)=>P.onRequestError(e,t,a,n,T)},sharedContext:{buildId:w}},L=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(L,(0,d.signalFromNodeResponse)(t));try{let s=async e=>P.handle(G,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.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} ${m}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var o,l;let d=async({previousCacheEntry:r})=>{try{if(!i&&N&&j&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(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(!_)return await (0,c.sendResponse)(L,B,o,K.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);d&&(t[f.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>=f.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,a=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:R.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 P.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,T),t}},u=await P.handleResponse({req:e,nextConfig:y,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:j,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:i});if(!_)return null;if((null==u||null==(o=u.value)?void 0:o.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});i||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let v=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return i&&_||v.delete(f.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||v.get("Cache-Control")||v.set("Cache-Control",(0,x.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(L,B,new Response(u.value.body,{headers:v,status:u.value.status||200})),null};$?await l($):await F.withPropagatedContext(e.headers,()=>F.trace(u.BaseServerSpan.handleRequest,{spanName:`${M} ${m}`,kind:o.SpanKind.SERVER,attributes:{"http.method":M,"http.target":e.url}},l))}catch(t){if(t instanceof v.NoFallbackError||await P.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:N})},!1,T),_)throw t;return await (0,c.sendResponse)(L,B,new Response(null,{status:500})),null}}e.s(["handler",()=>S,"patchFetch",()=>O,"routeModule",()=>P,"serverHooks",()=>q,"workAsyncStorage",()=>j,"workUnitAsyncStorage",()=>k],9550)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__b1f03347._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../src/presentation/web/lib/server-container.ts","../../../../../../src/presentation/web/app/api/tools/%5Bid%5D/install/route.ts","../../../../../../packages/core/src/infrastructure/services/tool-installer/tool-metadata.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"],"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 { NextResponse } from 'next/server';\nimport { resolve } from '@/lib/server-container';\nimport type { InstallToolUseCase } from '@shepai/core/application/use-cases/tools/install-tool.use-case';\nimport { TOOL_METADATA } from '@shepai/core/infrastructure/services/tool-installer/tool-metadata';\n\nexport async function POST(\n _request: Request,\n { params }: { params: Promise<{ id: string }> }\n): Promise<NextResponse> {\n const { id } = await params;\n\n if (!TOOL_METADATA[id]) {\n return NextResponse.json({ error: 'Tool not found' }, { status: 404 });\n }\n\n try {\n const useCase = resolve<InstallToolUseCase>('InstallToolUseCase');\n const status = await useCase.execute(id);\n return NextResponse.json({ status });\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to install tool';\n return NextResponse.json({ error: message }, { status: 500 });\n }\n}\n","/**\n * Tool Installation Metadata\n *\n * Dynamically loads tool definitions from individual JSON files in the tools/ directory.\n * Each JSON file defines installation commands and metadata for a single development tool.\n *\n * To add a new tool, create a JSON file in tools/ matching the ToolMetadata schema:\n * tools/<tool-name>.json\n */\n\nimport { readdirSync, readFileSync } from 'node:fs';\nimport { join, basename } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nexport interface ToolMetadata {\n /** Human-readable display name */\n name: string;\n\n /** Short one-line summary */\n summary: string;\n\n /** Detailed description */\n description: string;\n\n /** Tool tags for grouping in listings. A tool can belong to multiple categories. */\n tags: ('ide' | 'cli-agent' | 'vcs' | 'terminal')[];\n\n /** URL to the tool's icon/logo image */\n iconUrl?: string;\n\n /** Binary name to check with 'which' command (string or per-platform map) */\n binary: string | Record<string, string>;\n\n /** Package manager or installation method */\n packageManager: string;\n\n /** Platform-specific installation commands as shell strings (keyed by os.platform()) */\n commands: Record<string, string>;\n\n /** Installation timeout in milliseconds */\n timeout: number;\n\n /** Official documentation URL */\n documentationUrl: string;\n\n /** Command to verify installation (e.g., \"code --version\") */\n verifyCommand: string;\n\n /** Whether the tool supports automated installation (default: true) */\n autoInstall?: boolean;\n\n /** Whether this tool is required for the platform to function (default: false) */\n required?: boolean;\n\n /** Command to open a directory in this tool.\n * String format: \"code {dir}\" — single command for all platforms.\n * Object format: { \"linux\": \"antigravity {dir}\", \"darwin\": \"agy {dir}\" } — per-platform commands. */\n openDirectory?: string | Record<string, string>;\n\n /** Override default spawn options for the launch process.\n * Defaults: { detached: true, stdio: \"ignore\" } (GUI IDEs).\n * CLI agents should use { shell: true, stdio: \"inherit\" } to run in the current terminal. */\n spawnOptions?: {\n shell?: boolean;\n stdio?: 'ignore' | 'inherit' | 'pipe';\n detached?: boolean;\n };\n\n /** Platform-specific command to launch this tool in a new terminal window.\n * Used when launching from the web UI where no terminal is available.\n * When set, the launcher spawns a new terminal window with this command.\n * Supports {dir} placeholder like openDirectory.\n * Example: \"x-terminal-emulator -e bash -c 'cd {dir} && claude'\" */\n terminalCommand?: string | Record<string, string>;\n}\n\nconst REQUIRED_FIELDS: (keyof ToolMetadata)[] = [\n 'name',\n 'summary',\n 'description',\n 'tags',\n 'binary',\n 'packageManager',\n 'commands',\n 'timeout',\n 'documentationUrl',\n 'verifyCommand',\n];\n\nfunction loadToolMetadata(): Record<string, ToolMetadata> {\n const toolsDir = join(fileURLToPath(import.meta.url), '..', 'tools');\n const metadata: Record<string, ToolMetadata> = {};\n\n let files: string[];\n try {\n files = readdirSync(toolsDir).filter((f) => f.endsWith('.json'));\n } catch {\n return metadata;\n }\n\n for (const file of files) {\n const toolName = basename(file, '.json');\n try {\n const raw = readFileSync(join(toolsDir, file), 'utf-8');\n const parsed = JSON.parse(raw) as ToolMetadata;\n\n const missing = REQUIRED_FIELDS.filter((field) => !(field in parsed));\n if (missing.length > 0) {\n continue;\n }\n\n metadata[toolName] = parsed;\n } catch {\n // Skip malformed JSON files\n }\n }\n\n return metadata;\n}\n\nexport const TOOL_METADATA: Record<string, ToolMetadata> = loadToolMetadata();\n\n/**\n * Returns entries from TOOL_METADATA that can open a directory as an IDE.\n * A tool qualifies if it has an `openDirectory` field, regardless of category.\n * Each entry is [toolId, metadata].\n */\nexport function getIdeEntries(): [string, ToolMetadata][] {\n return Object.entries(TOOL_METADATA).filter(([, meta]) => meta.openDirectory != null);\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 = \"standalone\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/api/tools/[id]/install/route\",\n pathname: \"/api/tools/[id]/install\",\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/tools/[id]/install/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/tools/[id]/install/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"],"names":[],"mappings":"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","ignoreList":[3]}