@shepai/cli 1.171.0 → 1.172.0-pr528.619145

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 (228) hide show
  1. package/apis/json-schema/AgentType.yaml +1 -0
  2. package/dist/packages/core/src/domain/generated/output.d.ts +1 -0
  3. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  4. package/dist/packages/core/src/domain/generated/output.js +1 -0
  5. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  6. package/dist/packages/core/src/infrastructure/di/container.js +3 -0
  7. package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.d.ts.map +1 -1
  8. package/dist/packages/core/src/infrastructure/services/agents/common/agent-executor-factory.service.js +23 -0
  9. package/dist/packages/core/src/infrastructure/services/agents/common/agent-validator.service.d.ts.map +1 -1
  10. package/dist/packages/core/src/infrastructure/services/agents/common/agent-validator.service.js +1 -0
  11. package/dist/packages/core/src/infrastructure/services/agents/common/executors/copilot-cli-executor.service.d.ts +63 -0
  12. package/dist/packages/core/src/infrastructure/services/agents/common/executors/copilot-cli-executor.service.d.ts.map +1 -0
  13. package/dist/packages/core/src/infrastructure/services/agents/common/executors/copilot-cli-executor.service.js +494 -0
  14. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/codex.json +32 -0
  15. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/copilot.json +32 -0
  16. package/dist/src/presentation/tui/prompts/agent-select.prompt.d.ts.map +1 -1
  17. package/dist/src/presentation/tui/prompts/agent-select.prompt.js +5 -0
  18. package/dist/src/presentation/web/app/actions/check-agent-auth.d.ts.map +1 -1
  19. package/dist/src/presentation/web/app/actions/check-agent-auth.js +18 -0
  20. package/dist/src/presentation/web/app/actions/get-all-agent-models.d.ts.map +1 -1
  21. package/dist/src/presentation/web/app/actions/get-all-agent-models.js +4 -2
  22. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts +1 -1
  23. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.d.ts.map +1 -1
  24. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.js +2 -0
  25. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.d.ts.map +1 -1
  26. package/dist/src/presentation/web/components/common/feature-node/agent-type-icons.stories.js +1 -0
  27. package/dist/src/presentation/web/components/common/repo-group/repo-group.js +1 -1
  28. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts +1 -0
  29. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.d.ts.map +1 -1
  30. package/dist/src/presentation/web/components/features/settings/AgentModelPicker/AgentModelPicker.stories.js +7 -0
  31. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map +1 -1
  32. package/dist/src/presentation/web/components/features/settings/agent-settings-section.js +11 -3
  33. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts +1 -0
  34. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts.map +1 -1
  35. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.js +8 -0
  36. package/dist/translations/ar/tui.json +4 -0
  37. package/dist/translations/de/tui.json +4 -0
  38. package/dist/translations/en/tui.json +4 -0
  39. package/dist/translations/es/tui.json +4 -0
  40. package/dist/translations/fr/tui.json +4 -0
  41. package/dist/translations/he/tui.json +4 -0
  42. package/dist/translations/pt/tui.json +4 -0
  43. package/dist/translations/ru/tui.json +4 -0
  44. package/dist/tsconfig.build.tsbuildinfo +1 -1
  45. package/package.json +1 -1
  46. package/web/.next/BUILD_ID +1 -1
  47. package/web/.next/build-manifest.json +2 -2
  48. package/web/.next/fallback-build-manifest.json +2 -2
  49. package/web/.next/prerender-manifest.json +3 -3
  50. package/web/.next/required-server-files.js +3 -3
  51. package/web/.next/required-server-files.json +3 -3
  52. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  53. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  54. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  55. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  56. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  57. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  58. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
  59. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  60. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  61. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +38 -38
  62. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  63. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +38 -38
  65. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  66. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  67. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  68. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  69. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  70. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  71. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  72. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  73. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  74. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  75. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  76. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
  77. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  78. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  79. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +38 -38
  80. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  81. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  82. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +38 -38
  83. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  84. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  85. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  86. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  87. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  88. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  89. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  90. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  91. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  92. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  93. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  94. package/web/.next/server/app/_global-error.html +2 -2
  95. package/web/.next/server/app/_global-error.rsc +1 -1
  96. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  97. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  98. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  99. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  100. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  101. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  102. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  103. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  104. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  105. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  106. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  107. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  108. package/web/.next/server/app/features/page/server-reference-manifest.json +6 -6
  109. package/web/.next/server/app/features/page.js.nft.json +1 -1
  110. package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
  111. package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
  112. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  113. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  114. package/web/.next/server/app/skills/page/server-reference-manifest.json +13 -13
  115. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  116. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  117. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  118. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  119. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  120. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  121. package/web/.next/server/app/version/page.js.nft.json +1 -1
  122. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  123. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  124. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +1 -1
  125. package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
  126. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
  127. package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
  128. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  129. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  130. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
  131. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  132. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js +1 -1
  133. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js.map +1 -1
  134. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
  135. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
  136. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  137. package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js +1 -1
  138. package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js.map +1 -1
  139. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +1 -1
  140. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -1
  141. package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js +1 -1
  142. package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js.map +1 -1
  143. package/web/.next/server/chunks/ssr/[root-of-the-server]__92ffd5ee._.js +2 -2
  144. package/web/.next/server/chunks/ssr/[root-of-the-server]__92ffd5ee._.js.map +1 -1
  145. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js +2 -2
  146. package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js.map +1 -1
  147. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
  148. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js +1 -1
  150. package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js.map +1 -1
  151. package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js +1 -1
  152. package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js.map +1 -1
  153. package/web/.next/server/chunks/ssr/_02e01240._.js +1 -1
  154. package/web/.next/server/chunks/ssr/_02e01240._.js.map +1 -1
  155. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  156. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  157. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  158. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  159. package/web/.next/server/chunks/ssr/_18886033._.js +1 -1
  160. package/web/.next/server/chunks/ssr/_18886033._.js.map +1 -1
  161. package/web/.next/server/chunks/ssr/_22e00a14._.js +1 -1
  162. package/web/.next/server/chunks/ssr/_22e00a14._.js.map +1 -1
  163. package/web/.next/server/chunks/ssr/{_d50cde79._.js → _39147808._.js} +2 -2
  164. package/web/.next/server/chunks/ssr/{_d50cde79._.js.map → _39147808._.js.map} +1 -1
  165. package/web/.next/server/chunks/ssr/{_f778f3ef._.js → _3cfb4ce1._.js} +2 -2
  166. package/web/.next/server/chunks/ssr/{_f778f3ef._.js.map → _3cfb4ce1._.js.map} +1 -1
  167. package/web/.next/server/chunks/ssr/_45496654._.js +1 -1
  168. package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/_4cbb7f95._.js +1 -1
  170. package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -1
  171. package/web/.next/server/chunks/ssr/_5119a3df._.js.map +1 -1
  172. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  173. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  174. package/web/.next/server/chunks/ssr/{_49447b3c._.js → _8e3828d3._.js} +2 -2
  175. package/web/.next/server/chunks/ssr/{_49447b3c._.js.map → _8e3828d3._.js.map} +1 -1
  176. package/web/.next/server/chunks/ssr/_a5a5901d._.js +1 -1
  177. package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +1 -1
  178. package/web/.next/server/chunks/ssr/_ad09f271._.js +1 -1
  179. package/web/.next/server/chunks/ssr/_ad09f271._.js.map +1 -1
  180. package/web/.next/server/chunks/ssr/_c3f595c6._.js +1 -1
  181. package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +1 -1
  182. package/web/.next/server/chunks/ssr/_df737cce._.js +1 -1
  183. package/web/.next/server/chunks/ssr/_ea9e1556._.js +1 -1
  184. package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +1 -1
  185. package/web/.next/server/chunks/ssr/_f1ba9be6._.js +2 -2
  186. package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +1 -1
  187. package/web/.next/server/chunks/ssr/_f33cd07e._.js +2 -2
  188. package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +1 -1
  189. package/web/.next/server/chunks/ssr/_f8b45233._.js +1 -1
  190. package/web/.next/server/chunks/ssr/_f8b45233._.js.map +1 -1
  191. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  192. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  193. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  194. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  195. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
  196. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +1 -1
  197. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  198. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  199. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  200. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  201. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
  202. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
  203. package/web/.next/server/pages/500.html +2 -2
  204. package/web/.next/server/server-reference-manifest.js +1 -1
  205. package/web/.next/server/server-reference-manifest.json +50 -50
  206. package/web/.next/static/chunks/109f58becff0eaa2.js +1 -0
  207. package/web/.next/static/chunks/{9705f2a5695a4995.js → 3dbdf0c81a29f5a5.js} +1 -1
  208. package/web/.next/static/chunks/{a80bbfca8ee3d79b.js → 49f2125c4881efbc.js} +1 -1
  209. package/web/.next/static/chunks/4d53de52318846f4.js +1 -0
  210. package/web/.next/static/chunks/{5983ef48d50d2d2a.js → 539b4b3ff91bd762.js} +1 -1
  211. package/web/.next/static/chunks/{aa077ab14015a8fd.js → 5ea512f99e0640fe.js} +1 -1
  212. package/web/.next/static/chunks/{6ee5d45de67d3547.js → 64f42c465e85ae70.js} +3 -3
  213. package/web/.next/static/chunks/{67a430796dea42a7.js → 724db95300328e0d.js} +1 -1
  214. package/web/.next/static/chunks/{b93a918712cd4987.js → 79363cfd15eac50d.js} +1 -1
  215. package/web/.next/static/chunks/{3d182168cdc4c15c.js → 8c1e3f6dbbbb59e7.js} +1 -1
  216. package/web/.next/static/chunks/{4383bcae769740e7.js → ab32ef049942210e.js} +1 -1
  217. package/web/.next/static/chunks/{24dd6b3021c2d849.js → ae79dcb88796c551.js} +1 -1
  218. package/web/.next/static/chunks/{02fe1303471793b9.js → beb5358e4841c286.js} +2 -2
  219. package/web/.next/static/chunks/{0ce50b34df07306b.js → d51a12d63fb56be7.js} +1 -1
  220. package/web/.next/static/chunks/dcf8bb4389557a76.css +1 -0
  221. package/web/.next/static/chunks/{eff45ffddd85918c.js → de69c00721590908.js} +3 -3
  222. package/web/public/icons/agents/copilot.svg +12 -0
  223. package/web/.next/static/chunks/18d4601f068c700d.js +0 -1
  224. package/web/.next/static/chunks/b14085e99b88e7f7.css +0 -1
  225. package/web/.next/static/chunks/bb962a996814718a.js +0 -1
  226. /package/web/.next/static/{akDn2qFk1krSwrjt4345P → Gv_GqdT_QwPhH-8wWF2nQ}/_buildManifest.js +0 -0
  227. /package/web/.next/static/{akDn2qFk1krSwrjt4345P → Gv_GqdT_QwPhH-8wWF2nQ}/_clientMiddlewareManifest.json +0 -0
  228. /package/web/.next/static/{akDn2qFk1krSwrjt4345P → Gv_GqdT_QwPhH-8wWF2nQ}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,30702,e=>{"use strict";let s=(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",()=>s],30702)},38573,e=>{"use strict";let s=(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",()=>s],38573)},1650,e=>{"use strict";e.i(11495),e.s([])},956,e=>{"use strict";var s=e.i(20314),l=e.i(79054),a=e.i(31777);let t=l.forwardRef(({className:e,...l},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("bg-card text-card-foreground rounded-xl border shadow",e),...l}));t.displayName="Card";let r=l.forwardRef(({className:e,...l},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("flex flex-col space-y-1.5 p-6",e),...l}));r.displayName="CardHeader";let i=l.forwardRef(({className:e,...l},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("leading-none font-semibold tracking-tight",e),...l}));i.displayName="CardTitle";let n=l.forwardRef(({className:e,...l},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("text-muted-foreground text-sm",e),...l}));n.displayName="CardDescription";let o=l.forwardRef(({className:e,...l},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("p-6 pt-0",e),...l}));o.displayName="CardContent",l.forwardRef(({className:e,...l},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("flex items-center p-6 pt-0",e),...l})).displayName="CardFooter",e.s(["Card",()=>t,"CardContent",()=>o,"CardDescription",()=>n,"CardHeader",()=>r,"CardTitle",()=>i])},9443,85871,e=>{"use strict";var s=e.i(20314),l=e.i(31777);function a({title:e,description:a,children:t,className:r}){return(0,s.jsxs)("header",{className:(0,l.cn)("flex items-center justify-between gap-4",r),children:[(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:e}),a?(0,s.jsx)("p",{className:"text-muted-foreground",children:a}):null]}),t?(0,s.jsx)("div",{"data-slot":"actions",children:t}):null]})}e.s(["PageHeader",()=>a],85871),e.s([],9443)},54793,7729,e=>{"use strict";var s=e.i(20314),l=e.i(31777);function a({icon:e,title:a,description:t,action:r,className:i,...n}){return(0,s.jsxs)("div",{className:(0,l.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",i),...n,children:[e?(0,s.jsx)("div",{className:"text-muted-foreground",children:e}):null,(0,s.jsx)("h3",{className:"text-lg font-semibold",children:a}),t?(0,s.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:t}):null,r?(0,s.jsx)("div",{className:"mt-2",children:r}):null]})}e.s(["EmptyState",()=>a],7729),e.s([],54793)},38752,e=>{"use strict";var s=e.i(20314);e.i(1650);var l=e.i(11495),a=e.i(45811),t=e.i(81846),r=e.i(25235),i=e.i(19933);function n({skill:e,onClose:n}){return(0,s.jsx)(l.BaseDrawer,{open:null!==e,onClose:n,size:"sm",modal:!0,"data-testid":"skill-detail-drawer",header:e?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.DrawerTitle,{children:e.displayName}),(0,s.jsx)(a.DrawerDescription,{children:e.name})]}):void 0,children:e?(0,s.jsxs)("div",{className:"px-4 pb-4",children:[(0,s.jsx)("p",{className:"text-muted-foreground text-sm",children:e.description}),(0,s.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-1.5",children:[(0,s.jsx)(t.Badge,{variant:"project"===e.source?"secondary":"outline",children:"project"===e.source?"Project":"Global"}),(0,s.jsx)(t.Badge,{variant:"outline",children:e.category}),e.context?(0,s.jsx)(t.Badge,{variant:"outline",children:e.context}):null]}),e.allowedTools?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.Separator,{className:"my-4"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-semibold",children:"Allowed Tools"}),(0,s.jsx)("p",{className:"text-muted-foreground mt-1 text-sm",children:e.allowedTools})]})]}):null,e.resources.length>0?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.Separator,{className:"my-4"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-semibold",children:"Resources"}),(0,s.jsx)("ul",{className:"mt-2 space-y-1.5",children:e.resources.map(e=>(0,s.jsxs)("li",{className:"text-muted-foreground flex items-center gap-2 text-sm",children:[(0,s.jsx)(i.FolderOpen,{className:"size-3.5 shrink-0"}),(0,s.jsxs)("span",{children:[e.name,"/ — ",e.fileCount," ",1===e.fileCount?"file":"files"]})]},e.name))})]})]}):null,e.body?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.Separator,{className:"my-4"}),(0,s.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 s=e.i(20314),l=e.i(79054),a=e.i(66459),t=e.i(12103),r=e.i(98127),i=e.i(35364);e.i(9443);var n=e.i(85871);e.i(54793);var o=e.i(7729),d=e.i(956),c=e.i(81846),m=e.i(19933);function x({skill:e,onSelect:l}){return(0,s.jsxs)(d.Card,{className:"hover:border-primary/50 cursor-pointer transition-colors",role:"button",tabIndex:0,onClick:()=>l(e),onKeyDown:s=>{("Enter"===s.key||" "===s.key)&&(s.preventDefault(),l(e))},"data-testid":`skill-card-${e.name}`,children:[(0,s.jsxs)(d.CardHeader,{className:"pb-3",children:[(0,s.jsx)(d.CardTitle,{className:"text-base",children:e.displayName}),(0,s.jsx)("p",{className:"text-muted-foreground font-mono text-xs",children:e.name})]}),(0,s.jsxs)(d.CardContent,{className:"space-y-3",children:[(0,s.jsx)("p",{className:"text-muted-foreground line-clamp-2 text-sm",children:e.description}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,s.jsx)(c.Badge,{variant:"project"===e.source?"secondary":"outline",children:"project"===e.source?"Project":"Global"}),e.context?(0,s.jsx)(c.Badge,{variant:"outline",children:e.context}):null,e.allowedTools?(0,s.jsx)(c.Badge,{variant:"outline",children:"Tools"}):null,e.resources.length>0?(0,s.jsxs)("span",{className:"text-muted-foreground inline-flex items-center gap-1 text-xs",children:[(0,s.jsx)(m.FolderOpen,{className:"size-3"}),e.resources.length," ",1===e.resources.length?"resource":"resources"]}):null]})]})]})}let u=["Workflow","Code Generation","Analysis","Reference"];function h({skills:e,onSkillSelect:l}){let a=function(e){let s=new Map;for(let l of e){let e=s.get(l.category)??[];e.push(l),s.set(l.category,e)}return s}(e);return(0,s.jsx)("div",{className:"space-y-8",children:u.map(e=>{let t=a.get(e);return t&&0!==t.length?(0,s.jsxs)("section",{children:[(0,s.jsxs)("h2",{className:"mb-4 text-lg font-semibold",children:[e," ",(0,s.jsxs)("span",{className:"text-muted-foreground text-sm font-normal",children:["(",t.length,")"]})]}),(0,s.jsx)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:t.map(e=>(0,s.jsx)(x,{skill:e,onSelect:l},e.name))})]},e):null})})}let f=[{label:"All",value:null},{label:"Workflow",value:"Workflow"},{label:"Code Generation",value:"Code Generation"},{label:"Analysis",value:"Analysis"},{label:"Reference",value:"Reference"}];function p({activeCategory:e,onCategoryChange:l,counts:a}){return(0,s.jsx)("div",{className:"flex flex-wrap gap-2",role:"group","aria-label":"Filter by category",children:f.map(({label:t,value:r})=>(0,s.jsxs)(i.Button,{variant:e===r?"default":"outline",size:"sm",onClick:()=>l(r),children:[t,a&&r?(0,s.jsxs)("span",{className:"ms-1 text-xs opacity-70",children:["(",a[r],")"]}):null]},t))})}var j=e.i(38752),g=e.i(25235),v=e.i(31406),N=e.i(3214),k=e.i(60253),y=e.i(60112),b=e.i(21023);let C=(0,b.createServerReference)("404c40072ac138df9e09ffd84f1b90b536aaa5a654",b.callServer,void 0,b.findSourceMapURL,"removeInjectedSkill");var w=e.i(2287),S=e.i(41957),R=e.i(68304);let T=(0,b.createServerReference)("40ba761112e38ffff7113577987454fe2b094351b1",b.callServer,void 0,b.findSourceMapURL,"addInjectedSkill");function A({open:e,onOpenChange:a,onAdded:t,discoveredSkills:n,existingSkillNames:o}){let[d,c]=(0,l.useState)(!1),[m,x]=(0,l.useState)(""),[u,h]=(0,l.useState)(""),[f,p]=(0,l.useState)(""),j=n.filter(e=>!o.includes(e.name)),g=async e=>{c(!0);let s=await T({name:e.name,type:"local",source:`.claude/skills/${e.name}`});(c(!1),s.success)?(y.toast.success(`Added "${e.name}" to feature skills`),t()):y.toast.error(s.error??"Failed to add skill")},v=async()=>{if(!m.trim()||!u.trim())return void y.toast.error("Name and source are required");c(!0);let e=await T({name:m.trim(),type:"remote",source:u.trim(),...f.trim()&&{remoteSkillName:f.trim()}});(c(!1),e.success)?(y.toast.success(`Added "${m.trim()}" to feature skills`),x(""),h(""),p(""),t()):y.toast.error(e.error??"Failed to add skill")};return(0,s.jsx)(w.Dialog,{open:e,onOpenChange:a,children:(0,s.jsxs)(w.DialogContent,{className:"sm:max-w-md","data-testid":"add-skill-dialog",children:[(0,s.jsx)(w.DialogHeader,{children:(0,s.jsx)(w.DialogTitle,{children:"Add Skill to Features"})}),(0,s.jsxs)(R.Tabs,{defaultValue:"local",children:[(0,s.jsxs)(R.TabsList,{className:"w-full",children:[(0,s.jsx)(R.TabsTrigger,{value:"local",className:"flex-1",children:"Local"}),(0,s.jsx)(R.TabsTrigger,{value:"remote",className:"flex-1",children:"Remote"})]}),(0,s.jsx)(R.TabsContent,{value:"local",className:"mt-4",children:0===j.length?(0,s.jsx)("p",{className:"text-muted-foreground text-sm",children:"All discovered skills are already configured."}):(0,s.jsx)("div",{className:"flex max-h-60 flex-col gap-2 overflow-y-auto",children:j.map(e=>(0,s.jsxs)("button",{type:"button",className:"hover:bg-accent flex flex-col gap-0.5 rounded-md border p-3 text-left transition-colors",onClick:()=>g(e),disabled:d,"data-testid":`add-local-skill-${e.name}`,children:[(0,s.jsx)("span",{className:"text-sm font-medium",children:e.displayName}),(0,s.jsx)("span",{className:"text-muted-foreground line-clamp-1 text-xs",children:e.description})]},e.name))})}),(0,s.jsx)(R.TabsContent,{value:"remote",className:"mt-4",children:(0,s.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)(S.Label,{htmlFor:"remote-name",children:"Name"}),(0,s.jsx)(r.Input,{id:"remote-name",placeholder:"e.g. remotion-best-practices",value:m,onChange:e=>x(e.target.value),"data-testid":"remote-skill-name"})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)(S.Label,{htmlFor:"remote-source",children:"Source (npm package or URL)"}),(0,s.jsx)(r.Input,{id:"remote-source",placeholder:"e.g. @anthropic/remotion-skills",value:u,onChange:e=>h(e.target.value),"data-testid":"remote-skill-source"})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)(S.Label,{htmlFor:"remote-skill-name",children:"Skill Name (optional)"}),(0,s.jsx)(r.Input,{id:"remote-skill-name",placeholder:"e.g. remotion-best-practices",value:f,onChange:e=>p(e.target.value),"data-testid":"remote-skill-skill-name"})]}),(0,s.jsx)(w.DialogFooter,{children:(0,s.jsx)(i.Button,{onClick:v,disabled:d||!m.trim()||!u.trim(),"data-testid":"add-remote-skill-submit",children:"Add Remote Skill"})})]})})]})]})})}function D({config:e,discoveredSkills:a}){let t=(0,v.useRouter)(),[r,n]=(0,l.useState)(!1),[o,d]=(0,l.useState)(null),c=(0,l.useMemo)(()=>{let e=new Map;for(let s of a)e.set(s.name,s.description);return e},[a]),m=async e=>{d(e);let s=await C(e);(d(null),s.success)?(y.toast.success(`Removed "${e}" from feature skills`),t.refresh()):y.toast.error(s.error??"Failed to remove skill")};return(0,s.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:"text-base font-semibold",children:"Feature Skills"}),(0,s.jsx)("p",{className:"text-muted-foreground text-sm",children:"Curated skills included in new feature worktrees to guide the agent"})]}),e.skills.length>0?(0,s.jsx)("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-3",children:e.skills.map(e=>(0,s.jsx)(F,{skill:e,description:c.get(e.name),onRemove:()=>m(e.name),isRemoving:o===e.name},e.name))}):(0,s.jsx)("p",{className:"text-muted-foreground text-sm",children:"No skills configured. Add skills to guide the agent when working on new features."}),(0,s.jsx)("div",{children:(0,s.jsxs)(i.Button,{variant:"outline",size:"sm",onClick:()=>n(!0),"data-testid":"add-injected-skill-button",children:[(0,s.jsx)(N.Plus,{className:"mr-1.5 size-4"}),"Add Skill"]})}),(0,s.jsx)(A,{open:r,onOpenChange:n,onAdded:()=>{n(!1),t.refresh()},discoveredSkills:a,existingSkillNames:e.skills.map(e=>e.name)})]})}function F({skill:e,description:l,onRemove:a,isRemoving:t}){return(0,s.jsxs)(d.Card,{"data-testid":`injected-skill-${e.name}`,children:[(0,s.jsxs)(d.CardHeader,{className:"flex flex-row items-start justify-between gap-2 pb-2",children:[(0,s.jsx)("div",{className:"min-w-0",children:(0,s.jsx)(d.CardTitle,{className:"truncate text-sm",children:e.name})}),(0,s.jsx)(i.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0",onClick:a,disabled:t,"aria-label":`Remove ${e.name}`,"data-testid":`remove-injected-skill-${e.name}`,children:(0,s.jsx)(k.X,{className:"size-4"})})]}),(0,s.jsxs)(d.CardContent,{className:"space-y-2 pt-0",children:[l?(0,s.jsx)("p",{className:"text-muted-foreground line-clamp-2 text-xs",children:l}):null,(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)(c.Badge,{variant:"local"===e.type?"secondary":"outline",className:"text-xs",children:"local"===e.type?"Local":"Remote"}),(0,s.jsx)("span",{className:"text-muted-foreground max-w-37.5 truncate text-xs",children:e.source})]})]})]})}function B({skills:e,injectionConfig:d}){let[c,m]=(0,l.useState)(""),[x,u]=(0,l.useState)(null),[f,v]=(0,l.useState)(null),N=(0,l.useMemo)(()=>(function(e){let s={Workflow:0,"Code Generation":0,Analysis:0,Reference:0};for(let l of e)s[l.category]++;return s})(e),[e]),k=(0,l.useMemo)(()=>{let s=c.toLowerCase();return e.filter(e=>{if(x&&e.category!==x)return!1;if(s){let l=e.name.toLowerCase().includes(s),a=e.description.toLowerCase().includes(s);if(!l&&!a)return!1}return!0})},[e,c,x]);return 0===e.length?(0,s.jsxs)("div",{className:"flex flex-col gap-6 p-6",children:[(0,s.jsx)(n.PageHeader,{title:"Skills",description:"Claude Code skills available to this project"}),(0,s.jsx)(D,{config:d,discoveredSkills:e}),(0,s.jsx)(g.Separator,{}),(0,s.jsx)(o.EmptyState,{icon:(0,s.jsx)(t.Puzzle,{className:"size-10"}),title:"No skills found",description:"No Claude Code skills are installed. Add skills to .claude/skills/ to get started."})]}):(0,s.jsxs)("div",{className:"flex flex-col gap-6 p-6",children:[(0,s.jsx)(n.PageHeader,{title:"Skills",description:"Claude Code skills available to this project"}),(0,s.jsx)(D,{config:d,discoveredSkills:e}),(0,s.jsx)(g.Separator,{}),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(a.Search,{className:"text-muted-foreground absolute top-1/2 left-3 size-4 -translate-y-1/2"}),(0,s.jsx)(r.Input,{placeholder:"Search skills...",value:c,onChange:e=>m(e.target.value),className:"ps-9"})]}),(0,s.jsx)(p,{activeCategory:x,onCategoryChange:u,counts:N}),k.length>0?(0,s.jsx)(h,{skills:k,onSkillSelect:v}):(0,s.jsx)(o.EmptyState,{icon:(0,s.jsx)(a.Search,{className:"size-10"}),title:"No matching skills",description:"No skills match your current search and filter criteria.",action:(0,s.jsx)(i.Button,{variant:"outline",onClick:()=>{m(""),u(null)},children:"Clear filters"})}),(0,s.jsx)(j.SkillDetailDrawer,{skill:f,onClose:()=>v(null)})]})}e.s(["SkillsPageClient",()=>B],16919)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,30702,e=>{"use strict";let s=(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",()=>s],30702)},38573,e=>{"use strict";let s=(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",()=>s],38573)},1650,e=>{"use strict";e.i(11495),e.s([])},956,e=>{"use strict";var s=e.i(20314),l=e.i(79054),a=e.i(31777);let t=l.forwardRef(({className:e,...l},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("bg-card text-card-foreground rounded-xl border shadow",e),...l}));t.displayName="Card";let r=l.forwardRef(({className:e,...l},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("flex flex-col space-y-1.5 p-6",e),...l}));r.displayName="CardHeader";let i=l.forwardRef(({className:e,...l},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("leading-none font-semibold tracking-tight",e),...l}));i.displayName="CardTitle";let n=l.forwardRef(({className:e,...l},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("text-muted-foreground text-sm",e),...l}));n.displayName="CardDescription";let o=l.forwardRef(({className:e,...l},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("p-6 pt-0",e),...l}));o.displayName="CardContent",l.forwardRef(({className:e,...l},t)=>(0,s.jsx)("div",{ref:t,className:(0,a.cn)("flex items-center p-6 pt-0",e),...l})).displayName="CardFooter",e.s(["Card",()=>t,"CardContent",()=>o,"CardDescription",()=>n,"CardHeader",()=>r,"CardTitle",()=>i])},9443,85871,e=>{"use strict";var s=e.i(20314),l=e.i(31777);function a({title:e,description:a,children:t,className:r}){return(0,s.jsxs)("header",{className:(0,l.cn)("flex items-center justify-between gap-4",r),children:[(0,s.jsxs)("div",{className:"space-y-1",children:[(0,s.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:e}),a?(0,s.jsx)("p",{className:"text-muted-foreground",children:a}):null]}),t?(0,s.jsx)("div",{"data-slot":"actions",children:t}):null]})}e.s(["PageHeader",()=>a],85871),e.s([],9443)},54793,7729,e=>{"use strict";var s=e.i(20314),l=e.i(31777);function a({icon:e,title:a,description:t,action:r,className:i,...n}){return(0,s.jsxs)("div",{className:(0,l.cn)("flex flex-col items-center gap-4 px-4 py-12 text-center",i),...n,children:[e?(0,s.jsx)("div",{className:"text-muted-foreground",children:e}):null,(0,s.jsx)("h3",{className:"text-lg font-semibold",children:a}),t?(0,s.jsx)("p",{className:"text-muted-foreground max-w-md text-sm",children:t}):null,r?(0,s.jsx)("div",{className:"mt-2",children:r}):null]})}e.s(["EmptyState",()=>a],7729),e.s([],54793)},38752,e=>{"use strict";var s=e.i(20314);e.i(1650);var l=e.i(11495),a=e.i(45811),t=e.i(81846),r=e.i(25235),i=e.i(19933);function n({skill:e,onClose:n}){return(0,s.jsx)(l.BaseDrawer,{open:null!==e,onClose:n,size:"sm",modal:!0,"data-testid":"skill-detail-drawer",header:e?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.DrawerTitle,{children:e.displayName}),(0,s.jsx)(a.DrawerDescription,{children:e.name})]}):void 0,children:e?(0,s.jsxs)("div",{className:"px-4 pb-4",children:[(0,s.jsx)("p",{className:"text-muted-foreground text-sm",children:e.description}),(0,s.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-1.5",children:[(0,s.jsx)(t.Badge,{variant:"project"===e.source?"secondary":"outline",children:"project"===e.source?"Project":"Global"}),(0,s.jsx)(t.Badge,{variant:"outline",children:e.category}),e.context?(0,s.jsx)(t.Badge,{variant:"outline",children:e.context}):null]}),e.allowedTools?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.Separator,{className:"my-4"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-semibold",children:"Allowed Tools"}),(0,s.jsx)("p",{className:"text-muted-foreground mt-1 text-sm",children:e.allowedTools})]})]}):null,e.resources.length>0?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.Separator,{className:"my-4"}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-semibold",children:"Resources"}),(0,s.jsx)("ul",{className:"mt-2 space-y-1.5",children:e.resources.map(e=>(0,s.jsxs)("li",{className:"text-muted-foreground flex items-center gap-2 text-sm",children:[(0,s.jsx)(i.FolderOpen,{className:"size-3.5 shrink-0"}),(0,s.jsxs)("span",{children:[e.name,"/ — ",e.fileCount," ",1===e.fileCount?"file":"files"]})]},e.name))})]})]}):null,e.body?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.Separator,{className:"my-4"}),(0,s.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 s=e.i(20314),l=e.i(79054),a=e.i(66459),t=e.i(12103),r=e.i(98127),i=e.i(35364);e.i(9443);var n=e.i(85871);e.i(54793);var o=e.i(7729),d=e.i(956),c=e.i(81846),m=e.i(19933);function x({skill:e,onSelect:l}){return(0,s.jsxs)(d.Card,{className:"hover:border-primary/50 cursor-pointer transition-colors",role:"button",tabIndex:0,onClick:()=>l(e),onKeyDown:s=>{("Enter"===s.key||" "===s.key)&&(s.preventDefault(),l(e))},"data-testid":`skill-card-${e.name}`,children:[(0,s.jsxs)(d.CardHeader,{className:"pb-3",children:[(0,s.jsx)(d.CardTitle,{className:"text-base",children:e.displayName}),(0,s.jsx)("p",{className:"text-muted-foreground font-mono text-xs",children:e.name})]}),(0,s.jsxs)(d.CardContent,{className:"space-y-3",children:[(0,s.jsx)("p",{className:"text-muted-foreground line-clamp-2 text-sm",children:e.description}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,s.jsx)(c.Badge,{variant:"project"===e.source?"secondary":"outline",children:"project"===e.source?"Project":"Global"}),e.context?(0,s.jsx)(c.Badge,{variant:"outline",children:e.context}):null,e.allowedTools?(0,s.jsx)(c.Badge,{variant:"outline",children:"Tools"}):null,e.resources.length>0?(0,s.jsxs)("span",{className:"text-muted-foreground inline-flex items-center gap-1 text-xs",children:[(0,s.jsx)(m.FolderOpen,{className:"size-3"}),e.resources.length," ",1===e.resources.length?"resource":"resources"]}):null]})]})]})}let u=["Workflow","Code Generation","Analysis","Reference"];function h({skills:e,onSkillSelect:l}){let a=function(e){let s=new Map;for(let l of e){let e=s.get(l.category)??[];e.push(l),s.set(l.category,e)}return s}(e);return(0,s.jsx)("div",{className:"space-y-8",children:u.map(e=>{let t=a.get(e);return t&&0!==t.length?(0,s.jsxs)("section",{children:[(0,s.jsxs)("h2",{className:"mb-4 text-lg font-semibold",children:[e," ",(0,s.jsxs)("span",{className:"text-muted-foreground text-sm font-normal",children:["(",t.length,")"]})]}),(0,s.jsx)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",children:t.map(e=>(0,s.jsx)(x,{skill:e,onSelect:l},e.name))})]},e):null})})}let p=[{label:"All",value:null},{label:"Workflow",value:"Workflow"},{label:"Code Generation",value:"Code Generation"},{label:"Analysis",value:"Analysis"},{label:"Reference",value:"Reference"}];function f({activeCategory:e,onCategoryChange:l,counts:a}){return(0,s.jsx)("div",{className:"flex flex-wrap gap-2",role:"group","aria-label":"Filter by category",children:p.map(({label:t,value:r})=>(0,s.jsxs)(i.Button,{variant:e===r?"default":"outline",size:"sm",onClick:()=>l(r),children:[t,a&&r?(0,s.jsxs)("span",{className:"ms-1 text-xs opacity-70",children:["(",a[r],")"]}):null]},t))})}var j=e.i(38752),g=e.i(25235),v=e.i(31406),N=e.i(3214),k=e.i(60253),y=e.i(60112),b=e.i(21023);let C=(0,b.createServerReference)("4005be759845a915233384c311b7be47f79f3236d7",b.callServer,void 0,b.findSourceMapURL,"removeInjectedSkill");var w=e.i(2287),S=e.i(41957),R=e.i(68304);let T=(0,b.createServerReference)("40a5d99cb8981fd832bfe1363019485b9e7d27d1a3",b.callServer,void 0,b.findSourceMapURL,"addInjectedSkill");function A({open:e,onOpenChange:a,onAdded:t,discoveredSkills:n,existingSkillNames:o}){let[d,c]=(0,l.useState)(!1),[m,x]=(0,l.useState)(""),[u,h]=(0,l.useState)(""),[p,f]=(0,l.useState)(""),j=n.filter(e=>!o.includes(e.name)),g=async e=>{c(!0);let s=await T({name:e.name,type:"local",source:`.claude/skills/${e.name}`});(c(!1),s.success)?(y.toast.success(`Added "${e.name}" to feature skills`),t()):y.toast.error(s.error??"Failed to add skill")},v=async()=>{if(!m.trim()||!u.trim())return void y.toast.error("Name and source are required");c(!0);let e=await T({name:m.trim(),type:"remote",source:u.trim(),...p.trim()&&{remoteSkillName:p.trim()}});(c(!1),e.success)?(y.toast.success(`Added "${m.trim()}" to feature skills`),x(""),h(""),f(""),t()):y.toast.error(e.error??"Failed to add skill")};return(0,s.jsx)(w.Dialog,{open:e,onOpenChange:a,children:(0,s.jsxs)(w.DialogContent,{className:"sm:max-w-md","data-testid":"add-skill-dialog",children:[(0,s.jsx)(w.DialogHeader,{children:(0,s.jsx)(w.DialogTitle,{children:"Add Skill to Features"})}),(0,s.jsxs)(R.Tabs,{defaultValue:"local",children:[(0,s.jsxs)(R.TabsList,{className:"w-full",children:[(0,s.jsx)(R.TabsTrigger,{value:"local",className:"flex-1",children:"Local"}),(0,s.jsx)(R.TabsTrigger,{value:"remote",className:"flex-1",children:"Remote"})]}),(0,s.jsx)(R.TabsContent,{value:"local",className:"mt-4",children:0===j.length?(0,s.jsx)("p",{className:"text-muted-foreground text-sm",children:"All discovered skills are already configured."}):(0,s.jsx)("div",{className:"flex max-h-60 flex-col gap-2 overflow-y-auto",children:j.map(e=>(0,s.jsxs)("button",{type:"button",className:"hover:bg-accent flex flex-col gap-0.5 rounded-md border p-3 text-left transition-colors",onClick:()=>g(e),disabled:d,"data-testid":`add-local-skill-${e.name}`,children:[(0,s.jsx)("span",{className:"text-sm font-medium",children:e.displayName}),(0,s.jsx)("span",{className:"text-muted-foreground line-clamp-1 text-xs",children:e.description})]},e.name))})}),(0,s.jsx)(R.TabsContent,{value:"remote",className:"mt-4",children:(0,s.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)(S.Label,{htmlFor:"remote-name",children:"Name"}),(0,s.jsx)(r.Input,{id:"remote-name",placeholder:"e.g. remotion-best-practices",value:m,onChange:e=>x(e.target.value),"data-testid":"remote-skill-name"})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)(S.Label,{htmlFor:"remote-source",children:"Source (npm package or URL)"}),(0,s.jsx)(r.Input,{id:"remote-source",placeholder:"e.g. @anthropic/remotion-skills",value:u,onChange:e=>h(e.target.value),"data-testid":"remote-skill-source"})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,s.jsx)(S.Label,{htmlFor:"remote-skill-name",children:"Skill Name (optional)"}),(0,s.jsx)(r.Input,{id:"remote-skill-name",placeholder:"e.g. remotion-best-practices",value:p,onChange:e=>f(e.target.value),"data-testid":"remote-skill-skill-name"})]}),(0,s.jsx)(w.DialogFooter,{children:(0,s.jsx)(i.Button,{onClick:v,disabled:d||!m.trim()||!u.trim(),"data-testid":"add-remote-skill-submit",children:"Add Remote Skill"})})]})})]})]})})}function D({config:e,discoveredSkills:a}){let t=(0,v.useRouter)(),[r,n]=(0,l.useState)(!1),[o,d]=(0,l.useState)(null),c=(0,l.useMemo)(()=>{let e=new Map;for(let s of a)e.set(s.name,s.description);return e},[a]),m=async e=>{d(e);let s=await C(e);(d(null),s.success)?(y.toast.success(`Removed "${e}" from feature skills`),t.refresh()):y.toast.error(s.error??"Failed to remove skill")};return(0,s.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{className:"text-base font-semibold",children:"Feature Skills"}),(0,s.jsx)("p",{className:"text-muted-foreground text-sm",children:"Curated skills included in new feature worktrees to guide the agent"})]}),e.skills.length>0?(0,s.jsx)("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-3",children:e.skills.map(e=>(0,s.jsx)(F,{skill:e,description:c.get(e.name),onRemove:()=>m(e.name),isRemoving:o===e.name},e.name))}):(0,s.jsx)("p",{className:"text-muted-foreground text-sm",children:"No skills configured. Add skills to guide the agent when working on new features."}),(0,s.jsx)("div",{children:(0,s.jsxs)(i.Button,{variant:"outline",size:"sm",onClick:()=>n(!0),"data-testid":"add-injected-skill-button",children:[(0,s.jsx)(N.Plus,{className:"mr-1.5 size-4"}),"Add Skill"]})}),(0,s.jsx)(A,{open:r,onOpenChange:n,onAdded:()=>{n(!1),t.refresh()},discoveredSkills:a,existingSkillNames:e.skills.map(e=>e.name)})]})}function F({skill:e,description:l,onRemove:a,isRemoving:t}){return(0,s.jsxs)(d.Card,{"data-testid":`injected-skill-${e.name}`,children:[(0,s.jsxs)(d.CardHeader,{className:"flex flex-row items-start justify-between gap-2 pb-2",children:[(0,s.jsx)("div",{className:"min-w-0",children:(0,s.jsx)(d.CardTitle,{className:"truncate text-sm",children:e.name})}),(0,s.jsx)(i.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0",onClick:a,disabled:t,"aria-label":`Remove ${e.name}`,"data-testid":`remove-injected-skill-${e.name}`,children:(0,s.jsx)(k.X,{className:"size-4"})})]}),(0,s.jsxs)(d.CardContent,{className:"space-y-2 pt-0",children:[l?(0,s.jsx)("p",{className:"text-muted-foreground line-clamp-2 text-xs",children:l}):null,(0,s.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,s.jsx)(c.Badge,{variant:"local"===e.type?"secondary":"outline",className:"text-xs",children:"local"===e.type?"Local":"Remote"}),(0,s.jsx)("span",{className:"text-muted-foreground max-w-37.5 truncate text-xs",children:e.source})]})]})]})}function B({skills:e,injectionConfig:d}){let[c,m]=(0,l.useState)(""),[x,u]=(0,l.useState)(null),[p,v]=(0,l.useState)(null),N=(0,l.useMemo)(()=>(function(e){let s={Workflow:0,"Code Generation":0,Analysis:0,Reference:0};for(let l of e)s[l.category]++;return s})(e),[e]),k=(0,l.useMemo)(()=>{let s=c.toLowerCase();return e.filter(e=>{if(x&&e.category!==x)return!1;if(s){let l=e.name.toLowerCase().includes(s),a=e.description.toLowerCase().includes(s);if(!l&&!a)return!1}return!0})},[e,c,x]);return 0===e.length?(0,s.jsxs)("div",{className:"flex flex-col gap-6 p-6",children:[(0,s.jsx)(n.PageHeader,{title:"Skills",description:"Claude Code skills available to this project"}),(0,s.jsx)(D,{config:d,discoveredSkills:e}),(0,s.jsx)(g.Separator,{}),(0,s.jsx)(o.EmptyState,{icon:(0,s.jsx)(t.Puzzle,{className:"size-10"}),title:"No skills found",description:"No Claude Code skills are installed. Add skills to .claude/skills/ to get started."})]}):(0,s.jsxs)("div",{className:"flex flex-col gap-6 p-6",children:[(0,s.jsx)(n.PageHeader,{title:"Skills",description:"Claude Code skills available to this project"}),(0,s.jsx)(D,{config:d,discoveredSkills:e}),(0,s.jsx)(g.Separator,{}),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(a.Search,{className:"text-muted-foreground absolute top-1/2 left-3 size-4 -translate-y-1/2"}),(0,s.jsx)(r.Input,{placeholder:"Search skills...",value:c,onChange:e=>m(e.target.value),className:"ps-9"})]}),(0,s.jsx)(f,{activeCategory:x,onCategoryChange:u,counts:N}),k.length>0?(0,s.jsx)(h,{skills:k,onSkillSelect:v}):(0,s.jsx)(o.EmptyState,{icon:(0,s.jsx)(a.Search,{className:"size-10"}),title:"No matching skills",description:"No skills match your current search and filter criteria.",action:(0,s.jsx)(i.Button,{variant:"outline",onClick:()=>{m(""),u(null)},children:"Clear filters"})}),(0,s.jsx)(j.SkillDetailDrawer,{skill:p,onClose:()=>v(null)})]})}e.s(["SkillsPageClient",()=>B],16919)}]);