@shepai/cli 1.59.0 → 1.61.0

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 (339) hide show
  1. package/dist/src/presentation/web/app/skills/page.d.ts +2 -0
  2. package/dist/src/presentation/web/app/skills/page.d.ts.map +1 -0
  3. package/dist/src/presentation/web/app/skills/page.js +11 -0
  4. package/dist/src/presentation/web/components/common/action-button/action-button.d.ts.map +1 -1
  5. package/dist/src/presentation/web/components/common/action-button/action-button.js +7 -1
  6. package/dist/src/presentation/web/components/common/action-button/action-button.stories.d.ts +1 -1
  7. package/dist/src/presentation/web/components/common/action-button/action-button.stories.d.ts.map +1 -1
  8. package/dist/src/presentation/web/components/common/action-button/action-button.stories.js +1 -1
  9. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.d.ts.map +1 -1
  10. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.js +10 -1
  11. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.stories.d.ts +20 -0
  12. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.stories.d.ts.map +1 -0
  13. package/dist/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.stories.js +68 -0
  14. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
  15. package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +21 -2
  16. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.d.ts.map +1 -1
  17. package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.js +13 -2
  18. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.d.ts.map +1 -1
  19. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.js +16 -3
  20. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts +1 -1
  21. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts.map +1 -1
  22. package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.js +1 -1
  23. package/dist/src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.d.ts.map +1 -1
  24. package/dist/src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.js +14 -1
  25. package/dist/src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.stories.d.ts +2 -0
  26. package/dist/src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.stories.d.ts.map +1 -1
  27. package/dist/src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.stories.js +2 -0
  28. package/dist/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.d.ts.map +1 -1
  29. package/dist/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.js +4 -1
  30. package/dist/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.stories.d.ts +1 -0
  31. package/dist/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.stories.d.ts.map +1 -1
  32. package/dist/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.stories.js +1 -0
  33. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.d.ts.map +1 -1
  34. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.js +14 -1
  35. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.d.ts +1 -1
  36. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.d.ts.map +1 -1
  37. package/dist/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.js +1 -1
  38. package/dist/src/presentation/web/components/common/theme-toggle/theme-toggle.d.ts.map +1 -1
  39. package/dist/src/presentation/web/components/common/theme-toggle/theme-toggle.js +13 -0
  40. package/dist/src/presentation/web/components/common/theme-toggle/theme-toggle.stories.d.ts +2 -0
  41. package/dist/src/presentation/web/components/common/theme-toggle/theme-toggle.stories.d.ts.map +1 -1
  42. package/dist/src/presentation/web/components/common/theme-toggle/theme-toggle.stories.js +2 -0
  43. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +2 -2
  44. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  45. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +7 -13
  46. package/dist/src/presentation/web/components/features/skills/category-filter.d.ts +8 -0
  47. package/dist/src/presentation/web/components/features/skills/category-filter.d.ts.map +1 -0
  48. package/dist/src/presentation/web/components/features/skills/category-filter.js +12 -0
  49. package/dist/src/presentation/web/components/features/skills/category-filter.stories.d.ts +9 -0
  50. package/dist/src/presentation/web/components/features/skills/category-filter.stories.d.ts.map +1 -0
  51. package/dist/src/presentation/web/components/features/skills/category-filter.stories.js +36 -0
  52. package/dist/src/presentation/web/components/features/skills/index.d.ts +6 -0
  53. package/dist/src/presentation/web/components/features/skills/index.d.ts.map +1 -0
  54. package/dist/src/presentation/web/components/features/skills/index.js +5 -0
  55. package/dist/src/presentation/web/components/features/skills/skill-card.d.ts +7 -0
  56. package/dist/src/presentation/web/components/features/skills/skill-card.d.ts.map +1 -0
  57. package/dist/src/presentation/web/components/features/skills/skill-card.js +12 -0
  58. package/dist/src/presentation/web/components/features/skills/skill-card.stories.d.ts +11 -0
  59. package/dist/src/presentation/web/components/features/skills/skill-card.stories.d.ts.map +1 -0
  60. package/dist/src/presentation/web/components/features/skills/skill-card.stories.js +88 -0
  61. package/dist/src/presentation/web/components/features/skills/skill-detail-drawer.d.ts +7 -0
  62. package/dist/src/presentation/web/components/features/skills/skill-detail-drawer.d.ts.map +1 -0
  63. package/dist/src/presentation/web/components/features/skills/skill-detail-drawer.js +13 -0
  64. package/dist/src/presentation/web/components/features/skills/skill-detail-drawer.stories.d.ts +10 -0
  65. package/dist/src/presentation/web/components/features/skills/skill-detail-drawer.stories.d.ts.map +1 -0
  66. package/dist/src/presentation/web/components/features/skills/skill-detail-drawer.stories.js +71 -0
  67. package/dist/src/presentation/web/components/features/skills/skill-list.d.ts +7 -0
  68. package/dist/src/presentation/web/components/features/skills/skill-list.d.ts.map +1 -0
  69. package/dist/src/presentation/web/components/features/skills/skill-list.js +21 -0
  70. package/dist/src/presentation/web/components/features/skills/skill-list.stories.d.ts +9 -0
  71. package/dist/src/presentation/web/components/features/skills/skill-list.stories.d.ts.map +1 -0
  72. package/dist/src/presentation/web/components/features/skills/skill-list.stories.js +124 -0
  73. package/dist/src/presentation/web/components/features/skills/skills-page-client.d.ts +6 -0
  74. package/dist/src/presentation/web/components/features/skills/skills-page-client.d.ts.map +1 -0
  75. package/dist/src/presentation/web/components/features/skills/skills-page-client.js +52 -0
  76. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.d.ts +16 -0
  77. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.d.ts.map +1 -0
  78. package/dist/src/presentation/web/components/features/skills/skills-page-client.stories.js +186 -0
  79. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  80. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +3 -2
  81. package/dist/src/presentation/web/hooks/use-notifications.d.ts.map +1 -1
  82. package/dist/src/presentation/web/hooks/use-notifications.js +18 -18
  83. package/dist/src/presentation/web/hooks/use-sound-action.d.ts +100 -0
  84. package/dist/src/presentation/web/hooks/use-sound-action.d.ts.map +1 -0
  85. package/dist/src/presentation/web/hooks/use-sound-action.js +42 -0
  86. package/dist/src/presentation/web/hooks/use-sound-action.stories.d.ts +6 -0
  87. package/dist/src/presentation/web/hooks/use-sound-action.stories.d.ts.map +1 -0
  88. package/dist/src/presentation/web/hooks/use-sound-action.stories.js +61 -0
  89. package/dist/src/presentation/web/lib/feature-flags.d.ts +10 -0
  90. package/dist/src/presentation/web/lib/feature-flags.d.ts.map +1 -0
  91. package/dist/src/presentation/web/lib/feature-flags.js +12 -0
  92. package/dist/src/presentation/web/lib/skills.d.ts +30 -0
  93. package/dist/src/presentation/web/lib/skills.d.ts.map +1 -0
  94. package/dist/src/presentation/web/lib/skills.js +137 -0
  95. package/dist/tsconfig.build.tsbuildinfo +1 -1
  96. package/package.json +1 -1
  97. package/web/.next/BUILD_ID +1 -1
  98. package/web/.next/app-path-routes-manifest.json +1 -0
  99. package/web/.next/build-manifest.json +4 -4
  100. package/web/.next/cache/.previewinfo +1 -1
  101. package/web/.next/cache/.rscinfo +1 -1
  102. package/web/.next/cache/.tsbuildinfo +1 -1
  103. package/web/.next/cache/config.json +3 -3
  104. package/web/.next/fallback-build-manifest.json +2 -2
  105. package/web/.next/prerender-manifest.json +3 -3
  106. package/web/.next/required-server-files.js +1 -1
  107. package/web/.next/required-server-files.json +1 -1
  108. package/web/.next/routes-manifest.json +6 -0
  109. package/web/.next/server/app/_global-error/page/build-manifest.json +2 -2
  110. package/web/.next/server/app/_global-error.html +2 -2
  111. package/web/.next/server/app/_global-error.rsc +1 -1
  112. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  113. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  114. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  115. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  116. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  117. package/web/.next/server/app/_not-found/page/build-manifest.json +2 -2
  118. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  119. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  120. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  121. package/web/.next/server/app/api/tools/[id]/install/route.js +1 -1
  122. package/web/.next/server/app/api/tools/[id]/install/route.js.nft.json +1 -1
  123. package/web/.next/server/app/page/build-manifest.json +2 -2
  124. package/web/.next/server/app/page/server-reference-manifest.json +14 -14
  125. package/web/.next/server/app/page.js +1 -1
  126. package/web/.next/server/app/page.js.nft.json +1 -1
  127. package/web/.next/server/app/page_client-reference-manifest.js +1 -1
  128. package/web/.next/server/app/skills/page/app-paths-manifest.json +3 -0
  129. package/web/.next/server/app/skills/page/build-manifest.json +17 -0
  130. package/web/.next/server/app/skills/page/next-font-manifest.json +6 -0
  131. package/web/.next/server/app/skills/page/react-loadable-manifest.json +1 -0
  132. package/web/.next/server/app/skills/page/server-reference-manifest.json +20 -0
  133. package/web/.next/server/app/skills/page.js +16 -0
  134. package/web/.next/server/app/skills/page.js.map +5 -0
  135. package/web/.next/server/app/skills/page.js.nft.json +1 -0
  136. package/web/.next/server/app/skills/page_client-reference-manifest.js +2 -0
  137. package/web/.next/server/app/tools/page/build-manifest.json +2 -2
  138. package/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  139. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  140. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  141. package/web/.next/server/app/version/page/build-manifest.json +2 -2
  142. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  143. package/web/.next/server/app/version/page.js.nft.json +1 -1
  144. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  145. package/web/.next/server/app-paths-manifest.json +1 -0
  146. package/web/.next/server/chunks/{[root-of-the-server]__bb619083._.js → [root-of-the-server]__e926de65._.js} +2 -2
  147. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  148. package/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/[root-of-the-server]__2395adc6._.js +3 -0
  150. package/web/.next/server/chunks/ssr/[root-of-the-server]__2395adc6._.js.map +1 -0
  151. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  152. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
  153. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  154. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
  155. package/web/.next/server/chunks/ssr/[root-of-the-server]__87fda958._.js +3 -0
  156. package/web/.next/server/chunks/ssr/[root-of-the-server]__87fda958._.js.map +1 -0
  157. package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +4 -4
  158. package/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js.map +1 -1
  159. package/web/.next/server/chunks/ssr/{[root-of-the-server]__86c7bba5._.js → [root-of-the-server]__b6839c3f._.js} +3 -3
  160. package/web/.next/server/chunks/ssr/{[root-of-the-server]__86c7bba5._.js.map → [root-of-the-server]__b6839c3f._.js.map} +1 -1
  161. package/web/.next/server/chunks/ssr/[root-of-the-server]__da0ade1f._.js +4 -0
  162. package/web/.next/server/chunks/ssr/[root-of-the-server]__da0ade1f._.js.map +1 -0
  163. package/web/.next/server/chunks/ssr/[root-of-the-server]__edca9510._.js +3 -0
  164. package/web/.next/server/chunks/ssr/[root-of-the-server]__edca9510._.js.map +1 -0
  165. package/web/.next/server/chunks/ssr/[root-of-the-server]__ee7cffe1._.js +3 -0
  166. package/web/.next/server/chunks/ssr/[root-of-the-server]__ee7cffe1._.js.map +1 -0
  167. package/web/.next/server/chunks/ssr/[root-of-the-server]__fbc89707._.js +1 -1
  168. package/web/.next/server/chunks/ssr/_380c6567._.js +6 -0
  169. package/web/.next/server/chunks/ssr/_380c6567._.js.map +1 -0
  170. package/web/.next/server/chunks/ssr/_44cce4e0._.js +4 -0
  171. package/web/.next/server/chunks/ssr/_44cce4e0._.js.map +1 -0
  172. package/web/.next/server/chunks/ssr/_9915d2a7._.js +3 -0
  173. package/web/.next/server/chunks/ssr/_9915d2a7._.js.map +1 -0
  174. package/web/.next/server/chunks/ssr/_a64b7b24._.js +3 -0
  175. package/web/.next/server/chunks/ssr/{_e242b954._.js.map → _a64b7b24._.js.map} +1 -1
  176. package/web/.next/server/chunks/ssr/_d3711354._.js +6 -0
  177. package/web/.next/server/chunks/ssr/_d3711354._.js.map +1 -0
  178. package/web/.next/server/chunks/ssr/_e7a4b0e4._.js +3 -0
  179. package/web/.next/server/chunks/ssr/_e7a4b0e4._.js.map +1 -0
  180. package/web/.next/{standalone/src/presentation/web/.next/server/chunks/ssr/node_modules__pnpm_d26a7485._.js → server/chunks/ssr/node_modules__pnpm_fe355030._.js} +2 -2
  181. package/web/.next/server/chunks/ssr/node_modules__pnpm_fe355030._.js.map +1 -0
  182. package/web/.next/server/chunks/ssr/src_presentation_web_components_0286756b._.js +3 -0
  183. package/web/.next/server/chunks/ssr/src_presentation_web_components_0286756b._.js.map +1 -0
  184. package/web/.next/server/middleware-build-manifest.js +2 -2
  185. package/web/.next/server/pages/500.html +2 -2
  186. package/web/.next/server/server-reference-manifest.js +1 -1
  187. package/web/.next/server/server-reference-manifest.json +22 -15
  188. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  189. package/web/.next/standalone/src/presentation/web/.next/app-path-routes-manifest.json +1 -0
  190. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +4 -4
  191. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  192. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
  193. package/web/.next/standalone/src/presentation/web/.next/routes-manifest.json +6 -0
  194. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error/page/build-manifest.json +2 -2
  195. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  196. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  197. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  198. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  199. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  200. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  201. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  202. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/build-manifest.json +2 -2
  203. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  204. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  205. package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  206. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/route.js +1 -1
  207. package/web/.next/standalone/src/presentation/web/.next/server/app/api/tools/[id]/install/route.js.nft.json +1 -1
  208. package/web/.next/standalone/src/presentation/web/.next/server/app/page/build-manifest.json +2 -2
  209. package/web/.next/standalone/src/presentation/web/.next/server/app/page/server-reference-manifest.json +14 -14
  210. package/web/.next/standalone/src/presentation/web/.next/server/app/page.js +1 -1
  211. package/web/.next/standalone/src/presentation/web/.next/server/app/page.js.nft.json +1 -1
  212. package/web/.next/standalone/src/presentation/web/.next/server/app/page_client-reference-manifest.js +1 -1
  213. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/app-paths-manifest.json +3 -0
  214. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/build-manifest.json +17 -0
  215. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/next-font-manifest.json +6 -0
  216. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/react-loadable-manifest.json +1 -0
  217. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +20 -0
  218. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js +16 -0
  219. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js.map +5 -0
  220. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page.js.nft.json +1 -0
  221. package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +2 -0
  222. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/build-manifest.json +2 -2
  223. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +1 -1
  224. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page.js.nft.json +1 -1
  225. package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  226. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/build-manifest.json +2 -2
  227. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  228. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page.js.nft.json +1 -1
  229. package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  230. package/web/.next/standalone/src/presentation/web/.next/server/app-paths-manifest.json +1 -0
  231. package/web/.next/standalone/src/presentation/web/.next/server/chunks/{[root-of-the-server]__bb619083._.js → [root-of-the-server]__e926de65._.js} +2 -2
  232. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__08ba9bd3._.js +1 -1
  233. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__2395adc6._.js +3 -0
  234. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
  235. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
  236. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__87fda958._.js +3 -0
  237. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__9add7c3a._.js +4 -4
  238. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{[root-of-the-server]__86c7bba5._.js → [root-of-the-server]__b6839c3f._.js} +3 -3
  239. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__da0ade1f._.js +4 -0
  240. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__edca9510._.js +3 -0
  241. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__ee7cffe1._.js +3 -0
  242. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fbc89707._.js +1 -1
  243. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_380c6567._.js +6 -0
  244. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_44cce4e0._.js +4 -0
  245. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_9915d2a7._.js +3 -0
  246. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_a64b7b24._.js +3 -0
  247. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_d3711354._.js +6 -0
  248. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_e7a4b0e4._.js +3 -0
  249. package/web/.next/{server/chunks/ssr/node_modules__pnpm_d26a7485._.js → standalone/src/presentation/web/.next/server/chunks/ssr/node_modules__pnpm_fe355030._.js} +2 -2
  250. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_0286756b._.js +3 -0
  251. package/web/.next/standalone/src/presentation/web/.next/server/middleware-build-manifest.js +2 -2
  252. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  253. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  254. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +22 -15
  255. package/web/.next/standalone/src/presentation/web/app/skills/page.tsx +12 -0
  256. package/web/.next/standalone/src/presentation/web/components/common/action-button/action-button.stories.tsx +1 -1
  257. package/web/.next/standalone/src/presentation/web/components/common/action-button/action-button.tsx +9 -1
  258. package/web/.next/standalone/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.stories.tsx +82 -0
  259. package/web/.next/standalone/src/presentation/web/components/common/drawer-action-bar/drawer-action-bar.tsx +16 -2
  260. package/web/.next/standalone/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.tsx +27 -3
  261. package/web/.next/standalone/src/presentation/web/components/common/feature-drawer/feature-drawer.tsx +14 -2
  262. package/web/.next/standalone/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.tsx +1 -1
  263. package/web/.next/standalone/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.tsx +17 -4
  264. package/web/.next/standalone/src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.stories.tsx +2 -0
  265. package/web/.next/standalone/src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.tsx +14 -1
  266. package/web/.next/standalone/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.stories.tsx +1 -0
  267. package/web/.next/standalone/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.tsx +6 -1
  268. package/web/.next/standalone/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.stories.tsx +1 -1
  269. package/web/.next/standalone/src/presentation/web/components/common/tech-decisions-review/tech-decisions-review.tsx +14 -1
  270. package/web/.next/standalone/src/presentation/web/components/common/theme-toggle/theme-toggle.stories.tsx +2 -0
  271. package/web/.next/standalone/src/presentation/web/components/common/theme-toggle/theme-toggle.tsx +14 -0
  272. package/web/.next/standalone/src/presentation/web/components/features/control-center/control-center-inner.tsx +2 -2
  273. package/web/.next/standalone/src/presentation/web/components/features/control-center/use-control-center-state.ts +7 -12
  274. package/web/.next/standalone/src/presentation/web/components/features/skills/category-filter.stories.tsx +57 -0
  275. package/web/.next/standalone/src/presentation/web/components/features/skills/category-filter.tsx +36 -0
  276. package/web/.next/standalone/src/presentation/web/components/features/skills/index.ts +5 -0
  277. package/web/.next/standalone/src/presentation/web/components/features/skills/skill-card.stories.tsx +105 -0
  278. package/web/.next/standalone/src/presentation/web/components/features/skills/skill-card.tsx +48 -0
  279. package/web/.next/standalone/src/presentation/web/components/features/skills/skill-detail-drawer.stories.tsx +96 -0
  280. package/web/.next/standalone/src/presentation/web/components/features/skills/skill-detail-drawer.tsx +100 -0
  281. package/web/.next/standalone/src/presentation/web/components/features/skills/skill-list.stories.tsx +139 -0
  282. package/web/.next/standalone/src/presentation/web/components/features/skills/skill-list.tsx +48 -0
  283. package/web/.next/standalone/src/presentation/web/components/features/skills/skills-page-client.stories.tsx +199 -0
  284. package/web/.next/standalone/src/presentation/web/components/features/skills/skills-page-client.tsx +112 -0
  285. package/web/.next/standalone/src/presentation/web/components/layouts/app-sidebar/app-sidebar.tsx +10 -1
  286. package/web/.next/standalone/src/presentation/web/hooks/use-notifications.ts +20 -19
  287. package/web/.next/standalone/src/presentation/web/hooks/use-sound-action.stories.tsx +107 -0
  288. package/web/.next/standalone/src/presentation/web/hooks/use-sound-action.ts +53 -0
  289. package/web/.next/standalone/src/presentation/web/lib/feature-flags.ts +14 -0
  290. package/web/.next/standalone/src/presentation/web/lib/skills.ts +188 -0
  291. package/web/.next/standalone/src/presentation/web/package.json +2 -0
  292. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  293. package/web/.next/static/chunks/09d898be63c54f20.js +1 -0
  294. package/web/.next/static/chunks/13664c029245afc8.js +1 -0
  295. package/web/.next/static/chunks/25f42652257ff43d.js +1 -0
  296. package/web/.next/static/chunks/2934854f0378f815.js +1 -0
  297. package/web/.next/static/chunks/2960a70537e4fd12.js +10 -0
  298. package/web/.next/static/chunks/45f510f84c7c417d.css +2 -0
  299. package/web/.next/static/chunks/79718b1f5713fdc0.js +1 -0
  300. package/web/.next/static/chunks/acdb8af5a21f1ae9.js +1 -0
  301. package/web/.next/static/chunks/{3d4dcf0be654a331.js → cb1b27e4a21415d3.js} +2 -2
  302. package/web/.next/static/chunks/d4379644a6145352.js +1 -0
  303. package/web/.next/static/chunks/{turbopack-6a11f2f1634ff6e0.js → turbopack-eb24b869babb34b4.js} +2 -2
  304. package/web/.next/trace +1 -1
  305. package/web/.next/trace-build +1 -1
  306. package/web/.next/types/link.d.ts +1 -0
  307. package/web/.next/types/routes.d.ts +2 -1
  308. package/web/.next/types/validator.ts +9 -0
  309. package/web/package.json +2 -0
  310. package/web/.next/server/chunks/ssr/[root-of-the-server]__bced1185._.js +0 -3
  311. package/web/.next/server/chunks/ssr/[root-of-the-server]__bced1185._.js.map +0 -1
  312. package/web/.next/server/chunks/ssr/[root-of-the-server]__d21f0894._.js +0 -3
  313. package/web/.next/server/chunks/ssr/[root-of-the-server]__d21f0894._.js.map +0 -1
  314. package/web/.next/server/chunks/ssr/_027596cf._.js +0 -6
  315. package/web/.next/server/chunks/ssr/_027596cf._.js.map +0 -1
  316. package/web/.next/server/chunks/ssr/_e242b954._.js +0 -3
  317. package/web/.next/server/chunks/ssr/node_modules__pnpm_d26a7485._.js.map +0 -1
  318. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +0 -3
  319. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +0 -1
  320. package/web/.next/server/chunks/ssr/src_presentation_web_components_ec3b0a65._.js +0 -3
  321. package/web/.next/server/chunks/ssr/src_presentation_web_components_ec3b0a65._.js.map +0 -1
  322. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__bced1185._.js +0 -3
  323. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__d21f0894._.js +0 -3
  324. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_027596cf._.js +0 -6
  325. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_e242b954._.js +0 -3
  326. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +0 -3
  327. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_ec3b0a65._.js +0 -3
  328. package/web/.next/static/chunks/0cd7c513169faee3.js +0 -1
  329. package/web/.next/static/chunks/4f7d89c9e09aed99.js +0 -10
  330. package/web/.next/static/chunks/67459433cc866344.js +0 -1
  331. package/web/.next/static/chunks/6d33cb9af6245c98.js +0 -1
  332. package/web/.next/static/chunks/a9c2b889c8749a94.js +0 -1
  333. package/web/.next/static/chunks/b511c65023ec1889.css +0 -2
  334. package/web/.next/static/chunks/cda11a2491d519fc.js +0 -1
  335. package/web/.next/static/chunks/d85b95e893db08bc.js +0 -1
  336. /package/web/.next/server/chunks/{[root-of-the-server]__bb619083._.js.map → [root-of-the-server]__e926de65._.js.map} +0 -0
  337. /package/web/.next/static/{xjc1tfvwTdK1Xv5Id2oaO → _DBWexyU1QkK02q15qod2}/_buildManifest.js +0 -0
  338. /package/web/.next/static/{xjc1tfvwTdK1Xv5Id2oaO → _DBWexyU1QkK02q15qod2}/_clientMiddlewareManifest.json +0 -0
  339. /package/web/.next/static/{xjc1tfvwTdK1Xv5Id2oaO → _DBWexyU1QkK02q15qod2}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
- <!DOCTYPE html><!--xjc1tfvwTdK1Xv5Id2oaO--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/a9c2b889c8749a94.js"/><script src="/_next/static/chunks/07f00e2e73d322d2.js" async=""></script><script src="/_next/static/chunks/1887af4ad3781531.js" async=""></script><script src="/_next/static/chunks/cfe4dc9904fcfddb.js" async=""></script><script src="/_next/static/chunks/turbopack-6a11f2f1634ff6e0.js" async=""></script><script src="/_next/static/chunks/ab02eec995295bef.js" async=""></script><script src="/_next/static/chunks/fe70e73feb07bcfd.js" async=""></script><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
- @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/a9c2b889c8749a94.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[40799,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/fe70e73feb07bcfd.js\"],\"default\"]\n3:I[73006,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/fe70e73feb07bcfd.js\"],\"default\"]\n4:I[66658,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/fe70e73feb07bcfd.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[66658,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/fe70e73feb07bcfd.js\"],\"ViewportBoundary\"]\n9:I[66658,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/fe70e73feb07bcfd.js\"],\"MetadataBoundary\"]\nb:I[42726,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/fe70e73feb07bcfd.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"xjc1tfvwTdK1Xv5Id2oaO\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/ab02eec995295bef.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/fe70e73feb07bcfd.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--_DBWexyU1QkK02q15qod2--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/acdb8af5a21f1ae9.js"/><script src="/_next/static/chunks/07f00e2e73d322d2.js" async=""></script><script src="/_next/static/chunks/1887af4ad3781531.js" async=""></script><script src="/_next/static/chunks/cfe4dc9904fcfddb.js" async=""></script><script src="/_next/static/chunks/turbopack-eb24b869babb34b4.js" async=""></script><script src="/_next/static/chunks/ab02eec995295bef.js" async=""></script><script src="/_next/static/chunks/fe70e73feb07bcfd.js" async=""></script><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
+ @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/acdb8af5a21f1ae9.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[40799,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/fe70e73feb07bcfd.js\"],\"default\"]\n3:I[73006,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/fe70e73feb07bcfd.js\"],\"default\"]\n4:I[66658,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/fe70e73feb07bcfd.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[66658,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/fe70e73feb07bcfd.js\"],\"ViewportBoundary\"]\n9:I[66658,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/fe70e73feb07bcfd.js\"],\"MetadataBoundary\"]\nb:I[42726,[\"/_next/static/chunks/ab02eec995295bef.js\",\"/_next/static/chunks/fe70e73feb07bcfd.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"_DBWexyU1QkK02q15qod2\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/ab02eec995295bef.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/fe70e73feb07bcfd.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\n \"node\": {\n \"00f283d375a68f16f486b4d96a73d29642d70e2c49\": {\n \"workers\": {\n \"app/_not-found/page\": {\n \"moduleId\": 66973,\n \"async\": false,\n \"exportedName\": \"pickFolder\",\n \"filename\": \"src/presentation/web/app/actions/pick-folder.ts\"\n },\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"pickFolder\",\n \"filename\": \"src/presentation/web/app/actions/pick-folder.ts\"\n },\n \"app/tools/page\": {\n \"moduleId\": 19036,\n \"async\": false,\n \"exportedName\": \"pickFolder\",\n \"filename\": \"src/presentation/web/app/actions/pick-folder.ts\"\n },\n \"app/version/page\": {\n \"moduleId\": 86139,\n \"async\": false,\n \"exportedName\": \"pickFolder\",\n \"filename\": \"src/presentation/web/app/actions/pick-folder.ts\"\n }\n },\n \"layer\": {\n \"app/_not-found/page\": \"action-browser\",\n \"app/page\": \"action-browser\",\n \"app/tools/page\": \"action-browser\",\n \"app/version/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/pick-folder.ts\",\n \"exportedName\": \"pickFolder\"\n },\n \"604b2436c25d3184a91e706af2aee635c1ebd4a82d\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"approveFeature\",\n \"filename\": \"src/presentation/web/app/actions/approve-feature.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/approve-feature.ts\",\n \"exportedName\": \"approveFeature\"\n },\n \"606b19bfa1c0b5083719b9769235270652970ac528\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"rejectFeature\",\n \"filename\": \"src/presentation/web/app/actions/reject-feature.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/reject-feature.ts\",\n \"exportedName\": \"rejectFeature\"\n },\n \"40ab134a3e230ca75ec945b21530996f28478eaebd\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"getFeatureArtifact\",\n \"filename\": \"src/presentation/web/app/actions/get-feature-artifact.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/get-feature-artifact.ts\",\n \"exportedName\": \"getFeatureArtifact\"\n },\n \"4089deaf16fedc6a345e56ad7bfc988b487e34eefa\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"getResearchArtifact\",\n \"filename\": \"src/presentation/web/app/actions/get-research-artifact.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/get-research-artifact.ts\",\n \"exportedName\": \"getResearchArtifact\"\n },\n \"004b4a427a9b3db7f8002cfc69e453961d25caa5c5\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"getWorkflowDefaults\",\n \"filename\": \"src/presentation/web/app/actions/get-workflow-defaults.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/get-workflow-defaults.ts\",\n \"exportedName\": \"getWorkflowDefaults\"\n },\n \"402a4ec8d26f9c9f41e698de41dd62bd38c3094f15\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"getMergeReviewData\",\n \"filename\": \"src/presentation/web/app/actions/get-merge-review-data.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/get-merge-review-data.ts\",\n \"exportedName\": \"getMergeReviewData\"\n },\n \"40548f2101be4900dc1959a49650c2e0006397bd9a\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"openIde\",\n \"filename\": \"src/presentation/web/app/actions/open-ide.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/open-ide.ts\",\n \"exportedName\": \"openIde\"\n },\n \"40586217019fa643c0babbbde4463a3cc1c92294e3\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"openShell\",\n \"filename\": \"src/presentation/web/app/actions/open-shell.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/open-shell.ts\",\n \"exportedName\": \"openShell\"\n },\n \"40515f42aff14843ca67f2bd609b840bdda32955f9\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"openFolder\",\n \"filename\": \"src/presentation/web/app/actions/open-folder.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/open-folder.ts\",\n \"exportedName\": \"openFolder\"\n },\n \"40d08b0d92d2b703d3db56e765e35375751ac01684\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"createFeature\",\n \"filename\": \"src/presentation/web/app/actions/create-feature.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/create-feature.ts\",\n \"exportedName\": \"createFeature\"\n },\n \"4041951039830c9a9b9643f88550f93dec377c5f3f\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"deleteFeature\",\n \"filename\": \"src/presentation/web/app/actions/delete-feature.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/delete-feature.ts\",\n \"exportedName\": \"deleteFeature\"\n },\n \"40fbe3ea2311abba27bc48c26f5508fb7025e4f58a\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"addRepository\",\n \"filename\": \"src/presentation/web/app/actions/add-repository.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/add-repository.ts\",\n \"exportedName\": \"addRepository\"\n },\n \"404aff2a63b14ad2f9b6417055e6f2ba87fe90e911\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"deleteRepository\",\n \"filename\": \"src/presentation/web/app/actions/delete-repository.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/delete-repository.ts\",\n \"exportedName\": \"deleteRepository\"\n }\n },\n \"edge\": {},\n \"encryptionKey\": \"/62RwJFHaetWcHvJhUZemNYnHwGJ6+ItihS+zZR0WQw=\"\n}"
1
+ self.__RSC_SERVER_MANIFEST="{\n \"node\": {\n \"00f46b544814f14a9bd450e71019c7325620386871\": {\n \"workers\": {\n \"app/_not-found/page\": {\n \"moduleId\": 66973,\n \"async\": false,\n \"exportedName\": \"pickFolder\",\n \"filename\": \"src/presentation/web/app/actions/pick-folder.ts\"\n },\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"pickFolder\",\n \"filename\": \"src/presentation/web/app/actions/pick-folder.ts\"\n },\n \"app/skills/page\": {\n \"moduleId\": 41115,\n \"async\": false,\n \"exportedName\": \"pickFolder\",\n \"filename\": \"src/presentation/web/app/actions/pick-folder.ts\"\n },\n \"app/tools/page\": {\n \"moduleId\": 19036,\n \"async\": false,\n \"exportedName\": \"pickFolder\",\n \"filename\": \"src/presentation/web/app/actions/pick-folder.ts\"\n },\n \"app/version/page\": {\n \"moduleId\": 86139,\n \"async\": false,\n \"exportedName\": \"pickFolder\",\n \"filename\": \"src/presentation/web/app/actions/pick-folder.ts\"\n }\n },\n \"layer\": {\n \"app/_not-found/page\": \"action-browser\",\n \"app/page\": \"action-browser\",\n \"app/skills/page\": \"action-browser\",\n \"app/tools/page\": \"action-browser\",\n \"app/version/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/pick-folder.ts\",\n \"exportedName\": \"pickFolder\"\n },\n \"606a6cb2da71de26e494b33854ed0899ebd5cbe442\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"approveFeature\",\n \"filename\": \"src/presentation/web/app/actions/approve-feature.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/approve-feature.ts\",\n \"exportedName\": \"approveFeature\"\n },\n \"60c0f37b7c0431e729d2cd8b7bd4f976e8e6d4241a\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"rejectFeature\",\n \"filename\": \"src/presentation/web/app/actions/reject-feature.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/reject-feature.ts\",\n \"exportedName\": \"rejectFeature\"\n },\n \"40074e92e9c8b31dafb9c2b3c2fccd414542794fb0\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"getFeatureArtifact\",\n \"filename\": \"src/presentation/web/app/actions/get-feature-artifact.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/get-feature-artifact.ts\",\n \"exportedName\": \"getFeatureArtifact\"\n },\n \"4053a5b1695c8ddbecf95155e159666e4d3a327737\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"getResearchArtifact\",\n \"filename\": \"src/presentation/web/app/actions/get-research-artifact.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/get-research-artifact.ts\",\n \"exportedName\": \"getResearchArtifact\"\n },\n \"005aedb87dd5ed000b495650e3a4c0f4171e53beef\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"getWorkflowDefaults\",\n \"filename\": \"src/presentation/web/app/actions/get-workflow-defaults.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/get-workflow-defaults.ts\",\n \"exportedName\": \"getWorkflowDefaults\"\n },\n \"40802922d3d44b0d0627d4e116ff40171192039d2c\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"getMergeReviewData\",\n \"filename\": \"src/presentation/web/app/actions/get-merge-review-data.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/get-merge-review-data.ts\",\n \"exportedName\": \"getMergeReviewData\"\n },\n \"404bb587718376f52df6e970b32ef8fc3ee2bd727d\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"openIde\",\n \"filename\": \"src/presentation/web/app/actions/open-ide.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/open-ide.ts\",\n \"exportedName\": \"openIde\"\n },\n \"40e77cba448943b31cb783ca5283f6abba0ea21402\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"openShell\",\n \"filename\": \"src/presentation/web/app/actions/open-shell.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/open-shell.ts\",\n \"exportedName\": \"openShell\"\n },\n \"4021d8c65b803d424df8fd45cf641ee6ab873213b7\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"openFolder\",\n \"filename\": \"src/presentation/web/app/actions/open-folder.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/open-folder.ts\",\n \"exportedName\": \"openFolder\"\n },\n \"408f0145660d7a16d3638d5c1b3f1fe017ea2a341a\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"createFeature\",\n \"filename\": \"src/presentation/web/app/actions/create-feature.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/create-feature.ts\",\n \"exportedName\": \"createFeature\"\n },\n \"40783b6aa22097e9550fdbc925c54c8b7380230a5c\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"deleteFeature\",\n \"filename\": \"src/presentation/web/app/actions/delete-feature.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/delete-feature.ts\",\n \"exportedName\": \"deleteFeature\"\n },\n \"4068b748dc0ba5097d848c1d0753fd70d49faa713f\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"addRepository\",\n \"filename\": \"src/presentation/web/app/actions/add-repository.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/add-repository.ts\",\n \"exportedName\": \"addRepository\"\n },\n \"403777fed14eec7447f0e66081280d320ac4eded92\": {\n \"workers\": {\n \"app/page\": {\n \"moduleId\": 16555,\n \"async\": false,\n \"exportedName\": \"deleteRepository\",\n \"filename\": \"src/presentation/web/app/actions/delete-repository.ts\"\n }\n },\n \"layer\": {\n \"app/page\": \"action-browser\"\n },\n \"filename\": \"src/presentation/web/app/actions/delete-repository.ts\",\n \"exportedName\": \"deleteRepository\"\n }\n },\n \"edge\": {},\n \"encryptionKey\": \"oDbEBHfy/qkJRG2vVjper+eLy93/oJMo5pkcaRXsWVo=\"\n}"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "node": {
3
- "00f283d375a68f16f486b4d96a73d29642d70e2c49": {
3
+ "00f46b544814f14a9bd450e71019c7325620386871": {
4
4
  "workers": {
5
5
  "app/_not-found/page": {
6
6
  "moduleId": 66973,
@@ -14,6 +14,12 @@
14
14
  "exportedName": "pickFolder",
15
15
  "filename": "src/presentation/web/app/actions/pick-folder.ts"
16
16
  },
17
+ "app/skills/page": {
18
+ "moduleId": 41115,
19
+ "async": false,
20
+ "exportedName": "pickFolder",
21
+ "filename": "src/presentation/web/app/actions/pick-folder.ts"
22
+ },
17
23
  "app/tools/page": {
18
24
  "moduleId": 19036,
19
25
  "async": false,
@@ -30,13 +36,14 @@
30
36
  "layer": {
31
37
  "app/_not-found/page": "action-browser",
32
38
  "app/page": "action-browser",
39
+ "app/skills/page": "action-browser",
33
40
  "app/tools/page": "action-browser",
34
41
  "app/version/page": "action-browser"
35
42
  },
36
43
  "filename": "src/presentation/web/app/actions/pick-folder.ts",
37
44
  "exportedName": "pickFolder"
38
45
  },
39
- "604b2436c25d3184a91e706af2aee635c1ebd4a82d": {
46
+ "606a6cb2da71de26e494b33854ed0899ebd5cbe442": {
40
47
  "workers": {
41
48
  "app/page": {
42
49
  "moduleId": 16555,
@@ -51,7 +58,7 @@
51
58
  "filename": "src/presentation/web/app/actions/approve-feature.ts",
52
59
  "exportedName": "approveFeature"
53
60
  },
54
- "606b19bfa1c0b5083719b9769235270652970ac528": {
61
+ "60c0f37b7c0431e729d2cd8b7bd4f976e8e6d4241a": {
55
62
  "workers": {
56
63
  "app/page": {
57
64
  "moduleId": 16555,
@@ -66,7 +73,7 @@
66
73
  "filename": "src/presentation/web/app/actions/reject-feature.ts",
67
74
  "exportedName": "rejectFeature"
68
75
  },
69
- "40ab134a3e230ca75ec945b21530996f28478eaebd": {
76
+ "40074e92e9c8b31dafb9c2b3c2fccd414542794fb0": {
70
77
  "workers": {
71
78
  "app/page": {
72
79
  "moduleId": 16555,
@@ -81,7 +88,7 @@
81
88
  "filename": "src/presentation/web/app/actions/get-feature-artifact.ts",
82
89
  "exportedName": "getFeatureArtifact"
83
90
  },
84
- "4089deaf16fedc6a345e56ad7bfc988b487e34eefa": {
91
+ "4053a5b1695c8ddbecf95155e159666e4d3a327737": {
85
92
  "workers": {
86
93
  "app/page": {
87
94
  "moduleId": 16555,
@@ -96,7 +103,7 @@
96
103
  "filename": "src/presentation/web/app/actions/get-research-artifact.ts",
97
104
  "exportedName": "getResearchArtifact"
98
105
  },
99
- "004b4a427a9b3db7f8002cfc69e453961d25caa5c5": {
106
+ "005aedb87dd5ed000b495650e3a4c0f4171e53beef": {
100
107
  "workers": {
101
108
  "app/page": {
102
109
  "moduleId": 16555,
@@ -111,7 +118,7 @@
111
118
  "filename": "src/presentation/web/app/actions/get-workflow-defaults.ts",
112
119
  "exportedName": "getWorkflowDefaults"
113
120
  },
114
- "402a4ec8d26f9c9f41e698de41dd62bd38c3094f15": {
121
+ "40802922d3d44b0d0627d4e116ff40171192039d2c": {
115
122
  "workers": {
116
123
  "app/page": {
117
124
  "moduleId": 16555,
@@ -126,7 +133,7 @@
126
133
  "filename": "src/presentation/web/app/actions/get-merge-review-data.ts",
127
134
  "exportedName": "getMergeReviewData"
128
135
  },
129
- "40548f2101be4900dc1959a49650c2e0006397bd9a": {
136
+ "404bb587718376f52df6e970b32ef8fc3ee2bd727d": {
130
137
  "workers": {
131
138
  "app/page": {
132
139
  "moduleId": 16555,
@@ -141,7 +148,7 @@
141
148
  "filename": "src/presentation/web/app/actions/open-ide.ts",
142
149
  "exportedName": "openIde"
143
150
  },
144
- "40586217019fa643c0babbbde4463a3cc1c92294e3": {
151
+ "40e77cba448943b31cb783ca5283f6abba0ea21402": {
145
152
  "workers": {
146
153
  "app/page": {
147
154
  "moduleId": 16555,
@@ -156,7 +163,7 @@
156
163
  "filename": "src/presentation/web/app/actions/open-shell.ts",
157
164
  "exportedName": "openShell"
158
165
  },
159
- "40515f42aff14843ca67f2bd609b840bdda32955f9": {
166
+ "4021d8c65b803d424df8fd45cf641ee6ab873213b7": {
160
167
  "workers": {
161
168
  "app/page": {
162
169
  "moduleId": 16555,
@@ -171,7 +178,7 @@
171
178
  "filename": "src/presentation/web/app/actions/open-folder.ts",
172
179
  "exportedName": "openFolder"
173
180
  },
174
- "40d08b0d92d2b703d3db56e765e35375751ac01684": {
181
+ "408f0145660d7a16d3638d5c1b3f1fe017ea2a341a": {
175
182
  "workers": {
176
183
  "app/page": {
177
184
  "moduleId": 16555,
@@ -186,7 +193,7 @@
186
193
  "filename": "src/presentation/web/app/actions/create-feature.ts",
187
194
  "exportedName": "createFeature"
188
195
  },
189
- "4041951039830c9a9b9643f88550f93dec377c5f3f": {
196
+ "40783b6aa22097e9550fdbc925c54c8b7380230a5c": {
190
197
  "workers": {
191
198
  "app/page": {
192
199
  "moduleId": 16555,
@@ -201,7 +208,7 @@
201
208
  "filename": "src/presentation/web/app/actions/delete-feature.ts",
202
209
  "exportedName": "deleteFeature"
203
210
  },
204
- "40fbe3ea2311abba27bc48c26f5508fb7025e4f58a": {
211
+ "4068b748dc0ba5097d848c1d0753fd70d49faa713f": {
205
212
  "workers": {
206
213
  "app/page": {
207
214
  "moduleId": 16555,
@@ -216,7 +223,7 @@
216
223
  "filename": "src/presentation/web/app/actions/add-repository.ts",
217
224
  "exportedName": "addRepository"
218
225
  },
219
- "404aff2a63b14ad2f9b6417055e6f2ba87fe90e911": {
226
+ "403777fed14eec7447f0e66081280d320ac4eded92": {
220
227
  "workers": {
221
228
  "app/page": {
222
229
  "moduleId": 16555,
@@ -233,5 +240,5 @@
233
240
  }
234
241
  },
235
242
  "edge": {},
236
- "encryptionKey": "/62RwJFHaetWcHvJhUZemNYnHwGJ6+ItihS+zZR0WQw="
243
+ "encryptionKey": "oDbEBHfy/qkJRG2vVjper+eLy93/oJMo5pkcaRXsWVo="
237
244
  }
@@ -0,0 +1,12 @@
1
+ import { notFound } from 'next/navigation';
2
+ import { getSkills } from '@/lib/skills';
3
+ import { SkillsPageClient } from '@/components/features/skills';
4
+ import { featureFlags } from '@/lib/feature-flags';
5
+
6
+ export default async function SkillsPage() {
7
+ if (!featureFlags.skills) notFound();
8
+
9
+ const skills = await getSkills();
10
+
11
+ return <SkillsPageClient skills={skills} />;
12
+ }
@@ -24,7 +24,7 @@ function noop() {
24
24
  // intentional no-op for stories
25
25
  }
26
26
 
27
- /** Default labeled button with outline variant. */
27
+ /** Default labeled button with outline variant. Plays "click" sound on press. */
28
28
  export const Default: Story = {
29
29
  args: {
30
30
  onClick: noop,
@@ -4,6 +4,7 @@ import type { LucideIcon } from 'lucide-react';
4
4
  import { Loader2, CircleAlert } from 'lucide-react';
5
5
  import { cn } from '@/lib/utils';
6
6
  import { Button } from '@/components/ui/button';
7
+ import { useSoundAction } from '@/hooks/use-sound-action';
7
8
 
8
9
  export interface ActionButtonProps {
9
10
  label: string;
@@ -29,13 +30,20 @@ export function ActionButton({
29
30
  variant = 'outline',
30
31
  size = 'sm',
31
32
  }: ActionButtonProps) {
33
+ const clickSound = useSoundAction('click');
34
+
35
+ const handleClick = () => {
36
+ clickSound.play();
37
+ onClick();
38
+ };
39
+
32
40
  return (
33
41
  <Button
34
42
  variant={variant}
35
43
  size={size}
36
44
  aria-label={label}
37
45
  disabled={loading}
38
- onClick={onClick}
46
+ onClick={handleClick}
39
47
  className={cn(
40
48
  'gap-1.5',
41
49
  error && 'text-destructive hover:text-destructive',
@@ -0,0 +1,82 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { fn } from '@storybook/test';
3
+ import { Check } from 'lucide-react';
4
+ import { DrawerActionBar } from './drawer-action-bar';
5
+
6
+ const meta: Meta<typeof DrawerActionBar> = {
7
+ title: 'Composed/DrawerActionBar',
8
+ component: DrawerActionBar,
9
+ tags: ['autodocs'],
10
+ parameters: {
11
+ layout: 'centered',
12
+ },
13
+ args: {
14
+ onApprove: fn().mockName('onApprove'),
15
+ approveLabel: 'Approve',
16
+ },
17
+ decorators: [
18
+ (Story) => (
19
+ <div className="w-[400px] rounded-md border">
20
+ <Story />
21
+ </div>
22
+ ),
23
+ ],
24
+ };
25
+
26
+ export default meta;
27
+ type Story = StoryObj<typeof DrawerActionBar>;
28
+
29
+ /** Default — approve button only. Plays "approve" sound on click. */
30
+ export const Default: Story = {};
31
+
32
+ /** With approve icon. */
33
+ export const WithIcon: Story = {
34
+ args: {
35
+ approveLabel: 'Approve PRD',
36
+ approveIcon: <Check className="mr-1.5 h-4 w-4" />,
37
+ },
38
+ };
39
+
40
+ /** With reject button. Plays "reject" sound on reject click, "approve" on approve. */
41
+ export const WithReject: Story = {
42
+ args: {
43
+ onReject: fn().mockName('onReject'),
44
+ approveLabel: 'Approve',
45
+ },
46
+ };
47
+
48
+ /** Processing state — buttons disabled, no sounds play. */
49
+ export const Processing: Story = {
50
+ args: {
51
+ onReject: fn().mockName('onReject'),
52
+ approveLabel: 'Approve',
53
+ isProcessing: true,
54
+ },
55
+ };
56
+
57
+ /** Rejecting state — buttons disabled. */
58
+ export const Rejecting: Story = {
59
+ args: {
60
+ onReject: fn().mockName('onReject'),
61
+ approveLabel: 'Approve',
62
+ isRejecting: true,
63
+ },
64
+ };
65
+
66
+ /** With revision input and reject button. */
67
+ export const WithRevisionInput: Story = {
68
+ args: {
69
+ onReject: fn().mockName('onReject'),
70
+ approveLabel: 'Approve',
71
+ revisionPlaceholder: 'Ask AI to revise the plan...',
72
+ },
73
+ };
74
+
75
+ /** Custom reject dialog title. */
76
+ export const CustomRejectTitle: Story = {
77
+ args: {
78
+ onReject: fn().mockName('onReject'),
79
+ approveLabel: 'Approve Plan',
80
+ rejectDialogTitle: 'Reject Plan',
81
+ },
82
+ };
@@ -5,6 +5,7 @@ import { X } from 'lucide-react';
5
5
  import { Button } from '@/components/ui/button';
6
6
  import { RejectFeedbackDialog } from '@/components/common/reject-feedback-dialog';
7
7
  import { DrawerRevisionInput } from '@/components/common/drawer-revision-input';
8
+ import { useSoundAction } from '@/hooks/use-sound-action';
8
9
  import type { DrawerActionBarProps } from './drawer-action-bar-config';
9
10
 
10
11
  export function DrawerActionBar({
@@ -20,6 +21,8 @@ export function DrawerActionBar({
20
21
  children,
21
22
  }: DrawerActionBarProps) {
22
23
  const [rejectDialogOpen, setRejectDialogOpen] = useState(false);
24
+ const approveSound = useSoundAction('approve');
25
+ const rejectSound = useSoundAction('reject');
23
26
  const disabled = isProcessing || isRejecting;
24
27
 
25
28
  return (
@@ -40,7 +43,10 @@ export function DrawerActionBar({
40
43
  variant="outline"
41
44
  className="text-destructive hover:text-destructive"
42
45
  disabled={disabled}
43
- onClick={() => setRejectDialogOpen(true)}
46
+ onClick={() => {
47
+ rejectSound.play();
48
+ setRejectDialogOpen(true);
49
+ }}
44
50
  >
45
51
  <X className="mr-1.5 h-4 w-4" />
46
52
  Reject
@@ -54,7 +60,15 @@ export function DrawerActionBar({
54
60
  />
55
61
  </>
56
62
  ) : null}
57
- <Button type="button" className="flex-1" disabled={disabled} onClick={onApprove}>
63
+ <Button
64
+ type="button"
65
+ className="flex-1"
66
+ disabled={disabled}
67
+ onClick={() => {
68
+ approveSound.play();
69
+ onApprove();
70
+ }}
71
+ >
58
72
  {approveIcon}
59
73
  {approveLabel}
60
74
  </Button>
@@ -14,6 +14,7 @@ import {
14
14
  CheckIcon,
15
15
  } from 'lucide-react';
16
16
  import { cn } from '@/lib/utils';
17
+ import { useSoundAction } from '@/hooks/use-sound-action';
17
18
  import {
18
19
  Drawer,
19
20
  DrawerContent,
@@ -93,6 +94,9 @@ export function FeatureCreateDrawer({
93
94
  features,
94
95
  initialParentId,
95
96
  }: FeatureCreateDrawerProps) {
97
+ const drawerOpenSound = useSoundAction('drawer-open');
98
+ const drawerCloseSound = useSoundAction('drawer-close');
99
+ const createSound = useSoundAction('create');
96
100
  const defaultGates = workflowDefaults?.approvalGates ?? EMPTY_GATES;
97
101
  const defaultPush = workflowDefaults?.push ?? false;
98
102
  const defaultOpenPr = workflowDefaults?.openPr ?? false;
@@ -105,6 +109,13 @@ export function FeatureCreateDrawer({
105
109
  const [openPr, setOpenPr] = useState(defaultOpenPr);
106
110
  const [parentId, setParentId] = useState<string | undefined>(undefined);
107
111
 
112
+ // Play drawer-open sound when the drawer opens
113
+ useEffect(() => {
114
+ if (open) {
115
+ drawerOpenSound.play();
116
+ }
117
+ }, [open, drawerOpenSound]);
118
+
108
119
  // Sync state when workflowDefaults load asynchronously
109
120
  useEffect(() => {
110
121
  if (workflowDefaults) {
@@ -134,17 +145,19 @@ export function FeatureCreateDrawer({
134
145
  const handleOpenChange = useCallback(
135
146
  (nextOpen: boolean) => {
136
147
  if (!nextOpen) {
148
+ drawerCloseSound.play();
137
149
  resetForm();
138
150
  onClose();
139
151
  }
140
152
  },
141
- [onClose, resetForm]
153
+ [onClose, resetForm, drawerCloseSound]
142
154
  );
143
155
 
144
156
  const handleSubmit = useCallback(
145
157
  (e: React.FormEvent) => {
146
158
  e.preventDefault();
147
159
  if (!name.trim()) return;
160
+ createSound.play();
148
161
  const trimmedDescription = description.trim() || undefined;
149
162
  onSubmit({
150
163
  name: name.trim(),
@@ -171,6 +184,7 @@ export function FeatureCreateDrawer({
171
184
  push,
172
185
  openPr,
173
186
  parentId,
187
+ createSound,
174
188
  ]
175
189
  );
176
190
 
@@ -198,7 +212,10 @@ export function FeatureCreateDrawer({
198
212
  <button
199
213
  type="button"
200
214
  aria-label="Close"
201
- onClick={onClose}
215
+ onClick={() => {
216
+ drawerCloseSound.play();
217
+ onClose();
218
+ }}
202
219
  className="ring-offset-background focus:ring-ring absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden"
203
220
  >
204
221
  <XIcon className="size-4" />
@@ -357,7 +374,14 @@ export function FeatureCreateDrawer({
357
374
  {/* Footer */}
358
375
  <Separator />
359
376
  <DrawerFooter className="flex-row justify-end gap-2">
360
- <Button variant="outline" onClick={onClose} disabled={isSubmitting}>
377
+ <Button
378
+ variant="outline"
379
+ onClick={() => {
380
+ drawerCloseSound.play();
381
+ onClose();
382
+ }}
383
+ disabled={isSubmitting}
384
+ >
361
385
  Cancel
362
386
  </Button>
363
387
  <Button type="submit" form="create-feature-form" disabled={!name.trim() || isSubmitting}>
@@ -3,6 +3,7 @@
3
3
  import { XIcon, Loader2, Trash2, ExternalLink, GitCommitHorizontal } from 'lucide-react';
4
4
  import { PrStatus } from '@shepai/core/domain/generated/output';
5
5
  import { cn } from '@/lib/utils';
6
+ import { useSoundAction } from '@/hooks/use-sound-action';
6
7
  import { OpenActionMenu } from '@/components/common/open-action-menu';
7
8
  import {
8
9
  Drawer,
@@ -44,6 +45,9 @@ export function FeatureDrawer({
44
45
  onDelete,
45
46
  isDeleting = false,
46
47
  }: FeatureDrawerProps) {
48
+ const drawerOpenSound = useSoundAction('drawer-open');
49
+ const drawerCloseSound = useSoundAction('drawer-close');
50
+
47
51
  return (
48
52
  <Drawer
49
53
  direction="right"
@@ -51,7 +55,12 @@ export function FeatureDrawer({
51
55
  handleOnly
52
56
  open={selectedNode !== null}
53
57
  onOpenChange={(open) => {
54
- if (!open) onClose();
58
+ if (open) {
59
+ drawerOpenSound.play();
60
+ } else {
61
+ drawerCloseSound.play();
62
+ onClose();
63
+ }
55
64
  }}
56
65
  >
57
66
  <DrawerContent direction="right" className="w-96" showCloseButton={false}>
@@ -61,7 +70,10 @@ export function FeatureDrawer({
61
70
  <button
62
71
  type="button"
63
72
  aria-label="Close"
64
- onClick={onClose}
73
+ onClick={() => {
74
+ drawerCloseSound.play();
75
+ onClose();
76
+ }}
65
77
  className="ring-offset-background focus:ring-ring absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden"
66
78
  >
67
79
  <XIcon className="size-4" />
@@ -194,7 +194,7 @@ const mockData: PrdQuestionnaireData = {
194
194
  finalAction: mockFinalAction,
195
195
  };
196
196
 
197
- /** Default state — first step shown, no selections. Click options to auto-advance. */
197
+ /** Default state — first step shown, no selections. Click options to auto-advance. Plays "select" on option click, "navigate" on step/nav buttons. */
198
198
  export const Default: Story = {
199
199
  render: () => <InteractiveQuestionnaire data={mockData} />,
200
200
  };
@@ -6,6 +6,7 @@ import { cn } from '@/lib/utils';
6
6
  import { Button } from '@/components/ui/button';
7
7
  import { Badge } from '@/components/ui/badge';
8
8
  import { DrawerActionBar } from '@/components/common/drawer-action-bar';
9
+ import { useSoundAction } from '@/hooks/use-sound-action';
9
10
  import type { PrdQuestionnaireProps } from './prd-questionnaire-config';
10
11
 
11
12
  export function PrdQuestionnaire({
@@ -20,6 +21,8 @@ export function PrdQuestionnaire({
20
21
  }: PrdQuestionnaireProps) {
21
22
  const { question, context, questions, finalAction } = data;
22
23
  const [currentStep, setCurrentStep] = useState(0);
24
+ const selectSound = useSoundAction('select');
25
+ const navigateSound = useSoundAction('navigate');
23
26
 
24
27
  const total = questions.length;
25
28
  const isFirstStep = currentStep === 0;
@@ -30,13 +33,14 @@ export function PrdQuestionnaire({
30
33
 
31
34
  const handleSelect = useCallback(
32
35
  (questionId: string, optionId: string) => {
36
+ selectSound.play();
33
37
  onSelect(questionId, optionId);
34
38
  // Auto-advance to the next step after selection (unless last step)
35
39
  if (!isLastStep) {
36
40
  setTimeout(() => setCurrentStep((s) => s + 1), 250);
37
41
  }
38
42
  },
39
- [onSelect, isLastStep]
43
+ [onSelect, isLastStep, selectSound]
40
44
  );
41
45
 
42
46
  if (total === 0) return null;
@@ -73,7 +77,10 @@ export function PrdQuestionnaire({
73
77
  idx !== currentStep && selections[q.id] ? 'bg-primary/50' : '',
74
78
  idx !== currentStep && !selections[q.id] ? 'bg-muted-foreground/25' : ''
75
79
  )}
76
- onClick={() => setCurrentStep(idx)}
80
+ onClick={() => {
81
+ navigateSound.play();
82
+ setCurrentStep(idx);
83
+ }}
77
84
  />
78
85
  ))}
79
86
  </div>
@@ -129,7 +136,10 @@ export function PrdQuestionnaire({
129
136
  variant="ghost"
130
137
  size="sm"
131
138
  disabled={isFirstStep || isProcessing}
132
- onClick={() => setCurrentStep((s) => s - 1)}
139
+ onClick={() => {
140
+ navigateSound.play();
141
+ setCurrentStep((s) => s - 1);
142
+ }}
133
143
  >
134
144
  <ChevronLeft className="mr-1 h-4 w-4" />
135
145
  Previous
@@ -141,7 +151,10 @@ export function PrdQuestionnaire({
141
151
  variant="ghost"
142
152
  size="sm"
143
153
  disabled={isProcessing}
144
- onClick={() => setCurrentStep((s) => s + 1)}
154
+ onClick={() => {
155
+ navigateSound.play();
156
+ setCurrentStep((s) => s + 1);
157
+ }}
145
158
  >
146
159
  {selections[currentQuestion.id] ? 'Next' : 'Skip'}
147
160
  <ChevronRight className="ml-1 h-4 w-4" />
@@ -25,8 +25,10 @@ const meta: Meta<typeof SidebarCollapseToggle> = {
25
25
  export default meta;
26
26
  type Story = StoryObj<typeof meta>;
27
27
 
28
+ /** Expanded state — clicking plays "collapse" sound. */
28
29
  export const Expanded: Story = {};
29
30
 
31
+ /** Collapsed state — clicking plays "expand" sound. */
30
32
  export const Collapsed: Story = {
31
33
  decorators: [
32
34
  (Story) => (